<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
code
        {mso-style-priority:99;
        font-family:"Courier New";}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:"Courier New";}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">Hi All,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I am having some problem in python. <o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-bottom:12.0pt;line-height:13.35pt;background:white;vertical-align:baseline">
<span style="font-size:10.5pt;font-family:"Arial","sans-serif";color:black">I have written the code<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:13.35pt;background:#EEEEEE;vertical-align:baseline">
<span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0in;background:#EEEEEE">import pandas as pd<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:13.35pt;background:#EEEEEE;vertical-align:baseline">
<span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0in;background:#EEEEEE">import numpy as np<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:13.35pt;background:#EEEEEE;vertical-align:baseline">
<span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0in;background:#EEEEEE">from scipy.optimize import minimize<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:13.35pt;background:#EEEEEE;vertical-align:baseline">
<span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0in;background:#EEEEEE">pd.set_option('display.mpl_style', 'default')<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom:12.0pt;line-height:13.35pt;background:white;vertical-align:baseline">
<span style="font-size:10.5pt;font-family:"Arial","sans-serif";color:black">"""Read the input file into the dataframe""" """T1 file contains the decision variables, corresponding investments and their upper and lower bounds"""<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:13.35pt;background:#EEEEEE;vertical-align:baseline">
<span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0in;background:#EEEEEE">df = pd.DataFrame.from_csv('C:\Users\prashant.mudgal\Downloads\T1.csv')<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom:12.0pt;line-height:13.35pt;background:white;vertical-align:baseline">
<span style="font-size:10.5pt;font-family:"Arial","sans-serif";color:black">"""T2 file contains the parameters for the decision variables, note that there can be 2 or more entries for the same decison variable""" """ Our objective func will be prep from T2
 file , it will be of the form sum (all DV in params file) (a*(b + c * DV_name)** power) """<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:13.35pt;background:#EEEEEE;vertical-align:baseline">
<span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0in;background:#EEEEEE">df2 = pd.DataFrame.from_csv('C:\Users\prashant.mudgal\Downloads\T2.csv')<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom:12.0pt;line-height:13.35pt;background:white;vertical-align:baseline">
<span style="font-size:10.5pt;font-family:"Arial","sans-serif";color:black">"""subset of DV"""<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:13.35pt;background:#EEEEEE;vertical-align:baseline">
<span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0in;background:#EEEEEE">decisionVars= df2['DV']<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom:12.0pt;line-height:13.35pt;background:white;vertical-align:baseline">
<span style="font-size:10.5pt;font-family:"Arial","sans-serif";color:black">"""subset for coeff """<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:13.35pt;background:#EEEEEE;vertical-align:baseline">
<span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0in;background:#EEEEEE">coeff = df2['coef']<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom:12.0pt;line-height:13.35pt;background:white;vertical-align:baseline">
<span style="font-size:10.5pt;font-family:"Arial","sans-serif";color:black">"""subset for power"""<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:13.35pt;background:#EEEEEE;vertical-align:baseline">
<span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0in;background:#EEEEEE">power = df2['p']<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:13.35pt;background:#EEEEEE;vertical-align:baseline">
<span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0in;background:#EEEEEE"><o:p> </o:p></span></p>
<p class="MsoNormal" style="line-height:13.35pt;background:#EEEEEE;vertical-align:baseline">
<span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0in;background:#EEEEEE">x0 = df['Hist_Inv']<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:13.35pt;background:#EEEEEE;vertical-align:baseline">
<span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0in;background:#EEEEEE"><o:p> </o:p></span></p>
<p class="MsoNormal" style="line-height:13.35pt;background:#EEEEEE;vertical-align:baseline">
<span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0in;background:#EEEEEE">bnds = df[['LB','UB']].values<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:13.35pt;background:#EEEEEE;vertical-align:baseline">
<span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0in;background:#EEEEEE"><o:p> </o:p></span></p>
<p class="MsoNormal" style="line-height:13.35pt;background:#EEEEEE;vertical-align:baseline">
<span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0in;background:#EEEEEE"><o:p> </o:p></span></p>
<p class="MsoNormal" style="line-height:13.35pt;background:#EEEEEE;vertical-align:baseline">
<span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0in;background:#EEEEEE"><o:p> </o:p></span></p>
<p class="MsoNormal" style="line-height:13.35pt;background:#EEEEEE;vertical-align:baseline">
<span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0in;background:#EEEEEE"><o:p> </o:p></span></p>
<p class="MsoNormal" style="line-height:13.35pt;background:#EEEEEE;vertical-align:baseline">
<span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0in;background:#EEEEEE">def objFunc(decisionVars,sign=1.0) :<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:13.35pt;background:#EEEEEE;vertical-align:baseline">
<span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0in;background:#EEEEEE">return sign*(sum(coeff.values[0:] *(df2['weight_f'].values[0:] + df2['weight_v'].values[0:] * decisionVars[0:])**power.values[0:]))<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom:12.0pt;line-height:13.35pt;background:white;vertical-align:baseline">
<span style="font-size:10.5pt;font-family:"Arial","sans-serif";color:black">"""bounds for the decision variables have been hardcoded """ """ The bounds have been hardcoded and it will be cumbersome if there are thousands of Decision vars """ """ The bounds
 have been specified in T1.csv file, we want to ream them via the file """<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom:12.0pt;line-height:13.35pt;background:white;vertical-align:baseline">
<span style="font-size:10.5pt;font-family:"Arial","sans-serif";color:black">""" Though we are not using constraints as of now, but is it correct form""" """ How to form the constraints for say x + y < 5 ? """ cons = ({'type': 'ineq', 'fun': lambda x: decisionVars[1]
 - 2 * decisionVars[1] + 2}, {'type': 'ineq', 'fun': lambda x: -decisionVars[2] - 2 * decisionVars[1] + 6}, {'type': 'ineq', 'fun': lambda x: -decisionVars[0] + 2 * decisionVars[1] + 2})<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom:12.0pt;line-height:13.35pt;background:white;vertical-align:baseline">
<span style="font-size:10.5pt;font-family:"Arial","sans-serif";color:black">""" the second parameter is the initial values that needs to be optimized""" """ Now, the number of distinct decision vars in the files are 3 in numbers while the total number of decision
 vars are 12 in number . if we specify x0 as the dataframe of investment (3 in number in the T1 file) , then it gives error that ::: operands could not be broadcast together with shapes (12,) (3,)"""<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:13.35pt;background:#EEEEEE;vertical-align:baseline">
<span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0in;background:#EEEEEE">res = minimize(objFunc, x0,args=(-1.0,),method='SLSQP',bounds = bnds,<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:13.35pt;background:#EEEEEE;vertical-align:baseline">
<span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0in;background:#EEEEEE">           options={'disp': True})<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom:12.0pt;line-height:13.35pt;background:white;vertical-align:baseline">
<span style="font-size:10.5pt;font-family:"Arial","sans-serif";color:black">"""Print the results"""<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:13.35pt;background:#EEEEEE;vertical-align:baseline">
<span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0in;background:#EEEEEE">print (res)<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom:12.0pt;line-height:13.35pt;background:white;vertical-align:baseline">
<span style="font-size:10.5pt;font-family:"Arial","sans-serif";color:black">T1.csv is like DV LB UB Hist_Inv X1 0.7 1.3 28462739.43 X2 0.7 1.3 177407.18 X3 0.7 1.3 1423271.12<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom:12.0pt;line-height:13.35pt;background:white;vertical-align:baseline">
<span style="font-size:10.5pt;font-family:"Arial","sans-serif";color:black">T2.csv is<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:13.35pt;background:#EEEEEE;vertical-align:baseline">
<span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0in;background:#EEEEEE">Count   DV  weight_f    weight_v    p   coef<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:13.35pt;background:#EEEEEE;vertical-align:baseline">
<span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0in;background:#EEEEEE">1   X1  2.310281831 3.661156016 0.5 1828.105881<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:13.35pt;background:#EEEEEE;vertical-align:baseline">
<span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0in;background:#EEEEEE">2   X1  0.693084549 2.20503016  0.5 1460.686147<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:13.35pt;background:#EEEEEE;vertical-align:baseline">
<span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0in;background:#EEEEEE">3   X1  0.207925365 2.030522789 0.5 1436.277144<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:13.35pt;background:#EEEEEE;vertical-align:baseline">
<span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0in;background:#EEEEEE">4   X1  0   5.248353307 0.8 1050.493355<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:13.35pt;background:#EEEEEE;vertical-align:baseline">
<span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0in;background:#EEEEEE">5   X1  0   1.591805116 0.8 983.9964128<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:13.35pt;background:#EEEEEE;vertical-align:baseline">
<span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0in;background:#EEEEEE">6   X1  0   1.933056056 0.8 459.9371809<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:13.35pt;background:#EEEEEE;vertical-align:baseline">
<span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0in;background:#EEEEEE">7   X2  7.322516444 138 0.5 387.4659072<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:13.35pt;background:#EEEEEE;vertical-align:baseline">
<span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0in;background:#EEEEEE">8   X2  3.661258222 139 0.5 606.8684771<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:13.35pt;background:#EEEEEE;vertical-align:baseline">
<span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0in;background:#EEEEEE">9   X2  1.830629111 176.5   0.5 358.8902965<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:13.35pt;background:#EEEEEE;vertical-align:baseline">
<span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0in;background:#EEEEEE">10  X3  164294.4758 77024   0.2 282.0477107<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:13.35pt;background:#EEEEEE;vertical-align:baseline">
<span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0in;background:#EEEEEE">11  X3  98576.68545 122261.4    0.2 345.9217482<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:13.35pt;background:#EEEEEE;vertical-align:baseline">
<span style="font-size:10.5pt;font-family:Consolas;color:black;border:none windowtext 1.0pt;padding:0in;background:#EEEEEE">12  X3  59146.01127 166242.84   0.2 364.9587162<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom:12.0pt;line-height:13.35pt;background:white;vertical-align:baseline">
<span style="font-size:10.5pt;font-family:"Arial","sans-serif";color:black">I create my obj function using vars in T2, there are a lot of vars which are repeated in T2.csv on running optimization I am getting the error operands could not be broadcast together
 with shapes (12,) (3,) because it is taking all the variables in T2 as different. How should I avoid this issue? X1, X2 AND X3 are the only three vars here.<o:p></o:p></span></p>
<p class="MsoNormal">Please help. I am stuck for past many days on this.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="font-size:9.0pt;color:blue">Thanks,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt;color:blue">Prashant Mudgal<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:7.0pt;color:#8DB3E2"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:7.5pt;color:#548DD4">AI (Accenture Interactive)
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:7.5pt;color:#548DD4">+1  917 615 3574(Cell)<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<br>
<hr>
<font face="Arial" color="Gray" size="1"><br>
This message is for the designated recipient only and may contain privileged, proprietary, or otherwise confidential information. If you have received it in error, please notify the sender immediately and delete the original. Any other use of the e-mail by
 you is prohibited. Where allowed by local law, electronic communications with Accenture and its affiliates, including e-mail and instant messaging (including content), may be scanned by our systems for the purposes of information security and assessment of
 internal compliance with Accenture policy. <br>
______________________________________________________________________________________<br>
<br>
www.accenture.com<br>
</font>
</body>
</html>