|
6 | 6 | "collapsed": true |
7 | 7 | }, |
8 | 8 | "source": [ |
9 | | - "# _*Qiskit Finance: Portfolio Optimization*_ \n", |
10 | | - "\n", |
11 | | - "The latest version of this notebook is available on https://github.com/Qiskit/qiskit-tutorials.\n", |
12 | | - "\n", |
13 | | - "***\n", |
14 | | - "## Contributors\n", |
15 | | - "Stefan Woerner<sup>[1]</sup>, Daniel Egger<sup>[1]</sup>, Shaohan Hu<sup>[1]</sup>, Stephen Wood<sup>[1]</sup>, Marco Pistoia<sup>[1]</sup>\n", |
16 | | - "### Affiliation\n", |
17 | | - "- <sup>[1]</sup>IBMQ" |
| 9 | + "# _*Portfolio Optimization*_ \n" |
18 | 10 | ] |
19 | 11 | }, |
20 | 12 | { |
|
96 | 88 | }, |
97 | 89 | { |
98 | 90 | "cell_type": "code", |
99 | | - "execution_count": 3, |
| 91 | + "execution_count": 2, |
100 | 92 | "metadata": { |
101 | 93 | "ExecuteTime": { |
102 | 94 | "end_time": "2020-07-13T20:35:15.224327Z", |
|
120 | 112 | }, |
121 | 113 | { |
122 | 114 | "cell_type": "code", |
123 | | - "execution_count": 4, |
| 115 | + "execution_count": 3, |
124 | 116 | "metadata": { |
125 | 117 | "ExecuteTime": { |
126 | 118 | "end_time": "2020-07-13T20:35:15.231767Z", |
|
129 | 121 | }, |
130 | 122 | "outputs": [], |
131 | 123 | "source": [ |
132 | | - "q = 0.5 # set risk factor\n", |
133 | | - "budget = int(num_assets / 2) # set budget\n", |
134 | | - "penalty = num_assets # set parameter to scale the budget penalty term\n", |
| 124 | + "q = 0.5 # set risk factor\n", |
| 125 | + "budget = num_assets // 2 # set budget\n", |
| 126 | + "penalty = num_assets # set parameter to scale the budget penalty term\n", |
135 | 127 | "\n", |
136 | 128 | "qubitOp, offset = portfolio.get_operator(mu, sigma, q, budget, penalty)" |
137 | 129 | ] |
|
145 | 137 | }, |
146 | 138 | { |
147 | 139 | "cell_type": "code", |
148 | | - "execution_count": 5, |
| 140 | + "execution_count": 4, |
149 | 141 | "metadata": { |
150 | 142 | "ExecuteTime": { |
151 | 143 | "end_time": "2020-07-13T20:35:15.243604Z", |
|
189 | 181 | }, |
190 | 182 | { |
191 | 183 | "cell_type": "code", |
192 | | - "execution_count": 6, |
| 184 | + "execution_count": 5, |
193 | 185 | "metadata": { |
194 | 186 | "ExecuteTime": { |
195 | 187 | "end_time": "2020-07-13T20:35:15.264319Z", |
|
201 | 193 | "name": "stdout", |
202 | 194 | "output_type": "stream", |
203 | 195 | "text": [ |
204 | | - "Optimal: selection [1 1 0 0], value -0.0125\n", |
| 196 | + "Optimal: selection [1 1 0 0], value 0.0019\n", |
205 | 197 | "\n", |
206 | 198 | "----------------- Full result ---------------------\n", |
207 | 199 | "selection\tvalue\t\tprobability\n", |
208 | 200 | "---------------------------------------------------\n", |
209 | | - " [1 1 0 0]\t-0.0125\t\t1.0000\n", |
210 | | - " [1 1 1 1]\t15.9925\t\t0.0000\n", |
211 | | - " [0 1 1 1]\t4.0009\t\t0.0000\n", |
212 | | - " [1 0 1 1]\t3.9968\t\t0.0000\n", |
213 | | - " [0 0 1 1]\t0.0052\t\t0.0000\n", |
214 | | - " [1 1 0 1]\t3.9903\t\t0.0000\n", |
215 | | - " [0 1 0 1]\t-0.0014\t\t0.0000\n", |
216 | | - " [1 0 0 1]\t-0.0054\t\t0.0000\n", |
217 | | - " [0 0 0 1]\t4.0029\t\t0.0000\n", |
218 | | - " [1 1 1 0]\t3.9899\t\t0.0000\n", |
219 | | - " [0 1 1 0]\t-0.0020\t\t0.0000\n", |
220 | | - " [1 0 1 0]\t-0.0057\t\t0.0000\n", |
221 | | - " [0 0 1 0]\t4.0024\t\t0.0000\n", |
222 | | - " [0 1 0 0]\t3.9955\t\t0.0000\n", |
223 | | - " [1 0 0 0]\t3.9920\t\t0.0000\n", |
| 201 | + " [1 1 0 0]\t0.0019\t\t1.0000\n", |
| 202 | + " [1 1 1 1]\t16.0201\t\t0.0000\n", |
| 203 | + " [0 1 1 1]\t4.0196\t\t0.0000\n", |
| 204 | + " [1 0 1 1]\t4.0186\t\t0.0000\n", |
| 205 | + " [0 0 1 1]\t0.0182\t\t0.0000\n", |
| 206 | + " [1 1 0 1]\t4.0183\t\t0.0000\n", |
| 207 | + " [0 1 0 1]\t0.0178\t\t0.0000\n", |
| 208 | + " [1 0 0 1]\t0.0168\t\t0.0000\n", |
| 209 | + " [0 0 0 1]\t4.0164\t\t0.0000\n", |
| 210 | + " [1 1 1 0]\t4.0038\t\t0.0000\n", |
| 211 | + " [0 1 1 0]\t0.0033\t\t0.0000\n", |
| 212 | + " [1 0 1 0]\t0.0024\t\t0.0000\n", |
| 213 | + " [0 0 1 0]\t4.0019\t\t0.0000\n", |
| 214 | + " [0 1 0 0]\t4.0014\t\t0.0000\n", |
| 215 | + " [1 0 0 0]\t4.0004\t\t0.0000\n", |
224 | 216 | " [0 0 0 0]\t16.0000\t\t0.0000\n" |
225 | 217 | ] |
226 | 218 | } |
|
244 | 236 | }, |
245 | 237 | { |
246 | 238 | "cell_type": "code", |
247 | | - "execution_count": 8, |
| 239 | + "execution_count": 6, |
248 | 240 | "metadata": { |
249 | 241 | "ExecuteTime": { |
250 | 242 | "end_time": "2020-07-13T20:35:26.536878Z", |
|
256 | 248 | "name": "stdout", |
257 | 249 | "output_type": "stream", |
258 | 250 | "text": [ |
259 | | - "Optimal: selection [0. 1. 0. 1.], value -0.0014\n", |
| 251 | + "Optimal: selection [0. 1. 1. 0.], value 0.0033\n", |
260 | 252 | "\n", |
261 | 253 | "----------------- Full result ---------------------\n", |
262 | 254 | "selection\tvalue\t\tprobability\n", |
263 | 255 | "---------------------------------------------------\n", |
264 | | - " [0 1 0 1]\t-0.0014\t\t0.8753\n", |
265 | | - " [1 0 0 1]\t-0.0054\t\t0.1214\n", |
266 | | - " [1 0 1 0]\t-0.0057\t\t0.0019\n", |
267 | | - " [0 1 1 0]\t-0.0020\t\t0.0008\n", |
268 | | - " [0 0 1 1]\t0.0052\t\t0.0002\n", |
269 | | - " [1 1 0 0]\t-0.0125\t\t0.0002\n", |
270 | | - " [1 0 0 0]\t3.9920\t\t0.0001\n", |
271 | | - " [1 1 1 0]\t3.9899\t\t0.0000\n", |
272 | | - " [0 1 0 0]\t3.9955\t\t0.0000\n", |
| 256 | + " [0 1 1 0]\t0.0033\t\t0.9727\n", |
| 257 | + " [1 0 1 0]\t0.0024\t\t0.0216\n", |
| 258 | + " [0 1 0 1]\t0.0178\t\t0.0028\n", |
| 259 | + " [1 1 0 0]\t0.0019\t\t0.0016\n", |
| 260 | + " [0 0 1 1]\t0.0182\t\t0.0007\n", |
| 261 | + " [1 1 0 1]\t4.0183\t\t0.0005\n", |
| 262 | + " [1 0 0 1]\t0.0168\t\t0.0001\n", |
| 263 | + " [1 0 1 1]\t4.0186\t\t0.0000\n", |
| 264 | + " [1 1 1 1]\t16.0201\t\t0.0000\n", |
| 265 | + " [0 1 0 0]\t4.0014\t\t0.0000\n", |
| 266 | + " [1 0 0 0]\t4.0004\t\t0.0000\n", |
| 267 | + " [0 0 0 1]\t4.0164\t\t0.0000\n", |
| 268 | + " [0 0 1 0]\t4.0019\t\t0.0000\n", |
| 269 | + " [1 1 1 0]\t4.0038\t\t0.0000\n", |
273 | 270 | " [0 0 0 0]\t16.0000\t\t0.0000\n", |
274 | | - " [1 0 1 1]\t3.9968\t\t0.0000\n", |
275 | | - " [0 1 1 1]\t4.0009\t\t0.0000\n", |
276 | | - " [0 0 1 0]\t4.0024\t\t0.0000\n", |
277 | | - " [1 1 1 1]\t15.9925\t\t0.0000\n", |
278 | | - " [1 1 0 1]\t3.9903\t\t0.0000\n", |
279 | | - " [0 0 0 1]\t4.0029\t\t0.0000\n" |
| 271 | + " [0 1 1 1]\t4.0196\t\t0.0000\n" |
280 | 272 | ] |
281 | 273 | } |
282 | 274 | ], |
|
308 | 300 | }, |
309 | 301 | { |
310 | 302 | "cell_type": "code", |
311 | | - "execution_count": 9, |
| 303 | + "execution_count": 7, |
312 | 304 | "metadata": { |
313 | 305 | "ExecuteTime": { |
314 | 306 | "end_time": "2020-07-13T20:35:28.570970Z", |
|
320 | 312 | "name": "stdout", |
321 | 313 | "output_type": "stream", |
322 | 314 | "text": [ |
323 | | - "Optimal: selection [0. 0. 1. 1.], value 0.0052\n", |
| 315 | + "Optimal: selection [1. 1. 0. 0.], value 0.0019\n", |
324 | 316 | "\n", |
325 | 317 | "----------------- Full result ---------------------\n", |
326 | 318 | "selection\tvalue\t\tprobability\n", |
327 | 319 | "---------------------------------------------------\n", |
328 | | - " [0 0 1 1]\t0.0052\t\t0.1681\n", |
329 | | - " [0 1 0 1]\t-0.0014\t\t0.1670\n", |
330 | | - " [0 1 1 0]\t-0.0020\t\t0.1669\n", |
331 | | - " [1 0 0 1]\t-0.0054\t\t0.1664\n", |
332 | | - " [1 0 1 0]\t-0.0057\t\t0.1663\n", |
333 | | - " [1 1 0 0]\t-0.0125\t\t0.1653\n", |
334 | | - " [1 1 1 0]\t3.9899\t\t0.0000\n", |
335 | | - " [0 0 0 1]\t4.0029\t\t0.0000\n", |
336 | | - " [1 1 0 1]\t3.9903\t\t0.0000\n", |
337 | | - " [0 0 1 0]\t4.0024\t\t0.0000\n", |
338 | | - " [0 0 0 0]\t16.0000\t\t0.0000\n", |
339 | | - " [1 1 1 1]\t15.9925\t\t0.0000\n", |
340 | | - " [0 1 0 0]\t3.9955\t\t0.0000\n", |
341 | | - " [1 0 1 1]\t3.9968\t\t0.0000\n", |
342 | | - " [1 0 0 0]\t3.9920\t\t0.0000\n", |
343 | | - " [0 1 1 1]\t4.0009\t\t0.0000\n" |
| 320 | + " [1 1 0 0]\t0.0019\t\t0.1674\n", |
| 321 | + " [1 0 1 0]\t0.0024\t\t0.1674\n", |
| 322 | + " [0 1 1 0]\t0.0033\t\t0.1673\n", |
| 323 | + " [1 0 0 1]\t0.0168\t\t0.1660\n", |
| 324 | + " [0 1 0 1]\t0.0178\t\t0.1659\n", |
| 325 | + " [0 0 1 1]\t0.0182\t\t0.1658\n", |
| 326 | + " [1 0 0 0]\t4.0004\t\t0.0000\n", |
| 327 | + " [0 1 1 1]\t4.0196\t\t0.0000\n", |
| 328 | + " [1 0 1 1]\t4.0186\t\t0.0000\n", |
| 329 | + " [0 1 0 0]\t4.0014\t\t0.0000\n", |
| 330 | + " [1 1 0 1]\t4.0183\t\t0.0000\n", |
| 331 | + " [0 0 1 0]\t4.0019\t\t0.0000\n", |
| 332 | + " [1 1 1 0]\t4.0038\t\t0.0000\n", |
| 333 | + " [0 0 0 1]\t4.0164\t\t0.0000\n", |
| 334 | + " [1 1 1 1]\t16.0201\t\t0.0000\n", |
| 335 | + " [0 0 0 0]\t16.0000\t\t0.0000\n" |
344 | 336 | ] |
345 | 337 | } |
346 | 338 | ], |
|
363 | 355 | }, |
364 | 356 | { |
365 | 357 | "cell_type": "code", |
366 | | - "execution_count": 10, |
| 358 | + "execution_count": 8, |
367 | 359 | "metadata": { |
368 | 360 | "ExecuteTime": { |
369 | 361 | "end_time": "2020-07-13T20:35:29.079589Z", |
|
374 | 366 | { |
375 | 367 | "data": { |
376 | 368 | "text/html": [ |
377 | | - "<h3>Version Information</h3><table><tr><th>Qiskit Software</th><th>Version</th></tr><tr><td>Qiskit</td><td>0.19.6</td></tr><tr><td>Terra</td><td>0.14.2</td></tr><tr><td>Aer</td><td>0.5.2</td></tr><tr><td>Ignis</td><td>0.3.3</td></tr><tr><td>Aqua</td><td>0.7.3</td></tr><tr><td>IBM Q Provider</td><td>0.7.2</td></tr><tr><th>System information</th></tr><tr><td>Python</td><td>3.7.7 (default, May 6 2020, 04:59:01) \n", |
378 | | - "[Clang 4.0.1 (tags/RELEASE_401/final)]</td></tr><tr><td>OS</td><td>Darwin</td></tr><tr><td>CPUs</td><td>4</td></tr><tr><td>Memory (Gb)</td><td>16.0</td></tr><tr><td colspan='2'>Mon Jul 13 16:35:29 2020 EDT</td></tr></table>" |
| 369 | + "<h3>Version Information</h3><table><tr><th>Qiskit Software</th><th>Version</th></tr><tr><td>Qiskit</td><td>0.19.1</td></tr><tr><td>Terra</td><td>0.14.1</td></tr><tr><td>Aer</td><td>0.5.1</td></tr><tr><td>Ignis</td><td>0.3.0</td></tr><tr><td>Aqua</td><td>0.7.0</td></tr><tr><td>IBM Q Provider</td><td>0.7.0</td></tr><tr><th>System information</th></tr><tr><td>Python</td><td>3.7.4 (default, Aug 13 2019, 15:17:50) \n", |
| 370 | + "[Clang 4.0.1 (tags/RELEASE_401/final)]</td></tr><tr><td>OS</td><td>Darwin</td></tr><tr><td>CPUs</td><td>6</td></tr><tr><td>Memory (Gb)</td><td>16.0</td></tr><tr><td colspan='2'>Wed Jul 15 19:59:08 2020 CEST</td></tr></table>" |
379 | 371 | ], |
380 | 372 | "text/plain": [ |
381 | 373 | "<IPython.core.display.HTML object>" |
|
427 | 419 | "name": "python", |
428 | 420 | "nbconvert_exporter": "python", |
429 | 421 | "pygments_lexer": "ipython3", |
430 | | - "version": "3.7.7" |
| 422 | + "version": "3.7.4" |
431 | 423 | }, |
432 | 424 | "varInspector": { |
433 | 425 | "cols": { |
|
0 commit comments