summaryrefslogtreecommitdiff
path: root/docs/source/auto_examples/auto_examples_jupyter.zip
blob: 6e2ed41175eeff3054b01469de286f67cfe9cf7d (plain)
ofshex dumpascii
0000 50 4b 03 04 14 00 00 00 00 00 7c 68 3a 4f ae 38 61 57 26 14 00 00 26 14 00 00 0e 00 00 00 70 6c PK........|h:O.8aW&...&.......pl
0020 6f 74 5f 57 44 41 2e 69 70 79 6e 62 7b 0a 20 20 22 6e 62 66 6f 72 6d 61 74 5f 6d 69 6e 6f 72 22 ot_WDA.ipynb{..."nbformat_minor"
0040 3a 20 30 2c 20 0a 20 20 22 6e 62 66 6f 72 6d 61 74 22 3a 20 34 2c 20 0a 20 20 22 63 65 6c 6c 73 :.0,...."nbformat":.4,...."cells
0060 22 3a 20 5b 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e ":.[.....{......."execution_coun
0080 74 22 3a 20 6e 75 6c 6c 2c 20 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 t":.null,........"cell_type":."c
00a0 6f 64 65 22 2c 20 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 ode",........"source":.[........
00c0 20 22 25 6d 61 74 70 6c 6f 74 6c 69 62 20 69 6e 6c 69 6e 65 22 0a 20 20 20 20 20 20 5d 2c 20 0a ."%matplotlib.inline".......],..
00e0 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 20 0a 20 20 20 20 20 20 22 6d 65 74 ......"outputs":.[],........"met
0100 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 adata":.{........."collapsed":.f
0120 61 6c 73 65 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 2c 20 0a 20 20 20 20 7b 0a 20 20 20 20 20 alse.......}.....},......{......
0140 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 57 61 73 73 65 72 ."source":.[........."\n#.Wasser
0160 73 74 65 69 6e 20 44 69 73 63 72 69 6d 69 6e 61 6e 74 20 41 6e 61 6c 79 73 69 73 5c 6e 5c 6e 5c stein.Discriminant.Analysis\n\n\
0180 6e 54 68 69 73 20 65 78 61 6d 70 6c 65 20 69 6c 6c 75 73 74 72 61 74 65 20 74 68 65 20 75 73 65 nThis.example.illustrate.the.use
01a0 20 6f 66 20 57 44 41 20 61 73 20 70 72 6f 70 6f 73 65 64 20 69 6e 20 5b 31 31 5d 2e 5c 6e 5c 6e .of.WDA.as.proposed.in.[11].\n\n
01c0 5c 6e 5b 31 31 5d 20 46 6c 61 6d 61 72 79 2c 20 52 2e 2c 20 43 75 74 75 72 69 2c 20 4d 2e 2c 20 \n[11].Flamary,.R.,.Cuturi,.M.,.
01e0 43 6f 75 72 74 79 2c 20 4e 2e 2c 20 26 20 52 61 6b 6f 74 6f 6d 61 6d 6f 6e 6a 79 2c 20 41 2e 20 Courty,.N.,.&.Rakotomamonjy,.A..
0200 28 32 30 31 36 29 2e 5c 6e 57 61 73 73 65 72 73 74 65 69 6e 20 44 69 73 63 72 69 6d 69 6e 61 6e (2016).\nWasserstein.Discriminan
0220 74 20 41 6e 61 6c 79 73 69 73 2e 5c 6e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 2c 20 0a 20 20 20 t.Analysis.\n\n\n".......],.....
0240 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 20 0a 20 20 20 ..."cell_type":."markdown",.....
0260 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 0a 20 20 20 20 7d 2c 20 0a 20 20 20 20 7b 0a ..."metadata":.{}.....},......{.
0280 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 20 0a ......"execution_count":.null,..
02a0 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 20 0a 20 20 20 20 ......"cell_type":."code",......
02c0 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 20 41 75 74 68 6f 72 3a .."source":.[........."#.Author:
02e0 20 52 65 6d 69 20 46 6c 61 6d 61 72 79 20 3c 72 65 6d 69 2e 66 6c 61 6d 61 72 79 40 75 6e 69 63 .Remi.Flamary.<remi.flamary@unic
0300 65 2e 66 72 3e 5c 6e 23 5c 6e 23 20 4c 69 63 65 6e 73 65 3a 20 4d 49 54 20 4c 69 63 65 6e 73 65 e.fr>\n#\n#.License:.MIT.License
0320 5c 6e 5c 6e 69 6d 70 6f 72 74 20 6e 75 6d 70 79 20 61 73 20 6e 70 5c 6e 69 6d 70 6f 72 74 20 6d \n\nimport.numpy.as.np\nimport.m
0340 61 74 70 6c 6f 74 6c 69 62 2e 70 79 6c 61 62 20 61 73 20 70 6c 5c 6e 5c 6e 66 72 6f 6d 20 6f 74 atplotlib.pylab.as.pl\n\nfrom.ot
0360 2e 64 72 20 69 6d 70 6f 72 74 20 77 64 61 2c 20 66 64 61 22 0a 20 20 20 20 20 20 5d 2c 20 0a 20 .dr.import.wda,.fda".......],...
0380 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 20 0a 20 20 20 20 20 20 22 6d 65 74 61 ....."outputs":.[],........"meta
03a0 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 data":.{........."collapsed":.fa
03c0 6c 73 65 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 2c 20 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 lse.......}.....},......{.......
03e0 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 47 65 6e 65 72 61 74 65 20 64 61 "source":.[........."Generate.da
0400 74 61 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 2c 20 ta\n-------------\n\n".......],.
0420 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 20 ......."cell_type":."markdown",.
0440 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 0a 20 20 20 20 7d 2c 20 0a 20 20 ......."metadata":.{}.....},....
0460 20 20 7b 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c ..{......."execution_count":.nul
0480 6c 2c 20 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 20 0a l,........"cell_type":."code",..
04a0 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 25 25 20 70 ......"source":.[........."#%%.p
04c0 61 72 61 6d 65 74 65 72 73 5c 6e 5c 6e 6e 20 3d 20 31 30 30 30 20 20 23 20 6e 62 20 73 61 6d 70 arameters\n\nn.=.1000..#.nb.samp
04e0 6c 65 73 20 69 6e 20 73 6f 75 72 63 65 20 61 6e 64 20 74 61 72 67 65 74 20 64 61 74 61 73 65 74 les.in.source.and.target.dataset
0500 73 5c 6e 6e 7a 20 3d 20 30 2e 32 5c 6e 5c 6e 23 20 67 65 6e 65 72 61 74 65 20 63 69 72 63 6c 65 s\nnz.=.0.2\n\n#.generate.circle
0520 20 64 61 74 61 73 65 74 5c 6e 74 20 3d 20 6e 70 2e 72 61 6e 64 6f 6d 2e 72 61 6e 64 28 6e 29 20 .dataset\nt.=.np.random.rand(n).
0540 2a 20 32 20 2a 20 6e 70 2e 70 69 5c 6e 79 73 20 3d 20 6e 70 2e 66 6c 6f 6f 72 28 28 6e 70 2e 61 *.2.*.np.pi\nys.=.np.floor((np.a
0560 72 61 6e 67 65 28 6e 29 20 2a 20 31 2e 30 20 2f 20 6e 20 2a 20 33 29 29 20 2b 20 31 5c 6e 78 73 range(n).*.1.0./.n.*.3)).+.1\nxs
0580 20 3d 20 6e 70 2e 63 6f 6e 63 61 74 65 6e 61 74 65 28 5c 6e 20 20 20 20 28 6e 70 2e 63 6f 73 28 .=.np.concatenate(\n....(np.cos(
05a0 74 29 2e 72 65 73 68 61 70 65 28 28 2d 31 2c 20 31 29 29 2c 20 6e 70 2e 73 69 6e 28 74 29 2e 72 t).reshape((-1,.1)),.np.sin(t).r
05c0 65 73 68 61 70 65 28 28 2d 31 2c 20 31 29 29 29 2c 20 31 29 5c 6e 78 73 20 3d 20 78 73 20 2a 20 eshape((-1,.1))),.1)\nxs.=.xs.*.
05e0 79 73 2e 72 65 73 68 61 70 65 28 2d 31 2c 20 31 29 20 2b 20 6e 7a 20 2a 20 6e 70 2e 72 61 6e 64 ys.reshape(-1,.1).+.nz.*.np.rand
0600 6f 6d 2e 72 61 6e 64 6e 28 6e 2c 20 32 29 5c 6e 5c 6e 74 20 3d 20 6e 70 2e 72 61 6e 64 6f 6d 2e om.randn(n,.2)\n\nt.=.np.random.
0620 72 61 6e 64 28 6e 29 20 2a 20 32 20 2a 20 6e 70 2e 70 69 5c 6e 79 74 20 3d 20 6e 70 2e 66 6c 6f rand(n).*.2.*.np.pi\nyt.=.np.flo
0640 6f 72 28 28 6e 70 2e 61 72 61 6e 67 65 28 6e 29 20 2a 20 31 2e 30 20 2f 20 6e 20 2a 20 33 29 29 or((np.arange(n).*.1.0./.n.*.3))
0660 20 2b 20 31 5c 6e 78 74 20 3d 20 6e 70 2e 63 6f 6e 63 61 74 65 6e 61 74 65 28 5c 6e 20 20 20 20 .+.1\nxt.=.np.concatenate(\n....
0680 28 6e 70 2e 63 6f 73 28 74 29 2e 72 65 73 68 61 70 65 28 28 2d 31 2c 20 31 29 29 2c 20 6e 70 2e (np.cos(t).reshape((-1,.1)),.np.
06a0 73 69 6e 28 74 29 2e 72 65 73 68 61 70 65 28 28 2d 31 2c 20 31 29 29 29 2c 20 31 29 5c 6e 78 74 sin(t).reshape((-1,.1))),.1)\nxt
06c0 20 3d 20 78 74 20 2a 20 79 74 2e 72 65 73 68 61 70 65 28 2d 31 2c 20 31 29 20 2b 20 6e 7a 20 2a .=.xt.*.yt.reshape(-1,.1).+.nz.*
06e0 20 6e 70 2e 72 61 6e 64 6f 6d 2e 72 61 6e 64 6e 28 6e 2c 20 32 29 5c 6e 5c 6e 6e 62 6e 6f 69 73 .np.random.randn(n,.2)\n\nnbnois
0700 65 20 3d 20 38 5c 6e 5c 6e 78 73 20 3d 20 6e 70 2e 68 73 74 61 63 6b 28 28 78 73 2c 20 6e 70 2e e.=.8\n\nxs.=.np.hstack((xs,.np.
0720 72 61 6e 64 6f 6d 2e 72 61 6e 64 6e 28 6e 2c 20 6e 62 6e 6f 69 73 65 29 29 29 5c 6e 78 74 20 3d random.randn(n,.nbnoise)))\nxt.=
0740 20 6e 70 2e 68 73 74 61 63 6b 28 28 78 74 2c 20 6e 70 2e 72 61 6e 64 6f 6d 2e 72 61 6e 64 6e 28 .np.hstack((xt,.np.random.randn(
0760 6e 2c 20 6e 62 6e 6f 69 73 65 29 29 29 22 0a 20 20 20 20 20 20 5d 2c 20 0a 20 20 20 20 20 20 22 n,.nbnoise)))".......],........"
0780 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 20 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a outputs":.[],........"metadata":
07a0 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 .{........."collapsed":.false...
07c0 20 20 20 20 7d 0a 20 20 20 20 7d 2c 20 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 73 6f 75 72 63 ....}.....},......{......."sourc
07e0 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 50 6c 6f 74 20 64 61 74 61 5c 6e 2d 2d 2d 2d 2d 2d e":.[........."Plot.data\n------
0800 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 2c 20 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 ---\n\n".......],........"cell_t
0820 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 20 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 ype":."markdown",........"metada
0840 74 61 22 3a 20 7b 7d 0a 20 20 20 20 7d 2c 20 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 65 78 65 ta":.{}.....},......{......."exe
0860 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 20 0a 20 20 20 20 20 20 22 63 65 6c cution_count":.null,........"cel
0880 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 20 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 l_type":."code",........"source"
08a0 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 25 25 20 70 6c 6f 74 20 73 61 6d 70 6c 65 73 5c 6e 70 :.[........."#%%.plot.samples\np
08c0 6c 2e 66 69 67 75 72 65 28 31 2c 20 66 69 67 73 69 7a 65 3d 28 36 2e 34 2c 20 33 2e 35 29 29 5c l.figure(1,.figsize=(6.4,.3.5))\
08e0 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 20 32 2c 20 31 29 5c 6e 70 6c 2e 73 63 61 74 74 n\npl.subplot(1,.2,.1)\npl.scatt
0900 65 72 28 78 74 5b 3a 2c 20 30 5d 2c 20 78 74 5b 3a 2c 20 31 5d 2c 20 63 3d 79 73 2c 20 6d 61 72 er(xt[:,.0],.xt[:,.1],.c=ys,.mar
0920 6b 65 72 3d 27 2b 27 2c 20 6c 61 62 65 6c 3d 27 53 6f 75 72 63 65 20 73 61 6d 70 6c 65 73 27 29 ker='+',.label='Source.samples')
0940 5c 6e 70 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 44 69 \npl.legend(loc=0)\npl.title('Di
0960 73 63 72 69 6d 69 6e 61 6e 74 20 64 69 6d 65 6e 73 69 6f 6e 73 27 29 5c 6e 5c 6e 70 6c 2e 73 75 scriminant.dimensions')\n\npl.su
0980 62 70 6c 6f 74 28 31 2c 20 32 2c 20 32 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 78 74 5b 3a 2c bplot(1,.2,.2)\npl.scatter(xt[:,
09a0 20 32 5d 2c 20 78 74 5b 3a 2c 20 33 5d 2c 20 63 3d 79 73 2c 20 6d 61 72 6b 65 72 3d 27 2b 27 2c .2],.xt[:,.3],.c=ys,.marker='+',
09c0 20 6c 61 62 65 6c 3d 27 53 6f 75 72 63 65 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 6c 65 67 .label='Source.samples')\npl.leg
09e0 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 4f 74 68 65 72 20 64 69 6d 65 end(loc=0)\npl.title('Other.dime
0a00 6e 73 69 6f 6e 73 27 29 5c 6e 70 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 22 0a 20 20 20 nsions')\npl.tight_layout()"....
0a20 20 20 20 5d 2c 20 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 20 0a 20 20 20 ...],........"outputs":.[],.....
0a40 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 ..."metadata":.{........."collap
0a60 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 2c 20 0a 20 20 20 20 sed":.false.......}.....},......
0a80 7b 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 6f 6d {......."source":.[........."Com
0aa0 70 75 74 65 20 46 69 73 68 65 72 20 44 69 73 63 72 69 6d 69 6e 61 6e 74 20 41 6e 61 6c 79 73 69 pute.Fisher.Discriminant.Analysi
0ac0 73 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d s\n-----------------------------
0ae0 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 2c 20 0a 20 20 20 20 20 20 22 63 65 -------\n\n".......],........"ce
0b00 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 20 0a 20 20 20 20 20 20 22 6d 65 ll_type":."markdown",........"me
0b20 74 61 64 61 74 61 22 3a 20 7b 7d 0a 20 20 20 20 7d 2c 20 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 tadata":.{}.....},......{.......
0b40 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 20 0a 20 20 20 20 20 20 "execution_count":.null,........
0b60 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 20 0a 20 20 20 20 20 20 22 73 6f 75 "cell_type":."code",........"sou
0b80 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 25 25 20 43 6f 6d 70 75 74 65 20 46 44 41 rce":.[........."#%%.Compute.FDA
0ba0 5c 6e 70 20 3d 20 32 5c 6e 5c 6e 50 66 64 61 2c 20 70 72 6f 6a 66 64 61 20 3d 20 66 64 61 28 78 \np.=.2\n\nPfda,.projfda.=.fda(x
0bc0 73 2c 20 79 73 2c 20 70 29 22 0a 20 20 20 20 20 20 5d 2c 20 0a 20 20 20 20 20 20 22 6f 75 74 70 s,.ys,.p)".......],........"outp
0be0 75 74 73 22 3a 20 5b 5d 2c 20 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 uts":.[],........"metadata":.{..
0c00 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 ......."collapsed":.false.......
0c20 7d 0a 20 20 20 20 7d 2c 20 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 }.....},......{......."source":.
0c40 5b 0a 20 20 20 20 20 20 20 20 22 43 6f 6d 70 75 74 65 20 57 61 73 73 65 72 73 74 65 69 6e 20 44 [........."Compute.Wasserstein.D
0c60 69 73 63 72 69 6d 69 6e 61 6e 74 20 41 6e 61 6c 79 73 69 73 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d iscriminant.Analysis\n----------
0c80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c -------------------------------\
0ca0 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 2c 20 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 n\n".......],........"cell_type"
0cc0 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 20 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a :."markdown",........"metadata":
0ce0 20 7b 7d 0a 20 20 20 20 7d 2c 20 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 .{}.....},......{......."executi
0d00 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 20 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 on_count":.null,........"cell_ty
0d20 70 65 22 3a 20 22 63 6f 64 65 22 2c 20 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a pe":."code",........"source":.[.
0d40 20 20 20 20 20 20 20 20 22 23 25 25 20 43 6f 6d 70 75 74 65 20 57 44 41 5c 6e 70 20 3d 20 32 5c ........"#%%.Compute.WDA\np.=.2\
0d60 6e 72 65 67 20 3d 20 31 65 30 5c 6e 6b 20 3d 20 31 30 5c 6e 6d 61 78 69 74 65 72 20 3d 20 31 30 nreg.=.1e0\nk.=.10\nmaxiter.=.10
0d80 30 5c 6e 5c 6e 50 77 64 61 2c 20 70 72 6f 6a 77 64 61 20 3d 20 77 64 61 28 78 73 2c 20 79 73 2c 0\n\nPwda,.projwda.=.wda(xs,.ys,
0da0 20 70 2c 20 72 65 67 2c 20 6b 2c 20 6d 61 78 69 74 65 72 3d 6d 61 78 69 74 65 72 29 22 0a 20 20 .p,.reg,.k,.maxiter=maxiter)"...
0dc0 20 20 20 20 5d 2c 20 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 20 0a 20 20 ....],........"outputs":.[],....
0de0 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 ...."metadata":.{........."colla
0e00 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 2c 20 0a 20 20 20 psed":.false.......}.....},.....
0e20 20 7b 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 50 6c .{......."source":.[........."Pl
0e40 6f 74 20 32 44 20 70 72 6f 6a 65 63 74 69 6f 6e 73 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ot.2D.projections\n-------------
0e60 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 2c 20 0a 20 20 20 20 20 20 22 63 65 6c ------\n\n".......],........"cel
0e80 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 20 0a 20 20 20 20 20 20 22 6d 65 74 l_type":."markdown",........"met
0ea0 61 64 61 74 61 22 3a 20 7b 7d 0a 20 20 20 20 7d 2c 20 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 adata":.{}.....},......{......."
0ec0 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 20 0a 20 20 20 20 20 20 22 execution_count":.null,........"
0ee0 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 20 0a 20 20 20 20 20 20 22 73 6f 75 72 cell_type":."code",........"sour
0f00 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 25 25 20 70 6c 6f 74 20 73 61 6d 70 6c 65 73 ce":.[........."#%%.plot.samples
0f20 5c 6e 5c 6e 78 73 70 20 3d 20 70 72 6f 6a 66 64 61 28 78 73 29 5c 6e 78 74 70 20 3d 20 70 72 6f \n\nxsp.=.projfda(xs)\nxtp.=.pro
0f40 6a 66 64 61 28 78 74 29 5c 6e 5c 6e 78 73 70 77 20 3d 20 70 72 6f 6a 77 64 61 28 78 73 29 5c 6e jfda(xt)\n\nxspw.=.projwda(xs)\n
0f60 78 74 70 77 20 3d 20 70 72 6f 6a 77 64 61 28 78 74 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 xtpw.=.projwda(xt)\n\npl.figure(
0f80 32 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 32 2c 20 31 29 5c 6e 70 6c 2e 73 63 2)\n\npl.subplot(2,.2,.1)\npl.sc
0fa0 61 74 74 65 72 28 78 73 70 5b 3a 2c 20 30 5d 2c 20 78 73 70 5b 3a 2c 20 31 5d 2c 20 63 3d 79 73 atter(xsp[:,.0],.xsp[:,.1],.c=ys
0fc0 2c 20 6d 61 72 6b 65 72 3d 27 2b 27 2c 20 6c 61 62 65 6c 3d 27 50 72 6f 6a 65 63 74 65 64 20 73 ,.marker='+',.label='Projected.s
0fe0 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e 70 6c 2e 74 amples')\npl.legend(loc=0)\npl.t
1000 69 74 6c 65 28 27 50 72 6f 6a 65 63 74 65 64 20 74 72 61 69 6e 69 6e 67 20 73 61 6d 70 6c 65 73 itle('Projected.training.samples
1020 20 46 44 41 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 32 2c 20 32 29 5c 6e 70 .FDA')\n\npl.subplot(2,.2,.2)\np
1040 6c 2e 73 63 61 74 74 65 72 28 78 74 70 5b 3a 2c 20 30 5d 2c 20 78 74 70 5b 3a 2c 20 31 5d 2c 20 l.scatter(xtp[:,.0],.xtp[:,.1],.
1060 63 3d 79 73 2c 20 6d 61 72 6b 65 72 3d 27 2b 27 2c 20 6c 61 62 65 6c 3d 27 50 72 6f 6a 65 63 74 c=ys,.marker='+',.label='Project
1080 65 64 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e ed.samples')\npl.legend(loc=0)\n
10a0 70 6c 2e 74 69 74 6c 65 28 27 50 72 6f 6a 65 63 74 65 64 20 74 65 73 74 20 73 61 6d 70 6c 65 73 pl.title('Projected.test.samples
10c0 20 46 44 41 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 32 2c 20 33 29 5c 6e 70 .FDA')\n\npl.subplot(2,.2,.3)\np
10e0 6c 2e 73 63 61 74 74 65 72 28 78 73 70 77 5b 3a 2c 20 30 5d 2c 20 78 73 70 77 5b 3a 2c 20 31 5d l.scatter(xspw[:,.0],.xspw[:,.1]
1100 2c 20 63 3d 79 73 2c 20 6d 61 72 6b 65 72 3d 27 2b 27 2c 20 6c 61 62 65 6c 3d 27 50 72 6f 6a 65 ,.c=ys,.marker='+',.label='Proje
1120 63 74 65 64 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 cted.samples')\npl.legend(loc=0)
1140 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 50 72 6f 6a 65 63 74 65 64 20 74 72 61 69 6e 69 6e 67 20 73 \npl.title('Projected.training.s
1160 61 6d 70 6c 65 73 20 57 44 41 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 32 2c amples.WDA')\n\npl.subplot(2,.2,
1180 20 34 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 78 74 70 77 5b 3a 2c 20 30 5d 2c 20 78 74 70 77 .4)\npl.scatter(xtpw[:,.0],.xtpw
11a0 5b 3a 2c 20 31 5d 2c 20 63 3d 79 73 2c 20 6d 61 72 6b 65 72 3d 27 2b 27 2c 20 6c 61 62 65 6c 3d [:,.1],.c=ys,.marker='+',.label=
11c0 27 50 72 6f 6a 65 63 74 65 64 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 6c 65 67 65 6e 64 28 'Projected.samples')\npl.legend(
11e0 6c 6f 63 3d 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 50 72 6f 6a 65 63 74 65 64 20 74 65 73 74 loc=0)\npl.title('Projected.test
1200 20 73 61 6d 70 6c 65 73 20 57 44 41 27 29 5c 6e 70 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 .samples.WDA')\npl.tight_layout(
1220 29 5c 6e 5c 6e 70 6c 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 2c 20 0a 20 20 20 20 20 20 )\n\npl.show()".......],........
1240 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 20 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 "outputs":.[],........"metadata"
1260 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 :.{........."collapsed":.false..
1280 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 20 20 5d 2c 20 0a 20 20 22 6d 65 74 61 64 61 74 61 22 3a .....}.....}...],...."metadata":
12a0 20 7b 0a 20 20 20 20 22 6b 65 72 6e 65 6c 73 70 65 63 22 3a 20 7b 0a 20 20 20 20 20 20 22 64 69 .{....."kernelspec":.{......."di
12c0 73 70 6c 61 79 5f 6e 61 6d 65 22 3a 20 22 50 79 74 68 6f 6e 20 32 22 2c 20 0a 20 20 20 20 20 20 splay_name":."Python.2",........
12e0 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 32 22 2c 20 0a 20 20 20 20 20 20 22 6c 61 6e 67 75 "name":."python2",........"langu
1300 61 67 65 22 3a 20 22 70 79 74 68 6f 6e 22 0a 20 20 20 20 7d 2c 20 0a 20 20 20 20 22 6c 61 6e 67 age":."python".....},......"lang
1320 75 61 67 65 5f 69 6e 66 6f 22 3a 20 7b 0a 20 20 20 20 20 20 22 6d 69 6d 65 74 79 70 65 22 3a 20 uage_info":.{......."mimetype":.
1340 22 74 65 78 74 2f 78 2d 70 79 74 68 6f 6e 22 2c 20 0a 20 20 20 20 20 20 22 6e 62 63 6f 6e 76 65 "text/x-python",........"nbconve
1360 72 74 5f 65 78 70 6f 72 74 65 72 22 3a 20 22 70 79 74 68 6f 6e 22 2c 20 0a 20 20 20 20 20 20 22 rt_exporter":."python",........"
1380 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 20 0a 20 20 20 20 20 20 22 66 69 6c 65 5f 65 78 name":."python",........"file_ex
13a0 74 65 6e 73 69 6f 6e 22 3a 20 22 2e 70 79 22 2c 20 0a 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e tension":.".py",........"version
13c0 22 3a 20 22 32 2e 37 2e 31 32 22 2c 20 0a 20 20 20 20 20 20 22 70 79 67 6d 65 6e 74 73 5f 6c 65 ":."2.7.12",........"pygments_le
13e0 78 65 72 22 3a 20 22 69 70 79 74 68 6f 6e 32 22 2c 20 0a 20 20 20 20 20 20 22 63 6f 64 65 6d 69 xer":."ipython2",........"codemi
1400 72 72 6f 72 5f 6d 6f 64 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a rror_mode":.{........."version":
1420 20 32 2c 20 0a 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 69 70 79 74 68 6f 6e 22 0a 20 .2,.........."name":."ipython"..
1440 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 20 20 7d 0a 7d 50 4b 03 04 14 00 00 00 00 00 a6 72 94 50 .....}.....}...}.}PK.........r.P
1460 e0 47 d9 b1 81 11 00 00 81 11 00 00 11 00 00 00 70 6c 6f 74 5f 67 72 6f 6d 6f 76 2e 69 70 79 6e .G..............plot_gromov.ipyn
1480 62 7b 0a 20 20 22 63 65 6c 6c 73 22 3a 20 5b 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c b{..."cells":.[.....{......."cel
14a0 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f l_type":."code",......."executio
14c0 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 n_count":.null,......."metadata"
14e0 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 :.{........."collapsed":.false..
1500 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 .....},......."outputs":.[],....
1520 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 25 6d 61 74 70 6c 6f 74 ..."source":.[........."%matplot
1540 6c 69 62 20 69 6e 6c 69 6e 65 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b lib.inline".......].....},.....{
1560 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a ......."cell_type":."markdown",.
1580 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 ......"metadata":.{},......."sou
15a0 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 47 72 6f 6d 6f 76 2d 57 61 73 73 rce":.[........."\n#.Gromov-Wass
15c0 65 72 73 74 65 69 6e 20 65 78 61 6d 70 6c 65 5c 6e 5c 6e 5c 6e 54 68 69 73 20 65 78 61 6d 70 6c erstein.example\n\n\nThis.exampl
15e0 65 20 69 73 20 64 65 73 69 67 6e 65 64 20 74 6f 20 73 68 6f 77 20 68 6f 77 20 74 6f 20 75 73 65 e.is.designed.to.show.how.to.use
1600 20 74 68 65 20 47 72 6f 6d 6f 76 2d 57 61 73 73 65 72 74 73 65 69 6e 20 64 69 73 74 61 6e 63 65 .the.Gromov-Wassertsein.distance
1620 5c 6e 63 6f 6d 70 75 74 61 74 69 6f 6e 20 69 6e 20 50 4f 54 2e 5c 6e 5c 6e 22 0a 20 20 20 20 20 \ncomputation.in.POT.\n\n"......
1640 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 .].....},.....{......."cell_type
1660 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e ":."code",......."execution_coun
1680 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 t":.null,......."metadata":.{...
16a0 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d ......"collapsed":.false.......}
16c0 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f ,......."outputs":.[],......."so
16e0 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 20 41 75 74 68 6f 72 3a 20 45 72 77 61 urce":.[........."#.Author:.Erwa
1700 6e 20 56 61 75 74 69 65 72 20 3c 65 72 77 61 6e 2e 76 61 75 74 69 65 72 40 67 6d 61 69 6c 2e 63 n.Vautier.<erwan.vautier@gmail.c
1720 6f 6d 3e 5c 6e 23 20 20 20 20 20 20 20 20 20 4e 69 63 6f 6c 61 73 20 43 6f 75 72 74 79 20 3c 6e om>\n#.........Nicolas.Courty.<n
1740 63 6f 75 72 74 79 40 69 72 69 73 61 2e 66 72 3e 5c 6e 23 5c 6e 23 20 4c 69 63 65 6e 73 65 3a 20 courty@irisa.fr>\n#\n#.License:.
1760 4d 49 54 20 4c 69 63 65 6e 73 65 5c 6e 5c 6e 69 6d 70 6f 72 74 20 73 63 69 70 79 20 61 73 20 73 MIT.License\n\nimport.scipy.as.s
1780 70 5c 6e 69 6d 70 6f 72 74 20 6e 75 6d 70 79 20 61 73 20 6e 70 5c 6e 69 6d 70 6f 72 74 20 6d 61 p\nimport.numpy.as.np\nimport.ma
17a0 74 70 6c 6f 74 6c 69 62 2e 70 79 6c 61 62 20 61 73 20 70 6c 5c 6e 66 72 6f 6d 20 6d 70 6c 5f 74 tplotlib.pylab.as.pl\nfrom.mpl_t
17c0 6f 6f 6c 6b 69 74 73 2e 6d 70 6c 6f 74 33 64 20 69 6d 70 6f 72 74 20 41 78 65 73 33 44 20 20 23 oolkits.mplot3d.import.Axes3D..#
17e0 20 6e 6f 71 61 5c 6e 69 6d 70 6f 72 74 20 6f 74 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c .noqa\nimport.ot".......].....},
1800 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 .....{......."cell_type":."markd
1820 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 own",......."metadata":.{},.....
1840 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 53 61 6d 70 6c 65 20 74 77 .."source":.[........."Sample.tw
1860 6f 20 47 61 75 73 73 69 61 6e 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 20 28 32 44 20 61 6e 64 o.Gaussian.distributions.(2D.and
1880 20 33 44 29 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .3D)\n--------------------------
18a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 54 68 65 20 47 72 6f 6d 6f -------------------\n\nThe.Gromo
18c0 76 2d 57 61 73 73 65 72 73 74 65 69 6e 20 64 69 73 74 61 6e 63 65 20 61 6c 6c 6f 77 73 20 74 6f v-Wasserstein.distance.allows.to
18e0 20 63 6f 6d 70 75 74 65 20 64 69 73 74 61 6e 63 65 73 20 77 69 74 68 20 73 61 6d 70 6c 65 73 20 .compute.distances.with.samples.
1900 74 68 61 74 5c 6e 64 6f 20 6e 6f 74 20 62 65 6c 6f 6e 67 20 74 6f 20 74 68 65 20 73 61 6d 65 20 that\ndo.not.belong.to.the.same.
1920 6d 65 74 72 69 63 20 73 70 61 63 65 2e 20 46 6f 72 20 64 65 6d 6f 6e 73 74 72 61 74 69 6f 6e 20 metric.space..For.demonstration.
1940 70 75 72 70 6f 73 65 2c 20 77 65 20 73 61 6d 70 6c 65 5c 6e 74 77 6f 20 47 61 75 73 73 69 61 6e purpose,.we.sample\ntwo.Gaussian
1960 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 20 69 6e 20 32 2d 20 61 6e 64 20 33 2d 64 69 6d 65 6e .distributions.in.2-.and.3-dimen
1980 73 69 6f 6e 61 6c 20 73 70 61 63 65 73 2e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 sional.spaces.\n\n".......].....
19a0 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 },.....{......."cell_type":."cod
19c0 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c e",......."execution_count":.nul
19e0 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 l,......."metadata":.{........."
1a00 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 collapsed":.false.......},......
1a20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 ."outputs":.[],......."source":.
1a40 5b 0a 20 20 20 20 20 20 20 20 22 6e 5f 73 61 6d 70 6c 65 73 20 3d 20 33 30 20 20 23 20 6e 62 20 [........."n_samples.=.30..#.nb.
1a60 73 61 6d 70 6c 65 73 5c 6e 5c 6e 6d 75 5f 73 20 3d 20 6e 70 2e 61 72 72 61 79 28 5b 30 2c 20 30 samples\n\nmu_s.=.np.array([0,.0
1a80 5d 29 5c 6e 63 6f 76 5f 73 20 3d 20 6e 70 2e 61 72 72 61 79 28 5b 5b 31 2c 20 30 5d 2c 20 5b 30 ])\ncov_s.=.np.array([[1,.0],.[0
1aa0 2c 20 31 5d 5d 29 5c 6e 5c 6e 6d 75 5f 74 20 3d 20 6e 70 2e 61 72 72 61 79 28 5b 34 2c 20 34 2c ,.1]])\n\nmu_t.=.np.array([4,.4,
1ac0 20 34 5d 29 5c 6e 63 6f 76 5f 74 20 3d 20 6e 70 2e 61 72 72 61 79 28 5b 5b 31 2c 20 30 2c 20 30 .4])\ncov_t.=.np.array([[1,.0,.0
1ae0 5d 2c 20 5b 30 2c 20 31 2c 20 30 5d 2c 20 5b 30 2c 20 30 2c 20 31 5d 5d 29 5c 6e 5c 6e 5c 6e 78 ],.[0,.1,.0],.[0,.0,.1]])\n\n\nx
1b00 73 20 3d 20 6f 74 2e 64 61 74 61 73 65 74 73 2e 6d 61 6b 65 5f 32 44 5f 73 61 6d 70 6c 65 73 5f s.=.ot.datasets.make_2D_samples_
1b20 67 61 75 73 73 28 6e 5f 73 61 6d 70 6c 65 73 2c 20 6d 75 5f 73 2c 20 63 6f 76 5f 73 29 5c 6e 50 gauss(n_samples,.mu_s,.cov_s)\nP
1b40 20 3d 20 73 70 2e 6c 69 6e 61 6c 67 2e 73 71 72 74 6d 28 63 6f 76 5f 74 29 5c 6e 78 74 20 3d 20 .=.sp.linalg.sqrtm(cov_t)\nxt.=.
1b60 6e 70 2e 72 61 6e 64 6f 6d 2e 72 61 6e 64 6e 28 6e 5f 73 61 6d 70 6c 65 73 2c 20 33 29 2e 64 6f np.random.randn(n_samples,.3).do
1b80 74 28 50 29 20 2b 20 6d 75 5f 74 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 t(P).+.mu_t".......].....},.....
1ba0 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c {......."cell_type":."markdown",
1bc0 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f ......."metadata":.{},......."so
1be0 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 50 6c 6f 74 74 69 6e 67 20 74 68 65 20 64 urce":.[........."Plotting.the.d
1c00 69 73 74 72 69 62 75 74 69 6f 6e 73 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d istributions\n------------------
1c20 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 --------\n\n".......].....},....
1c40 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 .{......."cell_type":."code",...
1c60 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 ...."execution_count":.null,....
1c80 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 ..."metadata":.{........."collap
1ca0 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 sed":.false.......},......."outp
1cc0 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 uts":.[],......."source":.[.....
1ce0 20 20 20 20 22 66 69 67 20 3d 20 70 6c 2e 66 69 67 75 72 65 28 29 5c 6e 61 78 31 20 3d 20 66 69 ...."fig.=.pl.figure()\nax1.=.fi
1d00 67 2e 61 64 64 5f 73 75 62 70 6c 6f 74 28 31 32 31 29 5c 6e 61 78 31 2e 70 6c 6f 74 28 78 73 5b g.add_subplot(121)\nax1.plot(xs[
1d20 3a 2c 20 30 5d 2c 20 78 73 5b 3a 2c 20 31 5d 2c 20 27 2b 62 27 2c 20 6c 61 62 65 6c 3d 27 53 6f :,.0],.xs[:,.1],.'+b',.label='So
1d40 75 72 63 65 20 73 61 6d 70 6c 65 73 27 29 5c 6e 61 78 32 20 3d 20 66 69 67 2e 61 64 64 5f 73 75 urce.samples')\nax2.=.fig.add_su
1d60 62 70 6c 6f 74 28 31 32 32 2c 20 70 72 6f 6a 65 63 74 69 6f 6e 3d 27 33 64 27 29 5c 6e 61 78 32 bplot(122,.projection='3d')\nax2
1d80 2e 73 63 61 74 74 65 72 28 78 74 5b 3a 2c 20 30 5d 2c 20 78 74 5b 3a 2c 20 31 5d 2c 20 78 74 5b .scatter(xt[:,.0],.xt[:,.1],.xt[
1da0 3a 2c 20 32 5d 2c 20 63 6f 6c 6f 72 3d 27 72 27 29 5c 6e 70 6c 2e 73 68 6f 77 28 29 22 0a 20 20 :,.2],.color='r')\npl.show()"...
1dc0 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 ....].....},.....{......."cell_t
1de0 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 ype":."markdown",......."metadat
1e00 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 a":.{},......."source":.[.......
1e20 20 20 22 43 6f 6d 70 75 74 65 20 64 69 73 74 61 6e 63 65 20 6b 65 72 6e 65 6c 73 2c 20 6e 6f 72 .."Compute.distance.kernels,.nor
1e40 6d 61 6c 69 7a 65 20 74 68 65 6d 20 61 6e 64 20 74 68 65 6e 20 64 69 73 70 6c 61 79 5c 6e 2d 2d malize.them.and.then.display\n--
1e60 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
1e80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 -----------------------\n\n"....
1ea0 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 ...].....},.....{......."cell_ty
1ec0 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f pe":."code",......."execution_co
1ee0 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a unt":.null,......."metadata":.{.
1f00 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 ........"collapsed":.false......
1f20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 .},......."outputs":.[],......."
1f40 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 31 20 3d 20 73 70 2e 73 70 61 74 source":.[........."C1.=.sp.spat
1f60 69 61 6c 2e 64 69 73 74 61 6e 63 65 2e 63 64 69 73 74 28 78 73 2c 20 78 73 29 5c 6e 43 32 20 3d ial.distance.cdist(xs,.xs)\nC2.=
1f80 20 73 70 2e 73 70 61 74 69 61 6c 2e 64 69 73 74 61 6e 63 65 2e 63 64 69 73 74 28 78 74 2c 20 78 .sp.spatial.distance.cdist(xt,.x
1fa0 74 29 5c 6e 5c 6e 43 31 20 2f 3d 20 43 31 2e 6d 61 78 28 29 5c 6e 43 32 20 2f 3d 20 43 32 2e 6d t)\n\nC1./=.C1.max()\nC2./=.C2.m
1fc0 61 78 28 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 29 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 ax()\n\npl.figure()\npl.subplot(
1fe0 31 32 31 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 43 31 29 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 121)\npl.imshow(C1)\npl.subplot(
2000 31 32 32 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 43 32 29 5c 6e 70 6c 2e 73 68 6f 77 28 29 22 0a 122)\npl.imshow(C2)\npl.show()".
2020 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c ......].....},.....{......."cell
2040 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 _type":."markdown",......."metad
2060 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 ata":.{},......."source":.[.....
2080 20 20 20 20 22 43 6f 6d 70 75 74 65 20 47 72 6f 6d 6f 76 2d 57 61 73 73 65 72 73 74 65 69 6e 20 ...."Compute.Gromov-Wasserstein.
20a0 70 6c 61 6e 73 20 61 6e 64 20 64 69 73 74 61 6e 63 65 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d plans.and.distance\n------------
20c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
20e0 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 -\n\n".......].....},.....{.....
2100 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 .."cell_type":."code",......."ex
2120 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 ecution_count":.null,......."met
2140 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 adata":.{........."collapsed":.f
2160 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b alse.......},......."outputs":.[
2180 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 70 20 ],......."source":.[........."p.
21a0 3d 20 6f 74 2e 75 6e 69 66 28 6e 5f 73 61 6d 70 6c 65 73 29 5c 6e 71 20 3d 20 6f 74 2e 75 6e 69 =.ot.unif(n_samples)\nq.=.ot.uni
21c0 66 28 6e 5f 73 61 6d 70 6c 65 73 29 5c 6e 5c 6e 67 77 30 2c 20 6c 6f 67 30 20 3d 20 6f 74 2e 67 f(n_samples)\n\ngw0,.log0.=.ot.g
21e0 72 6f 6d 6f 76 2e 67 72 6f 6d 6f 76 5f 77 61 73 73 65 72 73 74 65 69 6e 28 5c 6e 20 20 20 20 43 romov.gromov_wasserstein(\n....C
2200 31 2c 20 43 32 2c 20 70 2c 20 71 2c 20 27 73 71 75 61 72 65 5f 6c 6f 73 73 27 2c 20 76 65 72 62 1,.C2,.p,.q,.'square_loss',.verb
2220 6f 73 65 3d 54 72 75 65 2c 20 6c 6f 67 3d 54 72 75 65 29 5c 6e 5c 6e 67 77 2c 20 6c 6f 67 20 3d ose=True,.log=True)\n\ngw,.log.=
2240 20 6f 74 2e 67 72 6f 6d 6f 76 2e 65 6e 74 72 6f 70 69 63 5f 67 72 6f 6d 6f 76 5f 77 61 73 73 65 .ot.gromov.entropic_gromov_wasse
2260 72 73 74 65 69 6e 28 5c 6e 20 20 20 20 43 31 2c 20 43 32 2c 20 70 2c 20 71 2c 20 27 73 71 75 61 rstein(\n....C1,.C2,.p,.q,.'squa
2280 72 65 5f 6c 6f 73 73 27 2c 20 65 70 73 69 6c 6f 6e 3d 35 65 2d 34 2c 20 6c 6f 67 3d 54 72 75 65 re_loss',.epsilon=5e-4,.log=True
22a0 2c 20 76 65 72 62 6f 73 65 3d 54 72 75 65 29 5c 6e 5c 6e 5c 6e 70 72 69 6e 74 28 27 47 72 6f 6d ,.verbose=True)\n\n\nprint('Grom
22c0 6f 76 2d 57 61 73 73 65 72 73 74 65 69 6e 20 64 69 73 74 61 6e 63 65 73 3a 20 27 20 2b 20 73 74 ov-Wasserstein.distances:.'.+.st
22e0 72 28 6c 6f 67 30 5b 27 67 77 5f 64 69 73 74 27 5d 29 29 5c 6e 70 72 69 6e 74 28 27 45 6e 74 72 r(log0['gw_dist']))\nprint('Entr
2300 6f 70 69 63 20 47 72 6f 6d 6f 76 2d 57 61 73 73 65 72 73 74 65 69 6e 20 64 69 73 74 61 6e 63 65 opic.Gromov-Wasserstein.distance
2320 73 3a 20 27 20 2b 20 73 74 72 28 6c 6f 67 5b 27 67 77 5f 64 69 73 74 27 5d 29 29 5c 6e 5c 6e 5c s:.'.+.str(log['gw_dist']))\n\n\
2340 6e 70 6c 2e 66 69 67 75 72 65 28 31 2c 20 28 31 30 2c 20 35 29 29 5c 6e 5c 6e 70 6c 2e 73 75 62 npl.figure(1,.(10,.5))\n\npl.sub
2360 70 6c 6f 74 28 31 2c 20 32 2c 20 31 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 67 77 30 2c 20 63 6d plot(1,.2,.1)\npl.imshow(gw0,.cm
2380 61 70 3d 27 6a 65 74 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 47 72 6f 6d 6f 76 20 57 61 73 73 ap='jet')\npl.title('Gromov.Wass
23a0 65 72 73 74 65 69 6e 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 20 32 2c 20 32 29 erstein')\n\npl.subplot(1,.2,.2)
23c0 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 67 77 2c 20 63 6d 61 70 3d 27 6a 65 74 27 29 5c 6e 70 6c 2e \npl.imshow(gw,.cmap='jet')\npl.
23e0 74 69 74 6c 65 28 27 45 6e 74 72 6f 70 69 63 20 47 72 6f 6d 6f 76 20 57 61 73 73 65 72 73 74 65 title('Entropic.Gromov.Wasserste
2400 69 6e 27 29 5c 6e 5c 6e 70 6c 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d in')\n\npl.show()".......].....}
2420 0a 20 20 5d 2c 0a 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 22 6b 65 72 6e 65 ...],..."metadata":.{....."kerne
2440 6c 73 70 65 63 22 3a 20 7b 0a 20 20 20 20 20 20 22 64 69 73 70 6c 61 79 5f 6e 61 6d 65 22 3a 20 lspec":.{......."display_name":.
2460 22 50 79 74 68 6f 6e 20 33 22 2c 0a 20 20 20 20 20 20 22 6c 61 6e 67 75 61 67 65 22 3a 20 22 70 "Python.3",......."language":."p
2480 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 33 22 0a ython",......."name":."python3".
24a0 20 20 20 20 7d 2c 0a 20 20 20 20 22 6c 61 6e 67 75 61 67 65 5f 69 6e 66 6f 22 3a 20 7b 0a 20 20 ....},....."language_info":.{...
24c0 20 20 20 20 22 63 6f 64 65 6d 69 72 72 6f 72 5f 6d 6f 64 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 ...."codemirror_mode":.{........
24e0 20 22 6e 61 6d 65 22 3a 20 22 69 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 20 20 22 76 65 72 ."name":."ipython",........."ver
2500 73 69 6f 6e 22 3a 20 33 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 66 69 6c 65 5f 65 78 sion":.3.......},......."file_ex
2520 74 65 6e 73 69 6f 6e 22 3a 20 22 2e 70 79 22 2c 0a 20 20 20 20 20 20 22 6d 69 6d 65 74 79 70 65 tension":.".py",......."mimetype
2540 22 3a 20 22 74 65 78 74 2f 78 2d 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 ":."text/x-python",......."name"
2560 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 62 63 6f 6e 76 65 72 74 5f 65 78 70 :."python",......."nbconvert_exp
2580 6f 72 74 65 72 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 70 79 67 6d 65 6e 74 orter":."python",......."pygment
25a0 73 5f 6c 65 78 65 72 22 3a 20 22 69 70 79 74 68 6f 6e 33 22 2c 0a 20 20 20 20 20 20 22 76 65 72 s_lexer":."ipython3",......."ver
25c0 73 69 6f 6e 22 3a 20 22 33 2e 36 2e 39 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 6e 62 66 sion":."3.6.9".....}...},..."nbf
25e0 6f 72 6d 61 74 22 3a 20 34 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 5f 6d 69 6e 6f 72 22 3a 20 30 ormat":.4,..."nbformat_minor":.0
2600 0a 7d 50 4b 03 04 14 00 00 00 00 00 d6 72 94 50 12 6c 09 29 78 22 00 00 78 22 00 00 19 00 00 00 .}PK.........r.P.l.)x"..x"......
2620 70 6c 6f 74 5f 62 61 72 79 63 65 6e 74 65 72 5f 66 67 77 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 plot_barycenter_fgw.ipynb{..."ce
2640 6c 6c 73 22 3a 20 5b 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a lls":.[.....{......."cell_type":
2660 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 ."code",......."execution_count"
2680 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 :.null,......."metadata":.{.....
26a0 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a ...."collapsed":.false.......},.
26c0 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 ......"outputs":.[],......."sour
26e0 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 25 6d 61 74 70 6c 6f 74 6c 69 62 20 69 6e 6c 69 ce":.[........."%matplotlib.inli
2700 6e 65 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 ne".......].....},.....{......."
2720 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d cell_type":."markdown",......."m
2740 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a etadata":.{},......."source":.[.
2760 20 20 20 20 20 20 20 20 22 5c 6e 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ........"\n=====================
2780 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 5c 6e 50 6c 6f 74 20 67 72 61 70 68 73 27 20 62 61 72 79 63 ============\nPlot.graphs'.baryc
27a0 65 6e 74 65 72 20 75 73 69 6e 67 20 46 47 57 5c 6e 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d enter.using.FGW\n===============
27c0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 5c 6e 5c 6e 54 68 69 73 20 65 78 61 6d 70 ==================\n\nThis.examp
27e0 6c 65 20 69 6c 6c 75 73 74 72 61 74 65 73 20 74 68 65 20 63 6f 6d 70 75 74 61 74 69 6f 6e 20 62 le.illustrates.the.computation.b
2800 61 72 79 63 65 6e 74 65 72 20 6f 66 20 6c 61 62 65 6c 65 64 20 67 72 61 70 68 73 20 75 73 69 6e arycenter.of.labeled.graphs.usin
2820 67 20 46 47 57 5c 6e 5c 6e 52 65 71 75 69 72 65 73 20 6e 65 74 77 6f 72 6b 78 20 3e 3d 32 5c 6e g.FGW\n\nRequires.networkx.>=2\n
2840 5c 6e 2e 2e 20 5b 31 38 5d 20 56 61 79 65 72 20 54 69 74 6f 75 61 6e 2c 20 43 68 61 70 65 6c 20 \n...[18].Vayer.Titouan,.Chapel.
2860 4c 61 65 74 69 74 69 61 2c 20 46 6c 61 6d 61 72 79 20 52 7b 27 65 7d 6d 69 2c 20 54 61 76 65 6e Laetitia,.Flamary.R{'e}mi,.Taven
2880 61 72 64 20 52 6f 6d 61 69 6e 5c 6e 20 20 20 20 20 20 61 6e 64 20 43 6f 75 72 74 79 20 4e 69 63 ard.Romain\n......and.Courty.Nic
28a0 6f 6c 61 73 5c 6e 20 20 20 20 5c 22 4f 70 74 69 6d 61 6c 20 54 72 61 6e 73 70 6f 72 74 20 66 6f olas\n....\"Optimal.Transport.fo
28c0 72 20 73 74 72 75 63 74 75 72 65 64 20 64 61 74 61 20 77 69 74 68 20 61 70 70 6c 69 63 61 74 69 r.structured.data.with.applicati
28e0 6f 6e 20 6f 6e 20 67 72 61 70 68 73 5c 22 5c 6e 20 20 20 20 49 6e 74 65 72 6e 61 74 69 6f 6e 61 on.on.graphs\"\n....Internationa
2900 6c 20 43 6f 6e 66 65 72 65 6e 63 65 20 6f 6e 20 4d 61 63 68 69 6e 65 20 4c 65 61 72 6e 69 6e 67 l.Conference.on.Machine.Learning
2920 20 28 49 43 4d 4c 29 2e 20 32 30 31 39 2e 5c 6e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 .(ICML)..2019.\n\n\n".......]...
2940 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 ..},.....{......."cell_type":."c
2960 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e ode",......."execution_count":.n
2980 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 ull,......."metadata":.{........
29a0 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 ."collapsed":.false.......},....
29c0 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 ..."outputs":.[],......."source"
29e0 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 20 41 75 74 68 6f 72 3a 20 54 69 74 6f 75 61 6e 20 56 :.[........."#.Author:.Titouan.V
2a00 61 79 65 72 20 3c 74 69 74 6f 75 61 6e 2e 76 61 79 65 72 40 69 72 69 73 61 2e 66 72 3e 5c 6e 23 ayer.<titouan.vayer@irisa.fr>\n#
2a20 5c 6e 23 20 4c 69 63 65 6e 73 65 3a 20 4d 49 54 20 4c 69 63 65 6e 73 65 22 0a 20 20 20 20 20 20 \n#.License:.MIT.License".......
2a40 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 ].....},.....{......."cell_type"
2a60 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 :."code",......."execution_count
2a80 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 ":.null,......."metadata":.{....
2aa0 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c ....."collapsed":.false.......},
2ac0 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 ......."outputs":.[],......."sou
2ae0 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 69 6d 70 6f 72 74 20 6e 75 6d 70 79 20 61 73 rce":.[........."import.numpy.as
2b00 20 6e 70 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 70 6c 6f 74 20 61 73 .np\nimport.matplotlib.pyplot.as
2b20 20 70 6c 74 5c 6e 69 6d 70 6f 72 74 20 6e 65 74 77 6f 72 6b 78 20 61 73 20 6e 78 5c 6e 69 6d 70 .plt\nimport.networkx.as.nx\nimp
2b40 6f 72 74 20 6d 61 74 68 5c 6e 66 72 6f 6d 20 73 63 69 70 79 2e 73 70 61 72 73 65 2e 63 73 67 72 ort.math\nfrom.scipy.sparse.csgr
2b60 61 70 68 20 69 6d 70 6f 72 74 20 73 68 6f 72 74 65 73 74 5f 70 61 74 68 5c 6e 69 6d 70 6f 72 74 aph.import.shortest_path\nimport
2b80 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 63 6f 6c 6f 72 73 20 61 73 20 6d 63 6f 6c 5c 6e 66 72 6f 6d .matplotlib.colors.as.mcol\nfrom
2ba0 20 6d 61 74 70 6c 6f 74 6c 69 62 20 69 6d 70 6f 72 74 20 63 6d 5c 6e 66 72 6f 6d 20 6f 74 2e 67 .matplotlib.import.cm\nfrom.ot.g
2bc0 72 6f 6d 6f 76 20 69 6d 70 6f 72 74 20 66 67 77 5f 62 61 72 79 63 65 6e 74 65 72 73 22 0a 20 20 romov.import.fgw_barycenters"...
2be0 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 ....].....},.....{......."cell_t
2c00 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 ype":."code",......."execution_c
2c20 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b ount":.null,......."metadata":.{
2c40 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 ........."collapsed":.false.....
2c60 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 ..},......."outputs":.[],.......
2c80 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 64 65 66 20 66 69 6e 64 5f 74 68 "source":.[........."def.find_th
2ca0 72 65 73 68 28 43 2c 20 69 6e 66 3d 30 2e 35 2c 20 73 75 70 3d 33 2c 20 73 74 65 70 3d 31 30 29 resh(C,.inf=0.5,.sup=3,.step=10)
2cc0 3a 5c 6e 20 20 20 20 5c 22 5c 22 5c 22 20 54 72 69 63 6b 20 74 6f 20 66 69 6e 64 20 74 68 65 20 :\n....\"\"\".Trick.to.find.the.
2ce0 61 64 65 71 75 61 74 65 20 74 68 72 65 73 68 6f 6c 64 73 20 66 72 6f 6d 20 77 68 65 72 65 20 76 adequate.thresholds.from.where.v
2d00 61 6c 75 65 20 6f 66 20 74 68 65 20 43 20 6d 61 74 72 69 78 20 61 72 65 20 63 6f 6e 73 69 64 65 alue.of.the.C.matrix.are.conside
2d20 72 65 64 20 63 6c 6f 73 65 20 65 6e 6f 75 67 68 20 74 6f 20 73 61 79 20 74 68 61 74 20 6e 6f 64 red.close.enough.to.say.that.nod
2d40 65 73 20 61 72 65 20 63 6f 6e 6e 65 63 74 65 64 5c 6e 20 20 20 20 20 20 20 20 54 74 68 65 20 74 es.are.connected\n........Tthe.t
2d60 68 72 65 73 68 6f 6c 64 20 69 73 20 66 6f 75 6e 64 20 62 79 20 61 20 6c 69 6e 65 73 65 61 72 63 hreshold.is.found.by.a.linesearc
2d80 68 20 62 65 74 77 65 65 6e 20 76 61 6c 75 65 73 20 5c 22 69 6e 66 5c 22 20 61 6e 64 20 5c 22 73 h.between.values.\"inf\".and.\"s
2da0 75 70 5c 22 20 77 69 74 68 20 5c 22 73 74 65 70 5c 22 20 74 68 72 65 73 68 6f 6c 64 73 20 74 65 up\".with.\"step\".thresholds.te
2dc0 73 74 65 64 2e 5c 6e 20 20 20 20 20 20 20 20 54 68 65 20 6f 70 74 69 6d 61 6c 20 74 68 72 65 73 sted.\n........The.optimal.thres
2de0 68 6f 6c 64 20 69 73 20 74 68 65 20 6f 6e 65 20 77 68 69 63 68 20 6d 69 6e 69 6d 69 7a 65 73 20 hold.is.the.one.which.minimizes.
2e00 74 68 65 20 72 65 63 6f 6e 73 74 72 75 63 74 69 6f 6e 20 65 72 72 6f 72 20 62 65 74 77 65 65 6e the.reconstruction.error.between
2e20 20 74 68 65 20 73 68 6f 72 74 65 73 74 5f 70 61 74 68 20 6d 61 74 72 69 78 20 63 6f 6d 69 6e 67 .the.shortest_path.matrix.coming
2e40 20 66 72 6f 6d 20 74 68 65 20 74 68 72 65 73 68 6f 6c 64 65 64 20 61 64 6a 65 6e 63 79 20 6d 61 .from.the.thresholded.adjency.ma
2e60 74 72 69 78 5c 6e 20 20 20 20 20 20 20 20 61 6e 64 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 6d trix\n........and.the.original.m
2e80 61 74 72 69 78 2e 5c 6e 20 20 20 20 50 61 72 61 6d 65 74 65 72 73 5c 6e 20 20 20 20 2d 2d 2d 2d atrix.\n....Parameters\n....----
2ea0 2d 2d 2d 2d 2d 2d 5c 6e 20 20 20 20 43 20 3a 20 6e 64 61 72 72 61 79 2c 20 73 68 61 70 65 20 28 ------\n....C.:.ndarray,.shape.(
2ec0 6e 5f 6e 6f 64 65 73 2c 6e 5f 6e 6f 64 65 73 29 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 54 68 n_nodes,n_nodes)\n............Th
2ee0 65 20 73 74 72 75 63 74 75 72 65 20 6d 61 74 72 69 78 20 74 6f 20 74 68 72 65 73 68 6f 6c 64 5c e.structure.matrix.to.threshold\
2f00 6e 20 20 20 20 69 6e 66 20 3a 20 66 6c 6f 61 74 5c 6e 20 20 20 20 20 20 20 20 20 20 54 68 65 20 n....inf.:.float\n..........The.
2f20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 20 6c 69 6e 65 73 65 61 72 63 68 5c 6e 20 20 20 beginning.of.the.linesearch\n...
2f40 20 73 75 70 20 3a 20 66 6c 6f 61 74 5c 6e 20 20 20 20 20 20 20 20 20 20 54 68 65 20 65 6e 64 20 .sup.:.float\n..........The.end.
2f60 6f 66 20 74 68 65 20 6c 69 6e 65 73 65 61 72 63 68 5c 6e 20 20 20 20 73 74 65 70 20 3a 20 69 6e of.the.linesearch\n....step.:.in
2f80 74 65 67 65 72 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 4e 75 6d 62 65 72 20 6f 66 20 74 68 72 teger\n............Number.of.thr
2fa0 65 73 68 6f 6c 64 73 20 74 65 73 74 65 64 5c 6e 20 20 20 20 5c 22 5c 22 5c 22 5c 6e 20 20 20 20 esholds.tested\n....\"\"\"\n....
2fc0 64 69 73 74 20 3d 20 5b 5d 5c 6e 20 20 20 20 73 65 61 72 63 68 20 3d 20 6e 70 2e 6c 69 6e 73 70 dist.=.[]\n....search.=.np.linsp
2fe0 61 63 65 28 69 6e 66 2c 20 73 75 70 2c 20 73 74 65 70 29 5c 6e 20 20 20 20 66 6f 72 20 74 68 72 ace(inf,.sup,.step)\n....for.thr
3000 65 73 68 20 69 6e 20 73 65 61 72 63 68 3a 5c 6e 20 20 20 20 20 20 20 20 43 70 72 69 6d 65 20 3d esh.in.search:\n........Cprime.=
3020 20 73 70 5f 74 6f 5f 61 64 6a 65 6e 63 79 28 43 2c 20 30 2c 20 74 68 72 65 73 68 29 5c 6e 20 20 .sp_to_adjency(C,.0,.thresh)\n..
3040 20 20 20 20 20 20 53 43 20 3d 20 73 68 6f 72 74 65 73 74 5f 70 61 74 68 28 43 70 72 69 6d 65 2c ......SC.=.shortest_path(Cprime,
3060 20 6d 65 74 68 6f 64 3d 27 44 27 29 5c 6e 20 20 20 20 20 20 20 20 53 43 5b 53 43 20 3d 3d 20 66 .method='D')\n........SC[SC.==.f
3080 6c 6f 61 74 28 27 69 6e 66 27 29 5d 20 3d 20 31 30 30 5c 6e 20 20 20 20 20 20 20 20 64 69 73 74 loat('inf')].=.100\n........dist
30a0 2e 61 70 70 65 6e 64 28 6e 70 2e 6c 69 6e 61 6c 67 2e 6e 6f 72 6d 28 53 43 20 2d 20 43 29 29 5c .append(np.linalg.norm(SC.-.C))\
30c0 6e 20 20 20 20 72 65 74 75 72 6e 20 73 65 61 72 63 68 5b 6e 70 2e 61 72 67 6d 69 6e 28 64 69 73 n....return.search[np.argmin(dis
30e0 74 29 5d 2c 20 64 69 73 74 5c 6e 5c 6e 5c 6e 64 65 66 20 73 70 5f 74 6f 5f 61 64 6a 65 6e 63 79 t)],.dist\n\n\ndef.sp_to_adjency
3100 28 43 2c 20 74 68 72 65 73 68 69 6e 66 3d 30 2e 32 2c 20 74 68 72 65 73 68 73 75 70 3d 31 2e 38 (C,.threshinf=0.2,.threshsup=1.8
3120 29 3a 5c 6e 20 20 20 20 5c 22 5c 22 5c 22 20 54 68 72 65 73 68 6f 6c 64 73 20 74 68 65 20 73 74 ):\n....\"\"\".Thresholds.the.st
3140 72 75 63 74 75 72 65 20 6d 61 74 72 69 78 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 63 6f 6d 70 75 ructure.matrix.in.order.to.compu
3160 74 65 20 61 6e 20 61 64 6a 65 6e 63 79 20 6d 61 74 72 69 78 2e 5c 6e 20 20 20 20 41 6c 6c 20 76 te.an.adjency.matrix.\n....All.v
3180 61 6c 75 65 73 20 62 65 74 77 65 65 6e 20 74 68 72 65 73 68 69 6e 66 20 61 6e 64 20 74 68 72 65 alues.between.threshinf.and.thre
31a0 73 68 73 75 70 20 61 72 65 20 63 6f 6e 73 69 64 65 72 65 64 20 72 65 70 72 65 73 65 6e 74 69 6e shsup.are.considered.representin
31c0 67 20 63 6f 6e 6e 65 63 74 65 64 20 6e 6f 64 65 73 20 61 6e 64 20 73 65 74 20 74 6f 20 31 2e 20 g.connected.nodes.and.set.to.1..
31e0 45 6c 73 65 20 61 72 65 20 73 65 74 20 74 6f 20 30 5c 6e 20 20 20 20 50 61 72 61 6d 65 74 65 72 Else.are.set.to.0\n....Parameter
3200 73 5c 6e 20 20 20 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 20 20 20 20 43 20 3a 20 6e 64 61 72 72 s\n....----------\n....C.:.ndarr
3220 61 79 2c 20 73 68 61 70 65 20 28 6e 5f 6e 6f 64 65 73 2c 6e 5f 6e 6f 64 65 73 29 5c 6e 20 20 20 ay,.shape.(n_nodes,n_nodes)\n...
3240 20 20 20 20 20 54 68 65 20 73 74 72 75 63 74 75 72 65 20 6d 61 74 72 69 78 20 74 6f 20 74 68 72 .....The.structure.matrix.to.thr
3260 65 73 68 6f 6c 64 5c 6e 20 20 20 20 74 68 72 65 73 68 69 6e 66 20 3a 20 66 6c 6f 61 74 5c 6e 20 eshold\n....threshinf.:.float\n.
3280 20 20 20 20 20 20 20 54 68 65 20 6d 69 6e 69 6d 75 6d 20 76 61 6c 75 65 20 6f 66 20 64 69 73 74 .......The.minimum.value.of.dist
32a0 61 6e 63 65 20 66 72 6f 6d 20 77 68 69 63 68 20 74 68 65 20 6e 65 77 20 76 61 6c 75 65 20 69 73 ance.from.which.the.new.value.is
32c0 20 73 65 74 20 74 6f 20 31 5c 6e 20 20 20 20 74 68 72 65 73 68 73 75 70 20 3a 20 66 6c 6f 61 74 .set.to.1\n....threshsup.:.float
32e0 5c 6e 20 20 20 20 20 20 20 20 54 68 65 20 6d 61 78 69 6d 75 6d 20 76 61 6c 75 65 20 6f 66 20 64 \n........The.maximum.value.of.d
3300 69 73 74 61 6e 63 65 20 66 72 6f 6d 20 77 68 69 63 68 20 74 68 65 20 6e 65 77 20 76 61 6c 75 65 istance.from.which.the.new.value
3320 20 69 73 20 73 65 74 20 74 6f 20 31 5c 6e 20 20 20 20 52 65 74 75 72 6e 73 5c 6e 20 20 20 20 2d .is.set.to.1\n....Returns\n....-
3340 2d 2d 2d 2d 2d 2d 5c 6e 20 20 20 20 43 20 3a 20 6e 64 61 72 72 61 79 2c 20 73 68 61 70 65 20 28 ------\n....C.:.ndarray,.shape.(
3360 6e 5f 6e 6f 64 65 73 2c 6e 5f 6e 6f 64 65 73 29 5c 6e 20 20 20 20 20 20 20 20 54 68 65 20 74 68 n_nodes,n_nodes)\n........The.th
3380 72 65 73 68 6f 6c 64 20 6d 61 74 72 69 78 2e 20 45 61 63 68 20 65 6c 65 6d 65 6e 74 20 69 73 20 reshold.matrix..Each.element.is.
33a0 69 6e 20 7b 30 2c 31 7d 5c 6e 20 20 20 20 5c 22 5c 22 5c 22 5c 6e 20 20 20 20 48 20 3d 20 6e 70 in.{0,1}\n....\"\"\"\n....H.=.np
33c0 2e 7a 65 72 6f 73 5f 6c 69 6b 65 28 43 29 5c 6e 20 20 20 20 6e 70 2e 66 69 6c 6c 5f 64 69 61 67 .zeros_like(C)\n....np.fill_diag
33e0 6f 6e 61 6c 28 48 2c 20 6e 70 2e 64 69 61 67 6f 6e 61 6c 28 43 29 29 5c 6e 20 20 20 20 43 20 3d onal(H,.np.diagonal(C))\n....C.=
3400 20 43 20 2d 20 48 5c 6e 20 20 20 20 43 20 3d 20 6e 70 2e 6d 69 6e 69 6d 75 6d 28 6e 70 2e 6d 61 .C.-.H\n....C.=.np.minimum(np.ma
3420 78 69 6d 75 6d 28 43 2c 20 74 68 72 65 73 68 69 6e 66 29 2c 20 74 68 72 65 73 68 73 75 70 29 5c ximum(C,.threshinf),.threshsup)\
3440 6e 20 20 20 20 43 5b 43 20 3d 3d 20 74 68 72 65 73 68 73 75 70 5d 20 3d 20 30 5c 6e 20 20 20 20 n....C[C.==.threshsup].=.0\n....
3460 43 5b 43 20 21 3d 20 30 5d 20 3d 20 31 5c 6e 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 43 5c 6e 5c C[C.!=.0].=.1\n\n....return.C\n\
3480 6e 5c 6e 64 65 66 20 62 75 69 6c 64 5f 6e 6f 69 73 79 5f 63 69 72 63 75 6c 61 72 5f 67 72 61 70 n\ndef.build_noisy_circular_grap
34a0 68 28 4e 3d 32 30 2c 20 6d 75 3d 30 2c 20 73 69 67 6d 61 3d 30 2e 33 2c 20 77 69 74 68 5f 6e 6f h(N=20,.mu=0,.sigma=0.3,.with_no
34c0 69 73 65 3d 46 61 6c 73 65 2c 20 73 74 72 75 63 74 75 72 65 5f 6e 6f 69 73 65 3d 46 61 6c 73 65 ise=False,.structure_noise=False
34e0 2c 20 70 3d 4e 6f 6e 65 29 3a 5c 6e 20 20 20 20 5c 22 5c 22 5c 22 20 43 72 65 61 74 65 20 61 20 ,.p=None):\n....\"\"\".Create.a.
3500 6e 6f 69 73 79 20 63 69 72 63 75 6c 61 72 20 67 72 61 70 68 5c 6e 20 20 20 20 5c 22 5c 22 5c 22 noisy.circular.graph\n....\"\"\"
3520 5c 6e 20 20 20 20 67 20 3d 20 6e 78 2e 47 72 61 70 68 28 29 5c 6e 20 20 20 20 67 2e 61 64 64 5f \n....g.=.nx.Graph()\n....g.add_
3540 6e 6f 64 65 73 5f 66 72 6f 6d 28 6c 69 73 74 28 72 61 6e 67 65 28 4e 29 29 29 5c 6e 20 20 20 20 nodes_from(list(range(N)))\n....
3560 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 65 28 4e 29 3a 5c 6e 20 20 20 20 20 20 20 20 6e 6f 69 73 for.i.in.range(N):\n........nois
3580 65 20 3d 20 66 6c 6f 61 74 28 6e 70 2e 72 61 6e 64 6f 6d 2e 6e 6f 72 6d 61 6c 28 6d 75 2c 20 73 e.=.float(np.random.normal(mu,.s
35a0 69 67 6d 61 2c 20 31 29 29 5c 6e 20 20 20 20 20 20 20 20 69 66 20 77 69 74 68 5f 6e 6f 69 73 65 igma,.1))\n........if.with_noise
35c0 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 67 2e 61 64 64 5f 6e 6f 64 65 28 69 2c 20 61 74 74 :\n............g.add_node(i,.att
35e0 72 5f 6e 61 6d 65 3d 6d 61 74 68 2e 73 69 6e 28 28 32 20 2a 20 69 20 2a 20 6d 61 74 68 2e 70 69 r_name=math.sin((2.*.i.*.math.pi
3600 20 2f 20 4e 29 29 20 2b 20 6e 6f 69 73 65 29 5c 6e 20 20 20 20 20 20 20 20 65 6c 73 65 3a 5c 6e ./.N)).+.noise)\n........else:\n
3620 20 20 20 20 20 20 20 20 20 20 20 20 67 2e 61 64 64 5f 6e 6f 64 65 28 69 2c 20 61 74 74 72 5f 6e ............g.add_node(i,.attr_n
3640 61 6d 65 3d 6d 61 74 68 2e 73 69 6e 28 32 20 2a 20 69 20 2a 20 6d 61 74 68 2e 70 69 20 2f 20 4e ame=math.sin(2.*.i.*.math.pi./.N
3660 29 29 5c 6e 20 20 20 20 20 20 20 20 67 2e 61 64 64 5f 65 64 67 65 28 69 2c 20 69 20 2b 20 31 29 ))\n........g.add_edge(i,.i.+.1)
3680 5c 6e 20 20 20 20 20 20 20 20 69 66 20 73 74 72 75 63 74 75 72 65 5f 6e 6f 69 73 65 3a 5c 6e 20 \n........if.structure_noise:\n.
36a0 20 20 20 20 20 20 20 20 20 20 20 72 61 6e 64 6f 6d 69 6e 74 20 3d 20 6e 70 2e 72 61 6e 64 6f 6d ...........randomint.=.np.random
36c0 2e 72 61 6e 64 69 6e 74 28 30 2c 20 70 29 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 72 .randint(0,.p)\n............if.r
36e0 61 6e 64 6f 6d 69 6e 74 20 3d 3d 20 30 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 andomint.==.0:\n................
3700 69 66 20 69 20 3c 3d 20 4e 20 2d 20 33 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 if.i.<=.N.-.3:\n................
3720 20 20 20 20 67 2e 61 64 64 5f 65 64 67 65 28 69 2c 20 69 20 2b 20 32 29 5c 6e 20 20 20 20 20 20 ....g.add_edge(i,.i.+.2)\n......
3740 20 20 20 20 20 20 20 20 20 20 69 66 20 69 20 3d 3d 20 4e 20 2d 20 32 3a 5c 6e 20 20 20 20 20 20 ..........if.i.==.N.-.2:\n......
3760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 2e 61 64 64 5f 65 64 67 65 28 69 2c 20 30 29 5c 6e ..............g.add_edge(i,.0)\n
3780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 69 20 3d 3d 20 4e 20 2d 20 31 3a 5c 6e ................if.i.==.N.-.1:\n
37a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 2e 61 64 64 5f 65 64 67 65 28 69 ....................g.add_edge(i
37c0 2c 20 31 29 5c 6e 20 20 20 20 67 2e 61 64 64 5f 65 64 67 65 28 4e 2c 20 30 29 5c 6e 20 20 20 20 ,.1)\n....g.add_edge(N,.0)\n....
37e0 6e 6f 69 73 65 20 3d 20 66 6c 6f 61 74 28 6e 70 2e 72 61 6e 64 6f 6d 2e 6e 6f 72 6d 61 6c 28 6d noise.=.float(np.random.normal(m
3800 75 2c 20 73 69 67 6d 61 2c 20 31 29 29 5c 6e 20 20 20 20 69 66 20 77 69 74 68 5f 6e 6f 69 73 65 u,.sigma,.1))\n....if.with_noise
3820 3a 5c 6e 20 20 20 20 20 20 20 20 67 2e 61 64 64 5f 6e 6f 64 65 28 4e 2c 20 61 74 74 72 5f 6e 61 :\n........g.add_node(N,.attr_na
3840 6d 65 3d 6d 61 74 68 2e 73 69 6e 28 28 32 20 2a 20 4e 20 2a 20 6d 61 74 68 2e 70 69 20 2f 20 4e me=math.sin((2.*.N.*.math.pi./.N
3860 29 29 20 2b 20 6e 6f 69 73 65 29 5c 6e 20 20 20 20 65 6c 73 65 3a 5c 6e 20 20 20 20 20 20 20 20 )).+.noise)\n....else:\n........
3880 67 2e 61 64 64 5f 6e 6f 64 65 28 4e 2c 20 61 74 74 72 5f 6e 61 6d 65 3d 6d 61 74 68 2e 73 69 6e g.add_node(N,.attr_name=math.sin
38a0 28 32 20 2a 20 4e 20 2a 20 6d 61 74 68 2e 70 69 20 2f 20 4e 29 29 5c 6e 20 20 20 20 72 65 74 75 (2.*.N.*.math.pi./.N))\n....retu
38c0 72 6e 20 67 5c 6e 5c 6e 5c 6e 64 65 66 20 67 72 61 70 68 5f 63 6f 6c 6f 72 73 28 6e 78 5f 67 72 rn.g\n\n\ndef.graph_colors(nx_gr
38e0 61 70 68 2c 20 76 6d 69 6e 3d 30 2c 20 76 6d 61 78 3d 37 29 3a 5c 6e 20 20 20 20 63 6e 6f 72 6d aph,.vmin=0,.vmax=7):\n....cnorm
3900 20 3d 20 6d 63 6f 6c 2e 4e 6f 72 6d 61 6c 69 7a 65 28 76 6d 69 6e 3d 76 6d 69 6e 2c 20 76 6d 61 .=.mcol.Normalize(vmin=vmin,.vma
3920 78 3d 76 6d 61 78 29 5c 6e 20 20 20 20 63 70 69 63 6b 20 3d 20 63 6d 2e 53 63 61 6c 61 72 4d 61 x=vmax)\n....cpick.=.cm.ScalarMa
3940 70 70 61 62 6c 65 28 6e 6f 72 6d 3d 63 6e 6f 72 6d 2c 20 63 6d 61 70 3d 27 76 69 72 69 64 69 73 ppable(norm=cnorm,.cmap='viridis
3960 27 29 5c 6e 20 20 20 20 63 70 69 63 6b 2e 73 65 74 5f 61 72 72 61 79 28 5b 5d 29 5c 6e 20 20 20 ')\n....cpick.set_array([])\n...
3980 20 76 61 6c 5f 6d 61 70 20 3d 20 7b 7d 5c 6e 20 20 20 20 66 6f 72 20 6b 2c 20 76 20 69 6e 20 6e .val_map.=.{}\n....for.k,.v.in.n
39a0 78 2e 67 65 74 5f 6e 6f 64 65 5f 61 74 74 72 69 62 75 74 65 73 28 6e 78 5f 67 72 61 70 68 2c 20 x.get_node_attributes(nx_graph,.
39c0 27 61 74 74 72 5f 6e 61 6d 65 27 29 2e 69 74 65 6d 73 28 29 3a 5c 6e 20 20 20 20 20 20 20 20 76 'attr_name').items():\n........v
39e0 61 6c 5f 6d 61 70 5b 6b 5d 20 3d 20 63 70 69 63 6b 2e 74 6f 5f 72 67 62 61 28 76 29 5c 6e 20 20 al_map[k].=.cpick.to_rgba(v)\n..
3a00 20 20 63 6f 6c 6f 72 73 20 3d 20 5b 5d 5c 6e 20 20 20 20 66 6f 72 20 6e 6f 64 65 20 69 6e 20 6e ..colors.=.[]\n....for.node.in.n
3a20 78 5f 67 72 61 70 68 2e 6e 6f 64 65 73 28 29 3a 5c 6e 20 20 20 20 20 20 20 20 63 6f 6c 6f 72 73 x_graph.nodes():\n........colors
3a40 2e 61 70 70 65 6e 64 28 76 61 6c 5f 6d 61 70 5b 6e 6f 64 65 5d 29 5c 6e 20 20 20 20 72 65 74 75 .append(val_map[node])\n....retu
3a60 72 6e 20 63 6f 6c 6f 72 73 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a rn.colors".......].....},.....{.
3a80 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 ......"cell_type":."markdown",..
3aa0 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 ....."metadata":.{},......."sour
3ac0 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 47 65 6e 65 72 61 74 65 20 64 61 74 61 5c 6e 2d ce":.[........."Generate.data\n-
3ae0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c ------------\n\n".......].....},
3b00 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 .....{......."cell_type":."markd
3b20 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 own",......."metadata":.{},.....
3b40 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 57 65 20 62 75 69 6c 64 20 .."source":.[........."We.build.
3b60 61 20 64 61 74 61 73 65 74 20 6f 66 20 6e 6f 69 73 79 20 63 69 72 63 75 6c 61 72 20 67 72 61 70 a.dataset.of.noisy.circular.grap
3b80 68 73 2e 5c 6e 4e 6f 69 73 65 20 69 73 20 61 64 64 65 64 20 6f 6e 20 74 68 65 20 73 74 72 75 63 hs.\nNoise.is.added.on.the.struc
3ba0 74 75 72 65 73 20 62 79 20 72 61 6e 64 6f 6d 20 63 6f 6e 6e 65 63 74 69 6f 6e 73 20 61 6e 64 20 tures.by.random.connections.and.
3bc0 6f 6e 20 74 68 65 20 66 65 61 74 75 72 65 73 20 62 79 20 67 61 75 73 73 69 61 6e 20 6e 6f 69 73 on.the.features.by.gaussian.nois
3be0 65 2e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 e.\n\n".......].....},.....{....
3c00 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 ..."cell_type":."code",......."e
3c20 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 xecution_count":.null,......."me
3c40 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 tadata":.{........."collapsed":.
3c60 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 false.......},......."outputs":.
3c80 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 6e [],......."source":.[........."n
3ca0 70 2e 72 61 6e 64 6f 6d 2e 73 65 65 64 28 33 30 29 5c 6e 58 30 20 3d 20 5b 5d 5c 6e 66 6f 72 20 p.random.seed(30)\nX0.=.[]\nfor.
3cc0 6b 20 69 6e 20 72 61 6e 67 65 28 39 29 3a 5c 6e 20 20 20 20 58 30 2e 61 70 70 65 6e 64 28 62 75 k.in.range(9):\n....X0.append(bu
3ce0 69 6c 64 5f 6e 6f 69 73 79 5f 63 69 72 63 75 6c 61 72 5f 67 72 61 70 68 28 6e 70 2e 72 61 6e 64 ild_noisy_circular_graph(np.rand
3d00 6f 6d 2e 72 61 6e 64 69 6e 74 28 31 35 2c 20 32 35 29 2c 20 77 69 74 68 5f 6e 6f 69 73 65 3d 54 om.randint(15,.25),.with_noise=T
3d20 72 75 65 2c 20 73 74 72 75 63 74 75 72 65 5f 6e 6f 69 73 65 3d 54 72 75 65 2c 20 70 3d 33 29 29 rue,.structure_noise=True,.p=3))
3d40 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 ".......].....},.....{......."ce
3d60 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 ll_type":."markdown",......."met
3d80 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 adata":.{},......."source":.[...
3da0 20 20 20 20 20 20 22 50 6c 6f 74 20 64 61 74 61 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 ......"Plot.data\n---------\n\n"
3dc0 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c .......].....},.....{......."cel
3de0 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f l_type":."code",......."executio
3e00 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 n_count":.null,......."metadata"
3e20 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 :.{........."collapsed":.false..
3e40 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 .....},......."outputs":.[],....
3e60 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 70 6c 74 2e 66 69 67 75 ..."source":.[........."plt.figu
3e80 72 65 28 66 69 67 73 69 7a 65 3d 28 38 2c 20 31 30 29 29 5c 6e 66 6f 72 20 69 20 69 6e 20 72 61 re(figsize=(8,.10))\nfor.i.in.ra
3ea0 6e 67 65 28 6c 65 6e 28 58 30 29 29 3a 5c 6e 20 20 20 20 70 6c 74 2e 73 75 62 70 6c 6f 74 28 33 nge(len(X0)):\n....plt.subplot(3
3ec0 2c 20 33 2c 20 69 20 2b 20 31 29 5c 6e 20 20 20 20 67 20 3d 20 58 30 5b 69 5d 5c 6e 20 20 20 20 ,.3,.i.+.1)\n....g.=.X0[i]\n....
3ee0 70 6f 73 20 3d 20 6e 78 2e 6b 61 6d 61 64 61 5f 6b 61 77 61 69 5f 6c 61 79 6f 75 74 28 67 29 5c pos.=.nx.kamada_kawai_layout(g)\
3f00 6e 20 20 20 20 6e 78 2e 64 72 61 77 28 67 2c 20 70 6f 73 3d 70 6f 73 2c 20 6e 6f 64 65 5f 63 6f n....nx.draw(g,.pos=pos,.node_co
3f20 6c 6f 72 3d 67 72 61 70 68 5f 63 6f 6c 6f 72 73 28 67 2c 20 76 6d 69 6e 3d 2d 31 2c 20 76 6d 61 lor=graph_colors(g,.vmin=-1,.vma
3f40 78 3d 31 29 2c 20 77 69 74 68 5f 6c 61 62 65 6c 73 3d 46 61 6c 73 65 2c 20 6e 6f 64 65 5f 73 69 x=1),.with_labels=False,.node_si
3f60 7a 65 3d 31 30 30 29 5c 6e 70 6c 74 2e 73 75 70 74 69 74 6c 65 28 27 44 61 74 61 73 65 74 20 6f ze=100)\nplt.suptitle('Dataset.o
3f80 66 20 6e 6f 69 73 79 20 67 72 61 70 68 73 2e 20 43 6f 6c 6f 72 20 69 6e 64 69 63 61 74 65 73 20 f.noisy.graphs..Color.indicates.
3fa0 74 68 65 20 6c 61 62 65 6c 27 2c 20 66 6f 6e 74 73 69 7a 65 3d 32 30 29 5c 6e 70 6c 74 2e 73 68 the.label',.fontsize=20)\nplt.sh
3fc0 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 ow()".......].....},.....{......
3fe0 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 ."cell_type":."markdown",.......
4000 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 "metadata":.{},......."source":.
4020 5b 0a 20 20 20 20 20 20 20 20 22 42 61 72 79 63 65 6e 74 65 72 20 63 6f 6d 70 75 74 61 74 69 6f [........."Barycenter.computatio
4040 6e 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 n\n----------------------\n\n"..
4060 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f .....].....},.....{......."cell_
4080 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 type":."markdown",......."metada
40a0 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 ta":.{},......."source":.[......
40c0 20 20 20 22 46 65 61 74 75 72 65 73 20 64 69 73 74 61 6e 63 65 73 20 61 72 65 20 74 68 65 20 65 ..."Features.distances.are.the.e
40e0 75 63 6c 69 64 65 61 6e 20 64 69 73 74 61 6e 63 65 73 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a uclidean.distances\n\n".......].
4100 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 ....},.....{......."cell_type":.
4120 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a "code",......."execution_count":
4140 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 .null,......."metadata":.{......
4160 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 ..."collapsed":.false.......},..
4180 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 ....."outputs":.[],......."sourc
41a0 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 73 20 3d 20 5b 73 68 6f 72 74 65 73 74 5f 70 61 e":.[........."Cs.=.[shortest_pa
41c0 74 68 28 6e 78 2e 61 64 6a 61 63 65 6e 63 79 5f 6d 61 74 72 69 78 28 78 29 29 20 66 6f 72 20 78 th(nx.adjacency_matrix(x)).for.x
41e0 20 69 6e 20 58 30 5d 5c 6e 70 73 20 3d 20 5b 6e 70 2e 6f 6e 65 73 28 6c 65 6e 28 78 2e 6e 6f 64 .in.X0]\nps.=.[np.ones(len(x.nod
4200 65 73 28 29 29 29 20 2f 20 6c 65 6e 28 78 2e 6e 6f 64 65 73 28 29 29 20 66 6f 72 20 78 20 69 6e es()))./.len(x.nodes()).for.x.in
4220 20 58 30 5d 5c 6e 59 73 20 3d 20 5b 6e 70 2e 61 72 72 61 79 28 5b 76 20 66 6f 72 20 28 6b 2c 20 .X0]\nYs.=.[np.array([v.for.(k,.
4240 76 29 20 69 6e 20 6e 78 2e 67 65 74 5f 6e 6f 64 65 5f 61 74 74 72 69 62 75 74 65 73 28 78 2c 20 v).in.nx.get_node_attributes(x,.
4260 27 61 74 74 72 5f 6e 61 6d 65 27 29 2e 69 74 65 6d 73 28 29 5d 29 2e 72 65 73 68 61 70 65 28 2d 'attr_name').items()]).reshape(-
4280 31 2c 20 31 29 20 66 6f 72 20 78 20 69 6e 20 58 30 5d 5c 6e 6c 61 6d 62 64 61 73 20 3d 20 6e 70 1,.1).for.x.in.X0]\nlambdas.=.np
42a0 2e 61 72 72 61 79 28 5b 6e 70 2e 6f 6e 65 73 28 6c 65 6e 28 59 73 29 29 20 2f 20 6c 65 6e 28 59 .array([np.ones(len(Ys))./.len(Y
42c0 73 29 5d 29 2e 72 61 76 65 6c 28 29 5c 6e 73 69 7a 65 62 61 72 79 20 3d 20 31 35 20 20 23 20 77 s)]).ravel()\nsizebary.=.15..#.w
42e0 65 20 63 68 6f 6f 73 65 20 61 20 62 61 72 79 63 65 6e 74 65 72 20 77 69 74 68 20 31 35 20 6e 6f e.choose.a.barycenter.with.15.no
4300 64 65 73 5c 6e 5c 6e 41 2c 20 43 2c 20 6c 6f 67 20 3d 20 66 67 77 5f 62 61 72 79 63 65 6e 74 65 des\n\nA,.C,.log.=.fgw_barycente
4320 72 73 28 73 69 7a 65 62 61 72 79 2c 20 59 73 2c 20 43 73 2c 20 70 73 2c 20 6c 61 6d 62 64 61 73 rs(sizebary,.Ys,.Cs,.ps,.lambdas
4340 2c 20 61 6c 70 68 61 3d 30 2e 39 35 2c 20 6c 6f 67 3d 54 72 75 65 29 22 0a 20 20 20 20 20 20 5d ,.alpha=0.95,.log=True)".......]
4360 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a .....},.....{......."cell_type":
4380 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b ."markdown",......."metadata":.{
43a0 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 50 6c },......."source":.[........."Pl
43c0 6f 74 20 42 61 72 79 63 65 6e 74 65 72 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ot.Barycenter\n-----------------
43e0 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 --------\n\n".......].....},....
4400 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 .{......."cell_type":."code",...
4420 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 ...."execution_count":.null,....
4440 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 ..."metadata":.{........."collap
4460 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 sed":.false.......},......."outp
4480 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 uts":.[],......."source":.[.....
44a0 20 20 20 20 22 62 61 72 79 20 3d 20 6e 78 2e 66 72 6f 6d 5f 6e 75 6d 70 79 5f 6d 61 74 72 69 78 ...."bary.=.nx.from_numpy_matrix
44c0 28 73 70 5f 74 6f 5f 61 64 6a 65 6e 63 79 28 43 2c 20 74 68 72 65 73 68 69 6e 66 3d 30 2c 20 74 (sp_to_adjency(C,.threshinf=0,.t
44e0 68 72 65 73 68 73 75 70 3d 66 69 6e 64 5f 74 68 72 65 73 68 28 43 2c 20 73 75 70 3d 31 30 30 2c hreshsup=find_thresh(C,.sup=100,
4500 20 73 74 65 70 3d 31 30 30 29 5b 30 5d 29 29 5c 6e 66 6f 72 20 69 2c 20 76 20 69 6e 20 65 6e 75 .step=100)[0]))\nfor.i,.v.in.enu
4520 6d 65 72 61 74 65 28 41 2e 72 61 76 65 6c 28 29 29 3a 5c 6e 20 20 20 20 62 61 72 79 2e 61 64 64 merate(A.ravel()):\n....bary.add
4540 5f 6e 6f 64 65 28 69 2c 20 61 74 74 72 5f 6e 61 6d 65 3d 76 29 22 0a 20 20 20 20 20 20 5d 0a 20 _node(i,.attr_name=v)".......]..
4560 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 ...},.....{......."cell_type":."
4580 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 code",......."execution_count":.
45a0 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 null,......."metadata":.{.......
45c0 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 .."collapsed":.false.......},...
45e0 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 ...."outputs":.[],......."source
4600 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 70 6f 73 20 3d 20 6e 78 2e 6b 61 6d 61 64 61 5f 6b 61 ":.[........."pos.=.nx.kamada_ka
4620 77 61 69 5f 6c 61 79 6f 75 74 28 62 61 72 79 29 5c 6e 6e 78 2e 64 72 61 77 28 62 61 72 79 2c 20 wai_layout(bary)\nnx.draw(bary,.
4640 70 6f 73 3d 70 6f 73 2c 20 6e 6f 64 65 5f 63 6f 6c 6f 72 3d 67 72 61 70 68 5f 63 6f 6c 6f 72 73 pos=pos,.node_color=graph_colors
4660 28 62 61 72 79 2c 20 76 6d 69 6e 3d 2d 31 2c 20 76 6d 61 78 3d 31 29 2c 20 77 69 74 68 5f 6c 61 (bary,.vmin=-1,.vmax=1),.with_la
4680 62 65 6c 73 3d 46 61 6c 73 65 29 5c 6e 70 6c 74 2e 73 75 70 74 69 74 6c 65 28 27 42 61 72 79 63 bels=False)\nplt.suptitle('Baryc
46a0 65 6e 74 65 72 27 2c 20 66 6f 6e 74 73 69 7a 65 3d 32 30 29 5c 6e 70 6c 74 2e 73 68 6f 77 28 29 enter',.fontsize=20)\nplt.show()
46c0 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 0a 20 20 5d 2c 0a 20 20 22 6d 65 74 61 64 61 74 61 ".......].....}...],..."metadata
46e0 22 3a 20 7b 0a 20 20 20 20 22 6b 65 72 6e 65 6c 73 70 65 63 22 3a 20 7b 0a 20 20 20 20 20 20 22 ":.{....."kernelspec":.{......."
4700 64 69 73 70 6c 61 79 5f 6e 61 6d 65 22 3a 20 22 50 79 74 68 6f 6e 20 33 22 2c 0a 20 20 20 20 20 display_name":."Python.3",......
4720 20 22 6c 61 6e 67 75 61 67 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 ."language":."python",......."na
4740 6d 65 22 3a 20 22 70 79 74 68 6f 6e 33 22 0a 20 20 20 20 7d 2c 0a 20 20 20 20 22 6c 61 6e 67 75 me":."python3".....},....."langu
4760 61 67 65 5f 69 6e 66 6f 22 3a 20 7b 0a 20 20 20 20 20 20 22 63 6f 64 65 6d 69 72 72 6f 72 5f 6d age_info":.{......."codemirror_m
4780 6f 64 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 69 70 79 74 68 6f 6e ode":.{........."name":."ipython
47a0 22 2c 0a 20 20 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 33 0a 20 20 20 20 20 20 7d 2c ",........."version":.3.......},
47c0 0a 20 20 20 20 20 20 22 66 69 6c 65 5f 65 78 74 65 6e 73 69 6f 6e 22 3a 20 22 2e 70 79 22 2c 0a ......."file_extension":.".py",.
47e0 20 20 20 20 20 20 22 6d 69 6d 65 74 79 70 65 22 3a 20 22 74 65 78 74 2f 78 2d 70 79 74 68 6f 6e ......"mimetype":."text/x-python
4800 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 ",......."name":."python",......
4820 20 22 6e 62 63 6f 6e 76 65 72 74 5f 65 78 70 6f 72 74 65 72 22 3a 20 22 70 79 74 68 6f 6e 22 2c ."nbconvert_exporter":."python",
4840 0a 20 20 20 20 20 20 22 70 79 67 6d 65 6e 74 73 5f 6c 65 78 65 72 22 3a 20 22 69 70 79 74 68 6f ......."pygments_lexer":."ipytho
4860 6e 33 22 2c 0a 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 36 2e 39 22 0a 20 20 n3",......."version":."3.6.9"...
4880 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 22 3a 20 34 2c 0a 20 20 22 6e 62 66 ..}...},..."nbformat":.4,..."nbf
48a0 6f 72 6d 61 74 5f 6d 69 6e 6f 72 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 c0 72 94 50 21 ormat_minor":.0.}PK.........r.P!
48c0 b3 a5 02 cc 15 00 00 cc 15 00 00 18 00 00 00 70 6c 6f 74 5f 62 61 72 79 63 65 6e 74 65 72 5f 31 ...............plot_barycenter_1
48e0 44 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 22 3a 20 5b 0a 20 20 20 20 7b 0a 20 20 20 20 D.ipynb{..."cells":.[.....{.....
4900 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 .."cell_type":."code",......."ex
4920 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 ecution_count":.null,......."met
4940 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 adata":.{........."collapsed":.f
4960 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b alse.......},......."outputs":.[
4980 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 25 6d ],......."source":.[........."%m
49a0 61 74 70 6c 6f 74 6c 69 62 20 69 6e 6c 69 6e 65 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c atplotlib.inline".......].....},
49c0 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 .....{......."cell_type":."markd
49e0 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 own",......."metadata":.{},.....
4a00 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 31 44 20 57 61 .."source":.[........."\n#.1D.Wa
4a20 73 73 65 72 73 74 65 69 6e 20 62 61 72 79 63 65 6e 74 65 72 20 64 65 6d 6f 5c 6e 5c 6e 5c 6e 54 sserstein.barycenter.demo\n\n\nT
4a40 68 69 73 20 65 78 61 6d 70 6c 65 20 69 6c 6c 75 73 74 72 61 74 65 73 20 74 68 65 20 63 6f 6d 70 his.example.illustrates.the.comp
4a60 75 74 61 74 69 6f 6e 20 6f 66 20 72 65 67 75 6c 61 72 69 7a 65 64 20 57 61 73 73 65 72 73 79 65 utation.of.regularized.Wassersye
4a80 69 6e 20 42 61 72 79 63 65 6e 74 65 72 5c 6e 61 73 20 70 72 6f 70 6f 73 65 64 20 69 6e 20 5b 33 in.Barycenter\nas.proposed.in.[3
4aa0 5d 2e 5c 6e 5c 6e 5c 6e 5b 33 5d 20 42 65 6e 61 6d 6f 75 2c 20 4a 2e 20 44 2e 2c 20 43 61 72 6c ].\n\n\n[3].Benamou,.J..D.,.Carl
4ac0 69 65 72 2c 20 47 2e 2c 20 43 75 74 75 72 69 2c 20 4d 2e 2c 20 4e 65 6e 6e 61 2c 20 4c 2e 2c 20 ier,.G.,.Cuturi,.M.,.Nenna,.L.,.
4ae0 26 20 50 65 79 72 5c 75 30 30 65 39 2c 20 47 2e 20 28 32 30 31 35 29 2e 5c 6e 49 74 65 72 61 74 &.Peyr\u00e9,.G..(2015).\nIterat
4b00 69 76 65 20 42 72 65 67 6d 61 6e 20 70 72 6f 6a 65 63 74 69 6f 6e 73 20 66 6f 72 20 72 65 67 75 ive.Bregman.projections.for.regu
4b20 6c 61 72 69 7a 65 64 20 74 72 61 6e 73 70 6f 72 74 61 74 69 6f 6e 20 70 72 6f 62 6c 65 6d 73 5c larized.transportation.problems\
4b40 6e 53 49 41 4d 20 4a 6f 75 72 6e 61 6c 20 6f 6e 20 53 63 69 65 6e 74 69 66 69 63 20 43 6f 6d 70 nSIAM.Journal.on.Scientific.Comp
4b60 75 74 69 6e 67 2c 20 33 37 28 32 29 2c 20 41 31 31 31 31 2d 41 31 31 33 38 2e 5c 6e 5c 6e 5c 6e uting,.37(2),.A1111-A1138.\n\n\n
4b80 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 ".......].....},.....{......."ce
4ba0 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 ll_type":."code",......."executi
4bc0 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 on_count":.null,......."metadata
4be0 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a ":.{........."collapsed":.false.
4c00 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 ......},......."outputs":.[],...
4c20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 20 41 75 74 68 6f ...."source":.[........."#.Autho
4c40 72 3a 20 52 65 6d 69 20 46 6c 61 6d 61 72 79 20 3c 72 65 6d 69 2e 66 6c 61 6d 61 72 79 40 75 6e r:.Remi.Flamary.<remi.flamary@un
4c60 69 63 65 2e 66 72 3e 5c 6e 23 5c 6e 23 20 4c 69 63 65 6e 73 65 3a 20 4d 49 54 20 4c 69 63 65 6e ice.fr>\n#\n#.License:.MIT.Licen
4c80 73 65 5c 6e 5c 6e 69 6d 70 6f 72 74 20 6e 75 6d 70 79 20 61 73 20 6e 70 5c 6e 69 6d 70 6f 72 74 se\n\nimport.numpy.as.np\nimport
4ca0 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 6c 61 62 20 61 73 20 70 6c 5c 6e 69 6d 70 6f 72 74 20 .matplotlib.pylab.as.pl\nimport.
4cc0 6f 74 5c 6e 23 20 6e 65 63 65 73 73 61 72 79 20 66 6f 72 20 33 64 20 70 6c 6f 74 20 65 76 65 6e ot\n#.necessary.for.3d.plot.even
4ce0 20 69 66 20 6e 6f 74 20 75 73 65 64 5c 6e 66 72 6f 6d 20 6d 70 6c 5f 74 6f 6f 6c 6b 69 74 73 2e .if.not.used\nfrom.mpl_toolkits.
4d00 6d 70 6c 6f 74 33 64 20 69 6d 70 6f 72 74 20 41 78 65 73 33 44 20 20 23 20 6e 6f 71 61 5c 6e 66 mplot3d.import.Axes3D..#.noqa\nf
4d20 72 6f 6d 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 63 6f 6c 6c 65 63 74 69 6f 6e 73 20 69 6d 70 6f 72 rom.matplotlib.collections.impor
4d40 74 20 50 6f 6c 79 43 6f 6c 6c 65 63 74 69 6f 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c t.PolyCollection".......].....},
4d60 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 .....{......."cell_type":."markd
4d80 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 own",......."metadata":.{},.....
4da0 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 47 65 6e 65 72 61 74 65 20 .."source":.[........."Generate.
4dc0 64 61 74 61 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d data\n-------------\n\n".......]
4de0 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a .....},.....{......."cell_type":
4e00 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 ."code",......."execution_count"
4e20 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 :.null,......."metadata":.{.....
4e40 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a ...."collapsed":.false.......},.
4e60 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 ......"outputs":.[],......."sour
4e80 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 6e 20 3d 20 31 30 30 20 20 23 20 6e 62 20 62 69 ce":.[........."n.=.100..#.nb.bi
4ea0 6e 73 5c 6e 5c 6e 23 20 62 69 6e 20 70 6f 73 69 74 69 6f 6e 73 5c 6e 78 20 3d 20 6e 70 2e 61 72 ns\n\n#.bin.positions\nx.=.np.ar
4ec0 61 6e 67 65 28 6e 2c 20 64 74 79 70 65 3d 6e 70 2e 66 6c 6f 61 74 36 34 29 5c 6e 5c 6e 23 20 47 ange(n,.dtype=np.float64)\n\n#.G
4ee0 61 75 73 73 69 61 6e 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 5c 6e 61 31 20 3d 20 6f 74 2e 64 aussian.distributions\na1.=.ot.d
4f00 61 74 61 73 65 74 73 2e 6d 61 6b 65 5f 31 44 5f 67 61 75 73 73 28 6e 2c 20 6d 3d 32 30 2c 20 73 atasets.make_1D_gauss(n,.m=20,.s
4f20 3d 35 29 20 20 23 20 6d 3d 20 6d 65 61 6e 2c 20 73 3d 20 73 74 64 5c 6e 61 32 20 3d 20 6f 74 2e =5)..#.m=.mean,.s=.std\na2.=.ot.
4f40 64 61 74 61 73 65 74 73 2e 6d 61 6b 65 5f 31 44 5f 67 61 75 73 73 28 6e 2c 20 6d 3d 36 30 2c 20 datasets.make_1D_gauss(n,.m=60,.
4f60 73 3d 38 29 5c 6e 5c 6e 23 20 63 72 65 61 74 69 6e 67 20 6d 61 74 72 69 78 20 41 20 63 6f 6e 74 s=8)\n\n#.creating.matrix.A.cont
4f80 61 69 6e 69 6e 67 20 61 6c 6c 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 5c 6e 41 20 3d 20 6e 70 aining.all.distributions\nA.=.np
4fa0 2e 76 73 74 61 63 6b 28 28 61 31 2c 20 61 32 29 29 2e 54 5c 6e 6e 5f 64 69 73 74 72 69 62 75 74 .vstack((a1,.a2)).T\nn_distribut
4fc0 69 6f 6e 73 20 3d 20 41 2e 73 68 61 70 65 5b 31 5d 5c 6e 5c 6e 23 20 6c 6f 73 73 20 6d 61 74 72 ions.=.A.shape[1]\n\n#.loss.matr
4fe0 69 78 20 2b 20 6e 6f 72 6d 61 6c 69 7a 61 74 69 6f 6e 5c 6e 4d 20 3d 20 6f 74 2e 75 74 69 6c 73 ix.+.normalization\nM.=.ot.utils
5000 2e 64 69 73 74 30 28 6e 29 5c 6e 4d 20 2f 3d 20 4d 2e 6d 61 78 28 29 22 0a 20 20 20 20 20 20 5d .dist0(n)\nM./=.M.max()".......]
5020 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a .....},.....{......."cell_type":
5040 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b ."markdown",......."metadata":.{
5060 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 50 6c },......."source":.[........."Pl
5080 6f 74 20 64 61 74 61 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a ot.data\n---------\n\n".......].
50a0 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 ....},.....{......."cell_type":.
50c0 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a "code",......."execution_count":
50e0 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 .null,......."metadata":.{......
5100 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 ..."collapsed":.false.......},..
5120 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 ....."outputs":.[],......."sourc
5140 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 70 6c 2e 66 69 67 75 72 65 28 31 2c 20 66 69 67 73 e":.[........."pl.figure(1,.figs
5160 69 7a 65 3d 28 36 2e 34 2c 20 33 29 29 5c 6e 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 65 28 6e 5f ize=(6.4,.3))\nfor.i.in.range(n_
5180 64 69 73 74 72 69 62 75 74 69 6f 6e 73 29 3a 5c 6e 20 20 20 20 70 6c 2e 70 6c 6f 74 28 78 2c 20 distributions):\n....pl.plot(x,.
51a0 41 5b 3a 2c 20 69 5d 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 44 69 73 74 72 69 62 75 74 69 6f 6e A[:,.i])\npl.title('Distribution
51c0 73 27 29 5c 6e 70 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 22 0a 20 20 20 20 20 20 5d 0a s')\npl.tight_layout()".......].
51e0 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 ....},.....{......."cell_type":.
5200 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d "markdown",......."metadata":.{}
5220 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 42 61 72 ,......."source":.[........."Bar
5240 79 63 65 6e 74 65 72 20 63 6f 6d 70 75 74 61 74 69 6f 6e 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ycenter.computation\n-----------
5260 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a -----------\n\n".......].....},.
5280 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c ....{......."cell_type":."code",
52a0 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a ......."execution_count":.null,.
52c0 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c ......"metadata":.{........."col
52e0 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f lapsed":.false.......},......."o
5300 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 utputs":.[],......."source":.[..
5320 20 20 20 20 20 20 20 22 61 6c 70 68 61 20 3d 20 30 2e 32 20 20 23 20 30 3c 3d 61 6c 70 68 61 3c ......."alpha.=.0.2..#.0<=alpha<
5340 3d 31 5c 6e 77 65 69 67 68 74 73 20 3d 20 6e 70 2e 61 72 72 61 79 28 5b 31 20 2d 20 61 6c 70 68 =1\nweights.=.np.array([1.-.alph
5360 61 2c 20 61 6c 70 68 61 5d 29 5c 6e 5c 6e 23 20 6c 32 62 61 72 79 5c 6e 62 61 72 79 5f 6c 32 20 a,.alpha])\n\n#.l2bary\nbary_l2.
5380 3d 20 41 2e 64 6f 74 28 77 65 69 67 68 74 73 29 5c 6e 5c 6e 23 20 77 61 73 73 65 72 73 74 65 69 =.A.dot(weights)\n\n#.wasserstei
53a0 6e 5c 6e 72 65 67 20 3d 20 31 65 2d 33 5c 6e 62 61 72 79 5f 77 61 73 73 20 3d 20 6f 74 2e 62 72 n\nreg.=.1e-3\nbary_wass.=.ot.br
53c0 65 67 6d 61 6e 2e 62 61 72 79 63 65 6e 74 65 72 28 41 2c 20 4d 2c 20 72 65 67 2c 20 77 65 69 67 egman.barycenter(A,.M,.reg,.weig
53e0 68 74 73 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 32 29 5c 6e 70 6c 2e 63 6c 66 28 29 5c 6e hts)\n\npl.figure(2)\npl.clf()\n
5400 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 31 2c 20 31 29 5c 6e 66 6f 72 20 69 20 69 6e 20 72 61 pl.subplot(2,.1,.1)\nfor.i.in.ra
5420 6e 67 65 28 6e 5f 64 69 73 74 72 69 62 75 74 69 6f 6e 73 29 3a 5c 6e 20 20 20 20 70 6c 2e 70 6c nge(n_distributions):\n....pl.pl
5440 6f 74 28 78 2c 20 41 5b 3a 2c 20 69 5d 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 44 69 73 74 72 69 ot(x,.A[:,.i])\npl.title('Distri
5460 62 75 74 69 6f 6e 73 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 31 2c 20 32 29 butions')\n\npl.subplot(2,.1,.2)
5480 5c 6e 70 6c 2e 70 6c 6f 74 28 78 2c 20 62 61 72 79 5f 6c 32 2c 20 27 72 27 2c 20 6c 61 62 65 6c \npl.plot(x,.bary_l2,.'r',.label
54a0 3d 27 6c 32 27 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 2c 20 62 61 72 79 5f 77 61 73 73 2c 20 27 67 ='l2')\npl.plot(x,.bary_wass,.'g
54c0 27 2c 20 6c 61 62 65 6c 3d 27 57 61 73 73 65 72 73 74 65 69 6e 27 29 5c 6e 70 6c 2e 6c 65 67 65 ',.label='Wasserstein')\npl.lege
54e0 6e 64 28 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 42 61 72 79 63 65 6e 74 65 72 73 27 29 5c 6e 70 nd()\npl.title('Barycenters')\np
5500 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c l.tight_layout()".......].....},
5520 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 .....{......."cell_type":."markd
5540 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 own",......."metadata":.{},.....
5560 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 42 61 72 79 63 65 6e 74 72 .."source":.[........."Barycentr
5580 69 63 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ic.interpolation\n--------------
55a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a -----------\n\n".......].....},.
55c0 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c ....{......."cell_type":."code",
55e0 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a ......."execution_count":.null,.
5600 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c ......"metadata":.{........."col
5620 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f lapsed":.false.......},......."o
5640 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 utputs":.[],......."source":.[..
5660 20 20 20 20 20 20 20 22 6e 5f 61 6c 70 68 61 20 3d 20 31 31 5c 6e 61 6c 70 68 61 5f 6c 69 73 74 ......."n_alpha.=.11\nalpha_list
5680 20 3d 20 6e 70 2e 6c 69 6e 73 70 61 63 65 28 30 2c 20 31 2c 20 6e 5f 61 6c 70 68 61 29 5c 6e 5c .=.np.linspace(0,.1,.n_alpha)\n\
56a0 6e 5c 6e 42 5f 6c 32 20 3d 20 6e 70 2e 7a 65 72 6f 73 28 28 6e 2c 20 6e 5f 61 6c 70 68 61 29 29 n\nB_l2.=.np.zeros((n,.n_alpha))
56c0 5c 6e 5c 6e 42 5f 77 61 73 73 20 3d 20 6e 70 2e 63 6f 70 79 28 42 5f 6c 32 29 5c 6e 5c 6e 66 6f \n\nB_wass.=.np.copy(B_l2)\n\nfo
56e0 72 20 69 20 69 6e 20 72 61 6e 67 65 28 30 2c 20 6e 5f 61 6c 70 68 61 29 3a 5c 6e 20 20 20 20 61 r.i.in.range(0,.n_alpha):\n....a
5700 6c 70 68 61 20 3d 20 61 6c 70 68 61 5f 6c 69 73 74 5b 69 5d 5c 6e 20 20 20 20 77 65 69 67 68 74 lpha.=.alpha_list[i]\n....weight
5720 73 20 3d 20 6e 70 2e 61 72 72 61 79 28 5b 31 20 2d 20 61 6c 70 68 61 2c 20 61 6c 70 68 61 5d 29 s.=.np.array([1.-.alpha,.alpha])
5740 5c 6e 20 20 20 20 42 5f 6c 32 5b 3a 2c 20 69 5d 20 3d 20 41 2e 64 6f 74 28 77 65 69 67 68 74 73 \n....B_l2[:,.i].=.A.dot(weights
5760 29 5c 6e 20 20 20 20 42 5f 77 61 73 73 5b 3a 2c 20 69 5d 20 3d 20 6f 74 2e 62 72 65 67 6d 61 6e )\n....B_wass[:,.i].=.ot.bregman
5780 2e 62 61 72 79 63 65 6e 74 65 72 28 41 2c 20 4d 2c 20 72 65 67 2c 20 77 65 69 67 68 74 73 29 22 .barycenter(A,.M,.reg,.weights)"
57a0 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c .......].....},.....{......."cel
57c0 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f l_type":."code",......."executio
57e0 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 n_count":.null,......."metadata"
5800 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 :.{........."collapsed":.false..
5820 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 .....},......."outputs":.[],....
5840 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 70 6c 2e 66 69 67 75 72 ..."source":.[........."pl.figur
5860 65 28 33 29 5c 6e 5c 6e 63 6d 61 70 20 3d 20 70 6c 2e 63 6d 2e 67 65 74 5f 63 6d 61 70 28 27 76 e(3)\n\ncmap.=.pl.cm.get_cmap('v
5880 69 72 69 64 69 73 27 29 5c 6e 76 65 72 74 73 20 3d 20 5b 5d 5c 6e 7a 73 20 3d 20 61 6c 70 68 61 iridis')\nverts.=.[]\nzs.=.alpha
58a0 5f 6c 69 73 74 5c 6e 66 6f 72 20 69 2c 20 7a 20 69 6e 20 65 6e 75 6d 65 72 61 74 65 28 7a 73 29 _list\nfor.i,.z.in.enumerate(zs)
58c0 3a 5c 6e 20 20 20 20 79 73 20 3d 20 42 5f 6c 32 5b 3a 2c 20 69 5d 5c 6e 20 20 20 20 76 65 72 74 :\n....ys.=.B_l2[:,.i]\n....vert
58e0 73 2e 61 70 70 65 6e 64 28 6c 69 73 74 28 7a 69 70 28 78 2c 20 79 73 29 29 29 5c 6e 5c 6e 61 78 s.append(list(zip(x,.ys)))\n\nax
5900 20 3d 20 70 6c 2e 67 63 66 28 29 2e 67 63 61 28 70 72 6f 6a 65 63 74 69 6f 6e 3d 27 33 64 27 29 .=.pl.gcf().gca(projection='3d')
5920 5c 6e 5c 6e 70 6f 6c 79 20 3d 20 50 6f 6c 79 43 6f 6c 6c 65 63 74 69 6f 6e 28 76 65 72 74 73 2c \n\npoly.=.PolyCollection(verts,
5940 20 66 61 63 65 63 6f 6c 6f 72 73 3d 5b 63 6d 61 70 28 61 29 20 66 6f 72 20 61 20 69 6e 20 61 6c .facecolors=[cmap(a).for.a.in.al
5960 70 68 61 5f 6c 69 73 74 5d 29 5c 6e 70 6f 6c 79 2e 73 65 74 5f 61 6c 70 68 61 28 30 2e 37 29 5c pha_list])\npoly.set_alpha(0.7)\
5980 6e 61 78 2e 61 64 64 5f 63 6f 6c 6c 65 63 74 69 6f 6e 33 64 28 70 6f 6c 79 2c 20 7a 73 3d 7a 73 nax.add_collection3d(poly,.zs=zs
59a0 2c 20 7a 64 69 72 3d 27 79 27 29 5c 6e 61 78 2e 73 65 74 5f 78 6c 61 62 65 6c 28 27 78 27 29 5c ,.zdir='y')\nax.set_xlabel('x')\
59c0 6e 61 78 2e 73 65 74 5f 78 6c 69 6d 33 64 28 30 2c 20 6e 29 5c 6e 61 78 2e 73 65 74 5f 79 6c 61 nax.set_xlim3d(0,.n)\nax.set_yla
59e0 62 65 6c 28 27 24 5c 5c 5c 5c 61 6c 70 68 61 24 27 29 5c 6e 61 78 2e 73 65 74 5f 79 6c 69 6d 33 bel('$\\\\alpha$')\nax.set_ylim3
5a00 64 28 30 2c 20 31 29 5c 6e 61 78 2e 73 65 74 5f 7a 6c 61 62 65 6c 28 27 27 29 5c 6e 61 78 2e 73 d(0,.1)\nax.set_zlabel('')\nax.s
5a20 65 74 5f 7a 6c 69 6d 33 64 28 30 2c 20 42 5f 6c 32 2e 6d 61 78 28 29 20 2a 20 31 2e 30 31 29 5c et_zlim3d(0,.B_l2.max().*.1.01)\
5a40 6e 70 6c 2e 74 69 74 6c 65 28 27 42 61 72 79 63 65 6e 74 65 72 20 69 6e 74 65 72 70 6f 6c 61 74 npl.title('Barycenter.interpolat
5a60 69 6f 6e 20 77 69 74 68 20 6c 32 27 29 5c 6e 70 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 ion.with.l2')\npl.tight_layout()
5a80 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 34 29 5c 6e 63 6d 61 70 20 3d 20 70 6c 2e 63 6d 2e 67 \n\npl.figure(4)\ncmap.=.pl.cm.g
5aa0 65 74 5f 63 6d 61 70 28 27 76 69 72 69 64 69 73 27 29 5c 6e 76 65 72 74 73 20 3d 20 5b 5d 5c 6e et_cmap('viridis')\nverts.=.[]\n
5ac0 7a 73 20 3d 20 61 6c 70 68 61 5f 6c 69 73 74 5c 6e 66 6f 72 20 69 2c 20 7a 20 69 6e 20 65 6e 75 zs.=.alpha_list\nfor.i,.z.in.enu
5ae0 6d 65 72 61 74 65 28 7a 73 29 3a 5c 6e 20 20 20 20 79 73 20 3d 20 42 5f 77 61 73 73 5b 3a 2c 20 merate(zs):\n....ys.=.B_wass[:,.
5b00 69 5d 5c 6e 20 20 20 20 76 65 72 74 73 2e 61 70 70 65 6e 64 28 6c 69 73 74 28 7a 69 70 28 78 2c i]\n....verts.append(list(zip(x,
5b20 20 79 73 29 29 29 5c 6e 5c 6e 61 78 20 3d 20 70 6c 2e 67 63 66 28 29 2e 67 63 61 28 70 72 6f 6a .ys)))\n\nax.=.pl.gcf().gca(proj
5b40 65 63 74 69 6f 6e 3d 27 33 64 27 29 5c 6e 5c 6e 70 6f 6c 79 20 3d 20 50 6f 6c 79 43 6f 6c 6c 65 ection='3d')\n\npoly.=.PolyColle
5b60 63 74 69 6f 6e 28 76 65 72 74 73 2c 20 66 61 63 65 63 6f 6c 6f 72 73 3d 5b 63 6d 61 70 28 61 29 ction(verts,.facecolors=[cmap(a)
5b80 20 66 6f 72 20 61 20 69 6e 20 61 6c 70 68 61 5f 6c 69 73 74 5d 29 5c 6e 70 6f 6c 79 2e 73 65 74 .for.a.in.alpha_list])\npoly.set
5ba0 5f 61 6c 70 68 61 28 30 2e 37 29 5c 6e 61 78 2e 61 64 64 5f 63 6f 6c 6c 65 63 74 69 6f 6e 33 64 _alpha(0.7)\nax.add_collection3d
5bc0 28 70 6f 6c 79 2c 20 7a 73 3d 7a 73 2c 20 7a 64 69 72 3d 27 79 27 29 5c 6e 61 78 2e 73 65 74 5f (poly,.zs=zs,.zdir='y')\nax.set_
5be0 78 6c 61 62 65 6c 28 27 78 27 29 5c 6e 61 78 2e 73 65 74 5f 78 6c 69 6d 33 64 28 30 2c 20 6e 29 xlabel('x')\nax.set_xlim3d(0,.n)
5c00 5c 6e 61 78 2e 73 65 74 5f 79 6c 61 62 65 6c 28 27 24 5c 5c 5c 5c 61 6c 70 68 61 24 27 29 5c 6e \nax.set_ylabel('$\\\\alpha$')\n
5c20 61 78 2e 73 65 74 5f 79 6c 69 6d 33 64 28 30 2c 20 31 29 5c 6e 61 78 2e 73 65 74 5f 7a 6c 61 62 ax.set_ylim3d(0,.1)\nax.set_zlab
5c40 65 6c 28 27 27 29 5c 6e 61 78 2e 73 65 74 5f 7a 6c 69 6d 33 64 28 30 2c 20 42 5f 6c 32 2e 6d 61 el('')\nax.set_zlim3d(0,.B_l2.ma
5c60 78 28 29 20 2a 20 31 2e 30 31 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 42 61 72 79 63 65 6e 74 65 x().*.1.01)\npl.title('Barycente
5c80 72 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 20 77 69 74 68 20 57 61 73 73 65 72 73 74 65 69 6e r.interpolation.with.Wasserstein
5ca0 27 29 5c 6e 70 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 5c 6e 5c 6e 70 6c 2e 73 68 6f 77 ')\npl.tight_layout()\n\npl.show
5cc0 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 0a 20 20 5d 2c 0a 20 20 22 6d 65 74 61 64 61 ()".......].....}...],..."metada
5ce0 74 61 22 3a 20 7b 0a 20 20 20 20 22 6b 65 72 6e 65 6c 73 70 65 63 22 3a 20 7b 0a 20 20 20 20 20 ta":.{....."kernelspec":.{......
5d00 20 22 64 69 73 70 6c 61 79 5f 6e 61 6d 65 22 3a 20 22 50 79 74 68 6f 6e 20 33 22 2c 0a 20 20 20 ."display_name":."Python.3",....
5d20 20 20 20 22 6c 61 6e 67 75 61 67 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 ..."language":."python",......."
5d40 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 33 22 0a 20 20 20 20 7d 2c 0a 20 20 20 20 22 6c 61 6e name":."python3".....},....."lan
5d60 67 75 61 67 65 5f 69 6e 66 6f 22 3a 20 7b 0a 20 20 20 20 20 20 22 63 6f 64 65 6d 69 72 72 6f 72 guage_info":.{......."codemirror
5d80 5f 6d 6f 64 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 69 70 79 74 68 _mode":.{........."name":."ipyth
5da0 6f 6e 22 2c 0a 20 20 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 33 0a 20 20 20 20 20 20 on",........."version":.3.......
5dc0 7d 2c 0a 20 20 20 20 20 20 22 66 69 6c 65 5f 65 78 74 65 6e 73 69 6f 6e 22 3a 20 22 2e 70 79 22 },......."file_extension":.".py"
5de0 2c 0a 20 20 20 20 20 20 22 6d 69 6d 65 74 79 70 65 22 3a 20 22 74 65 78 74 2f 78 2d 70 79 74 68 ,......."mimetype":."text/x-pyth
5e00 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 on",......."name":."python",....
5e20 20 20 20 22 6e 62 63 6f 6e 76 65 72 74 5f 65 78 70 6f 72 74 65 72 22 3a 20 22 70 79 74 68 6f 6e ..."nbconvert_exporter":."python
5e40 22 2c 0a 20 20 20 20 20 20 22 70 79 67 6d 65 6e 74 73 5f 6c 65 78 65 72 22 3a 20 22 69 70 79 74 ",......."pygments_lexer":."ipyt
5e60 68 6f 6e 33 22 2c 0a 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 36 2e 39 22 0a hon3",......."version":."3.6.9".
5e80 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 22 3a 20 34 2c 0a 20 20 22 6e ....}...},..."nbformat":.4,..."n
5ea0 62 66 6f 72 6d 61 74 5f 6d 69 6e 6f 72 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 b9 72 94 bformat_minor":.0.}PK.........r.
5ec0 50 45 9a 9b 1d 0d 13 00 00 0d 13 00 00 18 00 00 00 70 6c 6f 74 5f 4f 54 5f 32 44 5f 73 61 6d 70 PE...............plot_OT_2D_samp
5ee0 6c 65 73 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 22 3a 20 5b 0a 20 20 20 20 7b 0a 20 20 les.ipynb{..."cells":.[.....{...
5f00 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 ...."cell_type":."code",......."
5f20 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d execution_count":.null,......."m
5f40 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a etadata":.{........."collapsed":
5f60 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a .false.......},......."outputs":
5f80 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 .[],......."source":.[........."
5fa0 25 6d 61 74 70 6c 6f 74 6c 69 62 20 69 6e 6c 69 6e 65 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 %matplotlib.inline".......].....
5fc0 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 },.....{......."cell_type":."mar
5fe0 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 kdown",......."metadata":.{},...
6000 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 32 44 20 ...."source":.[........."\n#.2D.
6020 4f 70 74 69 6d 61 6c 20 74 72 61 6e 73 70 6f 72 74 20 62 65 74 77 65 65 6e 20 65 6d 70 69 72 69 Optimal.transport.between.empiri
6040 63 61 6c 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 5c 6e 5c 6e 5c 6e 49 6c 6c 75 73 74 72 61 74 cal.distributions\n\n\nIllustrat
6060 69 6f 6e 20 6f 66 20 32 44 20 6f 70 74 69 6d 61 6c 20 74 72 61 6e 73 70 6f 72 74 20 62 65 74 77 ion.of.2D.optimal.transport.betw
6080 65 65 6e 20 64 69 73 63 72 69 62 75 74 69 6f 6e 73 20 74 68 61 74 20 61 72 65 20 77 65 69 67 68 een.discributions.that.are.weigh
60a0 74 65 64 5c 6e 73 75 6d 20 6f 66 20 64 69 72 61 63 73 2e 20 54 68 65 20 4f 54 20 6d 61 74 72 69 ted\nsum.of.diracs..The.OT.matri
60c0 78 20 69 73 20 70 6c 6f 74 74 65 64 20 77 69 74 68 20 74 68 65 20 73 61 6d 70 6c 65 73 2e 5c 6e x.is.plotted.with.the.samples.\n
60e0 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 \n\n".......].....},.....{......
6100 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 ."cell_type":."code",......."exe
6120 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 cution_count":.null,......."meta
6140 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 data":.{........."collapsed":.fa
6160 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d lse.......},......."outputs":.[]
6180 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 20 41 ,......."source":.[........."#.A
61a0 75 74 68 6f 72 3a 20 52 65 6d 69 20 46 6c 61 6d 61 72 79 20 3c 72 65 6d 69 2e 66 6c 61 6d 61 72 uthor:.Remi.Flamary.<remi.flamar
61c0 79 40 75 6e 69 63 65 2e 66 72 3e 5c 6e 23 20 20 20 20 20 20 20 20 20 4b 69 6c 69 61 6e 20 46 61 y@unice.fr>\n#.........Kilian.Fa
61e0 74 72 61 73 20 3c 6b 69 6c 69 61 6e 2e 66 61 74 72 61 73 40 69 72 69 73 61 2e 66 72 3e 5c 6e 23 tras.<kilian.fatras@irisa.fr>\n#
6200 5c 6e 23 20 4c 69 63 65 6e 73 65 3a 20 4d 49 54 20 4c 69 63 65 6e 73 65 5c 6e 5c 6e 69 6d 70 6f \n#.License:.MIT.License\n\nimpo
6220 72 74 20 6e 75 6d 70 79 20 61 73 20 6e 70 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 rt.numpy.as.np\nimport.matplotli
6240 62 2e 70 79 6c 61 62 20 61 73 20 70 6c 5c 6e 69 6d 70 6f 72 74 20 6f 74 5c 6e 69 6d 70 6f 72 74 b.pylab.as.pl\nimport.ot\nimport
6260 20 6f 74 2e 70 6c 6f 74 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 .ot.plot".......].....},.....{..
6280 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 ....."cell_type":."markdown",...
62a0 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 ...."metadata":.{},......."sourc
62c0 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 47 65 6e 65 72 61 74 65 20 64 61 74 61 5c 6e 2d 2d e":.[........."Generate.data\n--
62e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a -----------\n\n".......].....},.
6300 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c ....{......."cell_type":."code",
6320 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a ......."execution_count":.null,.
6340 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c ......"metadata":.{........."col
6360 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f lapsed":.false.......},......."o
6380 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 utputs":.[],......."source":.[..
63a0 20 20 20 20 20 20 20 22 6e 20 3d 20 35 30 20 20 23 20 6e 62 20 73 61 6d 70 6c 65 73 5c 6e 5c 6e ......."n.=.50..#.nb.samples\n\n
63c0 6d 75 5f 73 20 3d 20 6e 70 2e 61 72 72 61 79 28 5b 30 2c 20 30 5d 29 5c 6e 63 6f 76 5f 73 20 3d mu_s.=.np.array([0,.0])\ncov_s.=
63e0 20 6e 70 2e 61 72 72 61 79 28 5b 5b 31 2c 20 30 5d 2c 20 5b 30 2c 20 31 5d 5d 29 5c 6e 5c 6e 6d .np.array([[1,.0],.[0,.1]])\n\nm
6400 75 5f 74 20 3d 20 6e 70 2e 61 72 72 61 79 28 5b 34 2c 20 34 5d 29 5c 6e 63 6f 76 5f 74 20 3d 20 u_t.=.np.array([4,.4])\ncov_t.=.
6420 6e 70 2e 61 72 72 61 79 28 5b 5b 31 2c 20 2d 2e 38 5d 2c 20 5b 2d 2e 38 2c 20 31 5d 5d 29 5c 6e np.array([[1,.-.8],.[-.8,.1]])\n
6440 5c 6e 78 73 20 3d 20 6f 74 2e 64 61 74 61 73 65 74 73 2e 6d 61 6b 65 5f 32 44 5f 73 61 6d 70 6c \nxs.=.ot.datasets.make_2D_sampl
6460 65 73 5f 67 61 75 73 73 28 6e 2c 20 6d 75 5f 73 2c 20 63 6f 76 5f 73 29 5c 6e 78 74 20 3d 20 6f es_gauss(n,.mu_s,.cov_s)\nxt.=.o
6480 74 2e 64 61 74 61 73 65 74 73 2e 6d 61 6b 65 5f 32 44 5f 73 61 6d 70 6c 65 73 5f 67 61 75 73 73 t.datasets.make_2D_samples_gauss
64a0 28 6e 2c 20 6d 75 5f 74 2c 20 63 6f 76 5f 74 29 5c 6e 5c 6e 61 2c 20 62 20 3d 20 6e 70 2e 6f 6e (n,.mu_t,.cov_t)\n\na,.b.=.np.on
64c0 65 73 28 28 6e 2c 29 29 20 2f 20 6e 2c 20 6e 70 2e 6f 6e 65 73 28 28 6e 2c 29 29 20 2f 20 6e 20 es((n,))./.n,.np.ones((n,))./.n.
64e0 20 23 20 75 6e 69 66 6f 72 6d 20 64 69 73 74 72 69 62 75 74 69 6f 6e 20 6f 6e 20 73 61 6d 70 6c .#.uniform.distribution.on.sampl
6500 65 73 5c 6e 5c 6e 23 20 6c 6f 73 73 20 6d 61 74 72 69 78 5c 6e 4d 20 3d 20 6f 74 2e 64 69 73 74 es\n\n#.loss.matrix\nM.=.ot.dist
6520 28 78 73 2c 20 78 74 29 5c 6e 4d 20 2f 3d 20 4d 2e 6d 61 78 28 29 22 0a 20 20 20 20 20 20 5d 0a (xs,.xt)\nM./=.M.max()".......].
6540 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 ....},.....{......."cell_type":.
6560 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d "markdown",......."metadata":.{}
6580 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 50 6c 6f ,......."source":.[........."Plo
65a0 74 20 64 61 74 61 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 t.data\n---------\n\n".......]..
65c0 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 ...},.....{......."cell_type":."
65e0 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 code",......."execution_count":.
6600 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 null,......."metadata":.{.......
6620 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 .."collapsed":.false.......},...
6640 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 ...."outputs":.[],......."source
6660 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 70 6c 2e 66 69 67 75 72 65 28 31 29 5c 6e 70 6c 2e 70 ":.[........."pl.figure(1)\npl.p
6680 6c 6f 74 28 78 73 5b 3a 2c 20 30 5d 2c 20 78 73 5b 3a 2c 20 31 5d 2c 20 27 2b 62 27 2c 20 6c 61 lot(xs[:,.0],.xs[:,.1],.'+b',.la
66a0 62 65 6c 3d 27 53 6f 75 72 63 65 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 bel='Source.samples')\npl.plot(x
66c0 74 5b 3a 2c 20 30 5d 2c 20 78 74 5b 3a 2c 20 31 5d 2c 20 27 78 72 27 2c 20 6c 61 62 65 6c 3d 27 t[:,.0],.xt[:,.1],.'xr',.label='
66e0 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d Target.samples')\npl.legend(loc=
6700 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 53 6f 75 72 63 65 20 61 6e 64 20 74 61 72 67 65 74 20 0)\npl.title('Source.and.target.
6720 64 69 73 74 72 69 62 75 74 69 6f 6e 73 27 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 32 29 5c distributions')\n\npl.figure(2)\
6740 6e 70 6c 2e 69 6d 73 68 6f 77 28 4d 2c 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 3d 27 6e 65 61 npl.imshow(M,.interpolation='nea
6760 72 65 73 74 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 43 6f 73 74 20 6d 61 74 72 69 78 20 4d 27 rest')\npl.title('Cost.matrix.M'
6780 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 )".......].....},.....{......."c
67a0 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 ell_type":."markdown",......."me
67c0 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 tadata":.{},......."source":.[..
67e0 20 20 20 20 20 20 20 22 43 6f 6d 70 75 74 65 20 45 4d 44 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ......."Compute.EMD\n-----------
6800 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 \n\n".......].....},.....{......
6820 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 ."cell_type":."code",......."exe
6840 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 cution_count":.null,......."meta
6860 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 data":.{........."collapsed":.fa
6880 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d lse.......},......."outputs":.[]
68a0 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 47 30 20 ,......."source":.[........."G0.
68c0 3d 20 6f 74 2e 65 6d 64 28 61 2c 20 62 2c 20 4d 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 33 =.ot.emd(a,.b,.M)\n\npl.figure(3
68e0 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 47 30 2c 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 3d 27 )\npl.imshow(G0,.interpolation='
6900 6e 65 61 72 65 73 74 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 4f 54 20 6d 61 74 72 69 78 20 47 nearest')\npl.title('OT.matrix.G
6920 30 27 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 34 29 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 0')\n\npl.figure(4)\not.plot.plo
6940 74 32 44 5f 73 61 6d 70 6c 65 73 5f 6d 61 74 28 78 73 2c 20 78 74 2c 20 47 30 2c 20 63 3d 5b 2e t2D_samples_mat(xs,.xt,.G0,.c=[.
6960 35 2c 20 2e 35 2c 20 31 5d 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 73 5b 3a 2c 20 30 5d 2c 20 78 73 5,..5,.1])\npl.plot(xs[:,.0],.xs
6980 5b 3a 2c 20 31 5d 2c 20 27 2b 62 27 2c 20 6c 61 62 65 6c 3d 27 53 6f 75 72 63 65 20 73 61 6d 70 [:,.1],.'+b',.label='Source.samp
69a0 6c 65 73 27 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 74 5b 3a 2c 20 30 5d 2c 20 78 74 5b 3a 2c 20 31 les')\npl.plot(xt[:,.0],.xt[:,.1
69c0 5d 2c 20 27 78 72 27 2c 20 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 29 ],.'xr',.label='Target.samples')
69e0 5c 6e 70 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 4f 54 \npl.legend(loc=0)\npl.title('OT
6a00 20 6d 61 74 72 69 78 20 77 69 74 68 20 73 61 6d 70 6c 65 73 27 29 22 0a 20 20 20 20 20 20 5d 0a .matrix.with.samples')".......].
6a20 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 ....},.....{......."cell_type":.
6a40 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d "markdown",......."metadata":.{}
6a60 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 6f 6d ,......."source":.[........."Com
6a80 70 75 74 65 20 53 69 6e 6b 68 6f 72 6e 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c pute.Sinkhorn\n----------------\
6aa0 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 n\n".......].....},.....{.......
6ac0 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 "cell_type":."code",......."exec
6ae0 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 ution_count":.null,......."metad
6b00 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c ata":.{........."collapsed":.fal
6b20 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c se.......},......."outputs":.[],
6b40 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 20 72 65 ......."source":.[........."#.re
6b60 67 20 74 65 72 6d 5c 6e 6c 61 6d 62 64 20 3d 20 31 65 2d 33 5c 6e 5c 6e 47 73 20 3d 20 6f 74 2e g.term\nlambd.=.1e-3\n\nGs.=.ot.
6b80 73 69 6e 6b 68 6f 72 6e 28 61 2c 20 62 2c 20 4d 2c 20 6c 61 6d 62 64 29 5c 6e 5c 6e 70 6c 2e 66 sinkhorn(a,.b,.M,.lambd)\n\npl.f
6ba0 69 67 75 72 65 28 35 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 47 73 2c 20 69 6e 74 65 72 70 6f 6c igure(5)\npl.imshow(Gs,.interpol
6bc0 61 74 69 6f 6e 3d 27 6e 65 61 72 65 73 74 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 4f 54 20 6d ation='nearest')\npl.title('OT.m
6be0 61 74 72 69 78 20 73 69 6e 6b 68 6f 72 6e 27 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 36 29 atrix.sinkhorn')\n\npl.figure(6)
6c00 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 32 44 5f 73 61 6d 70 6c 65 73 5f 6d 61 74 28 78 73 2c \not.plot.plot2D_samples_mat(xs,
6c20 20 78 74 2c 20 47 73 2c 20 63 6f 6c 6f 72 3d 5b 2e 35 2c 20 2e 35 2c 20 31 5d 29 5c 6e 70 6c 2e .xt,.Gs,.color=[.5,..5,.1])\npl.
6c40 70 6c 6f 74 28 78 73 5b 3a 2c 20 30 5d 2c 20 78 73 5b 3a 2c 20 31 5d 2c 20 27 2b 62 27 2c 20 6c plot(xs[:,.0],.xs[:,.1],.'+b',.l
6c60 61 62 65 6c 3d 27 53 6f 75 72 63 65 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 70 6c 6f 74 28 abel='Source.samples')\npl.plot(
6c80 78 74 5b 3a 2c 20 30 5d 2c 20 78 74 5b 3a 2c 20 31 5d 2c 20 27 78 72 27 2c 20 6c 61 62 65 6c 3d xt[:,.0],.xt[:,.1],.'xr',.label=
6ca0 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 'Target.samples')\npl.legend(loc
6cc0 3d 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 4f 54 20 6d 61 74 72 69 78 20 53 69 6e 6b 68 6f 72 =0)\npl.title('OT.matrix.Sinkhor
6ce0 6e 20 77 69 74 68 20 73 61 6d 70 6c 65 73 27 29 5c 6e 5c 6e 70 6c 2e 73 68 6f 77 28 29 22 0a 20 n.with.samples')\n\npl.show()"..
6d00 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f .....].....},.....{......."cell_
6d20 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 type":."markdown",......."metada
6d40 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 ta":.{},......."source":.[......
6d60 20 20 20 22 45 6d 70 72 69 72 69 63 61 6c 20 53 69 6e 6b 68 6f 72 6e 5c 6e 2d 2d 2d 2d 2d 2d 2d ..."Emprirical.Sinkhorn\n-------
6d80 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 ---------\n\n".......].....},...
6da0 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 ..{......."cell_type":."code",..
6dc0 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 ....."execution_count":.null,...
6de0 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 ...."metadata":.{........."colla
6e00 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 psed":.false.......},......."out
6e20 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 puts":.[],......."source":.[....
6e40 20 20 20 20 20 22 23 20 72 65 67 20 74 65 72 6d 5c 6e 6c 61 6d 62 64 20 3d 20 31 65 2d 33 5c 6e ....."#.reg.term\nlambd.=.1e-3\n
6e60 5c 6e 47 65 73 20 3d 20 6f 74 2e 62 72 65 67 6d 61 6e 2e 65 6d 70 69 72 69 63 61 6c 5f 73 69 6e \nGes.=.ot.bregman.empirical_sin
6e80 6b 68 6f 72 6e 28 78 73 2c 20 78 74 2c 20 6c 61 6d 62 64 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 khorn(xs,.xt,.lambd)\n\npl.figur
6ea0 65 28 37 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 47 65 73 2c 20 69 6e 74 65 72 70 6f 6c 61 74 69 e(7)\npl.imshow(Ges,.interpolati
6ec0 6f 6e 3d 27 6e 65 61 72 65 73 74 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 4f 54 20 6d 61 74 72 on='nearest')\npl.title('OT.matr
6ee0 69 78 20 65 6d 70 69 72 69 63 61 6c 20 73 69 6e 6b 68 6f 72 6e 27 29 5c 6e 5c 6e 70 6c 2e 66 69 ix.empirical.sinkhorn')\n\npl.fi
6f00 67 75 72 65 28 38 29 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 32 44 5f 73 61 6d 70 6c 65 73 5f gure(8)\not.plot.plot2D_samples_
6f20 6d 61 74 28 78 73 2c 20 78 74 2c 20 47 65 73 2c 20 63 6f 6c 6f 72 3d 5b 2e 35 2c 20 2e 35 2c 20 mat(xs,.xt,.Ges,.color=[.5,..5,.
6f40 31 5d 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 73 5b 3a 2c 20 30 5d 2c 20 78 73 5b 3a 2c 20 31 5d 2c 1])\npl.plot(xs[:,.0],.xs[:,.1],
6f60 20 27 2b 62 27 2c 20 6c 61 62 65 6c 3d 27 53 6f 75 72 63 65 20 73 61 6d 70 6c 65 73 27 29 5c 6e .'+b',.label='Source.samples')\n
6f80 70 6c 2e 70 6c 6f 74 28 78 74 5b 3a 2c 20 30 5d 2c 20 78 74 5b 3a 2c 20 31 5d 2c 20 27 78 72 27 pl.plot(xt[:,.0],.xt[:,.1],.'xr'
6fa0 2c 20 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 6c 65 ,.label='Target.samples')\npl.le
6fc0 67 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 4f 54 20 6d 61 74 72 69 78 gend(loc=0)\npl.title('OT.matrix
6fe0 20 53 69 6e 6b 68 6f 72 6e 20 66 72 6f 6d 20 73 61 6d 70 6c 65 73 27 29 5c 6e 5c 6e 70 6c 2e 73 .Sinkhorn.from.samples')\n\npl.s
7000 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 0a 20 20 5d 2c 0a 20 20 22 6d 65 74 how()".......].....}...],..."met
7020 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 22 6b 65 72 6e 65 6c 73 70 65 63 22 3a 20 7b 0a 20 20 adata":.{....."kernelspec":.{...
7040 20 20 20 20 22 64 69 73 70 6c 61 79 5f 6e 61 6d 65 22 3a 20 22 50 79 74 68 6f 6e 20 33 22 2c 0a ...."display_name":."Python.3",.
7060 20 20 20 20 20 20 22 6c 61 6e 67 75 61 67 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 ......"language":."python",.....
7080 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 33 22 0a 20 20 20 20 7d 2c 0a 20 20 20 20 22 .."name":."python3".....},....."
70a0 6c 61 6e 67 75 61 67 65 5f 69 6e 66 6f 22 3a 20 7b 0a 20 20 20 20 20 20 22 63 6f 64 65 6d 69 72 language_info":.{......."codemir
70c0 72 6f 72 5f 6d 6f 64 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 69 70 ror_mode":.{........."name":."ip
70e0 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 33 0a 20 20 20 ython",........."version":.3....
7100 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 66 69 6c 65 5f 65 78 74 65 6e 73 69 6f 6e 22 3a 20 22 2e ...},......."file_extension":.".
7120 70 79 22 2c 0a 20 20 20 20 20 20 22 6d 69 6d 65 74 79 70 65 22 3a 20 22 74 65 78 74 2f 78 2d 70 py",......."mimetype":."text/x-p
7140 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a ython",......."name":."python",.
7160 20 20 20 20 20 20 22 6e 62 63 6f 6e 76 65 72 74 5f 65 78 70 6f 72 74 65 72 22 3a 20 22 70 79 74 ......"nbconvert_exporter":."pyt
7180 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 70 79 67 6d 65 6e 74 73 5f 6c 65 78 65 72 22 3a 20 22 69 hon",......."pygments_lexer":."i
71a0 70 79 74 68 6f 6e 33 22 2c 0a 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 36 2e python3",......."version":."3.6.
71c0 39 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 22 3a 20 34 2c 0a 20 9".....}...},..."nbformat":.4,..
71e0 20 22 6e 62 66 6f 72 6d 61 74 5f 6d 69 6e 6f 72 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 ."nbformat_minor":.0.}PK........
7200 a4 72 94 50 99 c4 c0 a2 76 0c 00 00 76 0c 00 00 11 00 00 00 70 6c 6f 74 5f 55 4f 54 5f 31 44 2e .r.P....v...v.......plot_UOT_1D.
7220 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 22 3a 20 5b 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 ipynb{..."cells":.[.....{.......
7240 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 "cell_type":."code",......."exec
7260 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 ution_count":.null,......."metad
7280 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c ata":.{........."collapsed":.fal
72a0 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c se.......},......."outputs":.[],
72c0 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 25 6d 61 74 ......."source":.[........."%mat
72e0 70 6c 6f 74 6c 69 62 20 69 6e 6c 69 6e 65 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 plotlib.inline".......].....},..
7300 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 ...{......."cell_type":."markdow
7320 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 n",......."metadata":.{},.......
7340 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 31 44 20 55 6e 62 61 "source":.[........."\n#.1D.Unba
7360 6c 61 6e 63 65 64 20 6f 70 74 69 6d 61 6c 20 74 72 61 6e 73 70 6f 72 74 5c 6e 5c 6e 5c 6e 54 68 lanced.optimal.transport\n\n\nTh
7380 69 73 20 65 78 61 6d 70 6c 65 20 69 6c 6c 75 73 74 72 61 74 65 73 20 74 68 65 20 63 6f 6d 70 75 is.example.illustrates.the.compu
73a0 74 61 74 69 6f 6e 20 6f 66 20 55 6e 62 61 6c 61 6e 63 65 64 20 4f 70 74 69 6d 61 6c 20 74 72 61 tation.of.Unbalanced.Optimal.tra
73c0 6e 73 70 6f 72 74 5c 6e 75 73 69 6e 67 20 61 20 4b 75 6c 6c 62 61 63 6b 2d 4c 65 69 62 6c 65 72 nsport\nusing.a.Kullback-Leibler
73e0 20 72 65 6c 61 78 61 74 69 6f 6e 2e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c .relaxation.\n\n".......].....},
7400 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 .....{......."cell_type":."code"
7420 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c ,......."execution_count":.null,
7440 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f ......."metadata":.{........."co
7460 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 llapsed":.false.......},......."
7480 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a outputs":.[],......."source":.[.
74a0 20 20 20 20 20 20 20 20 22 23 20 41 75 74 68 6f 72 3a 20 48 69 63 68 61 6d 20 4a 61 6e 61 74 69 ........"#.Author:.Hicham.Janati
74c0 20 3c 68 69 63 68 61 6d 2e 6a 61 6e 61 74 69 40 69 6e 72 69 61 2e 66 72 3e 5c 6e 23 5c 6e 23 20 .<hicham.janati@inria.fr>\n#\n#.
74e0 4c 69 63 65 6e 73 65 3a 20 4d 49 54 20 4c 69 63 65 6e 73 65 5c 6e 5c 6e 69 6d 70 6f 72 74 20 6e License:.MIT.License\n\nimport.n
7500 75 6d 70 79 20 61 73 20 6e 70 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 umpy.as.np\nimport.matplotlib.py
7520 6c 61 62 20 61 73 20 70 6c 5c 6e 69 6d 70 6f 72 74 20 6f 74 5c 6e 69 6d 70 6f 72 74 20 6f 74 2e lab.as.pl\nimport.ot\nimport.ot.
7540 70 6c 6f 74 5c 6e 66 72 6f 6d 20 6f 74 2e 64 61 74 61 73 65 74 73 20 69 6d 70 6f 72 74 20 6d 61 plot\nfrom.ot.datasets.import.ma
7560 6b 65 5f 31 44 5f 67 61 75 73 73 20 61 73 20 67 61 75 73 73 22 0a 20 20 20 20 20 20 5d 0a 20 20 ke_1D_gauss.as.gauss".......]...
7580 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d ..},.....{......."cell_type":."m
75a0 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a arkdown",......."metadata":.{},.
75c0 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 47 65 6e 65 72 ......"source":.[........."Gener
75e0 61 74 65 20 64 61 74 61 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 ate.data\n-------------\n\n"....
7600 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 ...].....},.....{......."cell_ty
7620 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f pe":."code",......."execution_co
7640 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a unt":.null,......."metadata":.{.
7660 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 ........"collapsed":.false......
7680 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 .},......."outputs":.[],......."
76a0 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 6e 20 3d 20 31 30 30 20 20 23 20 6e source":.[........."n.=.100..#.n
76c0 62 20 62 69 6e 73 5c 6e 5c 6e 23 20 62 69 6e 20 70 6f 73 69 74 69 6f 6e 73 5c 6e 78 20 3d 20 6e b.bins\n\n#.bin.positions\nx.=.n
76e0 70 2e 61 72 61 6e 67 65 28 6e 2c 20 64 74 79 70 65 3d 6e 70 2e 66 6c 6f 61 74 36 34 29 5c 6e 5c p.arange(n,.dtype=np.float64)\n\
7700 6e 23 20 47 61 75 73 73 69 61 6e 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 5c 6e 61 20 3d 20 67 n#.Gaussian.distributions\na.=.g
7720 61 75 73 73 28 6e 2c 20 6d 3d 32 30 2c 20 73 3d 35 29 20 20 23 20 6d 3d 20 6d 65 61 6e 2c 20 73 auss(n,.m=20,.s=5)..#.m=.mean,.s
7740 3d 20 73 74 64 5c 6e 62 20 3d 20 67 61 75 73 73 28 6e 2c 20 6d 3d 36 30 2c 20 73 3d 31 30 29 5c =.std\nb.=.gauss(n,.m=60,.s=10)\
7760 6e 5c 6e 23 20 6d 61 6b 65 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 20 75 6e 62 61 6c 61 6e 63 n\n#.make.distributions.unbalanc
7780 65 64 5c 6e 62 20 2a 3d 20 35 2e 5c 6e 5c 6e 23 20 6c 6f 73 73 20 6d 61 74 72 69 78 5c 6e 4d 20 ed\nb.*=.5.\n\n#.loss.matrix\nM.
77a0 3d 20 6f 74 2e 64 69 73 74 28 78 2e 72 65 73 68 61 70 65 28 28 6e 2c 20 31 29 29 2c 20 78 2e 72 =.ot.dist(x.reshape((n,.1)),.x.r
77c0 65 73 68 61 70 65 28 28 6e 2c 20 31 29 29 29 5c 6e 4d 20 2f 3d 20 4d 2e 6d 61 78 28 29 22 0a 20 eshape((n,.1)))\nM./=.M.max()"..
77e0 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f .....].....},.....{......."cell_
7800 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 type":."markdown",......."metada
7820 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 ta":.{},......."source":.[......
7840 20 20 20 22 50 6c 6f 74 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 20 61 6e 64 20 6c 6f 73 73 20 ..."Plot.distributions.and.loss.
7860 6d 61 74 72 69 78 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d matrix\n------------------------
7880 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 ----------\n\n".......].....},..
78a0 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a ...{......."cell_type":."code",.
78c0 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 ......"execution_count":.null,..
78e0 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c ....."metadata":.{........."coll
7900 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 apsed":.false.......},......."ou
7920 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 tputs":.[],......."source":.[...
7940 20 20 20 20 20 20 22 70 6c 2e 66 69 67 75 72 65 28 31 2c 20 66 69 67 73 69 7a 65 3d 28 36 2e 34 ......"pl.figure(1,.figsize=(6.4
7960 2c 20 33 29 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 2c 20 61 2c 20 27 62 27 2c 20 6c 61 62 65 6c 3d ,.3))\npl.plot(x,.a,.'b',.label=
7980 27 53 6f 75 72 63 65 20 64 69 73 74 72 69 62 75 74 69 6f 6e 27 29 5c 6e 70 6c 2e 70 6c 6f 74 28 'Source.distribution')\npl.plot(
79a0 78 2c 20 62 2c 20 27 72 27 2c 20 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 64 69 73 74 72 69 62 x,.b,.'r',.label='Target.distrib
79c0 75 74 69 6f 6e 27 29 5c 6e 70 6c 2e 6c 65 67 65 6e 64 28 29 5c 6e 5c 6e 23 20 70 6c 6f 74 20 64 ution')\npl.legend()\n\n#.plot.d
79e0 69 73 74 72 69 62 75 74 69 6f 6e 73 20 61 6e 64 20 6c 6f 73 73 20 6d 61 74 72 69 78 5c 6e 5c 6e istributions.and.loss.matrix\n\n
7a00 70 6c 2e 66 69 67 75 72 65 28 32 2c 20 66 69 67 73 69 7a 65 3d 28 35 2c 20 35 29 29 5c 6e 6f 74 pl.figure(2,.figsize=(5,.5))\not
7a20 2e 70 6c 6f 74 2e 70 6c 6f 74 31 44 5f 6d 61 74 28 61 2c 20 62 2c 20 4d 2c 20 27 43 6f 73 74 20 .plot.plot1D_mat(a,.b,.M,.'Cost.
7a40 6d 61 74 72 69 78 20 4d 27 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b matrix.M')".......].....},.....{
7a60 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a ......."cell_type":."markdown",.
7a80 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 ......"metadata":.{},......."sou
7aa0 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 53 6f 6c 76 65 20 55 6e 62 61 6c 61 6e 63 65 rce":.[........."Solve.Unbalance
7ac0 64 20 53 69 6e 6b 68 6f 72 6e 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a d.Sinkhorn\n--------------\n\n".
7ae0 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c ......].....},.....{......."cell
7b00 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e _type":."code",......."execution
7b20 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a _count":.null,......."metadata":
7b40 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 .{........."collapsed":.false...
7b60 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 ....},......."outputs":.[],.....
7b80 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 20 53 69 6e 6b 68 6f 72 .."source":.[........."#.Sinkhor
7ba0 6e 5c 6e 5c 6e 65 70 73 69 6c 6f 6e 20 3d 20 30 2e 31 20 20 23 20 65 6e 74 72 6f 70 79 20 70 61 n\n\nepsilon.=.0.1..#.entropy.pa
7bc0 72 61 6d 65 74 65 72 5c 6e 61 6c 70 68 61 20 3d 20 31 2e 20 20 23 20 55 6e 62 61 6c 61 6e 63 65 rameter\nalpha.=.1...#.Unbalance
7be0 64 20 4b 4c 20 72 65 6c 61 78 61 74 69 6f 6e 20 70 61 72 61 6d 65 74 65 72 5c 6e 47 73 20 3d 20 d.KL.relaxation.parameter\nGs.=.
7c00 6f 74 2e 75 6e 62 61 6c 61 6e 63 65 64 2e 73 69 6e 6b 68 6f 72 6e 5f 75 6e 62 61 6c 61 6e 63 65 ot.unbalanced.sinkhorn_unbalance
7c20 64 28 61 2c 20 62 2c 20 4d 2c 20 65 70 73 69 6c 6f 6e 2c 20 61 6c 70 68 61 2c 20 76 65 72 62 6f d(a,.b,.M,.epsilon,.alpha,.verbo
7c40 73 65 3d 54 72 75 65 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 34 2c 20 66 69 67 73 69 7a 65 se=True)\n\npl.figure(4,.figsize
7c60 3d 28 35 2c 20 35 29 29 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 31 44 5f 6d 61 74 28 61 2c 20 =(5,.5))\not.plot.plot1D_mat(a,.
7c80 62 2c 20 47 73 2c 20 27 55 4f 54 20 6d 61 74 72 69 78 20 53 69 6e 6b 68 6f 72 6e 27 29 5c 6e 5c b,.Gs,.'UOT.matrix.Sinkhorn')\n\
7ca0 6e 70 6c 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 0a 20 20 5d 2c 0a 20 npl.show()".......].....}...],..
7cc0 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 22 6b 65 72 6e 65 6c 73 70 65 63 22 3a ."metadata":.{....."kernelspec":
7ce0 20 7b 0a 20 20 20 20 20 20 22 64 69 73 70 6c 61 79 5f 6e 61 6d 65 22 3a 20 22 50 79 74 68 6f 6e .{......."display_name":."Python
7d00 20 33 22 2c 0a 20 20 20 20 20 20 22 6c 61 6e 67 75 61 67 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c .3",......."language":."python",
7d20 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 33 22 0a 20 20 20 20 7d 2c 0a ......."name":."python3".....},.
7d40 20 20 20 20 22 6c 61 6e 67 75 61 67 65 5f 69 6e 66 6f 22 3a 20 7b 0a 20 20 20 20 20 20 22 63 6f ...."language_info":.{......."co
7d60 64 65 6d 69 72 72 6f 72 5f 6d 6f 64 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 demirror_mode":.{........."name"
7d80 3a 20 22 69 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 :."ipython",........."version":.
7da0 33 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 66 69 6c 65 5f 65 78 74 65 6e 73 69 6f 6e 3.......},......."file_extension
7dc0 22 3a 20 22 2e 70 79 22 2c 0a 20 20 20 20 20 20 22 6d 69 6d 65 74 79 70 65 22 3a 20 22 74 65 78 ":.".py",......."mimetype":."tex
7de0 74 2f 78 2d 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 t/x-python",......."name":."pyth
7e00 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 62 63 6f 6e 76 65 72 74 5f 65 78 70 6f 72 74 65 72 22 3a on",......."nbconvert_exporter":
7e20 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 70 79 67 6d 65 6e 74 73 5f 6c 65 78 65 72 ."python",......."pygments_lexer
7e40 22 3a 20 22 69 70 79 74 68 6f 6e 33 22 2c 0a 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 ":."ipython3",......."version":.
7e60 22 33 2e 36 2e 39 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 22 3a "3.6.9".....}...},..."nbformat":
7e80 20 34 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 5f 6d 69 6e 6f 72 22 3a 20 30 0a 7d 50 4b 03 04 14 .4,..."nbformat_minor":.0.}PK...
7ea0 00 00 00 00 00 03 78 94 50 d8 23 74 ca 23 16 00 00 23 16 00 00 1c 00 00 00 70 6c 6f 74 5f 55 4f ......x.P.#t.#...#.......plot_UO
7ec0 54 5f 62 61 72 79 63 65 6e 74 65 72 5f 31 44 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 22 T_barycenter_1D.ipynb{..."cells"
7ee0 3a 20 5b 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f :.[.....{......."cell_type":."co
7f00 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 de",......."execution_count":.nu
7f20 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 ll,......."metadata":.{.........
7f40 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 "collapsed":.false.......},.....
7f60 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a .."outputs":.[],......."source":
7f80 20 5b 0a 20 20 20 20 20 20 20 20 22 25 6d 61 74 70 6c 6f 74 6c 69 62 20 69 6e 6c 69 6e 65 22 0a .[........."%matplotlib.inline".
7fa0 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c ......].....},.....{......."cell
7fc0 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 _type":."markdown",......."metad
7fe0 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 ata":.{},......."source":.[.....
8000 20 20 20 20 22 5c 6e 23 20 31 44 20 57 61 73 73 65 72 73 74 65 69 6e 20 62 61 72 79 63 65 6e 74 ...."\n#.1D.Wasserstein.barycent
8020 65 72 20 64 65 6d 6f 20 66 6f 72 20 55 6e 62 61 6c 61 6e 63 65 64 20 64 69 73 74 72 69 62 75 74 er.demo.for.Unbalanced.distribut
8040 69 6f 6e 73 5c 6e 5c 6e 5c 6e 54 68 69 73 20 65 78 61 6d 70 6c 65 20 69 6c 6c 75 73 74 72 61 74 ions\n\n\nThis.example.illustrat
8060 65 73 20 74 68 65 20 63 6f 6d 70 75 74 61 74 69 6f 6e 20 6f 66 20 72 65 67 75 6c 61 72 69 7a 65 es.the.computation.of.regularize
8080 64 20 57 61 73 73 65 72 73 79 65 69 6e 20 42 61 72 79 63 65 6e 74 65 72 5c 6e 61 73 20 70 72 6f d.Wassersyein.Barycenter\nas.pro
80a0 70 6f 73 65 64 20 69 6e 20 5b 31 30 5d 20 66 6f 72 20 55 6e 62 61 6c 61 6e 63 65 64 20 69 6e 70 posed.in.[10].for.Unbalanced.inp
80c0 75 74 73 2e 5c 6e 5c 6e 5c 6e 5b 31 30 5d 20 43 68 69 7a 61 74 2c 20 4c 2e 2c 20 50 65 79 72 5c uts.\n\n\n[10].Chizat,.L.,.Peyr\
80e0 75 30 30 65 39 2c 20 47 2e 2c 20 53 63 68 6d 69 74 7a 65 72 2c 20 42 2e 2c 20 26 20 56 69 61 6c u00e9,.G.,.Schmitzer,.B.,.&.Vial
8100 61 72 64 2c 20 46 2e 20 58 2e 20 28 32 30 31 36 29 2e 20 53 63 61 6c 69 6e 67 20 61 6c 67 6f 72 ard,.F..X..(2016)..Scaling.algor
8120 69 74 68 6d 73 20 66 6f 72 20 75 6e 62 61 6c 61 6e 63 65 64 20 74 72 61 6e 73 70 6f 72 74 20 70 ithms.for.unbalanced.transport.p
8140 72 6f 62 6c 65 6d 73 2e 20 61 72 58 69 76 20 70 72 65 70 72 69 6e 74 20 61 72 58 69 76 3a 31 36 roblems..arXiv.preprint.arXiv:16
8160 30 37 2e 30 35 38 31 36 2e 5c 6e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 07.05816.\n\n\n".......].....},.
8180 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c ....{......."cell_type":."code",
81a0 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a ......."execution_count":.null,.
81c0 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c ......"metadata":.{........."col
81e0 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f lapsed":.false.......},......."o
8200 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 utputs":.[],......."source":.[..
8220 20 20 20 20 20 20 20 22 23 20 41 75 74 68 6f 72 3a 20 48 69 63 68 61 6d 20 4a 61 6e 61 74 69 20 ......."#.Author:.Hicham.Janati.
8240 3c 68 69 63 68 61 6d 2e 6a 61 6e 61 74 69 40 69 6e 72 69 61 2e 66 72 3e 5c 6e 23 5c 6e 23 20 4c <hicham.janati@inria.fr>\n#\n#.L
8260 69 63 65 6e 73 65 3a 20 4d 49 54 20 4c 69 63 65 6e 73 65 5c 6e 5c 6e 69 6d 70 6f 72 74 20 6e 75 icense:.MIT.License\n\nimport.nu
8280 6d 70 79 20 61 73 20 6e 70 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 6c mpy.as.np\nimport.matplotlib.pyl
82a0 61 62 20 61 73 20 70 6c 5c 6e 69 6d 70 6f 72 74 20 6f 74 5c 6e 23 20 6e 65 63 65 73 73 61 72 79 ab.as.pl\nimport.ot\n#.necessary
82c0 20 66 6f 72 20 33 64 20 70 6c 6f 74 20 65 76 65 6e 20 69 66 20 6e 6f 74 20 75 73 65 64 5c 6e 66 .for.3d.plot.even.if.not.used\nf
82e0 72 6f 6d 20 6d 70 6c 5f 74 6f 6f 6c 6b 69 74 73 2e 6d 70 6c 6f 74 33 64 20 69 6d 70 6f 72 74 20 rom.mpl_toolkits.mplot3d.import.
8300 41 78 65 73 33 44 20 20 23 20 6e 6f 71 61 5c 6e 66 72 6f 6d 20 6d 61 74 70 6c 6f 74 6c 69 62 2e Axes3D..#.noqa\nfrom.matplotlib.
8320 63 6f 6c 6c 65 63 74 69 6f 6e 73 20 69 6d 70 6f 72 74 20 50 6f 6c 79 43 6f 6c 6c 65 63 74 69 6f collections.import.PolyCollectio
8340 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 n".......].....},.....{......."c
8360 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 ell_type":."markdown",......."me
8380 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 tadata":.{},......."source":.[..
83a0 20 20 20 20 20 20 20 22 47 65 6e 65 72 61 74 65 20 64 61 74 61 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d ......."Generate.data\n---------
83c0 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 ----\n\n".......].....},.....{..
83e0 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 ....."cell_type":."code",.......
8400 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 "execution_count":.null,......."
8420 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 metadata":.{........."collapsed"
8440 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 :.false.......},......."outputs"
8460 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 :.[],......."source":.[.........
8480 22 23 20 70 61 72 61 6d 65 74 65 72 73 5c 6e 5c 6e 6e 20 3d 20 31 30 30 20 20 23 20 6e 62 20 62 "#.parameters\n\nn.=.100..#.nb.b
84a0 69 6e 73 5c 6e 5c 6e 23 20 62 69 6e 20 70 6f 73 69 74 69 6f 6e 73 5c 6e 78 20 3d 20 6e 70 2e 61 ins\n\n#.bin.positions\nx.=.np.a
84c0 72 61 6e 67 65 28 6e 2c 20 64 74 79 70 65 3d 6e 70 2e 66 6c 6f 61 74 36 34 29 5c 6e 5c 6e 23 20 range(n,.dtype=np.float64)\n\n#.
84e0 47 61 75 73 73 69 61 6e 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 5c 6e 61 31 20 3d 20 6f 74 2e Gaussian.distributions\na1.=.ot.
8500 64 61 74 61 73 65 74 73 2e 6d 61 6b 65 5f 31 44 5f 67 61 75 73 73 28 6e 2c 20 6d 3d 32 30 2c 20 datasets.make_1D_gauss(n,.m=20,.
8520 73 3d 35 29 20 20 23 20 6d 3d 20 6d 65 61 6e 2c 20 73 3d 20 73 74 64 5c 6e 61 32 20 3d 20 6f 74 s=5)..#.m=.mean,.s=.std\na2.=.ot
8540 2e 64 61 74 61 73 65 74 73 2e 6d 61 6b 65 5f 31 44 5f 67 61 75 73 73 28 6e 2c 20 6d 3d 36 30 2c .datasets.make_1D_gauss(n,.m=60,
8560 20 73 3d 38 29 5c 6e 5c 6e 23 20 6d 61 6b 65 20 75 6e 62 61 6c 61 6e 63 65 64 20 64 69 73 74 73 .s=8)\n\n#.make.unbalanced.dists
8580 5c 6e 61 32 20 2a 3d 20 33 2e 5c 6e 5c 6e 23 20 63 72 65 61 74 69 6e 67 20 6d 61 74 72 69 78 20 \na2.*=.3.\n\n#.creating.matrix.
85a0 41 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 6c 6c 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 5c 6e A.containing.all.distributions\n
85c0 41 20 3d 20 6e 70 2e 76 73 74 61 63 6b 28 28 61 31 2c 20 61 32 29 29 2e 54 5c 6e 6e 5f 64 69 73 A.=.np.vstack((a1,.a2)).T\nn_dis
85e0 74 72 69 62 75 74 69 6f 6e 73 20 3d 20 41 2e 73 68 61 70 65 5b 31 5d 5c 6e 5c 6e 23 20 6c 6f 73 tributions.=.A.shape[1]\n\n#.los
8600 73 20 6d 61 74 72 69 78 20 2b 20 6e 6f 72 6d 61 6c 69 7a 61 74 69 6f 6e 5c 6e 4d 20 3d 20 6f 74 s.matrix.+.normalization\nM.=.ot
8620 2e 75 74 69 6c 73 2e 64 69 73 74 30 28 6e 29 5c 6e 4d 20 2f 3d 20 4d 2e 6d 61 78 28 29 22 0a 20 .utils.dist0(n)\nM./=.M.max()"..
8640 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f .....].....},.....{......."cell_
8660 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 type":."markdown",......."metada
8680 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 ta":.{},......."source":.[......
86a0 20 20 20 22 50 6c 6f 74 20 64 61 74 61 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 ..."Plot.data\n---------\n\n"...
86c0 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 ....].....},.....{......."cell_t
86e0 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 ype":."code",......."execution_c
8700 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b ount":.null,......."metadata":.{
8720 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 ........."collapsed":.false.....
8740 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 ..},......."outputs":.[],.......
8760 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 20 70 6c 6f 74 20 74 68 65 20 "source":.[........."#.plot.the.
8780 64 69 73 74 72 69 62 75 74 69 6f 6e 73 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 31 2c 20 66 69 distributions\n\npl.figure(1,.fi
87a0 67 73 69 7a 65 3d 28 36 2e 34 2c 20 33 29 29 5c 6e 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 65 28 gsize=(6.4,.3))\nfor.i.in.range(
87c0 6e 5f 64 69 73 74 72 69 62 75 74 69 6f 6e 73 29 3a 5c 6e 20 20 20 20 70 6c 2e 70 6c 6f 74 28 78 n_distributions):\n....pl.plot(x
87e0 2c 20 41 5b 3a 2c 20 69 5d 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 44 69 73 74 72 69 62 75 74 69 ,.A[:,.i])\npl.title('Distributi
8800 6f 6e 73 27 29 5c 6e 70 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 22 0a 20 20 20 20 20 20 ons')\npl.tight_layout()".......
8820 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 ].....},.....{......."cell_type"
8840 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 :."markdown",......."metadata":.
8860 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 42 {},......."source":.[........."B
8880 61 72 79 63 65 6e 74 65 72 20 63 6f 6d 70 75 74 61 74 69 6f 6e 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d arycenter.computation\n---------
88a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d -------------\n\n".......].....}
88c0 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 ,.....{......."cell_type":."code
88e0 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c ",......."execution_count":.null
8900 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 ,......."metadata":.{........."c
8920 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 ollapsed":.false.......},.......
8940 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b "outputs":.[],......."source":.[
8960 0a 20 20 20 20 20 20 20 20 22 23 20 6e 6f 6e 20 77 65 69 67 68 74 65 64 20 62 61 72 79 63 65 6e ........."#.non.weighted.barycen
8980 74 65 72 20 63 6f 6d 70 75 74 61 74 69 6f 6e 5c 6e 5c 6e 77 65 69 67 68 74 20 3d 20 30 2e 35 20 ter.computation\n\nweight.=.0.5.
89a0 20 23 20 30 3c 3d 77 65 69 67 68 74 3c 3d 31 5c 6e 77 65 69 67 68 74 73 20 3d 20 6e 70 2e 61 72 .#.0<=weight<=1\nweights.=.np.ar
89c0 72 61 79 28 5b 31 20 2d 20 77 65 69 67 68 74 2c 20 77 65 69 67 68 74 5d 29 5c 6e 5c 6e 23 20 6c ray([1.-.weight,.weight])\n\n#.l
89e0 32 62 61 72 79 5c 6e 62 61 72 79 5f 6c 32 20 3d 20 41 2e 64 6f 74 28 77 65 69 67 68 74 73 29 5c 2bary\nbary_l2.=.A.dot(weights)\
8a00 6e 5c 6e 23 20 77 61 73 73 65 72 73 74 65 69 6e 5c 6e 72 65 67 20 3d 20 31 65 2d 33 5c 6e 61 6c n\n#.wasserstein\nreg.=.1e-3\nal
8a20 70 68 61 20 3d 20 31 2e 5c 6e 5c 6e 62 61 72 79 5f 77 61 73 73 20 3d 20 6f 74 2e 75 6e 62 61 6c pha.=.1.\n\nbary_wass.=.ot.unbal
8a40 61 6e 63 65 64 2e 62 61 72 79 63 65 6e 74 65 72 5f 75 6e 62 61 6c 61 6e 63 65 64 28 41 2c 20 4d anced.barycenter_unbalanced(A,.M
8a60 2c 20 72 65 67 2c 20 61 6c 70 68 61 2c 20 77 65 69 67 68 74 73 3d 77 65 69 67 68 74 73 29 5c 6e ,.reg,.alpha,.weights=weights)\n
8a80 5c 6e 70 6c 2e 66 69 67 75 72 65 28 32 29 5c 6e 70 6c 2e 63 6c 66 28 29 5c 6e 70 6c 2e 73 75 62 \npl.figure(2)\npl.clf()\npl.sub
8aa0 70 6c 6f 74 28 32 2c 20 31 2c 20 31 29 5c 6e 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 65 28 6e 5f plot(2,.1,.1)\nfor.i.in.range(n_
8ac0 64 69 73 74 72 69 62 75 74 69 6f 6e 73 29 3a 5c 6e 20 20 20 20 70 6c 2e 70 6c 6f 74 28 78 2c 20 distributions):\n....pl.plot(x,.
8ae0 41 5b 3a 2c 20 69 5d 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 44 69 73 74 72 69 62 75 74 69 6f 6e A[:,.i])\npl.title('Distribution
8b00 73 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 31 2c 20 32 29 5c 6e 70 6c 2e 70 s')\n\npl.subplot(2,.1,.2)\npl.p
8b20 6c 6f 74 28 78 2c 20 62 61 72 79 5f 6c 32 2c 20 27 72 27 2c 20 6c 61 62 65 6c 3d 27 6c 32 27 29 lot(x,.bary_l2,.'r',.label='l2')
8b40 5c 6e 70 6c 2e 70 6c 6f 74 28 78 2c 20 62 61 72 79 5f 77 61 73 73 2c 20 27 67 27 2c 20 6c 61 62 \npl.plot(x,.bary_wass,.'g',.lab
8b60 65 6c 3d 27 57 61 73 73 65 72 73 74 65 69 6e 27 29 5c 6e 70 6c 2e 6c 65 67 65 6e 64 28 29 5c 6e el='Wasserstein')\npl.legend()\n
8b80 70 6c 2e 74 69 74 6c 65 28 27 42 61 72 79 63 65 6e 74 65 72 73 27 29 5c 6e 70 6c 2e 74 69 67 68 pl.title('Barycenters')\npl.tigh
8ba0 74 5f 6c 61 79 6f 75 74 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b t_layout()".......].....},.....{
8bc0 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a ......."cell_type":."markdown",.
8be0 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 ......"metadata":.{},......."sou
8c00 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 42 61 72 79 63 65 6e 74 72 69 63 20 69 6e 74 rce":.[........."Barycentric.int
8c20 65 72 70 6f 6c 61 74 69 6f 6e 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d erpolation\n--------------------
8c40 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a -----\n\n".......].....},.....{.
8c60 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 ......"cell_type":."code",......
8c80 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 ."execution_count":.null,.......
8ca0 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 "metadata":.{........."collapsed
8cc0 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 ":.false.......},......."outputs
8ce0 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 ":.[],......."source":.[........
8d00 20 22 23 20 62 61 72 79 63 65 6e 74 65 72 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 5c 6e 5c 6e ."#.barycenter.interpolation\n\n
8d20 6e 5f 77 65 69 67 68 74 20 3d 20 31 31 5c 6e 77 65 69 67 68 74 5f 6c 69 73 74 20 3d 20 6e 70 2e n_weight.=.11\nweight_list.=.np.
8d40 6c 69 6e 73 70 61 63 65 28 30 2c 20 31 2c 20 6e 5f 77 65 69 67 68 74 29 5c 6e 5c 6e 5c 6e 42 5f linspace(0,.1,.n_weight)\n\n\nB_
8d60 6c 32 20 3d 20 6e 70 2e 7a 65 72 6f 73 28 28 6e 2c 20 6e 5f 77 65 69 67 68 74 29 29 5c 6e 5c 6e l2.=.np.zeros((n,.n_weight))\n\n
8d80 42 5f 77 61 73 73 20 3d 20 6e 70 2e 63 6f 70 79 28 42 5f 6c 32 29 5c 6e 5c 6e 66 6f 72 20 69 20 B_wass.=.np.copy(B_l2)\n\nfor.i.
8da0 69 6e 20 72 61 6e 67 65 28 30 2c 20 6e 5f 77 65 69 67 68 74 29 3a 5c 6e 20 20 20 20 77 65 69 67 in.range(0,.n_weight):\n....weig
8dc0 68 74 20 3d 20 77 65 69 67 68 74 5f 6c 69 73 74 5b 69 5d 5c 6e 20 20 20 20 77 65 69 67 68 74 73 ht.=.weight_list[i]\n....weights
8de0 20 3d 20 6e 70 2e 61 72 72 61 79 28 5b 31 20 2d 20 77 65 69 67 68 74 2c 20 77 65 69 67 68 74 5d .=.np.array([1.-.weight,.weight]
8e00 29 5c 6e 20 20 20 20 42 5f 6c 32 5b 3a 2c 20 69 5d 20 3d 20 41 2e 64 6f 74 28 77 65 69 67 68 74 )\n....B_l2[:,.i].=.A.dot(weight
8e20 73 29 5c 6e 20 20 20 20 42 5f 77 61 73 73 5b 3a 2c 20 69 5d 20 3d 20 6f 74 2e 75 6e 62 61 6c 61 s)\n....B_wass[:,.i].=.ot.unbala
8e40 6e 63 65 64 2e 62 61 72 79 63 65 6e 74 65 72 5f 75 6e 62 61 6c 61 6e 63 65 64 28 41 2c 20 4d 2c nced.barycenter_unbalanced(A,.M,
8e60 20 72 65 67 2c 20 61 6c 70 68 61 2c 20 77 65 69 67 68 74 73 3d 77 65 69 67 68 74 73 29 5c 6e 5c .reg,.alpha,.weights=weights)\n\
8e80 6e 5c 6e 23 20 70 6c 6f 74 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 5c 6e 5c 6e 70 6c 2e 66 69 n\n#.plot.interpolation\n\npl.fi
8ea0 67 75 72 65 28 33 29 5c 6e 5c 6e 63 6d 61 70 20 3d 20 70 6c 2e 63 6d 2e 67 65 74 5f 63 6d 61 70 gure(3)\n\ncmap.=.pl.cm.get_cmap
8ec0 28 27 76 69 72 69 64 69 73 27 29 5c 6e 76 65 72 74 73 20 3d 20 5b 5d 5c 6e 7a 73 20 3d 20 77 65 ('viridis')\nverts.=.[]\nzs.=.we
8ee0 69 67 68 74 5f 6c 69 73 74 5c 6e 66 6f 72 20 69 2c 20 7a 20 69 6e 20 65 6e 75 6d 65 72 61 74 65 ight_list\nfor.i,.z.in.enumerate
8f00 28 7a 73 29 3a 5c 6e 20 20 20 20 79 73 20 3d 20 42 5f 6c 32 5b 3a 2c 20 69 5d 5c 6e 20 20 20 20 (zs):\n....ys.=.B_l2[:,.i]\n....
8f20 76 65 72 74 73 2e 61 70 70 65 6e 64 28 6c 69 73 74 28 7a 69 70 28 78 2c 20 79 73 29 29 29 5c 6e verts.append(list(zip(x,.ys)))\n
8f40 5c 6e 61 78 20 3d 20 70 6c 2e 67 63 66 28 29 2e 67 63 61 28 70 72 6f 6a 65 63 74 69 6f 6e 3d 27 \nax.=.pl.gcf().gca(projection='
8f60 33 64 27 29 5c 6e 5c 6e 70 6f 6c 79 20 3d 20 50 6f 6c 79 43 6f 6c 6c 65 63 74 69 6f 6e 28 76 65 3d')\n\npoly.=.PolyCollection(ve
8f80 72 74 73 2c 20 66 61 63 65 63 6f 6c 6f 72 73 3d 5b 63 6d 61 70 28 61 29 20 66 6f 72 20 61 20 69 rts,.facecolors=[cmap(a).for.a.i
8fa0 6e 20 77 65 69 67 68 74 5f 6c 69 73 74 5d 29 5c 6e 70 6f 6c 79 2e 73 65 74 5f 61 6c 70 68 61 28 n.weight_list])\npoly.set_alpha(
8fc0 30 2e 37 29 5c 6e 61 78 2e 61 64 64 5f 63 6f 6c 6c 65 63 74 69 6f 6e 33 64 28 70 6f 6c 79 2c 20 0.7)\nax.add_collection3d(poly,.
8fe0 7a 73 3d 7a 73 2c 20 7a 64 69 72 3d 27 79 27 29 5c 6e 61 78 2e 73 65 74 5f 78 6c 61 62 65 6c 28 zs=zs,.zdir='y')\nax.set_xlabel(
9000 27 78 27 29 5c 6e 61 78 2e 73 65 74 5f 78 6c 69 6d 33 64 28 30 2c 20 6e 29 5c 6e 61 78 2e 73 65 'x')\nax.set_xlim3d(0,.n)\nax.se
9020 74 5f 79 6c 61 62 65 6c 28 72 27 24 5c 5c 61 6c 70 68 61 24 27 29 5c 6e 61 78 2e 73 65 74 5f 79 t_ylabel(r'$\\alpha$')\nax.set_y
9040 6c 69 6d 33 64 28 30 2c 20 31 29 5c 6e 61 78 2e 73 65 74 5f 7a 6c 61 62 65 6c 28 27 27 29 5c 6e lim3d(0,.1)\nax.set_zlabel('')\n
9060 61 78 2e 73 65 74 5f 7a 6c 69 6d 33 64 28 30 2c 20 42 5f 6c 32 2e 6d 61 78 28 29 20 2a 20 31 2e ax.set_zlim3d(0,.B_l2.max().*.1.
9080 30 31 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 42 61 72 79 63 65 6e 74 65 72 20 69 6e 74 65 72 70 01)\npl.title('Barycenter.interp
90a0 6f 6c 61 74 69 6f 6e 20 77 69 74 68 20 6c 32 27 29 5c 6e 70 6c 2e 74 69 67 68 74 5f 6c 61 79 6f olation.with.l2')\npl.tight_layo
90c0 75 74 28 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 34 29 5c 6e 63 6d 61 70 20 3d 20 70 6c 2e ut()\n\npl.figure(4)\ncmap.=.pl.
90e0 63 6d 2e 67 65 74 5f 63 6d 61 70 28 27 76 69 72 69 64 69 73 27 29 5c 6e 76 65 72 74 73 20 3d 20 cm.get_cmap('viridis')\nverts.=.
9100 5b 5d 5c 6e 7a 73 20 3d 20 77 65 69 67 68 74 5f 6c 69 73 74 5c 6e 66 6f 72 20 69 2c 20 7a 20 69 []\nzs.=.weight_list\nfor.i,.z.i
9120 6e 20 65 6e 75 6d 65 72 61 74 65 28 7a 73 29 3a 5c 6e 20 20 20 20 79 73 20 3d 20 42 5f 77 61 73 n.enumerate(zs):\n....ys.=.B_was
9140 73 5b 3a 2c 20 69 5d 5c 6e 20 20 20 20 76 65 72 74 73 2e 61 70 70 65 6e 64 28 6c 69 73 74 28 7a s[:,.i]\n....verts.append(list(z
9160 69 70 28 78 2c 20 79 73 29 29 29 5c 6e 5c 6e 61 78 20 3d 20 70 6c 2e 67 63 66 28 29 2e 67 63 61 ip(x,.ys)))\n\nax.=.pl.gcf().gca
9180 28 70 72 6f 6a 65 63 74 69 6f 6e 3d 27 33 64 27 29 5c 6e 5c 6e 70 6f 6c 79 20 3d 20 50 6f 6c 79 (projection='3d')\n\npoly.=.Poly
91a0 43 6f 6c 6c 65 63 74 69 6f 6e 28 76 65 72 74 73 2c 20 66 61 63 65 63 6f 6c 6f 72 73 3d 5b 63 6d Collection(verts,.facecolors=[cm
91c0 61 70 28 61 29 20 66 6f 72 20 61 20 69 6e 20 77 65 69 67 68 74 5f 6c 69 73 74 5d 29 5c 6e 70 6f ap(a).for.a.in.weight_list])\npo
91e0 6c 79 2e 73 65 74 5f 61 6c 70 68 61 28 30 2e 37 29 5c 6e 61 78 2e 61 64 64 5f 63 6f 6c 6c 65 63 ly.set_alpha(0.7)\nax.add_collec
9200 74 69 6f 6e 33 64 28 70 6f 6c 79 2c 20 7a 73 3d 7a 73 2c 20 7a 64 69 72 3d 27 79 27 29 5c 6e 61 tion3d(poly,.zs=zs,.zdir='y')\na
9220 78 2e 73 65 74 5f 78 6c 61 62 65 6c 28 27 78 27 29 5c 6e 61 78 2e 73 65 74 5f 78 6c 69 6d 33 64 x.set_xlabel('x')\nax.set_xlim3d
9240 28 30 2c 20 6e 29 5c 6e 61 78 2e 73 65 74 5f 79 6c 61 62 65 6c 28 72 27 24 5c 5c 61 6c 70 68 61 (0,.n)\nax.set_ylabel(r'$\\alpha
9260 24 27 29 5c 6e 61 78 2e 73 65 74 5f 79 6c 69 6d 33 64 28 30 2c 20 31 29 5c 6e 61 78 2e 73 65 74 $')\nax.set_ylim3d(0,.1)\nax.set
9280 5f 7a 6c 61 62 65 6c 28 27 27 29 5c 6e 61 78 2e 73 65 74 5f 7a 6c 69 6d 33 64 28 30 2c 20 42 5f _zlabel('')\nax.set_zlim3d(0,.B_
92a0 6c 32 2e 6d 61 78 28 29 20 2a 20 31 2e 30 31 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 42 61 72 79 l2.max().*.1.01)\npl.title('Bary
92c0 63 65 6e 74 65 72 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 20 77 69 74 68 20 57 61 73 73 65 72 center.interpolation.with.Wasser
92e0 73 74 65 69 6e 27 29 5c 6e 70 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 5c 6e 5c 6e 70 6c stein')\npl.tight_layout()\n\npl
9300 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 0a 20 20 5d 2c 0a 20 20 22 6d .show()".......].....}...],..."m
9320 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 22 6b 65 72 6e 65 6c 73 70 65 63 22 3a 20 7b 0a etadata":.{....."kernelspec":.{.
9340 20 20 20 20 20 20 22 64 69 73 70 6c 61 79 5f 6e 61 6d 65 22 3a 20 22 50 79 74 68 6f 6e 20 33 22 ......"display_name":."Python.3"
9360 2c 0a 20 20 20 20 20 20 22 6c 61 6e 67 75 61 67 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 ,......."language":."python",...
9380 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 33 22 0a 20 20 20 20 7d 2c 0a 20 20 20 ...."name":."python3".....},....
93a0 20 22 6c 61 6e 67 75 61 67 65 5f 69 6e 66 6f 22 3a 20 7b 0a 20 20 20 20 20 20 22 63 6f 64 65 6d ."language_info":.{......."codem
93c0 69 72 72 6f 72 5f 6d 6f 64 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 irror_mode":.{........."name":."
93e0 69 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 33 0a 20 ipython",........."version":.3..
9400 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 66 69 6c 65 5f 65 78 74 65 6e 73 69 6f 6e 22 3a 20 .....},......."file_extension":.
9420 22 2e 70 79 22 2c 0a 20 20 20 20 20 20 22 6d 69 6d 65 74 79 70 65 22 3a 20 22 74 65 78 74 2f 78 ".py",......."mimetype":."text/x
9440 2d 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 22 -python",......."name":."python"
9460 2c 0a 20 20 20 20 20 20 22 6e 62 63 6f 6e 76 65 72 74 5f 65 78 70 6f 72 74 65 72 22 3a 20 22 70 ,......."nbconvert_exporter":."p
9480 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 70 79 67 6d 65 6e 74 73 5f 6c 65 78 65 72 22 3a 20 ython",......."pygments_lexer":.
94a0 22 69 70 79 74 68 6f 6e 33 22 2c 0a 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e "ipython3",......."version":."3.
94c0 36 2e 39 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 22 3a 20 34 2c 6.9".....}...},..."nbformat":.4,
94e0 0a 20 20 22 6e 62 66 6f 72 6d 61 74 5f 6d 69 6e 6f 72 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 ..."nbformat_minor":.0.}PK......
9500 00 00 d5 72 94 50 81 63 50 b6 2d 22 00 00 2d 22 00 00 24 00 00 00 70 6c 6f 74 5f 62 61 72 79 63 ...r.P.cP.-"..-"..$...plot_baryc
9520 65 6e 74 65 72 5f 6c 70 5f 76 73 5f 65 6e 74 72 6f 70 69 63 2e 69 70 79 6e 62 7b 0a 20 20 22 63 enter_lp_vs_entropic.ipynb{..."c
9540 65 6c 6c 73 22 3a 20 5b 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 ells":.[.....{......."cell_type"
9560 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 :."code",......."execution_count
9580 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 ":.null,......."metadata":.{....
95a0 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c ....."collapsed":.false.......},
95c0 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 ......."outputs":.[],......."sou
95e0 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 25 6d 61 74 70 6c 6f 74 6c 69 62 20 69 6e 6c rce":.[........."%matplotlib.inl
9600 69 6e 65 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 ine".......].....},.....{.......
9620 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 "cell_type":."markdown",......."
9640 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b metadata":.{},......."source":.[
9660 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 31 44 20 57 61 73 73 65 72 73 74 65 69 6e 20 62 61 72 ........."\n#.1D.Wasserstein.bar
9680 79 63 65 6e 74 65 72 20 63 6f 6d 70 61 72 69 73 6f 6e 20 62 65 74 77 65 65 6e 20 65 78 61 63 74 ycenter.comparison.between.exact
96a0 20 4c 50 20 61 6e 64 20 65 6e 74 72 6f 70 69 63 20 72 65 67 75 6c 61 72 69 7a 61 74 69 6f 6e 5c .LP.and.entropic.regularization\
96c0 6e 5c 6e 5c 6e 54 68 69 73 20 65 78 61 6d 70 6c 65 20 69 6c 6c 75 73 74 72 61 74 65 73 20 74 68 n\n\nThis.example.illustrates.th
96e0 65 20 63 6f 6d 70 75 74 61 74 69 6f 6e 20 6f 66 20 72 65 67 75 6c 61 72 69 7a 65 64 20 57 61 73 e.computation.of.regularized.Was
9700 73 65 72 73 74 65 69 6e 20 42 61 72 79 63 65 6e 74 65 72 5c 6e 61 73 20 70 72 6f 70 6f 73 65 64 serstein.Barycenter\nas.proposed
9720 20 69 6e 20 5b 33 5d 20 61 6e 64 20 65 78 61 63 74 20 4c 50 20 62 61 72 79 63 65 6e 74 65 72 73 .in.[3].and.exact.LP.barycenters
9740 20 75 73 69 6e 67 20 73 74 61 6e 64 61 72 64 20 4c 50 20 73 6f 6c 76 65 72 2e 5c 6e 5c 6e 49 74 .using.standard.LP.solver.\n\nIt
9760 20 72 65 70 72 6f 64 75 63 65 73 20 61 70 70 72 6f 78 69 6d 61 74 65 6c 79 20 46 69 67 75 72 65 .reproduces.approximately.Figure
9780 20 33 2e 31 20 61 6e 64 20 33 2e 32 20 66 72 6f 6d 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 .3.1.and.3.2.from.the.following.
97a0 70 61 70 65 72 3a 5c 6e 43 75 74 75 72 69 2c 20 4d 2e 2c 20 26 20 50 65 79 72 5c 75 30 30 65 39 paper:\nCuturi,.M.,.&.Peyr\u00e9
97c0 2c 20 47 2e 20 28 32 30 31 36 29 2e 20 41 20 73 6d 6f 6f 74 68 65 64 20 64 75 61 6c 20 61 70 70 ,.G..(2016)..A.smoothed.dual.app
97e0 72 6f 61 63 68 20 66 6f 72 20 76 61 72 69 61 74 69 6f 6e 61 6c 5c 6e 57 61 73 73 65 72 73 74 65 roach.for.variational\nWasserste
9800 69 6e 20 70 72 6f 62 6c 65 6d 73 2e 20 53 49 41 4d 20 4a 6f 75 72 6e 61 6c 20 6f 6e 20 49 6d 61 in.problems..SIAM.Journal.on.Ima
9820 67 69 6e 67 20 53 63 69 65 6e 63 65 73 2c 20 39 28 31 29 2c 20 33 32 30 2d 33 34 33 2e 5c 6e 5c ging.Sciences,.9(1),.320-343.\n\
9840 6e 5b 33 5d 20 42 65 6e 61 6d 6f 75 2c 20 4a 2e 20 44 2e 2c 20 43 61 72 6c 69 65 72 2c 20 47 2e n[3].Benamou,.J..D.,.Carlier,.G.
9860 2c 20 43 75 74 75 72 69 2c 20 4d 2e 2c 20 4e 65 6e 6e 61 2c 20 4c 2e 2c 20 26 20 50 65 79 72 5c ,.Cuturi,.M.,.Nenna,.L.,.&.Peyr\
9880 75 30 30 65 39 2c 20 47 2e 20 28 32 30 31 35 29 2e 5c 6e 49 74 65 72 61 74 69 76 65 20 42 72 65 u00e9,.G..(2015).\nIterative.Bre
98a0 67 6d 61 6e 20 70 72 6f 6a 65 63 74 69 6f 6e 73 20 66 6f 72 20 72 65 67 75 6c 61 72 69 7a 65 64 gman.projections.for.regularized
98c0 20 74 72 61 6e 73 70 6f 72 74 61 74 69 6f 6e 20 70 72 6f 62 6c 65 6d 73 5c 6e 53 49 41 4d 20 4a .transportation.problems\nSIAM.J
98e0 6f 75 72 6e 61 6c 20 6f 6e 20 53 63 69 65 6e 74 69 66 69 63 20 43 6f 6d 70 75 74 69 6e 67 2c 20 ournal.on.Scientific.Computing,.
9900 33 37 28 32 29 2c 20 41 31 31 31 31 2d 41 31 31 33 38 2e 5c 6e 5c 6e 5c 6e 22 0a 20 20 20 20 20 37(2),.A1111-A1138.\n\n\n"......
9920 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 .].....},.....{......."cell_type
9940 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e ":."code",......."execution_coun
9960 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 t":.null,......."metadata":.{...
9980 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d ......"collapsed":.false.......}
99a0 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f ,......."outputs":.[],......."so
99c0 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 20 41 75 74 68 6f 72 3a 20 52 65 6d 69 urce":.[........."#.Author:.Remi
99e0 20 46 6c 61 6d 61 72 79 20 3c 72 65 6d 69 2e 66 6c 61 6d 61 72 79 40 75 6e 69 63 65 2e 66 72 3e .Flamary.<remi.flamary@unice.fr>
9a00 5c 6e 23 5c 6e 23 20 4c 69 63 65 6e 73 65 3a 20 4d 49 54 20 4c 69 63 65 6e 73 65 5c 6e 5c 6e 69 \n#\n#.License:.MIT.License\n\ni
9a20 6d 70 6f 72 74 20 6e 75 6d 70 79 20 61 73 20 6e 70 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f mport.numpy.as.np\nimport.matplo
9a40 74 6c 69 62 2e 70 79 6c 61 62 20 61 73 20 70 6c 5c 6e 69 6d 70 6f 72 74 20 6f 74 5c 6e 23 20 6e tlib.pylab.as.pl\nimport.ot\n#.n
9a60 65 63 65 73 73 61 72 79 20 66 6f 72 20 33 64 20 70 6c 6f 74 20 65 76 65 6e 20 69 66 20 6e 6f 74 ecessary.for.3d.plot.even.if.not
9a80 20 75 73 65 64 5c 6e 66 72 6f 6d 20 6d 70 6c 5f 74 6f 6f 6c 6b 69 74 73 2e 6d 70 6c 6f 74 33 64 .used\nfrom.mpl_toolkits.mplot3d
9aa0 20 69 6d 70 6f 72 74 20 41 78 65 73 33 44 20 20 23 20 6e 6f 71 61 5c 6e 66 72 6f 6d 20 6d 61 74 .import.Axes3D..#.noqa\nfrom.mat
9ac0 70 6c 6f 74 6c 69 62 2e 63 6f 6c 6c 65 63 74 69 6f 6e 73 20 69 6d 70 6f 72 74 20 50 6f 6c 79 43 plotlib.collections.import.PolyC
9ae0 6f 6c 6c 65 63 74 69 6f 6e 20 20 23 20 6e 6f 71 61 5c 6e 5c 6e 23 69 6d 70 6f 72 74 20 6f 74 2e ollection..#.noqa\n\n#import.ot.
9b00 6c 70 2e 63 76 78 20 61 73 20 63 76 78 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 lp.cvx.as.cvx".......].....},...
9b20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e ..{......."cell_type":."markdown
9b40 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 ",......."metadata":.{},......."
9b60 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 47 61 75 73 73 69 61 6e 20 44 61 74 source":.[........."Gaussian.Dat
9b80 61 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 a\n-------------\n\n".......]...
9ba0 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 ..},.....{......."cell_type":."c
9bc0 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e ode",......."execution_count":.n
9be0 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 ull,......."metadata":.{........
9c00 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 ."collapsed":.false.......},....
9c20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 ..."outputs":.[],......."source"
9c40 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 70 72 6f 62 6c 65 6d 73 20 3d 20 5b 5d 5c 6e 5c 6e 6e 20 :.[........."problems.=.[]\n\nn.
9c60 3d 20 31 30 30 20 20 23 20 6e 62 20 62 69 6e 73 5c 6e 5c 6e 23 20 62 69 6e 20 70 6f 73 69 74 69 =.100..#.nb.bins\n\n#.bin.positi
9c80 6f 6e 73 5c 6e 78 20 3d 20 6e 70 2e 61 72 61 6e 67 65 28 6e 2c 20 64 74 79 70 65 3d 6e 70 2e 66 ons\nx.=.np.arange(n,.dtype=np.f
9ca0 6c 6f 61 74 36 34 29 5c 6e 5c 6e 23 20 47 61 75 73 73 69 61 6e 20 64 69 73 74 72 69 62 75 74 69 loat64)\n\n#.Gaussian.distributi
9cc0 6f 6e 73 5c 6e 23 20 47 61 75 73 73 69 61 6e 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 5c 6e 61 ons\n#.Gaussian.distributions\na
9ce0 31 20 3d 20 6f 74 2e 64 61 74 61 73 65 74 73 2e 6d 61 6b 65 5f 31 44 5f 67 61 75 73 73 28 6e 2c 1.=.ot.datasets.make_1D_gauss(n,
9d00 20 6d 3d 32 30 2c 20 73 3d 35 29 20 20 23 20 6d 3d 20 6d 65 61 6e 2c 20 73 3d 20 73 74 64 5c 6e .m=20,.s=5)..#.m=.mean,.s=.std\n
9d20 61 32 20 3d 20 6f 74 2e 64 61 74 61 73 65 74 73 2e 6d 61 6b 65 5f 31 44 5f 67 61 75 73 73 28 6e a2.=.ot.datasets.make_1D_gauss(n
9d40 2c 20 6d 3d 36 30 2c 20 73 3d 38 29 5c 6e 5c 6e 23 20 63 72 65 61 74 69 6e 67 20 6d 61 74 72 69 ,.m=60,.s=8)\n\n#.creating.matri
9d60 78 20 41 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 6c 6c 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 x.A.containing.all.distributions
9d80 5c 6e 41 20 3d 20 6e 70 2e 76 73 74 61 63 6b 28 28 61 31 2c 20 61 32 29 29 2e 54 5c 6e 6e 5f 64 \nA.=.np.vstack((a1,.a2)).T\nn_d
9da0 69 73 74 72 69 62 75 74 69 6f 6e 73 20 3d 20 41 2e 73 68 61 70 65 5b 31 5d 5c 6e 5c 6e 23 20 6c istributions.=.A.shape[1]\n\n#.l
9dc0 6f 73 73 20 6d 61 74 72 69 78 20 2b 20 6e 6f 72 6d 61 6c 69 7a 61 74 69 6f 6e 5c 6e 4d 20 3d 20 oss.matrix.+.normalization\nM.=.
9de0 6f 74 2e 75 74 69 6c 73 2e 64 69 73 74 30 28 6e 29 5c 6e 4d 20 2f 3d 20 4d 2e 6d 61 78 28 29 22 ot.utils.dist0(n)\nM./=.M.max()"
9e00 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c .......].....},.....{......."cel
9e20 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f l_type":."code",......."executio
9e40 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 n_count":.null,......."metadata"
9e60 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 :.{........."collapsed":.false..
9e80 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 .....},......."outputs":.[],....
9ea0 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 70 6c 2e 66 69 67 75 72 ..."source":.[........."pl.figur
9ec0 65 28 31 2c 20 66 69 67 73 69 7a 65 3d 28 36 2e 34 2c 20 33 29 29 5c 6e 66 6f 72 20 69 20 69 6e e(1,.figsize=(6.4,.3))\nfor.i.in
9ee0 20 72 61 6e 67 65 28 6e 5f 64 69 73 74 72 69 62 75 74 69 6f 6e 73 29 3a 5c 6e 20 20 20 20 70 6c .range(n_distributions):\n....pl
9f00 2e 70 6c 6f 74 28 78 2c 20 41 5b 3a 2c 20 69 5d 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 44 69 73 .plot(x,.A[:,.i])\npl.title('Dis
9f20 74 72 69 62 75 74 69 6f 6e 73 27 29 5c 6e 70 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 22 tributions')\npl.tight_layout()"
9f40 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c .......].....},.....{......."cel
9f60 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f l_type":."code",......."executio
9f80 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 n_count":.null,......."metadata"
9fa0 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 :.{........."collapsed":.false..
9fc0 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 .....},......."outputs":.[],....
9fe0 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 61 6c 70 68 61 20 3d 20 ..."source":.[........."alpha.=.
a000 30 2e 35 20 20 23 20 30 3c 3d 61 6c 70 68 61 3c 3d 31 5c 6e 77 65 69 67 68 74 73 20 3d 20 6e 70 0.5..#.0<=alpha<=1\nweights.=.np
a020 2e 61 72 72 61 79 28 5b 31 20 2d 20 61 6c 70 68 61 2c 20 61 6c 70 68 61 5d 29 5c 6e 5c 6e 23 20 .array([1.-.alpha,.alpha])\n\n#.
a040 6c 32 62 61 72 79 5c 6e 62 61 72 79 5f 6c 32 20 3d 20 41 2e 64 6f 74 28 77 65 69 67 68 74 73 29 l2bary\nbary_l2.=.A.dot(weights)
a060 5c 6e 5c 6e 23 20 77 61 73 73 65 72 73 74 65 69 6e 5c 6e 72 65 67 20 3d 20 31 65 2d 33 5c 6e 6f \n\n#.wasserstein\nreg.=.1e-3\no
a080 74 2e 74 69 63 28 29 5c 6e 62 61 72 79 5f 77 61 73 73 20 3d 20 6f 74 2e 62 72 65 67 6d 61 6e 2e t.tic()\nbary_wass.=.ot.bregman.
a0a0 62 61 72 79 63 65 6e 74 65 72 28 41 2c 20 4d 2c 20 72 65 67 2c 20 77 65 69 67 68 74 73 29 5c 6e barycenter(A,.M,.reg,.weights)\n
a0c0 6f 74 2e 74 6f 63 28 29 5c 6e 5c 6e 5c 6e 6f 74 2e 74 69 63 28 29 5c 6e 62 61 72 79 5f 77 61 73 ot.toc()\n\n\not.tic()\nbary_was
a0e0 73 32 20 3d 20 6f 74 2e 6c 70 2e 62 61 72 79 63 65 6e 74 65 72 28 41 2c 20 4d 2c 20 77 65 69 67 s2.=.ot.lp.barycenter(A,.M,.weig
a100 68 74 73 2c 20 73 6f 6c 76 65 72 3d 27 69 6e 74 65 72 69 6f 72 2d 70 6f 69 6e 74 27 2c 20 76 65 hts,.solver='interior-point',.ve
a120 72 62 6f 73 65 3d 54 72 75 65 29 5c 6e 6f 74 2e 74 6f 63 28 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 rbose=True)\not.toc()\n\npl.figu
a140 72 65 28 32 29 5c 6e 70 6c 2e 63 6c 66 28 29 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 31 re(2)\npl.clf()\npl.subplot(2,.1
a160 2c 20 31 29 5c 6e 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 65 28 6e 5f 64 69 73 74 72 69 62 75 74 ,.1)\nfor.i.in.range(n_distribut
a180 69 6f 6e 73 29 3a 5c 6e 20 20 20 20 70 6c 2e 70 6c 6f 74 28 78 2c 20 41 5b 3a 2c 20 69 5d 29 5c ions):\n....pl.plot(x,.A[:,.i])\
a1a0 6e 70 6c 2e 74 69 74 6c 65 28 27 44 69 73 74 72 69 62 75 74 69 6f 6e 73 27 29 5c 6e 5c 6e 70 6c npl.title('Distributions')\n\npl
a1c0 2e 73 75 62 70 6c 6f 74 28 32 2c 20 31 2c 20 32 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 2c 20 62 61 .subplot(2,.1,.2)\npl.plot(x,.ba
a1e0 72 79 5f 6c 32 2c 20 27 72 27 2c 20 6c 61 62 65 6c 3d 27 6c 32 27 29 5c 6e 70 6c 2e 70 6c 6f 74 ry_l2,.'r',.label='l2')\npl.plot
a200 28 78 2c 20 62 61 72 79 5f 77 61 73 73 2c 20 27 67 27 2c 20 6c 61 62 65 6c 3d 27 52 65 67 20 57 (x,.bary_wass,.'g',.label='Reg.W
a220 61 73 73 65 72 73 74 65 69 6e 27 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 2c 20 62 61 72 79 5f 77 61 asserstein')\npl.plot(x,.bary_wa
a240 73 73 32 2c 20 27 62 27 2c 20 6c 61 62 65 6c 3d 27 4c 50 20 57 61 73 73 65 72 73 74 65 69 6e 27 ss2,.'b',.label='LP.Wasserstein'
a260 29 5c 6e 70 6c 2e 6c 65 67 65 6e 64 28 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 42 61 72 79 63 65 )\npl.legend()\npl.title('Baryce
a280 6e 74 65 72 73 27 29 5c 6e 70 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 5c 6e 5c 6e 70 72 nters')\npl.tight_layout()\n\npr
a2a0 6f 62 6c 65 6d 73 2e 61 70 70 65 6e 64 28 5b 41 2c 20 5b 62 61 72 79 5f 6c 32 2c 20 62 61 72 79 oblems.append([A,.[bary_l2,.bary
a2c0 5f 77 61 73 73 2c 20 62 61 72 79 5f 77 61 73 73 32 5d 5d 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 _wass,.bary_wass2]])".......]...
a2e0 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d ..},.....{......."cell_type":."m
a300 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a arkdown",......."metadata":.{},.
a320 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 53 74 61 69 72 ......"source":.[........."Stair
a340 20 44 61 74 61 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 .Data\n----------\n\n".......]..
a360 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 ...},.....{......."cell_type":."
a380 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 code",......."execution_count":.
a3a0 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 null,......."metadata":.{.......
a3c0 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 .."collapsed":.false.......},...
a3e0 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 ...."outputs":.[],......."source
a400 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 61 31 20 3d 20 31 2e 30 20 2a 20 28 78 20 3e 20 31 30 ":.[........."a1.=.1.0.*.(x.>.10
a420 29 20 2a 20 28 78 20 3c 20 35 30 29 5c 6e 61 32 20 3d 20 31 2e 30 20 2a 20 28 78 20 3e 20 36 30 ).*.(x.<.50)\na2.=.1.0.*.(x.>.60
a440 29 20 2a 20 28 78 20 3c 20 38 30 29 5c 6e 5c 6e 61 31 20 2f 3d 20 61 31 2e 73 75 6d 28 29 5c 6e ).*.(x.<.80)\n\na1./=.a1.sum()\n
a460 61 32 20 2f 3d 20 61 32 2e 73 75 6d 28 29 5c 6e 5c 6e 23 20 63 72 65 61 74 69 6e 67 20 6d 61 74 a2./=.a2.sum()\n\n#.creating.mat
a480 72 69 78 20 41 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 6c 6c 20 64 69 73 74 72 69 62 75 74 69 6f rix.A.containing.all.distributio
a4a0 6e 73 5c 6e 41 20 3d 20 6e 70 2e 76 73 74 61 63 6b 28 28 61 31 2c 20 61 32 29 29 2e 54 5c 6e 6e ns\nA.=.np.vstack((a1,.a2)).T\nn
a4c0 5f 64 69 73 74 72 69 62 75 74 69 6f 6e 73 20 3d 20 41 2e 73 68 61 70 65 5b 31 5d 5c 6e 5c 6e 23 _distributions.=.A.shape[1]\n\n#
a4e0 20 6c 6f 73 73 20 6d 61 74 72 69 78 20 2b 20 6e 6f 72 6d 61 6c 69 7a 61 74 69 6f 6e 5c 6e 4d 20 .loss.matrix.+.normalization\nM.
a500 3d 20 6f 74 2e 75 74 69 6c 73 2e 64 69 73 74 30 28 6e 29 5c 6e 4d 20 2f 3d 20 4d 2e 6d 61 78 28 =.ot.utils.dist0(n)\nM./=.M.max(
a520 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 )".......].....},.....{......."c
a540 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 ell_type":."code",......."execut
a560 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 ion_count":.null,......."metadat
a580 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 a":.{........."collapsed":.false
a5a0 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 .......},......."outputs":.[],..
a5c0 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 70 6c 2e 66 69 67 ....."source":.[........."pl.fig
a5e0 75 72 65 28 31 2c 20 66 69 67 73 69 7a 65 3d 28 36 2e 34 2c 20 33 29 29 5c 6e 66 6f 72 20 69 20 ure(1,.figsize=(6.4,.3))\nfor.i.
a600 69 6e 20 72 61 6e 67 65 28 6e 5f 64 69 73 74 72 69 62 75 74 69 6f 6e 73 29 3a 5c 6e 20 20 20 20 in.range(n_distributions):\n....
a620 70 6c 2e 70 6c 6f 74 28 78 2c 20 41 5b 3a 2c 20 69 5d 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 44 pl.plot(x,.A[:,.i])\npl.title('D
a640 69 73 74 72 69 62 75 74 69 6f 6e 73 27 29 5c 6e 70 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 istributions')\npl.tight_layout(
a660 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 )".......].....},.....{......."c
a680 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 ell_type":."code",......."execut
a6a0 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 ion_count":.null,......."metadat
a6c0 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 a":.{........."collapsed":.false
a6e0 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 .......},......."outputs":.[],..
a700 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 61 6c 70 68 61 20 ....."source":.[........."alpha.
a720 3d 20 30 2e 35 20 20 23 20 30 3c 3d 61 6c 70 68 61 3c 3d 31 5c 6e 77 65 69 67 68 74 73 20 3d 20 =.0.5..#.0<=alpha<=1\nweights.=.
a740 6e 70 2e 61 72 72 61 79 28 5b 31 20 2d 20 61 6c 70 68 61 2c 20 61 6c 70 68 61 5d 29 5c 6e 5c 6e np.array([1.-.alpha,.alpha])\n\n
a760 23 20 6c 32 62 61 72 79 5c 6e 62 61 72 79 5f 6c 32 20 3d 20 41 2e 64 6f 74 28 77 65 69 67 68 74 #.l2bary\nbary_l2.=.A.dot(weight
a780 73 29 5c 6e 5c 6e 23 20 77 61 73 73 65 72 73 74 65 69 6e 5c 6e 72 65 67 20 3d 20 31 65 2d 33 5c s)\n\n#.wasserstein\nreg.=.1e-3\
a7a0 6e 6f 74 2e 74 69 63 28 29 5c 6e 62 61 72 79 5f 77 61 73 73 20 3d 20 6f 74 2e 62 72 65 67 6d 61 not.tic()\nbary_wass.=.ot.bregma
a7c0 6e 2e 62 61 72 79 63 65 6e 74 65 72 28 41 2c 20 4d 2c 20 72 65 67 2c 20 77 65 69 67 68 74 73 29 n.barycenter(A,.M,.reg,.weights)
a7e0 5c 6e 6f 74 2e 74 6f 63 28 29 5c 6e 5c 6e 5c 6e 6f 74 2e 74 69 63 28 29 5c 6e 62 61 72 79 5f 77 \not.toc()\n\n\not.tic()\nbary_w
a800 61 73 73 32 20 3d 20 6f 74 2e 6c 70 2e 62 61 72 79 63 65 6e 74 65 72 28 41 2c 20 4d 2c 20 77 65 ass2.=.ot.lp.barycenter(A,.M,.we
a820 69 67 68 74 73 2c 20 73 6f 6c 76 65 72 3d 27 69 6e 74 65 72 69 6f 72 2d 70 6f 69 6e 74 27 2c 20 ights,.solver='interior-point',.
a840 76 65 72 62 6f 73 65 3d 54 72 75 65 29 5c 6e 6f 74 2e 74 6f 63 28 29 5c 6e 5c 6e 5c 6e 70 72 6f verbose=True)\not.toc()\n\n\npro
a860 62 6c 65 6d 73 2e 61 70 70 65 6e 64 28 5b 41 2c 20 5b 62 61 72 79 5f 6c 32 2c 20 62 61 72 79 5f blems.append([A,.[bary_l2,.bary_
a880 77 61 73 73 2c 20 62 61 72 79 5f 77 61 73 73 32 5d 5d 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 wass,.bary_wass2]])\n\npl.figure
a8a0 28 32 29 5c 6e 70 6c 2e 63 6c 66 28 29 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 31 2c 20 (2)\npl.clf()\npl.subplot(2,.1,.
a8c0 31 29 5c 6e 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 65 28 6e 5f 64 69 73 74 72 69 62 75 74 69 6f 1)\nfor.i.in.range(n_distributio
a8e0 6e 73 29 3a 5c 6e 20 20 20 20 70 6c 2e 70 6c 6f 74 28 78 2c 20 41 5b 3a 2c 20 69 5d 29 5c 6e 70 ns):\n....pl.plot(x,.A[:,.i])\np
a900 6c 2e 74 69 74 6c 65 28 27 44 69 73 74 72 69 62 75 74 69 6f 6e 73 27 29 5c 6e 5c 6e 70 6c 2e 73 l.title('Distributions')\n\npl.s
a920 75 62 70 6c 6f 74 28 32 2c 20 31 2c 20 32 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 2c 20 62 61 72 79 ubplot(2,.1,.2)\npl.plot(x,.bary
a940 5f 6c 32 2c 20 27 72 27 2c 20 6c 61 62 65 6c 3d 27 6c 32 27 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 _l2,.'r',.label='l2')\npl.plot(x
a960 2c 20 62 61 72 79 5f 77 61 73 73 2c 20 27 67 27 2c 20 6c 61 62 65 6c 3d 27 52 65 67 20 57 61 73 ,.bary_wass,.'g',.label='Reg.Was
a980 73 65 72 73 74 65 69 6e 27 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 2c 20 62 61 72 79 5f 77 61 73 73 serstein')\npl.plot(x,.bary_wass
a9a0 32 2c 20 27 62 27 2c 20 6c 61 62 65 6c 3d 27 4c 50 20 57 61 73 73 65 72 73 74 65 69 6e 27 29 5c 2,.'b',.label='LP.Wasserstein')\
a9c0 6e 70 6c 2e 6c 65 67 65 6e 64 28 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 42 61 72 79 63 65 6e 74 npl.legend()\npl.title('Barycent
a9e0 65 72 73 27 29 5c 6e 70 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 22 0a 20 20 20 20 20 20 ers')\npl.tight_layout()".......
aa00 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 ].....},.....{......."cell_type"
aa20 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 :."markdown",......."metadata":.
aa40 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 44 {},......."source":.[........."D
aa60 69 72 61 63 20 44 61 74 61 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 irac.Data\n----------\n\n"......
aa80 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 .].....},.....{......."cell_type
aaa0 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e ":."code",......."execution_coun
aac0 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 t":.null,......."metadata":.{...
aae0 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d ......"collapsed":.false.......}
ab00 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f ,......."outputs":.[],......."so
ab20 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 61 31 20 3d 20 6e 70 2e 7a 65 72 6f 73 28 urce":.[........."a1.=.np.zeros(
ab40 6e 29 5c 6e 61 32 20 3d 20 6e 70 2e 7a 65 72 6f 73 28 6e 29 5c 6e 5c 6e 61 31 5b 31 30 5d 20 3d n)\na2.=.np.zeros(n)\n\na1[10].=
ab60 20 2e 32 35 5c 6e 61 31 5b 32 30 5d 20 3d 20 2e 35 5c 6e 61 31 5b 33 30 5d 20 3d 20 2e 32 35 5c ..25\na1[20].=..5\na1[30].=..25\
ab80 6e 61 32 5b 38 30 5d 20 3d 20 31 5c 6e 5c 6e 5c 6e 61 31 20 2f 3d 20 61 31 2e 73 75 6d 28 29 5c na2[80].=.1\n\n\na1./=.a1.sum()\
aba0 6e 61 32 20 2f 3d 20 61 32 2e 73 75 6d 28 29 5c 6e 5c 6e 23 20 63 72 65 61 74 69 6e 67 20 6d 61 na2./=.a2.sum()\n\n#.creating.ma
abc0 74 72 69 78 20 41 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 6c 6c 20 64 69 73 74 72 69 62 75 74 69 trix.A.containing.all.distributi
abe0 6f 6e 73 5c 6e 41 20 3d 20 6e 70 2e 76 73 74 61 63 6b 28 28 61 31 2c 20 61 32 29 29 2e 54 5c 6e ons\nA.=.np.vstack((a1,.a2)).T\n
ac00 6e 5f 64 69 73 74 72 69 62 75 74 69 6f 6e 73 20 3d 20 41 2e 73 68 61 70 65 5b 31 5d 5c 6e 5c 6e n_distributions.=.A.shape[1]\n\n
ac20 23 20 6c 6f 73 73 20 6d 61 74 72 69 78 20 2b 20 6e 6f 72 6d 61 6c 69 7a 61 74 69 6f 6e 5c 6e 4d #.loss.matrix.+.normalization\nM
ac40 20 3d 20 6f 74 2e 75 74 69 6c 73 2e 64 69 73 74 30 28 6e 29 5c 6e 4d 20 2f 3d 20 4d 2e 6d 61 78 .=.ot.utils.dist0(n)\nM./=.M.max
ac60 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 ()".......].....},.....{......."
ac80 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 cell_type":."code",......."execu
aca0 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 tion_count":.null,......."metada
acc0 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 ta":.{........."collapsed":.fals
ace0 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a e.......},......."outputs":.[],.
ad00 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 70 6c 2e 66 69 ......"source":.[........."pl.fi
ad20 67 75 72 65 28 31 2c 20 66 69 67 73 69 7a 65 3d 28 36 2e 34 2c 20 33 29 29 5c 6e 66 6f 72 20 69 gure(1,.figsize=(6.4,.3))\nfor.i
ad40 20 69 6e 20 72 61 6e 67 65 28 6e 5f 64 69 73 74 72 69 62 75 74 69 6f 6e 73 29 3a 5c 6e 20 20 20 .in.range(n_distributions):\n...
ad60 20 70 6c 2e 70 6c 6f 74 28 78 2c 20 41 5b 3a 2c 20 69 5d 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 .pl.plot(x,.A[:,.i])\npl.title('
ad80 44 69 73 74 72 69 62 75 74 69 6f 6e 73 27 29 5c 6e 70 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 Distributions')\npl.tight_layout
ada0 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 ()".......].....},.....{......."
adc0 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 cell_type":."code",......."execu
ade0 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 tion_count":.null,......."metada
ae00 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 ta":.{........."collapsed":.fals
ae20 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a e.......},......."outputs":.[],.
ae40 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 61 6c 70 68 61 ......"source":.[........."alpha
ae60 20 3d 20 30 2e 35 20 20 23 20 30 3c 3d 61 6c 70 68 61 3c 3d 31 5c 6e 77 65 69 67 68 74 73 20 3d .=.0.5..#.0<=alpha<=1\nweights.=
ae80 20 6e 70 2e 61 72 72 61 79 28 5b 31 20 2d 20 61 6c 70 68 61 2c 20 61 6c 70 68 61 5d 29 5c 6e 5c .np.array([1.-.alpha,.alpha])\n\
aea0 6e 23 20 6c 32 62 61 72 79 5c 6e 62 61 72 79 5f 6c 32 20 3d 20 41 2e 64 6f 74 28 77 65 69 67 68 n#.l2bary\nbary_l2.=.A.dot(weigh
aec0 74 73 29 5c 6e 5c 6e 23 20 77 61 73 73 65 72 73 74 65 69 6e 5c 6e 72 65 67 20 3d 20 31 65 2d 33 ts)\n\n#.wasserstein\nreg.=.1e-3
aee0 5c 6e 6f 74 2e 74 69 63 28 29 5c 6e 62 61 72 79 5f 77 61 73 73 20 3d 20 6f 74 2e 62 72 65 67 6d \not.tic()\nbary_wass.=.ot.bregm
af00 61 6e 2e 62 61 72 79 63 65 6e 74 65 72 28 41 2c 20 4d 2c 20 72 65 67 2c 20 77 65 69 67 68 74 73 an.barycenter(A,.M,.reg,.weights
af20 29 5c 6e 6f 74 2e 74 6f 63 28 29 5c 6e 5c 6e 5c 6e 6f 74 2e 74 69 63 28 29 5c 6e 62 61 72 79 5f )\not.toc()\n\n\not.tic()\nbary_
af40 77 61 73 73 32 20 3d 20 6f 74 2e 6c 70 2e 62 61 72 79 63 65 6e 74 65 72 28 41 2c 20 4d 2c 20 77 wass2.=.ot.lp.barycenter(A,.M,.w
af60 65 69 67 68 74 73 2c 20 73 6f 6c 76 65 72 3d 27 69 6e 74 65 72 69 6f 72 2d 70 6f 69 6e 74 27 2c eights,.solver='interior-point',
af80 20 76 65 72 62 6f 73 65 3d 54 72 75 65 29 5c 6e 6f 74 2e 74 6f 63 28 29 5c 6e 5c 6e 5c 6e 70 72 .verbose=True)\not.toc()\n\n\npr
afa0 6f 62 6c 65 6d 73 2e 61 70 70 65 6e 64 28 5b 41 2c 20 5b 62 61 72 79 5f 6c 32 2c 20 62 61 72 79 oblems.append([A,.[bary_l2,.bary
afc0 5f 77 61 73 73 2c 20 62 61 72 79 5f 77 61 73 73 32 5d 5d 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 _wass,.bary_wass2]])\n\npl.figur
afe0 65 28 32 29 5c 6e 70 6c 2e 63 6c 66 28 29 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 31 2c e(2)\npl.clf()\npl.subplot(2,.1,
b000 20 31 29 5c 6e 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 65 28 6e 5f 64 69 73 74 72 69 62 75 74 69 .1)\nfor.i.in.range(n_distributi
b020 6f 6e 73 29 3a 5c 6e 20 20 20 20 70 6c 2e 70 6c 6f 74 28 78 2c 20 41 5b 3a 2c 20 69 5d 29 5c 6e ons):\n....pl.plot(x,.A[:,.i])\n
b040 70 6c 2e 74 69 74 6c 65 28 27 44 69 73 74 72 69 62 75 74 69 6f 6e 73 27 29 5c 6e 5c 6e 70 6c 2e pl.title('Distributions')\n\npl.
b060 73 75 62 70 6c 6f 74 28 32 2c 20 31 2c 20 32 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 2c 20 62 61 72 subplot(2,.1,.2)\npl.plot(x,.bar
b080 79 5f 6c 32 2c 20 27 72 27 2c 20 6c 61 62 65 6c 3d 27 6c 32 27 29 5c 6e 70 6c 2e 70 6c 6f 74 28 y_l2,.'r',.label='l2')\npl.plot(
b0a0 78 2c 20 62 61 72 79 5f 77 61 73 73 2c 20 27 67 27 2c 20 6c 61 62 65 6c 3d 27 52 65 67 20 57 61 x,.bary_wass,.'g',.label='Reg.Wa
b0c0 73 73 65 72 73 74 65 69 6e 27 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 2c 20 62 61 72 79 5f 77 61 73 sserstein')\npl.plot(x,.bary_was
b0e0 73 32 2c 20 27 62 27 2c 20 6c 61 62 65 6c 3d 27 4c 50 20 57 61 73 73 65 72 73 74 65 69 6e 27 29 s2,.'b',.label='LP.Wasserstein')
b100 5c 6e 70 6c 2e 6c 65 67 65 6e 64 28 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 42 61 72 79 63 65 6e \npl.legend()\npl.title('Barycen
b120 74 65 72 73 27 29 5c 6e 70 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 22 0a 20 20 20 20 20 ters')\npl.tight_layout()"......
b140 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 .].....},.....{......."cell_type
b160 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a ":."markdown",......."metadata":
b180 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 .{},......."source":.[........."
b1a0 46 69 6e 61 6c 20 66 69 67 75 72 65 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 5c 6e Final.figure\n------------\n\n\n
b1c0 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 ".......].....},.....{......."ce
b1e0 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 ll_type":."code",......."executi
b200 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 on_count":.null,......."metadata
b220 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a ":.{........."collapsed":.false.
b240 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 ......},......."outputs":.[],...
b260 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 6e 62 6d 20 3d 20 6c ...."source":.[........."nbm.=.l
b280 65 6e 28 70 72 6f 62 6c 65 6d 73 29 5c 6e 6e 62 6d 32 20 3d 20 28 6e 62 6d 20 2f 2f 20 32 29 5c en(problems)\nnbm2.=.(nbm.//.2)\
b2a0 6e 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 32 2c 20 28 32 30 2c 20 36 29 29 5c 6e 70 6c 2e 63 n\n\npl.figure(2,.(20,.6))\npl.c
b2c0 6c 66 28 29 5c 6e 5c 6e 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 65 28 6e 62 6d 29 3a 5c 6e 5c 6e lf()\n\nfor.i.in.range(nbm):\n\n
b2e0 20 20 20 20 41 20 3d 20 70 72 6f 62 6c 65 6d 73 5b 69 5d 5b 30 5d 5c 6e 20 20 20 20 62 61 72 79 ....A.=.problems[i][0]\n....bary
b300 5f 6c 32 20 3d 20 70 72 6f 62 6c 65 6d 73 5b 69 5d 5b 31 5d 5b 30 5d 5c 6e 20 20 20 20 62 61 72 _l2.=.problems[i][1][0]\n....bar
b320 79 5f 77 61 73 73 20 3d 20 70 72 6f 62 6c 65 6d 73 5b 69 5d 5b 31 5d 5b 31 5d 5c 6e 20 20 20 20 y_wass.=.problems[i][1][1]\n....
b340 62 61 72 79 5f 77 61 73 73 32 20 3d 20 70 72 6f 62 6c 65 6d 73 5b 69 5d 5b 31 5d 5b 32 5d 5c 6e bary_wass2.=.problems[i][1][2]\n
b360 5c 6e 20 20 20 20 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 6e 62 6d 2c 20 31 20 2b 20 69 29 5c \n....pl.subplot(2,.nbm,.1.+.i)\
b380 6e 20 20 20 20 66 6f 72 20 6a 20 69 6e 20 72 61 6e 67 65 28 6e 5f 64 69 73 74 72 69 62 75 74 69 n....for.j.in.range(n_distributi
b3a0 6f 6e 73 29 3a 5c 6e 20 20 20 20 20 20 20 20 70 6c 2e 70 6c 6f 74 28 78 2c 20 41 5b 3a 2c 20 6a ons):\n........pl.plot(x,.A[:,.j
b3c0 5d 29 5c 6e 20 20 20 20 69 66 20 69 20 3d 3d 20 6e 62 6d 32 3a 5c 6e 20 20 20 20 20 20 20 20 70 ])\n....if.i.==.nbm2:\n........p
b3e0 6c 2e 74 69 74 6c 65 28 27 44 69 73 74 72 69 62 75 74 69 6f 6e 73 27 29 5c 6e 20 20 20 20 70 6c l.title('Distributions')\n....pl
b400 2e 78 74 69 63 6b 73 28 28 29 29 5c 6e 20 20 20 20 70 6c 2e 79 74 69 63 6b 73 28 28 29 29 5c 6e .xticks(())\n....pl.yticks(())\n
b420 5c 6e 20 20 20 20 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 6e 62 6d 2c 20 31 20 2b 20 69 20 2b \n....pl.subplot(2,.nbm,.1.+.i.+
b440 20 6e 62 6d 29 5c 6e 5c 6e 20 20 20 20 70 6c 2e 70 6c 6f 74 28 78 2c 20 62 61 72 79 5f 6c 32 2c .nbm)\n\n....pl.plot(x,.bary_l2,
b460 20 27 72 27 2c 20 6c 61 62 65 6c 3d 27 4c 32 20 28 45 75 63 6c 69 64 65 61 6e 29 27 29 5c 6e 20 .'r',.label='L2.(Euclidean)')\n.
b480 20 20 20 70 6c 2e 70 6c 6f 74 28 78 2c 20 62 61 72 79 5f 77 61 73 73 2c 20 27 67 27 2c 20 6c 61 ...pl.plot(x,.bary_wass,.'g',.la
b4a0 62 65 6c 3d 27 52 65 67 20 57 61 73 73 65 72 73 74 65 69 6e 27 29 5c 6e 20 20 20 20 70 6c 2e 70 bel='Reg.Wasserstein')\n....pl.p
b4c0 6c 6f 74 28 78 2c 20 62 61 72 79 5f 77 61 73 73 32 2c 20 27 62 27 2c 20 6c 61 62 65 6c 3d 27 4c lot(x,.bary_wass2,.'b',.label='L
b4e0 50 20 57 61 73 73 65 72 73 74 65 69 6e 27 29 5c 6e 20 20 20 20 69 66 20 69 20 3d 3d 20 6e 62 6d P.Wasserstein')\n....if.i.==.nbm
b500 20 2d 20 31 3a 5c 6e 20 20 20 20 20 20 20 20 70 6c 2e 6c 65 67 65 6e 64 28 29 5c 6e 20 20 20 20 .-.1:\n........pl.legend()\n....
b520 69 66 20 69 20 3d 3d 20 6e 62 6d 32 3a 5c 6e 20 20 20 20 20 20 20 20 70 6c 2e 74 69 74 6c 65 28 if.i.==.nbm2:\n........pl.title(
b540 27 42 61 72 79 63 65 6e 74 65 72 73 27 29 5c 6e 5c 6e 20 20 20 20 70 6c 2e 78 74 69 63 6b 73 28 'Barycenters')\n\n....pl.xticks(
b560 28 29 29 5c 6e 20 20 20 20 70 6c 2e 79 74 69 63 6b 73 28 28 29 29 22 0a 20 20 20 20 20 20 5d 0a ())\n....pl.yticks(())".......].
b580 20 20 20 20 7d 0a 20 20 5d 2c 0a 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 22 ....}...],..."metadata":.{....."
b5a0 6b 65 72 6e 65 6c 73 70 65 63 22 3a 20 7b 0a 20 20 20 20 20 20 22 64 69 73 70 6c 61 79 5f 6e 61 kernelspec":.{......."display_na
b5c0 6d 65 22 3a 20 22 50 79 74 68 6f 6e 20 33 22 2c 0a 20 20 20 20 20 20 22 6c 61 6e 67 75 61 67 65 me":."Python.3",......."language
b5e0 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 ":."python",......."name":."pyth
b600 6f 6e 33 22 0a 20 20 20 20 7d 2c 0a 20 20 20 20 22 6c 61 6e 67 75 61 67 65 5f 69 6e 66 6f 22 3a on3".....},....."language_info":
b620 20 7b 0a 20 20 20 20 20 20 22 63 6f 64 65 6d 69 72 72 6f 72 5f 6d 6f 64 65 22 3a 20 7b 0a 20 20 .{......."codemirror_mode":.{...
b640 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 69 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 20 ......"name":."ipython",........
b660 20 22 76 65 72 73 69 6f 6e 22 3a 20 33 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 66 69 ."version":.3.......},......."fi
b680 6c 65 5f 65 78 74 65 6e 73 69 6f 6e 22 3a 20 22 2e 70 79 22 2c 0a 20 20 20 20 20 20 22 6d 69 6d le_extension":.".py",......."mim
b6a0 65 74 79 70 65 22 3a 20 22 74 65 78 74 2f 78 2d 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 etype":."text/x-python",......."
b6c0 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 62 63 6f 6e 76 65 72 name":."python",......."nbconver
b6e0 74 5f 65 78 70 6f 72 74 65 72 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 70 79 t_exporter":."python",......."py
b700 67 6d 65 6e 74 73 5f 6c 65 78 65 72 22 3a 20 22 69 70 79 74 68 6f 6e 33 22 2c 0a 20 20 20 20 20 gments_lexer":."ipython3",......
b720 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 36 2e 39 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 ."version":."3.6.9".....}...},..
b740 20 22 6e 62 66 6f 72 6d 61 74 22 3a 20 34 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 5f 6d 69 6e 6f ."nbformat":.4,..."nbformat_mino
b760 72 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 a5 72 94 50 e0 79 5e 6d e4 0d 00 00 e4 0d 00 r":.0.}PK.........r.P.y^m.......
b780 00 22 00 00 00 70 6c 6f 74 5f 66 72 65 65 5f 73 75 70 70 6f 72 74 5f 62 61 72 79 63 65 6e 74 65 ."...plot_free_support_barycente
b7a0 72 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 22 3a 20 5b 0a 20 20 20 20 7b 0a 20 20 20 20 r.ipynb{..."cells":.[.....{.....
b7c0 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 .."cell_type":."code",......."ex
b7e0 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 ecution_count":.null,......."met
b800 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 adata":.{........."collapsed":.f
b820 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b alse.......},......."outputs":.[
b840 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 25 6d ],......."source":.[........."%m
b860 61 74 70 6c 6f 74 6c 69 62 20 69 6e 6c 69 6e 65 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c atplotlib.inline".......].....},
b880 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 .....{......."cell_type":."markd
b8a0 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 own",......."metadata":.{},.....
b8c0 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 32 44 20 66 72 .."source":.[........."\n#.2D.fr
b8e0 65 65 20 73 75 70 70 6f 72 74 20 57 61 73 73 65 72 73 74 65 69 6e 20 62 61 72 79 63 65 6e 74 65 ee.support.Wasserstein.barycente
b900 72 73 20 6f 66 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 5c 6e 5c 6e 5c 6e 49 6c 6c 75 73 74 72 rs.of.distributions\n\n\nIllustr
b920 61 74 69 6f 6e 20 6f 66 20 32 44 20 57 61 73 73 65 72 73 74 65 69 6e 20 62 61 72 79 63 65 6e 74 ation.of.2D.Wasserstein.barycent
b940 65 72 73 20 69 66 20 64 69 73 63 72 69 62 75 74 69 6f 6e 73 20 74 68 61 74 20 61 72 65 20 77 65 ers.if.discributions.that.are.we
b960 69 67 68 74 65 64 5c 6e 73 75 6d 20 6f 66 20 64 69 72 61 63 73 2e 5c 6e 5c 6e 5c 6e 22 0a 20 20 ighted\nsum.of.diracs.\n\n\n"...
b980 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 ....].....},.....{......."cell_t
b9a0 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 ype":."code",......."execution_c
b9c0 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b ount":.null,......."metadata":.{
b9e0 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 ........."collapsed":.false.....
ba00 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 ..},......."outputs":.[],.......
ba20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 20 41 75 74 68 6f 72 3a 20 56 "source":.[........."#.Author:.V
ba40 69 76 69 65 6e 20 53 65 67 75 79 20 3c 76 69 76 69 65 6e 2e 73 65 67 75 79 40 69 69 70 2e 69 73 ivien.Seguy.<vivien.seguy@iip.is
ba60 74 2e 69 2e 6b 79 6f 74 6f 2d 75 2e 61 63 2e 6a 70 3e 5c 6e 23 5c 6e 23 20 4c 69 63 65 6e 73 65 t.i.kyoto-u.ac.jp>\n#\n#.License
ba80 3a 20 4d 49 54 20 4c 69 63 65 6e 73 65 5c 6e 5c 6e 69 6d 70 6f 72 74 20 6e 75 6d 70 79 20 61 73 :.MIT.License\n\nimport.numpy.as
baa0 20 6e 70 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 6c 61 62 20 61 73 20 .np\nimport.matplotlib.pylab.as.
bac0 70 6c 5c 6e 69 6d 70 6f 72 74 20 6f 74 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 pl\nimport.ot".......].....},...
bae0 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e ..{......."cell_type":."markdown
bb00 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 ",......."metadata":.{},......."
bb20 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 47 65 6e 65 72 61 74 65 20 64 61 74 source":.[........."Generate.dat
bb40 61 5c 6e 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 25 25 20 70 61 72 61 6d 65 74 65 72 73 a\n.-------------\n%%.parameters
bb60 20 61 6e 64 20 64 61 74 61 20 67 65 6e 65 72 61 74 69 6f 6e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 .and.data.generation\n\n".......
bb80 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 ].....},.....{......."cell_type"
bba0 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 :."code",......."execution_count
bbc0 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 ":.null,......."metadata":.{....
bbe0 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c ....."collapsed":.false.......},
bc00 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 ......."outputs":.[],......."sou
bc20 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4e 20 3d 20 33 5c 6e 64 20 3d 20 32 5c 6e 6d rce":.[........."N.=.3\nd.=.2\nm
bc40 65 61 73 75 72 65 73 5f 6c 6f 63 61 74 69 6f 6e 73 20 3d 20 5b 5d 5c 6e 6d 65 61 73 75 72 65 73 easures_locations.=.[]\nmeasures
bc60 5f 77 65 69 67 68 74 73 20 3d 20 5b 5d 5c 6e 5c 6e 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 65 28 _weights.=.[]\n\nfor.i.in.range(
bc80 4e 29 3a 5c 6e 5c 6e 20 20 20 20 6e 5f 69 20 3d 20 6e 70 2e 72 61 6e 64 6f 6d 2e 72 61 6e 64 69 N):\n\n....n_i.=.np.random.randi
bca0 6e 74 28 6c 6f 77 3d 31 2c 20 68 69 67 68 3d 32 30 29 20 20 23 20 6e 62 20 73 61 6d 70 6c 65 73 nt(low=1,.high=20)..#.nb.samples
bcc0 5c 6e 5c 6e 20 20 20 20 6d 75 5f 69 20 3d 20 6e 70 2e 72 61 6e 64 6f 6d 2e 6e 6f 72 6d 61 6c 28 \n\n....mu_i.=.np.random.normal(
bce0 30 2e 2c 20 34 2e 2c 20 28 64 2c 29 29 20 20 23 20 47 61 75 73 73 69 61 6e 20 6d 65 61 6e 5c 6e 0.,.4.,.(d,))..#.Gaussian.mean\n
bd00 5c 6e 20 20 20 20 41 5f 69 20 3d 20 6e 70 2e 72 61 6e 64 6f 6d 2e 72 61 6e 64 28 64 2c 20 64 29 \n....A_i.=.np.random.rand(d,.d)
bd20 5c 6e 20 20 20 20 63 6f 76 5f 69 20 3d 20 6e 70 2e 64 6f 74 28 41 5f 69 2c 20 41 5f 69 2e 74 72 \n....cov_i.=.np.dot(A_i,.A_i.tr
bd40 61 6e 73 70 6f 73 65 28 29 29 20 20 23 20 47 61 75 73 73 69 61 6e 20 63 6f 76 61 72 69 61 6e 63 anspose())..#.Gaussian.covarianc
bd60 65 20 6d 61 74 72 69 78 5c 6e 5c 6e 20 20 20 20 78 5f 69 20 3d 20 6f 74 2e 64 61 74 61 73 65 74 e.matrix\n\n....x_i.=.ot.dataset
bd80 73 2e 6d 61 6b 65 5f 32 44 5f 73 61 6d 70 6c 65 73 5f 67 61 75 73 73 28 6e 5f 69 2c 20 6d 75 5f s.make_2D_samples_gauss(n_i,.mu_
bda0 69 2c 20 63 6f 76 5f 69 29 20 20 23 20 44 69 72 61 63 20 6c 6f 63 61 74 69 6f 6e 73 5c 6e 20 20 i,.cov_i)..#.Dirac.locations\n..
bdc0 20 20 62 5f 69 20 3d 20 6e 70 2e 72 61 6e 64 6f 6d 2e 75 6e 69 66 6f 72 6d 28 30 2e 2c 20 31 2e ..b_i.=.np.random.uniform(0.,.1.
bde0 2c 20 28 6e 5f 69 2c 29 29 5c 6e 20 20 20 20 62 5f 69 20 3d 20 62 5f 69 20 2f 20 6e 70 2e 73 75 ,.(n_i,))\n....b_i.=.b_i./.np.su
be00 6d 28 62 5f 69 29 20 20 23 20 44 69 72 61 63 20 77 65 69 67 68 74 73 5c 6e 5c 6e 20 20 20 20 6d m(b_i)..#.Dirac.weights\n\n....m
be20 65 61 73 75 72 65 73 5f 6c 6f 63 61 74 69 6f 6e 73 2e 61 70 70 65 6e 64 28 78 5f 69 29 5c 6e 20 easures_locations.append(x_i)\n.
be40 20 20 20 6d 65 61 73 75 72 65 73 5f 77 65 69 67 68 74 73 2e 61 70 70 65 6e 64 28 62 5f 69 29 22 ...measures_weights.append(b_i)"
be60 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c .......].....},.....{......."cel
be80 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 l_type":."markdown",......."meta
bea0 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 data":.{},......."source":.[....
bec0 20 20 20 20 20 22 43 6f 6d 70 75 74 65 20 66 72 65 65 20 73 75 70 70 6f 72 74 20 62 61 72 79 63 ....."Compute.free.support.baryc
bee0 65 6e 74 65 72 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 enter\n-------------\n\n".......
bf00 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 ].....},.....{......."cell_type"
bf20 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 :."code",......."execution_count
bf40 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 ":.null,......."metadata":.{....
bf60 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c ....."collapsed":.false.......},
bf80 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 ......."outputs":.[],......."sou
bfa0 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 6b 20 3d 20 31 30 20 20 23 20 6e 75 6d 62 65 rce":.[........."k.=.10..#.numbe
bfc0 72 20 6f 66 20 44 69 72 61 63 73 20 6f 66 20 74 68 65 20 62 61 72 79 63 65 6e 74 65 72 5c 6e 58 r.of.Diracs.of.the.barycenter\nX
bfe0 5f 69 6e 69 74 20 3d 20 6e 70 2e 72 61 6e 64 6f 6d 2e 6e 6f 72 6d 61 6c 28 30 2e 2c 20 31 2e 2c _init.=.np.random.normal(0.,.1.,
c000 20 28 6b 2c 20 64 29 29 20 20 23 20 69 6e 69 74 69 61 6c 20 44 69 72 61 63 20 6c 6f 63 61 74 69 .(k,.d))..#.initial.Dirac.locati
c020 6f 6e 73 5c 6e 62 20 3d 20 6e 70 2e 6f 6e 65 73 28 28 6b 2c 29 29 20 2f 20 6b 20 20 23 20 77 65 ons\nb.=.np.ones((k,))./.k..#.we
c040 69 67 68 74 73 20 6f 66 20 74 68 65 20 62 61 72 79 63 65 6e 74 65 72 20 28 69 74 20 77 69 6c 6c ights.of.the.barycenter.(it.will
c060 20 6e 6f 74 20 62 65 20 6f 70 74 69 6d 69 7a 65 64 2c 20 6f 6e 6c 79 20 74 68 65 20 6c 6f 63 61 .not.be.optimized,.only.the.loca
c080 74 69 6f 6e 73 20 61 72 65 20 6f 70 74 69 6d 69 7a 65 64 29 5c 6e 5c 6e 58 20 3d 20 6f 74 2e 6c tions.are.optimized)\n\nX.=.ot.l
c0a0 70 2e 66 72 65 65 5f 73 75 70 70 6f 72 74 5f 62 61 72 79 63 65 6e 74 65 72 28 6d 65 61 73 75 72 p.free_support_barycenter(measur
c0c0 65 73 5f 6c 6f 63 61 74 69 6f 6e 73 2c 20 6d 65 61 73 75 72 65 73 5f 77 65 69 67 68 74 73 2c 20 es_locations,.measures_weights,.
c0e0 58 5f 69 6e 69 74 2c 20 62 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b X_init,.b)".......].....},.....{
c100 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a ......."cell_type":."markdown",.
c120 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 ......"metadata":.{},......."sou
c140 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 50 6c 6f 74 20 64 61 74 61 5c 6e 2d 2d 2d 2d rce":.[........."Plot.data\n----
c160 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a -----\n\n".......].....},.....{.
c180 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 ......"cell_type":."code",......
c1a0 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 ."execution_count":.null,.......
c1c0 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 "metadata":.{........."collapsed
c1e0 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 ":.false.......},......."outputs
c200 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 ":.[],......."source":.[........
c220 20 22 70 6c 2e 66 69 67 75 72 65 28 31 29 5c 6e 66 6f 72 20 28 78 5f 69 2c 20 62 5f 69 29 20 69 ."pl.figure(1)\nfor.(x_i,.b_i).i
c240 6e 20 7a 69 70 28 6d 65 61 73 75 72 65 73 5f 6c 6f 63 61 74 69 6f 6e 73 2c 20 6d 65 61 73 75 72 n.zip(measures_locations,.measur
c260 65 73 5f 77 65 69 67 68 74 73 29 3a 5c 6e 20 20 20 20 63 6f 6c 6f 72 20 3d 20 6e 70 2e 72 61 6e es_weights):\n....color.=.np.ran
c280 64 6f 6d 2e 72 61 6e 64 69 6e 74 28 6c 6f 77 3d 31 2c 20 68 69 67 68 3d 31 30 20 2a 20 4e 29 5c dom.randint(low=1,.high=10.*.N)\
c2a0 6e 20 20 20 20 70 6c 2e 73 63 61 74 74 65 72 28 78 5f 69 5b 3a 2c 20 30 5d 2c 20 78 5f 69 5b 3a n....pl.scatter(x_i[:,.0],.x_i[:
c2c0 2c 20 31 5d 2c 20 73 3d 62 5f 69 20 2a 20 31 30 30 30 2c 20 6c 61 62 65 6c 3d 27 69 6e 70 75 74 ,.1],.s=b_i.*.1000,.label='input
c2e0 20 6d 65 61 73 75 72 65 27 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 58 5b 3a 2c 20 30 5d 2c 20 .measure')\npl.scatter(X[:,.0],.
c300 58 5b 3a 2c 20 31 5d 2c 20 73 3d 62 20 2a 20 31 30 30 30 2c 20 63 3d 27 62 6c 61 63 6b 27 2c 20 X[:,.1],.s=b.*.1000,.c='black',.
c320 6d 61 72 6b 65 72 3d 27 5e 27 2c 20 6c 61 62 65 6c 3d 27 32 2d 57 61 73 73 65 72 73 74 65 69 6e marker='^',.label='2-Wasserstein
c340 20 62 61 72 79 63 65 6e 74 65 72 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 44 61 74 61 20 6d 65 .barycenter')\npl.title('Data.me
c360 61 73 75 72 65 73 20 61 6e 64 20 74 68 65 69 72 20 62 61 72 79 63 65 6e 74 65 72 27 29 5c 6e 70 asures.and.their.barycenter')\np
c380 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e 70 6c 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 l.legend(loc=0)\npl.show()".....
c3a0 20 20 5d 0a 20 20 20 20 7d 0a 20 20 5d 2c 0a 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 ..].....}...],..."metadata":.{..
c3c0 20 20 20 22 6b 65 72 6e 65 6c 73 70 65 63 22 3a 20 7b 0a 20 20 20 20 20 20 22 64 69 73 70 6c 61 ..."kernelspec":.{......."displa
c3e0 79 5f 6e 61 6d 65 22 3a 20 22 50 79 74 68 6f 6e 20 33 22 2c 0a 20 20 20 20 20 20 22 6c 61 6e 67 y_name":."Python.3",......."lang
c400 75 61 67 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 uage":."python",......."name":."
c420 70 79 74 68 6f 6e 33 22 0a 20 20 20 20 7d 2c 0a 20 20 20 20 22 6c 61 6e 67 75 61 67 65 5f 69 6e python3".....},....."language_in
c440 66 6f 22 3a 20 7b 0a 20 20 20 20 20 20 22 63 6f 64 65 6d 69 72 72 6f 72 5f 6d 6f 64 65 22 3a 20 fo":.{......."codemirror_mode":.
c460 7b 0a 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 69 70 79 74 68 6f 6e 22 2c 0a 20 20 20 {........."name":."ipython",....
c480 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 33 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 ....."version":.3.......},......
c4a0 20 22 66 69 6c 65 5f 65 78 74 65 6e 73 69 6f 6e 22 3a 20 22 2e 70 79 22 2c 0a 20 20 20 20 20 20 ."file_extension":.".py",.......
c4c0 22 6d 69 6d 65 74 79 70 65 22 3a 20 22 74 65 78 74 2f 78 2d 70 79 74 68 6f 6e 22 2c 0a 20 20 20 "mimetype":."text/x-python",....
c4e0 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 62 63 6f ..."name":."python",......."nbco
c500 6e 76 65 72 74 5f 65 78 70 6f 72 74 65 72 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 nvert_exporter":."python",......
c520 20 22 70 79 67 6d 65 6e 74 73 5f 6c 65 78 65 72 22 3a 20 22 69 70 79 74 68 6f 6e 33 22 2c 0a 20 ."pygments_lexer":."ipython3",..
c540 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 36 2e 39 22 0a 20 20 20 20 7d 0a 20 20 ....."version":."3.6.9".....}...
c560 7d 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 22 3a 20 34 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 5f },..."nbformat":.4,..."nbformat_
c580 6d 69 6e 6f 72 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 a5 72 94 50 e8 8e 42 62 97 12 00 minor":.0.}PK.........r.P..Bb...
c5a0 00 97 12 00 00 16 00 00 00 70 6c 6f 74 5f 6f 70 74 69 6d 5f 4f 54 72 65 67 2e 69 70 79 6e 62 7b .........plot_optim_OTreg.ipynb{
c5c0 0a 20 20 22 63 65 6c 6c 73 22 3a 20 5b 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f ..."cells":.[.....{......."cell_
c5e0 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f type":."code",......."execution_
c600 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 count":.null,......."metadata":.
c620 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 {........."collapsed":.false....
c640 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 ...},......."outputs":.[],......
c660 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 25 6d 61 74 70 6c 6f 74 6c 69 ."source":.[........."%matplotli
c680 62 20 69 6e 6c 69 6e 65 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 b.inline".......].....},.....{..
c6a0 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 ....."cell_type":."markdown",...
c6c0 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 ...."metadata":.{},......."sourc
c6e0 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 52 65 67 75 6c 61 72 69 7a 65 64 20 4f e":.[........."\n#.Regularized.O
c700 54 20 77 69 74 68 20 67 65 6e 65 72 69 63 20 73 6f 6c 76 65 72 5c 6e 5c 6e 5c 6e 49 6c 6c 75 73 T.with.generic.solver\n\n\nIllus
c720 74 72 61 74 65 73 20 74 68 65 20 75 73 65 20 6f 66 20 74 68 65 20 67 65 6e 65 72 69 63 20 73 6f trates.the.use.of.the.generic.so
c740 6c 76 65 72 20 66 6f 72 20 72 65 67 75 6c 61 72 69 7a 65 64 20 4f 54 20 77 69 74 68 5c 6e 75 73 lver.for.regularized.OT.with\nus
c760 65 72 2d 64 65 73 69 67 6e 65 64 20 72 65 67 75 6c 61 72 69 7a 61 74 69 6f 6e 20 74 65 72 6d 2e er-designed.regularization.term.
c780 20 49 74 20 75 73 65 73 20 43 6f 6e 64 69 74 69 6f 6e 61 6c 20 67 72 61 64 69 65 6e 74 20 61 73 .It.uses.Conditional.gradient.as
c7a0 20 69 6e 20 5b 36 5d 20 61 6e 64 5c 6e 67 65 6e 65 72 61 6c 69 7a 65 64 20 43 6f 6e 64 69 74 69 .in.[6].and\ngeneralized.Conditi
c7c0 6f 6e 61 6c 20 47 72 61 64 69 65 6e 74 20 61 73 20 70 72 6f 70 6f 73 65 64 20 69 6e 20 5b 35 5d onal.Gradient.as.proposed.in.[5]
c7e0 5b 37 5d 2e 5c 6e 5c 6e 5c 6e 5b 35 5d 20 4e 2e 20 43 6f 75 72 74 79 3b 20 52 2e 20 46 6c 61 6d [7].\n\n\n[5].N..Courty;.R..Flam
c800 61 72 79 3b 20 44 2e 20 54 75 69 61 3b 20 41 2e 20 52 61 6b 6f 74 6f 6d 61 6d 6f 6e 6a 79 2c 20 ary;.D..Tuia;.A..Rakotomamonjy,.
c820 4f 70 74 69 6d 61 6c 20 54 72 61 6e 73 70 6f 72 74 20 66 6f 72 5c 6e 44 6f 6d 61 69 6e 20 41 64 Optimal.Transport.for\nDomain.Ad
c840 61 70 74 61 74 69 6f 6e 2c 20 69 6e 20 49 45 45 45 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 20 6f aptation,.in.IEEE.Transactions.o
c860 6e 20 50 61 74 74 65 72 6e 20 41 6e 61 6c 79 73 69 73 20 61 6e 64 20 4d 61 63 68 69 6e 65 5c 6e n.Pattern.Analysis.and.Machine\n
c880 49 6e 74 65 6c 6c 69 67 65 6e 63 65 20 2c 20 76 6f 6c 2e 50 50 2c 20 6e 6f 2e 39 39 2c 20 70 70 Intelligence.,.vol.PP,.no.99,.pp
c8a0 2e 31 2d 31 2e 5c 6e 5c 6e 5b 36 5d 20 46 65 72 72 61 64 61 6e 73 2c 20 53 2e 2c 20 50 61 70 61 .1-1.\n\n[6].Ferradans,.S.,.Papa
c8c0 64 61 6b 69 73 2c 20 4e 2e 2c 20 50 65 79 72 5c 75 30 30 65 39 2c 20 47 2e 2c 20 26 20 41 75 6a dakis,.N.,.Peyr\u00e9,.G.,.&.Auj
c8e0 6f 6c 2c 20 4a 2e 20 46 2e 20 28 32 30 31 34 29 2e 5c 6e 52 65 67 75 6c 61 72 69 7a 65 64 20 64 ol,.J..F..(2014).\nRegularized.d
c900 69 73 63 72 65 74 65 20 6f 70 74 69 6d 61 6c 20 74 72 61 6e 73 70 6f 72 74 2e 20 53 49 41 4d 20 iscrete.optimal.transport..SIAM.
c920 4a 6f 75 72 6e 61 6c 20 6f 6e 20 49 6d 61 67 69 6e 67 20 53 63 69 65 6e 63 65 73 2c 5c 6e 37 28 Journal.on.Imaging.Sciences,\n7(
c940 33 29 2c 20 31 38 35 33 2d 31 38 38 32 2e 5c 6e 5c 6e 5b 37 5d 20 52 61 6b 6f 74 6f 6d 61 6d 6f 3),.1853-1882.\n\n[7].Rakotomamo
c960 6e 6a 79 2c 20 41 2e 2c 20 46 6c 61 6d 61 72 79 2c 20 52 2e 2c 20 26 20 43 6f 75 72 74 79 2c 20 njy,.A.,.Flamary,.R.,.&.Courty,.
c980 4e 2e 20 28 32 30 31 35 29 2e 20 47 65 6e 65 72 61 6c 69 7a 65 64 5c 6e 63 6f 6e 64 69 74 69 6f N..(2015)..Generalized\nconditio
c9a0 6e 61 6c 20 67 72 61 64 69 65 6e 74 3a 20 61 6e 61 6c 79 73 69 73 20 6f 66 20 63 6f 6e 76 65 72 nal.gradient:.analysis.of.conver
c9c0 67 65 6e 63 65 20 61 6e 64 20 61 70 70 6c 69 63 61 74 69 6f 6e 73 2e 5c 6e 61 72 58 69 76 20 70 gence.and.applications.\narXiv.p
c9e0 72 65 70 72 69 6e 74 20 61 72 58 69 76 3a 31 35 31 30 2e 30 36 35 36 37 2e 5c 6e 5c 6e 5c 6e 5c reprint.arXiv:1510.06567.\n\n\n\
ca00 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 n\n".......].....},.....{.......
ca20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 "cell_type":."code",......."exec
ca40 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 ution_count":.null,......."metad
ca60 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c ata":.{........."collapsed":.fal
ca80 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c se.......},......."outputs":.[],
caa0 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 69 6d 70 6f ......."source":.[........."impo
cac0 72 74 20 6e 75 6d 70 79 20 61 73 20 6e 70 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 rt.numpy.as.np\nimport.matplotli
cae0 62 2e 70 79 6c 61 62 20 61 73 20 70 6c 5c 6e 69 6d 70 6f 72 74 20 6f 74 5c 6e 69 6d 70 6f 72 74 b.pylab.as.pl\nimport.ot\nimport
cb00 20 6f 74 2e 70 6c 6f 74 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 .ot.plot".......].....},.....{..
cb20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 ....."cell_type":."markdown",...
cb40 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 ...."metadata":.{},......."sourc
cb60 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 47 65 6e 65 72 61 74 65 20 64 61 74 61 5c 6e 2d 2d e":.[........."Generate.data\n--
cb80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a -----------\n\n".......].....},.
cba0 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c ....{......."cell_type":."code",
cbc0 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a ......."execution_count":.null,.
cbe0 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c ......"metadata":.{........."col
cc00 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f lapsed":.false.......},......."o
cc20 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 utputs":.[],......."source":.[..
cc40 20 20 20 20 20 20 20 22 6e 20 3d 20 31 30 30 20 20 23 20 6e 62 20 62 69 6e 73 5c 6e 5c 6e 23 20 ......."n.=.100..#.nb.bins\n\n#.
cc60 62 69 6e 20 70 6f 73 69 74 69 6f 6e 73 5c 6e 78 20 3d 20 6e 70 2e 61 72 61 6e 67 65 28 6e 2c 20 bin.positions\nx.=.np.arange(n,.
cc80 64 74 79 70 65 3d 6e 70 2e 66 6c 6f 61 74 36 34 29 5c 6e 5c 6e 23 20 47 61 75 73 73 69 61 6e 20 dtype=np.float64)\n\n#.Gaussian.
cca0 64 69 73 74 72 69 62 75 74 69 6f 6e 73 5c 6e 61 20 3d 20 6f 74 2e 64 61 74 61 73 65 74 73 2e 6d distributions\na.=.ot.datasets.m
ccc0 61 6b 65 5f 31 44 5f 67 61 75 73 73 28 6e 2c 20 6d 3d 32 30 2c 20 73 3d 35 29 20 20 23 20 6d 3d ake_1D_gauss(n,.m=20,.s=5)..#.m=
cce0 20 6d 65 61 6e 2c 20 73 3d 20 73 74 64 5c 6e 62 20 3d 20 6f 74 2e 64 61 74 61 73 65 74 73 2e 6d .mean,.s=.std\nb.=.ot.datasets.m
cd00 61 6b 65 5f 31 44 5f 67 61 75 73 73 28 6e 2c 20 6d 3d 36 30 2c 20 73 3d 31 30 29 5c 6e 5c 6e 23 ake_1D_gauss(n,.m=60,.s=10)\n\n#
cd20 20 6c 6f 73 73 20 6d 61 74 72 69 78 5c 6e 4d 20 3d 20 6f 74 2e 64 69 73 74 28 78 2e 72 65 73 68 .loss.matrix\nM.=.ot.dist(x.resh
cd40 61 70 65 28 28 6e 2c 20 31 29 29 2c 20 78 2e 72 65 73 68 61 70 65 28 28 6e 2c 20 31 29 29 29 5c ape((n,.1)),.x.reshape((n,.1)))\
cd60 6e 4d 20 2f 3d 20 4d 2e 6d 61 78 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 nM./=.M.max()".......].....},...
cd80 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e ..{......."cell_type":."markdown
cda0 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 ",......."metadata":.{},......."
cdc0 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 53 6f 6c 76 65 20 45 4d 44 5c 6e 2d source":.[........."Solve.EMD\n-
cde0 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 --------\n\n".......].....},....
ce00 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 .{......."cell_type":."code",...
ce20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 ...."execution_count":.null,....
ce40 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 ..."metadata":.{........."collap
ce60 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 sed":.false.......},......."outp
ce80 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 uts":.[],......."source":.[.....
cea0 20 20 20 20 22 47 30 20 3d 20 6f 74 2e 65 6d 64 28 61 2c 20 62 2c 20 4d 29 5c 6e 5c 6e 70 6c 2e ...."G0.=.ot.emd(a,.b,.M)\n\npl.
cec0 66 69 67 75 72 65 28 33 2c 20 66 69 67 73 69 7a 65 3d 28 35 2c 20 35 29 29 5c 6e 6f 74 2e 70 6c figure(3,.figsize=(5,.5))\not.pl
cee0 6f 74 2e 70 6c 6f 74 31 44 5f 6d 61 74 28 61 2c 20 62 2c 20 47 30 2c 20 27 4f 54 20 6d 61 74 72 ot.plot1D_mat(a,.b,.G0,.'OT.matr
cf00 69 78 20 47 30 27 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 ix.G0')".......].....},.....{...
cf20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 ...."cell_type":."markdown",....
cf40 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 ..."metadata":.{},......."source
cf60 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 53 6f 6c 76 65 20 45 4d 44 20 77 69 74 68 20 46 72 6f ":.[........."Solve.EMD.with.Fro
cf80 62 65 6e 69 75 73 20 6e 6f 72 6d 20 72 65 67 75 6c 61 72 69 7a 61 74 69 6f 6e 5c 6e 2d 2d 2d 2d benius.norm.regularization\n----
cfa0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
cfc0 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 --------\n\n".......].....},....
cfe0 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 .{......."cell_type":."code",...
d000 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 ...."execution_count":.null,....
d020 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 ..."metadata":.{........."collap
d040 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 sed":.false.......},......."outp
d060 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 uts":.[],......."source":.[.....
d080 20 20 20 20 22 64 65 66 20 66 28 47 29 3a 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 30 2e 35 20 2a ...."def.f(G):\n....return.0.5.*
d0a0 20 6e 70 2e 73 75 6d 28 47 2a 2a 32 29 5c 6e 5c 6e 5c 6e 64 65 66 20 64 66 28 47 29 3a 5c 6e 20 .np.sum(G**2)\n\n\ndef.df(G):\n.
d0c0 20 20 20 72 65 74 75 72 6e 20 47 5c 6e 5c 6e 5c 6e 72 65 67 20 3d 20 31 65 2d 31 5c 6e 5c 6e 47 ...return.G\n\n\nreg.=.1e-1\n\nG
d0e0 6c 32 20 3d 20 6f 74 2e 6f 70 74 69 6d 2e 63 67 28 61 2c 20 62 2c 20 4d 2c 20 72 65 67 2c 20 66 l2.=.ot.optim.cg(a,.b,.M,.reg,.f
d100 2c 20 64 66 2c 20 76 65 72 62 6f 73 65 3d 54 72 75 65 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 ,.df,.verbose=True)\n\npl.figure
d120 28 33 29 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 31 44 5f 6d 61 74 28 61 2c 20 62 2c 20 47 6c (3)\not.plot.plot1D_mat(a,.b,.Gl
d140 32 2c 20 27 4f 54 20 6d 61 74 72 69 78 20 46 72 6f 62 2e 20 72 65 67 27 29 22 0a 20 20 20 20 20 2,.'OT.matrix.Frob..reg')"......
d160 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 .].....},.....{......."cell_type
d180 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a ":."markdown",......."metadata":
d1a0 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 .{},......."source":.[........."
d1c0 53 6f 6c 76 65 20 45 4d 44 20 77 69 74 68 20 65 6e 74 72 6f 70 69 63 20 72 65 67 75 6c 61 72 69 Solve.EMD.with.entropic.regulari
d1e0 7a 61 74 69 6f 6e 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d zation\n------------------------
d200 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 --------------\n\n".......].....
d220 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 },.....{......."cell_type":."cod
d240 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c e",......."execution_count":.nul
d260 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 l,......."metadata":.{........."
d280 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 collapsed":.false.......},......
d2a0 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 ."outputs":.[],......."source":.
d2c0 5b 0a 20 20 20 20 20 20 20 20 22 64 65 66 20 66 28 47 29 3a 5c 6e 20 20 20 20 72 65 74 75 72 6e [........."def.f(G):\n....return
d2e0 20 6e 70 2e 73 75 6d 28 47 20 2a 20 6e 70 2e 6c 6f 67 28 47 29 29 5c 6e 5c 6e 5c 6e 64 65 66 20 .np.sum(G.*.np.log(G))\n\n\ndef.
d300 64 66 28 47 29 3a 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 6e 70 2e 6c 6f 67 28 47 29 20 2b 20 31 df(G):\n....return.np.log(G).+.1
d320 2e 5c 6e 5c 6e 5c 6e 72 65 67 20 3d 20 31 65 2d 33 5c 6e 5c 6e 47 65 20 3d 20 6f 74 2e 6f 70 74 .\n\n\nreg.=.1e-3\n\nGe.=.ot.opt
d340 69 6d 2e 63 67 28 61 2c 20 62 2c 20 4d 2c 20 72 65 67 2c 20 66 2c 20 64 66 2c 20 76 65 72 62 6f im.cg(a,.b,.M,.reg,.f,.df,.verbo
d360 73 65 3d 54 72 75 65 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 34 2c 20 66 69 67 73 69 7a 65 se=True)\n\npl.figure(4,.figsize
d380 3d 28 35 2c 20 35 29 29 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 31 44 5f 6d 61 74 28 61 2c 20 =(5,.5))\not.plot.plot1D_mat(a,.
d3a0 62 2c 20 47 65 2c 20 27 4f 54 20 6d 61 74 72 69 78 20 45 6e 74 72 6f 70 2e 20 72 65 67 27 29 22 b,.Ge,.'OT.matrix.Entrop..reg')"
d3c0 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c .......].....},.....{......."cel
d3e0 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 l_type":."markdown",......."meta
d400 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 data":.{},......."source":.[....
d420 20 20 20 20 20 22 53 6f 6c 76 65 20 45 4d 44 20 77 69 74 68 20 46 72 6f 62 65 6e 69 75 73 20 6e ....."Solve.EMD.with.Frobenius.n
d440 6f 72 6d 20 2b 20 65 6e 74 72 6f 70 69 63 20 72 65 67 75 6c 61 72 69 7a 61 74 69 6f 6e 5c 6e 2d orm.+.entropic.regularization\n-
d460 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
d480 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 ----------------------\n\n".....
d4a0 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 ..].....},.....{......."cell_typ
d4c0 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 e":."code",......."execution_cou
d4e0 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 nt":.null,......."metadata":.{..
d500 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 ......."collapsed":.false.......
d520 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 },......."outputs":.[],......."s
d540 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 64 65 66 20 66 28 47 29 3a 5c 6e 20 20 ource":.[........."def.f(G):\n..
d560 20 20 72 65 74 75 72 6e 20 30 2e 35 20 2a 20 6e 70 2e 73 75 6d 28 47 2a 2a 32 29 5c 6e 5c 6e 5c ..return.0.5.*.np.sum(G**2)\n\n\
d580 6e 64 65 66 20 64 66 28 47 29 3a 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 47 5c 6e 5c 6e 5c 6e 72 ndef.df(G):\n....return.G\n\n\nr
d5a0 65 67 31 20 3d 20 31 65 2d 33 5c 6e 72 65 67 32 20 3d 20 31 65 2d 31 5c 6e 5c 6e 47 65 6c 32 20 eg1.=.1e-3\nreg2.=.1e-1\n\nGel2.
d5c0 3d 20 6f 74 2e 6f 70 74 69 6d 2e 67 63 67 28 61 2c 20 62 2c 20 4d 2c 20 72 65 67 31 2c 20 72 65 =.ot.optim.gcg(a,.b,.M,.reg1,.re
d5e0 67 32 2c 20 66 2c 20 64 66 2c 20 76 65 72 62 6f 73 65 3d 54 72 75 65 29 5c 6e 5c 6e 70 6c 2e 66 g2,.f,.df,.verbose=True)\n\npl.f
d600 69 67 75 72 65 28 35 2c 20 66 69 67 73 69 7a 65 3d 28 35 2c 20 35 29 29 5c 6e 6f 74 2e 70 6c 6f igure(5,.figsize=(5,.5))\not.plo
d620 74 2e 70 6c 6f 74 31 44 5f 6d 61 74 28 61 2c 20 62 2c 20 47 65 6c 32 2c 20 27 4f 54 20 65 6e 74 t.plot1D_mat(a,.b,.Gel2,.'OT.ent
d640 72 6f 70 69 63 20 2b 20 6d 61 74 72 69 78 20 46 72 6f 62 2e 20 72 65 67 27 29 5c 6e 70 6c 2e 73 ropic.+.matrix.Frob..reg')\npl.s
d660 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 0a 20 20 5d 2c 0a 20 20 22 6d 65 74 how()".......].....}...],..."met
d680 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 22 6b 65 72 6e 65 6c 73 70 65 63 22 3a 20 7b 0a 20 20 adata":.{....."kernelspec":.{...
d6a0 20 20 20 20 22 64 69 73 70 6c 61 79 5f 6e 61 6d 65 22 3a 20 22 50 79 74 68 6f 6e 20 33 22 2c 0a ...."display_name":."Python.3",.
d6c0 20 20 20 20 20 20 22 6c 61 6e 67 75 61 67 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 ......"language":."python",.....
d6e0 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 33 22 0a 20 20 20 20 7d 2c 0a 20 20 20 20 22 .."name":."python3".....},....."
d700 6c 61 6e 67 75 61 67 65 5f 69 6e 66 6f 22 3a 20 7b 0a 20 20 20 20 20 20 22 63 6f 64 65 6d 69 72 language_info":.{......."codemir
d720 72 6f 72 5f 6d 6f 64 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 69 70 ror_mode":.{........."name":."ip
d740 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 33 0a 20 20 20 ython",........."version":.3....
d760 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 66 69 6c 65 5f 65 78 74 65 6e 73 69 6f 6e 22 3a 20 22 2e ...},......."file_extension":.".
d780 70 79 22 2c 0a 20 20 20 20 20 20 22 6d 69 6d 65 74 79 70 65 22 3a 20 22 74 65 78 74 2f 78 2d 70 py",......."mimetype":."text/x-p
d7a0 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a ython",......."name":."python",.
d7c0 20 20 20 20 20 20 22 6e 62 63 6f 6e 76 65 72 74 5f 65 78 70 6f 72 74 65 72 22 3a 20 22 70 79 74 ......"nbconvert_exporter":."pyt
d7e0 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 70 79 67 6d 65 6e 74 73 5f 6c 65 78 65 72 22 3a 20 22 69 hon",......."pygments_lexer":."i
d800 70 79 74 68 6f 6e 33 22 2c 0a 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 36 2e python3",......."version":."3.6.
d820 39 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 22 3a 20 34 2c 0a 20 9".....}...},..."nbformat":.4,..
d840 20 22 6e 62 66 6f 72 6d 61 74 5f 6d 69 6e 6f 72 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 ."nbformat_minor":.0.}PK........
d860 b8 72 94 50 e6 95 03 a9 02 15 00 00 02 15 00 00 1e 00 00 00 70 6c 6f 74 5f 6f 74 64 61 5f 6c 69 .r.P................plot_otda_li
d880 6e 65 61 72 5f 6d 61 70 70 69 6e 67 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 22 3a 20 5b near_mapping.ipynb{..."cells":.[
d8a0 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 .....{......."cell_type":."code"
d8c0 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c ,......."execution_count":.null,
d8e0 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f ......."metadata":.{........."co
d900 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 llapsed":.false.......},......."
d920 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a outputs":.[],......."source":.[.
d940 20 20 20 20 20 20 20 20 22 25 6d 61 74 70 6c 6f 74 6c 69 62 20 69 6e 6c 69 6e 65 22 0a 20 20 20 ........"%matplotlib.inline"....
d960 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 ...].....},.....{......."cell_ty
d980 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 pe":."markdown",......."metadata
d9a0 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 ":.{},......."source":.[........
d9c0 20 22 5c 6e 23 20 4c 69 6e 65 61 72 20 4f 54 20 6d 61 70 70 69 6e 67 20 65 73 74 69 6d 61 74 69 ."\n#.Linear.OT.mapping.estimati
d9e0 6f 6e 5c 6e 5c 6e 5c 6e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 on\n\n\n\n\n".......].....},....
da00 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 .{......."cell_type":."code",...
da20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 ...."execution_count":.null,....
da40 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 ..."metadata":.{........."collap
da60 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 sed":.false.......},......."outp
da80 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 uts":.[],......."source":.[.....
daa0 20 20 20 20 22 23 20 41 75 74 68 6f 72 3a 20 52 65 6d 69 20 46 6c 61 6d 61 72 79 20 3c 72 65 6d ...."#.Author:.Remi.Flamary.<rem
dac0 69 2e 66 6c 61 6d 61 72 79 40 75 6e 69 63 65 2e 66 72 3e 5c 6e 23 5c 6e 23 20 4c 69 63 65 6e 73 i.flamary@unice.fr>\n#\n#.Licens
dae0 65 3a 20 4d 49 54 20 4c 69 63 65 6e 73 65 5c 6e 5c 6e 69 6d 70 6f 72 74 20 6e 75 6d 70 79 20 61 e:.MIT.License\n\nimport.numpy.a
db00 73 20 6e 70 5c 6e 69 6d 70 6f 72 74 20 70 79 6c 61 62 20 61 73 20 70 6c 5c 6e 69 6d 70 6f 72 74 s.np\nimport.pylab.as.pl\nimport
db20 20 6f 74 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 .ot".......].....},.....{.......
db40 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 "cell_type":."markdown",......."
db60 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b metadata":.{},......."source":.[
db80 0a 20 20 20 20 20 20 20 20 22 47 65 6e 65 72 61 74 65 20 64 61 74 61 5c 6e 2d 2d 2d 2d 2d 2d 2d ........."Generate.data\n-------
dba0 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b ------\n\n".......].....},.....{
dbc0 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 ......."cell_type":."code",.....
dbe0 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 .."execution_count":.null,......
dc00 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 ."metadata":.{........."collapse
dc20 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 d":.false.......},......."output
dc40 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 s":.[],......."source":.[.......
dc60 20 20 22 6e 20 3d 20 31 30 30 30 5c 6e 64 20 3d 20 32 5c 6e 73 69 67 6d 61 20 3d 20 2e 31 5c 6e .."n.=.1000\nd.=.2\nsigma.=..1\n
dc80 5c 6e 23 20 73 6f 75 72 63 65 20 73 61 6d 70 6c 65 73 5c 6e 61 6e 67 6c 65 73 20 3d 20 6e 70 2e \n#.source.samples\nangles.=.np.
dca0 72 61 6e 64 6f 6d 2e 72 61 6e 64 28 6e 2c 20 31 29 20 2a 20 32 20 2a 20 6e 70 2e 70 69 5c 6e 78 random.rand(n,.1).*.2.*.np.pi\nx
dcc0 73 20 3d 20 6e 70 2e 63 6f 6e 63 61 74 65 6e 61 74 65 28 28 6e 70 2e 73 69 6e 28 61 6e 67 6c 65 s.=.np.concatenate((np.sin(angle
dce0 73 29 2c 20 6e 70 2e 63 6f 73 28 61 6e 67 6c 65 73 29 29 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 s),.np.cos(angles)),\n..........
dd00 20 20 20 20 20 20 20 20 20 20 61 78 69 73 3d 31 29 20 2b 20 73 69 67 6d 61 20 2a 20 6e 70 2e 72 ..........axis=1).+.sigma.*.np.r
dd20 61 6e 64 6f 6d 2e 72 61 6e 64 6e 28 6e 2c 20 32 29 5c 6e 78 73 5b 3a 6e 20 2f 2f 20 32 2c 20 31 andom.randn(n,.2)\nxs[:n.//.2,.1
dd40 5d 20 2b 3d 20 32 5c 6e 5c 6e 5c 6e 23 20 74 61 72 67 65 74 20 73 61 6d 70 6c 65 73 5c 6e 61 6e ].+=.2\n\n\n#.target.samples\nan
dd60 67 6c 65 74 20 3d 20 6e 70 2e 72 61 6e 64 6f 6d 2e 72 61 6e 64 28 6e 2c 20 31 29 20 2a 20 32 20 glet.=.np.random.rand(n,.1).*.2.
dd80 2a 20 6e 70 2e 70 69 5c 6e 78 74 20 3d 20 6e 70 2e 63 6f 6e 63 61 74 65 6e 61 74 65 28 28 6e 70 *.np.pi\nxt.=.np.concatenate((np
dda0 2e 73 69 6e 28 61 6e 67 6c 65 74 29 2c 20 6e 70 2e 63 6f 73 28 61 6e 67 6c 65 74 29 29 2c 5c 6e .sin(anglet),.np.cos(anglet)),\n
ddc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 78 69 73 3d 31 29 20 2b 20 73 69 ....................axis=1).+.si
dde0 67 6d 61 20 2a 20 6e 70 2e 72 61 6e 64 6f 6d 2e 72 61 6e 64 6e 28 6e 2c 20 32 29 5c 6e 78 74 5b gma.*.np.random.randn(n,.2)\nxt[
de00 3a 6e 20 2f 2f 20 32 2c 20 31 5d 20 2b 3d 20 32 5c 6e 5c 6e 5c 6e 41 20 3d 20 6e 70 2e 61 72 72 :n.//.2,.1].+=.2\n\n\nA.=.np.arr
de20 61 79 28 5b 5b 31 2e 35 2c 20 2e 37 5d 2c 20 5b 2e 37 2c 20 31 2e 35 5d 5d 29 5c 6e 62 20 3d 20 ay([[1.5,..7],.[.7,.1.5]])\nb.=.
de40 6e 70 2e 61 72 72 61 79 28 5b 5b 34 2c 20 32 5d 5d 29 5c 6e 78 74 20 3d 20 78 74 2e 64 6f 74 28 np.array([[4,.2]])\nxt.=.xt.dot(
de60 41 29 20 2b 20 62 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 A).+.b".......].....},.....{....
de80 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 ..."cell_type":."markdown",.....
dea0 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 .."metadata":.{},......."source"
dec0 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 50 6c 6f 74 20 64 61 74 61 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d :.[........."Plot.data\n--------
dee0 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 -\n\n".......].....},.....{.....
df00 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 .."cell_type":."code",......."ex
df20 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 ecution_count":.null,......."met
df40 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 adata":.{........."collapsed":.f
df60 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b alse.......},......."outputs":.[
df80 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 70 6c ],......."source":.[........."pl
dfa0 2e 66 69 67 75 72 65 28 31 2c 20 28 35 2c 20 35 29 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 73 5b 3a .figure(1,.(5,.5))\npl.plot(xs[:
dfc0 2c 20 30 5d 2c 20 78 73 5b 3a 2c 20 31 5d 2c 20 27 2b 27 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 74 ,.0],.xs[:,.1],.'+')\npl.plot(xt
dfe0 5b 3a 2c 20 30 5d 2c 20 78 74 5b 3a 2c 20 31 5d 2c 20 27 6f 27 29 22 0a 20 20 20 20 20 20 5d 0a [:,.0],.xt[:,.1],.'o')".......].
e000 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 ....},.....{......."cell_type":.
e020 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d "markdown",......."metadata":.{}
e040 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 45 73 74 ,......."source":.[........."Est
e060 69 6d 61 74 65 20 6c 69 6e 65 61 72 20 6d 61 70 70 69 6e 67 20 61 6e 64 20 74 72 61 6e 73 70 6f imate.linear.mapping.and.transpo
e080 72 74 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d rt\n----------------------------
e0a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 ---------\n\n".......].....},...
e0c0 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 ..{......."cell_type":."code",..
e0e0 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 ....."execution_count":.null,...
e100 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 ...."metadata":.{........."colla
e120 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 psed":.false.......},......."out
e140 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 puts":.[],......."source":.[....
e160 20 20 20 20 20 22 41 65 2c 20 62 65 20 3d 20 6f 74 2e 64 61 2e 4f 54 5f 6d 61 70 70 69 6e 67 5f ....."Ae,.be.=.ot.da.OT_mapping_
e180 6c 69 6e 65 61 72 28 78 73 2c 20 78 74 29 5c 6e 5c 6e 78 73 74 20 3d 20 78 73 2e 64 6f 74 28 41 linear(xs,.xt)\n\nxst.=.xs.dot(A
e1a0 65 29 20 2b 20 62 65 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 e).+.be".......].....},.....{...
e1c0 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 ...."cell_type":."markdown",....
e1e0 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 ..."metadata":.{},......."source
e200 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 50 6c 6f 74 20 74 72 61 6e 73 70 6f 72 74 65 64 20 73 ":.[........."Plot.transported.s
e220 61 6d 70 6c 65 73 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d amples\n------------------------
e240 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 \n\n".......].....},.....{......
e260 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 ."cell_type":."code",......."exe
e280 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 cution_count":.null,......."meta
e2a0 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 data":.{........."collapsed":.fa
e2c0 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d lse.......},......."outputs":.[]
e2e0 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 70 6c 2e ,......."source":.[........."pl.
e300 66 69 67 75 72 65 28 31 2c 20 28 35 2c 20 35 29 29 5c 6e 70 6c 2e 63 6c 66 28 29 5c 6e 70 6c 2e figure(1,.(5,.5))\npl.clf()\npl.
e320 70 6c 6f 74 28 78 73 5b 3a 2c 20 30 5d 2c 20 78 73 5b 3a 2c 20 31 5d 2c 20 27 2b 27 29 5c 6e 70 plot(xs[:,.0],.xs[:,.1],.'+')\np
e340 6c 2e 70 6c 6f 74 28 78 74 5b 3a 2c 20 30 5d 2c 20 78 74 5b 3a 2c 20 31 5d 2c 20 27 6f 27 29 5c l.plot(xt[:,.0],.xt[:,.1],.'o')\
e360 6e 70 6c 2e 70 6c 6f 74 28 78 73 74 5b 3a 2c 20 30 5d 2c 20 78 73 74 5b 3a 2c 20 31 5d 2c 20 27 npl.plot(xst[:,.0],.xst[:,.1],.'
e380 2b 27 29 5c 6e 5c 6e 70 6c 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c +')\n\npl.show()".......].....},
e3a0 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 .....{......."cell_type":."markd
e3c0 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 own",......."metadata":.{},.....
e3e0 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4c 6f 61 64 20 69 6d 61 67 .."source":.[........."Load.imag
e400 65 20 64 61 74 61 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 e.data\n---------------\n\n"....
e420 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 ...].....},.....{......."cell_ty
e440 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f pe":."code",......."execution_co
e460 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a unt":.null,......."metadata":.{.
e480 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 ........"collapsed":.false......
e4a0 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 .},......."outputs":.[],......."
e4c0 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 64 65 66 20 69 6d 32 6d 61 74 28 49 source":.[........."def.im2mat(I
e4e0 29 3a 5c 6e 20 20 20 20 5c 22 5c 22 5c 22 43 6f 6e 76 65 72 74 73 20 61 6e 64 20 69 6d 61 67 65 ):\n....\"\"\"Converts.and.image
e500 20 74 6f 20 6d 61 74 72 69 78 20 28 6f 6e 65 20 70 69 78 65 6c 20 70 65 72 20 6c 69 6e 65 29 5c .to.matrix.(one.pixel.per.line)\
e520 22 5c 22 5c 22 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 49 2e 72 65 73 68 61 70 65 28 28 49 2e 73 "\"\"\n....return.I.reshape((I.s
e540 68 61 70 65 5b 30 5d 20 2a 20 49 2e 73 68 61 70 65 5b 31 5d 2c 20 49 2e 73 68 61 70 65 5b 32 5d hape[0].*.I.shape[1],.I.shape[2]
e560 29 29 5c 6e 5c 6e 5c 6e 64 65 66 20 6d 61 74 32 69 6d 28 58 2c 20 73 68 61 70 65 29 3a 5c 6e 20 ))\n\n\ndef.mat2im(X,.shape):\n.
e580 20 20 20 5c 22 5c 22 5c 22 43 6f 6e 76 65 72 74 73 20 62 61 63 6b 20 61 20 6d 61 74 72 69 78 20 ...\"\"\"Converts.back.a.matrix.
e5a0 74 6f 20 61 6e 20 69 6d 61 67 65 5c 22 5c 22 5c 22 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 58 2e to.an.image\"\"\"\n....return.X.
e5c0 72 65 73 68 61 70 65 28 73 68 61 70 65 29 5c 6e 5c 6e 5c 6e 64 65 66 20 6d 69 6e 6d 61 78 28 49 reshape(shape)\n\n\ndef.minmax(I
e5e0 29 3a 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 6e 70 2e 63 6c 69 70 28 49 2c 20 30 2c 20 31 29 5c ):\n....return.np.clip(I,.0,.1)\
e600 6e 5c 6e 5c 6e 23 20 4c 6f 61 64 69 6e 67 20 69 6d 61 67 65 73 5c 6e 49 31 20 3d 20 70 6c 2e 69 n\n\n#.Loading.images\nI1.=.pl.i
e620 6d 72 65 61 64 28 27 2e 2e 2f 64 61 74 61 2f 6f 63 65 61 6e 5f 64 61 79 2e 6a 70 67 27 29 2e 61 mread('../data/ocean_day.jpg').a
e640 73 74 79 70 65 28 6e 70 2e 66 6c 6f 61 74 36 34 29 20 2f 20 32 35 36 5c 6e 49 32 20 3d 20 70 6c stype(np.float64)./.256\nI2.=.pl
e660 2e 69 6d 72 65 61 64 28 27 2e 2e 2f 64 61 74 61 2f 6f 63 65 61 6e 5f 73 75 6e 73 65 74 2e 6a 70 .imread('../data/ocean_sunset.jp
e680 67 27 29 2e 61 73 74 79 70 65 28 6e 70 2e 66 6c 6f 61 74 36 34 29 20 2f 20 32 35 36 5c 6e 5c 6e g').astype(np.float64)./.256\n\n
e6a0 5c 6e 58 31 20 3d 20 69 6d 32 6d 61 74 28 49 31 29 5c 6e 58 32 20 3d 20 69 6d 32 6d 61 74 28 49 \nX1.=.im2mat(I1)\nX2.=.im2mat(I
e6c0 32 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 2)".......].....},.....{......."
e6e0 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d cell_type":."markdown",......."m
e700 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a etadata":.{},......."source":.[.
e720 20 20 20 20 20 20 20 20 22 45 73 74 69 6d 61 74 65 20 6d 61 70 70 69 6e 67 20 61 6e 64 20 61 64 ........"Estimate.mapping.and.ad
e740 61 70 74 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d apt\n---------------------------
e760 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 -\n\n".......].....},.....{.....
e780 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 .."cell_type":."code",......."ex
e7a0 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 ecution_count":.null,......."met
e7c0 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 adata":.{........."collapsed":.f
e7e0 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b alse.......},......."outputs":.[
e800 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 6d 61 ],......."source":.[........."ma
e820 70 70 69 6e 67 20 3d 20 6f 74 2e 64 61 2e 4c 69 6e 65 61 72 54 72 61 6e 73 70 6f 72 74 28 29 5c pping.=.ot.da.LinearTransport()\
e840 6e 5c 6e 6d 61 70 70 69 6e 67 2e 66 69 74 28 58 73 3d 58 31 2c 20 58 74 3d 58 32 29 5c 6e 5c 6e n\nmapping.fit(Xs=X1,.Xt=X2)\n\n
e860 5c 6e 78 73 74 20 3d 20 6d 61 70 70 69 6e 67 2e 74 72 61 6e 73 66 6f 72 6d 28 58 73 3d 58 31 29 \nxst.=.mapping.transform(Xs=X1)
e880 5c 6e 78 74 73 20 3d 20 6d 61 70 70 69 6e 67 2e 69 6e 76 65 72 73 65 5f 74 72 61 6e 73 66 6f 72 \nxts.=.mapping.inverse_transfor
e8a0 6d 28 58 74 3d 58 32 29 5c 6e 5c 6e 49 31 74 20 3d 20 6d 69 6e 6d 61 78 28 6d 61 74 32 69 6d 28 m(Xt=X2)\n\nI1t.=.minmax(mat2im(
e8c0 78 73 74 2c 20 49 31 2e 73 68 61 70 65 29 29 5c 6e 49 32 74 20 3d 20 6d 69 6e 6d 61 78 28 6d 61 xst,.I1.shape))\nI2t.=.minmax(ma
e8e0 74 32 69 6d 28 78 74 73 2c 20 49 32 2e 73 68 61 70 65 29 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 t2im(xts,.I2.shape))".......]...
e900 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d ..},.....{......."cell_type":."m
e920 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a arkdown",......."metadata":.{},.
e940 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 50 6c 6f 74 20 ......"source":.[........."Plot.
e960 74 72 61 6e 73 66 6f 72 6d 65 64 20 69 6d 61 67 65 73 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d transformed.images\n------------
e980 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a -----------\n\n".......].....},.
e9a0 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c ....{......."cell_type":."code",
e9c0 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a ......."execution_count":.null,.
e9e0 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c ......"metadata":.{........."col
ea00 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f lapsed":.false.......},......."o
ea20 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 utputs":.[],......."source":.[..
ea40 20 20 20 20 20 20 20 22 70 6c 2e 66 69 67 75 72 65 28 32 2c 20 66 69 67 73 69 7a 65 3d 28 31 30 ......."pl.figure(2,.figsize=(10
ea60 2c 20 37 29 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 32 2c 20 31 29 5c 6e 70 6c ,.7))\n\npl.subplot(2,.2,.1)\npl
ea80 2e 69 6d 73 68 6f 77 28 49 31 29 5c 6e 70 6c 2e 61 78 69 73 28 27 6f 66 66 27 29 5c 6e 70 6c 2e .imshow(I1)\npl.axis('off')\npl.
eaa0 74 69 74 6c 65 28 27 49 6d 2e 20 31 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 title('Im..1')\n\npl.subplot(2,.
eac0 32 2c 20 32 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 49 32 29 5c 6e 70 6c 2e 61 78 69 73 28 27 6f 2,.2)\npl.imshow(I2)\npl.axis('o
eae0 66 66 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 49 6d 2e 20 32 27 29 5c 6e 5c 6e 70 6c 2e 73 75 ff')\npl.title('Im..2')\n\npl.su
eb00 62 70 6c 6f 74 28 32 2c 20 32 2c 20 33 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 49 31 74 29 5c 6e bplot(2,.2,.3)\npl.imshow(I1t)\n
eb20 70 6c 2e 61 78 69 73 28 27 6f 66 66 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 4d 61 70 70 69 6e pl.axis('off')\npl.title('Mappin
eb40 67 20 49 6d 2e 20 31 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 32 2c 20 34 29 g.Im..1')\n\npl.subplot(2,.2,.4)
eb60 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 49 32 74 29 5c 6e 70 6c 2e 61 78 69 73 28 27 6f 66 66 27 29 \npl.imshow(I2t)\npl.axis('off')
eb80 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 49 6e 76 65 72 73 65 20 6d 61 70 70 69 6e 67 20 49 6d 2e 20 \npl.title('Inverse.mapping.Im..
eba0 32 27 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 0a 20 20 5d 2c 0a 20 20 22 6d 65 74 61 64 2')".......].....}...],..."metad
ebc0 61 74 61 22 3a 20 7b 0a 20 20 20 20 22 6b 65 72 6e 65 6c 73 70 65 63 22 3a 20 7b 0a 20 20 20 20 ata":.{....."kernelspec":.{.....
ebe0 20 20 22 64 69 73 70 6c 61 79 5f 6e 61 6d 65 22 3a 20 22 50 79 74 68 6f 6e 20 33 22 2c 0a 20 20 .."display_name":."Python.3",...
ec00 20 20 20 20 22 6c 61 6e 67 75 61 67 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 ...."language":."python",.......
ec20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 33 22 0a 20 20 20 20 7d 2c 0a 20 20 20 20 22 6c 61 "name":."python3".....},....."la
ec40 6e 67 75 61 67 65 5f 69 6e 66 6f 22 3a 20 7b 0a 20 20 20 20 20 20 22 63 6f 64 65 6d 69 72 72 6f nguage_info":.{......."codemirro
ec60 72 5f 6d 6f 64 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 69 70 79 74 r_mode":.{........."name":."ipyt
ec80 68 6f 6e 22 2c 0a 20 20 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 33 0a 20 20 20 20 20 hon",........."version":.3......
eca0 20 7d 2c 0a 20 20 20 20 20 20 22 66 69 6c 65 5f 65 78 74 65 6e 73 69 6f 6e 22 3a 20 22 2e 70 79 .},......."file_extension":.".py
ecc0 22 2c 0a 20 20 20 20 20 20 22 6d 69 6d 65 74 79 70 65 22 3a 20 22 74 65 78 74 2f 78 2d 70 79 74 ",......."mimetype":."text/x-pyt
ece0 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 hon",......."name":."python",...
ed00 20 20 20 20 22 6e 62 63 6f 6e 76 65 72 74 5f 65 78 70 6f 72 74 65 72 22 3a 20 22 70 79 74 68 6f ...."nbconvert_exporter":."pytho
ed20 6e 22 2c 0a 20 20 20 20 20 20 22 70 79 67 6d 65 6e 74 73 5f 6c 65 78 65 72 22 3a 20 22 69 70 79 n",......."pygments_lexer":."ipy
ed40 74 68 6f 6e 33 22 2c 0a 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 36 2e 39 22 thon3",......."version":."3.6.9"
ed60 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 22 3a 20 34 2c 0a 20 20 22 .....}...},..."nbformat":.4,..."
ed80 6e 62 66 6f 72 6d 61 74 5f 6d 69 6e 6f 72 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 70 75 nbformat_minor":.0.}PK........pu
eda0 94 50 01 f9 09 89 fe 15 00 00 fe 15 00 00 1c 00 00 00 70 6c 6f 74 5f 6f 74 64 61 5f 63 6f 6c 6f .P................plot_otda_colo
edc0 72 5f 69 6d 61 67 65 73 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 22 3a 20 5b 0a 20 20 20 r_images.ipynb{..."cells":.[....
ede0 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 .{......."cell_type":."code",...
ee00 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 ...."execution_count":.null,....
ee20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 ..."metadata":.{........."collap
ee40 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 sed":.false.......},......."outp
ee60 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 uts":.[],......."source":.[.....
ee80 20 20 20 20 22 25 6d 61 74 70 6c 6f 74 6c 69 62 20 69 6e 6c 69 6e 65 22 0a 20 20 20 20 20 20 5d ...."%matplotlib.inline".......]
eea0 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a .....},.....{......."cell_type":
eec0 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b ."markdown",......."metadata":.{
eee0 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e },......."source":.[........."\n
ef00 23 20 4f 54 20 66 6f 72 20 69 6d 61 67 65 20 63 6f 6c 6f 72 20 61 64 61 70 74 61 74 69 6f 6e 5c #.OT.for.image.color.adaptation\
ef20 6e 5c 6e 5c 6e 54 68 69 73 20 65 78 61 6d 70 6c 65 20 70 72 65 73 65 6e 74 73 20 61 20 77 61 79 n\n\nThis.example.presents.a.way
ef40 20 6f 66 20 74 72 61 6e 73 66 65 72 72 69 6e 67 20 63 6f 6c 6f 72 73 20 62 65 74 77 65 65 6e 20 .of.transferring.colors.between.
ef60 74 77 6f 20 69 6d 61 67 65 73 5c 6e 77 69 74 68 20 4f 70 74 69 6d 61 6c 20 54 72 61 6e 73 70 6f two.images\nwith.Optimal.Transpo
ef80 72 74 20 61 73 20 69 6e 74 72 6f 64 75 63 65 64 20 69 6e 20 5b 36 5d 5c 6e 5c 6e 5b 36 5d 20 46 rt.as.introduced.in.[6]\n\n[6].F
efa0 65 72 72 61 64 61 6e 73 2c 20 53 2e 2c 20 50 61 70 61 64 61 6b 69 73 2c 20 4e 2e 2c 20 50 65 79 erradans,.S.,.Papadakis,.N.,.Pey
efc0 72 65 2c 20 47 2e 2c 20 26 20 41 75 6a 6f 6c 2c 20 4a 2e 20 46 2e 20 28 32 30 31 34 29 2e 5c 6e re,.G.,.&.Aujol,.J..F..(2014).\n
efe0 52 65 67 75 6c 61 72 69 7a 65 64 20 64 69 73 63 72 65 74 65 20 6f 70 74 69 6d 61 6c 20 74 72 61 Regularized.discrete.optimal.tra
f000 6e 73 70 6f 72 74 2e 5c 6e 53 49 41 4d 20 4a 6f 75 72 6e 61 6c 20 6f 6e 20 49 6d 61 67 69 6e 67 nsport.\nSIAM.Journal.on.Imaging
f020 20 53 63 69 65 6e 63 65 73 2c 20 37 28 33 29 2c 20 31 38 35 33 2d 31 38 38 32 2e 5c 6e 5c 6e 22 .Sciences,.7(3),.1853-1882.\n\n"
f040 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c .......].....},.....{......."cel
f060 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f l_type":."code",......."executio
f080 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 n_count":.null,......."metadata"
f0a0 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 :.{........."collapsed":.false..
f0c0 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 .....},......."outputs":.[],....
f0e0 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 20 41 75 74 68 6f 72 ..."source":.[........."#.Author
f100 73 3a 20 52 65 6d 69 20 46 6c 61 6d 61 72 79 20 3c 72 65 6d 69 2e 66 6c 61 6d 61 72 79 40 75 6e s:.Remi.Flamary.<remi.flamary@un
f120 69 63 65 2e 66 72 3e 5c 6e 23 20 20 20 20 20 20 20 20 20 20 53 74 61 6e 69 73 6c 61 73 20 43 68 ice.fr>\n#..........Stanislas.Ch
f140 61 6d 62 6f 6e 20 3c 73 74 61 6e 2e 63 68 61 6d 62 6f 6e 40 67 6d 61 69 6c 2e 63 6f 6d 3e 5c 6e ambon.<stan.chambon@gmail.com>\n
f160 23 5c 6e 23 20 4c 69 63 65 6e 73 65 3a 20 4d 49 54 20 4c 69 63 65 6e 73 65 5c 6e 5c 6e 69 6d 70 #\n#.License:.MIT.License\n\nimp
f180 6f 72 74 20 6e 75 6d 70 79 20 61 73 20 6e 70 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c ort.numpy.as.np\nimport.matplotl
f1a0 69 62 2e 70 79 6c 61 62 20 61 73 20 70 6c 5c 6e 69 6d 70 6f 72 74 20 6f 74 5c 6e 5c 6e 5c 6e 72 ib.pylab.as.pl\nimport.ot\n\n\nr
f1c0 20 3d 20 6e 70 2e 72 61 6e 64 6f 6d 2e 52 61 6e 64 6f 6d 53 74 61 74 65 28 34 32 29 5c 6e 5c 6e .=.np.random.RandomState(42)\n\n
f1e0 5c 6e 64 65 66 20 69 6d 32 6d 61 74 28 49 29 3a 5c 6e 20 20 20 20 5c 22 5c 22 5c 22 43 6f 6e 76 \ndef.im2mat(I):\n....\"\"\"Conv
f200 65 72 74 73 20 61 6e 20 69 6d 61 67 65 20 74 6f 20 6d 61 74 72 69 78 20 28 6f 6e 65 20 70 69 78 erts.an.image.to.matrix.(one.pix
f220 65 6c 20 70 65 72 20 6c 69 6e 65 29 5c 22 5c 22 5c 22 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 49 el.per.line)\"\"\"\n....return.I
f240 2e 72 65 73 68 61 70 65 28 28 49 2e 73 68 61 70 65 5b 30 5d 20 2a 20 49 2e 73 68 61 70 65 5b 31 .reshape((I.shape[0].*.I.shape[1
f260 5d 2c 20 49 2e 73 68 61 70 65 5b 32 5d 29 29 5c 6e 5c 6e 5c 6e 64 65 66 20 6d 61 74 32 69 6d 28 ],.I.shape[2]))\n\n\ndef.mat2im(
f280 58 2c 20 73 68 61 70 65 29 3a 5c 6e 20 20 20 20 5c 22 5c 22 5c 22 43 6f 6e 76 65 72 74 73 20 62 X,.shape):\n....\"\"\"Converts.b
f2a0 61 63 6b 20 61 20 6d 61 74 72 69 78 20 74 6f 20 61 6e 20 69 6d 61 67 65 5c 22 5c 22 5c 22 5c 6e ack.a.matrix.to.an.image\"\"\"\n
f2c0 20 20 20 20 72 65 74 75 72 6e 20 58 2e 72 65 73 68 61 70 65 28 73 68 61 70 65 29 5c 6e 5c 6e 5c ....return.X.reshape(shape)\n\n\
f2e0 6e 64 65 66 20 6d 69 6e 6d 61 78 28 49 29 3a 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 6e 70 2e 63 ndef.minmax(I):\n....return.np.c
f300 6c 69 70 28 49 2c 20 30 2c 20 31 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 lip(I,.0,.1)".......].....},....
f320 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 .{......."cell_type":."markdown"
f340 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 ,......."metadata":.{},......."s
f360 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 47 65 6e 65 72 61 74 65 20 64 61 74 61 ource":.[........."Generate.data
f380 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 \n-------------\n\n".......]....
f3a0 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f .},.....{......."cell_type":."co
f3c0 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 de",......."execution_count":.nu
f3e0 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 ll,......."metadata":.{.........
f400 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 "collapsed":.false.......},.....
f420 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a .."outputs":.[],......."source":
f440 20 5b 0a 20 20 20 20 20 20 20 20 22 23 20 4c 6f 61 64 69 6e 67 20 69 6d 61 67 65 73 5c 6e 49 31 .[........."#.Loading.images\nI1
f460 20 3d 20 70 6c 2e 69 6d 72 65 61 64 28 27 2e 2e 2f 64 61 74 61 2f 6f 63 65 61 6e 5f 64 61 79 2e .=.pl.imread('../data/ocean_day.
f480 6a 70 67 27 29 2e 61 73 74 79 70 65 28 6e 70 2e 66 6c 6f 61 74 36 34 29 20 2f 20 32 35 36 5c 6e jpg').astype(np.float64)./.256\n
f4a0 49 32 20 3d 20 70 6c 2e 69 6d 72 65 61 64 28 27 2e 2e 2f 64 61 74 61 2f 6f 63 65 61 6e 5f 73 75 I2.=.pl.imread('../data/ocean_su
f4c0 6e 73 65 74 2e 6a 70 67 27 29 2e 61 73 74 79 70 65 28 6e 70 2e 66 6c 6f 61 74 36 34 29 20 2f 20 nset.jpg').astype(np.float64)./.
f4e0 32 35 36 5c 6e 5c 6e 58 31 20 3d 20 69 6d 32 6d 61 74 28 49 31 29 5c 6e 58 32 20 3d 20 69 6d 32 256\n\nX1.=.im2mat(I1)\nX2.=.im2
f500 6d 61 74 28 49 32 29 5c 6e 5c 6e 23 20 74 72 61 69 6e 69 6e 67 20 73 61 6d 70 6c 65 73 5c 6e 6e mat(I2)\n\n#.training.samples\nn
f520 62 20 3d 20 31 30 30 30 5c 6e 69 64 78 31 20 3d 20 72 2e 72 61 6e 64 69 6e 74 28 58 31 2e 73 68 b.=.1000\nidx1.=.r.randint(X1.sh
f540 61 70 65 5b 30 5d 2c 20 73 69 7a 65 3d 28 6e 62 2c 29 29 5c 6e 69 64 78 32 20 3d 20 72 2e 72 61 ape[0],.size=(nb,))\nidx2.=.r.ra
f560 6e 64 69 6e 74 28 58 32 2e 73 68 61 70 65 5b 30 5d 2c 20 73 69 7a 65 3d 28 6e 62 2c 29 29 5c 6e ndint(X2.shape[0],.size=(nb,))\n
f580 5c 6e 58 73 20 3d 20 58 31 5b 69 64 78 31 2c 20 3a 5d 5c 6e 58 74 20 3d 20 58 32 5b 69 64 78 32 \nXs.=.X1[idx1,.:]\nXt.=.X2[idx2
f5a0 2c 20 3a 5d 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 ,.:]".......].....},.....{......
f5c0 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 ."cell_type":."markdown",.......
f5e0 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 "metadata":.{},......."source":.
f600 5b 0a 20 20 20 20 20 20 20 20 22 50 6c 6f 74 20 6f 72 69 67 69 6e 61 6c 20 69 6d 61 67 65 5c 6e [........."Plot.original.image\n
f620 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d -------------------\n\n".......]
f640 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a .....},.....{......."cell_type":
f660 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 ."code",......."execution_count"
f680 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 :.null,......."metadata":.{.....
f6a0 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a ...."collapsed":.false.......},.
f6c0 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 ......"outputs":.[],......."sour
f6e0 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 70 6c 2e 66 69 67 75 72 65 28 31 2c 20 66 69 67 ce":.[........."pl.figure(1,.fig
f700 73 69 7a 65 3d 28 36 2e 34 2c 20 33 29 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 20 size=(6.4,.3))\n\npl.subplot(1,.
f720 32 2c 20 31 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 49 31 29 5c 6e 70 6c 2e 61 78 69 73 28 27 6f 2,.1)\npl.imshow(I1)\npl.axis('o
f740 66 66 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 49 6d 61 67 65 20 31 27 29 5c 6e 5c 6e 70 6c 2e ff')\npl.title('Image.1')\n\npl.
f760 73 75 62 70 6c 6f 74 28 31 2c 20 32 2c 20 32 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 49 32 29 5c subplot(1,.2,.2)\npl.imshow(I2)\
f780 6e 70 6c 2e 61 78 69 73 28 27 6f 66 66 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 49 6d 61 67 65 npl.axis('off')\npl.title('Image
f7a0 20 32 27 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 .2')".......].....},.....{......
f7c0 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 ."cell_type":."markdown",.......
f7e0 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 "metadata":.{},......."source":.
f800 5b 0a 20 20 20 20 20 20 20 20 22 53 63 61 74 74 65 72 20 70 6c 6f 74 20 6f 66 20 63 6f 6c 6f 72 [........."Scatter.plot.of.color
f820 73 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 s\n----------------------\n\n"..
f840 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f .....].....},.....{......."cell_
f860 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f type":."code",......."execution_
f880 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 count":.null,......."metadata":.
f8a0 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 {........."collapsed":.false....
f8c0 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 ...},......."outputs":.[],......
f8e0 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 70 6c 2e 66 69 67 75 72 65 28 ."source":.[........."pl.figure(
f900 32 2c 20 66 69 67 73 69 7a 65 3d 28 36 2e 34 2c 20 33 29 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 2,.figsize=(6.4,.3))\n\npl.subpl
f920 6f 74 28 31 2c 20 32 2c 20 31 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 58 73 5b 3a 2c 20 30 5d ot(1,.2,.1)\npl.scatter(Xs[:,.0]
f940 2c 20 58 73 5b 3a 2c 20 32 5d 2c 20 63 3d 58 73 29 5c 6e 70 6c 2e 61 78 69 73 28 5b 30 2c 20 31 ,.Xs[:,.2],.c=Xs)\npl.axis([0,.1
f960 2c 20 30 2c 20 31 5d 29 5c 6e 70 6c 2e 78 6c 61 62 65 6c 28 27 52 65 64 27 29 5c 6e 70 6c 2e 79 ,.0,.1])\npl.xlabel('Red')\npl.y
f980 6c 61 62 65 6c 28 27 42 6c 75 65 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 49 6d 61 67 65 20 31 label('Blue')\npl.title('Image.1
f9a0 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 20 32 2c 20 32 29 5c 6e 70 6c 2e 73 63 ')\n\npl.subplot(1,.2,.2)\npl.sc
f9c0 61 74 74 65 72 28 58 74 5b 3a 2c 20 30 5d 2c 20 58 74 5b 3a 2c 20 32 5d 2c 20 63 3d 58 74 29 5c atter(Xt[:,.0],.Xt[:,.2],.c=Xt)\
f9e0 6e 70 6c 2e 61 78 69 73 28 5b 30 2c 20 31 2c 20 30 2c 20 31 5d 29 5c 6e 70 6c 2e 78 6c 61 62 65 npl.axis([0,.1,.0,.1])\npl.xlabe
fa00 6c 28 27 52 65 64 27 29 5c 6e 70 6c 2e 79 6c 61 62 65 6c 28 27 42 6c 75 65 27 29 5c 6e 70 6c 2e l('Red')\npl.ylabel('Blue')\npl.
fa20 74 69 74 6c 65 28 27 49 6d 61 67 65 20 32 27 29 5c 6e 70 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 title('Image.2')\npl.tight_layou
fa40 74 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 t()".......].....},.....{.......
fa60 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 "cell_type":."markdown",......."
fa80 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b metadata":.{},......."source":.[
faa0 0a 20 20 20 20 20 20 20 20 22 49 6e 73 74 61 6e 74 69 61 74 65 20 74 68 65 20 64 69 66 66 65 72 ........."Instantiate.the.differ
fac0 65 6e 74 20 74 72 61 6e 73 70 6f 72 74 20 61 6c 67 6f 72 69 74 68 6d 73 20 61 6e 64 20 66 69 74 ent.transport.algorithms.and.fit
fae0 20 74 68 65 6d 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .them\n-------------------------
fb00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
fb20 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 --\n\n".......].....},.....{....
fb40 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 ..."cell_type":."code",......."e
fb60 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 xecution_count":.null,......."me
fb80 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 tadata":.{........."collapsed":.
fba0 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 false.......},......."outputs":.
fbc0 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 [],......."source":.[........."#
fbe0 20 45 4d 44 54 72 61 6e 73 70 6f 72 74 5c 6e 6f 74 5f 65 6d 64 20 3d 20 6f 74 2e 64 61 2e 45 4d .EMDTransport\not_emd.=.ot.da.EM
fc00 44 54 72 61 6e 73 70 6f 72 74 28 29 5c 6e 6f 74 5f 65 6d 64 2e 66 69 74 28 58 73 3d 58 73 2c 20 DTransport()\not_emd.fit(Xs=Xs,.
fc20 58 74 3d 58 74 29 5c 6e 5c 6e 23 20 53 69 6e 6b 68 6f 72 6e 54 72 61 6e 73 70 6f 72 74 5c 6e 6f Xt=Xt)\n\n#.SinkhornTransport\no
fc40 74 5f 73 69 6e 6b 68 6f 72 6e 20 3d 20 6f 74 2e 64 61 2e 53 69 6e 6b 68 6f 72 6e 54 72 61 6e 73 t_sinkhorn.=.ot.da.SinkhornTrans
fc60 70 6f 72 74 28 72 65 67 5f 65 3d 31 65 2d 31 29 5c 6e 6f 74 5f 73 69 6e 6b 68 6f 72 6e 2e 66 69 port(reg_e=1e-1)\not_sinkhorn.fi
fc80 74 28 58 73 3d 58 73 2c 20 58 74 3d 58 74 29 5c 6e 5c 6e 23 20 70 72 65 64 69 63 74 69 6f 6e 20 t(Xs=Xs,.Xt=Xt)\n\n#.prediction.
fca0 62 65 74 77 65 65 6e 20 69 6d 61 67 65 73 20 28 75 73 69 6e 67 20 6f 75 74 20 6f 66 20 73 61 6d between.images.(using.out.of.sam
fcc0 70 6c 65 20 70 72 65 64 69 63 74 69 6f 6e 20 61 73 20 69 6e 20 5b 36 5d 29 5c 6e 74 72 61 6e 73 ple.prediction.as.in.[6])\ntrans
fce0 70 5f 58 73 5f 65 6d 64 20 3d 20 6f 74 5f 65 6d 64 2e 74 72 61 6e 73 66 6f 72 6d 28 58 73 3d 58 p_Xs_emd.=.ot_emd.transform(Xs=X
fd00 31 29 5c 6e 74 72 61 6e 73 70 5f 58 74 5f 65 6d 64 20 3d 20 6f 74 5f 65 6d 64 2e 69 6e 76 65 72 1)\ntransp_Xt_emd.=.ot_emd.inver
fd20 73 65 5f 74 72 61 6e 73 66 6f 72 6d 28 58 74 3d 58 32 29 5c 6e 5c 6e 74 72 61 6e 73 70 5f 58 73 se_transform(Xt=X2)\n\ntransp_Xs
fd40 5f 73 69 6e 6b 68 6f 72 6e 20 3d 20 6f 74 5f 73 69 6e 6b 68 6f 72 6e 2e 74 72 61 6e 73 66 6f 72 _sinkhorn.=.ot_sinkhorn.transfor
fd60 6d 28 58 73 3d 58 31 29 5c 6e 74 72 61 6e 73 70 5f 58 74 5f 73 69 6e 6b 68 6f 72 6e 20 3d 20 6f m(Xs=X1)\ntransp_Xt_sinkhorn.=.o
fd80 74 5f 73 69 6e 6b 68 6f 72 6e 2e 69 6e 76 65 72 73 65 5f 74 72 61 6e 73 66 6f 72 6d 28 58 74 3d t_sinkhorn.inverse_transform(Xt=
fda0 58 32 29 5c 6e 5c 6e 49 31 74 20 3d 20 6d 69 6e 6d 61 78 28 6d 61 74 32 69 6d 28 74 72 61 6e 73 X2)\n\nI1t.=.minmax(mat2im(trans
fdc0 70 5f 58 73 5f 65 6d 64 2c 20 49 31 2e 73 68 61 70 65 29 29 5c 6e 49 32 74 20 3d 20 6d 69 6e 6d p_Xs_emd,.I1.shape))\nI2t.=.minm
fde0 61 78 28 6d 61 74 32 69 6d 28 74 72 61 6e 73 70 5f 58 74 5f 65 6d 64 2c 20 49 32 2e 73 68 61 70 ax(mat2im(transp_Xt_emd,.I2.shap
fe00 65 29 29 5c 6e 5c 6e 49 31 74 65 20 3d 20 6d 69 6e 6d 61 78 28 6d 61 74 32 69 6d 28 74 72 61 6e e))\n\nI1te.=.minmax(mat2im(tran
fe20 73 70 5f 58 73 5f 73 69 6e 6b 68 6f 72 6e 2c 20 49 31 2e 73 68 61 70 65 29 29 5c 6e 49 32 74 65 sp_Xs_sinkhorn,.I1.shape))\nI2te
fe40 20 3d 20 6d 69 6e 6d 61 78 28 6d 61 74 32 69 6d 28 74 72 61 6e 73 70 5f 58 74 5f 73 69 6e 6b 68 .=.minmax(mat2im(transp_Xt_sinkh
fe60 6f 72 6e 2c 20 49 32 2e 73 68 61 70 65 29 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a orn,.I2.shape))".......].....},.
fe80 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f ....{......."cell_type":."markdo
fea0 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 wn",......."metadata":.{},......
fec0 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 50 6c 6f 74 20 6e 65 77 20 69 ."source":.[........."Plot.new.i
fee0 6d 61 67 65 73 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 mages\n---------------\n\n".....
ff00 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 ..].....},.....{......."cell_typ
ff20 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 e":."code",......."execution_cou
ff40 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 nt":.null,......."metadata":.{..
ff60 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 ......."collapsed":.false.......
ff80 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 },......."outputs":.[],......."s
ffa0 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 70 6c 2e 66 69 67 75 72 65 28 33 2c 20 ource":.[........."pl.figure(3,.
ffc0 66 69 67 73 69 7a 65 3d 28 38 2c 20 34 29 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c figsize=(8,.4))\n\npl.subplot(2,
ffe0 20 33 2c 20 31 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 49 31 29 5c 6e 70 6c 2e 61 78 69 73 28 27 .3,.1)\npl.imshow(I1)\npl.axis('
10000 6f 66 66 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 49 6d 61 67 65 20 31 27 29 5c 6e 5c 6e 70 6c off')\npl.title('Image.1')\n\npl
10020 2e 73 75 62 70 6c 6f 74 28 32 2c 20 33 2c 20 32 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 49 31 74 .subplot(2,.3,.2)\npl.imshow(I1t
10040 29 5c 6e 70 6c 2e 61 78 69 73 28 27 6f 66 66 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 49 6d 61 )\npl.axis('off')\npl.title('Ima
10060 67 65 20 31 20 41 64 61 70 74 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 33 2c ge.1.Adapt')\n\npl.subplot(2,.3,
10080 20 33 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 49 31 74 65 29 5c 6e 70 6c 2e 61 78 69 73 28 27 6f .3)\npl.imshow(I1te)\npl.axis('o
100a0 66 66 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 49 6d 61 67 65 20 31 20 41 64 61 70 74 20 28 72 ff')\npl.title('Image.1.Adapt.(r
100c0 65 67 29 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 33 2c 20 34 29 5c 6e 70 6c eg)')\n\npl.subplot(2,.3,.4)\npl
100e0 2e 69 6d 73 68 6f 77 28 49 32 29 5c 6e 70 6c 2e 61 78 69 73 28 27 6f 66 66 27 29 5c 6e 70 6c 2e .imshow(I2)\npl.axis('off')\npl.
10100 74 69 74 6c 65 28 27 49 6d 61 67 65 20 32 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 title('Image.2')\n\npl.subplot(2
10120 2c 20 33 2c 20 35 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 49 32 74 29 5c 6e 70 6c 2e 61 78 69 73 ,.3,.5)\npl.imshow(I2t)\npl.axis
10140 28 27 6f 66 66 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 49 6d 61 67 65 20 32 20 41 64 61 70 74 ('off')\npl.title('Image.2.Adapt
10160 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 33 2c 20 36 29 5c 6e 70 6c 2e 69 6d ')\n\npl.subplot(2,.3,.6)\npl.im
10180 73 68 6f 77 28 49 32 74 65 29 5c 6e 70 6c 2e 61 78 69 73 28 27 6f 66 66 27 29 5c 6e 70 6c 2e 74 show(I2te)\npl.axis('off')\npl.t
101a0 69 74 6c 65 28 27 49 6d 61 67 65 20 32 20 41 64 61 70 74 20 28 72 65 67 29 27 29 5c 6e 70 6c 2e itle('Image.2.Adapt.(reg)')\npl.
101c0 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 5c 6e 5c 6e 70 6c 2e 73 68 6f 77 28 29 22 0a 20 20 20 tight_layout()\n\npl.show()"....
101e0 20 20 20 5d 0a 20 20 20 20 7d 0a 20 20 5d 2c 0a 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a ...].....}...],..."metadata":.{.
10200 20 20 20 20 22 6b 65 72 6e 65 6c 73 70 65 63 22 3a 20 7b 0a 20 20 20 20 20 20 22 64 69 73 70 6c ...."kernelspec":.{......."displ
10220 61 79 5f 6e 61 6d 65 22 3a 20 22 50 79 74 68 6f 6e 20 33 22 2c 0a 20 20 20 20 20 20 22 6c 61 6e ay_name":."Python.3",......."lan
10240 67 75 61 67 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 guage":."python",......."name":.
10260 22 70 79 74 68 6f 6e 33 22 0a 20 20 20 20 7d 2c 0a 20 20 20 20 22 6c 61 6e 67 75 61 67 65 5f 69 "python3".....},....."language_i
10280 6e 66 6f 22 3a 20 7b 0a 20 20 20 20 20 20 22 63 6f 64 65 6d 69 72 72 6f 72 5f 6d 6f 64 65 22 3a nfo":.{......."codemirror_mode":
102a0 20 7b 0a 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 69 70 79 74 68 6f 6e 22 2c 0a 20 20 .{........."name":."ipython",...
102c0 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 33 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 ......"version":.3.......},.....
102e0 20 20 22 66 69 6c 65 5f 65 78 74 65 6e 73 69 6f 6e 22 3a 20 22 2e 70 79 22 2c 0a 20 20 20 20 20 .."file_extension":.".py",......
10300 20 22 6d 69 6d 65 74 79 70 65 22 3a 20 22 74 65 78 74 2f 78 2d 70 79 74 68 6f 6e 22 2c 0a 20 20 ."mimetype":."text/x-python",...
10320 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 62 63 ...."name":."python",......."nbc
10340 6f 6e 76 65 72 74 5f 65 78 70 6f 72 74 65 72 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 onvert_exporter":."python",.....
10360 20 20 22 70 79 67 6d 65 6e 74 73 5f 6c 65 78 65 72 22 3a 20 22 69 70 79 74 68 6f 6e 33 22 2c 0a .."pygments_lexer":."ipython3",.
10380 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 36 2e 39 22 0a 20 20 20 20 7d 0a 20 ......"version":."3.6.9".....}..
103a0 20 7d 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 22 3a 20 34 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 .},..."nbformat":.4,..."nbformat
103c0 5f 6d 69 6e 6f 72 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 b8 72 94 50 30 5b ac 70 e5 0e _minor":.0.}PK.........r.P0[.p..
103e0 00 00 e5 0e 00 00 23 00 00 00 70 6c 6f 74 5f 63 6f 6e 76 6f 6c 75 74 69 6f 6e 61 6c 5f 62 61 72 ......#...plot_convolutional_bar
10400 79 63 65 6e 74 65 72 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 22 3a 20 5b 0a 20 20 20 20 ycenter.ipynb{..."cells":.[.....
10420 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 {......."cell_type":."code",....
10440 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 ..."execution_count":.null,.....
10460 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 .."metadata":.{........."collaps
10480 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 ed":.false.......},......."outpu
104a0 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 ts":.[],......."source":.[......
104c0 20 20 20 22 25 6d 61 74 70 6c 6f 74 6c 69 62 20 69 6e 6c 69 6e 65 22 0a 20 20 20 20 20 20 5d 0a ..."%matplotlib.inline".......].
104e0 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 ....},.....{......."cell_type":.
10500 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d "markdown",......."metadata":.{}
10520 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 ,......."source":.[........."\n#
10540 20 43 6f 6e 76 6f 6c 75 74 69 6f 6e 61 6c 20 57 61 73 73 65 72 73 74 65 69 6e 20 42 61 72 79 63 .Convolutional.Wasserstein.Baryc
10560 65 6e 74 65 72 20 65 78 61 6d 70 6c 65 5c 6e 5c 6e 5c 6e 54 68 69 73 20 65 78 61 6d 70 6c 65 20 enter.example\n\n\nThis.example.
10580 69 73 20 64 65 73 69 67 6e 65 64 20 74 6f 20 69 6c 6c 75 73 74 72 61 74 65 20 68 6f 77 20 74 68 is.designed.to.illustrate.how.th
105a0 65 20 43 6f 6e 76 6f 6c 75 74 69 6f 6e 61 6c 20 57 61 73 73 65 72 73 74 65 69 6e 20 42 61 72 79 e.Convolutional.Wasserstein.Bary
105c0 63 65 6e 74 65 72 5c 6e 66 75 6e 63 74 69 6f 6e 20 6f 66 20 50 4f 54 20 77 6f 72 6b 73 2e 5c 6e center\nfunction.of.POT.works.\n
105e0 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 \n".......].....},.....{......."
10600 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 cell_type":."code",......."execu
10620 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 tion_count":.null,......."metada
10640 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 ta":.{........."collapsed":.fals
10660 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a e.......},......."outputs":.[],.
10680 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 20 41 75 74 ......"source":.[........."#.Aut
106a0 68 6f 72 3a 20 4e 69 63 6f 6c 61 73 20 43 6f 75 72 74 79 20 3c 6e 63 6f 75 72 74 79 40 69 72 69 hor:.Nicolas.Courty.<ncourty@iri
106c0 73 61 2e 66 72 3e 5c 6e 23 5c 6e 23 20 4c 69 63 65 6e 73 65 3a 20 4d 49 54 20 4c 69 63 65 6e 73 sa.fr>\n#\n#.License:.MIT.Licens
106e0 65 5c 6e 5c 6e 5c 6e 69 6d 70 6f 72 74 20 6e 75 6d 70 79 20 61 73 20 6e 70 5c 6e 69 6d 70 6f 72 e\n\n\nimport.numpy.as.np\nimpor
10700 74 20 70 79 6c 61 62 20 61 73 20 70 6c 5c 6e 69 6d 70 6f 72 74 20 6f 74 22 0a 20 20 20 20 20 20 t.pylab.as.pl\nimport.ot".......
10720 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 ].....},.....{......."cell_type"
10740 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 :."markdown",......."metadata":.
10760 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 44 {},......."source":.[........."D
10780 61 74 61 20 70 72 65 70 61 72 61 74 69 6f 6e 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ata.preparation\n---------------
107a0 2d 5c 6e 5c 6e 54 68 65 20 66 6f 75 72 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 20 61 72 65 20 -\n\nThe.four.distributions.are.
107c0 63 6f 6e 73 74 72 75 63 74 65 64 20 66 72 6f 6d 20 34 20 73 69 6d 70 6c 65 20 69 6d 61 67 65 73 constructed.from.4.simple.images
107e0 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 \n\n".......].....},.....{......
10800 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 ."cell_type":."code",......."exe
10820 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 cution_count":.null,......."meta
10840 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 data":.{........."collapsed":.fa
10860 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d lse.......},......."outputs":.[]
10880 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 66 31 20 ,......."source":.[........."f1.
108a0 3d 20 31 20 2d 20 70 6c 2e 69 6d 72 65 61 64 28 27 2e 2e 2f 64 61 74 61 2f 72 65 64 63 72 6f 73 =.1.-.pl.imread('../data/redcros
108c0 73 2e 70 6e 67 27 29 5b 3a 2c 20 3a 2c 20 32 5d 5c 6e 66 32 20 3d 20 31 20 2d 20 70 6c 2e 69 6d s.png')[:,.:,.2]\nf2.=.1.-.pl.im
108e0 72 65 61 64 28 27 2e 2e 2f 64 61 74 61 2f 64 75 63 6b 2e 70 6e 67 27 29 5b 3a 2c 20 3a 2c 20 32 read('../data/duck.png')[:,.:,.2
10900 5d 5c 6e 66 33 20 3d 20 31 20 2d 20 70 6c 2e 69 6d 72 65 61 64 28 27 2e 2e 2f 64 61 74 61 2f 68 ]\nf3.=.1.-.pl.imread('../data/h
10920 65 61 72 74 2e 70 6e 67 27 29 5b 3a 2c 20 3a 2c 20 32 5d 5c 6e 66 34 20 3d 20 31 20 2d 20 70 6c eart.png')[:,.:,.2]\nf4.=.1.-.pl
10940 2e 69 6d 72 65 61 64 28 27 2e 2e 2f 64 61 74 61 2f 74 6f 6f 74 68 2e 70 6e 67 27 29 5b 3a 2c 20 .imread('../data/tooth.png')[:,.
10960 3a 2c 20 32 5d 5c 6e 5c 6e 41 20 3d 20 5b 5d 5c 6e 66 31 20 3d 20 66 31 20 2f 20 6e 70 2e 73 75 :,.2]\n\nA.=.[]\nf1.=.f1./.np.su
10980 6d 28 66 31 29 5c 6e 66 32 20 3d 20 66 32 20 2f 20 6e 70 2e 73 75 6d 28 66 32 29 5c 6e 66 33 20 m(f1)\nf2.=.f2./.np.sum(f2)\nf3.
109a0 3d 20 66 33 20 2f 20 6e 70 2e 73 75 6d 28 66 33 29 5c 6e 66 34 20 3d 20 66 34 20 2f 20 6e 70 2e =.f3./.np.sum(f3)\nf4.=.f4./.np.
109c0 73 75 6d 28 66 34 29 5c 6e 41 2e 61 70 70 65 6e 64 28 66 31 29 5c 6e 41 2e 61 70 70 65 6e 64 28 sum(f4)\nA.append(f1)\nA.append(
109e0 66 32 29 5c 6e 41 2e 61 70 70 65 6e 64 28 66 33 29 5c 6e 41 2e 61 70 70 65 6e 64 28 66 34 29 5c f2)\nA.append(f3)\nA.append(f4)\
10a00 6e 41 20 3d 20 6e 70 2e 61 72 72 61 79 28 41 29 5c 6e 5c 6e 6e 62 5f 69 6d 61 67 65 73 20 3d 20 nA.=.np.array(A)\n\nnb_images.=.
10a20 35 5c 6e 5c 6e 23 20 74 68 6f 73 65 20 61 72 65 20 74 68 65 20 66 6f 75 72 20 63 6f 72 6e 65 72 5\n\n#.those.are.the.four.corner
10a40 73 20 63 6f 6f 72 64 69 6e 61 74 65 73 20 74 68 61 74 20 77 69 6c 6c 20 62 65 20 69 6e 74 65 72 s.coordinates.that.will.be.inter
10a60 70 6f 6c 61 74 65 64 20 62 79 20 62 69 6c 69 6e 65 61 72 5c 6e 23 20 69 6e 74 65 72 70 6f 6c 61 polated.by.bilinear\n#.interpola
10a80 74 69 6f 6e 5c 6e 76 31 20 3d 20 6e 70 2e 61 72 72 61 79 28 28 31 2c 20 30 2c 20 30 2c 20 30 29 tion\nv1.=.np.array((1,.0,.0,.0)
10aa0 29 5c 6e 76 32 20 3d 20 6e 70 2e 61 72 72 61 79 28 28 30 2c 20 31 2c 20 30 2c 20 30 29 29 5c 6e )\nv2.=.np.array((0,.1,.0,.0))\n
10ac0 76 33 20 3d 20 6e 70 2e 61 72 72 61 79 28 28 30 2c 20 30 2c 20 31 2c 20 30 29 29 5c 6e 76 34 20 v3.=.np.array((0,.0,.1,.0))\nv4.
10ae0 3d 20 6e 70 2e 61 72 72 61 79 28 28 30 2c 20 30 2c 20 30 2c 20 31 29 29 22 0a 20 20 20 20 20 20 =.np.array((0,.0,.0,.1))".......
10b00 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 ].....},.....{......."cell_type"
10b20 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 :."markdown",......."metadata":.
10b40 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 42 {},......."source":.[........."B
10b60 61 72 79 63 65 6e 74 65 72 20 63 6f 6d 70 75 74 61 74 69 6f 6e 20 61 6e 64 20 76 69 73 75 61 6c arycenter.computation.and.visual
10b80 69 7a 61 74 69 6f 6e 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ization\n-----------------------
10ba0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d -----------------\n\n\n".......]
10bc0 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a .....},.....{......."cell_type":
10be0 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 ."code",......."execution_count"
10c00 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 :.null,......."metadata":.{.....
10c20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a ...."collapsed":.false.......},.
10c40 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 ......"outputs":.[],......."sour
10c60 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 70 6c 2e 66 69 67 75 72 65 28 66 69 67 73 69 7a ce":.[........."pl.figure(figsiz
10c80 65 3d 28 31 30 2c 20 31 30 29 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 43 6f 6e 76 6f 6c 75 74 69 e=(10,.10))\npl.title('Convoluti
10ca0 6f 6e 61 6c 20 57 61 73 73 65 72 73 74 65 69 6e 20 42 61 72 79 63 65 6e 74 65 72 73 20 69 6e 20 onal.Wasserstein.Barycenters.in.
10cc0 50 4f 54 27 29 5c 6e 63 6d 20 3d 20 27 42 6c 75 65 73 27 5c 6e 23 20 72 65 67 75 6c 61 72 69 7a POT')\ncm.=.'Blues'\n#.regulariz
10ce0 61 74 69 6f 6e 20 70 61 72 61 6d 65 74 65 72 5c 6e 72 65 67 20 3d 20 30 2e 30 30 34 5c 6e 66 6f ation.parameter\nreg.=.0.004\nfo
10d00 72 20 69 20 69 6e 20 72 61 6e 67 65 28 6e 62 5f 69 6d 61 67 65 73 29 3a 5c 6e 20 20 20 20 66 6f r.i.in.range(nb_images):\n....fo
10d20 72 20 6a 20 69 6e 20 72 61 6e 67 65 28 6e 62 5f 69 6d 61 67 65 73 29 3a 5c 6e 20 20 20 20 20 20 r.j.in.range(nb_images):\n......
10d40 20 20 70 6c 2e 73 75 62 70 6c 6f 74 28 6e 62 5f 69 6d 61 67 65 73 2c 20 6e 62 5f 69 6d 61 67 65 ..pl.subplot(nb_images,.nb_image
10d60 73 2c 20 69 20 2a 20 6e 62 5f 69 6d 61 67 65 73 20 2b 20 6a 20 2b 20 31 29 5c 6e 20 20 20 20 20 s,.i.*.nb_images.+.j.+.1)\n.....
10d80 20 20 20 74 78 20 3d 20 66 6c 6f 61 74 28 69 29 20 2f 20 28 6e 62 5f 69 6d 61 67 65 73 20 2d 20 ...tx.=.float(i)./.(nb_images.-.
10da0 31 29 5c 6e 20 20 20 20 20 20 20 20 74 79 20 3d 20 66 6c 6f 61 74 28 6a 29 20 2f 20 28 6e 62 5f 1)\n........ty.=.float(j)./.(nb_
10dc0 69 6d 61 67 65 73 20 2d 20 31 29 5c 6e 5c 6e 20 20 20 20 20 20 20 20 23 20 77 65 69 67 68 74 73 images.-.1)\n\n........#.weights
10de0 20 61 72 65 20 63 6f 6e 73 74 72 75 63 74 65 64 20 62 79 20 62 69 6c 69 6e 65 61 72 20 69 6e 74 .are.constructed.by.bilinear.int
10e00 65 72 70 6f 6c 61 74 69 6f 6e 5c 6e 20 20 20 20 20 20 20 20 74 6d 70 31 20 3d 20 28 31 20 2d 20 erpolation\n........tmp1.=.(1.-.
10e20 74 78 29 20 2a 20 76 31 20 2b 20 74 78 20 2a 20 76 32 5c 6e 20 20 20 20 20 20 20 20 74 6d 70 32 tx).*.v1.+.tx.*.v2\n........tmp2
10e40 20 3d 20 28 31 20 2d 20 74 78 29 20 2a 20 76 33 20 2b 20 74 78 20 2a 20 76 34 5c 6e 20 20 20 20 .=.(1.-.tx).*.v3.+.tx.*.v4\n....
10e60 20 20 20 20 77 65 69 67 68 74 73 20 3d 20 28 31 20 2d 20 74 79 29 20 2a 20 74 6d 70 31 20 2b 20 ....weights.=.(1.-.ty).*.tmp1.+.
10e80 74 79 20 2a 20 74 6d 70 32 5c 6e 5c 6e 20 20 20 20 20 20 20 20 69 66 20 69 20 3d 3d 20 30 20 61 ty.*.tmp2\n\n........if.i.==.0.a
10ea0 6e 64 20 6a 20 3d 3d 20 30 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 70 6c 2e 69 6d 73 68 6f nd.j.==.0:\n............pl.imsho
10ec0 77 28 66 31 2c 20 63 6d 61 70 3d 63 6d 29 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 70 6c 2e 61 w(f1,.cmap=cm)\n............pl.a
10ee0 78 69 73 28 27 6f 66 66 27 29 5c 6e 20 20 20 20 20 20 20 20 65 6c 69 66 20 69 20 3d 3d 20 30 20 xis('off')\n........elif.i.==.0.
10f00 61 6e 64 20 6a 20 3d 3d 20 28 6e 62 5f 69 6d 61 67 65 73 20 2d 20 31 29 3a 5c 6e 20 20 20 20 20 and.j.==.(nb_images.-.1):\n.....
10f20 20 20 20 20 20 20 20 70 6c 2e 69 6d 73 68 6f 77 28 66 33 2c 20 63 6d 61 70 3d 63 6d 29 5c 6e 20 .......pl.imshow(f3,.cmap=cm)\n.
10f40 20 20 20 20 20 20 20 20 20 20 20 70 6c 2e 61 78 69 73 28 27 6f 66 66 27 29 5c 6e 20 20 20 20 20 ...........pl.axis('off')\n.....
10f60 20 20 20 65 6c 69 66 20 69 20 3d 3d 20 28 6e 62 5f 69 6d 61 67 65 73 20 2d 20 31 29 20 61 6e 64 ...elif.i.==.(nb_images.-.1).and
10f80 20 6a 20 3d 3d 20 30 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 70 6c 2e 69 6d 73 68 6f 77 28 .j.==.0:\n............pl.imshow(
10fa0 66 32 2c 20 63 6d 61 70 3d 63 6d 29 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 70 6c 2e 61 78 69 f2,.cmap=cm)\n............pl.axi
10fc0 73 28 27 6f 66 66 27 29 5c 6e 20 20 20 20 20 20 20 20 65 6c 69 66 20 69 20 3d 3d 20 28 6e 62 5f s('off')\n........elif.i.==.(nb_
10fe0 69 6d 61 67 65 73 20 2d 20 31 29 20 61 6e 64 20 6a 20 3d 3d 20 28 6e 62 5f 69 6d 61 67 65 73 20 images.-.1).and.j.==.(nb_images.
11000 2d 20 31 29 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 70 6c 2e 69 6d 73 68 6f 77 28 66 34 2c -.1):\n............pl.imshow(f4,
11020 20 63 6d 61 70 3d 63 6d 29 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 70 6c 2e 61 78 69 73 28 27 .cmap=cm)\n............pl.axis('
11040 6f 66 66 27 29 5c 6e 20 20 20 20 20 20 20 20 65 6c 73 65 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 off')\n........else:\n..........
11060 20 20 23 20 63 61 6c 6c 20 74 6f 20 62 61 72 79 63 65 6e 74 65 72 20 63 6f 6d 70 75 74 61 74 69 ..#.call.to.barycenter.computati
11080 6f 6e 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 70 6c 2e 69 6d 73 68 6f 77 28 6f 74 2e 62 72 65 on\n............pl.imshow(ot.bre
110a0 67 6d 61 6e 2e 63 6f 6e 76 6f 6c 75 74 69 6f 6e 61 6c 5f 62 61 72 79 63 65 6e 74 65 72 32 64 28 gman.convolutional_barycenter2d(
110c0 41 2c 20 72 65 67 2c 20 77 65 69 67 68 74 73 29 2c 20 63 6d 61 70 3d 63 6d 29 5c 6e 20 20 20 20 A,.reg,.weights),.cmap=cm)\n....
110e0 20 20 20 20 20 20 20 20 70 6c 2e 61 78 69 73 28 27 6f 66 66 27 29 5c 6e 70 6c 2e 73 68 6f 77 28 ........pl.axis('off')\npl.show(
11100 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 0a 20 20 5d 2c 0a 20 20 22 6d 65 74 61 64 61 74 )".......].....}...],..."metadat
11120 61 22 3a 20 7b 0a 20 20 20 20 22 6b 65 72 6e 65 6c 73 70 65 63 22 3a 20 7b 0a 20 20 20 20 20 20 a":.{....."kernelspec":.{.......
11140 22 64 69 73 70 6c 61 79 5f 6e 61 6d 65 22 3a 20 22 50 79 74 68 6f 6e 20 33 22 2c 0a 20 20 20 20 "display_name":."Python.3",.....
11160 20 20 22 6c 61 6e 67 75 61 67 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e .."language":."python",......."n
11180 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 33 22 0a 20 20 20 20 7d 2c 0a 20 20 20 20 22 6c 61 6e 67 ame":."python3".....},....."lang
111a0 75 61 67 65 5f 69 6e 66 6f 22 3a 20 7b 0a 20 20 20 20 20 20 22 63 6f 64 65 6d 69 72 72 6f 72 5f uage_info":.{......."codemirror_
111c0 6d 6f 64 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 69 70 79 74 68 6f mode":.{........."name":."ipytho
111e0 6e 22 2c 0a 20 20 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 33 0a 20 20 20 20 20 20 7d n",........."version":.3.......}
11200 2c 0a 20 20 20 20 20 20 22 66 69 6c 65 5f 65 78 74 65 6e 73 69 6f 6e 22 3a 20 22 2e 70 79 22 2c ,......."file_extension":.".py",
11220 0a 20 20 20 20 20 20 22 6d 69 6d 65 74 79 70 65 22 3a 20 22 74 65 78 74 2f 78 2d 70 79 74 68 6f ......."mimetype":."text/x-pytho
11240 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 n",......."name":."python",.....
11260 20 20 22 6e 62 63 6f 6e 76 65 72 74 5f 65 78 70 6f 72 74 65 72 22 3a 20 22 70 79 74 68 6f 6e 22 .."nbconvert_exporter":."python"
11280 2c 0a 20 20 20 20 20 20 22 70 79 67 6d 65 6e 74 73 5f 6c 65 78 65 72 22 3a 20 22 69 70 79 74 68 ,......."pygments_lexer":."ipyth
112a0 6f 6e 33 22 2c 0a 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 36 2e 39 22 0a 20 on3",......."version":."3.6.9"..
112c0 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 22 3a 20 34 2c 0a 20 20 22 6e 62 ...}...},..."nbformat":.4,..."nb
112e0 66 6f 72 6d 61 74 5f 6d 69 6e 6f 72 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 a5 72 94 50 format_minor":.0.}PK.........r.P
11300 fa c1 0f 3c 4d 11 00 00 4d 11 00 00 17 00 00 00 70 6c 6f 74 5f 4f 54 5f 31 44 5f 73 6d 6f 6f 74 ...<M...M.......plot_OT_1D_smoot
11320 68 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 22 3a 20 5b 0a 20 20 20 20 7b 0a 20 20 20 20 h.ipynb{..."cells":.[.....{.....
11340 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 .."cell_type":."code",......."ex
11360 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 ecution_count":.null,......."met
11380 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 adata":.{........."collapsed":.f
113a0 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b alse.......},......."outputs":.[
113c0 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 25 6d ],......."source":.[........."%m
113e0 61 74 70 6c 6f 74 6c 69 62 20 69 6e 6c 69 6e 65 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c atplotlib.inline".......].....},
11400 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 .....{......."cell_type":."markd
11420 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 own",......."metadata":.{},.....
11440 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 31 44 20 73 6d .."source":.[........."\n#.1D.sm
11460 6f 6f 74 68 20 6f 70 74 69 6d 61 6c 20 74 72 61 6e 73 70 6f 72 74 5c 6e 5c 6e 5c 6e 54 68 69 73 ooth.optimal.transport\n\n\nThis
11480 20 65 78 61 6d 70 6c 65 20 69 6c 6c 75 73 74 72 61 74 65 73 20 74 68 65 20 63 6f 6d 70 75 74 61 .example.illustrates.the.computa
114a0 74 69 6f 6e 20 6f 66 20 45 4d 44 2c 20 53 69 6e 6b 68 6f 72 6e 20 61 6e 64 20 73 6d 6f 6f 74 68 tion.of.EMD,.Sinkhorn.and.smooth
114c0 20 4f 54 20 70 6c 61 6e 73 5c 6e 61 6e 64 20 74 68 65 69 72 20 76 69 73 75 61 6c 69 7a 61 74 69 .OT.plans\nand.their.visualizati
114e0 6f 6e 2e 5c 6e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a on.\n\n\n".......].....},.....{.
11500 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 ......"cell_type":."code",......
11520 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 ."execution_count":.null,.......
11540 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 "metadata":.{........."collapsed
11560 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 ":.false.......},......."outputs
11580 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 ":.[],......."source":.[........
115a0 20 22 23 20 41 75 74 68 6f 72 3a 20 52 65 6d 69 20 46 6c 61 6d 61 72 79 20 3c 72 65 6d 69 2e 66 ."#.Author:.Remi.Flamary.<remi.f
115c0 6c 61 6d 61 72 79 40 75 6e 69 63 65 2e 66 72 3e 5c 6e 23 5c 6e 23 20 4c 69 63 65 6e 73 65 3a 20 lamary@unice.fr>\n#\n#.License:.
115e0 4d 49 54 20 4c 69 63 65 6e 73 65 5c 6e 5c 6e 69 6d 70 6f 72 74 20 6e 75 6d 70 79 20 61 73 20 6e MIT.License\n\nimport.numpy.as.n
11600 70 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 6c 61 62 20 61 73 20 70 6c p\nimport.matplotlib.pylab.as.pl
11620 5c 6e 69 6d 70 6f 72 74 20 6f 74 5c 6e 69 6d 70 6f 72 74 20 6f 74 2e 70 6c 6f 74 5c 6e 66 72 6f \nimport.ot\nimport.ot.plot\nfro
11640 6d 20 6f 74 2e 64 61 74 61 73 65 74 73 20 69 6d 70 6f 72 74 20 6d 61 6b 65 5f 31 44 5f 67 61 75 m.ot.datasets.import.make_1D_gau
11660 73 73 20 61 73 20 67 61 75 73 73 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 ss.as.gauss".......].....},.....
11680 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c {......."cell_type":."markdown",
116a0 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f ......."metadata":.{},......."so
116c0 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 47 65 6e 65 72 61 74 65 20 64 61 74 61 5c urce":.[........."Generate.data\
116e0 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 n-------------\n\n".......].....
11700 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 },.....{......."cell_type":."cod
11720 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c e",......."execution_count":.nul
11740 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 l,......."metadata":.{........."
11760 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 collapsed":.false.......},......
11780 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 ."outputs":.[],......."source":.
117a0 5b 0a 20 20 20 20 20 20 20 20 22 6e 20 3d 20 31 30 30 20 20 23 20 6e 62 20 62 69 6e 73 5c 6e 5c [........."n.=.100..#.nb.bins\n\
117c0 6e 23 20 62 69 6e 20 70 6f 73 69 74 69 6f 6e 73 5c 6e 78 20 3d 20 6e 70 2e 61 72 61 6e 67 65 28 n#.bin.positions\nx.=.np.arange(
117e0 6e 2c 20 64 74 79 70 65 3d 6e 70 2e 66 6c 6f 61 74 36 34 29 5c 6e 5c 6e 23 20 47 61 75 73 73 69 n,.dtype=np.float64)\n\n#.Gaussi
11800 61 6e 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 5c 6e 61 20 3d 20 67 61 75 73 73 28 6e 2c 20 6d an.distributions\na.=.gauss(n,.m
11820 3d 32 30 2c 20 73 3d 35 29 20 20 23 20 6d 3d 20 6d 65 61 6e 2c 20 73 3d 20 73 74 64 5c 6e 62 20 =20,.s=5)..#.m=.mean,.s=.std\nb.
11840 3d 20 67 61 75 73 73 28 6e 2c 20 6d 3d 36 30 2c 20 73 3d 31 30 29 5c 6e 5c 6e 23 20 6c 6f 73 73 =.gauss(n,.m=60,.s=10)\n\n#.loss
11860 20 6d 61 74 72 69 78 5c 6e 4d 20 3d 20 6f 74 2e 64 69 73 74 28 78 2e 72 65 73 68 61 70 65 28 28 .matrix\nM.=.ot.dist(x.reshape((
11880 6e 2c 20 31 29 29 2c 20 78 2e 72 65 73 68 61 70 65 28 28 6e 2c 20 31 29 29 29 5c 6e 4d 20 2f 3d n,.1)),.x.reshape((n,.1)))\nM./=
118a0 20 4d 2e 6d 61 78 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 .M.max()".......].....},.....{..
118c0 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 ....."cell_type":."markdown",...
118e0 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 ...."metadata":.{},......."sourc
11900 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 50 6c 6f 74 20 64 69 73 74 72 69 62 75 74 69 6f 6e e":.[........."Plot.distribution
11920 73 20 61 6e 64 20 6c 6f 73 73 20 6d 61 74 72 69 78 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d s.and.loss.matrix\n-------------
11940 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 ---------------------\n\n"......
11960 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 .].....},.....{......."cell_type
11980 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e ":."code",......."execution_coun
119a0 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 t":.null,......."metadata":.{...
119c0 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d ......"collapsed":.false.......}
119e0 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f ,......."outputs":.[],......."so
11a00 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 70 6c 2e 66 69 67 75 72 65 28 31 2c 20 66 urce":.[........."pl.figure(1,.f
11a20 69 67 73 69 7a 65 3d 28 36 2e 34 2c 20 33 29 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 2c 20 61 2c 20 igsize=(6.4,.3))\npl.plot(x,.a,.
11a40 27 62 27 2c 20 6c 61 62 65 6c 3d 27 53 6f 75 72 63 65 20 64 69 73 74 72 69 62 75 74 69 6f 6e 27 'b',.label='Source.distribution'
11a60 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 2c 20 62 2c 20 27 72 27 2c 20 6c 61 62 65 6c 3d 27 54 61 72 )\npl.plot(x,.b,.'r',.label='Tar
11a80 67 65 74 20 64 69 73 74 72 69 62 75 74 69 6f 6e 27 29 5c 6e 70 6c 2e 6c 65 67 65 6e 64 28 29 22 get.distribution')\npl.legend()"
11aa0 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c .......].....},.....{......."cel
11ac0 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f l_type":."code",......."executio
11ae0 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 n_count":.null,......."metadata"
11b00 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 :.{........."collapsed":.false..
11b20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 .....},......."outputs":.[],....
11b40 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 70 6c 2e 66 69 67 75 72 ..."source":.[........."pl.figur
11b60 65 28 32 2c 20 66 69 67 73 69 7a 65 3d 28 35 2c 20 35 29 29 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 6c e(2,.figsize=(5,.5))\not.plot.pl
11b80 6f 74 31 44 5f 6d 61 74 28 61 2c 20 62 2c 20 4d 2c 20 27 43 6f 73 74 20 6d 61 74 72 69 78 20 4d ot1D_mat(a,.b,.M,.'Cost.matrix.M
11ba0 27 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 ')".......].....},.....{......."
11bc0 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d cell_type":."markdown",......."m
11be0 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a etadata":.{},......."source":.[.
11c00 20 20 20 20 20 20 20 20 22 53 6f 6c 76 65 20 45 4d 44 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c ........"Solve.EMD\n---------\n\
11c20 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 n".......].....},.....{......."c
11c40 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 ell_type":."code",......."execut
11c60 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 ion_count":.null,......."metadat
11c80 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 a":.{........."collapsed":.false
11ca0 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 .......},......."outputs":.[],..
11cc0 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 47 30 20 3d 20 6f ....."source":.[........."G0.=.o
11ce0 74 2e 65 6d 64 28 61 2c 20 62 2c 20 4d 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 33 2c 20 66 t.emd(a,.b,.M)\n\npl.figure(3,.f
11d00 69 67 73 69 7a 65 3d 28 35 2c 20 35 29 29 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 31 44 5f 6d igsize=(5,.5))\not.plot.plot1D_m
11d20 61 74 28 61 2c 20 62 2c 20 47 30 2c 20 27 4f 54 20 6d 61 74 72 69 78 20 47 30 27 29 22 0a 20 20 at(a,.b,.G0,.'OT.matrix.G0')"...
11d40 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 ....].....},.....{......."cell_t
11d60 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 ype":."markdown",......."metadat
11d80 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 a":.{},......."source":.[.......
11da0 20 20 22 53 6f 6c 76 65 20 53 69 6e 6b 68 6f 72 6e 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .."Solve.Sinkhorn\n-------------
11dc0 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 -\n\n".......].....},.....{.....
11de0 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 .."cell_type":."code",......."ex
11e00 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 ecution_count":.null,......."met
11e20 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 adata":.{........."collapsed":.f
11e40 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b alse.......},......."outputs":.[
11e60 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 6c 61 ],......."source":.[........."la
11e80 6d 62 64 20 3d 20 32 65 2d 33 5c 6e 47 73 20 3d 20 6f 74 2e 73 69 6e 6b 68 6f 72 6e 28 61 2c 20 mbd.=.2e-3\nGs.=.ot.sinkhorn(a,.
11ea0 62 2c 20 4d 2c 20 6c 61 6d 62 64 2c 20 76 65 72 62 6f 73 65 3d 54 72 75 65 29 5c 6e 5c 6e 70 6c b,.M,.lambd,.verbose=True)\n\npl
11ec0 2e 66 69 67 75 72 65 28 34 2c 20 66 69 67 73 69 7a 65 3d 28 35 2c 20 35 29 29 5c 6e 6f 74 2e 70 .figure(4,.figsize=(5,.5))\not.p
11ee0 6c 6f 74 2e 70 6c 6f 74 31 44 5f 6d 61 74 28 61 2c 20 62 2c 20 47 73 2c 20 27 4f 54 20 6d 61 74 lot.plot1D_mat(a,.b,.Gs,.'OT.mat
11f00 72 69 78 20 53 69 6e 6b 68 6f 72 6e 27 29 5c 6e 5c 6e 70 6c 2e 73 68 6f 77 28 29 22 0a 20 20 20 rix.Sinkhorn')\n\npl.show()"....
11f20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 ...].....},.....{......."cell_ty
11f40 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 pe":."markdown",......."metadata
11f60 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 ":.{},......."source":.[........
11f80 20 22 53 6f 6c 76 65 20 53 6d 6f 6f 74 68 20 4f 54 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ."Solve.Smooth.OT\n-------------
11fa0 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 -\n\n".......].....},.....{.....
11fc0 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 .."cell_type":."code",......."ex
11fe0 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 ecution_count":.null,......."met
12000 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 adata":.{........."collapsed":.f
12020 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b alse.......},......."outputs":.[
12040 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 6c 61 ],......."source":.[........."la
12060 6d 62 64 20 3d 20 32 65 2d 33 5c 6e 47 73 6d 20 3d 20 6f 74 2e 73 6d 6f 6f 74 68 2e 73 6d 6f 6f mbd.=.2e-3\nGsm.=.ot.smooth.smoo
12080 74 68 5f 6f 74 5f 64 75 61 6c 28 61 2c 20 62 2c 20 4d 2c 20 6c 61 6d 62 64 2c 20 72 65 67 5f 74 th_ot_dual(a,.b,.M,.lambd,.reg_t
120a0 79 70 65 3d 27 6b 6c 27 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 35 2c 20 66 69 67 73 69 7a ype='kl')\n\npl.figure(5,.figsiz
120c0 65 3d 28 35 2c 20 35 29 29 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 31 44 5f 6d 61 74 28 61 2c e=(5,.5))\not.plot.plot1D_mat(a,
120e0 20 62 2c 20 47 73 6d 2c 20 27 4f 54 20 6d 61 74 72 69 78 20 53 6d 6f 6f 74 68 20 4f 54 20 4b 4c .b,.Gsm,.'OT.matrix.Smooth.OT.KL
12100 20 72 65 67 2e 27 29 5c 6e 5c 6e 70 6c 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 .reg.')\n\npl.show()".......]...
12120 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 ..},.....{......."cell_type":."c
12140 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e ode",......."execution_count":.n
12160 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 ull,......."metadata":.{........
12180 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 ."collapsed":.false.......},....
121a0 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 ..."outputs":.[],......."source"
121c0 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 6c 61 6d 62 64 20 3d 20 31 65 2d 31 5c 6e 47 73 6d 20 3d :.[........."lambd.=.1e-1\nGsm.=
121e0 20 6f 74 2e 73 6d 6f 6f 74 68 2e 73 6d 6f 6f 74 68 5f 6f 74 5f 64 75 61 6c 28 61 2c 20 62 2c 20 .ot.smooth.smooth_ot_dual(a,.b,.
12200 4d 2c 20 6c 61 6d 62 64 2c 20 72 65 67 5f 74 79 70 65 3d 27 6c 32 27 29 5c 6e 5c 6e 70 6c 2e 66 M,.lambd,.reg_type='l2')\n\npl.f
12220 69 67 75 72 65 28 36 2c 20 66 69 67 73 69 7a 65 3d 28 35 2c 20 35 29 29 5c 6e 6f 74 2e 70 6c 6f igure(6,.figsize=(5,.5))\not.plo
12240 74 2e 70 6c 6f 74 31 44 5f 6d 61 74 28 61 2c 20 62 2c 20 47 73 6d 2c 20 27 4f 54 20 6d 61 74 72 t.plot1D_mat(a,.b,.Gsm,.'OT.matr
12260 69 78 20 53 6d 6f 6f 74 68 20 4f 54 20 6c 32 20 72 65 67 2e 27 29 5c 6e 5c 6e 70 6c 2e 73 68 6f ix.Smooth.OT.l2.reg.')\n\npl.sho
12280 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 0a 20 20 5d 2c 0a 20 20 22 6d 65 74 61 64 w()".......].....}...],..."metad
122a0 61 74 61 22 3a 20 7b 0a 20 20 20 20 22 6b 65 72 6e 65 6c 73 70 65 63 22 3a 20 7b 0a 20 20 20 20 ata":.{....."kernelspec":.{.....
122c0 20 20 22 64 69 73 70 6c 61 79 5f 6e 61 6d 65 22 3a 20 22 50 79 74 68 6f 6e 20 33 22 2c 0a 20 20 .."display_name":."Python.3",...
122e0 20 20 20 20 22 6c 61 6e 67 75 61 67 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 ...."language":."python",.......
12300 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 33 22 0a 20 20 20 20 7d 2c 0a 20 20 20 20 22 6c 61 "name":."python3".....},....."la
12320 6e 67 75 61 67 65 5f 69 6e 66 6f 22 3a 20 7b 0a 20 20 20 20 20 20 22 63 6f 64 65 6d 69 72 72 6f nguage_info":.{......."codemirro
12340 72 5f 6d 6f 64 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 69 70 79 74 r_mode":.{........."name":."ipyt
12360 68 6f 6e 22 2c 0a 20 20 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 33 0a 20 20 20 20 20 hon",........."version":.3......
12380 20 7d 2c 0a 20 20 20 20 20 20 22 66 69 6c 65 5f 65 78 74 65 6e 73 69 6f 6e 22 3a 20 22 2e 70 79 .},......."file_extension":.".py
123a0 22 2c 0a 20 20 20 20 20 20 22 6d 69 6d 65 74 79 70 65 22 3a 20 22 74 65 78 74 2f 78 2d 70 79 74 ",......."mimetype":."text/x-pyt
123c0 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 hon",......."name":."python",...
123e0 20 20 20 20 22 6e 62 63 6f 6e 76 65 72 74 5f 65 78 70 6f 72 74 65 72 22 3a 20 22 70 79 74 68 6f ...."nbconvert_exporter":."pytho
12400 6e 22 2c 0a 20 20 20 20 20 20 22 70 79 67 6d 65 6e 74 73 5f 6c 65 78 65 72 22 3a 20 22 69 70 79 n",......."pygments_lexer":."ipy
12420 74 68 6f 6e 33 22 2c 0a 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 36 2e 39 22 thon3",......."version":."3.6.9"
12440 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 22 3a 20 34 2c 0a 20 20 22 .....}...},..."nbformat":.4,..."
12460 6e 62 66 6f 72 6d 61 74 5f 6d 69 6e 6f 72 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 c3 72 nbformat_minor":.0.}PK.........r
12480 94 50 a4 54 3f 6d 2d 18 00 00 2d 18 00 00 17 00 00 00 70 6c 6f 74 5f 6f 74 64 61 5f 63 6c 61 73 .P.T?m-...-.......plot_otda_clas
124a0 73 65 73 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 22 3a 20 5b 0a 20 20 20 20 7b 0a 20 20 ses.ipynb{..."cells":.[.....{...
124c0 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 ...."cell_type":."code",......."
124e0 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d execution_count":.null,......."m
12500 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a etadata":.{........."collapsed":
12520 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a .false.......},......."outputs":
12540 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 .[],......."source":.[........."
12560 25 6d 61 74 70 6c 6f 74 6c 69 62 20 69 6e 6c 69 6e 65 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 %matplotlib.inline".......].....
12580 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 },.....{......."cell_type":."mar
125a0 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 kdown",......."metadata":.{},...
125c0 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 4f 54 20 ...."source":.[........."\n#.OT.
125e0 66 6f 72 20 64 6f 6d 61 69 6e 20 61 64 61 70 74 61 74 69 6f 6e 5c 6e 5c 6e 5c 6e 54 68 69 73 20 for.domain.adaptation\n\n\nThis.
12600 65 78 61 6d 70 6c 65 20 69 6e 74 72 6f 64 75 63 65 73 20 61 20 64 6f 6d 61 69 6e 20 61 64 61 70 example.introduces.a.domain.adap
12620 74 61 74 69 6f 6e 20 69 6e 20 61 20 32 44 20 73 65 74 74 69 6e 67 20 61 6e 64 20 74 68 65 20 34 tation.in.a.2D.setting.and.the.4
12640 20 4f 54 44 41 5c 6e 61 70 70 72 6f 61 63 68 65 73 20 63 75 72 72 65 6e 74 6c 79 20 73 75 70 70 .OTDA\napproaches.currently.supp
12660 6f 72 74 65 64 20 69 6e 20 50 4f 54 2e 5c 6e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 orted.in.POT.\n\n\n".......]....
12680 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f .},.....{......."cell_type":."co
126a0 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 de",......."execution_count":.nu
126c0 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 ll,......."metadata":.{.........
126e0 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 "collapsed":.false.......},.....
12700 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a .."outputs":.[],......."source":
12720 20 5b 0a 20 20 20 20 20 20 20 20 22 23 20 41 75 74 68 6f 72 73 3a 20 52 65 6d 69 20 46 6c 61 6d .[........."#.Authors:.Remi.Flam
12740 61 72 79 20 3c 72 65 6d 69 2e 66 6c 61 6d 61 72 79 40 75 6e 69 63 65 2e 66 72 3e 5c 6e 23 20 20 ary.<remi.flamary@unice.fr>\n#..
12760 20 20 20 20 20 20 20 20 53 74 61 6e 69 73 6c 61 73 20 43 68 61 6d 62 6f 6e 20 3c 73 74 61 6e 2e ........Stanislas.Chambon.<stan.
12780 63 68 61 6d 62 6f 6e 40 67 6d 61 69 6c 2e 63 6f 6d 3e 5c 6e 23 5c 6e 23 20 4c 69 63 65 6e 73 65 chambon@gmail.com>\n#\n#.License
127a0 3a 20 4d 49 54 20 4c 69 63 65 6e 73 65 5c 6e 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c :.MIT.License\n\nimport.matplotl
127c0 69 62 2e 70 79 6c 61 62 20 61 73 20 70 6c 5c 6e 69 6d 70 6f 72 74 20 6f 74 22 0a 20 20 20 20 20 ib.pylab.as.pl\nimport.ot"......
127e0 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 .].....},.....{......."cell_type
12800 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a ":."markdown",......."metadata":
12820 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 .{},......."source":.[........."
12840 47 65 6e 65 72 61 74 65 20 64 61 74 61 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e Generate.data\n-------------\n\n
12860 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 ".......].....},.....{......."ce
12880 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 ll_type":."code",......."executi
128a0 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 on_count":.null,......."metadata
128c0 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a ":.{........."collapsed":.false.
128e0 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 ......},......."outputs":.[],...
12900 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 6e 5f 73 6f 75 72 63 ...."source":.[........."n_sourc
12920 65 5f 73 61 6d 70 6c 65 73 20 3d 20 31 35 30 5c 6e 6e 5f 74 61 72 67 65 74 5f 73 61 6d 70 6c 65 e_samples.=.150\nn_target_sample
12940 73 20 3d 20 31 35 30 5c 6e 5c 6e 58 73 2c 20 79 73 20 3d 20 6f 74 2e 64 61 74 61 73 65 74 73 2e s.=.150\n\nXs,.ys.=.ot.datasets.
12960 6d 61 6b 65 5f 64 61 74 61 5f 63 6c 61 73 73 69 66 28 27 33 67 61 75 73 73 27 2c 20 6e 5f 73 6f make_data_classif('3gauss',.n_so
12980 75 72 63 65 5f 73 61 6d 70 6c 65 73 29 5c 6e 58 74 2c 20 79 74 20 3d 20 6f 74 2e 64 61 74 61 73 urce_samples)\nXt,.yt.=.ot.datas
129a0 65 74 73 2e 6d 61 6b 65 5f 64 61 74 61 5f 63 6c 61 73 73 69 66 28 27 33 67 61 75 73 73 32 27 2c ets.make_data_classif('3gauss2',
129c0 20 6e 5f 74 61 72 67 65 74 5f 73 61 6d 70 6c 65 73 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 .n_target_samples)".......].....
129e0 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 },.....{......."cell_type":."mar
12a00 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 kdown",......."metadata":.{},...
12a20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 49 6e 73 74 61 6e 74 ...."source":.[........."Instant
12a40 69 61 74 65 20 74 68 65 20 64 69 66 66 65 72 65 6e 74 20 74 72 61 6e 73 70 6f 72 74 20 61 6c 67 iate.the.different.transport.alg
12a60 6f 72 69 74 68 6d 73 20 61 6e 64 20 66 69 74 20 74 68 65 6d 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d orithms.and.fit.them\n----------
12a80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
12aa0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 -----------------\n\n".......]..
12ac0 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 ...},.....{......."cell_type":."
12ae0 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 code",......."execution_count":.
12b00 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 null,......."metadata":.{.......
12b20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 .."collapsed":.false.......},...
12b40 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 ...."outputs":.[],......."source
12b60 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 20 45 4d 44 20 54 72 61 6e 73 70 6f 72 74 5c 6e 6f ":.[........."#.EMD.Transport\no
12b80 74 5f 65 6d 64 20 3d 20 6f 74 2e 64 61 2e 45 4d 44 54 72 61 6e 73 70 6f 72 74 28 29 5c 6e 6f 74 t_emd.=.ot.da.EMDTransport()\not
12ba0 5f 65 6d 64 2e 66 69 74 28 58 73 3d 58 73 2c 20 58 74 3d 58 74 29 5c 6e 5c 6e 23 20 53 69 6e 6b _emd.fit(Xs=Xs,.Xt=Xt)\n\n#.Sink
12bc0 68 6f 72 6e 20 54 72 61 6e 73 70 6f 72 74 5c 6e 6f 74 5f 73 69 6e 6b 68 6f 72 6e 20 3d 20 6f 74 horn.Transport\not_sinkhorn.=.ot
12be0 2e 64 61 2e 53 69 6e 6b 68 6f 72 6e 54 72 61 6e 73 70 6f 72 74 28 72 65 67 5f 65 3d 31 65 2d 31 .da.SinkhornTransport(reg_e=1e-1
12c00 29 5c 6e 6f 74 5f 73 69 6e 6b 68 6f 72 6e 2e 66 69 74 28 58 73 3d 58 73 2c 20 58 74 3d 58 74 29 )\not_sinkhorn.fit(Xs=Xs,.Xt=Xt)
12c20 5c 6e 5c 6e 23 20 53 69 6e 6b 68 6f 72 6e 20 54 72 61 6e 73 70 6f 72 74 20 77 69 74 68 20 47 72 \n\n#.Sinkhorn.Transport.with.Gr
12c40 6f 75 70 20 6c 61 73 73 6f 20 72 65 67 75 6c 61 72 69 7a 61 74 69 6f 6e 5c 6e 6f 74 5f 6c 70 6c oup.lasso.regularization\not_lpl
12c60 31 20 3d 20 6f 74 2e 64 61 2e 53 69 6e 6b 68 6f 72 6e 4c 70 6c 31 54 72 61 6e 73 70 6f 72 74 28 1.=.ot.da.SinkhornLpl1Transport(
12c80 72 65 67 5f 65 3d 31 65 2d 31 2c 20 72 65 67 5f 63 6c 3d 31 65 30 29 5c 6e 6f 74 5f 6c 70 6c 31 reg_e=1e-1,.reg_cl=1e0)\not_lpl1
12ca0 2e 66 69 74 28 58 73 3d 58 73 2c 20 79 73 3d 79 73 2c 20 58 74 3d 58 74 29 5c 6e 5c 6e 23 20 53 .fit(Xs=Xs,.ys=ys,.Xt=Xt)\n\n#.S
12cc0 69 6e 6b 68 6f 72 6e 20 54 72 61 6e 73 70 6f 72 74 20 77 69 74 68 20 47 72 6f 75 70 20 6c 61 73 inkhorn.Transport.with.Group.las
12ce0 73 6f 20 72 65 67 75 6c 61 72 69 7a 61 74 69 6f 6e 20 6c 31 6c 32 5c 6e 6f 74 5f 6c 31 6c 32 20 so.regularization.l1l2\not_l1l2.
12d00 3d 20 6f 74 2e 64 61 2e 53 69 6e 6b 68 6f 72 6e 4c 31 6c 32 54 72 61 6e 73 70 6f 72 74 28 72 65 =.ot.da.SinkhornL1l2Transport(re
12d20 67 5f 65 3d 31 65 2d 31 2c 20 72 65 67 5f 63 6c 3d 32 65 30 2c 20 6d 61 78 5f 69 74 65 72 3d 32 g_e=1e-1,.reg_cl=2e0,.max_iter=2
12d40 30 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0,\n............................
12d60 20 20 20 20 20 20 20 20 20 20 76 65 72 62 6f 73 65 3d 54 72 75 65 29 5c 6e 6f 74 5f 6c 31 6c 32 ..........verbose=True)\not_l1l2
12d80 2e 66 69 74 28 58 73 3d 58 73 2c 20 79 73 3d 79 73 2c 20 58 74 3d 58 74 29 5c 6e 5c 6e 23 20 74 .fit(Xs=Xs,.ys=ys,.Xt=Xt)\n\n#.t
12da0 72 61 6e 73 70 6f 72 74 20 73 6f 75 72 63 65 20 73 61 6d 70 6c 65 73 20 6f 6e 74 6f 20 74 61 72 ransport.source.samples.onto.tar
12dc0 67 65 74 20 73 61 6d 70 6c 65 73 5c 6e 74 72 61 6e 73 70 5f 58 73 5f 65 6d 64 20 3d 20 6f 74 5f get.samples\ntransp_Xs_emd.=.ot_
12de0 65 6d 64 2e 74 72 61 6e 73 66 6f 72 6d 28 58 73 3d 58 73 29 5c 6e 74 72 61 6e 73 70 5f 58 73 5f emd.transform(Xs=Xs)\ntransp_Xs_
12e00 73 69 6e 6b 68 6f 72 6e 20 3d 20 6f 74 5f 73 69 6e 6b 68 6f 72 6e 2e 74 72 61 6e 73 66 6f 72 6d sinkhorn.=.ot_sinkhorn.transform
12e20 28 58 73 3d 58 73 29 5c 6e 74 72 61 6e 73 70 5f 58 73 5f 6c 70 6c 31 20 3d 20 6f 74 5f 6c 70 6c (Xs=Xs)\ntransp_Xs_lpl1.=.ot_lpl
12e40 31 2e 74 72 61 6e 73 66 6f 72 6d 28 58 73 3d 58 73 29 5c 6e 74 72 61 6e 73 70 5f 58 73 5f 6c 31 1.transform(Xs=Xs)\ntransp_Xs_l1
12e60 6c 32 20 3d 20 6f 74 5f 6c 31 6c 32 2e 74 72 61 6e 73 66 6f 72 6d 28 58 73 3d 58 73 29 22 0a 20 l2.=.ot_l1l2.transform(Xs=Xs)"..
12e80 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f .....].....},.....{......."cell_
12ea0 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 type":."markdown",......."metada
12ec0 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 ta":.{},......."source":.[......
12ee0 20 20 20 22 46 69 67 20 31 20 3a 20 70 6c 6f 74 73 20 73 6f 75 72 63 65 20 61 6e 64 20 74 61 72 ..."Fig.1.:.plots.source.and.tar
12f00 67 65 74 20 73 61 6d 70 6c 65 73 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d get.samples\n-------------------
12f20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 --------------------\n\n".......
12f40 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 ].....},.....{......."cell_type"
12f60 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 :."code",......."execution_count
12f80 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 ":.null,......."metadata":.{....
12fa0 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c ....."collapsed":.false.......},
12fc0 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 ......."outputs":.[],......."sou
12fe0 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 70 6c 2e 66 69 67 75 72 65 28 31 2c 20 66 69 rce":.[........."pl.figure(1,.fi
13000 67 73 69 7a 65 3d 28 31 30 2c 20 35 29 29 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 20 32 2c gsize=(10,.5))\npl.subplot(1,.2,
13020 20 31 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 58 73 5b 3a 2c 20 30 5d 2c 20 58 73 5b 3a 2c 20 .1)\npl.scatter(Xs[:,.0],.Xs[:,.
13040 31 5d 2c 20 63 3d 79 73 2c 20 6d 61 72 6b 65 72 3d 27 2b 27 2c 20 6c 61 62 65 6c 3d 27 53 6f 75 1],.c=ys,.marker='+',.label='Sou
13060 72 63 65 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c rce.samples')\npl.xticks([])\npl
13080 2e 79 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e 70 .yticks([])\npl.legend(loc=0)\np
130a0 6c 2e 74 69 74 6c 65 28 27 53 6f 75 72 63 65 20 20 73 61 6d 70 6c 65 73 27 29 5c 6e 5c 6e 70 6c l.title('Source..samples')\n\npl
130c0 2e 73 75 62 70 6c 6f 74 28 31 2c 20 32 2c 20 32 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 58 74 .subplot(1,.2,.2)\npl.scatter(Xt
130e0 5b 3a 2c 20 30 5d 2c 20 58 74 5b 3a 2c 20 31 5d 2c 20 63 3d 79 74 2c 20 6d 61 72 6b 65 72 3d 27 [:,.0],.Xt[:,.1],.c=yt,.marker='
13100 6f 27 2c 20 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e o',.label='Target.samples')\npl.
13120 78 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 79 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 6c 65 xticks([])\npl.yticks([])\npl.le
13140 67 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 54 61 72 67 65 74 20 73 61 gend(loc=0)\npl.title('Target.sa
13160 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 22 0a 20 20 20 20 mples')\npl.tight_layout()".....
13180 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 ..].....},.....{......."cell_typ
131a0 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 e":."markdown",......."metadata"
131c0 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 :.{},......."source":.[.........
131e0 22 46 69 67 20 32 20 3a 20 70 6c 6f 74 20 6f 70 74 69 6d 61 6c 20 63 6f 75 70 6c 69 6e 67 73 20 "Fig.2.:.plot.optimal.couplings.
13200 61 6e 64 20 74 72 61 6e 73 70 6f 72 74 65 64 20 73 61 6d 70 6c 65 73 5c 6e 2d 2d 2d 2d 2d 2d 2d and.transported.samples\n-------
13220 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
13240 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 ---------------\n\n".......]....
13260 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f .},.....{......."cell_type":."co
13280 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 de",......."execution_count":.nu
132a0 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 ll,......."metadata":.{.........
132c0 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 "collapsed":.false.......},.....
132e0 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a .."outputs":.[],......."source":
13300 20 5b 0a 20 20 20 20 20 20 20 20 22 70 61 72 61 6d 5f 69 6d 67 20 3d 20 7b 27 69 6e 74 65 72 70 .[........."param_img.=.{'interp
13320 6f 6c 61 74 69 6f 6e 27 3a 20 27 6e 65 61 72 65 73 74 27 7d 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 olation':.'nearest'}\n\npl.figur
13340 65 28 32 2c 20 66 69 67 73 69 7a 65 3d 28 31 35 2c 20 38 29 29 5c 6e 70 6c 2e 73 75 62 70 6c 6f e(2,.figsize=(15,.8))\npl.subplo
13360 74 28 32 2c 20 34 2c 20 31 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 6f 74 5f 65 6d 64 2e 63 6f 75 t(2,.4,.1)\npl.imshow(ot_emd.cou
13380 70 6c 69 6e 67 5f 2c 20 2a 2a 70 61 72 61 6d 5f 69 6d 67 29 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 pling_,.**param_img)\npl.xticks(
133a0 5b 5d 29 5c 6e 70 6c 2e 79 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 4f 70 [])\npl.yticks([])\npl.title('Op
133c0 74 69 6d 61 6c 20 63 6f 75 70 6c 69 6e 67 5c 5c 6e 45 4d 44 54 72 61 6e 73 70 6f 72 74 27 29 5c timal.coupling\\nEMDTransport')\
133e0 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 34 2c 20 32 29 5c 6e 70 6c 2e 69 6d 73 68 6f n\npl.subplot(2,.4,.2)\npl.imsho
13400 77 28 6f 74 5f 73 69 6e 6b 68 6f 72 6e 2e 63 6f 75 70 6c 69 6e 67 5f 2c 20 2a 2a 70 61 72 61 6d w(ot_sinkhorn.coupling_,.**param
13420 5f 69 6d 67 29 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 79 74 69 63 6b 73 28 _img)\npl.xticks([])\npl.yticks(
13440 5b 5d 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 4f 70 74 69 6d 61 6c 20 63 6f 75 70 6c 69 6e 67 5c [])\npl.title('Optimal.coupling\
13460 5c 6e 53 69 6e 6b 68 6f 72 6e 54 72 61 6e 73 70 6f 72 74 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 \nSinkhornTransport')\n\npl.subp
13480 6c 6f 74 28 32 2c 20 34 2c 20 33 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 6f 74 5f 6c 70 6c 31 2e lot(2,.4,.3)\npl.imshow(ot_lpl1.
134a0 63 6f 75 70 6c 69 6e 67 5f 2c 20 2a 2a 70 61 72 61 6d 5f 69 6d 67 29 5c 6e 70 6c 2e 78 74 69 63 coupling_,.**param_img)\npl.xtic
134c0 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 79 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 ks([])\npl.yticks([])\npl.title(
134e0 27 4f 70 74 69 6d 61 6c 20 63 6f 75 70 6c 69 6e 67 5c 5c 6e 53 69 6e 6b 68 6f 72 6e 4c 70 6c 31 'Optimal.coupling\\nSinkhornLpl1
13500 54 72 61 6e 73 70 6f 72 74 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 34 2c 20 Transport')\n\npl.subplot(2,.4,.
13520 34 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 6f 74 5f 6c 31 6c 32 2e 63 6f 75 70 6c 69 6e 67 5f 2c 4)\npl.imshow(ot_l1l2.coupling_,
13540 20 2a 2a 70 61 72 61 6d 5f 69 6d 67 29 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c .**param_img)\npl.xticks([])\npl
13560 2e 79 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 4f 70 74 69 6d 61 6c 20 63 .yticks([])\npl.title('Optimal.c
13580 6f 75 70 6c 69 6e 67 5c 5c 6e 53 69 6e 6b 68 6f 72 6e 4c 31 6c 32 54 72 61 6e 73 70 6f 72 74 27 oupling\\nSinkhornL1l2Transport'
135a0 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 34 2c 20 35 29 5c 6e 70 6c 2e 73 63 61 )\n\npl.subplot(2,.4,.5)\npl.sca
135c0 74 74 65 72 28 58 74 5b 3a 2c 20 30 5d 2c 20 58 74 5b 3a 2c 20 31 5d 2c 20 63 3d 79 74 2c 20 6d tter(Xt[:,.0],.Xt[:,.1],.c=yt,.m
135e0 61 72 6b 65 72 3d 27 6f 27 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 6c 61 62 65 6c 3d 27 54 61 arker='o',\n...........label='Ta
13600 72 67 65 74 20 73 61 6d 70 6c 65 73 27 2c 20 61 6c 70 68 61 3d 30 2e 33 29 5c 6e 70 6c 2e 73 63 rget.samples',.alpha=0.3)\npl.sc
13620 61 74 74 65 72 28 74 72 61 6e 73 70 5f 58 73 5f 65 6d 64 5b 3a 2c 20 30 5d 2c 20 74 72 61 6e 73 atter(transp_Xs_emd[:,.0],.trans
13640 70 5f 58 73 5f 65 6d 64 5b 3a 2c 20 31 5d 2c 20 63 3d 79 73 2c 5c 6e 20 20 20 20 20 20 20 20 20 p_Xs_emd[:,.1],.c=ys,\n.........
13660 20 20 6d 61 72 6b 65 72 3d 27 2b 27 2c 20 6c 61 62 65 6c 3d 27 54 72 61 6e 73 70 20 73 61 6d 70 ..marker='+',.label='Transp.samp
13680 6c 65 73 27 2c 20 73 3d 33 30 29 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 79 les',.s=30)\npl.xticks([])\npl.y
136a0 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 54 72 61 6e 73 70 6f 72 74 65 64 ticks([])\npl.title('Transported
136c0 20 73 61 6d 70 6c 65 73 5c 5c 6e 45 6d 64 54 72 61 6e 73 70 6f 72 74 27 29 5c 6e 70 6c 2e 6c 65 .samples\\nEmdTransport')\npl.le
136e0 67 65 6e 64 28 6c 6f 63 3d 5c 22 6c 6f 77 65 72 20 6c 65 66 74 5c 22 29 5c 6e 5c 6e 70 6c 2e 73 gend(loc=\"lower.left\")\n\npl.s
13700 75 62 70 6c 6f 74 28 32 2c 20 34 2c 20 36 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 58 74 5b 3a ubplot(2,.4,.6)\npl.scatter(Xt[:
13720 2c 20 30 5d 2c 20 58 74 5b 3a 2c 20 31 5d 2c 20 63 3d 79 74 2c 20 6d 61 72 6b 65 72 3d 27 6f 27 ,.0],.Xt[:,.1],.c=yt,.marker='o'
13740 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 ,\n...........label='Target.samp
13760 6c 65 73 27 2c 20 61 6c 70 68 61 3d 30 2e 33 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 74 72 61 les',.alpha=0.3)\npl.scatter(tra
13780 6e 73 70 5f 58 73 5f 73 69 6e 6b 68 6f 72 6e 5b 3a 2c 20 30 5d 2c 20 74 72 61 6e 73 70 5f 58 73 nsp_Xs_sinkhorn[:,.0],.transp_Xs
137a0 5f 73 69 6e 6b 68 6f 72 6e 5b 3a 2c 20 31 5d 2c 20 63 3d 79 73 2c 5c 6e 20 20 20 20 20 20 20 20 _sinkhorn[:,.1],.c=ys,\n........
137c0 20 20 20 6d 61 72 6b 65 72 3d 27 2b 27 2c 20 6c 61 62 65 6c 3d 27 54 72 61 6e 73 70 20 73 61 6d ...marker='+',.label='Transp.sam
137e0 70 6c 65 73 27 2c 20 73 3d 33 30 29 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e ples',.s=30)\npl.xticks([])\npl.
13800 79 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 54 72 61 6e 73 70 6f 72 74 65 yticks([])\npl.title('Transporte
13820 64 20 73 61 6d 70 6c 65 73 5c 5c 6e 53 69 6e 6b 68 6f 72 6e 54 72 61 6e 73 70 6f 72 74 27 29 5c d.samples\\nSinkhornTransport')\
13840 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 34 2c 20 37 29 5c 6e 70 6c 2e 73 63 61 74 74 n\npl.subplot(2,.4,.7)\npl.scatt
13860 65 72 28 58 74 5b 3a 2c 20 30 5d 2c 20 58 74 5b 3a 2c 20 31 5d 2c 20 63 3d 79 74 2c 20 6d 61 72 er(Xt[:,.0],.Xt[:,.1],.c=yt,.mar
13880 6b 65 72 3d 27 6f 27 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 6c 61 62 65 6c 3d 27 54 61 72 67 ker='o',\n...........label='Targ
138a0 65 74 20 73 61 6d 70 6c 65 73 27 2c 20 61 6c 70 68 61 3d 30 2e 33 29 5c 6e 70 6c 2e 73 63 61 74 et.samples',.alpha=0.3)\npl.scat
138c0 74 65 72 28 74 72 61 6e 73 70 5f 58 73 5f 6c 70 6c 31 5b 3a 2c 20 30 5d 2c 20 74 72 61 6e 73 70 ter(transp_Xs_lpl1[:,.0],.transp
138e0 5f 58 73 5f 6c 70 6c 31 5b 3a 2c 20 31 5d 2c 20 63 3d 79 73 2c 5c 6e 20 20 20 20 20 20 20 20 20 _Xs_lpl1[:,.1],.c=ys,\n.........
13900 20 20 6d 61 72 6b 65 72 3d 27 2b 27 2c 20 6c 61 62 65 6c 3d 27 54 72 61 6e 73 70 20 73 61 6d 70 ..marker='+',.label='Transp.samp
13920 6c 65 73 27 2c 20 73 3d 33 30 29 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 79 les',.s=30)\npl.xticks([])\npl.y
13940 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 54 72 61 6e 73 70 6f 72 74 65 64 ticks([])\npl.title('Transported
13960 20 73 61 6d 70 6c 65 73 5c 5c 6e 53 69 6e 6b 68 6f 72 6e 4c 70 6c 31 54 72 61 6e 73 70 6f 72 74 .samples\\nSinkhornLpl1Transport
13980 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 34 2c 20 38 29 5c 6e 70 6c 2e 73 63 ')\n\npl.subplot(2,.4,.8)\npl.sc
139a0 61 74 74 65 72 28 58 74 5b 3a 2c 20 30 5d 2c 20 58 74 5b 3a 2c 20 31 5d 2c 20 63 3d 79 74 2c 20 atter(Xt[:,.0],.Xt[:,.1],.c=yt,.
139c0 6d 61 72 6b 65 72 3d 27 6f 27 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 6c 61 62 65 6c 3d 27 54 marker='o',\n...........label='T
139e0 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 2c 20 61 6c 70 68 61 3d 30 2e 33 29 5c 6e 70 6c 2e 73 arget.samples',.alpha=0.3)\npl.s
13a00 63 61 74 74 65 72 28 74 72 61 6e 73 70 5f 58 73 5f 6c 31 6c 32 5b 3a 2c 20 30 5d 2c 20 74 72 61 catter(transp_Xs_l1l2[:,.0],.tra
13a20 6e 73 70 5f 58 73 5f 6c 31 6c 32 5b 3a 2c 20 31 5d 2c 20 63 3d 79 73 2c 5c 6e 20 20 20 20 20 20 nsp_Xs_l1l2[:,.1],.c=ys,\n......
13a40 20 20 20 20 20 6d 61 72 6b 65 72 3d 27 2b 27 2c 20 6c 61 62 65 6c 3d 27 54 72 61 6e 73 70 20 73 .....marker='+',.label='Transp.s
13a60 61 6d 70 6c 65 73 27 2c 20 73 3d 33 30 29 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 amples',.s=30)\npl.xticks([])\np
13a80 6c 2e 79 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 54 72 61 6e 73 70 6f 72 l.yticks([])\npl.title('Transpor
13aa0 74 65 64 20 73 61 6d 70 6c 65 73 5c 5c 6e 53 69 6e 6b 68 6f 72 6e 4c 31 6c 32 54 72 61 6e 73 70 ted.samples\\nSinkhornL1l2Transp
13ac0 6f 72 74 27 29 5c 6e 70 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 5c 6e 5c 6e 70 6c 2e 73 ort')\npl.tight_layout()\n\npl.s
13ae0 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 0a 20 20 5d 2c 0a 20 20 22 6d 65 74 how()".......].....}...],..."met
13b00 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 22 6b 65 72 6e 65 6c 73 70 65 63 22 3a 20 7b 0a 20 20 adata":.{....."kernelspec":.{...
13b20 20 20 20 20 22 64 69 73 70 6c 61 79 5f 6e 61 6d 65 22 3a 20 22 50 79 74 68 6f 6e 20 33 22 2c 0a ...."display_name":."Python.3",.
13b40 20 20 20 20 20 20 22 6c 61 6e 67 75 61 67 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 ......"language":."python",.....
13b60 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 33 22 0a 20 20 20 20 7d 2c 0a 20 20 20 20 22 .."name":."python3".....},....."
13b80 6c 61 6e 67 75 61 67 65 5f 69 6e 66 6f 22 3a 20 7b 0a 20 20 20 20 20 20 22 63 6f 64 65 6d 69 72 language_info":.{......."codemir
13ba0 72 6f 72 5f 6d 6f 64 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 69 70 ror_mode":.{........."name":."ip
13bc0 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 33 0a 20 20 20 ython",........."version":.3....
13be0 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 66 69 6c 65 5f 65 78 74 65 6e 73 69 6f 6e 22 3a 20 22 2e ...},......."file_extension":.".
13c00 70 79 22 2c 0a 20 20 20 20 20 20 22 6d 69 6d 65 74 79 70 65 22 3a 20 22 74 65 78 74 2f 78 2d 70 py",......."mimetype":."text/x-p
13c20 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a ython",......."name":."python",.
13c40 20 20 20 20 20 20 22 6e 62 63 6f 6e 76 65 72 74 5f 65 78 70 6f 72 74 65 72 22 3a 20 22 70 79 74 ......"nbconvert_exporter":."pyt
13c60 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 70 79 67 6d 65 6e 74 73 5f 6c 65 78 65 72 22 3a 20 22 69 hon",......."pygments_lexer":."i
13c80 70 79 74 68 6f 6e 33 22 2c 0a 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 36 2e python3",......."version":."3.6.
13ca0 39 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 22 3a 20 34 2c 0a 20 9".....}...},..."nbformat":.4,..
13cc0 20 22 6e 62 66 6f 72 6d 61 74 5f 6d 69 6e 6f 72 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 ."nbformat_minor":.0.}PK........
13ce0 4a 78 94 50 f9 32 f8 e9 a5 1b 00 00 a5 1b 00 00 22 00 00 00 70 6c 6f 74 5f 70 61 72 74 69 61 6c Jx.P.2.........."...plot_partial
13d00 5f 77 61 73 73 5f 61 6e 64 5f 67 72 6f 6d 6f 76 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 _wass_and_gromov.ipynb{..."cells
13d20 22 3a 20 5b 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 ":.[.....{......."cell_type":."c
13d40 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e ode",......."execution_count":.n
13d60 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 ull,......."metadata":.{........
13d80 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 ."collapsed":.false.......},....
13da0 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 ..."outputs":.[],......."source"
13dc0 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 25 6d 61 74 70 6c 6f 74 6c 69 62 20 69 6e 6c 69 6e 65 22 :.[........."%matplotlib.inline"
13de0 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c .......].....},.....{......."cel
13e00 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 l_type":."markdown",......."meta
13e20 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 data":.{},......."source":.[....
13e40 20 20 20 20 20 22 5c 6e 23 20 50 61 72 74 69 61 6c 20 57 61 73 73 65 72 73 74 65 69 6e 20 61 6e ....."\n#.Partial.Wasserstein.an
13e60 64 20 47 72 6f 6d 6f 76 2d 57 61 73 73 65 72 73 74 65 69 6e 20 65 78 61 6d 70 6c 65 5c 6e 5c 6e d.Gromov-Wasserstein.example\n\n
13e80 5c 6e 54 68 69 73 20 65 78 61 6d 70 6c 65 20 69 73 20 64 65 73 69 67 6e 65 64 20 74 6f 20 73 68 \nThis.example.is.designed.to.sh
13ea0 6f 77 20 68 6f 77 20 74 6f 20 75 73 65 20 74 68 65 20 50 61 72 74 69 61 6c 20 28 47 72 6f 6d 6f ow.how.to.use.the.Partial.(Gromo
13ec0 76 2d 29 57 61 73 73 65 72 74 73 65 69 6e 5c 6e 64 69 73 74 61 6e 63 65 20 63 6f 6d 70 75 74 61 v-)Wassertsein\ndistance.computa
13ee0 74 69 6f 6e 20 69 6e 20 50 4f 54 2e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c tion.in.POT.\n\n".......].....},
13f00 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 .....{......."cell_type":."code"
13f20 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c ,......."execution_count":.null,
13f40 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f ......."metadata":.{........."co
13f60 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 llapsed":.false.......},......."
13f80 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a outputs":.[],......."source":.[.
13fa0 20 20 20 20 20 20 20 20 22 23 20 41 75 74 68 6f 72 3a 20 4c 61 65 74 69 74 69 61 20 43 68 61 70 ........"#.Author:.Laetitia.Chap
13fc0 65 6c 20 3c 6c 61 65 74 69 74 69 61 2e 63 68 61 70 65 6c 40 69 72 69 73 61 2e 66 72 3e 5c 6e 23 el.<laetitia.chapel@irisa.fr>\n#
13fe0 20 4c 69 63 65 6e 73 65 3a 20 4d 49 54 20 4c 69 63 65 6e 73 65 5c 6e 5c 6e 23 20 6e 65 63 65 73 .License:.MIT.License\n\n#.neces
14000 73 61 72 79 20 66 6f 72 20 33 64 20 70 6c 6f 74 20 65 76 65 6e 20 69 66 20 6e 6f 74 20 75 73 65 sary.for.3d.plot.even.if.not.use
14020 64 5c 6e 66 72 6f 6d 20 6d 70 6c 5f 74 6f 6f 6c 6b 69 74 73 2e 6d 70 6c 6f 74 33 64 20 69 6d 70 d\nfrom.mpl_toolkits.mplot3d.imp
14040 6f 72 74 20 41 78 65 73 33 44 20 20 23 20 6e 6f 71 61 5c 6e 69 6d 70 6f 72 74 20 73 63 69 70 79 ort.Axes3D..#.noqa\nimport.scipy
14060 20 61 73 20 73 70 5c 6e 69 6d 70 6f 72 74 20 6e 75 6d 70 79 20 61 73 20 6e 70 5c 6e 69 6d 70 6f .as.sp\nimport.numpy.as.np\nimpo
14080 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 6c 61 62 20 61 73 20 70 6c 5c 6e 69 6d 70 6f 72 rt.matplotlib.pylab.as.pl\nimpor
140a0 74 20 6f 74 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 t.ot".......].....},.....{......
140c0 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 ."cell_type":."markdown",.......
140e0 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 "metadata":.{},......."source":.
14100 5b 0a 20 20 20 20 20 20 20 20 22 53 61 6d 70 6c 65 20 74 77 6f 20 32 44 20 47 61 75 73 73 69 61 [........."Sample.two.2D.Gaussia
14120 6e 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 20 61 6e 64 20 70 6c 6f 74 20 74 68 65 6d 5c 6e 2d n.distributions.and.plot.them\n-
14140 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
14160 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 46 6f 72 20 64 65 6d 6f 6e 73 74 -----------------\n\nFor.demonst
14180 72 61 74 69 6f 6e 20 70 75 72 70 6f 73 65 2c 20 77 65 20 73 61 6d 70 6c 65 20 74 77 6f 20 47 61 ration.purpose,.we.sample.two.Ga
141a0 75 73 73 69 61 6e 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 20 69 6e 20 32 2d 64 5c 6e 73 70 61 ussian.distributions.in.2-d\nspa
141c0 63 65 73 20 61 6e 64 20 61 64 64 20 73 6f 6d 65 20 72 61 6e 64 6f 6d 20 6e 6f 69 73 65 2e 5c 6e ces.and.add.some.random.noise.\n
141e0 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 \n".......].....},.....{......."
14200 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 cell_type":."code",......."execu
14220 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 tion_count":.null,......."metada
14240 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 ta":.{........."collapsed":.fals
14260 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a e.......},......."outputs":.[],.
14280 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 6e 5f 73 61 6d ......"source":.[........."n_sam
142a0 70 6c 65 73 20 3d 20 32 30 20 20 23 20 6e 62 20 73 61 6d 70 6c 65 73 20 28 67 61 75 73 73 69 61 ples.=.20..#.nb.samples.(gaussia
142c0 6e 29 5c 6e 6e 5f 6e 6f 69 73 65 20 3d 20 32 30 20 20 23 20 6e 62 20 6f 66 20 73 61 6d 70 6c 65 n)\nn_noise.=.20..#.nb.of.sample
142e0 73 20 28 6e 6f 69 73 65 29 5c 6e 5c 6e 6d 75 20 3d 20 6e 70 2e 61 72 72 61 79 28 5b 30 2c 20 30 s.(noise)\n\nmu.=.np.array([0,.0
14300 5d 29 5c 6e 63 6f 76 20 3d 20 6e 70 2e 61 72 72 61 79 28 5b 5b 31 2c 20 30 5d 2c 20 5b 30 2c 20 ])\ncov.=.np.array([[1,.0],.[0,.
14320 32 5d 5d 29 5c 6e 5c 6e 78 73 20 3d 20 6f 74 2e 64 61 74 61 73 65 74 73 2e 6d 61 6b 65 5f 32 44 2]])\n\nxs.=.ot.datasets.make_2D
14340 5f 73 61 6d 70 6c 65 73 5f 67 61 75 73 73 28 6e 5f 73 61 6d 70 6c 65 73 2c 20 6d 75 2c 20 63 6f _samples_gauss(n_samples,.mu,.co
14360 76 29 5c 6e 78 73 20 3d 20 6e 70 2e 61 70 70 65 6e 64 28 78 73 2c 20 28 6e 70 2e 72 61 6e 64 6f v)\nxs.=.np.append(xs,.(np.rando
14380 6d 2e 72 61 6e 64 28 6e 5f 6e 6f 69 73 65 2c 20 32 29 20 2b 20 31 29 20 2a 20 34 29 2e 72 65 73 m.rand(n_noise,.2).+.1).*.4).res
143a0 68 61 70 65 28 28 2d 31 2c 20 32 29 29 5c 6e 78 74 20 3d 20 6f 74 2e 64 61 74 61 73 65 74 73 2e hape((-1,.2))\nxt.=.ot.datasets.
143c0 6d 61 6b 65 5f 32 44 5f 73 61 6d 70 6c 65 73 5f 67 61 75 73 73 28 6e 5f 73 61 6d 70 6c 65 73 2c make_2D_samples_gauss(n_samples,
143e0 20 6d 75 2c 20 63 6f 76 29 5c 6e 78 74 20 3d 20 6e 70 2e 61 70 70 65 6e 64 28 78 74 2c 20 28 6e .mu,.cov)\nxt.=.np.append(xt,.(n
14400 70 2e 72 61 6e 64 6f 6d 2e 72 61 6e 64 28 6e 5f 6e 6f 69 73 65 2c 20 32 29 20 2b 20 31 29 20 2a p.random.rand(n_noise,.2).+.1).*
14420 20 2d 33 29 2e 72 65 73 68 61 70 65 28 28 2d 31 2c 20 32 29 29 5c 6e 5c 6e 4d 20 3d 20 73 70 2e .-3).reshape((-1,.2))\n\nM.=.sp.
14440 73 70 61 74 69 61 6c 2e 64 69 73 74 61 6e 63 65 2e 63 64 69 73 74 28 78 73 2c 20 78 74 29 5c 6e spatial.distance.cdist(xs,.xt)\n
14460 5c 6e 66 69 67 20 3d 20 70 6c 2e 66 69 67 75 72 65 28 29 5c 6e 61 78 31 20 3d 20 66 69 67 2e 61 \nfig.=.pl.figure()\nax1.=.fig.a
14480 64 64 5f 73 75 62 70 6c 6f 74 28 31 33 31 29 5c 6e 61 78 31 2e 70 6c 6f 74 28 78 73 5b 3a 2c 20 dd_subplot(131)\nax1.plot(xs[:,.
144a0 30 5d 2c 20 78 73 5b 3a 2c 20 31 5d 2c 20 27 2b 62 27 2c 20 6c 61 62 65 6c 3d 27 53 6f 75 72 63 0],.xs[:,.1],.'+b',.label='Sourc
144c0 65 20 73 61 6d 70 6c 65 73 27 29 5c 6e 61 78 32 20 3d 20 66 69 67 2e 61 64 64 5f 73 75 62 70 6c e.samples')\nax2.=.fig.add_subpl
144e0 6f 74 28 31 33 32 29 5c 6e 61 78 32 2e 73 63 61 74 74 65 72 28 78 74 5b 3a 2c 20 30 5d 2c 20 78 ot(132)\nax2.scatter(xt[:,.0],.x
14500 74 5b 3a 2c 20 31 5d 2c 20 63 6f 6c 6f 72 3d 27 72 27 29 5c 6e 61 78 33 20 3d 20 66 69 67 2e 61 t[:,.1],.color='r')\nax3.=.fig.a
14520 64 64 5f 73 75 62 70 6c 6f 74 28 31 33 33 29 5c 6e 61 78 33 2e 69 6d 73 68 6f 77 28 4d 29 5c 6e dd_subplot(133)\nax3.imshow(M)\n
14540 70 6c 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a pl.show()".......].....},.....{.
14560 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 ......"cell_type":."markdown",..
14580 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 ....."metadata":.{},......."sour
145a0 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 6f 6d 70 75 74 65 20 70 61 72 74 69 61 6c 20 ce":.[........."Compute.partial.
145c0 57 61 73 73 65 72 73 74 65 69 6e 20 70 6c 61 6e 73 20 61 6e 64 20 64 69 73 74 61 6e 63 65 2c 5c Wasserstein.plans.and.distance,\
145e0 6e 62 79 20 74 72 61 6e 73 70 6f 72 74 69 6e 67 20 35 30 25 20 6f 66 20 74 68 65 20 6d 61 73 73 nby.transporting.50%.of.the.mass
14600 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d \n------------------------------
14620 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 ----------------\n\n".......]...
14640 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 ..},.....{......."cell_type":."c
14660 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e ode",......."execution_count":.n
14680 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 ull,......."metadata":.{........
146a0 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 ."collapsed":.false.......},....
146c0 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 ..."outputs":.[],......."source"
146e0 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 70 20 3d 20 6f 74 2e 75 6e 69 66 28 6e 5f 73 61 6d 70 6c :.[........."p.=.ot.unif(n_sampl
14700 65 73 20 2b 20 6e 5f 6e 6f 69 73 65 29 5c 6e 71 20 3d 20 6f 74 2e 75 6e 69 66 28 6e 5f 73 61 6d es.+.n_noise)\nq.=.ot.unif(n_sam
14720 70 6c 65 73 20 2b 20 6e 5f 6e 6f 69 73 65 29 5c 6e 5c 6e 77 30 2c 20 6c 6f 67 30 20 3d 20 6f 74 ples.+.n_noise)\n\nw0,.log0.=.ot
14740 2e 70 61 72 74 69 61 6c 2e 70 61 72 74 69 61 6c 5f 77 61 73 73 65 72 73 74 65 69 6e 28 70 2c 20 .partial.partial_wasserstein(p,.
14760 71 2c 20 4d 2c 20 6d 3d 30 2e 35 2c 20 6c 6f 67 3d 54 72 75 65 29 5c 6e 77 2c 20 6c 6f 67 20 3d q,.M,.m=0.5,.log=True)\nw,.log.=
14780 20 6f 74 2e 70 61 72 74 69 61 6c 2e 65 6e 74 72 6f 70 69 63 5f 70 61 72 74 69 61 6c 5f 77 61 73 .ot.partial.entropic_partial_was
147a0 73 65 72 73 74 65 69 6e 28 70 2c 20 71 2c 20 4d 2c 20 72 65 67 3d 30 2e 31 2c 20 6d 3d 30 2e 35 serstein(p,.q,.M,.reg=0.1,.m=0.5
147c0 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ,\n.............................
147e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f 67 3d 54 72 75 65 29 5c 6e 5c ....................log=True)\n\
14800 6e 70 72 69 6e 74 28 27 50 61 72 74 69 61 6c 20 57 61 73 73 65 72 73 74 65 69 6e 20 64 69 73 74 nprint('Partial.Wasserstein.dist
14820 61 6e 63 65 20 28 6d 20 3d 20 30 2e 35 29 3a 20 27 20 2b 20 73 74 72 28 6c 6f 67 30 5b 27 70 61 ance.(m.=.0.5):.'.+.str(log0['pa
14840 72 74 69 61 6c 5f 77 5f 64 69 73 74 27 5d 29 29 5c 6e 70 72 69 6e 74 28 27 45 6e 74 72 6f 70 69 rtial_w_dist']))\nprint('Entropi
14860 63 20 70 61 72 74 69 61 6c 20 57 61 73 73 65 72 73 74 65 69 6e 20 64 69 73 74 61 6e 63 65 20 28 c.partial.Wasserstein.distance.(
14880 6d 20 3d 20 30 2e 35 29 3a 20 27 20 2b 5c 6e 20 20 20 20 20 20 73 74 72 28 6c 6f 67 5b 27 70 61 m.=.0.5):.'.+\n......str(log['pa
148a0 72 74 69 61 6c 5f 77 5f 64 69 73 74 27 5d 29 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 31 2c rtial_w_dist']))\n\npl.figure(1,
148c0 20 28 31 30 2c 20 35 29 29 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 20 32 2c 20 31 29 5c 6e .(10,.5))\npl.subplot(1,.2,.1)\n
148e0 70 6c 2e 69 6d 73 68 6f 77 28 77 30 2c 20 63 6d 61 70 3d 27 6a 65 74 27 29 5c 6e 70 6c 2e 74 69 pl.imshow(w0,.cmap='jet')\npl.ti
14900 74 6c 65 28 27 50 61 72 74 69 61 6c 20 57 61 73 73 65 72 73 74 65 69 6e 27 29 5c 6e 70 6c 2e 73 tle('Partial.Wasserstein')\npl.s
14920 75 62 70 6c 6f 74 28 31 2c 20 32 2c 20 32 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 77 2c 20 63 6d ubplot(1,.2,.2)\npl.imshow(w,.cm
14940 61 70 3d 27 6a 65 74 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 45 6e 74 72 6f 70 69 63 20 70 61 ap='jet')\npl.title('Entropic.pa
14960 72 74 69 61 6c 20 57 61 73 73 65 72 73 74 65 69 6e 27 29 5c 6e 70 6c 2e 73 68 6f 77 28 29 22 0a rtial.Wasserstein')\npl.show()".
14980 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c ......].....},.....{......."cell
149a0 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 _type":."markdown",......."metad
149c0 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 ata":.{},......."source":.[.....
149e0 20 20 20 20 22 53 61 6d 70 6c 65 20 6f 6e 65 20 32 44 20 61 6e 64 20 33 44 20 47 61 75 73 73 69 ...."Sample.one.2D.and.3D.Gaussi
14a00 61 6e 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 20 61 6e 64 20 70 6c 6f 74 20 74 68 65 6d 5c 6e an.distributions.and.plot.them\n
14a20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
14a40 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 54 68 65 -------------------------\n\nThe
14a60 20 47 72 6f 6d 6f 76 2d 57 61 73 73 65 72 73 74 65 69 6e 20 64 69 73 74 61 6e 63 65 20 61 6c 6c .Gromov-Wasserstein.distance.all
14a80 6f 77 73 20 74 6f 20 63 6f 6d 70 75 74 65 20 64 69 73 74 61 6e 63 65 73 20 77 69 74 68 20 73 61 ows.to.compute.distances.with.sa
14aa0 6d 70 6c 65 73 20 74 68 61 74 5c 6e 64 6f 20 6e 6f 74 20 62 65 6c 6f 6e 67 20 74 6f 20 74 68 65 mples.that\ndo.not.belong.to.the
14ac0 20 73 61 6d 65 20 6d 65 74 72 69 63 20 73 70 61 63 65 2e 20 46 6f 72 20 64 65 6d 6f 6e 73 74 72 .same.metric.space..For.demonstr
14ae0 61 74 69 6f 6e 20 70 75 72 70 6f 73 65 2c 20 77 65 20 73 61 6d 70 6c 65 5c 6e 74 77 6f 20 47 61 ation.purpose,.we.sample\ntwo.Ga
14b00 75 73 73 69 61 6e 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 20 69 6e 20 32 2d 20 61 6e 64 20 33 ussian.distributions.in.2-.and.3
14b20 2d 64 69 6d 65 6e 73 69 6f 6e 61 6c 20 73 70 61 63 65 73 2e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 -dimensional.spaces.\n\n".......
14b40 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 ].....},.....{......."cell_type"
14b60 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 :."code",......."execution_count
14b80 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 ":.null,......."metadata":.{....
14ba0 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c ....."collapsed":.false.......},
14bc0 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 ......."outputs":.[],......."sou
14be0 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 6e 5f 73 61 6d 70 6c 65 73 20 3d 20 32 30 20 rce":.[........."n_samples.=.20.
14c00 20 23 20 6e 62 20 73 61 6d 70 6c 65 73 5c 6e 6e 5f 6e 6f 69 73 65 20 3d 20 31 30 20 20 23 20 6e .#.nb.samples\nn_noise.=.10..#.n
14c20 62 20 6f 66 20 73 61 6d 70 6c 65 73 20 28 6e 6f 69 73 65 29 5c 6e 5c 6e 70 20 3d 20 6f 74 2e 75 b.of.samples.(noise)\n\np.=.ot.u
14c40 6e 69 66 28 6e 5f 73 61 6d 70 6c 65 73 20 2b 20 6e 5f 6e 6f 69 73 65 29 5c 6e 71 20 3d 20 6f 74 nif(n_samples.+.n_noise)\nq.=.ot
14c60 2e 75 6e 69 66 28 6e 5f 73 61 6d 70 6c 65 73 20 2b 20 6e 5f 6e 6f 69 73 65 29 5c 6e 5c 6e 6d 75 .unif(n_samples.+.n_noise)\n\nmu
14c80 5f 73 20 3d 20 6e 70 2e 61 72 72 61 79 28 5b 30 2c 20 30 5d 29 5c 6e 63 6f 76 5f 73 20 3d 20 6e _s.=.np.array([0,.0])\ncov_s.=.n
14ca0 70 2e 61 72 72 61 79 28 5b 5b 31 2c 20 30 5d 2c 20 5b 30 2c 20 31 5d 5d 29 5c 6e 5c 6e 6d 75 5f p.array([[1,.0],.[0,.1]])\n\nmu_
14cc0 74 20 3d 20 6e 70 2e 61 72 72 61 79 28 5b 30 2c 20 30 2c 20 30 5d 29 5c 6e 63 6f 76 5f 74 20 3d t.=.np.array([0,.0,.0])\ncov_t.=
14ce0 20 6e 70 2e 61 72 72 61 79 28 5b 5b 31 2c 20 30 2c 20 30 5d 2c 20 5b 30 2c 20 31 2c 20 30 5d 2c .np.array([[1,.0,.0],.[0,.1,.0],
14d00 20 5b 30 2c 20 30 2c 20 31 5d 5d 29 5c 6e 5c 6e 5c 6e 78 73 20 3d 20 6f 74 2e 64 61 74 61 73 65 .[0,.0,.1]])\n\n\nxs.=.ot.datase
14d20 74 73 2e 6d 61 6b 65 5f 32 44 5f 73 61 6d 70 6c 65 73 5f 67 61 75 73 73 28 6e 5f 73 61 6d 70 6c ts.make_2D_samples_gauss(n_sampl
14d40 65 73 2c 20 6d 75 5f 73 2c 20 63 6f 76 5f 73 29 5c 6e 78 73 20 3d 20 6e 70 2e 63 6f 6e 63 61 74 es,.mu_s,.cov_s)\nxs.=.np.concat
14d60 65 6e 61 74 65 28 28 78 73 2c 20 28 28 6e 70 2e 72 61 6e 64 6f 6d 2e 72 61 6e 64 28 6e 5f 6e 6f enate((xs,.((np.random.rand(n_no
14d80 69 73 65 2c 20 32 29 20 2b 20 31 29 20 2a 20 34 29 29 2c 20 61 78 69 73 3d 30 29 5c 6e 50 20 3d ise,.2).+.1).*.4)),.axis=0)\nP.=
14da0 20 73 70 2e 6c 69 6e 61 6c 67 2e 73 71 72 74 6d 28 63 6f 76 5f 74 29 5c 6e 78 74 20 3d 20 6e 70 .sp.linalg.sqrtm(cov_t)\nxt.=.np
14dc0 2e 72 61 6e 64 6f 6d 2e 72 61 6e 64 6e 28 6e 5f 73 61 6d 70 6c 65 73 2c 20 33 29 2e 64 6f 74 28 .random.randn(n_samples,.3).dot(
14de0 50 29 20 2b 20 6d 75 5f 74 5c 6e 78 74 20 3d 20 6e 70 2e 63 6f 6e 63 61 74 65 6e 61 74 65 28 28 P).+.mu_t\nxt.=.np.concatenate((
14e00 78 74 2c 20 28 28 6e 70 2e 72 61 6e 64 6f 6d 2e 72 61 6e 64 28 6e 5f 6e 6f 69 73 65 2c 20 33 29 xt,.((np.random.rand(n_noise,.3)
14e20 20 2b 20 31 29 20 2a 20 31 30 29 29 2c 20 61 78 69 73 3d 30 29 5c 6e 5c 6e 66 69 67 20 3d 20 70 .+.1).*.10)),.axis=0)\n\nfig.=.p
14e40 6c 2e 66 69 67 75 72 65 28 29 5c 6e 61 78 31 20 3d 20 66 69 67 2e 61 64 64 5f 73 75 62 70 6c 6f l.figure()\nax1.=.fig.add_subplo
14e60 74 28 31 32 31 29 5c 6e 61 78 31 2e 70 6c 6f 74 28 78 73 5b 3a 2c 20 30 5d 2c 20 78 73 5b 3a 2c t(121)\nax1.plot(xs[:,.0],.xs[:,
14e80 20 31 5d 2c 20 27 2b 62 27 2c 20 6c 61 62 65 6c 3d 27 53 6f 75 72 63 65 20 73 61 6d 70 6c 65 73 .1],.'+b',.label='Source.samples
14ea0 27 29 5c 6e 61 78 32 20 3d 20 66 69 67 2e 61 64 64 5f 73 75 62 70 6c 6f 74 28 31 32 32 2c 20 70 ')\nax2.=.fig.add_subplot(122,.p
14ec0 72 6f 6a 65 63 74 69 6f 6e 3d 27 33 64 27 29 5c 6e 61 78 32 2e 73 63 61 74 74 65 72 28 78 74 5b rojection='3d')\nax2.scatter(xt[
14ee0 3a 2c 20 30 5d 2c 20 78 74 5b 3a 2c 20 31 5d 2c 20 78 74 5b 3a 2c 20 32 5d 2c 20 63 6f 6c 6f 72 :,.0],.xt[:,.1],.xt[:,.2],.color
14f00 3d 27 72 27 29 5c 6e 70 6c 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c ='r')\npl.show()".......].....},
14f20 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 .....{......."cell_type":."markd
14f40 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 own",......."metadata":.{},.....
14f60 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 6f 6d 70 75 74 65 20 70 .."source":.[........."Compute.p
14f80 61 72 74 69 61 6c 20 47 72 6f 6d 6f 76 2d 57 61 73 73 65 72 73 74 65 69 6e 20 70 6c 61 6e 73 20 artial.Gromov-Wasserstein.plans.
14fa0 61 6e 64 20 64 69 73 74 61 6e 63 65 2c 5c 6e 62 79 20 74 72 61 6e 73 70 6f 72 74 69 6e 67 20 31 and.distance,\nby.transporting.1
14fc0 30 30 25 20 61 6e 64 20 32 2f 33 20 6f 66 20 74 68 65 20 6d 61 73 73 5c 6e 2d 2d 2d 2d 2d 2d 2d 00%.and.2/3.of.the.mass\n-------
14fe0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
15000 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 --------------\n\n".......].....
15020 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 },.....{......."cell_type":."cod
15040 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c e",......."execution_count":.nul
15060 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 l,......."metadata":.{........."
15080 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 collapsed":.false.......},......
150a0 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 ."outputs":.[],......."source":.
150c0 5b 0a 20 20 20 20 20 20 20 20 22 43 31 20 3d 20 73 70 2e 73 70 61 74 69 61 6c 2e 64 69 73 74 61 [........."C1.=.sp.spatial.dista
150e0 6e 63 65 2e 63 64 69 73 74 28 78 73 2c 20 78 73 29 5c 6e 43 32 20 3d 20 73 70 2e 73 70 61 74 69 nce.cdist(xs,.xs)\nC2.=.sp.spati
15100 61 6c 2e 64 69 73 74 61 6e 63 65 2e 63 64 69 73 74 28 78 74 2c 20 78 74 29 5c 6e 5c 6e 70 72 69 al.distance.cdist(xt,.xt)\n\npri
15120 6e 74 28 27 2d 2d 2d 2d 2d 6d 20 3d 20 31 27 29 5c 6e 6d 20 3d 20 31 5c 6e 72 65 73 30 2c 20 6c nt('-----m.=.1')\nm.=.1\nres0,.l
15140 6f 67 30 20 3d 20 6f 74 2e 70 61 72 74 69 61 6c 2e 70 61 72 74 69 61 6c 5f 67 72 6f 6d 6f 76 5f og0.=.ot.partial.partial_gromov_
15160 77 61 73 73 65 72 73 74 65 69 6e 28 43 31 2c 20 43 32 2c 20 70 2c 20 71 2c 20 6d 3d 6d 2c 5c 6e wasserstein(C1,.C2,.p,.q,.m=m,\n
15180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
151a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f 67 3d 54 72 75 65 29 5c 6e 72 65 ...................log=True)\nre
151c0 73 2c 20 6c 6f 67 20 3d 20 6f 74 2e 70 61 72 74 69 61 6c 2e 65 6e 74 72 6f 70 69 63 5f 70 61 72 s,.log.=.ot.partial.entropic_par
151e0 74 69 61 6c 5f 67 72 6f 6d 6f 76 5f 77 61 73 73 65 72 73 74 65 69 6e 28 43 31 2c 20 43 32 2c 20 tial_gromov_wasserstein(C1,.C2,.
15200 70 2c 20 71 2c 20 31 30 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 p,.q,.10,\n.....................
15220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
15240 20 20 20 20 20 6d 3d 6d 2c 20 6c 6f 67 3d 54 72 75 65 29 5c 6e 5c 6e 70 72 69 6e 74 28 27 50 61 .....m=m,.log=True)\n\nprint('Pa
15260 72 74 69 61 6c 20 57 61 73 73 65 72 73 74 65 69 6e 20 64 69 73 74 61 6e 63 65 20 28 6d 20 3d 20 rtial.Wasserstein.distance.(m.=.
15280 31 29 3a 20 27 20 2b 20 73 74 72 28 6c 6f 67 30 5b 27 70 61 72 74 69 61 6c 5f 67 77 5f 64 69 73 1):.'.+.str(log0['partial_gw_dis
152a0 74 27 5d 29 29 5c 6e 70 72 69 6e 74 28 27 45 6e 74 72 6f 70 69 63 20 70 61 72 74 69 61 6c 20 57 t']))\nprint('Entropic.partial.W
152c0 61 73 73 65 72 73 74 65 69 6e 20 64 69 73 74 61 6e 63 65 20 28 6d 20 3d 20 31 29 3a 20 27 20 2b asserstein.distance.(m.=.1):.'.+
152e0 5c 6e 20 20 20 20 20 20 73 74 72 28 6c 6f 67 5b 27 70 61 72 74 69 61 6c 5f 67 77 5f 64 69 73 74 \n......str(log['partial_gw_dist
15300 27 5d 29 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 31 2c 20 28 31 30 2c 20 35 29 29 5c 6e 70 ']))\n\npl.figure(1,.(10,.5))\np
15320 6c 2e 74 69 74 6c 65 28 5c 22 6d 61 73 73 20 74 6f 20 62 65 20 74 72 61 6e 73 70 6f 72 74 65 64 l.title(\"mass.to.be.transported
15340 20 6d 20 3d 20 31 5c 22 29 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 20 32 2c 20 31 29 5c 6e .m.=.1\")\npl.subplot(1,.2,.1)\n
15360 70 6c 2e 69 6d 73 68 6f 77 28 72 65 73 30 2c 20 63 6d 61 70 3d 27 6a 65 74 27 29 5c 6e 70 6c 2e pl.imshow(res0,.cmap='jet')\npl.
15380 74 69 74 6c 65 28 27 50 61 72 74 69 61 6c 20 57 61 73 73 65 72 73 74 65 69 6e 27 29 5c 6e 70 6c title('Partial.Wasserstein')\npl
153a0 2e 73 75 62 70 6c 6f 74 28 31 2c 20 32 2c 20 32 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 72 65 73 .subplot(1,.2,.2)\npl.imshow(res
153c0 2c 20 63 6d 61 70 3d 27 6a 65 74 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 45 6e 74 72 6f 70 69 ,.cmap='jet')\npl.title('Entropi
153e0 63 20 70 61 72 74 69 61 6c 20 57 61 73 73 65 72 73 74 65 69 6e 27 29 5c 6e 70 6c 2e 73 68 6f 77 c.partial.Wasserstein')\npl.show
15400 28 29 5c 6e 5c 6e 70 72 69 6e 74 28 27 2d 2d 2d 2d 2d 6d 20 3d 20 32 2f 33 27 29 5c 6e 6d 20 3d ()\n\nprint('-----m.=.2/3')\nm.=
15420 20 32 20 2f 20 33 5c 6e 72 65 73 30 2c 20 6c 6f 67 30 20 3d 20 6f 74 2e 70 61 72 74 69 61 6c 2e .2./.3\nres0,.log0.=.ot.partial.
15440 70 61 72 74 69 61 6c 5f 67 72 6f 6d 6f 76 5f 77 61 73 73 65 72 73 74 65 69 6e 28 43 31 2c 20 43 partial_gromov_wasserstein(C1,.C
15460 32 2c 20 70 2c 20 71 2c 20 6d 3d 6d 2c 20 6c 6f 67 3d 54 72 75 65 29 5c 6e 72 65 73 2c 20 6c 6f 2,.p,.q,.m=m,.log=True)\nres,.lo
15480 67 20 3d 20 6f 74 2e 70 61 72 74 69 61 6c 2e 65 6e 74 72 6f 70 69 63 5f 70 61 72 74 69 61 6c 5f g.=.ot.partial.entropic_partial_
154a0 67 72 6f 6d 6f 76 5f 77 61 73 73 65 72 73 74 65 69 6e 28 43 31 2c 20 43 32 2c 20 70 2c 20 71 2c gromov_wasserstein(C1,.C2,.p,.q,
154c0 20 31 30 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .10,\n..........................
154e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
15500 6d 3d 6d 2c 20 6c 6f 67 3d 54 72 75 65 29 5c 6e 5c 6e 70 72 69 6e 74 28 27 50 61 72 74 69 61 6c m=m,.log=True)\n\nprint('Partial
15520 20 57 61 73 73 65 72 73 74 65 69 6e 20 64 69 73 74 61 6e 63 65 20 28 6d 20 3d 20 32 2f 33 29 3a .Wasserstein.distance.(m.=.2/3):
15540 20 27 20 2b 5c 6e 20 20 20 20 20 20 73 74 72 28 6c 6f 67 30 5b 27 70 61 72 74 69 61 6c 5f 67 77 .'.+\n......str(log0['partial_gw
15560 5f 64 69 73 74 27 5d 29 29 5c 6e 70 72 69 6e 74 28 27 45 6e 74 72 6f 70 69 63 20 70 61 72 74 69 _dist']))\nprint('Entropic.parti
15580 61 6c 20 57 61 73 73 65 72 73 74 65 69 6e 20 64 69 73 74 61 6e 63 65 20 28 6d 20 3d 20 32 2f 33 al.Wasserstein.distance.(m.=.2/3
155a0 29 3a 20 27 20 2b 5c 6e 20 20 20 20 20 20 73 74 72 28 6c 6f 67 5b 27 70 61 72 74 69 61 6c 5f 67 ):.'.+\n......str(log['partial_g
155c0 77 5f 64 69 73 74 27 5d 29 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 31 2c 20 28 31 30 2c 20 w_dist']))\n\npl.figure(1,.(10,.
155e0 35 29 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 5c 22 6d 61 73 73 20 74 6f 20 62 65 20 74 72 61 6e 73 5))\npl.title(\"mass.to.be.trans
15600 70 6f 72 74 65 64 20 6d 20 3d 20 32 2f 33 5c 22 29 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c ported.m.=.2/3\")\npl.subplot(1,
15620 20 32 2c 20 31 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 72 65 73 30 2c 20 63 6d 61 70 3d 27 6a 65 .2,.1)\npl.imshow(res0,.cmap='je
15640 74 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 50 61 72 74 69 61 6c 20 57 61 73 73 65 72 73 74 65 t')\npl.title('Partial.Wasserste
15660 69 6e 27 29 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 20 32 2c 20 32 29 5c 6e 70 6c 2e 69 6d in')\npl.subplot(1,.2,.2)\npl.im
15680 73 68 6f 77 28 72 65 73 2c 20 63 6d 61 70 3d 27 6a 65 74 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 show(res,.cmap='jet')\npl.title(
156a0 27 45 6e 74 72 6f 70 69 63 20 70 61 72 74 69 61 6c 20 57 61 73 73 65 72 73 74 65 69 6e 27 29 5c 'Entropic.partial.Wasserstein')\
156c0 6e 70 6c 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 0a 20 20 5d 2c 0a 20 npl.show()".......].....}...],..
156e0 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 22 6b 65 72 6e 65 6c 73 70 65 63 22 3a ."metadata":.{....."kernelspec":
15700 20 7b 0a 20 20 20 20 20 20 22 64 69 73 70 6c 61 79 5f 6e 61 6d 65 22 3a 20 22 50 79 74 68 6f 6e .{......."display_name":."Python
15720 20 33 22 2c 0a 20 20 20 20 20 20 22 6c 61 6e 67 75 61 67 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c .3",......."language":."python",
15740 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 33 22 0a 20 20 20 20 7d 2c 0a ......."name":."python3".....},.
15760 20 20 20 20 22 6c 61 6e 67 75 61 67 65 5f 69 6e 66 6f 22 3a 20 7b 0a 20 20 20 20 20 20 22 63 6f ...."language_info":.{......."co
15780 64 65 6d 69 72 72 6f 72 5f 6d 6f 64 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 demirror_mode":.{........."name"
157a0 3a 20 22 69 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 :."ipython",........."version":.
157c0 33 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 66 69 6c 65 5f 65 78 74 65 6e 73 69 6f 6e 3.......},......."file_extension
157e0 22 3a 20 22 2e 70 79 22 2c 0a 20 20 20 20 20 20 22 6d 69 6d 65 74 79 70 65 22 3a 20 22 74 65 78 ":.".py",......."mimetype":."tex
15800 74 2f 78 2d 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 t/x-python",......."name":."pyth
15820 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 62 63 6f 6e 76 65 72 74 5f 65 78 70 6f 72 74 65 72 22 3a on",......."nbconvert_exporter":
15840 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 70 79 67 6d 65 6e 74 73 5f 6c 65 78 65 72 ."python",......."pygments_lexer
15860 22 3a 20 22 69 70 79 74 68 6f 6e 33 22 2c 0a 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 ":."ipython3",......."version":.
15880 22 33 2e 36 2e 39 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 22 3a "3.6.9".....}...},..."nbformat":
158a0 20 34 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 5f 6d 69 6e 6f 72 22 3a 20 30 0a 7d 50 4b 03 04 14 .4,..."nbformat_minor":.0.}PK...
158c0 00 00 00 00 00 a4 72 94 50 60 4e ee 5b dd 0d 00 00 dd 0d 00 00 10 00 00 00 70 6c 6f 74 5f 4f 54 ......r.P`N.[............plot_OT
158e0 5f 31 44 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 22 3a 20 5b 0a 20 20 20 20 7b 0a 20 20 _1D.ipynb{..."cells":.[.....{...
15900 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 ...."cell_type":."code",......."
15920 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d execution_count":.null,......."m
15940 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a etadata":.{........."collapsed":
15960 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a .false.......},......."outputs":
15980 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 .[],......."source":.[........."
159a0 25 6d 61 74 70 6c 6f 74 6c 69 62 20 69 6e 6c 69 6e 65 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 %matplotlib.inline".......].....
159c0 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 },.....{......."cell_type":."mar
159e0 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 kdown",......."metadata":.{},...
15a00 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 31 44 20 ...."source":.[........."\n#.1D.
15a20 6f 70 74 69 6d 61 6c 20 74 72 61 6e 73 70 6f 72 74 5c 6e 5c 6e 5c 6e 54 68 69 73 20 65 78 61 6d optimal.transport\n\n\nThis.exam
15a40 70 6c 65 20 69 6c 6c 75 73 74 72 61 74 65 73 20 74 68 65 20 63 6f 6d 70 75 74 61 74 69 6f 6e 20 ple.illustrates.the.computation.
15a60 6f 66 20 45 4d 44 20 61 6e 64 20 53 69 6e 6b 68 6f 72 6e 20 74 72 61 6e 73 70 6f 72 74 20 70 6c of.EMD.and.Sinkhorn.transport.pl
15a80 61 6e 73 5c 6e 61 6e 64 20 74 68 65 69 72 20 76 69 73 75 61 6c 69 7a 61 74 69 6f 6e 2e 5c 6e 5c ans\nand.their.visualization.\n\
15aa0 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 n\n".......].....},.....{.......
15ac0 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 "cell_type":."code",......."exec
15ae0 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 ution_count":.null,......."metad
15b00 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c ata":.{........."collapsed":.fal
15b20 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c se.......},......."outputs":.[],
15b40 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 20 41 75 ......."source":.[........."#.Au
15b60 74 68 6f 72 3a 20 52 65 6d 69 20 46 6c 61 6d 61 72 79 20 3c 72 65 6d 69 2e 66 6c 61 6d 61 72 79 thor:.Remi.Flamary.<remi.flamary
15b80 40 75 6e 69 63 65 2e 66 72 3e 5c 6e 23 5c 6e 23 20 4c 69 63 65 6e 73 65 3a 20 4d 49 54 20 4c 69 @unice.fr>\n#\n#.License:.MIT.Li
15ba0 63 65 6e 73 65 5c 6e 5c 6e 69 6d 70 6f 72 74 20 6e 75 6d 70 79 20 61 73 20 6e 70 5c 6e 69 6d 70 cense\n\nimport.numpy.as.np\nimp
15bc0 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 6c 61 62 20 61 73 20 70 6c 5c 6e 69 6d 70 6f ort.matplotlib.pylab.as.pl\nimpo
15be0 72 74 20 6f 74 5c 6e 69 6d 70 6f 72 74 20 6f 74 2e 70 6c 6f 74 5c 6e 66 72 6f 6d 20 6f 74 2e 64 rt.ot\nimport.ot.plot\nfrom.ot.d
15c00 61 74 61 73 65 74 73 20 69 6d 70 6f 72 74 20 6d 61 6b 65 5f 31 44 5f 67 61 75 73 73 20 61 73 20 atasets.import.make_1D_gauss.as.
15c20 67 61 75 73 73 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 gauss".......].....},.....{.....
15c40 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 .."cell_type":."markdown",......
15c60 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a ."metadata":.{},......."source":
15c80 20 5b 0a 20 20 20 20 20 20 20 20 22 47 65 6e 65 72 61 74 65 20 64 61 74 61 5c 6e 2d 2d 2d 2d 2d .[........."Generate.data\n-----
15ca0 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 --------\n\n".......].....},....
15cc0 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 .{......."cell_type":."code",...
15ce0 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 ...."execution_count":.null,....
15d00 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 ..."metadata":.{........."collap
15d20 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 sed":.false.......},......."outp
15d40 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 uts":.[],......."source":.[.....
15d60 20 20 20 20 22 6e 20 3d 20 31 30 30 20 20 23 20 6e 62 20 62 69 6e 73 5c 6e 5c 6e 23 20 62 69 6e ...."n.=.100..#.nb.bins\n\n#.bin
15d80 20 70 6f 73 69 74 69 6f 6e 73 5c 6e 78 20 3d 20 6e 70 2e 61 72 61 6e 67 65 28 6e 2c 20 64 74 79 .positions\nx.=.np.arange(n,.dty
15da0 70 65 3d 6e 70 2e 66 6c 6f 61 74 36 34 29 5c 6e 5c 6e 23 20 47 61 75 73 73 69 61 6e 20 64 69 73 pe=np.float64)\n\n#.Gaussian.dis
15dc0 74 72 69 62 75 74 69 6f 6e 73 5c 6e 61 20 3d 20 67 61 75 73 73 28 6e 2c 20 6d 3d 32 30 2c 20 73 tributions\na.=.gauss(n,.m=20,.s
15de0 3d 35 29 20 20 23 20 6d 3d 20 6d 65 61 6e 2c 20 73 3d 20 73 74 64 5c 6e 62 20 3d 20 67 61 75 73 =5)..#.m=.mean,.s=.std\nb.=.gaus
15e00 73 28 6e 2c 20 6d 3d 36 30 2c 20 73 3d 31 30 29 5c 6e 5c 6e 23 20 6c 6f 73 73 20 6d 61 74 72 69 s(n,.m=60,.s=10)\n\n#.loss.matri
15e20 78 5c 6e 4d 20 3d 20 6f 74 2e 64 69 73 74 28 78 2e 72 65 73 68 61 70 65 28 28 6e 2c 20 31 29 29 x\nM.=.ot.dist(x.reshape((n,.1))
15e40 2c 20 78 2e 72 65 73 68 61 70 65 28 28 6e 2c 20 31 29 29 29 5c 6e 4d 20 2f 3d 20 4d 2e 6d 61 78 ,.x.reshape((n,.1)))\nM./=.M.max
15e60 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 ()".......].....},.....{......."
15e80 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d cell_type":."markdown",......."m
15ea0 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a etadata":.{},......."source":.[.
15ec0 20 20 20 20 20 20 20 20 22 50 6c 6f 74 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 20 61 6e 64 20 ........"Plot.distributions.and.
15ee0 6c 6f 73 73 20 6d 61 74 72 69 78 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d loss.matrix\n-------------------
15f00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 ---------------\n\n".......]....
15f20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f .},.....{......."cell_type":."co
15f40 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 de",......."execution_count":.nu
15f60 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 ll,......."metadata":.{.........
15f80 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 "collapsed":.false.......},.....
15fa0 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a .."outputs":.[],......."source":
15fc0 20 5b 0a 20 20 20 20 20 20 20 20 22 70 6c 2e 66 69 67 75 72 65 28 31 2c 20 66 69 67 73 69 7a 65 .[........."pl.figure(1,.figsize
15fe0 3d 28 36 2e 34 2c 20 33 29 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 2c 20 61 2c 20 27 62 27 2c 20 6c =(6.4,.3))\npl.plot(x,.a,.'b',.l
16000 61 62 65 6c 3d 27 53 6f 75 72 63 65 20 64 69 73 74 72 69 62 75 74 69 6f 6e 27 29 5c 6e 70 6c 2e abel='Source.distribution')\npl.
16020 70 6c 6f 74 28 78 2c 20 62 2c 20 27 72 27 2c 20 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 64 69 plot(x,.b,.'r',.label='Target.di
16040 73 74 72 69 62 75 74 69 6f 6e 27 29 5c 6e 70 6c 2e 6c 65 67 65 6e 64 28 29 22 0a 20 20 20 20 20 stribution')\npl.legend()"......
16060 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 .].....},.....{......."cell_type
16080 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e ":."code",......."execution_coun
160a0 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 t":.null,......."metadata":.{...
160c0 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d ......"collapsed":.false.......}
160e0 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f ,......."outputs":.[],......."so
16100 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 70 6c 2e 66 69 67 75 72 65 28 32 2c 20 66 urce":.[........."pl.figure(2,.f
16120 69 67 73 69 7a 65 3d 28 35 2c 20 35 29 29 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 31 44 5f 6d igsize=(5,.5))\not.plot.plot1D_m
16140 61 74 28 61 2c 20 62 2c 20 4d 2c 20 27 43 6f 73 74 20 6d 61 74 72 69 78 20 4d 27 29 22 0a 20 20 at(a,.b,.M,.'Cost.matrix.M')"...
16160 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 ....].....},.....{......."cell_t
16180 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 ype":."markdown",......."metadat
161a0 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 a":.{},......."source":.[.......
161c0 20 20 22 53 6f 6c 76 65 20 45 4d 44 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 .."Solve.EMD\n---------\n\n"....
161e0 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 ...].....},.....{......."cell_ty
16200 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f pe":."code",......."execution_co
16220 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a unt":.null,......."metadata":.{.
16240 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 ........"collapsed":.false......
16260 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 .},......."outputs":.[],......."
16280 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 47 30 20 3d 20 6f 74 2e 65 6d 64 28 source":.[........."G0.=.ot.emd(
162a0 61 2c 20 62 2c 20 4d 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 33 2c 20 66 69 67 73 69 7a 65 a,.b,.M)\n\npl.figure(3,.figsize
162c0 3d 28 35 2c 20 35 29 29 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 31 44 5f 6d 61 74 28 61 2c 20 =(5,.5))\not.plot.plot1D_mat(a,.
162e0 62 2c 20 47 30 2c 20 27 4f 54 20 6d 61 74 72 69 78 20 47 30 27 29 22 0a 20 20 20 20 20 20 5d 0a b,.G0,.'OT.matrix.G0')".......].
16300 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 ....},.....{......."cell_type":.
16320 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d "markdown",......."metadata":.{}
16340 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 53 6f 6c ,......."source":.[........."Sol
16360 76 65 20 53 69 6e 6b 68 6f 72 6e 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 ve.Sinkhorn\n--------------\n\n"
16380 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c .......].....},.....{......."cel
163a0 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f l_type":."code",......."executio
163c0 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 n_count":.null,......."metadata"
163e0 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 :.{........."collapsed":.false..
16400 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 .....},......."outputs":.[],....
16420 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 6c 61 6d 62 64 20 3d 20 ..."source":.[........."lambd.=.
16440 31 65 2d 33 5c 6e 47 73 20 3d 20 6f 74 2e 73 69 6e 6b 68 6f 72 6e 28 61 2c 20 62 2c 20 4d 2c 20 1e-3\nGs.=.ot.sinkhorn(a,.b,.M,.
16460 6c 61 6d 62 64 2c 20 76 65 72 62 6f 73 65 3d 54 72 75 65 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 lambd,.verbose=True)\n\npl.figur
16480 65 28 34 2c 20 66 69 67 73 69 7a 65 3d 28 35 2c 20 35 29 29 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 6c e(4,.figsize=(5,.5))\not.plot.pl
164a0 6f 74 31 44 5f 6d 61 74 28 61 2c 20 62 2c 20 47 73 2c 20 27 4f 54 20 6d 61 74 72 69 78 20 53 69 ot1D_mat(a,.b,.Gs,.'OT.matrix.Si
164c0 6e 6b 68 6f 72 6e 27 29 5c 6e 5c 6e 70 6c 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 nkhorn')\n\npl.show()".......]..
164e0 20 20 20 7d 0a 20 20 5d 2c 0a 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 22 6b ...}...],..."metadata":.{....."k
16500 65 72 6e 65 6c 73 70 65 63 22 3a 20 7b 0a 20 20 20 20 20 20 22 64 69 73 70 6c 61 79 5f 6e 61 6d ernelspec":.{......."display_nam
16520 65 22 3a 20 22 50 79 74 68 6f 6e 20 33 22 2c 0a 20 20 20 20 20 20 22 6c 61 6e 67 75 61 67 65 22 e":."Python.3",......."language"
16540 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f :."python",......."name":."pytho
16560 6e 33 22 0a 20 20 20 20 7d 2c 0a 20 20 20 20 22 6c 61 6e 67 75 61 67 65 5f 69 6e 66 6f 22 3a 20 n3".....},....."language_info":.
16580 7b 0a 20 20 20 20 20 20 22 63 6f 64 65 6d 69 72 72 6f 72 5f 6d 6f 64 65 22 3a 20 7b 0a 20 20 20 {......."codemirror_mode":.{....
165a0 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 69 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 20 20 ....."name":."ipython",.........
165c0 22 76 65 72 73 69 6f 6e 22 3a 20 33 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 66 69 6c "version":.3.......},......."fil
165e0 65 5f 65 78 74 65 6e 73 69 6f 6e 22 3a 20 22 2e 70 79 22 2c 0a 20 20 20 20 20 20 22 6d 69 6d 65 e_extension":.".py",......."mime
16600 74 79 70 65 22 3a 20 22 74 65 78 74 2f 78 2d 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e type":."text/x-python",......."n
16620 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 62 63 6f 6e 76 65 72 74 ame":."python",......."nbconvert
16640 5f 65 78 70 6f 72 74 65 72 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 70 79 67 _exporter":."python",......."pyg
16660 6d 65 6e 74 73 5f 6c 65 78 65 72 22 3a 20 22 69 70 79 74 68 6f 6e 33 22 2c 0a 20 20 20 20 20 20 ments_lexer":."ipython3",.......
16680 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 36 2e 39 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 "version":."3.6.9".....}...},...
166a0 22 6e 62 66 6f 72 6d 61 74 22 3a 20 34 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 5f 6d 69 6e 6f 72 "nbformat":.4,..."nbformat_minor
166c0 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 c0 72 94 50 6f 0b 8a da 55 26 00 00 55 26 00 00 ":.0.}PK.........r.Po...U&..U&..
166e0 15 00 00 00 70 6c 6f 74 5f 73 74 6f 63 68 61 73 74 69 63 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 ....plot_stochastic.ipynb{..."ce
16700 6c 6c 73 22 3a 20 5b 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a lls":.[.....{......."cell_type":
16720 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 ."code",......."execution_count"
16740 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 :.null,......."metadata":.{.....
16760 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a ...."collapsed":.false.......},.
16780 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 ......"outputs":.[],......."sour
167a0 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 25 6d 61 74 70 6c 6f 74 6c 69 62 20 69 6e 6c 69 ce":.[........."%matplotlib.inli
167c0 6e 65 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 ne".......].....},.....{......."
167e0 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d cell_type":."markdown",......."m
16800 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a etadata":.{},......."source":.[.
16820 20 20 20 20 20 20 20 20 22 5c 6e 23 20 53 74 6f 63 68 61 73 74 69 63 20 65 78 61 6d 70 6c 65 73 ........"\n#.Stochastic.examples
16840 5c 6e 5c 6e 5c 6e 54 68 69 73 20 65 78 61 6d 70 6c 65 20 69 73 20 64 65 73 69 67 6e 65 64 20 74 \n\n\nThis.example.is.designed.t
16860 6f 20 73 68 6f 77 20 68 6f 77 20 74 6f 20 75 73 65 20 74 68 65 20 73 74 6f 63 68 61 74 69 63 20 o.show.how.to.use.the.stochatic.
16880 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 5c 6e 61 6c 67 6f 72 69 74 68 6d 73 20 66 6f 72 20 64 65 73 optimization\nalgorithms.for.des
168a0 63 72 65 74 65 20 61 6e 64 20 73 65 6d 69 63 6f 6e 74 69 6e 6f 75 73 20 6d 65 61 73 75 72 65 73 crete.and.semicontinous.measures
168c0 20 66 72 6f 6d 20 74 68 65 20 50 4f 54 20 6c 69 62 72 61 72 79 2e 5c 6e 5c 6e 5c 6e 22 0a 20 20 .from.the.POT.library.\n\n\n"...
168e0 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 ....].....},.....{......."cell_t
16900 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 ype":."code",......."execution_c
16920 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b ount":.null,......."metadata":.{
16940 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 ........."collapsed":.false.....
16960 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 ..},......."outputs":.[],.......
16980 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 20 41 75 74 68 6f 72 3a 20 4b "source":.[........."#.Author:.K
169a0 69 6c 69 61 6e 20 46 61 74 72 61 73 20 3c 6b 69 6c 69 61 6e 2e 66 61 74 72 61 73 40 67 6d 61 69 ilian.Fatras.<kilian.fatras@gmai
169c0 6c 2e 63 6f 6d 3e 5c 6e 23 5c 6e 23 20 4c 69 63 65 6e 73 65 3a 20 4d 49 54 20 4c 69 63 65 6e 73 l.com>\n#\n#.License:.MIT.Licens
169e0 65 5c 6e 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 6c 61 62 20 61 73 20 e\n\nimport.matplotlib.pylab.as.
16a00 70 6c 5c 6e 69 6d 70 6f 72 74 20 6e 75 6d 70 79 20 61 73 20 6e 70 5c 6e 69 6d 70 6f 72 74 20 6f pl\nimport.numpy.as.np\nimport.o
16a20 74 5c 6e 69 6d 70 6f 72 74 20 6f 74 2e 70 6c 6f 74 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d t\nimport.ot.plot".......].....}
16a40 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b ,.....{......."cell_type":."mark
16a60 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 down",......."metadata":.{},....
16a80 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 4f 4d 50 55 54 45 20 ..."source":.[........."COMPUTE.
16aa0 54 52 41 4e 53 50 4f 52 54 41 54 49 4f 4e 20 4d 41 54 52 49 58 20 46 4f 52 20 53 45 4d 49 2d 44 TRANSPORTATION.MATRIX.FOR.SEMI-D
16ac0 55 41 4c 20 50 52 4f 42 4c 45 4d 5c 6e 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 UAL.PROBLEM\n###################
16ae0 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 ################################
16b00 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 5c 6e 23 23 23 23 23 #########################\n#####
16b20 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 ################################
16b40 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 ################################
16b60 23 23 23 23 23 23 23 5c 6e 20 44 49 53 43 52 45 54 45 20 43 41 53 45 3a 5c 6e 5c 6e 20 53 61 6d #######\n.DISCRETE.CASE:\n\n.Sam
16b80 70 6c 65 20 74 77 6f 20 64 69 73 63 72 65 74 65 20 6d 65 61 73 75 72 65 73 20 66 6f 72 20 74 68 ple.two.discrete.measures.for.th
16ba0 65 20 64 69 73 63 72 65 74 65 20 63 61 73 65 5c 6e 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d e.discrete.case\n.--------------
16bc0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c -------------------------------\
16be0 6e 5c 6e 20 44 65 66 69 6e 65 20 32 20 64 69 73 63 72 65 74 65 20 6d 65 61 73 75 72 65 73 20 61 n\n.Define.2.discrete.measures.a
16c00 20 61 6e 64 20 62 2c 20 74 68 65 20 70 6f 69 6e 74 73 20 77 68 65 72 65 20 61 72 65 20 64 65 66 .and.b,.the.points.where.are.def
16c20 69 6e 65 64 20 74 68 65 20 73 6f 75 72 63 65 5c 6e 20 61 6e 64 20 74 68 65 20 74 61 72 67 65 74 ined.the.source\n.and.the.target
16c40 20 6d 65 61 73 75 72 65 73 20 61 6e 64 20 66 69 6e 61 6c 6c 79 20 74 68 65 20 63 6f 73 74 20 6d .measures.and.finally.the.cost.m
16c60 61 74 72 69 78 20 63 2e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 atrix.c.\n\n".......].....},....
16c80 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 .{......."cell_type":."code",...
16ca0 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 ...."execution_count":.null,....
16cc0 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 ..."metadata":.{........."collap
16ce0 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 sed":.false.......},......."outp
16d00 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 uts":.[],......."source":.[.....
16d20 20 20 20 20 22 6e 5f 73 6f 75 72 63 65 20 3d 20 37 5c 6e 6e 5f 74 61 72 67 65 74 20 3d 20 34 5c ...."n_source.=.7\nn_target.=.4\
16d40 6e 72 65 67 20 3d 20 31 5c 6e 6e 75 6d 49 74 65 72 6d 61 78 20 3d 20 31 30 30 30 5c 6e 5c 6e 61 nreg.=.1\nnumItermax.=.1000\n\na
16d60 20 3d 20 6f 74 2e 75 74 69 6c 73 2e 75 6e 69 66 28 6e 5f 73 6f 75 72 63 65 29 5c 6e 62 20 3d 20 .=.ot.utils.unif(n_source)\nb.=.
16d80 6f 74 2e 75 74 69 6c 73 2e 75 6e 69 66 28 6e 5f 74 61 72 67 65 74 29 5c 6e 5c 6e 72 6e 67 20 3d ot.utils.unif(n_target)\n\nrng.=
16da0 20 6e 70 2e 72 61 6e 64 6f 6d 2e 52 61 6e 64 6f 6d 53 74 61 74 65 28 30 29 5c 6e 58 5f 73 6f 75 .np.random.RandomState(0)\nX_sou
16dc0 72 63 65 20 3d 20 72 6e 67 2e 72 61 6e 64 6e 28 6e 5f 73 6f 75 72 63 65 2c 20 32 29 5c 6e 59 5f rce.=.rng.randn(n_source,.2)\nY_
16de0 74 61 72 67 65 74 20 3d 20 72 6e 67 2e 72 61 6e 64 6e 28 6e 5f 74 61 72 67 65 74 2c 20 32 29 5c target.=.rng.randn(n_target,.2)\
16e00 6e 4d 20 3d 20 6f 74 2e 64 69 73 74 28 58 5f 73 6f 75 72 63 65 2c 20 59 5f 74 61 72 67 65 74 29 nM.=.ot.dist(X_source,.Y_target)
16e20 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 ".......].....},.....{......."ce
16e40 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 ll_type":."markdown",......."met
16e60 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 adata":.{},......."source":.[...
16e80 20 20 20 20 20 20 22 43 61 6c 6c 20 74 68 65 20 5c 22 53 41 47 5c 22 20 6d 65 74 68 6f 64 20 74 ......"Call.the.\"SAG\".method.t
16ea0 6f 20 66 69 6e 64 20 74 68 65 20 74 72 61 6e 73 70 6f 72 74 61 74 69 6f 6e 20 6d 61 74 72 69 78 o.find.the.transportation.matrix
16ec0 20 69 6e 20 74 68 65 20 64 69 73 63 72 65 74 65 20 63 61 73 65 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d .in.the.discrete.case\n---------
16ee0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
16f00 2d 2d 2d 2d 5c 6e 5c 6e 44 65 66 69 6e 65 20 74 68 65 20 6d 65 74 68 6f 64 20 5c 22 53 41 47 5c ----\n\nDefine.the.method.\"SAG\
16f20 22 2c 20 63 61 6c 6c 20 6f 74 2e 73 6f 6c 76 65 5f 73 65 6d 69 5f 64 75 61 6c 5f 65 6e 74 72 6f ",.call.ot.solve_semi_dual_entro
16f40 70 69 63 20 61 6e 64 20 70 6c 6f 74 20 74 68 65 5c 6e 72 65 73 75 6c 74 73 2e 5c 6e 5c 6e 22 0a pic.and.plot.the\nresults.\n\n".
16f60 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c ......].....},.....{......."cell
16f80 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e _type":."code",......."execution
16fa0 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a _count":.null,......."metadata":
16fc0 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 .{........."collapsed":.false...
16fe0 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 ....},......."outputs":.[],.....
17000 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 6d 65 74 68 6f 64 20 3d 20 .."source":.[........."method.=.
17020 5c 22 53 41 47 5c 22 5c 6e 73 61 67 5f 70 69 20 3d 20 6f 74 2e 73 74 6f 63 68 61 73 74 69 63 2e \"SAG\"\nsag_pi.=.ot.stochastic.
17040 73 6f 6c 76 65 5f 73 65 6d 69 5f 64 75 61 6c 5f 65 6e 74 72 6f 70 69 63 28 61 2c 20 62 2c 20 4d solve_semi_dual_entropic(a,.b,.M
17060 2c 20 72 65 67 2c 20 6d 65 74 68 6f 64 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ,.reg,.method,\n................
17080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
170a0 6e 75 6d 49 74 65 72 6d 61 78 29 5c 6e 70 72 69 6e 74 28 73 61 67 5f 70 69 29 22 0a 20 20 20 20 numItermax)\nprint(sag_pi)".....
170c0 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 ..].....},.....{......."cell_typ
170e0 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 e":."markdown",......."metadata"
17100 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 :.{},......."source":.[.........
17120 22 53 45 4d 49 43 4f 4e 54 49 4e 4f 55 53 20 43 41 53 45 3a 5c 6e 5c 6e 53 61 6d 70 6c 65 20 6f "SEMICONTINOUS.CASE:\n\nSample.o
17140 6e 65 20 67 65 6e 65 72 61 6c 20 6d 65 61 73 75 72 65 20 61 2c 20 6f 6e 65 20 64 69 73 63 72 65 ne.general.measure.a,.one.discre
17160 74 65 20 6d 65 61 73 75 72 65 73 20 62 20 66 6f 72 20 74 68 65 20 73 65 6d 69 63 6f 6e 74 69 6e te.measures.b.for.the.semicontin
17180 6f 75 73 5c 6e 63 61 73 65 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ous\ncase\n---------------------
171a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 44 65 66 69 ------------------------\n\nDefi
171c0 6e 65 20 6f 6e 65 20 67 65 6e 65 72 61 6c 20 6d 65 61 73 75 72 65 20 61 2c 20 6f 6e 65 20 64 69 ne.one.general.measure.a,.one.di
171e0 73 63 72 65 74 65 20 6d 65 61 73 75 72 65 73 20 62 2c 20 74 68 65 20 70 6f 69 6e 74 73 20 77 68 screte.measures.b,.the.points.wh
17200 65 72 65 5c 6e 61 72 65 20 64 65 66 69 6e 65 64 20 74 68 65 20 73 6f 75 72 63 65 20 61 6e 64 20 ere\nare.defined.the.source.and.
17220 74 68 65 20 74 61 72 67 65 74 20 6d 65 61 73 75 72 65 73 20 61 6e 64 20 66 69 6e 61 6c 6c 79 20 the.target.measures.and.finally.
17240 74 68 65 20 63 6f 73 74 20 6d 61 74 72 69 78 20 63 2e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a the.cost.matrix.c.\n\n".......].
17260 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 ....},.....{......."cell_type":.
17280 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a "code",......."execution_count":
172a0 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 .null,......."metadata":.{......
172c0 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 ..."collapsed":.false.......},..
172e0 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 ....."outputs":.[],......."sourc
17300 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 6e 5f 73 6f 75 72 63 65 20 3d 20 37 5c 6e 6e 5f 74 e":.[........."n_source.=.7\nn_t
17320 61 72 67 65 74 20 3d 20 34 5c 6e 72 65 67 20 3d 20 31 5c 6e 6e 75 6d 49 74 65 72 6d 61 78 20 3d arget.=.4\nreg.=.1\nnumItermax.=
17340 20 31 30 30 30 5c 6e 6c 6f 67 20 3d 20 54 72 75 65 5c 6e 5c 6e 61 20 3d 20 6f 74 2e 75 74 69 6c .1000\nlog.=.True\n\na.=.ot.util
17360 73 2e 75 6e 69 66 28 6e 5f 73 6f 75 72 63 65 29 5c 6e 62 20 3d 20 6f 74 2e 75 74 69 6c 73 2e 75 s.unif(n_source)\nb.=.ot.utils.u
17380 6e 69 66 28 6e 5f 74 61 72 67 65 74 29 5c 6e 5c 6e 72 6e 67 20 3d 20 6e 70 2e 72 61 6e 64 6f 6d nif(n_target)\n\nrng.=.np.random
173a0 2e 52 61 6e 64 6f 6d 53 74 61 74 65 28 30 29 5c 6e 58 5f 73 6f 75 72 63 65 20 3d 20 72 6e 67 2e .RandomState(0)\nX_source.=.rng.
173c0 72 61 6e 64 6e 28 6e 5f 73 6f 75 72 63 65 2c 20 32 29 5c 6e 59 5f 74 61 72 67 65 74 20 3d 20 72 randn(n_source,.2)\nY_target.=.r
173e0 6e 67 2e 72 61 6e 64 6e 28 6e 5f 74 61 72 67 65 74 2c 20 32 29 5c 6e 4d 20 3d 20 6f 74 2e 64 69 ng.randn(n_target,.2)\nM.=.ot.di
17400 73 74 28 58 5f 73 6f 75 72 63 65 2c 20 59 5f 74 61 72 67 65 74 29 22 0a 20 20 20 20 20 20 5d 0a st(X_source,.Y_target)".......].
17420 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 ....},.....{......."cell_type":.
17440 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d "markdown",......."metadata":.{}
17460 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 61 6c ,......."source":.[........."Cal
17480 6c 20 74 68 65 20 5c 22 41 53 47 44 5c 22 20 6d 65 74 68 6f 64 20 74 6f 20 66 69 6e 64 20 74 68 l.the.\"ASGD\".method.to.find.th
174a0 65 20 74 72 61 6e 73 70 6f 72 74 61 74 69 6f 6e 20 6d 61 74 72 69 78 20 69 6e 20 74 68 65 20 73 e.transportation.matrix.in.the.s
174c0 65 6d 69 63 6f 6e 74 69 6e 6f 75 73 5c 6e 63 61 73 65 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d emicontinous\ncase\n------------
174e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
17500 2d 5c 6e 5c 6e 44 65 66 69 6e 65 20 74 68 65 20 6d 65 74 68 6f 64 20 5c 22 41 53 47 44 5c 22 2c -\n\nDefine.the.method.\"ASGD\",
17520 20 63 61 6c 6c 20 6f 74 2e 73 6f 6c 76 65 5f 73 65 6d 69 5f 64 75 61 6c 5f 65 6e 74 72 6f 70 69 .call.ot.solve_semi_dual_entropi
17540 63 20 61 6e 64 20 70 6c 6f 74 20 74 68 65 5c 6e 72 65 73 75 6c 74 73 2e 5c 6e 5c 6e 22 0a 20 20 c.and.plot.the\nresults.\n\n"...
17560 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 ....].....},.....{......."cell_t
17580 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 ype":."code",......."execution_c
175a0 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b ount":.null,......."metadata":.{
175c0 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 ........."collapsed":.false.....
175e0 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 ..},......."outputs":.[],.......
17600 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 6d 65 74 68 6f 64 20 3d 20 5c 22 "source":.[........."method.=.\"
17620 41 53 47 44 5c 22 5c 6e 61 73 67 64 5f 70 69 2c 20 6c 6f 67 5f 61 73 67 64 20 3d 20 6f 74 2e 73 ASGD\"\nasgd_pi,.log_asgd.=.ot.s
17640 74 6f 63 68 61 73 74 69 63 2e 73 6f 6c 76 65 5f 73 65 6d 69 5f 64 75 61 6c 5f 65 6e 74 72 6f 70 tochastic.solve_semi_dual_entrop
17660 69 63 28 61 2c 20 62 2c 20 4d 2c 20 72 65 67 2c 20 6d 65 74 68 6f 64 2c 5c 6e 20 20 20 20 20 20 ic(a,.b,.M,.reg,.method,\n......
17680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
176a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 75 6d 49 74 65 72 6d 61 78 2c .....................numItermax,
176c0 20 6c 6f 67 3d 6c 6f 67 29 5c 6e 70 72 69 6e 74 28 6c 6f 67 5f 61 73 67 64 5b 27 61 6c 70 68 61 .log=log)\nprint(log_asgd['alpha
176e0 27 5d 2c 20 6c 6f 67 5f 61 73 67 64 5b 27 62 65 74 61 27 5d 29 5c 6e 70 72 69 6e 74 28 61 73 67 '],.log_asgd['beta'])\nprint(asg
17700 64 5f 70 69 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 d_pi)".......].....},.....{.....
17720 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 .."cell_type":."markdown",......
17740 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a ."metadata":.{},......."source":
17760 20 5b 0a 20 20 20 20 20 20 20 20 22 43 6f 6d 70 61 72 65 20 74 68 65 20 72 65 73 75 6c 74 73 20 .[........."Compare.the.results.
17780 77 69 74 68 20 74 68 65 20 53 69 6e 6b 68 6f 72 6e 20 61 6c 67 6f 72 69 74 68 6d 5c 6e 2d 2d 2d with.the.Sinkhorn.algorithm\n---
177a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
177c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 43 61 6c 6c 20 74 68 65 20 53 69 6e 6b 68 6f 72 6e 20 ----------\n\nCall.the.Sinkhorn.
177e0 61 6c 67 6f 72 69 74 68 6d 20 66 72 6f 6d 20 50 4f 54 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a algorithm.from.POT\n\n".......].
17800 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 ....},.....{......."cell_type":.
17820 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a "code",......."execution_count":
17840 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 .null,......."metadata":.{......
17860 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 ..."collapsed":.false.......},..
17880 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 ....."outputs":.[],......."sourc
178a0 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 73 69 6e 6b 68 6f 72 6e 5f 70 69 20 3d 20 6f 74 2e e":.[........."sinkhorn_pi.=.ot.
178c0 73 69 6e 6b 68 6f 72 6e 28 61 2c 20 62 2c 20 4d 2c 20 72 65 67 29 5c 6e 70 72 69 6e 74 28 73 69 sinkhorn(a,.b,.M,.reg)\nprint(si
178e0 6e 6b 68 6f 72 6e 5f 70 69 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b nkhorn_pi)".......].....},.....{
17900 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a ......."cell_type":."markdown",.
17920 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 ......"metadata":.{},......."sou
17940 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 50 4c 4f 54 20 54 52 41 4e 53 50 4f 52 54 41 rce":.[........."PLOT.TRANSPORTA
17960 54 49 4f 4e 20 4d 41 54 52 49 58 5c 6e 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 TION.MATRIX\n###################
17980 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 ################################
179a0 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 5c 6e 5c 6e 22 0a ##########################\n\n".
179c0 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c ......].....},.....{......."cell
179e0 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 _type":."markdown",......."metad
17a00 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 ata":.{},......."source":.[.....
17a20 20 20 20 20 22 50 6c 6f 74 20 53 41 47 20 72 65 73 75 6c 74 73 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d ...."Plot.SAG.results\n---------
17a40 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 -------\n\n".......].....},.....
17a60 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 {......."cell_type":."code",....
17a80 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 ..."execution_count":.null,.....
17aa0 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 .."metadata":.{........."collaps
17ac0 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 ed":.false.......},......."outpu
17ae0 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 ts":.[],......."source":.[......
17b00 20 20 20 22 70 6c 2e 66 69 67 75 72 65 28 34 2c 20 66 69 67 73 69 7a 65 3d 28 35 2c 20 35 29 29 ..."pl.figure(4,.figsize=(5,.5))
17b20 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 31 44 5f 6d 61 74 28 61 2c 20 62 2c 20 73 61 67 5f 70 \not.plot.plot1D_mat(a,.b,.sag_p
17b40 69 2c 20 27 73 65 6d 69 2d 64 75 61 6c 20 3a 20 4f 54 20 6d 61 74 72 69 78 20 53 41 47 27 29 5c i,.'semi-dual.:.OT.matrix.SAG')\
17b60 6e 70 6c 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b npl.show()".......].....},.....{
17b80 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a ......."cell_type":."markdown",.
17ba0 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 ......"metadata":.{},......."sou
17bc0 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 50 6c 6f 74 20 41 53 47 44 20 72 65 73 75 6c rce":.[........."Plot.ASGD.resul
17be0 74 73 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 ts\n-----------------\n\n"......
17c00 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 .].....},.....{......."cell_type
17c20 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e ":."code",......."execution_coun
17c40 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 t":.null,......."metadata":.{...
17c60 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d ......"collapsed":.false.......}
17c80 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f ,......."outputs":.[],......."so
17ca0 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 70 6c 2e 66 69 67 75 72 65 28 34 2c 20 66 urce":.[........."pl.figure(4,.f
17cc0 69 67 73 69 7a 65 3d 28 35 2c 20 35 29 29 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 31 44 5f 6d igsize=(5,.5))\not.plot.plot1D_m
17ce0 61 74 28 61 2c 20 62 2c 20 61 73 67 64 5f 70 69 2c 20 27 73 65 6d 69 2d 64 75 61 6c 20 3a 20 4f at(a,.b,.asgd_pi,.'semi-dual.:.O
17d00 54 20 6d 61 74 72 69 78 20 41 53 47 44 27 29 5c 6e 70 6c 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 T.matrix.ASGD')\npl.show()".....
17d20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 ..].....},.....{......."cell_typ
17d40 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 e":."markdown",......."metadata"
17d60 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 :.{},......."source":.[.........
17d80 22 50 6c 6f 74 20 53 69 6e 6b 68 6f 72 6e 20 72 65 73 75 6c 74 73 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d "Plot.Sinkhorn.results\n--------
17da0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d -------------\n\n".......].....}
17dc0 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 ,.....{......."cell_type":."code
17de0 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c ",......."execution_count":.null
17e00 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 ,......."metadata":.{........."c
17e20 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 ollapsed":.false.......},.......
17e40 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b "outputs":.[],......."source":.[
17e60 0a 20 20 20 20 20 20 20 20 22 70 6c 2e 66 69 67 75 72 65 28 34 2c 20 66 69 67 73 69 7a 65 3d 28 ........."pl.figure(4,.figsize=(
17e80 35 2c 20 35 29 29 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 31 44 5f 6d 61 74 28 61 2c 20 62 2c 5,.5))\not.plot.plot1D_mat(a,.b,
17ea0 20 73 69 6e 6b 68 6f 72 6e 5f 70 69 2c 20 27 4f 54 20 6d 61 74 72 69 78 20 53 69 6e 6b 68 6f 72 .sinkhorn_pi,.'OT.matrix.Sinkhor
17ec0 6e 27 29 5c 6e 70 6c 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 n')\npl.show()".......].....},..
17ee0 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 ...{......."cell_type":."markdow
17f00 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 n",......."metadata":.{},.......
17f20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 4f 4d 50 55 54 45 20 54 52 41 "source":.[........."COMPUTE.TRA
17f40 4e 53 50 4f 52 54 41 54 49 4f 4e 20 4d 41 54 52 49 58 20 46 4f 52 20 44 55 41 4c 20 50 52 4f 42 NSPORTATION.MATRIX.FOR.DUAL.PROB
17f60 4c 45 4d 5c 6e 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 LEM\n###########################
17f80 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 ################################
17fa0 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 5c 6e 23 23 23 23 23 23 23 23 23 23 23 23 23 #################\n#############
17fc0 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 ################################
17fe0 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 5c ###############################\
18000 6e 20 53 45 4d 49 43 4f 4e 54 49 4e 4f 55 53 20 43 41 53 45 3a 5c 6e 5c 6e 20 53 61 6d 70 6c 65 n.SEMICONTINOUS.CASE:\n\n.Sample
18020 20 6f 6e 65 20 67 65 6e 65 72 61 6c 20 6d 65 61 73 75 72 65 20 61 2c 20 6f 6e 65 20 64 69 73 63 .one.general.measure.a,.one.disc
18040 72 65 74 65 20 6d 65 61 73 75 72 65 73 20 62 20 66 6f 72 20 74 68 65 20 73 65 6d 69 63 6f 6e 74 rete.measures.b.for.the.semicont
18060 69 6e 6f 75 73 5c 6e 20 63 61 73 65 5c 6e 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d inous\n.case\n.-----------------
18080 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e ----------------------------\n\n
180a0 20 44 65 66 69 6e 65 20 6f 6e 65 20 67 65 6e 65 72 61 6c 20 6d 65 61 73 75 72 65 20 61 2c 20 6f .Define.one.general.measure.a,.o
180c0 6e 65 20 64 69 73 63 72 65 74 65 20 6d 65 61 73 75 72 65 73 20 62 2c 20 74 68 65 20 70 6f 69 6e ne.discrete.measures.b,.the.poin
180e0 74 73 20 77 68 65 72 65 5c 6e 20 61 72 65 20 64 65 66 69 6e 65 64 20 74 68 65 20 73 6f 75 72 63 ts.where\n.are.defined.the.sourc
18100 65 20 61 6e 64 20 74 68 65 20 74 61 72 67 65 74 20 6d 65 61 73 75 72 65 73 20 61 6e 64 20 66 69 e.and.the.target.measures.and.fi
18120 6e 61 6c 6c 79 20 74 68 65 20 63 6f 73 74 20 6d 61 74 72 69 78 20 63 2e 5c 6e 5c 6e 22 0a 20 20 nally.the.cost.matrix.c.\n\n"...
18140 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 ....].....},.....{......."cell_t
18160 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 ype":."code",......."execution_c
18180 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b ount":.null,......."metadata":.{
181a0 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 ........."collapsed":.false.....
181c0 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 ..},......."outputs":.[],.......
181e0 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 6e 5f 73 6f 75 72 63 65 20 3d 20 "source":.[........."n_source.=.
18200 37 5c 6e 6e 5f 74 61 72 67 65 74 20 3d 20 34 5c 6e 72 65 67 20 3d 20 31 5c 6e 6e 75 6d 49 74 65 7\nn_target.=.4\nreg.=.1\nnumIte
18220 72 6d 61 78 20 3d 20 31 30 30 30 30 30 5c 6e 6c 72 20 3d 20 30 2e 31 5c 6e 62 61 74 63 68 5f 73 rmax.=.100000\nlr.=.0.1\nbatch_s
18240 69 7a 65 20 3d 20 33 5c 6e 6c 6f 67 20 3d 20 54 72 75 65 5c 6e 5c 6e 61 20 3d 20 6f 74 2e 75 74 ize.=.3\nlog.=.True\n\na.=.ot.ut
18260 69 6c 73 2e 75 6e 69 66 28 6e 5f 73 6f 75 72 63 65 29 5c 6e 62 20 3d 20 6f 74 2e 75 74 69 6c 73 ils.unif(n_source)\nb.=.ot.utils
18280 2e 75 6e 69 66 28 6e 5f 74 61 72 67 65 74 29 5c 6e 5c 6e 72 6e 67 20 3d 20 6e 70 2e 72 61 6e 64 .unif(n_target)\n\nrng.=.np.rand
182a0 6f 6d 2e 52 61 6e 64 6f 6d 53 74 61 74 65 28 30 29 5c 6e 58 5f 73 6f 75 72 63 65 20 3d 20 72 6e om.RandomState(0)\nX_source.=.rn
182c0 67 2e 72 61 6e 64 6e 28 6e 5f 73 6f 75 72 63 65 2c 20 32 29 5c 6e 59 5f 74 61 72 67 65 74 20 3d g.randn(n_source,.2)\nY_target.=
182e0 20 72 6e 67 2e 72 61 6e 64 6e 28 6e 5f 74 61 72 67 65 74 2c 20 32 29 5c 6e 4d 20 3d 20 6f 74 2e .rng.randn(n_target,.2)\nM.=.ot.
18300 64 69 73 74 28 58 5f 73 6f 75 72 63 65 2c 20 59 5f 74 61 72 67 65 74 29 22 0a 20 20 20 20 20 20 dist(X_source,.Y_target)".......
18320 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 ].....},.....{......."cell_type"
18340 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 :."markdown",......."metadata":.
18360 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 {},......."source":.[........."C
18380 61 6c 6c 20 74 68 65 20 5c 22 53 47 44 5c 22 20 64 75 61 6c 20 6d 65 74 68 6f 64 20 74 6f 20 66 all.the.\"SGD\".dual.method.to.f
183a0 69 6e 64 20 74 68 65 20 74 72 61 6e 73 70 6f 72 74 61 74 69 6f 6e 20 6d 61 74 72 69 78 20 69 6e ind.the.transportation.matrix.in
183c0 20 74 68 65 5c 6e 73 65 6d 69 63 6f 6e 74 69 6e 6f 75 73 20 63 61 73 65 5c 6e 2d 2d 2d 2d 2d 2d .the\nsemicontinous.case\n------
183e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
18400 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 43 61 6c 6c 20 6f 74 2e 73 6f 6c 76 65 5f 64 75 61 6c 5f 65 6e -------\n\nCall.ot.solve_dual_en
18420 74 72 6f 70 69 63 20 61 6e 64 20 70 6c 6f 74 20 74 68 65 20 72 65 73 75 6c 74 73 2e 5c 6e 5c 6e tropic.and.plot.the.results.\n\n
18440 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 ".......].....},.....{......."ce
18460 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 ll_type":."code",......."executi
18480 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 on_count":.null,......."metadata
184a0 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a ":.{........."collapsed":.false.
184c0 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 ......},......."outputs":.[],...
184e0 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 73 67 64 5f 64 75 61 ...."source":.[........."sgd_dua
18500 6c 5f 70 69 2c 20 6c 6f 67 5f 73 67 64 20 3d 20 6f 74 2e 73 74 6f 63 68 61 73 74 69 63 2e 73 6f l_pi,.log_sgd.=.ot.stochastic.so
18520 6c 76 65 5f 64 75 61 6c 5f 65 6e 74 72 6f 70 69 63 28 61 2c 20 62 2c 20 4d 2c 20 72 65 67 2c 5c lve_dual_entropic(a,.b,.M,.reg,\
18540 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n...............................
18560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 61 74 63 68 5f ..........................batch_
18580 73 69 7a 65 2c 20 6e 75 6d 49 74 65 72 6d 61 78 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 size,.numItermax,\n.............
185a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
185c0 20 20 20 20 20 20 20 20 20 20 20 20 6c 72 2c 20 6c 6f 67 3d 6c 6f 67 29 5c 6e 70 72 69 6e 74 28 ............lr,.log=log)\nprint(
185e0 6c 6f 67 5f 73 67 64 5b 27 61 6c 70 68 61 27 5d 2c 20 6c 6f 67 5f 73 67 64 5b 27 62 65 74 61 27 log_sgd['alpha'],.log_sgd['beta'
18600 5d 29 5c 6e 70 72 69 6e 74 28 73 67 64 5f 64 75 61 6c 5f 70 69 29 22 0a 20 20 20 20 20 20 5d 0a ])\nprint(sgd_dual_pi)".......].
18620 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 ....},.....{......."cell_type":.
18640 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d "markdown",......."metadata":.{}
18660 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 6f 6d ,......."source":.[........."Com
18680 70 61 72 65 20 74 68 65 20 72 65 73 75 6c 74 73 20 77 69 74 68 20 74 68 65 20 53 69 6e 6b 68 6f pare.the.results.with.the.Sinkho
186a0 72 6e 20 61 6c 67 6f 72 69 74 68 6d 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d rn.algorithm\n------------------
186c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 43 ---------------------------\n\nC
186e0 61 6c 6c 20 74 68 65 20 53 69 6e 6b 68 6f 72 6e 20 61 6c 67 6f 72 69 74 68 6d 20 66 72 6f 6d 20 all.the.Sinkhorn.algorithm.from.
18700 50 4f 54 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 POT\n\n".......].....},.....{...
18720 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 ...."cell_type":."code",......."
18740 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d execution_count":.null,......."m
18760 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a etadata":.{........."collapsed":
18780 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a .false.......},......."outputs":
187a0 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 .[],......."source":.[........."
187c0 73 69 6e 6b 68 6f 72 6e 5f 70 69 20 3d 20 6f 74 2e 73 69 6e 6b 68 6f 72 6e 28 61 2c 20 62 2c 20 sinkhorn_pi.=.ot.sinkhorn(a,.b,.
187e0 4d 2c 20 72 65 67 29 5c 6e 70 72 69 6e 74 28 73 69 6e 6b 68 6f 72 6e 5f 70 69 29 22 0a 20 20 20 M,.reg)\nprint(sinkhorn_pi)"....
18800 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 ...].....},.....{......."cell_ty
18820 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 pe":."markdown",......."metadata
18840 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 ":.{},......."source":.[........
18860 20 22 50 6c 6f 74 20 20 53 47 44 20 72 65 73 75 6c 74 73 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ."Plot..SGD.results\n-----------
18880 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b ------\n\n".......].....},.....{
188a0 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 ......."cell_type":."code",.....
188c0 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 .."execution_count":.null,......
188e0 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 ."metadata":.{........."collapse
18900 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 d":.false.......},......."output
18920 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 s":.[],......."source":.[.......
18940 20 20 22 70 6c 2e 66 69 67 75 72 65 28 34 2c 20 66 69 67 73 69 7a 65 3d 28 35 2c 20 35 29 29 5c .."pl.figure(4,.figsize=(5,.5))\
18960 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 31 44 5f 6d 61 74 28 61 2c 20 62 2c 20 73 67 64 5f 64 75 not.plot.plot1D_mat(a,.b,.sgd_du
18980 61 6c 5f 70 69 2c 20 27 64 75 61 6c 20 3a 20 4f 54 20 6d 61 74 72 69 78 20 53 47 44 27 29 5c 6e al_pi,.'dual.:.OT.matrix.SGD')\n
189a0 70 6c 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a pl.show()".......].....},.....{.
189c0 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 ......"cell_type":."markdown",..
189e0 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 ....."metadata":.{},......."sour
18a00 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 50 6c 6f 74 20 53 69 6e 6b 68 6f 72 6e 20 72 65 ce":.[........."Plot.Sinkhorn.re
18a20 73 75 6c 74 73 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e sults\n---------------------\n\n
18a40 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 ".......].....},.....{......."ce
18a60 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 ll_type":."code",......."executi
18a80 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 on_count":.null,......."metadata
18aa0 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a ":.{........."collapsed":.false.
18ac0 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 ......},......."outputs":.[],...
18ae0 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 70 6c 2e 66 69 67 75 ...."source":.[........."pl.figu
18b00 72 65 28 34 2c 20 66 69 67 73 69 7a 65 3d 28 35 2c 20 35 29 29 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 re(4,.figsize=(5,.5))\not.plot.p
18b20 6c 6f 74 31 44 5f 6d 61 74 28 61 2c 20 62 2c 20 73 69 6e 6b 68 6f 72 6e 5f 70 69 2c 20 27 4f 54 lot1D_mat(a,.b,.sinkhorn_pi,.'OT
18b40 20 6d 61 74 72 69 78 20 53 69 6e 6b 68 6f 72 6e 27 29 5c 6e 70 6c 2e 73 68 6f 77 28 29 22 0a 20 .matrix.Sinkhorn')\npl.show()"..
18b60 20 20 20 20 20 5d 0a 20 20 20 20 7d 0a 20 20 5d 2c 0a 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 .....].....}...],..."metadata":.
18b80 7b 0a 20 20 20 20 22 6b 65 72 6e 65 6c 73 70 65 63 22 3a 20 7b 0a 20 20 20 20 20 20 22 64 69 73 {....."kernelspec":.{......."dis
18ba0 70 6c 61 79 5f 6e 61 6d 65 22 3a 20 22 50 79 74 68 6f 6e 20 33 22 2c 0a 20 20 20 20 20 20 22 6c play_name":."Python.3",......."l
18bc0 61 6e 67 75 61 67 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 anguage":."python",......."name"
18be0 3a 20 22 70 79 74 68 6f 6e 33 22 0a 20 20 20 20 7d 2c 0a 20 20 20 20 22 6c 61 6e 67 75 61 67 65 :."python3".....},....."language
18c00 5f 69 6e 66 6f 22 3a 20 7b 0a 20 20 20 20 20 20 22 63 6f 64 65 6d 69 72 72 6f 72 5f 6d 6f 64 65 _info":.{......."codemirror_mode
18c20 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 69 70 79 74 68 6f 6e 22 2c 0a ":.{........."name":."ipython",.
18c40 20 20 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 33 0a 20 20 20 20 20 20 7d 2c 0a 20 20 ........"version":.3.......},...
18c60 20 20 20 20 22 66 69 6c 65 5f 65 78 74 65 6e 73 69 6f 6e 22 3a 20 22 2e 70 79 22 2c 0a 20 20 20 ...."file_extension":.".py",....
18c80 20 20 20 22 6d 69 6d 65 74 79 70 65 22 3a 20 22 74 65 78 74 2f 78 2d 70 79 74 68 6f 6e 22 2c 0a ..."mimetype":."text/x-python",.
18ca0 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e ......"name":."python",......."n
18cc0 62 63 6f 6e 76 65 72 74 5f 65 78 70 6f 72 74 65 72 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 bconvert_exporter":."python",...
18ce0 20 20 20 20 22 70 79 67 6d 65 6e 74 73 5f 6c 65 78 65 72 22 3a 20 22 69 70 79 74 68 6f 6e 33 22 ...."pygments_lexer":."ipython3"
18d00 2c 0a 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 36 2e 39 22 0a 20 20 20 20 7d ,......."version":."3.6.9".....}
18d20 0a 20 20 7d 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 22 3a 20 34 2c 0a 20 20 22 6e 62 66 6f 72 6d ...},..."nbformat":.4,..."nbform
18d40 61 74 5f 6d 69 6e 6f 72 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 c1 72 94 50 9c da 7a a2 at_minor":.0.}PK.........r.P..z.
18d60 d8 19 00 00 d8 19 00 00 0e 00 00 00 70 6c 6f 74 5f 66 67 77 2e 69 70 79 6e 62 7b 0a 20 20 22 63 ............plot_fgw.ipynb{..."c
18d80 65 6c 6c 73 22 3a 20 5b 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 ells":.[.....{......."cell_type"
18da0 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 :."code",......."execution_count
18dc0 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 ":.null,......."metadata":.{....
18de0 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c ....."collapsed":.false.......},
18e00 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 ......."outputs":.[],......."sou
18e20 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 25 6d 61 74 70 6c 6f 74 6c 69 62 20 69 6e 6c rce":.[........."%matplotlib.inl
18e40 69 6e 65 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 ine".......].....},.....{.......
18e60 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 "cell_type":."markdown",......."
18e80 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b metadata":.{},......."source":.[
18ea0 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 50 6c 6f 74 20 46 75 73 65 64 2d 67 72 6f 6d 6f 76 2d ........."\n#.Plot.Fused-gromov-
18ec0 57 61 73 73 65 72 73 74 65 69 6e 5c 6e 5c 6e 5c 6e 54 68 69 73 20 65 78 61 6d 70 6c 65 20 69 6c Wasserstein\n\n\nThis.example.il
18ee0 6c 75 73 74 72 61 74 65 73 20 74 68 65 20 63 6f 6d 70 75 74 61 74 69 6f 6e 20 6f 66 20 46 47 57 lustrates.the.computation.of.FGW
18f00 20 66 6f 72 20 31 44 20 6d 65 61 73 75 72 65 73 5b 31 38 5d 2e 5c 6e 5c 6e 2e 2e 20 5b 31 38 5d .for.1D.measures[18].\n\n...[18]
18f20 20 56 61 79 65 72 20 54 69 74 6f 75 61 6e 2c 20 43 68 61 70 65 6c 20 4c 61 65 74 69 74 69 61 2c .Vayer.Titouan,.Chapel.Laetitia,
18f40 20 46 6c 61 6d 61 72 79 20 52 7b 27 65 7d 6d 69 2c 20 54 61 76 65 6e 61 72 64 20 52 6f 6d 61 69 .Flamary.R{'e}mi,.Tavenard.Romai
18f60 6e 5c 6e 20 20 20 20 20 20 61 6e 64 20 43 6f 75 72 74 79 20 4e 69 63 6f 6c 61 73 5c 6e 20 20 20 n\n......and.Courty.Nicolas\n...
18f80 20 5c 22 4f 70 74 69 6d 61 6c 20 54 72 61 6e 73 70 6f 72 74 20 66 6f 72 20 73 74 72 75 63 74 75 .\"Optimal.Transport.for.structu
18fa0 72 65 64 20 64 61 74 61 20 77 69 74 68 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 6f 6e 20 67 72 61 red.data.with.application.on.gra
18fc0 70 68 73 5c 22 5c 6e 20 20 20 20 49 6e 74 65 72 6e 61 74 69 6f 6e 61 6c 20 43 6f 6e 66 65 72 65 phs\"\n....International.Confere
18fe0 6e 63 65 20 6f 6e 20 4d 61 63 68 69 6e 65 20 4c 65 61 72 6e 69 6e 67 20 28 49 43 4d 4c 29 2e 20 nce.on.Machine.Learning.(ICML)..
19000 32 30 31 39 2e 5c 6e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 2019.\n\n\n".......].....},.....
19020 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 {......."cell_type":."code",....
19040 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 ..."execution_count":.null,.....
19060 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 .."metadata":.{........."collaps
19080 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 ed":.false.......},......."outpu
190a0 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 ts":.[],......."source":.[......
190c0 20 20 20 22 23 20 41 75 74 68 6f 72 3a 20 54 69 74 6f 75 61 6e 20 56 61 79 65 72 20 3c 74 69 74 ..."#.Author:.Titouan.Vayer.<tit
190e0 6f 75 61 6e 2e 76 61 79 65 72 40 69 72 69 73 61 2e 66 72 3e 5c 6e 23 5c 6e 23 20 4c 69 63 65 6e ouan.vayer@irisa.fr>\n#\n#.Licen
19100 73 65 3a 20 4d 49 54 20 4c 69 63 65 6e 73 65 5c 6e 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f se:.MIT.License\n\nimport.matplo
19120 74 6c 69 62 2e 70 79 70 6c 6f 74 20 61 73 20 70 6c 5c 6e 69 6d 70 6f 72 74 20 6e 75 6d 70 79 20 tlib.pyplot.as.pl\nimport.numpy.
19140 61 73 20 6e 70 5c 6e 69 6d 70 6f 72 74 20 6f 74 5c 6e 66 72 6f 6d 20 6f 74 2e 67 72 6f 6d 6f 76 as.np\nimport.ot\nfrom.ot.gromov
19160 20 69 6d 70 6f 72 74 20 67 72 6f 6d 6f 76 5f 77 61 73 73 65 72 73 74 65 69 6e 2c 20 66 75 73 65 .import.gromov_wasserstein,.fuse
19180 64 5f 67 72 6f 6d 6f 76 5f 77 61 73 73 65 72 73 74 65 69 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 d_gromov_wasserstein".......]...
191a0 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d ..},.....{......."cell_type":."m
191c0 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a arkdown",......."metadata":.{},.
191e0 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 47 65 6e 65 72 ......"source":.[........."Gener
19200 61 74 65 20 64 61 74 61 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d ate.data\n---------\n\n".......]
19220 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a .....},.....{......."cell_type":
19240 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b ."markdown",......."metadata":.{
19260 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 57 65 },......."source":.[........."We
19280 20 63 72 65 61 74 65 20 74 77 6f 20 31 44 20 72 61 6e 64 6f 6d 20 6d 65 61 73 75 72 65 73 5c 6e .create.two.1D.random.measures\n
192a0 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 \n".......].....},.....{......."
192c0 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 cell_type":."code",......."execu
192e0 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 tion_count":.null,......."metada
19300 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 ta":.{........."collapsed":.fals
19320 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a e.......},......."outputs":.[],.
19340 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 6e 20 3d 20 32 ......"source":.[........."n.=.2
19360 30 20 20 23 20 6e 75 6d 62 65 72 20 6f 66 20 70 6f 69 6e 74 73 20 69 6e 20 74 68 65 20 66 69 72 0..#.number.of.points.in.the.fir
19380 73 74 20 64 69 73 74 72 69 62 75 74 69 6f 6e 5c 6e 6e 32 20 3d 20 33 30 20 20 23 20 6e 75 6d 62 st.distribution\nn2.=.30..#.numb
193a0 65 72 20 6f 66 20 70 6f 69 6e 74 73 20 69 6e 20 74 68 65 20 73 65 63 6f 6e 64 20 64 69 73 74 72 er.of.points.in.the.second.distr
193c0 69 62 75 74 69 6f 6e 5c 6e 73 69 67 20 3d 20 31 20 20 23 20 73 74 64 20 6f 66 20 66 69 72 73 74 ibution\nsig.=.1..#.std.of.first
193e0 20 64 69 73 74 72 69 62 75 74 69 6f 6e 5c 6e 73 69 67 32 20 3d 20 30 2e 31 20 20 23 20 73 74 64 .distribution\nsig2.=.0.1..#.std
19400 20 6f 66 20 73 65 63 6f 6e 64 20 64 69 73 74 72 69 62 75 74 69 6f 6e 5c 6e 5c 6e 6e 70 2e 72 61 .of.second.distribution\n\nnp.ra
19420 6e 64 6f 6d 2e 73 65 65 64 28 30 29 5c 6e 5c 6e 70 68 69 20 3d 20 6e 70 2e 61 72 61 6e 67 65 28 ndom.seed(0)\n\nphi.=.np.arange(
19440 6e 29 5b 3a 2c 20 4e 6f 6e 65 5d 5c 6e 78 73 20 3d 20 70 68 69 20 2b 20 73 69 67 20 2a 20 6e 70 n)[:,.None]\nxs.=.phi.+.sig.*.np
19460 2e 72 61 6e 64 6f 6d 2e 72 61 6e 64 6e 28 6e 2c 20 31 29 5c 6e 79 73 20 3d 20 6e 70 2e 76 73 74 .random.randn(n,.1)\nys.=.np.vst
19480 61 63 6b 28 28 6e 70 2e 6f 6e 65 73 28 28 6e 20 2f 2f 20 32 2c 20 31 29 29 2c 20 30 20 2a 20 6e ack((np.ones((n.//.2,.1)),.0.*.n
194a0 70 2e 6f 6e 65 73 28 28 6e 20 2f 2f 20 32 2c 20 31 29 29 29 29 20 2b 20 73 69 67 32 20 2a 20 6e p.ones((n.//.2,.1)))).+.sig2.*.n
194c0 70 2e 72 61 6e 64 6f 6d 2e 72 61 6e 64 6e 28 6e 2c 20 31 29 5c 6e 5c 6e 70 68 69 32 20 3d 20 6e p.random.randn(n,.1)\n\nphi2.=.n
194e0 70 2e 61 72 61 6e 67 65 28 6e 32 29 5b 3a 2c 20 4e 6f 6e 65 5d 5c 6e 78 74 20 3d 20 70 68 69 32 p.arange(n2)[:,.None]\nxt.=.phi2
19500 20 2b 20 73 69 67 20 2a 20 6e 70 2e 72 61 6e 64 6f 6d 2e 72 61 6e 64 6e 28 6e 32 2c 20 31 29 5c .+.sig.*.np.random.randn(n2,.1)\
19520 6e 79 74 20 3d 20 6e 70 2e 76 73 74 61 63 6b 28 28 6e 70 2e 6f 6e 65 73 28 28 6e 32 20 2f 2f 20 nyt.=.np.vstack((np.ones((n2.//.
19540 32 2c 20 31 29 29 2c 20 30 20 2a 20 6e 70 2e 6f 6e 65 73 28 28 6e 32 20 2f 2f 20 32 2c 20 31 29 2,.1)),.0.*.np.ones((n2.//.2,.1)
19560 29 29 29 20 2b 20 73 69 67 32 20 2a 20 6e 70 2e 72 61 6e 64 6f 6d 2e 72 61 6e 64 6e 28 6e 32 2c ))).+.sig2.*.np.random.randn(n2,
19580 20 31 29 5c 6e 79 74 20 3d 20 79 74 5b 3a 3a 2d 31 2c 20 3a 5d 5c 6e 5c 6e 70 20 3d 20 6f 74 2e .1)\nyt.=.yt[::-1,.:]\n\np.=.ot.
195a0 75 6e 69 66 28 6e 29 5c 6e 71 20 3d 20 6f 74 2e 75 6e 69 66 28 6e 32 29 22 0a 20 20 20 20 20 20 unif(n)\nq.=.ot.unif(n2)".......
195c0 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 ].....},.....{......."cell_type"
195e0 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 :."markdown",......."metadata":.
19600 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 50 {},......."source":.[........."P
19620 6c 6f 74 20 64 61 74 61 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d lot.data\n---------\n\n".......]
19640 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a .....},.....{......."cell_type":
19660 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 ."code",......."execution_count"
19680 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 :.null,......."metadata":.{.....
196a0 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a ...."collapsed":.false.......},.
196c0 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 ......"outputs":.[],......."sour
196e0 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 70 6c 2e 63 6c 6f 73 65 28 31 30 29 5c 6e 70 6c ce":.[........."pl.close(10)\npl
19700 2e 66 69 67 75 72 65 28 31 30 2c 20 28 37 2c 20 37 29 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f .figure(10,.(7,.7))\n\npl.subplo
19720 74 28 32 2c 20 31 2c 20 31 29 5c 6e 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 79 73 2c 20 78 73 2c t(2,.1,.1)\n\npl.scatter(ys,.xs,
19740 20 63 3d 70 68 69 2c 20 73 3d 37 30 29 5c 6e 70 6c 2e 79 6c 61 62 65 6c 28 27 46 65 61 74 75 72 .c=phi,.s=70)\npl.ylabel('Featur
19760 65 20 76 61 6c 75 65 20 61 27 2c 20 66 6f 6e 74 73 69 7a 65 3d 32 30 29 5c 6e 70 6c 2e 74 69 74 e.value.a',.fontsize=20)\npl.tit
19780 6c 65 28 27 24 5c 5c 6d 75 3d 5c 5c 73 75 6d 5f 69 20 5c 5c 64 65 6c 74 61 5f 7b 78 5f 69 2c 61 le('$\\mu=\\sum_i.\\delta_{x_i,a
197a0 5f 69 7d 24 27 2c 20 66 6f 6e 74 73 69 7a 65 3d 32 35 2c 20 75 73 65 74 65 78 3d 54 72 75 65 2c _i}$',.fontsize=25,.usetex=True,
197c0 20 79 3d 31 29 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 28 29 29 5c 6e 70 6c 2e 79 74 69 63 6b 73 28 .y=1)\npl.xticks(())\npl.yticks(
197e0 28 29 29 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 31 2c 20 32 29 5c 6e 70 6c 2e 73 63 61 ())\npl.subplot(2,.1,.2)\npl.sca
19800 74 74 65 72 28 79 74 2c 20 78 74 2c 20 63 3d 70 68 69 32 2c 20 73 3d 37 30 29 5c 6e 70 6c 2e 78 tter(yt,.xt,.c=phi2,.s=70)\npl.x
19820 6c 61 62 65 6c 28 27 63 6f 6f 72 64 69 6e 61 74 65 73 20 78 2f 79 27 2c 20 66 6f 6e 74 73 69 7a label('coordinates.x/y',.fontsiz
19840 65 3d 32 35 29 5c 6e 70 6c 2e 79 6c 61 62 65 6c 28 27 46 65 61 74 75 72 65 20 76 61 6c 75 65 20 e=25)\npl.ylabel('Feature.value.
19860 62 27 2c 20 66 6f 6e 74 73 69 7a 65 3d 32 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 24 5c 5c 5c b',.fontsize=20)\npl.title('$\\\
19880 5c 6e 75 3d 5c 5c 73 75 6d 5f 6a 20 5c 5c 64 65 6c 74 61 5f 7b 79 5f 6a 2c 62 5f 6a 7d 24 27 2c \nu=\\sum_j.\\delta_{y_j,b_j}$',
198a0 20 66 6f 6e 74 73 69 7a 65 3d 32 35 2c 20 75 73 65 74 65 78 3d 54 72 75 65 2c 20 79 3d 31 29 5c .fontsize=25,.usetex=True,.y=1)\
198c0 6e 70 6c 2e 79 74 69 63 6b 73 28 28 29 29 5c 6e 70 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 npl.yticks(())\npl.tight_layout(
198e0 29 5c 6e 70 6c 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 )\npl.show()".......].....},....
19900 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 .{......."cell_type":."markdown"
19920 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 ,......."metadata":.{},......."s
19940 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 72 65 61 74 65 20 73 74 72 75 63 74 ource":.[........."Create.struct
19960 75 72 65 20 6d 61 74 72 69 63 65 73 20 61 6e 64 20 61 63 72 6f 73 73 2d 66 65 61 74 75 72 65 20 ure.matrices.and.across-feature.
19980 64 69 73 74 61 6e 63 65 20 6d 61 74 72 69 78 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a distance.matrix\n---------\n\n".
199a0 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c ......].....},.....{......."cell
199c0 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e _type":."code",......."execution
199e0 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a _count":.null,......."metadata":
19a00 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 .{........."collapsed":.false...
19a20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 ....},......."outputs":.[],.....
19a40 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 31 20 3d 20 6f 74 2e 64 .."source":.[........."C1.=.ot.d
19a60 69 73 74 28 78 73 29 5c 6e 43 32 20 3d 20 6f 74 2e 64 69 73 74 28 78 74 29 5c 6e 4d 20 3d 20 6f ist(xs)\nC2.=.ot.dist(xt)\nM.=.o
19a80 74 2e 64 69 73 74 28 79 73 2c 20 79 74 29 5c 6e 77 31 20 3d 20 6f 74 2e 75 6e 69 66 28 43 31 2e t.dist(ys,.yt)\nw1.=.ot.unif(C1.
19aa0 73 68 61 70 65 5b 30 5d 29 5c 6e 77 32 20 3d 20 6f 74 2e 75 6e 69 66 28 43 32 2e 73 68 61 70 65 shape[0])\nw2.=.ot.unif(C2.shape
19ac0 5b 30 5d 29 5c 6e 47 6f 74 20 3d 20 6f 74 2e 65 6d 64 28 5b 5d 2c 20 5b 5d 2c 20 4d 29 22 0a 20 [0])\nGot.=.ot.emd([],.[],.M)"..
19ae0 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f .....].....},.....{......."cell_
19b00 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 type":."markdown",......."metada
19b20 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 ta":.{},......."source":.[......
19b40 20 20 20 22 50 6c 6f 74 20 6d 61 74 72 69 63 65 73 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e ..."Plot.matrices\n---------\n\n
19b60 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 ".......].....},.....{......."ce
19b80 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 ll_type":."code",......."executi
19ba0 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 on_count":.null,......."metadata
19bc0 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a ":.{........."collapsed":.false.
19be0 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 ......},......."outputs":.[],...
19c00 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 63 6d 61 70 20 3d 20 ...."source":.[........."cmap.=.
19c20 27 52 65 64 73 27 5c 6e 70 6c 2e 63 6c 6f 73 65 28 31 30 29 5c 6e 70 6c 2e 66 69 67 75 72 65 28 'Reds'\npl.close(10)\npl.figure(
19c40 31 30 2c 20 28 35 2c 20 35 29 29 5c 6e 66 73 20 3d 20 31 35 5c 6e 6c 5f 78 20 3d 20 5b 30 2c 20 10,.(5,.5))\nfs.=.15\nl_x.=.[0,.
19c60 35 2c 20 31 30 2c 20 31 35 5d 5c 6e 6c 5f 79 20 3d 20 5b 30 2c 20 35 2c 20 31 30 2c 20 31 35 2c 5,.10,.15]\nl_y.=.[0,.5,.10,.15,
19c80 20 32 30 2c 20 32 35 5d 5c 6e 67 73 20 3d 20 70 6c 2e 47 72 69 64 53 70 65 63 28 35 2c 20 35 29 .20,.25]\ngs.=.pl.GridSpec(5,.5)
19ca0 5c 6e 5c 6e 61 78 31 20 3d 20 70 6c 2e 73 75 62 70 6c 6f 74 28 67 73 5b 33 3a 2c 20 3a 32 5d 29 \n\nax1.=.pl.subplot(gs[3:,.:2])
19cc0 5c 6e 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 43 31 2c 20 63 6d 61 70 3d 63 6d 61 70 2c 20 69 6e 74 \n\npl.imshow(C1,.cmap=cmap,.int
19ce0 65 72 70 6f 6c 61 74 69 6f 6e 3d 27 6e 65 61 72 65 73 74 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 erpolation='nearest')\npl.title(
19d00 5c 22 24 43 5f 31 24 5c 22 2c 20 66 6f 6e 74 73 69 7a 65 3d 66 73 29 5c 6e 70 6c 2e 78 6c 61 62 \"$C_1$\",.fontsize=fs)\npl.xlab
19d20 65 6c 28 5c 22 24 6b 24 5c 22 2c 20 66 6f 6e 74 73 69 7a 65 3d 66 73 29 5c 6e 70 6c 2e 79 6c 61 el(\"$k$\",.fontsize=fs)\npl.yla
19d40 62 65 6c 28 5c 22 24 69 24 5c 22 2c 20 66 6f 6e 74 73 69 7a 65 3d 66 73 29 5c 6e 70 6c 2e 78 74 bel(\"$i$\",.fontsize=fs)\npl.xt
19d60 69 63 6b 73 28 6c 5f 78 29 5c 6e 70 6c 2e 79 74 69 63 6b 73 28 6c 5f 78 29 5c 6e 5c 6e 61 78 32 icks(l_x)\npl.yticks(l_x)\n\nax2
19d80 20 3d 20 70 6c 2e 73 75 62 70 6c 6f 74 28 67 73 5b 3a 33 2c 20 32 3a 5d 29 5c 6e 5c 6e 70 6c 2e .=.pl.subplot(gs[:3,.2:])\n\npl.
19da0 69 6d 73 68 6f 77 28 43 32 2c 20 63 6d 61 70 3d 63 6d 61 70 2c 20 69 6e 74 65 72 70 6f 6c 61 74 imshow(C2,.cmap=cmap,.interpolat
19dc0 69 6f 6e 3d 27 6e 65 61 72 65 73 74 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 5c 22 24 43 5f 32 24 ion='nearest')\npl.title(\"$C_2$
19de0 5c 22 2c 20 66 6f 6e 74 73 69 7a 65 3d 66 73 29 5c 6e 70 6c 2e 79 6c 61 62 65 6c 28 5c 22 24 6c \",.fontsize=fs)\npl.ylabel(\"$l
19e00 24 5c 22 2c 20 66 6f 6e 74 73 69 7a 65 3d 66 73 29 5c 6e 23 70 6c 2e 79 6c 61 62 65 6c 28 5c 22 $\",.fontsize=fs)\n#pl.ylabel(\"
19e20 24 6c 24 5c 22 2c 66 6f 6e 74 73 69 7a 65 3d 66 73 29 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 28 29 $l$\",fontsize=fs)\npl.xticks(()
19e40 29 5c 6e 70 6c 2e 79 74 69 63 6b 73 28 6c 5f 79 29 5c 6e 61 78 32 2e 73 65 74 5f 61 73 70 65 63 )\npl.yticks(l_y)\nax2.set_aspec
19e60 74 28 27 61 75 74 6f 27 29 5c 6e 5c 6e 61 78 33 20 3d 20 70 6c 2e 73 75 62 70 6c 6f 74 28 67 73 t('auto')\n\nax3.=.pl.subplot(gs
19e80 5b 33 3a 2c 20 32 3a 5d 2c 20 73 68 61 72 65 78 3d 61 78 32 2c 20 73 68 61 72 65 79 3d 61 78 31 [3:,.2:],.sharex=ax2,.sharey=ax1
19ea0 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 4d 2c 20 63 6d 61 70 3d 63 6d 61 70 2c 20 69 6e 74 65 72 )\npl.imshow(M,.cmap=cmap,.inter
19ec0 70 6f 6c 61 74 69 6f 6e 3d 27 6e 65 61 72 65 73 74 27 29 5c 6e 70 6c 2e 79 74 69 63 6b 73 28 6c polation='nearest')\npl.yticks(l
19ee0 5f 78 29 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 6c 5f 79 29 5c 6e 70 6c 2e 79 6c 61 62 65 6c 28 5c _x)\npl.xticks(l_y)\npl.ylabel(\
19f00 22 24 69 24 5c 22 2c 20 66 6f 6e 74 73 69 7a 65 3d 66 73 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 5c "$i$\",.fontsize=fs)\npl.title(\
19f20 22 24 4d 5f 7b 41 42 7d 24 5c 22 2c 20 66 6f 6e 74 73 69 7a 65 3d 66 73 29 5c 6e 70 6c 2e 78 6c "$M_{AB}$\",.fontsize=fs)\npl.xl
19f40 61 62 65 6c 28 5c 22 24 6a 24 5c 22 2c 20 66 6f 6e 74 73 69 7a 65 3d 66 73 29 5c 6e 70 6c 2e 74 abel(\"$j$\",.fontsize=fs)\npl.t
19f60 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 5c 6e 61 78 33 2e 73 65 74 5f 61 73 70 65 63 74 28 27 61 ight_layout()\nax3.set_aspect('a
19f80 75 74 6f 27 29 5c 6e 70 6c 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c uto')\npl.show()".......].....},
19fa0 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 .....{......."cell_type":."markd
19fc0 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 own",......."metadata":.{},.....
19fe0 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 6f 6d 70 75 74 65 20 46 .."source":.[........."Compute.F
1a000 47 57 2f 47 57 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 GW/GW\n---------\n\n".......]...
1a020 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 ..},.....{......."cell_type":."c
1a040 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e ode",......."execution_count":.n
1a060 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 ull,......."metadata":.{........
1a080 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 ."collapsed":.false.......},....
1a0a0 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 ..."outputs":.[],......."source"
1a0c0 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 61 6c 70 68 61 20 3d 20 31 65 2d 33 5c 6e 5c 6e 6f 74 2e :.[........."alpha.=.1e-3\n\not.
1a0e0 74 69 63 28 29 5c 6e 47 77 67 2c 20 6c 6f 67 77 20 3d 20 66 75 73 65 64 5f 67 72 6f 6d 6f 76 5f tic()\nGwg,.logw.=.fused_gromov_
1a100 77 61 73 73 65 72 73 74 65 69 6e 28 4d 2c 20 43 31 2c 20 43 32 2c 20 70 2c 20 71 2c 20 6c 6f 73 wasserstein(M,.C1,.C2,.p,.q,.los
1a120 73 5f 66 75 6e 3d 27 73 71 75 61 72 65 5f 6c 6f 73 73 27 2c 20 61 6c 70 68 61 3d 61 6c 70 68 61 s_fun='square_loss',.alpha=alpha
1a140 2c 20 76 65 72 62 6f 73 65 3d 54 72 75 65 2c 20 6c 6f 67 3d 54 72 75 65 29 5c 6e 6f 74 2e 74 6f ,.verbose=True,.log=True)\not.to
1a160 63 28 29 5c 6e 5c 6e 23 25 72 65 6c 6f 61 64 5f 65 78 74 20 57 47 57 5c 6e 47 67 2c 20 6c 6f 67 c()\n\n#%reload_ext.WGW\nGg,.log
1a180 20 3d 20 67 72 6f 6d 6f 76 5f 77 61 73 73 65 72 73 74 65 69 6e 28 43 31 2c 20 43 32 2c 20 70 2c .=.gromov_wasserstein(C1,.C2,.p,
1a1a0 20 71 2c 20 6c 6f 73 73 5f 66 75 6e 3d 27 73 71 75 61 72 65 5f 6c 6f 73 73 27 2c 20 76 65 72 62 .q,.loss_fun='square_loss',.verb
1a1c0 6f 73 65 3d 54 72 75 65 2c 20 6c 6f 67 3d 54 72 75 65 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 ose=True,.log=True)".......]....
1a1e0 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 .},.....{......."cell_type":."ma
1a200 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 rkdown",......."metadata":.{},..
1a220 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 56 69 73 75 61 6c ....."source":.[........."Visual
1a240 69 7a 65 20 74 72 61 6e 73 70 6f 72 74 20 6d 61 74 72 69 63 65 73 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d ize.transport.matrices\n--------
1a260 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 -\n\n".......].....},.....{.....
1a280 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 .."cell_type":."code",......."ex
1a2a0 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 ecution_count":.null,......."met
1a2c0 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 adata":.{........."collapsed":.f
1a2e0 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b alse.......},......."outputs":.[
1a300 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 63 6d ],......."source":.[........."cm
1a320 61 70 20 3d 20 27 42 6c 75 65 73 27 5c 6e 66 73 20 3d 20 31 35 5c 6e 70 6c 2e 66 69 67 75 72 65 ap.=.'Blues'\nfs.=.15\npl.figure
1a340 28 32 2c 20 28 31 33 2c 20 35 29 29 5c 6e 70 6c 2e 63 6c 66 28 29 5c 6e 70 6c 2e 73 75 62 70 6c (2,.(13,.5))\npl.clf()\npl.subpl
1a360 6f 74 28 31 2c 20 33 2c 20 31 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 47 6f 74 2c 20 63 6d 61 70 ot(1,.3,.1)\npl.imshow(Got,.cmap
1a380 3d 63 6d 61 70 2c 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 3d 27 6e 65 61 72 65 73 74 27 29 5c =cmap,.interpolation='nearest')\
1a3a0 6e 23 70 6c 2e 78 6c 61 62 65 6c 28 5c 22 24 79 24 5c 22 2c 66 6f 6e 74 73 69 7a 65 3d 66 73 29 n#pl.xlabel(\"$y$\",fontsize=fs)
1a3c0 5c 6e 70 6c 2e 79 6c 61 62 65 6c 28 5c 22 24 69 24 5c 22 2c 20 66 6f 6e 74 73 69 7a 65 3d 66 73 \npl.ylabel(\"$i$\",.fontsize=fs
1a3e0 29 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 28 29 29 5c 6e 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 57 61 )\npl.xticks(())\n\npl.title('Wa
1a400 73 73 65 72 73 74 65 69 6e 20 28 24 4d 24 20 6f 6e 6c 79 29 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 sserstein.($M$.only)')\n\npl.sub
1a420 70 6c 6f 74 28 31 2c 20 33 2c 20 32 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 47 67 2c 20 63 6d 61 plot(1,.3,.2)\npl.imshow(Gg,.cma
1a440 70 3d 63 6d 61 70 2c 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 3d 27 6e 65 61 72 65 73 74 27 29 p=cmap,.interpolation='nearest')
1a460 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 47 72 6f 6d 6f 76 20 28 24 43 5f 31 2c 43 5f 32 24 20 6f 6e \npl.title('Gromov.($C_1,C_2$.on
1a480 6c 79 29 27 29 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 28 29 29 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 ly)')\npl.xticks(())\npl.subplot
1a4a0 28 31 2c 20 33 2c 20 33 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 47 77 67 2c 20 63 6d 61 70 3d 63 (1,.3,.3)\npl.imshow(Gwg,.cmap=c
1a4c0 6d 61 70 2c 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 3d 27 6e 65 61 72 65 73 74 27 29 5c 6e 70 map,.interpolation='nearest')\np
1a4e0 6c 2e 74 69 74 6c 65 28 27 46 47 57 20 20 28 24 4d 2b 43 5f 31 2c 43 5f 32 24 29 27 29 5c 6e 5c l.title('FGW..($M+C_1,C_2$)')\n\
1a500 6e 70 6c 2e 78 6c 61 62 65 6c 28 5c 22 24 6a 24 5c 22 2c 20 66 6f 6e 74 73 69 7a 65 3d 66 73 29 npl.xlabel(\"$j$\",.fontsize=fs)
1a520 5c 6e 70 6c 2e 79 6c 61 62 65 6c 28 5c 22 24 69 24 5c 22 2c 20 66 6f 6e 74 73 69 7a 65 3d 66 73 \npl.ylabel(\"$i$\",.fontsize=fs
1a540 29 5c 6e 5c 6e 70 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 5c 6e 70 6c 2e 73 68 6f 77 28 )\n\npl.tight_layout()\npl.show(
1a560 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 0a 20 20 5d 2c 0a 20 20 22 6d 65 74 61 64 61 74 )".......].....}...],..."metadat
1a580 61 22 3a 20 7b 0a 20 20 20 20 22 6b 65 72 6e 65 6c 73 70 65 63 22 3a 20 7b 0a 20 20 20 20 20 20 a":.{....."kernelspec":.{.......
1a5a0 22 64 69 73 70 6c 61 79 5f 6e 61 6d 65 22 3a 20 22 50 79 74 68 6f 6e 20 33 22 2c 0a 20 20 20 20 "display_name":."Python.3",.....
1a5c0 20 20 22 6c 61 6e 67 75 61 67 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e .."language":."python",......."n
1a5e0 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 33 22 0a 20 20 20 20 7d 2c 0a 20 20 20 20 22 6c 61 6e 67 ame":."python3".....},....."lang
1a600 75 61 67 65 5f 69 6e 66 6f 22 3a 20 7b 0a 20 20 20 20 20 20 22 63 6f 64 65 6d 69 72 72 6f 72 5f uage_info":.{......."codemirror_
1a620 6d 6f 64 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 69 70 79 74 68 6f mode":.{........."name":."ipytho
1a640 6e 22 2c 0a 20 20 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 33 0a 20 20 20 20 20 20 7d n",........."version":.3.......}
1a660 2c 0a 20 20 20 20 20 20 22 66 69 6c 65 5f 65 78 74 65 6e 73 69 6f 6e 22 3a 20 22 2e 70 79 22 2c ,......."file_extension":.".py",
1a680 0a 20 20 20 20 20 20 22 6d 69 6d 65 74 79 70 65 22 3a 20 22 74 65 78 74 2f 78 2d 70 79 74 68 6f ......."mimetype":."text/x-pytho
1a6a0 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 n",......."name":."python",.....
1a6c0 20 20 22 6e 62 63 6f 6e 76 65 72 74 5f 65 78 70 6f 72 74 65 72 22 3a 20 22 70 79 74 68 6f 6e 22 .."nbconvert_exporter":."python"
1a6e0 2c 0a 20 20 20 20 20 20 22 70 79 67 6d 65 6e 74 73 5f 6c 65 78 65 72 22 3a 20 22 69 70 79 74 68 ,......."pygments_lexer":."ipyth
1a700 6f 6e 33 22 2c 0a 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 36 2e 39 22 0a 20 on3",......."version":."3.6.9"..
1a720 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 22 3a 20 34 2c 0a 20 20 22 6e 62 ...}...},..."nbformat":.4,..."nb
1a740 66 6f 72 6d 61 74 5f 6d 69 6e 6f 72 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 cf 72 94 50 format_minor":.0.}PK.........r.P
1a760 e7 14 7f a6 c3 1a 00 00 c3 1a 00 00 16 00 00 00 70 6c 6f 74 5f 4f 54 5f 4c 31 5f 76 73 5f 4c 32 ................plot_OT_L1_vs_L2
1a780 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 22 3a 20 5b 0a 20 20 20 20 7b 0a 20 20 20 20 20 .ipynb{..."cells":.[.....{......
1a7a0 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 ."cell_type":."code",......."exe
1a7c0 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 cution_count":.null,......."meta
1a7e0 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 data":.{........."collapsed":.fa
1a800 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d lse.......},......."outputs":.[]
1a820 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 25 6d 61 ,......."source":.[........."%ma
1a840 74 70 6c 6f 74 6c 69 62 20 69 6e 6c 69 6e 65 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a tplotlib.inline".......].....},.
1a860 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f ....{......."cell_type":."markdo
1a880 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 wn",......."metadata":.{},......
1a8a0 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 32 44 20 4f 70 74 ."source":.[........."\n#.2D.Opt
1a8c0 69 6d 61 6c 20 74 72 61 6e 73 70 6f 72 74 20 66 6f 72 20 64 69 66 66 65 72 65 6e 74 20 6d 65 74 imal.transport.for.different.met
1a8e0 72 69 63 73 5c 6e 5c 6e 5c 6e 32 44 20 4f 54 20 6f 6e 20 65 6d 70 69 72 69 63 61 6c 20 64 69 73 rics\n\n\n2D.OT.on.empirical.dis
1a900 74 72 69 62 75 74 69 6f 20 20 77 69 74 68 20 64 69 66 66 65 72 65 6e 74 20 67 6f 75 6e 64 20 6d tributio..with.different.gound.m
1a920 65 74 72 69 63 2e 5c 6e 5c 6e 53 74 6f 6c 65 20 74 68 65 20 66 69 67 75 72 65 20 69 64 65 61 20 etric.\n\nStole.the.figure.idea.
1a940 66 72 6f 6d 20 46 69 67 2e 20 31 20 61 6e 64 20 32 20 69 6e 5c 6e 68 74 74 70 73 3a 2f 2f 61 72 from.Fig..1.and.2.in\nhttps://ar
1a960 78 69 76 2e 6f 72 67 2f 70 64 66 2f 31 37 30 36 2e 30 37 36 35 30 2e 70 64 66 5c 6e 5c 6e 5c 6e xiv.org/pdf/1706.07650.pdf\n\n\n
1a980 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 \n".......].....},.....{......."
1a9a0 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 cell_type":."code",......."execu
1a9c0 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 tion_count":.null,......."metada
1a9e0 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 ta":.{........."collapsed":.fals
1aa00 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a e.......},......."outputs":.[],.
1aa20 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 20 41 75 74 ......"source":.[........."#.Aut
1aa40 68 6f 72 3a 20 52 65 6d 69 20 46 6c 61 6d 61 72 79 20 3c 72 65 6d 69 2e 66 6c 61 6d 61 72 79 40 hor:.Remi.Flamary.<remi.flamary@
1aa60 75 6e 69 63 65 2e 66 72 3e 5c 6e 23 5c 6e 23 20 4c 69 63 65 6e 73 65 3a 20 4d 49 54 20 4c 69 63 unice.fr>\n#\n#.License:.MIT.Lic
1aa80 65 6e 73 65 5c 6e 5c 6e 69 6d 70 6f 72 74 20 6e 75 6d 70 79 20 61 73 20 6e 70 5c 6e 69 6d 70 6f ense\n\nimport.numpy.as.np\nimpo
1aaa0 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 6c 61 62 20 61 73 20 70 6c 5c 6e 69 6d 70 6f 72 rt.matplotlib.pylab.as.pl\nimpor
1aac0 74 20 6f 74 5c 6e 69 6d 70 6f 72 74 20 6f 74 2e 70 6c 6f 74 22 0a 20 20 20 20 20 20 5d 0a 20 20 t.ot\nimport.ot.plot".......]...
1aae0 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d ..},.....{......."cell_type":."m
1ab00 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a arkdown",......."metadata":.{},.
1ab20 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 44 61 74 61 73 ......"source":.[........."Datas
1ab40 65 74 20 31 20 3a 20 75 6e 69 66 6f 72 6d 20 73 61 6d 70 6c 69 6e 67 5c 6e 2d 2d 2d 2d 2d 2d 2d et.1.:.uniform.sampling\n-------
1ab60 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 ---------------------\n\n"......
1ab80 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 .].....},.....{......."cell_type
1aba0 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e ":."code",......."execution_coun
1abc0 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 t":.null,......."metadata":.{...
1abe0 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d ......"collapsed":.false.......}
1ac00 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f ,......."outputs":.[],......."so
1ac20 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 6e 20 3d 20 32 30 20 20 23 20 6e 62 20 73 urce":.[........."n.=.20..#.nb.s
1ac40 61 6d 70 6c 65 73 5c 6e 78 73 20 3d 20 6e 70 2e 7a 65 72 6f 73 28 28 6e 2c 20 32 29 29 5c 6e 78 amples\nxs.=.np.zeros((n,.2))\nx
1ac60 73 5b 3a 2c 20 30 5d 20 3d 20 6e 70 2e 61 72 61 6e 67 65 28 6e 29 20 2b 20 31 5c 6e 78 73 5b 3a s[:,.0].=.np.arange(n).+.1\nxs[:
1ac80 2c 20 31 5d 20 3d 20 28 6e 70 2e 61 72 61 6e 67 65 28 6e 29 20 2b 20 31 29 20 2a 20 2d 30 2e 30 ,.1].=.(np.arange(n).+.1).*.-0.0
1aca0 30 31 20 20 23 20 74 6f 20 6d 61 6b 65 20 69 74 20 73 74 72 69 63 74 6c 79 20 63 6f 6e 76 65 78 01..#.to.make.it.strictly.convex
1acc0 2e 2e 2e 5c 6e 5c 6e 78 74 20 3d 20 6e 70 2e 7a 65 72 6f 73 28 28 6e 2c 20 32 29 29 5c 6e 78 74 ...\n\nxt.=.np.zeros((n,.2))\nxt
1ace0 5b 3a 2c 20 31 5d 20 3d 20 6e 70 2e 61 72 61 6e 67 65 28 6e 29 20 2b 20 31 5c 6e 5c 6e 61 2c 20 [:,.1].=.np.arange(n).+.1\n\na,.
1ad00 62 20 3d 20 6f 74 2e 75 6e 69 66 28 6e 29 2c 20 6f 74 2e 75 6e 69 66 28 6e 29 20 20 23 20 75 6e b.=.ot.unif(n),.ot.unif(n)..#.un
1ad20 69 66 6f 72 6d 20 64 69 73 74 72 69 62 75 74 69 6f 6e 20 6f 6e 20 73 61 6d 70 6c 65 73 5c 6e 5c iform.distribution.on.samples\n\
1ad40 6e 23 20 6c 6f 73 73 20 6d 61 74 72 69 78 5c 6e 4d 31 20 3d 20 6f 74 2e 64 69 73 74 28 78 73 2c n#.loss.matrix\nM1.=.ot.dist(xs,
1ad60 20 78 74 2c 20 6d 65 74 72 69 63 3d 27 65 75 63 6c 69 64 65 61 6e 27 29 5c 6e 4d 31 20 2f 3d 20 .xt,.metric='euclidean')\nM1./=.
1ad80 4d 31 2e 6d 61 78 28 29 5c 6e 5c 6e 23 20 6c 6f 73 73 20 6d 61 74 72 69 78 5c 6e 4d 32 20 3d 20 M1.max()\n\n#.loss.matrix\nM2.=.
1ada0 6f 74 2e 64 69 73 74 28 78 73 2c 20 78 74 2c 20 6d 65 74 72 69 63 3d 27 73 71 65 75 63 6c 69 64 ot.dist(xs,.xt,.metric='sqeuclid
1adc0 65 61 6e 27 29 5c 6e 4d 32 20 2f 3d 20 4d 32 2e 6d 61 78 28 29 5c 6e 5c 6e 23 20 6c 6f 73 73 20 ean')\nM2./=.M2.max()\n\n#.loss.
1ade0 6d 61 74 72 69 78 5c 6e 4d 70 20 3d 20 6e 70 2e 73 71 72 74 28 6f 74 2e 64 69 73 74 28 78 73 2c matrix\nMp.=.np.sqrt(ot.dist(xs,
1ae00 20 78 74 2c 20 6d 65 74 72 69 63 3d 27 65 75 63 6c 69 64 65 61 6e 27 29 29 5c 6e 4d 70 20 2f 3d .xt,.metric='euclidean'))\nMp./=
1ae20 20 4d 70 2e 6d 61 78 28 29 5c 6e 5c 6e 23 20 44 61 74 61 5c 6e 70 6c 2e 66 69 67 75 72 65 28 31 .Mp.max()\n\n#.Data\npl.figure(1
1ae40 2c 20 66 69 67 73 69 7a 65 3d 28 37 2c 20 33 29 29 5c 6e 70 6c 2e 63 6c 66 28 29 5c 6e 70 6c 2e ,.figsize=(7,.3))\npl.clf()\npl.
1ae60 70 6c 6f 74 28 78 73 5b 3a 2c 20 30 5d 2c 20 78 73 5b 3a 2c 20 31 5d 2c 20 27 2b 62 27 2c 20 6c plot(xs[:,.0],.xs[:,.1],.'+b',.l
1ae80 61 62 65 6c 3d 27 53 6f 75 72 63 65 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 70 6c 6f 74 28 abel='Source.samples')\npl.plot(
1aea0 78 74 5b 3a 2c 20 30 5d 2c 20 78 74 5b 3a 2c 20 31 5d 2c 20 27 78 72 27 2c 20 6c 61 62 65 6c 3d xt[:,.0],.xt[:,.1],.'xr',.label=
1aec0 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 61 78 69 73 28 27 65 71 75 61 'Target.samples')\npl.axis('equa
1aee0 6c 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 53 6f 75 72 63 65 20 61 6e 64 20 74 61 72 67 65 74 l')\npl.title('Source.and.target
1af00 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 27 29 5c 6e 5c 6e 5c 6e 23 20 43 6f 73 74 20 6d 61 74 .distributions')\n\n\n#.Cost.mat
1af20 72 69 63 65 73 5c 6e 70 6c 2e 66 69 67 75 72 65 28 32 2c 20 66 69 67 73 69 7a 65 3d 28 37 2c 20 rices\npl.figure(2,.figsize=(7,.
1af40 33 29 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 20 33 2c 20 31 29 5c 6e 70 6c 2e 69 3))\n\npl.subplot(1,.3,.1)\npl.i
1af60 6d 73 68 6f 77 28 4d 31 2c 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 3d 27 6e 65 61 72 65 73 74 mshow(M1,.interpolation='nearest
1af80 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 45 75 63 6c 69 64 65 61 6e 20 63 6f 73 74 27 29 5c 6e ')\npl.title('Euclidean.cost')\n
1afa0 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 20 33 2c 20 32 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 \npl.subplot(1,.3,.2)\npl.imshow
1afc0 28 4d 32 2c 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 3d 27 6e 65 61 72 65 73 74 27 29 5c 6e 70 (M2,.interpolation='nearest')\np
1afe0 6c 2e 74 69 74 6c 65 28 27 53 71 75 61 72 65 64 20 45 75 63 6c 69 64 65 61 6e 20 63 6f 73 74 27 l.title('Squared.Euclidean.cost'
1b000 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 20 33 2c 20 33 29 5c 6e 70 6c 2e 69 6d 73 )\n\npl.subplot(1,.3,.3)\npl.ims
1b020 68 6f 77 28 4d 70 2c 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 3d 27 6e 65 61 72 65 73 74 27 29 how(Mp,.interpolation='nearest')
1b040 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 53 71 72 74 20 45 75 63 6c 69 64 65 61 6e 20 63 6f 73 74 27 \npl.title('Sqrt.Euclidean.cost'
1b060 29 5c 6e 70 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 )\npl.tight_layout()".......]...
1b080 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d ..},.....{......."cell_type":."m
1b0a0 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a arkdown",......."metadata":.{},.
1b0c0 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 44 61 74 61 73 ......"source":.[........."Datas
1b0e0 65 74 20 31 20 3a 20 50 6c 6f 74 20 4f 54 20 4d 61 74 72 69 63 65 73 5c 6e 2d 2d 2d 2d 2d 2d 2d et.1.:.Plot.OT.Matrices\n-------
1b100 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 ---------------------\n\n"......
1b120 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 .].....},.....{......."cell_type
1b140 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e ":."code",......."execution_coun
1b160 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 t":.null,......."metadata":.{...
1b180 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d ......"collapsed":.false.......}
1b1a0 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f ,......."outputs":.[],......."so
1b1c0 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 47 31 20 3d 20 6f 74 2e 65 6d 64 28 61 2c urce":.[........."G1.=.ot.emd(a,
1b1e0 20 62 2c 20 4d 31 29 5c 6e 47 32 20 3d 20 6f 74 2e 65 6d 64 28 61 2c 20 62 2c 20 4d 32 29 5c 6e .b,.M1)\nG2.=.ot.emd(a,.b,.M2)\n
1b200 47 70 20 3d 20 6f 74 2e 65 6d 64 28 61 2c 20 62 2c 20 4d 70 29 5c 6e 5c 6e 23 20 4f 54 20 6d 61 Gp.=.ot.emd(a,.b,.Mp)\n\n#.OT.ma
1b220 74 72 69 63 65 73 5c 6e 70 6c 2e 66 69 67 75 72 65 28 33 2c 20 66 69 67 73 69 7a 65 3d 28 37 2c trices\npl.figure(3,.figsize=(7,
1b240 20 33 29 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 20 33 2c 20 31 29 5c 6e 6f 74 2e .3))\n\npl.subplot(1,.3,.1)\not.
1b260 70 6c 6f 74 2e 70 6c 6f 74 32 44 5f 73 61 6d 70 6c 65 73 5f 6d 61 74 28 78 73 2c 20 78 74 2c 20 plot.plot2D_samples_mat(xs,.xt,.
1b280 47 31 2c 20 63 3d 5b 2e 35 2c 20 2e 35 2c 20 31 5d 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 73 5b 3a G1,.c=[.5,..5,.1])\npl.plot(xs[:
1b2a0 2c 20 30 5d 2c 20 78 73 5b 3a 2c 20 31 5d 2c 20 27 2b 62 27 2c 20 6c 61 62 65 6c 3d 27 53 6f 75 ,.0],.xs[:,.1],.'+b',.label='Sou
1b2c0 72 63 65 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 74 5b 3a 2c 20 30 5d 2c rce.samples')\npl.plot(xt[:,.0],
1b2e0 20 78 74 5b 3a 2c 20 31 5d 2c 20 27 78 72 27 2c 20 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 .xt[:,.1],.'xr',.label='Target.s
1b300 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 61 78 69 73 28 27 65 71 75 61 6c 27 29 5c 6e 23 20 70 6c amples')\npl.axis('equal')\n#.pl
1b320 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 4f 54 20 45 75 63 .legend(loc=0)\npl.title('OT.Euc
1b340 6c 69 64 65 61 6e 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 20 33 2c 20 32 29 5c lidean')\n\npl.subplot(1,.3,.2)\
1b360 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 32 44 5f 73 61 6d 70 6c 65 73 5f 6d 61 74 28 78 73 2c 20 not.plot.plot2D_samples_mat(xs,.
1b380 78 74 2c 20 47 32 2c 20 63 3d 5b 2e 35 2c 20 2e 35 2c 20 31 5d 29 5c 6e 70 6c 2e 70 6c 6f 74 28 xt,.G2,.c=[.5,..5,.1])\npl.plot(
1b3a0 78 73 5b 3a 2c 20 30 5d 2c 20 78 73 5b 3a 2c 20 31 5d 2c 20 27 2b 62 27 2c 20 6c 61 62 65 6c 3d xs[:,.0],.xs[:,.1],.'+b',.label=
1b3c0 27 53 6f 75 72 63 65 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 74 5b 3a 2c 'Source.samples')\npl.plot(xt[:,
1b3e0 20 30 5d 2c 20 78 74 5b 3a 2c 20 31 5d 2c 20 27 78 72 27 2c 20 6c 61 62 65 6c 3d 27 54 61 72 67 .0],.xt[:,.1],.'xr',.label='Targ
1b400 65 74 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 61 78 69 73 28 27 65 71 75 61 6c 27 29 5c 6e et.samples')\npl.axis('equal')\n
1b420 23 20 70 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 4f 54 #.pl.legend(loc=0)\npl.title('OT
1b440 20 73 71 75 61 72 65 64 20 45 75 63 6c 69 64 65 61 6e 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c .squared.Euclidean')\n\npl.subpl
1b460 6f 74 28 31 2c 20 33 2c 20 33 29 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 32 44 5f 73 61 6d 70 ot(1,.3,.3)\not.plot.plot2D_samp
1b480 6c 65 73 5f 6d 61 74 28 78 73 2c 20 78 74 2c 20 47 70 2c 20 63 3d 5b 2e 35 2c 20 2e 35 2c 20 31 les_mat(xs,.xt,.Gp,.c=[.5,..5,.1
1b4a0 5d 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 73 5b 3a 2c 20 30 5d 2c 20 78 73 5b 3a 2c 20 31 5d 2c 20 ])\npl.plot(xs[:,.0],.xs[:,.1],.
1b4c0 27 2b 62 27 2c 20 6c 61 62 65 6c 3d 27 53 6f 75 72 63 65 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 '+b',.label='Source.samples')\np
1b4e0 6c 2e 70 6c 6f 74 28 78 74 5b 3a 2c 20 30 5d 2c 20 78 74 5b 3a 2c 20 31 5d 2c 20 27 78 72 27 2c l.plot(xt[:,.0],.xt[:,.1],.'xr',
1b500 20 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 61 78 69 .label='Target.samples')\npl.axi
1b520 73 28 27 65 71 75 61 6c 27 29 5c 6e 23 20 70 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e s('equal')\n#.pl.legend(loc=0)\n
1b540 70 6c 2e 74 69 74 6c 65 28 27 4f 54 20 73 71 72 74 20 45 75 63 6c 69 64 65 61 6e 27 29 5c 6e 70 pl.title('OT.sqrt.Euclidean')\np
1b560 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 5c 6e 5c 6e 70 6c 2e 73 68 6f 77 28 29 22 0a 20 l.tight_layout()\n\npl.show()"..
1b580 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f .....].....},.....{......."cell_
1b5a0 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 type":."markdown",......."metada
1b5c0 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 ta":.{},......."source":.[......
1b5e0 20 20 20 22 44 61 74 61 73 65 74 20 32 20 3a 20 50 61 72 74 69 61 6c 20 63 69 72 63 6c 65 5c 6e ..."Dataset.2.:.Partial.circle\n
1b600 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a --------------------------\n\n".
1b620 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c ......].....},.....{......."cell
1b640 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e _type":."code",......."execution
1b660 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a _count":.null,......."metadata":
1b680 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 .{........."collapsed":.false...
1b6a0 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 ....},......."outputs":.[],.....
1b6c0 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 6e 20 3d 20 35 30 20 20 23 .."source":.[........."n.=.50..#
1b6e0 20 6e 62 20 73 61 6d 70 6c 65 73 5c 6e 78 74 6f 74 20 3d 20 6e 70 2e 7a 65 72 6f 73 28 28 6e 20 .nb.samples\nxtot.=.np.zeros((n.
1b700 2b 20 31 2c 20 32 29 29 5c 6e 78 74 6f 74 5b 3a 2c 20 30 5d 20 3d 20 6e 70 2e 63 6f 73 28 5c 6e +.1,.2))\nxtot[:,.0].=.np.cos(\n
1b720 20 20 20 20 28 6e 70 2e 61 72 61 6e 67 65 28 6e 20 2b 20 31 29 20 2b 20 31 2e 30 29 20 2a 20 30 ....(np.arange(n.+.1).+.1.0).*.0
1b740 2e 39 20 2f 20 28 6e 20 2b 20 32 29 20 2a 20 32 20 2a 20 6e 70 2e 70 69 29 5c 6e 78 74 6f 74 5b .9./.(n.+.2).*.2.*.np.pi)\nxtot[
1b760 3a 2c 20 31 5d 20 3d 20 6e 70 2e 73 69 6e 28 5c 6e 20 20 20 20 28 6e 70 2e 61 72 61 6e 67 65 28 :,.1].=.np.sin(\n....(np.arange(
1b780 6e 20 2b 20 31 29 20 2b 20 31 2e 30 29 20 2a 20 30 2e 39 20 2f 20 28 6e 20 2b 20 32 29 20 2a 20 n.+.1).+.1.0).*.0.9./.(n.+.2).*.
1b7a0 32 20 2a 20 6e 70 2e 70 69 29 5c 6e 5c 6e 78 73 20 3d 20 78 74 6f 74 5b 3a 6e 2c 20 3a 5d 5c 6e 2.*.np.pi)\n\nxs.=.xtot[:n,.:]\n
1b7c0 78 74 20 3d 20 78 74 6f 74 5b 31 3a 2c 20 3a 5d 5c 6e 5c 6e 61 2c 20 62 20 3d 20 6f 74 2e 75 6e xt.=.xtot[1:,.:]\n\na,.b.=.ot.un
1b7e0 69 66 28 6e 29 2c 20 6f 74 2e 75 6e 69 66 28 6e 29 20 20 23 20 75 6e 69 66 6f 72 6d 20 64 69 73 if(n),.ot.unif(n)..#.uniform.dis
1b800 74 72 69 62 75 74 69 6f 6e 20 6f 6e 20 73 61 6d 70 6c 65 73 5c 6e 5c 6e 23 20 6c 6f 73 73 20 6d tribution.on.samples\n\n#.loss.m
1b820 61 74 72 69 78 5c 6e 4d 31 20 3d 20 6f 74 2e 64 69 73 74 28 78 73 2c 20 78 74 2c 20 6d 65 74 72 atrix\nM1.=.ot.dist(xs,.xt,.metr
1b840 69 63 3d 27 65 75 63 6c 69 64 65 61 6e 27 29 5c 6e 4d 31 20 2f 3d 20 4d 31 2e 6d 61 78 28 29 5c ic='euclidean')\nM1./=.M1.max()\
1b860 6e 5c 6e 23 20 6c 6f 73 73 20 6d 61 74 72 69 78 5c 6e 4d 32 20 3d 20 6f 74 2e 64 69 73 74 28 78 n\n#.loss.matrix\nM2.=.ot.dist(x
1b880 73 2c 20 78 74 2c 20 6d 65 74 72 69 63 3d 27 73 71 65 75 63 6c 69 64 65 61 6e 27 29 5c 6e 4d 32 s,.xt,.metric='sqeuclidean')\nM2
1b8a0 20 2f 3d 20 4d 32 2e 6d 61 78 28 29 5c 6e 5c 6e 23 20 6c 6f 73 73 20 6d 61 74 72 69 78 5c 6e 4d ./=.M2.max()\n\n#.loss.matrix\nM
1b8c0 70 20 3d 20 6e 70 2e 73 71 72 74 28 6f 74 2e 64 69 73 74 28 78 73 2c 20 78 74 2c 20 6d 65 74 72 p.=.np.sqrt(ot.dist(xs,.xt,.metr
1b8e0 69 63 3d 27 65 75 63 6c 69 64 65 61 6e 27 29 29 5c 6e 4d 70 20 2f 3d 20 4d 70 2e 6d 61 78 28 29 ic='euclidean'))\nMp./=.Mp.max()
1b900 5c 6e 5c 6e 5c 6e 23 20 44 61 74 61 5c 6e 70 6c 2e 66 69 67 75 72 65 28 34 2c 20 66 69 67 73 69 \n\n\n#.Data\npl.figure(4,.figsi
1b920 7a 65 3d 28 37 2c 20 33 29 29 5c 6e 70 6c 2e 63 6c 66 28 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 73 ze=(7,.3))\npl.clf()\npl.plot(xs
1b940 5b 3a 2c 20 30 5d 2c 20 78 73 5b 3a 2c 20 31 5d 2c 20 27 2b 62 27 2c 20 6c 61 62 65 6c 3d 27 53 [:,.0],.xs[:,.1],.'+b',.label='S
1b960 6f 75 72 63 65 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 74 5b 3a 2c 20 30 ource.samples')\npl.plot(xt[:,.0
1b980 5d 2c 20 78 74 5b 3a 2c 20 31 5d 2c 20 27 78 72 27 2c 20 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 ],.xt[:,.1],.'xr',.label='Target
1b9a0 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 61 78 69 73 28 27 65 71 75 61 6c 27 29 5c 6e 70 6c .samples')\npl.axis('equal')\npl
1b9c0 2e 74 69 74 6c 65 28 27 53 6f 75 72 63 65 20 61 6e 64 20 74 72 61 67 65 74 20 64 69 73 74 72 69 .title('Source.and.traget.distri
1b9e0 62 75 74 69 6f 6e 73 27 29 5c 6e 5c 6e 5c 6e 23 20 43 6f 73 74 20 6d 61 74 72 69 63 65 73 5c 6e butions')\n\n\n#.Cost.matrices\n
1ba00 70 6c 2e 66 69 67 75 72 65 28 35 2c 20 66 69 67 73 69 7a 65 3d 28 37 2c 20 33 29 29 5c 6e 5c 6e pl.figure(5,.figsize=(7,.3))\n\n
1ba20 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 20 33 2c 20 31 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 4d pl.subplot(1,.3,.1)\npl.imshow(M
1ba40 31 2c 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 3d 27 6e 65 61 72 65 73 74 27 29 5c 6e 70 6c 2e 1,.interpolation='nearest')\npl.
1ba60 74 69 74 6c 65 28 27 45 75 63 6c 69 64 65 61 6e 20 63 6f 73 74 27 29 5c 6e 5c 6e 70 6c 2e 73 75 title('Euclidean.cost')\n\npl.su
1ba80 62 70 6c 6f 74 28 31 2c 20 33 2c 20 32 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 4d 32 2c 20 69 6e bplot(1,.3,.2)\npl.imshow(M2,.in
1baa0 74 65 72 70 6f 6c 61 74 69 6f 6e 3d 27 6e 65 61 72 65 73 74 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 terpolation='nearest')\npl.title
1bac0 28 27 53 71 75 61 72 65 64 20 45 75 63 6c 69 64 65 61 6e 20 63 6f 73 74 27 29 5c 6e 5c 6e 70 6c ('Squared.Euclidean.cost')\n\npl
1bae0 2e 73 75 62 70 6c 6f 74 28 31 2c 20 33 2c 20 33 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 4d 70 2c .subplot(1,.3,.3)\npl.imshow(Mp,
1bb00 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 3d 27 6e 65 61 72 65 73 74 27 29 5c 6e 70 6c 2e 74 69 .interpolation='nearest')\npl.ti
1bb20 74 6c 65 28 27 53 71 72 74 20 45 75 63 6c 69 64 65 61 6e 20 63 6f 73 74 27 29 5c 6e 70 6c 2e 74 tle('Sqrt.Euclidean.cost')\npl.t
1bb40 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 ight_layout()".......].....},...
1bb60 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e ..{......."cell_type":."markdown
1bb80 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 ",......."metadata":.{},......."
1bba0 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 44 61 74 61 73 65 74 20 32 20 3a 20 source":.[........."Dataset.2.:.
1bbc0 50 6c 6f 74 20 20 4f 54 20 4d 61 74 72 69 63 65 73 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d Plot..OT.Matrices\n-------------
1bbe0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 ----------------\n\n".......]...
1bc00 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 ..},.....{......."cell_type":."c
1bc20 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e ode",......."execution_count":.n
1bc40 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 ull,......."metadata":.{........
1bc60 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 ."collapsed":.false.......},....
1bc80 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 ..."outputs":.[],......."source"
1bca0 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 47 31 20 3d 20 6f 74 2e 65 6d 64 28 61 2c 20 62 2c 20 4d :.[........."G1.=.ot.emd(a,.b,.M
1bcc0 31 29 5c 6e 47 32 20 3d 20 6f 74 2e 65 6d 64 28 61 2c 20 62 2c 20 4d 32 29 5c 6e 47 70 20 3d 20 1)\nG2.=.ot.emd(a,.b,.M2)\nGp.=.
1bce0 6f 74 2e 65 6d 64 28 61 2c 20 62 2c 20 4d 70 29 5c 6e 5c 6e 23 20 4f 54 20 6d 61 74 72 69 63 65 ot.emd(a,.b,.Mp)\n\n#.OT.matrice
1bd00 73 5c 6e 70 6c 2e 66 69 67 75 72 65 28 36 2c 20 66 69 67 73 69 7a 65 3d 28 37 2c 20 33 29 29 5c s\npl.figure(6,.figsize=(7,.3))\
1bd20 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 20 33 2c 20 31 29 5c 6e 6f 74 2e 70 6c 6f 74 2e n\npl.subplot(1,.3,.1)\not.plot.
1bd40 70 6c 6f 74 32 44 5f 73 61 6d 70 6c 65 73 5f 6d 61 74 28 78 73 2c 20 78 74 2c 20 47 31 2c 20 63 plot2D_samples_mat(xs,.xt,.G1,.c
1bd60 3d 5b 2e 35 2c 20 2e 35 2c 20 31 5d 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 73 5b 3a 2c 20 30 5d 2c =[.5,..5,.1])\npl.plot(xs[:,.0],
1bd80 20 78 73 5b 3a 2c 20 31 5d 2c 20 27 2b 62 27 2c 20 6c 61 62 65 6c 3d 27 53 6f 75 72 63 65 20 73 .xs[:,.1],.'+b',.label='Source.s
1bda0 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 74 5b 3a 2c 20 30 5d 2c 20 78 74 5b 3a amples')\npl.plot(xt[:,.0],.xt[:
1bdc0 2c 20 31 5d 2c 20 27 78 72 27 2c 20 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 ,.1],.'xr',.label='Target.sample
1bde0 73 27 29 5c 6e 70 6c 2e 61 78 69 73 28 27 65 71 75 61 6c 27 29 5c 6e 23 20 70 6c 2e 6c 65 67 65 s')\npl.axis('equal')\n#.pl.lege
1be00 6e 64 28 6c 6f 63 3d 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 4f 54 20 45 75 63 6c 69 64 65 61 nd(loc=0)\npl.title('OT.Euclidea
1be20 6e 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 20 33 2c 20 32 29 5c 6e 6f 74 2e 70 n')\n\npl.subplot(1,.3,.2)\not.p
1be40 6c 6f 74 2e 70 6c 6f 74 32 44 5f 73 61 6d 70 6c 65 73 5f 6d 61 74 28 78 73 2c 20 78 74 2c 20 47 lot.plot2D_samples_mat(xs,.xt,.G
1be60 32 2c 20 63 3d 5b 2e 35 2c 20 2e 35 2c 20 31 5d 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 73 5b 3a 2c 2,.c=[.5,..5,.1])\npl.plot(xs[:,
1be80 20 30 5d 2c 20 78 73 5b 3a 2c 20 31 5d 2c 20 27 2b 62 27 2c 20 6c 61 62 65 6c 3d 27 53 6f 75 72 .0],.xs[:,.1],.'+b',.label='Sour
1bea0 63 65 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 74 5b 3a 2c 20 30 5d 2c 20 ce.samples')\npl.plot(xt[:,.0],.
1bec0 78 74 5b 3a 2c 20 31 5d 2c 20 27 78 72 27 2c 20 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 xt[:,.1],.'xr',.label='Target.sa
1bee0 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 61 78 69 73 28 27 65 71 75 61 6c 27 29 5c 6e 23 20 70 6c 2e mples')\npl.axis('equal')\n#.pl.
1bf00 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 4f 54 20 73 71 75 61 legend(loc=0)\npl.title('OT.squa
1bf20 72 65 64 20 45 75 63 6c 69 64 65 61 6e 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c red.Euclidean')\n\npl.subplot(1,
1bf40 20 33 2c 20 33 29 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 32 44 5f 73 61 6d 70 6c 65 73 5f 6d .3,.3)\not.plot.plot2D_samples_m
1bf60 61 74 28 78 73 2c 20 78 74 2c 20 47 70 2c 20 63 3d 5b 2e 35 2c 20 2e 35 2c 20 31 5d 29 5c 6e 70 at(xs,.xt,.Gp,.c=[.5,..5,.1])\np
1bf80 6c 2e 70 6c 6f 74 28 78 73 5b 3a 2c 20 30 5d 2c 20 78 73 5b 3a 2c 20 31 5d 2c 20 27 2b 62 27 2c l.plot(xs[:,.0],.xs[:,.1],.'+b',
1bfa0 20 6c 61 62 65 6c 3d 27 53 6f 75 72 63 65 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 70 6c 6f .label='Source.samples')\npl.plo
1bfc0 74 28 78 74 5b 3a 2c 20 30 5d 2c 20 78 74 5b 3a 2c 20 31 5d 2c 20 27 78 72 27 2c 20 6c 61 62 65 t(xt[:,.0],.xt[:,.1],.'xr',.labe
1bfe0 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 61 78 69 73 28 27 65 71 l='Target.samples')\npl.axis('eq
1c000 75 61 6c 27 29 5c 6e 23 20 70 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e 70 6c 2e 74 69 ual')\n#.pl.legend(loc=0)\npl.ti
1c020 74 6c 65 28 27 4f 54 20 73 71 72 74 20 45 75 63 6c 69 64 65 61 6e 27 29 5c 6e 70 6c 2e 74 69 67 tle('OT.sqrt.Euclidean')\npl.tig
1c040 68 74 5f 6c 61 79 6f 75 74 28 29 5c 6e 5c 6e 70 6c 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 ht_layout()\n\npl.show()".......
1c060 5d 0a 20 20 20 20 7d 0a 20 20 5d 2c 0a 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 ].....}...],..."metadata":.{....
1c080 20 22 6b 65 72 6e 65 6c 73 70 65 63 22 3a 20 7b 0a 20 20 20 20 20 20 22 64 69 73 70 6c 61 79 5f ."kernelspec":.{......."display_
1c0a0 6e 61 6d 65 22 3a 20 22 50 79 74 68 6f 6e 20 33 22 2c 0a 20 20 20 20 20 20 22 6c 61 6e 67 75 61 name":."Python.3",......."langua
1c0c0 67 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 ge":."python",......."name":."py
1c0e0 74 68 6f 6e 33 22 0a 20 20 20 20 7d 2c 0a 20 20 20 20 22 6c 61 6e 67 75 61 67 65 5f 69 6e 66 6f thon3".....},....."language_info
1c100 22 3a 20 7b 0a 20 20 20 20 20 20 22 63 6f 64 65 6d 69 72 72 6f 72 5f 6d 6f 64 65 22 3a 20 7b 0a ":.{......."codemirror_mode":.{.
1c120 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 69 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 ........"name":."ipython",......
1c140 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 33 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 ..."version":.3.......},......."
1c160 66 69 6c 65 5f 65 78 74 65 6e 73 69 6f 6e 22 3a 20 22 2e 70 79 22 2c 0a 20 20 20 20 20 20 22 6d file_extension":.".py",......."m
1c180 69 6d 65 74 79 70 65 22 3a 20 22 74 65 78 74 2f 78 2d 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 imetype":."text/x-python",......
1c1a0 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 62 63 6f 6e 76 ."name":."python",......."nbconv
1c1c0 65 72 74 5f 65 78 70 6f 72 74 65 72 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 ert_exporter":."python",......."
1c1e0 70 79 67 6d 65 6e 74 73 5f 6c 65 78 65 72 22 3a 20 22 69 70 79 74 68 6f 6e 33 22 2c 0a 20 20 20 pygments_lexer":."ipython3",....
1c200 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 36 2e 39 22 0a 20 20 20 20 7d 0a 20 20 7d 2c ..."version":."3.6.9".....}...},
1c220 0a 20 20 22 6e 62 66 6f 72 6d 61 74 22 3a 20 34 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 5f 6d 69 ..."nbformat":.4,..."nbformat_mi
1c240 6e 6f 72 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 a4 72 94 50 32 51 b4 4f 02 0d 00 00 02 nor":.0.}PK.........r.P2Q.O.....
1c260 0d 00 00 19 00 00 00 70 6c 6f 74 5f 73 63 72 65 65 6e 6b 68 6f 72 6e 5f 31 44 2e 69 70 79 6e 62 .......plot_screenkhorn_1D.ipynb
1c280 7b 0a 20 20 22 63 65 6c 6c 73 22 3a 20 5b 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c {..."cells":.[.....{......."cell
1c2a0 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e _type":."code",......."execution
1c2c0 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a _count":.null,......."metadata":
1c2e0 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 .{........."collapsed":.false...
1c300 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 ....},......."outputs":.[],.....
1c320 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 25 6d 61 74 70 6c 6f 74 6c .."source":.[........."%matplotl
1c340 69 62 20 69 6e 6c 69 6e 65 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a ib.inline".......].....},.....{.
1c360 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 ......"cell_type":."markdown",..
1c380 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 ....."metadata":.{},......."sour
1c3a0 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 31 44 20 53 63 72 65 65 6e 65 64 20 ce":.[........."\n#.1D.Screened.
1c3c0 6f 70 74 69 6d 61 6c 20 74 72 61 6e 73 70 6f 72 74 5c 6e 5c 6e 5c 6e 54 68 69 73 20 65 78 61 6d optimal.transport\n\n\nThis.exam
1c3e0 70 6c 65 20 69 6c 6c 75 73 74 72 61 74 65 73 20 74 68 65 20 63 6f 6d 70 75 74 61 74 69 6f 6e 20 ple.illustrates.the.computation.
1c400 6f 66 20 53 63 72 65 65 6e 6b 68 6f 72 6e 3a 5c 6e 53 63 72 65 65 6e 69 6e 67 20 53 69 6e 6b 68 of.Screenkhorn:\nScreening.Sinkh
1c420 6f 72 6e 20 41 6c 67 6f 72 69 74 68 6d 20 66 6f 72 20 4f 70 74 69 6d 61 6c 20 74 72 61 6e 73 70 orn.Algorithm.for.Optimal.transp
1c440 6f 72 74 2e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 ort.\n\n".......].....},.....{..
1c460 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 ....."cell_type":."code",.......
1c480 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 "execution_count":.null,......."
1c4a0 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 metadata":.{........."collapsed"
1c4c0 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 :.false.......},......."outputs"
1c4e0 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 :.[],......."source":.[.........
1c500 22 23 20 41 75 74 68 6f 72 3a 20 4d 6f 6b 68 74 61 72 20 5a 2e 20 41 6c 61 79 61 20 3c 6d 6f 6b "#.Author:.Mokhtar.Z..Alaya.<mok
1c520 68 74 61 72 7a 61 68 64 69 2e 61 6c 61 79 61 40 67 6d 61 69 6c 2e 63 6f 6d 3e 5c 6e 23 5c 6e 23 htarzahdi.alaya@gmail.com>\n#\n#
1c540 20 4c 69 63 65 6e 73 65 3a 20 4d 49 54 20 4c 69 63 65 6e 73 65 5c 6e 5c 6e 69 6d 70 6f 72 74 20 .License:.MIT.License\n\nimport.
1c560 6e 75 6d 70 79 20 61 73 20 6e 70 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 numpy.as.np\nimport.matplotlib.p
1c580 79 6c 61 62 20 61 73 20 70 6c 5c 6e 69 6d 70 6f 72 74 20 6f 74 2e 70 6c 6f 74 5c 6e 66 72 6f 6d ylab.as.pl\nimport.ot.plot\nfrom
1c5a0 20 6f 74 2e 64 61 74 61 73 65 74 73 20 69 6d 70 6f 72 74 20 6d 61 6b 65 5f 31 44 5f 67 61 75 73 .ot.datasets.import.make_1D_gaus
1c5c0 73 20 61 73 20 67 61 75 73 73 5c 6e 66 72 6f 6d 20 6f 74 2e 62 72 65 67 6d 61 6e 20 69 6d 70 6f s.as.gauss\nfrom.ot.bregman.impo
1c5e0 72 74 20 73 63 72 65 65 6e 6b 68 6f 72 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 rt.screenkhorn".......].....},..
1c600 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 ...{......."cell_type":."markdow
1c620 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 n",......."metadata":.{},.......
1c640 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 47 65 6e 65 72 61 74 65 20 64 61 "source":.[........."Generate.da
1c660 74 61 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 ta\n-------------\n\n".......]..
1c680 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 ...},.....{......."cell_type":."
1c6a0 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 code",......."execution_count":.
1c6c0 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 null,......."metadata":.{.......
1c6e0 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 .."collapsed":.false.......},...
1c700 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 ...."outputs":.[],......."source
1c720 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 6e 20 3d 20 31 30 30 20 20 23 20 6e 62 20 62 69 6e 73 ":.[........."n.=.100..#.nb.bins
1c740 5c 6e 5c 6e 23 20 62 69 6e 20 70 6f 73 69 74 69 6f 6e 73 5c 6e 78 20 3d 20 6e 70 2e 61 72 61 6e \n\n#.bin.positions\nx.=.np.aran
1c760 67 65 28 6e 2c 20 64 74 79 70 65 3d 6e 70 2e 66 6c 6f 61 74 36 34 29 5c 6e 5c 6e 23 20 47 61 75 ge(n,.dtype=np.float64)\n\n#.Gau
1c780 73 73 69 61 6e 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 5c 6e 61 20 3d 20 67 61 75 73 73 28 6e ssian.distributions\na.=.gauss(n
1c7a0 2c 20 6d 3d 32 30 2c 20 73 3d 35 29 20 20 23 20 6d 3d 20 6d 65 61 6e 2c 20 73 3d 20 73 74 64 5c ,.m=20,.s=5)..#.m=.mean,.s=.std\
1c7c0 6e 62 20 3d 20 67 61 75 73 73 28 6e 2c 20 6d 3d 36 30 2c 20 73 3d 31 30 29 5c 6e 5c 6e 23 20 6c nb.=.gauss(n,.m=60,.s=10)\n\n#.l
1c7e0 6f 73 73 20 6d 61 74 72 69 78 5c 6e 4d 20 3d 20 6f 74 2e 64 69 73 74 28 78 2e 72 65 73 68 61 70 oss.matrix\nM.=.ot.dist(x.reshap
1c800 65 28 28 6e 2c 20 31 29 29 2c 20 78 2e 72 65 73 68 61 70 65 28 28 6e 2c 20 31 29 29 29 5c 6e 4d e((n,.1)),.x.reshape((n,.1)))\nM
1c820 20 2f 3d 20 4d 2e 6d 61 78 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 ./=.M.max()".......].....},.....
1c840 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c {......."cell_type":."markdown",
1c860 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f ......."metadata":.{},......."so
1c880 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 50 6c 6f 74 20 64 69 73 74 72 69 62 75 74 urce":.[........."Plot.distribut
1c8a0 69 6f 6e 73 20 61 6e 64 20 6c 6f 73 73 20 6d 61 74 72 69 78 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ions.and.loss.matrix\n----------
1c8c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 ------------------------\n\n"...
1c8e0 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 ....].....},.....{......."cell_t
1c900 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 ype":."code",......."execution_c
1c920 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b ount":.null,......."metadata":.{
1c940 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 ........."collapsed":.false.....
1c960 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 ..},......."outputs":.[],.......
1c980 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 70 6c 2e 66 69 67 75 72 65 28 31 "source":.[........."pl.figure(1
1c9a0 2c 20 66 69 67 73 69 7a 65 3d 28 36 2e 34 2c 20 33 29 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 2c 20 ,.figsize=(6.4,.3))\npl.plot(x,.
1c9c0 61 2c 20 27 62 27 2c 20 6c 61 62 65 6c 3d 27 53 6f 75 72 63 65 20 64 69 73 74 72 69 62 75 74 69 a,.'b',.label='Source.distributi
1c9e0 6f 6e 27 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 2c 20 62 2c 20 27 72 27 2c 20 6c 61 62 65 6c 3d 27 on')\npl.plot(x,.b,.'r',.label='
1ca00 54 61 72 67 65 74 20 64 69 73 74 72 69 62 75 74 69 6f 6e 27 29 5c 6e 70 6c 2e 6c 65 67 65 6e 64 Target.distribution')\npl.legend
1ca20 28 29 5c 6e 5c 6e 23 20 70 6c 6f 74 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 20 61 6e 64 20 6c ()\n\n#.plot.distributions.and.l
1ca40 6f 73 73 20 6d 61 74 72 69 78 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 32 2c 20 66 69 67 73 69 oss.matrix\n\npl.figure(2,.figsi
1ca60 7a 65 3d 28 35 2c 20 35 29 29 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 31 44 5f 6d 61 74 28 61 ze=(5,.5))\not.plot.plot1D_mat(a
1ca80 2c 20 62 2c 20 4d 2c 20 27 43 6f 73 74 20 6d 61 74 72 69 78 20 4d 27 29 22 0a 20 20 20 20 20 20 ,.b,.M,.'Cost.matrix.M')".......
1caa0 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 ].....},.....{......."cell_type"
1cac0 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 :."markdown",......."metadata":.
1cae0 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 53 {},......."source":.[........."S
1cb00 6f 6c 76 65 20 53 63 72 65 65 6e 6b 68 6f 72 6e 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d olve.Screenkhorn\n--------------
1cb20 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 ---------\n\n".......].....},...
1cb40 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 ..{......."cell_type":."code",..
1cb60 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 ....."execution_count":.null,...
1cb80 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 ...."metadata":.{........."colla
1cba0 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 psed":.false.......},......."out
1cbc0 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 puts":.[],......."source":.[....
1cbe0 20 20 20 20 20 22 23 20 53 63 72 65 65 6e 6b 68 6f 72 6e 5c 6e 6c 61 6d 62 64 20 3d 20 32 65 2d ....."#.Screenkhorn\nlambd.=.2e-
1cc00 30 33 20 20 23 20 65 6e 74 72 6f 70 79 20 70 61 72 61 6d 65 74 65 72 5c 6e 6e 73 5f 62 75 64 67 03..#.entropy.parameter\nns_budg
1cc20 65 74 20 3d 20 33 30 20 20 23 20 62 75 64 67 65 74 20 6e 75 6d 62 65 72 20 6f 66 20 70 6f 69 6e et.=.30..#.budget.number.of.poin
1cc40 74 73 20 74 6f 20 62 65 20 6b 65 65 70 65 64 20 69 6e 20 74 68 65 20 73 6f 75 72 63 65 20 64 69 ts.to.be.keeped.in.the.source.di
1cc60 73 74 72 69 62 75 74 69 6f 6e 5c 6e 6e 74 5f 62 75 64 67 65 74 20 3d 20 33 30 20 20 23 20 62 75 stribution\nnt_budget.=.30..#.bu
1cc80 64 67 65 74 20 6e 75 6d 62 65 72 20 6f 66 20 70 6f 69 6e 74 73 20 74 6f 20 62 65 20 6b 65 65 70 dget.number.of.points.to.be.keep
1cca0 65 64 20 69 6e 20 74 68 65 20 74 61 72 67 65 74 20 64 69 73 74 72 69 62 75 74 69 6f 6e 5c 6e 5c ed.in.the.target.distribution\n\
1ccc0 6e 47 5f 73 63 72 65 65 6e 20 3d 20 73 63 72 65 65 6e 6b 68 6f 72 6e 28 61 2c 20 62 2c 20 4d 2c nG_screen.=.screenkhorn(a,.b,.M,
1cce0 20 6c 61 6d 62 64 2c 20 6e 73 5f 62 75 64 67 65 74 2c 20 6e 74 5f 62 75 64 67 65 74 2c 20 75 6e .lambd,.ns_budget,.nt_budget,.un
1cd00 69 66 6f 72 6d 3d 46 61 6c 73 65 2c 20 72 65 73 74 72 69 63 74 65 64 3d 54 72 75 65 2c 20 76 65 iform=False,.restricted=True,.ve
1cd20 72 62 6f 73 65 3d 54 72 75 65 29 5c 6e 70 6c 2e 66 69 67 75 72 65 28 34 2c 20 66 69 67 73 69 7a rbose=True)\npl.figure(4,.figsiz
1cd40 65 3d 28 35 2c 20 35 29 29 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 31 44 5f 6d 61 74 28 61 2c e=(5,.5))\not.plot.plot1D_mat(a,
1cd60 20 62 2c 20 47 5f 73 63 72 65 65 6e 2c 20 27 4f 54 20 6d 61 74 72 69 78 20 53 63 72 65 65 6e 6b .b,.G_screen,.'OT.matrix.Screenk
1cd80 68 6f 72 6e 27 29 5c 6e 70 6c 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d horn')\npl.show()".......].....}
1cda0 0a 20 20 5d 2c 0a 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 22 6b 65 72 6e 65 ...],..."metadata":.{....."kerne
1cdc0 6c 73 70 65 63 22 3a 20 7b 0a 20 20 20 20 20 20 22 64 69 73 70 6c 61 79 5f 6e 61 6d 65 22 3a 20 lspec":.{......."display_name":.
1cde0 22 50 79 74 68 6f 6e 20 33 22 2c 0a 20 20 20 20 20 20 22 6c 61 6e 67 75 61 67 65 22 3a 20 22 70 "Python.3",......."language":."p
1ce00 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 33 22 0a ython",......."name":."python3".
1ce20 20 20 20 20 7d 2c 0a 20 20 20 20 22 6c 61 6e 67 75 61 67 65 5f 69 6e 66 6f 22 3a 20 7b 0a 20 20 ....},....."language_info":.{...
1ce40 20 20 20 20 22 63 6f 64 65 6d 69 72 72 6f 72 5f 6d 6f 64 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 ...."codemirror_mode":.{........
1ce60 20 22 6e 61 6d 65 22 3a 20 22 69 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 20 20 22 76 65 72 ."name":."ipython",........."ver
1ce80 73 69 6f 6e 22 3a 20 33 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 66 69 6c 65 5f 65 78 sion":.3.......},......."file_ex
1cea0 74 65 6e 73 69 6f 6e 22 3a 20 22 2e 70 79 22 2c 0a 20 20 20 20 20 20 22 6d 69 6d 65 74 79 70 65 tension":.".py",......."mimetype
1cec0 22 3a 20 22 74 65 78 74 2f 78 2d 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 ":."text/x-python",......."name"
1cee0 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 62 63 6f 6e 76 65 72 74 5f 65 78 70 :."python",......."nbconvert_exp
1cf00 6f 72 74 65 72 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 70 79 67 6d 65 6e 74 orter":."python",......."pygment
1cf20 73 5f 6c 65 78 65 72 22 3a 20 22 69 70 79 74 68 6f 6e 33 22 2c 0a 20 20 20 20 20 20 22 76 65 72 s_lexer":."ipython3",......."ver
1cf40 73 69 6f 6e 22 3a 20 22 33 2e 36 2e 39 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 6e 62 66 sion":."3.6.9".....}...},..."nbf
1cf60 6f 72 6d 61 74 22 3a 20 34 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 5f 6d 69 6e 6f 72 22 3a 20 30 ormat":.4,..."nbformat_minor":.0
1cf80 0a 7d 50 4b 03 04 14 00 00 00 00 00 a6 72 94 50 9d 28 3f 1d 11 10 00 00 11 10 00 00 16 00 00 00 .}PK.........r.P.(?.............
1cfa0 70 6c 6f 74 5f 63 6f 6d 70 75 74 65 5f 65 6d 64 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 plot_compute_emd.ipynb{..."cells
1cfc0 22 3a 20 5b 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 ":.[.....{......."cell_type":."c
1cfe0 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e ode",......."execution_count":.n
1d000 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 ull,......."metadata":.{........
1d020 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 ."collapsed":.false.......},....
1d040 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 ..."outputs":.[],......."source"
1d060 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 25 6d 61 74 70 6c 6f 74 6c 69 62 20 69 6e 6c 69 6e 65 22 :.[........."%matplotlib.inline"
1d080 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c .......].....},.....{......."cel
1d0a0 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 l_type":."markdown",......."meta
1d0c0 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 data":.{},......."source":.[....
1d0e0 20 20 20 20 20 22 5c 6e 23 20 50 6c 6f 74 20 6d 75 6c 74 69 70 6c 65 20 45 4d 44 5c 6e 5c 6e 5c ....."\n#.Plot.multiple.EMD\n\n\
1d100 6e 53 68 6f 77 73 20 68 6f 77 20 74 6f 20 63 6f 6d 70 75 74 65 20 6d 75 6c 74 69 70 6c 65 20 45 nShows.how.to.compute.multiple.E
1d120 4d 44 20 61 6e 64 20 53 69 6e 6b 68 6f 72 6e 20 77 69 74 68 20 74 77 6f 20 64 69 66 66 65 72 6e MD.and.Sinkhorn.with.two.differn
1d140 74 5c 6e 67 72 6f 75 6e 64 20 6d 65 74 72 69 63 73 20 61 6e 64 20 70 6c 6f 74 20 74 68 65 69 72 t\nground.metrics.and.plot.their
1d160 20 76 61 6c 75 65 73 20 66 6f 72 20 64 69 66 66 65 65 6e 74 20 64 69 73 74 72 69 62 75 74 69 6f .values.for.diffeent.distributio
1d180 6e 73 2e 5c 6e 5c 6e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 ns.\n\n\n\n".......].....},.....
1d1a0 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 {......."cell_type":."code",....
1d1c0 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 ..."execution_count":.null,.....
1d1e0 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 .."metadata":.{........."collaps
1d200 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 ed":.false.......},......."outpu
1d220 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 ts":.[],......."source":.[......
1d240 20 20 20 22 23 20 41 75 74 68 6f 72 3a 20 52 65 6d 69 20 46 6c 61 6d 61 72 79 20 3c 72 65 6d 69 ..."#.Author:.Remi.Flamary.<remi
1d260 2e 66 6c 61 6d 61 72 79 40 75 6e 69 63 65 2e 66 72 3e 5c 6e 23 5c 6e 23 20 4c 69 63 65 6e 73 65 .flamary@unice.fr>\n#\n#.License
1d280 3a 20 4d 49 54 20 4c 69 63 65 6e 73 65 5c 6e 5c 6e 69 6d 70 6f 72 74 20 6e 75 6d 70 79 20 61 73 :.MIT.License\n\nimport.numpy.as
1d2a0 20 6e 70 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 6c 61 62 20 61 73 20 .np\nimport.matplotlib.pylab.as.
1d2c0 70 6c 5c 6e 69 6d 70 6f 72 74 20 6f 74 5c 6e 66 72 6f 6d 20 6f 74 2e 64 61 74 61 73 65 74 73 20 pl\nimport.ot\nfrom.ot.datasets.
1d2e0 69 6d 70 6f 72 74 20 6d 61 6b 65 5f 31 44 5f 67 61 75 73 73 20 61 73 20 67 61 75 73 73 22 0a 20 import.make_1D_gauss.as.gauss"..
1d300 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f .....].....},.....{......."cell_
1d320 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 type":."markdown",......."metada
1d340 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 ta":.{},......."source":.[......
1d360 20 20 20 22 47 65 6e 65 72 61 74 65 20 64 61 74 61 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ..."Generate.data\n-------------
1d380 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 \n\n".......].....},.....{......
1d3a0 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 ."cell_type":."code",......."exe
1d3c0 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 cution_count":.null,......."meta
1d3e0 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 data":.{........."collapsed":.fa
1d400 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d lse.......},......."outputs":.[]
1d420 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 6e 20 3d ,......."source":.[........."n.=
1d440 20 31 30 30 20 20 23 20 6e 62 20 62 69 6e 73 5c 6e 6e 5f 74 61 72 67 65 74 20 3d 20 35 30 20 20 .100..#.nb.bins\nn_target.=.50..
1d460 23 20 6e 62 20 74 61 72 67 65 74 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 5c 6e 5c 6e 5c 6e 23 #.nb.target.distributions\n\n\n#
1d480 20 62 69 6e 20 70 6f 73 69 74 69 6f 6e 73 5c 6e 78 20 3d 20 6e 70 2e 61 72 61 6e 67 65 28 6e 2c .bin.positions\nx.=.np.arange(n,
1d4a0 20 64 74 79 70 65 3d 6e 70 2e 66 6c 6f 61 74 36 34 29 5c 6e 5c 6e 6c 73 74 5f 6d 20 3d 20 6e 70 .dtype=np.float64)\n\nlst_m.=.np
1d4c0 2e 6c 69 6e 73 70 61 63 65 28 32 30 2c 20 39 30 2c 20 6e 5f 74 61 72 67 65 74 29 5c 6e 5c 6e 23 .linspace(20,.90,.n_target)\n\n#
1d4e0 20 47 61 75 73 73 69 61 6e 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 5c 6e 61 20 3d 20 67 61 75 .Gaussian.distributions\na.=.gau
1d500 73 73 28 6e 2c 20 6d 3d 32 30 2c 20 73 3d 35 29 20 20 23 20 6d 3d 20 6d 65 61 6e 2c 20 73 3d 20 ss(n,.m=20,.s=5)..#.m=.mean,.s=.
1d520 73 74 64 5c 6e 5c 6e 42 20 3d 20 6e 70 2e 7a 65 72 6f 73 28 28 6e 2c 20 6e 5f 74 61 72 67 65 74 std\n\nB.=.np.zeros((n,.n_target
1d540 29 29 5c 6e 5c 6e 66 6f 72 20 69 2c 20 6d 20 69 6e 20 65 6e 75 6d 65 72 61 74 65 28 6c 73 74 5f ))\n\nfor.i,.m.in.enumerate(lst_
1d560 6d 29 3a 5c 6e 20 20 20 20 42 5b 3a 2c 20 69 5d 20 3d 20 67 61 75 73 73 28 6e 2c 20 6d 3d 6d 2c m):\n....B[:,.i].=.gauss(n,.m=m,
1d580 20 73 3d 35 29 5c 6e 5c 6e 23 20 6c 6f 73 73 20 6d 61 74 72 69 78 20 61 6e 64 20 6e 6f 72 6d 61 .s=5)\n\n#.loss.matrix.and.norma
1d5a0 6c 69 7a 61 74 69 6f 6e 5c 6e 4d 20 3d 20 6f 74 2e 64 69 73 74 28 78 2e 72 65 73 68 61 70 65 28 lization\nM.=.ot.dist(x.reshape(
1d5c0 28 6e 2c 20 31 29 29 2c 20 78 2e 72 65 73 68 61 70 65 28 28 6e 2c 20 31 29 29 2c 20 27 65 75 63 (n,.1)),.x.reshape((n,.1)),.'euc
1d5e0 6c 69 64 65 61 6e 27 29 5c 6e 4d 20 2f 3d 20 4d 2e 6d 61 78 28 29 5c 6e 4d 32 20 3d 20 6f 74 2e lidean')\nM./=.M.max()\nM2.=.ot.
1d600 64 69 73 74 28 78 2e 72 65 73 68 61 70 65 28 28 6e 2c 20 31 29 29 2c 20 78 2e 72 65 73 68 61 70 dist(x.reshape((n,.1)),.x.reshap
1d620 65 28 28 6e 2c 20 31 29 29 2c 20 27 73 71 65 75 63 6c 69 64 65 61 6e 27 29 5c 6e 4d 32 20 2f 3d e((n,.1)),.'sqeuclidean')\nM2./=
1d640 20 4d 32 2e 6d 61 78 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a .M2.max()".......].....},.....{.
1d660 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 ......"cell_type":."markdown",..
1d680 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 ....."metadata":.{},......."sour
1d6a0 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 50 6c 6f 74 20 64 61 74 61 5c 6e 2d 2d 2d 2d 2d ce":.[........."Plot.data\n-----
1d6c0 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 ----\n\n".......].....},.....{..
1d6e0 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 ....."cell_type":."code",.......
1d700 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 "execution_count":.null,......."
1d720 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 metadata":.{........."collapsed"
1d740 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 :.false.......},......."outputs"
1d760 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 :.[],......."source":.[.........
1d780 22 70 6c 2e 66 69 67 75 72 65 28 31 29 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 31 2c 20 "pl.figure(1)\npl.subplot(2,.1,.
1d7a0 31 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 2c 20 61 2c 20 27 62 27 2c 20 6c 61 62 65 6c 3d 27 53 6f 1)\npl.plot(x,.a,.'b',.label='So
1d7c0 75 72 63 65 20 64 69 73 74 72 69 62 75 74 69 6f 6e 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 53 urce.distribution')\npl.title('S
1d7e0 6f 75 72 63 65 20 64 69 73 74 72 69 62 75 74 69 6f 6e 27 29 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 ource.distribution')\npl.subplot
1d800 28 32 2c 20 31 2c 20 32 29 5c 6e 70 6c 2e 70 6c 6f 74 28 78 2c 20 42 2c 20 6c 61 62 65 6c 3d 27 (2,.1,.2)\npl.plot(x,.B,.label='
1d820 54 61 72 67 65 74 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 Target.distributions')\npl.title
1d840 28 27 54 61 72 67 65 74 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 27 29 5c 6e 70 6c 2e 74 69 67 ('Target.distributions')\npl.tig
1d860 68 74 5f 6c 61 79 6f 75 74 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 ht_layout()".......].....},.....
1d880 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c {......."cell_type":."markdown",
1d8a0 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f ......."metadata":.{},......."so
1d8c0 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 6f 6d 70 75 74 65 20 45 4d 44 20 66 6f urce":.[........."Compute.EMD.fo
1d8e0 72 20 74 68 65 20 64 69 66 66 65 72 65 6e 74 20 6c 6f 73 73 65 73 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d r.the.different.losses\n--------
1d900 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e ----------------------------\n\n
1d920 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 ".......].....},.....{......."ce
1d940 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 ll_type":."code",......."executi
1d960 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 on_count":.null,......."metadata
1d980 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a ":.{........."collapsed":.false.
1d9a0 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 ......},......."outputs":.[],...
1d9c0 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 64 5f 65 6d 64 20 3d ...."source":.[........."d_emd.=
1d9e0 20 6f 74 2e 65 6d 64 32 28 61 2c 20 42 2c 20 4d 29 20 20 23 20 64 69 72 65 63 74 20 63 6f 6d 70 .ot.emd2(a,.B,.M)..#.direct.comp
1da00 75 74 61 74 69 6f 6e 20 6f 66 20 45 4d 44 5c 6e 64 5f 65 6d 64 32 20 3d 20 6f 74 2e 65 6d 64 32 utation.of.EMD\nd_emd2.=.ot.emd2
1da20 28 61 2c 20 42 2c 20 4d 32 29 20 20 23 20 64 69 72 65 63 74 20 63 6f 6d 70 75 74 61 74 69 6f 6e (a,.B,.M2)..#.direct.computation
1da40 20 6f 66 20 45 4d 44 20 77 69 74 68 20 6c 6f 73 73 20 4d 32 5c 6e 5c 6e 5c 6e 70 6c 2e 66 69 67 .of.EMD.with.loss.M2\n\n\npl.fig
1da60 75 72 65 28 32 29 5c 6e 70 6c 2e 70 6c 6f 74 28 64 5f 65 6d 64 2c 20 6c 61 62 65 6c 3d 27 45 75 ure(2)\npl.plot(d_emd,.label='Eu
1da80 63 6c 69 64 65 61 6e 20 45 4d 44 27 29 5c 6e 70 6c 2e 70 6c 6f 74 28 64 5f 65 6d 64 32 2c 20 6c clidean.EMD')\npl.plot(d_emd2,.l
1daa0 61 62 65 6c 3d 27 53 71 75 61 72 65 64 20 45 75 63 6c 69 64 65 61 6e 20 45 4d 44 27 29 5c 6e 70 abel='Squared.Euclidean.EMD')\np
1dac0 6c 2e 74 69 74 6c 65 28 27 45 4d 44 20 64 69 73 74 61 6e 63 65 73 27 29 5c 6e 70 6c 2e 6c 65 67 l.title('EMD.distances')\npl.leg
1dae0 65 6e 64 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 end()".......].....},.....{.....
1db00 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 .."cell_type":."markdown",......
1db20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a ."metadata":.{},......."source":
1db40 20 5b 0a 20 20 20 20 20 20 20 20 22 43 6f 6d 70 75 74 65 20 53 69 6e 6b 68 6f 72 6e 20 66 6f 72 .[........."Compute.Sinkhorn.for
1db60 20 74 68 65 20 64 69 66 66 65 72 65 6e 74 20 6c 6f 73 73 65 73 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d .the.different.losses\n---------
1db80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
1dba0 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 \n\n".......].....},.....{......
1dbc0 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 ."cell_type":."code",......."exe
1dbe0 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 cution_count":.null,......."meta
1dc00 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 data":.{........."collapsed":.fa
1dc20 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d lse.......},......."outputs":.[]
1dc40 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 72 65 67 ,......."source":.[........."reg
1dc60 20 3d 20 31 65 2d 32 5c 6e 64 5f 73 69 6e 6b 68 6f 72 6e 20 3d 20 6f 74 2e 73 69 6e 6b 68 6f 72 .=.1e-2\nd_sinkhorn.=.ot.sinkhor
1dc80 6e 32 28 61 2c 20 42 2c 20 4d 2c 20 72 65 67 29 5c 6e 64 5f 73 69 6e 6b 68 6f 72 6e 32 20 3d 20 n2(a,.B,.M,.reg)\nd_sinkhorn2.=.
1dca0 6f 74 2e 73 69 6e 6b 68 6f 72 6e 32 28 61 2c 20 42 2c 20 4d 32 2c 20 72 65 67 29 5c 6e 5c 6e 70 ot.sinkhorn2(a,.B,.M2,.reg)\n\np
1dcc0 6c 2e 66 69 67 75 72 65 28 32 29 5c 6e 70 6c 2e 63 6c 66 28 29 5c 6e 70 6c 2e 70 6c 6f 74 28 64 l.figure(2)\npl.clf()\npl.plot(d
1dce0 5f 65 6d 64 2c 20 6c 61 62 65 6c 3d 27 45 75 63 6c 69 64 65 61 6e 20 45 4d 44 27 29 5c 6e 70 6c _emd,.label='Euclidean.EMD')\npl
1dd00 2e 70 6c 6f 74 28 64 5f 65 6d 64 32 2c 20 6c 61 62 65 6c 3d 27 53 71 75 61 72 65 64 20 45 75 63 .plot(d_emd2,.label='Squared.Euc
1dd20 6c 69 64 65 61 6e 20 45 4d 44 27 29 5c 6e 70 6c 2e 70 6c 6f 74 28 64 5f 73 69 6e 6b 68 6f 72 6e lidean.EMD')\npl.plot(d_sinkhorn
1dd40 2c 20 27 2b 27 2c 20 6c 61 62 65 6c 3d 27 45 75 63 6c 69 64 65 61 6e 20 53 69 6e 6b 68 6f 72 6e ,.'+',.label='Euclidean.Sinkhorn
1dd60 27 29 5c 6e 70 6c 2e 70 6c 6f 74 28 64 5f 73 69 6e 6b 68 6f 72 6e 32 2c 20 27 2b 27 2c 20 6c 61 ')\npl.plot(d_sinkhorn2,.'+',.la
1dd80 62 65 6c 3d 27 53 71 75 61 72 65 64 20 45 75 63 6c 69 64 65 61 6e 20 53 69 6e 6b 68 6f 72 6e 27 bel='Squared.Euclidean.Sinkhorn'
1dda0 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 45 4d 44 20 64 69 73 74 61 6e 63 65 73 27 29 5c 6e 70 6c )\npl.title('EMD.distances')\npl
1ddc0 2e 6c 65 67 65 6e 64 28 29 5c 6e 5c 6e 70 6c 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a .legend()\n\npl.show()".......].
1dde0 20 20 20 20 7d 0a 20 20 5d 2c 0a 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 22 ....}...],..."metadata":.{....."
1de00 6b 65 72 6e 65 6c 73 70 65 63 22 3a 20 7b 0a 20 20 20 20 20 20 22 64 69 73 70 6c 61 79 5f 6e 61 kernelspec":.{......."display_na
1de20 6d 65 22 3a 20 22 50 79 74 68 6f 6e 20 33 22 2c 0a 20 20 20 20 20 20 22 6c 61 6e 67 75 61 67 65 me":."Python.3",......."language
1de40 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 ":."python",......."name":."pyth
1de60 6f 6e 33 22 0a 20 20 20 20 7d 2c 0a 20 20 20 20 22 6c 61 6e 67 75 61 67 65 5f 69 6e 66 6f 22 3a on3".....},....."language_info":
1de80 20 7b 0a 20 20 20 20 20 20 22 63 6f 64 65 6d 69 72 72 6f 72 5f 6d 6f 64 65 22 3a 20 7b 0a 20 20 .{......."codemirror_mode":.{...
1dea0 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 69 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 20 ......"name":."ipython",........
1dec0 20 22 76 65 72 73 69 6f 6e 22 3a 20 33 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 66 69 ."version":.3.......},......."fi
1dee0 6c 65 5f 65 78 74 65 6e 73 69 6f 6e 22 3a 20 22 2e 70 79 22 2c 0a 20 20 20 20 20 20 22 6d 69 6d le_extension":.".py",......."mim
1df00 65 74 79 70 65 22 3a 20 22 74 65 78 74 2f 78 2d 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 etype":."text/x-python",......."
1df20 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 62 63 6f 6e 76 65 72 name":."python",......."nbconver
1df40 74 5f 65 78 70 6f 72 74 65 72 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 70 79 t_exporter":."python",......."py
1df60 67 6d 65 6e 74 73 5f 6c 65 78 65 72 22 3a 20 22 69 70 79 74 68 6f 6e 33 22 2c 0a 20 20 20 20 20 gments_lexer":."ipython3",......
1df80 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 36 2e 39 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 ."version":."3.6.9".....}...},..
1dfa0 20 22 6e 62 66 6f 72 6d 61 74 22 3a 20 34 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 5f 6d 69 6e 6f ."nbformat":.4,..."nbformat_mino
1dfc0 72 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 d2 72 94 50 72 63 28 c1 ab 1f 00 00 ab 1f 00 r":.0.}PK.........r.Prc(........
1dfe0 00 15 00 00 00 70 6c 6f 74 5f 6f 74 64 61 5f 6a 63 70 6f 74 2e 69 70 79 6e 62 7b 0a 20 20 22 63 .....plot_otda_jcpot.ipynb{..."c
1e000 65 6c 6c 73 22 3a 20 5b 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 ells":.[.....{......."cell_type"
1e020 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 :."code",......."execution_count
1e040 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 ":.null,......."metadata":.{....
1e060 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c ....."collapsed":.false.......},
1e080 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 ......."outputs":.[],......."sou
1e0a0 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 25 6d 61 74 70 6c 6f 74 6c 69 62 20 69 6e 6c rce":.[........."%matplotlib.inl
1e0c0 69 6e 65 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 ine".......].....},.....{.......
1e0e0 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 "cell_type":."markdown",......."
1e100 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b metadata":.{},......."source":.[
1e120 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 4f 54 20 66 6f 72 20 6d 75 6c 74 69 2d 73 6f 75 72 63 ........."\n#.OT.for.multi-sourc
1e140 65 20 74 61 72 67 65 74 20 73 68 69 66 74 5c 6e 5c 6e 5c 6e 54 68 69 73 20 65 78 61 6d 70 6c 65 e.target.shift\n\n\nThis.example
1e160 20 69 6e 74 72 6f 64 75 63 65 73 20 61 20 74 61 72 67 65 74 20 73 68 69 66 74 20 70 72 6f 62 6c .introduces.a.target.shift.probl
1e180 65 6d 20 77 69 74 68 20 74 77 6f 20 32 44 20 73 6f 75 72 63 65 20 61 6e 64 20 31 20 74 61 72 67 em.with.two.2D.source.and.1.targ
1e1a0 65 74 20 64 6f 6d 61 69 6e 2e 5c 6e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c et.domain.\n\n\n".......].....},
1e1c0 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 .....{......."cell_type":."code"
1e1e0 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c ,......."execution_count":.null,
1e200 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f ......."metadata":.{........."co
1e220 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 llapsed":.false.......},......."
1e240 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a outputs":.[],......."source":.[.
1e260 20 20 20 20 20 20 20 20 22 23 20 41 75 74 68 6f 72 73 3a 20 52 65 6d 69 20 46 6c 61 6d 61 72 79 ........"#.Authors:.Remi.Flamary
1e280 20 3c 72 65 6d 69 2e 66 6c 61 6d 61 72 79 40 75 6e 69 63 65 2e 66 72 3e 5c 6e 23 20 20 20 20 20 .<remi.flamary@unice.fr>\n#.....
1e2a0 20 20 20 20 20 49 65 76 67 65 6e 20 52 65 64 6b 6f 20 3c 69 65 76 67 65 6e 2e 72 65 64 6b 6f 40 .....Ievgen.Redko.<ievgen.redko@
1e2c0 75 6e 69 76 2d 73 74 2d 65 74 69 65 6e 6e 65 2e 66 72 3e 5c 6e 23 5c 6e 23 20 4c 69 63 65 6e 73 univ-st-etienne.fr>\n#\n#.Licens
1e2e0 65 3a 20 4d 49 54 20 4c 69 63 65 6e 73 65 5c 6e 5c 6e 69 6d 70 6f 72 74 20 70 79 6c 61 62 20 61 e:.MIT.License\n\nimport.pylab.a
1e300 73 20 70 6c 5c 6e 69 6d 70 6f 72 74 20 6e 75 6d 70 79 20 61 73 20 6e 70 5c 6e 69 6d 70 6f 72 74 s.pl\nimport.numpy.as.np\nimport
1e320 20 6f 74 5c 6e 66 72 6f 6d 20 6f 74 2e 64 61 74 61 73 65 74 73 20 69 6d 70 6f 72 74 20 6d 61 6b .ot\nfrom.ot.datasets.import.mak
1e340 65 5f 64 61 74 61 5f 63 6c 61 73 73 69 66 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 e_data_classif".......].....},..
1e360 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 ...{......."cell_type":."markdow
1e380 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 n",......."metadata":.{},.......
1e3a0 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 47 65 6e 65 72 61 74 65 20 64 61 "source":.[........."Generate.da
1e3c0 74 61 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 ta\n-------------\n\n".......]..
1e3e0 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 ...},.....{......."cell_type":."
1e400 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 code",......."execution_count":.
1e420 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 null,......."metadata":.{.......
1e440 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 .."collapsed":.false.......},...
1e460 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 ...."outputs":.[],......."source
1e480 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 6e 20 3d 20 35 30 5c 6e 73 69 67 6d 61 20 3d 20 30 2e ":.[........."n.=.50\nsigma.=.0.
1e4a0 33 5c 6e 6e 70 2e 72 61 6e 64 6f 6d 2e 73 65 65 64 28 31 39 38 35 29 5c 6e 5c 6e 70 31 20 3d 20 3\nnp.random.seed(1985)\n\np1.=.
1e4c0 2e 32 5c 6e 64 65 63 31 20 3d 20 5b 30 2c 20 32 5d 5c 6e 5c 6e 70 32 20 3d 20 2e 39 5c 6e 64 65 .2\ndec1.=.[0,.2]\n\np2.=..9\nde
1e4e0 63 32 20 3d 20 5b 30 2c 20 2d 32 5d 5c 6e 5c 6e 70 74 20 3d 20 2e 34 5c 6e 64 65 63 74 20 3d 20 c2.=.[0,.-2]\n\npt.=..4\ndect.=.
1e500 5b 34 2c 20 30 5d 5c 6e 5c 6e 78 73 31 2c 20 79 73 31 20 3d 20 6d 61 6b 65 5f 64 61 74 61 5f 63 [4,.0]\n\nxs1,.ys1.=.make_data_c
1e520 6c 61 73 73 69 66 28 27 32 67 61 75 73 73 5f 70 72 6f 70 27 2c 20 6e 2c 20 6e 7a 3d 73 69 67 6d lassif('2gauss_prop',.n,.nz=sigm
1e540 61 2c 20 70 3d 70 31 2c 20 62 69 61 73 3d 64 65 63 31 29 5c 6e 78 73 32 2c 20 79 73 32 20 3d 20 a,.p=p1,.bias=dec1)\nxs2,.ys2.=.
1e560 6d 61 6b 65 5f 64 61 74 61 5f 63 6c 61 73 73 69 66 28 27 32 67 61 75 73 73 5f 70 72 6f 70 27 2c make_data_classif('2gauss_prop',
1e580 20 6e 20 2b 20 31 2c 20 6e 7a 3d 73 69 67 6d 61 2c 20 70 3d 70 32 2c 20 62 69 61 73 3d 64 65 63 .n.+.1,.nz=sigma,.p=p2,.bias=dec
1e5a0 32 29 5c 6e 78 74 2c 20 79 74 20 3d 20 6d 61 6b 65 5f 64 61 74 61 5f 63 6c 61 73 73 69 66 28 27 2)\nxt,.yt.=.make_data_classif('
1e5c0 32 67 61 75 73 73 5f 70 72 6f 70 27 2c 20 6e 2c 20 6e 7a 3d 73 69 67 6d 61 2c 20 70 3d 70 74 2c 2gauss_prop',.n,.nz=sigma,.p=pt,
1e5e0 20 62 69 61 73 3d 64 65 63 74 29 5c 6e 5c 6e 61 6c 6c 5f 58 72 20 3d 20 5b 78 73 31 2c 20 78 73 .bias=dect)\n\nall_Xr.=.[xs1,.xs
1e600 32 5d 5c 6e 61 6c 6c 5f 59 72 20 3d 20 5b 79 73 31 2c 20 79 73 32 5d 22 0a 20 20 20 20 20 20 5d 2]\nall_Yr.=.[ys1,.ys2]".......]
1e620 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a .....},.....{......."cell_type":
1e640 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 ."code",......."execution_count"
1e660 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 :.null,......."metadata":.{.....
1e680 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a ...."collapsed":.false.......},.
1e6a0 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 ......"outputs":.[],......."sour
1e6c0 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 64 61 20 3d 20 31 2e 35 5c 6e 5c 6e 5c 6e 64 65 ce":.[........."da.=.1.5\n\n\nde
1e6e0 66 20 70 6c 6f 74 5f 61 78 28 64 65 63 2c 20 6e 61 6d 65 29 3a 5c 6e 20 20 20 20 70 6c 2e 70 6c f.plot_ax(dec,.name):\n....pl.pl
1e700 6f 74 28 5b 64 65 63 5b 30 5d 2c 20 64 65 63 5b 30 5d 5d 2c 20 5b 64 65 63 5b 31 5d 20 2d 20 64 ot([dec[0],.dec[0]],.[dec[1].-.d
1e720 61 2c 20 64 65 63 5b 31 5d 20 2b 20 64 61 5d 2c 20 27 6b 27 2c 20 61 6c 70 68 61 3d 30 2e 35 29 a,.dec[1].+.da],.'k',.alpha=0.5)
1e740 5c 6e 20 20 20 20 70 6c 2e 70 6c 6f 74 28 5b 64 65 63 5b 30 5d 20 2d 20 64 61 2c 20 64 65 63 5b \n....pl.plot([dec[0].-.da,.dec[
1e760 30 5d 20 2b 20 64 61 5d 2c 20 5b 64 65 63 5b 31 5d 2c 20 64 65 63 5b 31 5d 5d 2c 20 27 6b 27 2c 0].+.da],.[dec[1],.dec[1]],.'k',
1e780 20 61 6c 70 68 61 3d 30 2e 35 29 5c 6e 20 20 20 20 70 6c 2e 74 65 78 74 28 64 65 63 5b 30 5d 20 .alpha=0.5)\n....pl.text(dec[0].
1e7a0 2d 20 2e 35 2c 20 64 65 63 5b 31 5d 20 2b 20 32 2c 20 6e 61 6d 65 29 22 0a 20 20 20 20 20 20 5d -..5,.dec[1].+.2,.name)".......]
1e7c0 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a .....},.....{......."cell_type":
1e7e0 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b ."markdown",......."metadata":.{
1e800 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 46 69 },......."source":.[........."Fi
1e820 67 20 31 20 3a 20 70 6c 6f 74 73 20 73 6f 75 72 63 65 20 61 6e 64 20 74 61 72 67 65 74 20 73 61 g.1.:.plots.source.and.target.sa
1e840 6d 70 6c 65 73 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d mples\n-------------------------
1e860 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 --------------\n\n".......].....
1e880 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 },.....{......."cell_type":."cod
1e8a0 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c e",......."execution_count":.nul
1e8c0 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 l,......."metadata":.{........."
1e8e0 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 collapsed":.false.......},......
1e900 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 ."outputs":.[],......."source":.
1e920 5b 0a 20 20 20 20 20 20 20 20 22 70 6c 2e 66 69 67 75 72 65 28 31 29 5c 6e 70 6c 2e 63 6c 66 28 [........."pl.figure(1)\npl.clf(
1e940 29 5c 6e 70 6c 6f 74 5f 61 78 28 64 65 63 31 2c 20 27 53 6f 75 72 63 65 20 31 27 29 5c 6e 70 6c )\nplot_ax(dec1,.'Source.1')\npl
1e960 6f 74 5f 61 78 28 64 65 63 32 2c 20 27 53 6f 75 72 63 65 20 32 27 29 5c 6e 70 6c 6f 74 5f 61 78 ot_ax(dec2,.'Source.2')\nplot_ax
1e980 28 64 65 63 74 2c 20 27 54 61 72 67 65 74 27 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 78 73 31 (dect,.'Target')\npl.scatter(xs1
1e9a0 5b 3a 2c 20 30 5d 2c 20 78 73 31 5b 3a 2c 20 31 5d 2c 20 63 3d 79 73 31 2c 20 73 3d 33 35 2c 20 [:,.0],.xs1[:,.1],.c=ys1,.s=35,.
1e9c0 6d 61 72 6b 65 72 3d 27 78 27 2c 20 63 6d 61 70 3d 27 53 65 74 31 27 2c 20 76 6d 61 78 3d 39 2c marker='x',.cmap='Set1',.vmax=9,
1e9e0 5c 6e 20 20 20 20 20 20 20 20 20 20 20 6c 61 62 65 6c 3d 27 53 6f 75 72 63 65 20 31 20 28 7b 3a \n...........label='Source.1.({:
1ea00 31 2e 32 66 7d 2c 20 7b 3a 31 2e 32 66 7d 29 27 2e 66 6f 72 6d 61 74 28 31 20 2d 20 70 31 2c 20 1.2f},.{:1.2f})'.format(1.-.p1,.
1ea20 70 31 29 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 78 73 32 5b 3a 2c 20 30 5d 2c 20 78 73 32 5b p1))\npl.scatter(xs2[:,.0],.xs2[
1ea40 3a 2c 20 31 5d 2c 20 63 3d 79 73 32 2c 20 73 3d 33 35 2c 20 6d 61 72 6b 65 72 3d 27 2b 27 2c 20 :,.1],.c=ys2,.s=35,.marker='+',.
1ea60 63 6d 61 70 3d 27 53 65 74 31 27 2c 20 76 6d 61 78 3d 39 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 cmap='Set1',.vmax=9,\n..........
1ea80 20 6c 61 62 65 6c 3d 27 53 6f 75 72 63 65 20 32 20 28 7b 3a 31 2e 32 66 7d 2c 20 7b 3a 31 2e 32 .label='Source.2.({:1.2f},.{:1.2
1eaa0 66 7d 29 27 2e 66 6f 72 6d 61 74 28 31 20 2d 20 70 32 2c 20 70 32 29 29 5c 6e 70 6c 2e 73 63 61 f})'.format(1.-.p2,.p2))\npl.sca
1eac0 74 74 65 72 28 78 74 5b 3a 2c 20 30 5d 2c 20 78 74 5b 3a 2c 20 31 5d 2c 20 63 3d 79 74 2c 20 73 tter(xt[:,.0],.xt[:,.1],.c=yt,.s
1eae0 3d 33 35 2c 20 6d 61 72 6b 65 72 3d 27 6f 27 2c 20 63 6d 61 70 3d 27 53 65 74 31 27 2c 20 76 6d =35,.marker='o',.cmap='Set1',.vm
1eb00 61 78 3d 39 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 ax=9,\n...........label='Target.
1eb20 28 7b 3a 31 2e 32 66 7d 2c 20 7b 3a 31 2e 32 66 7d 29 27 2e 66 6f 72 6d 61 74 28 31 20 2d 20 70 ({:1.2f},.{:1.2f})'.format(1.-.p
1eb40 74 2c 20 70 74 29 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 44 61 74 61 27 29 5c 6e 5c 6e 70 6c 2e t,.pt))\npl.title('Data')\n\npl.
1eb60 6c 65 67 65 6e 64 28 29 5c 6e 70 6c 2e 61 78 69 73 28 27 65 71 75 61 6c 27 29 5c 6e 70 6c 2e 61 legend()\npl.axis('equal')\npl.a
1eb80 78 69 73 28 27 6f 66 66 27 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b xis('off')".......].....},.....{
1eba0 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a ......."cell_type":."markdown",.
1ebc0 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 ......"metadata":.{},......."sou
1ebe0 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 49 6e 73 74 61 6e 74 69 61 74 65 20 53 69 6e rce":.[........."Instantiate.Sin
1ec00 6b 68 6f 72 6e 20 74 72 61 6e 73 70 6f 72 74 20 61 6c 67 6f 72 69 74 68 6d 20 61 6e 64 20 66 69 khorn.transport.algorithm.and.fi
1ec20 74 20 74 68 65 6d 20 66 6f 72 20 61 6c 6c 20 73 6f 75 72 63 65 20 64 6f 6d 61 69 6e 73 5c 6e 2d t.them.for.all.source.domains\n-
1ec40 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
1ec60 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
1ec80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a -----------\n\n".......].....},.
1eca0 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c ....{......."cell_type":."code",
1ecc0 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a ......."execution_count":.null,.
1ece0 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c ......"metadata":.{........."col
1ed00 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f lapsed":.false.......},......."o
1ed20 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 utputs":.[],......."source":.[..
1ed40 20 20 20 20 20 20 20 22 6f 74 5f 73 69 6e 6b 68 6f 72 6e 20 3d 20 6f 74 2e 64 61 2e 53 69 6e 6b ......."ot_sinkhorn.=.ot.da.Sink
1ed60 68 6f 72 6e 54 72 61 6e 73 70 6f 72 74 28 72 65 67 5f 65 3d 31 65 2d 31 2c 20 6d 65 74 72 69 63 hornTransport(reg_e=1e-1,.metric
1ed80 3d 27 73 71 65 75 63 6c 69 64 65 61 6e 27 29 5c 6e 5c 6e 5c 6e 64 65 66 20 70 72 69 6e 74 5f 47 ='sqeuclidean')\n\n\ndef.print_G
1eda0 28 47 2c 20 78 73 2c 20 79 73 2c 20 78 74 29 3a 5c 6e 20 20 20 20 66 6f 72 20 69 20 69 6e 20 72 (G,.xs,.ys,.xt):\n....for.i.in.r
1edc0 61 6e 67 65 28 47 2e 73 68 61 70 65 5b 30 5d 29 3a 5c 6e 20 20 20 20 20 20 20 20 66 6f 72 20 6a ange(G.shape[0]):\n........for.j
1ede0 20 69 6e 20 72 61 6e 67 65 28 47 2e 73 68 61 70 65 5b 31 5d 29 3a 5c 6e 20 20 20 20 20 20 20 20 .in.range(G.shape[1]):\n........
1ee00 20 20 20 20 69 66 20 47 5b 69 2c 20 6a 5d 20 3e 20 35 65 2d 34 3a 5c 6e 20 20 20 20 20 20 20 20 ....if.G[i,.j].>.5e-4:\n........
1ee20 20 20 20 20 20 20 20 20 69 66 20 79 73 5b 69 5d 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 ........if.ys[i]:\n.............
1ee40 20 20 20 20 20 20 20 63 20 3d 20 27 62 27 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .......c.=.'b'\n................
1ee60 65 6c 73 65 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 20 3d 20 27 else:\n....................c.=.'
1ee80 72 27 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 6c 2e 70 6c 6f 74 28 5b 78 73 5b r'\n................pl.plot([xs[
1eea0 69 2c 20 30 5d 2c 20 78 74 5b 6a 2c 20 30 5d 5d 2c 20 5b 78 73 5b 69 2c 20 31 5d 2c 20 78 74 5b i,.0],.xt[j,.0]],.[xs[i,.1],.xt[
1eec0 6a 2c 20 31 5d 5d 2c 20 63 2c 20 61 6c 70 68 61 3d 2e 32 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 j,.1]],.c,.alpha=.2)".......]...
1eee0 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d ..},.....{......."cell_type":."m
1ef00 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a arkdown",......."metadata":.{},.
1ef20 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 46 69 67 20 32 ......"source":.[........."Fig.2
1ef40 20 3a 20 70 6c 6f 74 20 6f 70 74 69 6d 61 6c 20 63 6f 75 70 6c 69 6e 67 73 20 61 6e 64 20 74 72 .:.plot.optimal.couplings.and.tr
1ef60 61 6e 73 70 6f 72 74 65 64 20 73 61 6d 70 6c 65 73 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ansported.samples\n-------------
1ef80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
1efa0 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 ---------\n\n".......].....},...
1efc0 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 ..{......."cell_type":."code",..
1efe0 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 ....."execution_count":.null,...
1f000 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 ...."metadata":.{........."colla
1f020 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 psed":.false.......},......."out
1f040 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 puts":.[],......."source":.[....
1f060 20 20 20 20 20 22 70 6c 2e 66 69 67 75 72 65 28 32 29 5c 6e 70 6c 2e 63 6c 66 28 29 5c 6e 70 6c ....."pl.figure(2)\npl.clf()\npl
1f080 6f 74 5f 61 78 28 64 65 63 31 2c 20 27 53 6f 75 72 63 65 20 31 27 29 5c 6e 70 6c 6f 74 5f 61 78 ot_ax(dec1,.'Source.1')\nplot_ax
1f0a0 28 64 65 63 32 2c 20 27 53 6f 75 72 63 65 20 32 27 29 5c 6e 70 6c 6f 74 5f 61 78 28 64 65 63 74 (dec2,.'Source.2')\nplot_ax(dect
1f0c0 2c 20 27 54 61 72 67 65 74 27 29 5c 6e 70 72 69 6e 74 5f 47 28 6f 74 5f 73 69 6e 6b 68 6f 72 6e ,.'Target')\nprint_G(ot_sinkhorn
1f0e0 2e 66 69 74 28 58 73 3d 78 73 31 2c 20 58 74 3d 78 74 29 2e 63 6f 75 70 6c 69 6e 67 5f 2c 20 78 .fit(Xs=xs1,.Xt=xt).coupling_,.x
1f100 73 31 2c 20 79 73 31 2c 20 78 74 29 5c 6e 70 72 69 6e 74 5f 47 28 6f 74 5f 73 69 6e 6b 68 6f 72 s1,.ys1,.xt)\nprint_G(ot_sinkhor
1f120 6e 2e 66 69 74 28 58 73 3d 78 73 32 2c 20 58 74 3d 78 74 29 2e 63 6f 75 70 6c 69 6e 67 5f 2c 20 n.fit(Xs=xs2,.Xt=xt).coupling_,.
1f140 78 73 32 2c 20 79 73 32 2c 20 78 74 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 78 73 31 5b 3a 2c xs2,.ys2,.xt)\npl.scatter(xs1[:,
1f160 20 30 5d 2c 20 78 73 31 5b 3a 2c 20 31 5d 2c 20 63 3d 79 73 31 2c 20 73 3d 33 35 2c 20 6d 61 72 .0],.xs1[:,.1],.c=ys1,.s=35,.mar
1f180 6b 65 72 3d 27 78 27 2c 20 63 6d 61 70 3d 27 53 65 74 31 27 2c 20 76 6d 61 78 3d 39 29 5c 6e 70 ker='x',.cmap='Set1',.vmax=9)\np
1f1a0 6c 2e 73 63 61 74 74 65 72 28 78 73 32 5b 3a 2c 20 30 5d 2c 20 78 73 32 5b 3a 2c 20 31 5d 2c 20 l.scatter(xs2[:,.0],.xs2[:,.1],.
1f1c0 63 3d 79 73 32 2c 20 73 3d 33 35 2c 20 6d 61 72 6b 65 72 3d 27 2b 27 2c 20 63 6d 61 70 3d 27 53 c=ys2,.s=35,.marker='+',.cmap='S
1f1e0 65 74 31 27 2c 20 76 6d 61 78 3d 39 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 78 74 5b 3a 2c 20 et1',.vmax=9)\npl.scatter(xt[:,.
1f200 30 5d 2c 20 78 74 5b 3a 2c 20 31 5d 2c 20 63 3d 79 74 2c 20 73 3d 33 35 2c 20 6d 61 72 6b 65 72 0],.xt[:,.1],.c=yt,.s=35,.marker
1f220 3d 27 6f 27 2c 20 63 6d 61 70 3d 27 53 65 74 31 27 2c 20 76 6d 61 78 3d 39 29 5c 6e 5c 6e 70 6c ='o',.cmap='Set1',.vmax=9)\n\npl
1f240 2e 70 6c 6f 74 28 5b 5d 2c 20 5b 5d 2c 20 27 72 27 2c 20 61 6c 70 68 61 3d 2e 32 2c 20 6c 61 62 .plot([],.[],.'r',.alpha=.2,.lab
1f260 65 6c 3d 27 4d 61 73 73 20 66 72 6f 6d 20 43 6c 61 73 73 20 31 27 29 5c 6e 70 6c 2e 70 6c 6f 74 el='Mass.from.Class.1')\npl.plot
1f280 28 5b 5d 2c 20 5b 5d 2c 20 27 62 27 2c 20 61 6c 70 68 61 3d 2e 32 2c 20 6c 61 62 65 6c 3d 27 4d ([],.[],.'b',.alpha=.2,.label='M
1f2a0 61 73 73 20 66 72 6f 6d 20 43 6c 61 73 73 20 32 27 29 5c 6e 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 ass.from.Class.2')\n\npl.title('
1f2c0 49 6e 64 65 70 65 6e 64 65 6e 74 20 4f 54 27 29 5c 6e 5c 6e 70 6c 2e 6c 65 67 65 6e 64 28 29 5c Independent.OT')\n\npl.legend()\
1f2e0 6e 70 6c 2e 61 78 69 73 28 27 65 71 75 61 6c 27 29 5c 6e 70 6c 2e 61 78 69 73 28 27 6f 66 66 27 npl.axis('equal')\npl.axis('off'
1f300 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 )".......].....},.....{......."c
1f320 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 ell_type":."markdown",......."me
1f340 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 tadata":.{},......."source":.[..
1f360 20 20 20 20 20 20 20 22 49 6e 73 74 61 6e 74 69 61 74 65 20 4a 43 50 4f 54 20 61 64 61 70 74 61 ......."Instantiate.JCPOT.adapta
1f380 74 69 6f 6e 20 61 6c 67 6f 72 69 74 68 6d 20 61 6e 64 20 66 69 74 20 69 74 5c 6e 2d 2d 2d 2d 2d tion.algorithm.and.fit.it\n-----
1f3a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
1f3c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
1f3e0 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 -------\n\n".......].....},.....
1f400 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 {......."cell_type":."code",....
1f420 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 ..."execution_count":.null,.....
1f440 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 .."metadata":.{........."collaps
1f460 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 ed":.false.......},......."outpu
1f480 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 ts":.[],......."source":.[......
1f4a0 20 20 20 22 6f 74 64 61 20 3d 20 6f 74 2e 64 61 2e 4a 43 50 4f 54 54 72 61 6e 73 70 6f 72 74 28 ..."otda.=.ot.da.JCPOTTransport(
1f4c0 72 65 67 5f 65 3d 31 2c 20 6d 61 78 5f 69 74 65 72 3d 31 30 30 30 2c 20 6d 65 74 72 69 63 3d 27 reg_e=1,.max_iter=1000,.metric='
1f4e0 73 71 65 75 63 6c 69 64 65 61 6e 27 2c 20 74 6f 6c 3d 31 65 2d 39 2c 20 76 65 72 62 6f 73 65 3d sqeuclidean',.tol=1e-9,.verbose=
1f500 54 72 75 65 2c 20 6c 6f 67 3d 54 72 75 65 29 5c 6e 6f 74 64 61 2e 66 69 74 28 61 6c 6c 5f 58 72 True,.log=True)\notda.fit(all_Xr
1f520 2c 20 61 6c 6c 5f 59 72 2c 20 78 74 29 5c 6e 5c 6e 77 73 31 20 3d 20 6f 74 64 61 2e 70 72 6f 70 ,.all_Yr,.xt)\n\nws1.=.otda.prop
1f540 6f 72 74 69 6f 6e 73 5f 2e 64 6f 74 28 6f 74 64 61 2e 6c 6f 67 5f 5b 27 44 32 27 5d 5b 30 5d 29 ortions_.dot(otda.log_['D2'][0])
1f560 5c 6e 77 73 32 20 3d 20 6f 74 64 61 2e 70 72 6f 70 6f 72 74 69 6f 6e 73 5f 2e 64 6f 74 28 6f 74 \nws2.=.otda.proportions_.dot(ot
1f580 64 61 2e 6c 6f 67 5f 5b 27 44 32 27 5d 5b 31 5d 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 33 da.log_['D2'][1])\n\npl.figure(3
1f5a0 29 5c 6e 70 6c 2e 63 6c 66 28 29 5c 6e 70 6c 6f 74 5f 61 78 28 64 65 63 31 2c 20 27 53 6f 75 72 )\npl.clf()\nplot_ax(dec1,.'Sour
1f5c0 63 65 20 31 27 29 5c 6e 70 6c 6f 74 5f 61 78 28 64 65 63 32 2c 20 27 53 6f 75 72 63 65 20 32 27 ce.1')\nplot_ax(dec2,.'Source.2'
1f5e0 29 5c 6e 70 6c 6f 74 5f 61 78 28 64 65 63 74 2c 20 27 54 61 72 67 65 74 27 29 5c 6e 70 72 69 6e )\nplot_ax(dect,.'Target')\nprin
1f600 74 5f 47 28 6f 74 2e 62 72 65 67 6d 61 6e 2e 73 69 6e 6b 68 6f 72 6e 28 77 73 31 2c 20 5b 5d 2c t_G(ot.bregman.sinkhorn(ws1,.[],
1f620 20 6f 74 64 61 2e 6c 6f 67 5f 5b 27 4d 27 5d 5b 30 5d 2c 20 72 65 67 3d 31 65 2d 31 29 2c 20 78 .otda.log_['M'][0],.reg=1e-1),.x
1f640 73 31 2c 20 79 73 31 2c 20 78 74 29 5c 6e 70 72 69 6e 74 5f 47 28 6f 74 2e 62 72 65 67 6d 61 6e s1,.ys1,.xt)\nprint_G(ot.bregman
1f660 2e 73 69 6e 6b 68 6f 72 6e 28 77 73 32 2c 20 5b 5d 2c 20 6f 74 64 61 2e 6c 6f 67 5f 5b 27 4d 27 .sinkhorn(ws2,.[],.otda.log_['M'
1f680 5d 5b 31 5d 2c 20 72 65 67 3d 31 65 2d 31 29 2c 20 78 73 32 2c 20 79 73 32 2c 20 78 74 29 5c 6e ][1],.reg=1e-1),.xs2,.ys2,.xt)\n
1f6a0 70 6c 2e 73 63 61 74 74 65 72 28 78 73 31 5b 3a 2c 20 30 5d 2c 20 78 73 31 5b 3a 2c 20 31 5d 2c pl.scatter(xs1[:,.0],.xs1[:,.1],
1f6c0 20 63 3d 79 73 31 2c 20 73 3d 33 35 2c 20 6d 61 72 6b 65 72 3d 27 78 27 2c 20 63 6d 61 70 3d 27 .c=ys1,.s=35,.marker='x',.cmap='
1f6e0 53 65 74 31 27 2c 20 76 6d 61 78 3d 39 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 78 73 32 5b 3a Set1',.vmax=9)\npl.scatter(xs2[:
1f700 2c 20 30 5d 2c 20 78 73 32 5b 3a 2c 20 31 5d 2c 20 63 3d 79 73 32 2c 20 73 3d 33 35 2c 20 6d 61 ,.0],.xs2[:,.1],.c=ys2,.s=35,.ma
1f720 72 6b 65 72 3d 27 2b 27 2c 20 63 6d 61 70 3d 27 53 65 74 31 27 2c 20 76 6d 61 78 3d 39 29 5c 6e rker='+',.cmap='Set1',.vmax=9)\n
1f740 70 6c 2e 73 63 61 74 74 65 72 28 78 74 5b 3a 2c 20 30 5d 2c 20 78 74 5b 3a 2c 20 31 5d 2c 20 63 pl.scatter(xt[:,.0],.xt[:,.1],.c
1f760 3d 79 74 2c 20 73 3d 33 35 2c 20 6d 61 72 6b 65 72 3d 27 6f 27 2c 20 63 6d 61 70 3d 27 53 65 74 =yt,.s=35,.marker='o',.cmap='Set
1f780 31 27 2c 20 76 6d 61 78 3d 39 29 5c 6e 5c 6e 70 6c 2e 70 6c 6f 74 28 5b 5d 2c 20 5b 5d 2c 20 27 1',.vmax=9)\n\npl.plot([],.[],.'
1f7a0 72 27 2c 20 61 6c 70 68 61 3d 2e 32 2c 20 6c 61 62 65 6c 3d 27 4d 61 73 73 20 66 72 6f 6d 20 43 r',.alpha=.2,.label='Mass.from.C
1f7c0 6c 61 73 73 20 31 27 29 5c 6e 70 6c 2e 70 6c 6f 74 28 5b 5d 2c 20 5b 5d 2c 20 27 62 27 2c 20 61 lass.1')\npl.plot([],.[],.'b',.a
1f7e0 6c 70 68 61 3d 2e 32 2c 20 6c 61 62 65 6c 3d 27 4d 61 73 73 20 66 72 6f 6d 20 43 6c 61 73 73 20 lpha=.2,.label='Mass.from.Class.
1f800 32 27 29 5c 6e 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 4f 54 20 77 69 74 68 20 70 72 6f 70 20 65 73 2')\n\npl.title('OT.with.prop.es
1f820 74 69 6d 61 74 69 6f 6e 20 28 7b 3a 31 2e 33 66 7d 2c 7b 3a 31 2e 33 66 7d 29 27 2e 66 6f 72 6d timation.({:1.3f},{:1.3f})'.form
1f840 61 74 28 6f 74 64 61 2e 70 72 6f 70 6f 72 74 69 6f 6e 73 5f 5b 30 5d 2c 20 6f 74 64 61 2e 70 72 at(otda.proportions_[0],.otda.pr
1f860 6f 70 6f 72 74 69 6f 6e 73 5f 5b 31 5d 29 29 5c 6e 5c 6e 70 6c 2e 6c 65 67 65 6e 64 28 29 5c 6e oportions_[1]))\n\npl.legend()\n
1f880 70 6c 2e 61 78 69 73 28 27 65 71 75 61 6c 27 29 5c 6e 70 6c 2e 61 78 69 73 28 27 6f 66 66 27 29 pl.axis('equal')\npl.axis('off')
1f8a0 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 ".......].....},.....{......."ce
1f8c0 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 ll_type":."markdown",......."met
1f8e0 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 adata":.{},......."source":.[...
1f900 20 20 20 20 20 20 22 52 75 6e 20 6f 72 61 63 6c 65 20 74 72 61 6e 73 70 6f 72 74 20 61 6c 67 6f ......"Run.oracle.transport.algo
1f920 72 69 74 68 6d 20 77 69 74 68 20 6b 6e 6f 77 6e 20 70 72 6f 70 6f 72 74 69 6f 6e 73 5c 6e 2d 2d rithm.with.known.proportions\n--
1f940 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
1f960 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
1f980 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 ----------\n\n".......].....},..
1f9a0 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a ...{......."cell_type":."code",.
1f9c0 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 ......"execution_count":.null,..
1f9e0 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c ....."metadata":.{........."coll
1fa00 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 apsed":.false.......},......."ou
1fa20 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 tputs":.[],......."source":.[...
1fa40 20 20 20 20 20 20 22 68 5f 72 65 73 20 3d 20 6e 70 2e 61 72 72 61 79 28 5b 31 20 2d 20 70 74 2c ......"h_res.=.np.array([1.-.pt,
1fa60 20 70 74 5d 29 5c 6e 5c 6e 77 73 31 20 3d 20 68 5f 72 65 73 2e 64 6f 74 28 6f 74 64 61 2e 6c 6f .pt])\n\nws1.=.h_res.dot(otda.lo
1fa80 67 5f 5b 27 44 32 27 5d 5b 30 5d 29 5c 6e 77 73 32 20 3d 20 68 5f 72 65 73 2e 64 6f 74 28 6f 74 g_['D2'][0])\nws2.=.h_res.dot(ot
1faa0 64 61 2e 6c 6f 67 5f 5b 27 44 32 27 5d 5b 31 5d 29 5c 6e 5c 6e 70 6c 2e 66 69 67 75 72 65 28 34 da.log_['D2'][1])\n\npl.figure(4
1fac0 29 5c 6e 70 6c 2e 63 6c 66 28 29 5c 6e 70 6c 6f 74 5f 61 78 28 64 65 63 31 2c 20 27 53 6f 75 72 )\npl.clf()\nplot_ax(dec1,.'Sour
1fae0 63 65 20 31 27 29 5c 6e 70 6c 6f 74 5f 61 78 28 64 65 63 32 2c 20 27 53 6f 75 72 63 65 20 32 27 ce.1')\nplot_ax(dec2,.'Source.2'
1fb00 29 5c 6e 70 6c 6f 74 5f 61 78 28 64 65 63 74 2c 20 27 54 61 72 67 65 74 27 29 5c 6e 70 72 69 6e )\nplot_ax(dect,.'Target')\nprin
1fb20 74 5f 47 28 6f 74 2e 62 72 65 67 6d 61 6e 2e 73 69 6e 6b 68 6f 72 6e 28 77 73 31 2c 20 5b 5d 2c t_G(ot.bregman.sinkhorn(ws1,.[],
1fb40 20 6f 74 64 61 2e 6c 6f 67 5f 5b 27 4d 27 5d 5b 30 5d 2c 20 72 65 67 3d 31 65 2d 31 29 2c 20 78 .otda.log_['M'][0],.reg=1e-1),.x
1fb60 73 31 2c 20 79 73 31 2c 20 78 74 29 5c 6e 70 72 69 6e 74 5f 47 28 6f 74 2e 62 72 65 67 6d 61 6e s1,.ys1,.xt)\nprint_G(ot.bregman
1fb80 2e 73 69 6e 6b 68 6f 72 6e 28 77 73 32 2c 20 5b 5d 2c 20 6f 74 64 61 2e 6c 6f 67 5f 5b 27 4d 27 .sinkhorn(ws2,.[],.otda.log_['M'
1fba0 5d 5b 31 5d 2c 20 72 65 67 3d 31 65 2d 31 29 2c 20 78 73 32 2c 20 79 73 32 2c 20 78 74 29 5c 6e ][1],.reg=1e-1),.xs2,.ys2,.xt)\n
1fbc0 70 6c 2e 73 63 61 74 74 65 72 28 78 73 31 5b 3a 2c 20 30 5d 2c 20 78 73 31 5b 3a 2c 20 31 5d 2c pl.scatter(xs1[:,.0],.xs1[:,.1],
1fbe0 20 63 3d 79 73 31 2c 20 73 3d 33 35 2c 20 6d 61 72 6b 65 72 3d 27 78 27 2c 20 63 6d 61 70 3d 27 .c=ys1,.s=35,.marker='x',.cmap='
1fc00 53 65 74 31 27 2c 20 76 6d 61 78 3d 39 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 78 73 32 5b 3a Set1',.vmax=9)\npl.scatter(xs2[:
1fc20 2c 20 30 5d 2c 20 78 73 32 5b 3a 2c 20 31 5d 2c 20 63 3d 79 73 32 2c 20 73 3d 33 35 2c 20 6d 61 ,.0],.xs2[:,.1],.c=ys2,.s=35,.ma
1fc40 72 6b 65 72 3d 27 2b 27 2c 20 63 6d 61 70 3d 27 53 65 74 31 27 2c 20 76 6d 61 78 3d 39 29 5c 6e rker='+',.cmap='Set1',.vmax=9)\n
1fc60 70 6c 2e 73 63 61 74 74 65 72 28 78 74 5b 3a 2c 20 30 5d 2c 20 78 74 5b 3a 2c 20 31 5d 2c 20 63 pl.scatter(xt[:,.0],.xt[:,.1],.c
1fc80 3d 79 74 2c 20 73 3d 33 35 2c 20 6d 61 72 6b 65 72 3d 27 6f 27 2c 20 63 6d 61 70 3d 27 53 65 74 =yt,.s=35,.marker='o',.cmap='Set
1fca0 31 27 2c 20 76 6d 61 78 3d 39 29 5c 6e 5c 6e 70 6c 2e 70 6c 6f 74 28 5b 5d 2c 20 5b 5d 2c 20 27 1',.vmax=9)\n\npl.plot([],.[],.'
1fcc0 72 27 2c 20 61 6c 70 68 61 3d 2e 32 2c 20 6c 61 62 65 6c 3d 27 4d 61 73 73 20 66 72 6f 6d 20 43 r',.alpha=.2,.label='Mass.from.C
1fce0 6c 61 73 73 20 31 27 29 5c 6e 70 6c 2e 70 6c 6f 74 28 5b 5d 2c 20 5b 5d 2c 20 27 62 27 2c 20 61 lass.1')\npl.plot([],.[],.'b',.a
1fd00 6c 70 68 61 3d 2e 32 2c 20 6c 61 62 65 6c 3d 27 4d 61 73 73 20 66 72 6f 6d 20 43 6c 61 73 73 20 lpha=.2,.label='Mass.from.Class.
1fd20 32 27 29 5c 6e 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 4f 54 20 77 69 74 68 20 6b 6e 6f 77 6e 20 70 2')\n\npl.title('OT.with.known.p
1fd40 72 6f 70 6f 72 74 69 6f 6e 20 28 7b 3a 31 2e 31 66 7d 2c 7b 3a 31 2e 31 66 7d 29 27 2e 66 6f 72 roportion.({:1.1f},{:1.1f})'.for
1fd60 6d 61 74 28 68 5f 72 65 73 5b 30 5d 2c 20 68 5f 72 65 73 5b 31 5d 29 29 5c 6e 5c 6e 70 6c 2e 6c mat(h_res[0],.h_res[1]))\n\npl.l
1fd80 65 67 65 6e 64 28 29 5c 6e 70 6c 2e 61 78 69 73 28 27 65 71 75 61 6c 27 29 5c 6e 70 6c 2e 61 78 egend()\npl.axis('equal')\npl.ax
1fda0 69 73 28 27 6f 66 66 27 29 5c 6e 70 6c 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 is('off')\npl.show()".......]...
1fdc0 20 20 7d 0a 20 20 5d 2c 0a 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 22 6b 65 ..}...],..."metadata":.{....."ke
1fde0 72 6e 65 6c 73 70 65 63 22 3a 20 7b 0a 20 20 20 20 20 20 22 64 69 73 70 6c 61 79 5f 6e 61 6d 65 rnelspec":.{......."display_name
1fe00 22 3a 20 22 50 79 74 68 6f 6e 20 33 22 2c 0a 20 20 20 20 20 20 22 6c 61 6e 67 75 61 67 65 22 3a ":."Python.3",......."language":
1fe20 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e ."python",......."name":."python
1fe40 33 22 0a 20 20 20 20 7d 2c 0a 20 20 20 20 22 6c 61 6e 67 75 61 67 65 5f 69 6e 66 6f 22 3a 20 7b 3".....},....."language_info":.{
1fe60 0a 20 20 20 20 20 20 22 63 6f 64 65 6d 69 72 72 6f 72 5f 6d 6f 64 65 22 3a 20 7b 0a 20 20 20 20 ......."codemirror_mode":.{.....
1fe80 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 69 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 20 20 22 ...."name":."ipython",........."
1fea0 76 65 72 73 69 6f 6e 22 3a 20 33 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 66 69 6c 65 version":.3.......},......."file
1fec0 5f 65 78 74 65 6e 73 69 6f 6e 22 3a 20 22 2e 70 79 22 2c 0a 20 20 20 20 20 20 22 6d 69 6d 65 74 _extension":.".py",......."mimet
1fee0 79 70 65 22 3a 20 22 74 65 78 74 2f 78 2d 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 ype":."text/x-python",......."na
1ff00 6d 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 62 63 6f 6e 76 65 72 74 5f me":."python",......."nbconvert_
1ff20 65 78 70 6f 72 74 65 72 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 70 79 67 6d exporter":."python",......."pygm
1ff40 65 6e 74 73 5f 6c 65 78 65 72 22 3a 20 22 69 70 79 74 68 6f 6e 33 22 2c 0a 20 20 20 20 20 20 22 ents_lexer":."ipython3",......."
1ff60 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 36 2e 39 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 version":."3.6.9".....}...},..."
1ff80 6e 62 66 6f 72 6d 61 74 22 3a 20 34 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 5f 6d 69 6e 6f 72 22 nbformat":.4,..."nbformat_minor"
1ffa0 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 c2 72 94 50 c1 53 cd fd f8 19 00 00 f8 19 00 00 1f :.0.}PK.........r.P.S...........
1ffc0 00 00 00 70 6c 6f 74 5f 6f 74 64 61 5f 73 65 6d 69 5f 73 75 70 65 72 76 69 73 65 64 2e 69 70 79 ...plot_otda_semi_supervised.ipy
1ffe0 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 22 3a 20 5b 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 nb{..."cells":.[.....{......."ce
20000 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 ll_type":."code",......."executi
20020 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 on_count":.null,......."metadata
20040 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a ":.{........."collapsed":.false.
20060 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 ......},......."outputs":.[],...
20080 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 25 6d 61 74 70 6c 6f ...."source":.[........."%matplo
200a0 74 6c 69 62 20 69 6e 6c 69 6e 65 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 tlib.inline".......].....},.....
200c0 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c {......."cell_type":."markdown",
200e0 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f ......."metadata":.{},......."so
20100 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 4f 54 44 41 20 75 6e 73 75 70 urce":.[........."\n#.OTDA.unsup
20120 65 72 76 69 73 65 64 20 76 73 20 73 65 6d 69 2d 73 75 70 65 72 76 69 73 65 64 20 73 65 74 74 69 ervised.vs.semi-supervised.setti
20140 6e 67 5c 6e 5c 6e 5c 6e 54 68 69 73 20 65 78 61 6d 70 6c 65 20 69 6e 74 72 6f 64 75 63 65 73 20 ng\n\n\nThis.example.introduces.
20160 61 20 73 65 6d 69 20 73 75 70 65 72 76 69 73 65 64 20 64 6f 6d 61 69 6e 20 61 64 61 70 74 61 74 a.semi.supervised.domain.adaptat
20180 69 6f 6e 20 69 6e 20 61 20 32 44 20 73 65 74 74 69 6e 67 2e 5c 6e 49 74 20 65 78 70 6c 69 63 69 ion.in.a.2D.setting.\nIt.explici
201a0 74 73 20 74 68 65 20 70 72 6f 62 6c 65 6d 20 6f 66 20 73 65 6d 69 20 73 75 70 65 72 76 69 73 65 ts.the.problem.of.semi.supervise
201c0 64 20 64 6f 6d 61 69 6e 20 61 64 61 70 74 61 74 69 6f 6e 20 61 6e 64 20 69 6e 74 72 6f 64 75 63 d.domain.adaptation.and.introduc
201e0 65 73 5c 6e 73 6f 6d 65 20 6f 70 74 69 6d 61 6c 20 74 72 61 6e 73 70 6f 72 74 20 61 70 70 72 6f es\nsome.optimal.transport.appro
20200 61 63 68 65 73 20 74 6f 20 73 6f 6c 76 65 20 69 74 2e 5c 6e 5c 6e 51 75 61 6e 74 69 74 69 65 73 aches.to.solve.it.\n\nQuantities
20220 20 73 75 63 68 20 61 73 20 6f 70 74 69 6d 61 6c 20 63 6f 75 70 6c 69 6e 67 73 2c 20 67 72 65 61 .such.as.optimal.couplings,.grea
20240 74 65 72 20 63 6f 75 70 6c 69 6e 67 20 63 6f 65 66 66 69 63 69 65 6e 74 73 20 61 6e 64 5c 6e 74 ter.coupling.coefficients.and\nt
20260 72 61 6e 73 70 6f 72 74 65 64 20 73 61 6d 70 6c 65 73 20 61 72 65 20 72 65 70 72 65 73 65 6e 74 ransported.samples.are.represent
20280 65 64 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 67 69 76 65 20 61 20 76 69 73 75 61 6c 20 75 6e 64 ed.in.order.to.give.a.visual.und
202a0 65 72 73 74 61 6e 64 69 6e 67 5c 6e 6f 66 20 77 68 61 74 20 74 68 65 20 74 72 61 6e 73 70 6f 72 erstanding\nof.what.the.transpor
202c0 74 20 6d 65 74 68 6f 64 73 20 61 72 65 20 64 6f 69 6e 67 2e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 t.methods.are.doing.\n\n".......
202e0 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 ].....},.....{......."cell_type"
20300 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 :."code",......."execution_count
20320 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 ":.null,......."metadata":.{....
20340 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c ....."collapsed":.false.......},
20360 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 ......."outputs":.[],......."sou
20380 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 20 41 75 74 68 6f 72 73 3a 20 52 65 6d 69 rce":.[........."#.Authors:.Remi
203a0 20 46 6c 61 6d 61 72 79 20 3c 72 65 6d 69 2e 66 6c 61 6d 61 72 79 40 75 6e 69 63 65 2e 66 72 3e .Flamary.<remi.flamary@unice.fr>
203c0 5c 6e 23 20 20 20 20 20 20 20 20 20 20 53 74 61 6e 69 73 6c 61 73 20 43 68 61 6d 62 6f 6e 20 3c \n#..........Stanislas.Chambon.<
203e0 73 74 61 6e 2e 63 68 61 6d 62 6f 6e 40 67 6d 61 69 6c 2e 63 6f 6d 3e 5c 6e 23 5c 6e 23 20 4c 69 stan.chambon@gmail.com>\n#\n#.Li
20400 63 65 6e 73 65 3a 20 4d 49 54 20 4c 69 63 65 6e 73 65 5c 6e 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 cense:.MIT.License\n\nimport.mat
20420 70 6c 6f 74 6c 69 62 2e 70 79 6c 61 62 20 61 73 20 70 6c 5c 6e 69 6d 70 6f 72 74 20 6f 74 22 0a plotlib.pylab.as.pl\nimport.ot".
20440 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c ......].....},.....{......."cell
20460 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 _type":."markdown",......."metad
20480 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 ata":.{},......."source":.[.....
204a0 20 20 20 20 22 47 65 6e 65 72 61 74 65 20 64 61 74 61 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ...."Generate.data\n------------
204c0 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 -\n\n".......].....},.....{.....
204e0 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 .."cell_type":."code",......."ex
20500 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 ecution_count":.null,......."met
20520 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 adata":.{........."collapsed":.f
20540 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b alse.......},......."outputs":.[
20560 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 6e 5f ],......."source":.[........."n_
20580 73 61 6d 70 6c 65 73 5f 73 6f 75 72 63 65 20 3d 20 31 35 30 5c 6e 6e 5f 73 61 6d 70 6c 65 73 5f samples_source.=.150\nn_samples_
205a0 74 61 72 67 65 74 20 3d 20 31 35 30 5c 6e 5c 6e 58 73 2c 20 79 73 20 3d 20 6f 74 2e 64 61 74 61 target.=.150\n\nXs,.ys.=.ot.data
205c0 73 65 74 73 2e 6d 61 6b 65 5f 64 61 74 61 5f 63 6c 61 73 73 69 66 28 27 33 67 61 75 73 73 27 2c sets.make_data_classif('3gauss',
205e0 20 6e 5f 73 61 6d 70 6c 65 73 5f 73 6f 75 72 63 65 29 5c 6e 58 74 2c 20 79 74 20 3d 20 6f 74 2e .n_samples_source)\nXt,.yt.=.ot.
20600 64 61 74 61 73 65 74 73 2e 6d 61 6b 65 5f 64 61 74 61 5f 63 6c 61 73 73 69 66 28 27 33 67 61 75 datasets.make_data_classif('3gau
20620 73 73 32 27 2c 20 6e 5f 73 61 6d 70 6c 65 73 5f 74 61 72 67 65 74 29 22 0a 20 20 20 20 20 20 5d ss2',.n_samples_target)".......]
20640 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a .....},.....{......."cell_type":
20660 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b ."markdown",......."metadata":.{
20680 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 54 72 },......."source":.[........."Tr
206a0 61 6e 73 70 6f 72 74 20 73 6f 75 72 63 65 20 73 61 6d 70 6c 65 73 20 6f 6e 74 6f 20 74 61 72 67 ansport.source.samples.onto.targ
206c0 65 74 20 73 61 6d 70 6c 65 73 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d et.samples\n--------------------
206e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 ------------------------\n\n"...
20700 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 ....].....},.....{......."cell_t
20720 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 ype":."code",......."execution_c
20740 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b ount":.null,......."metadata":.{
20760 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 ........."collapsed":.false.....
20780 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 ..},......."outputs":.[],.......
207a0 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 20 75 6e 73 75 70 65 72 76 69 "source":.[........."#.unsupervi
207c0 73 65 64 20 64 6f 6d 61 69 6e 20 61 64 61 70 74 61 74 69 6f 6e 5c 6e 6f 74 5f 73 69 6e 6b 68 6f sed.domain.adaptation\not_sinkho
207e0 72 6e 5f 75 6e 20 3d 20 6f 74 2e 64 61 2e 53 69 6e 6b 68 6f 72 6e 54 72 61 6e 73 70 6f 72 74 28 rn_un.=.ot.da.SinkhornTransport(
20800 72 65 67 5f 65 3d 31 65 2d 31 29 5c 6e 6f 74 5f 73 69 6e 6b 68 6f 72 6e 5f 75 6e 2e 66 69 74 28 reg_e=1e-1)\not_sinkhorn_un.fit(
20820 58 73 3d 58 73 2c 20 58 74 3d 58 74 29 5c 6e 74 72 61 6e 73 70 5f 58 73 5f 73 69 6e 6b 68 6f 72 Xs=Xs,.Xt=Xt)\ntransp_Xs_sinkhor
20840 6e 5f 75 6e 20 3d 20 6f 74 5f 73 69 6e 6b 68 6f 72 6e 5f 75 6e 2e 74 72 61 6e 73 66 6f 72 6d 28 n_un.=.ot_sinkhorn_un.transform(
20860 58 73 3d 58 73 29 5c 6e 5c 6e 23 20 73 65 6d 69 2d 73 75 70 65 72 76 69 73 65 64 20 64 6f 6d 61 Xs=Xs)\n\n#.semi-supervised.doma
20880 69 6e 20 61 64 61 70 74 61 74 69 6f 6e 5c 6e 6f 74 5f 73 69 6e 6b 68 6f 72 6e 5f 73 65 6d 69 20 in.adaptation\not_sinkhorn_semi.
208a0 3d 20 6f 74 2e 64 61 2e 53 69 6e 6b 68 6f 72 6e 54 72 61 6e 73 70 6f 72 74 28 72 65 67 5f 65 3d =.ot.da.SinkhornTransport(reg_e=
208c0 31 65 2d 31 29 5c 6e 6f 74 5f 73 69 6e 6b 68 6f 72 6e 5f 73 65 6d 69 2e 66 69 74 28 58 73 3d 58 1e-1)\not_sinkhorn_semi.fit(Xs=X
208e0 73 2c 20 58 74 3d 58 74 2c 20 79 73 3d 79 73 2c 20 79 74 3d 79 74 29 5c 6e 74 72 61 6e 73 70 5f s,.Xt=Xt,.ys=ys,.yt=yt)\ntransp_
20900 58 73 5f 73 69 6e 6b 68 6f 72 6e 5f 73 65 6d 69 20 3d 20 6f 74 5f 73 69 6e 6b 68 6f 72 6e 5f 73 Xs_sinkhorn_semi.=.ot_sinkhorn_s
20920 65 6d 69 2e 74 72 61 6e 73 66 6f 72 6d 28 58 73 3d 58 73 29 5c 6e 5c 6e 23 20 73 65 6d 69 20 73 emi.transform(Xs=Xs)\n\n#.semi.s
20940 75 70 65 72 76 69 73 65 64 20 44 41 20 75 73 65 73 20 61 76 61 69 6c 61 62 6c 65 20 6c 61 62 61 upervised.DA.uses.available.laba
20960 6c 65 64 20 74 61 72 67 65 74 20 73 61 6d 70 6c 65 73 20 74 6f 20 6d 6f 64 69 66 79 20 74 68 65 led.target.samples.to.modify.the
20980 20 63 6f 73 74 5c 6e 23 20 6d 61 74 72 69 78 20 69 6e 76 6f 6c 76 65 64 20 69 6e 20 74 68 65 20 .cost\n#.matrix.involved.in.the.
209a0 4f 54 20 70 72 6f 62 6c 65 6d 2e 20 54 68 65 20 63 6f 73 74 20 6f 66 20 74 72 61 6e 73 70 6f 72 OT.problem..The.cost.of.transpor
209c0 74 69 6e 67 20 61 20 73 6f 75 72 63 65 20 73 61 6d 70 6c 65 5c 6e 23 20 6f 66 20 63 6c 61 73 73 ting.a.source.sample\n#.of.class
209e0 20 41 20 6f 6e 74 6f 20 61 20 74 61 72 67 65 74 20 73 61 6d 70 6c 65 20 6f 66 20 63 6c 61 73 73 .A.onto.a.target.sample.of.class
20a00 20 42 20 21 3d 20 41 20 69 73 20 73 65 74 20 74 6f 20 69 6e 66 69 6e 69 74 65 2c 20 6f 72 20 61 .B.!=.A.is.set.to.infinite,.or.a
20a20 5c 6e 23 20 76 65 72 79 20 6c 61 72 67 65 20 76 61 6c 75 65 5c 6e 5c 6e 23 20 6e 6f 74 65 20 74 \n#.very.large.value\n\n#.note.t
20a40 68 61 74 20 69 6e 20 74 68 65 20 70 72 65 73 65 6e 74 20 63 61 73 65 20 77 65 20 63 6f 6e 73 69 hat.in.the.present.case.we.consi
20a60 64 65 72 20 74 68 61 74 20 61 6c 6c 20 74 68 65 20 74 61 72 67 65 74 20 73 61 6d 70 6c 65 73 20 der.that.all.the.target.samples.
20a80 61 72 65 5c 6e 23 20 6c 61 62 65 6c 65 64 2e 20 46 6f 72 20 64 61 69 6c 79 20 61 70 70 6c 69 63 are\n#.labeled..For.daily.applic
20aa0 61 74 69 6f 6e 73 2c 20 73 6f 6d 65 20 74 61 72 67 65 74 20 73 61 6d 70 6c 65 20 6d 69 67 68 74 ations,.some.target.sample.might
20ac0 20 6e 6f 74 20 68 61 76 65 20 6c 61 62 65 6c 73 2c 5c 6e 23 20 69 6e 20 74 68 69 73 20 63 61 73 .not.have.labels,\n#.in.this.cas
20ae0 65 20 74 68 65 20 65 6c 65 6d 65 6e 74 20 6f 66 20 79 74 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e e.the.element.of.yt.correspondin
20b00 67 20 74 6f 20 74 68 65 73 65 20 73 61 6d 70 6c 65 73 20 73 68 6f 75 6c 64 20 62 65 5c 6e 23 20 g.to.these.samples.should.be\n#.
20b20 66 69 6c 6c 65 64 20 77 69 74 68 20 2d 31 2e 5c 6e 5c 6e 23 20 57 61 72 6e 69 6e 67 3a 20 77 65 filled.with.-1.\n\n#.Warning:.we
20b40 20 72 65 63 61 6c 6c 20 74 68 61 74 20 2d 31 20 63 61 6e 6e 6f 74 20 62 65 20 75 73 65 64 20 61 .recall.that.-1.cannot.be.used.a
20b60 73 20 61 20 63 6c 61 73 73 20 6c 61 62 65 6c 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a s.a.class.label".......].....},.
20b80 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f ....{......."cell_type":."markdo
20ba0 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 wn",......."metadata":.{},......
20bc0 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 46 69 67 20 31 20 3a 20 70 6c ."source":.[........."Fig.1.:.pl
20be0 6f 74 73 20 73 6f 75 72 63 65 20 61 6e 64 20 74 61 72 67 65 74 20 73 61 6d 70 6c 65 73 20 2b 20 ots.source.and.target.samples.+.
20c00 6d 61 74 72 69 78 20 6f 66 20 70 61 69 72 77 69 73 65 20 64 69 73 74 61 6e 63 65 5c 6e 2d 2d 2d matrix.of.pairwise.distance\n---
20c20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
20c40 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
20c60 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 --\n\n".......].....},.....{....
20c80 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 ..."cell_type":."code",......."e
20ca0 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 xecution_count":.null,......."me
20cc0 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 tadata":.{........."collapsed":.
20ce0 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 false.......},......."outputs":.
20d00 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 70 [],......."source":.[........."p
20d20 6c 2e 66 69 67 75 72 65 28 31 2c 20 66 69 67 73 69 7a 65 3d 28 31 30 2c 20 31 30 29 29 5c 6e 70 l.figure(1,.figsize=(10,.10))\np
20d40 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 32 2c 20 31 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 58 l.subplot(2,.2,.1)\npl.scatter(X
20d60 73 5b 3a 2c 20 30 5d 2c 20 58 73 5b 3a 2c 20 31 5d 2c 20 63 3d 79 73 2c 20 6d 61 72 6b 65 72 3d s[:,.0],.Xs[:,.1],.c=ys,.marker=
20d80 27 2b 27 2c 20 6c 61 62 65 6c 3d 27 53 6f 75 72 63 65 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c '+',.label='Source.samples')\npl
20da0 2e 78 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 79 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 6c .xticks([])\npl.yticks([])\npl.l
20dc0 65 67 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 53 6f 75 72 63 65 20 20 egend(loc=0)\npl.title('Source..
20de0 73 61 6d 70 6c 65 73 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 32 2c 20 32 29 samples')\n\npl.subplot(2,.2,.2)
20e00 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 58 74 5b 3a 2c 20 30 5d 2c 20 58 74 5b 3a 2c 20 31 5d 2c \npl.scatter(Xt[:,.0],.Xt[:,.1],
20e20 20 63 3d 79 74 2c 20 6d 61 72 6b 65 72 3d 27 6f 27 2c 20 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 .c=yt,.marker='o',.label='Target
20e40 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 79 74 .samples')\npl.xticks([])\npl.yt
20e60 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e 70 6c 2e 74 icks([])\npl.legend(loc=0)\npl.t
20e80 69 74 6c 65 28 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 itle('Target.samples')\n\npl.sub
20ea0 70 6c 6f 74 28 32 2c 20 32 2c 20 33 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 6f 74 5f 73 69 6e 6b plot(2,.2,.3)\npl.imshow(ot_sink
20ec0 68 6f 72 6e 5f 75 6e 2e 63 6f 73 74 5f 2c 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 3d 27 6e 65 horn_un.cost_,.interpolation='ne
20ee0 61 72 65 73 74 27 29 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 79 74 69 63 6b arest')\npl.xticks([])\npl.ytick
20f00 73 28 5b 5d 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 43 6f 73 74 20 6d 61 74 72 69 78 20 2d 20 75 s([])\npl.title('Cost.matrix.-.u
20f20 6e 73 75 70 65 72 76 69 73 65 64 20 44 41 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 nsupervised.DA')\n\npl.subplot(2
20f40 2c 20 32 2c 20 34 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 6f 74 5f 73 69 6e 6b 68 6f 72 6e 5f 73 ,.2,.4)\npl.imshow(ot_sinkhorn_s
20f60 65 6d 69 2e 63 6f 73 74 5f 2c 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 3d 27 6e 65 61 72 65 73 emi.cost_,.interpolation='neares
20f80 74 27 29 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 79 74 69 63 6b 73 28 5b 5d t')\npl.xticks([])\npl.yticks([]
20fa0 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 43 6f 73 74 20 6d 61 74 72 69 78 20 2d 20 73 65 6d 69 73 )\npl.title('Cost.matrix.-.semis
20fc0 75 70 65 72 76 69 73 65 64 20 44 41 27 29 5c 6e 5c 6e 70 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 upervised.DA')\n\npl.tight_layou
20fe0 74 28 29 5c 6e 5c 6e 23 20 74 68 65 20 6f 70 74 69 6d 61 6c 20 63 6f 75 70 6c 69 6e 67 20 69 6e t()\n\n#.the.optimal.coupling.in
21000 20 74 68 65 20 73 65 6d 69 2d 73 75 70 65 72 76 69 73 65 64 20 44 41 20 63 61 73 65 20 77 69 6c .the.semi-supervised.DA.case.wil
21020 6c 20 65 78 68 69 62 69 74 20 5c 22 20 73 68 61 70 65 5c 6e 23 20 73 69 6d 69 6c 61 72 5c 22 20 l.exhibit.\".shape\n#.similar\".
21040 74 6f 20 74 68 65 20 63 6f 73 74 20 6d 61 74 72 69 78 2c 20 28 62 6c 6f 63 6b 20 64 69 61 67 6f to.the.cost.matrix,.(block.diago
21060 6e 61 6c 20 6d 61 74 72 69 78 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 nal.matrix)".......].....},.....
21080 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c {......."cell_type":."markdown",
210a0 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f ......."metadata":.{},......."so
210c0 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 46 69 67 20 32 20 3a 20 70 6c 6f 74 73 20 urce":.[........."Fig.2.:.plots.
210e0 6f 70 74 69 6d 61 6c 20 63 6f 75 70 6c 69 6e 67 73 20 66 6f 72 20 74 68 65 20 64 69 66 66 65 72 optimal.couplings.for.the.differ
21100 65 6e 74 20 6d 65 74 68 6f 64 73 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ent.methods\n-------------------
21120 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
21140 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b ------\n\n".......].....},.....{
21160 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 ......."cell_type":."code",.....
21180 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 .."execution_count":.null,......
211a0 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 ."metadata":.{........."collapse
211c0 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 d":.false.......},......."output
211e0 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 s":.[],......."source":.[.......
21200 20 20 22 70 6c 2e 66 69 67 75 72 65 28 32 2c 20 66 69 67 73 69 7a 65 3d 28 38 2c 20 34 29 29 5c .."pl.figure(2,.figsize=(8,.4))\
21220 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 20 32 2c 20 31 29 5c 6e 70 6c 2e 69 6d 73 68 6f n\npl.subplot(1,.2,.1)\npl.imsho
21240 77 28 6f 74 5f 73 69 6e 6b 68 6f 72 6e 5f 75 6e 2e 63 6f 75 70 6c 69 6e 67 5f 2c 20 69 6e 74 65 w(ot_sinkhorn_un.coupling_,.inte
21260 72 70 6f 6c 61 74 69 6f 6e 3d 27 6e 65 61 72 65 73 74 27 29 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 rpolation='nearest')\npl.xticks(
21280 5b 5d 29 5c 6e 70 6c 2e 79 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 4f 70 [])\npl.yticks([])\npl.title('Op
212a0 74 69 6d 61 6c 20 63 6f 75 70 6c 69 6e 67 5c 5c 6e 55 6e 73 75 70 65 72 76 69 73 65 64 20 44 41 timal.coupling\\nUnsupervised.DA
212c0 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 20 32 2c 20 32 29 5c 6e 70 6c 2e 69 6d ')\n\npl.subplot(1,.2,.2)\npl.im
212e0 73 68 6f 77 28 6f 74 5f 73 69 6e 6b 68 6f 72 6e 5f 73 65 6d 69 2e 63 6f 75 70 6c 69 6e 67 5f 2c show(ot_sinkhorn_semi.coupling_,
21300 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 3d 27 6e 65 61 72 65 73 74 27 29 5c 6e 70 6c 2e 78 74 .interpolation='nearest')\npl.xt
21320 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 79 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 74 69 74 6c icks([])\npl.yticks([])\npl.titl
21340 65 28 27 4f 70 74 69 6d 61 6c 20 63 6f 75 70 6c 69 6e 67 5c 5c 6e 53 65 6d 69 2d 73 75 70 65 72 e('Optimal.coupling\\nSemi-super
21360 76 69 73 65 64 20 44 41 27 29 5c 6e 5c 6e 70 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 22 vised.DA')\n\npl.tight_layout()"
21380 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c .......].....},.....{......."cel
213a0 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 l_type":."markdown",......."meta
213c0 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 data":.{},......."source":.[....
213e0 20 20 20 20 20 22 46 69 67 20 33 20 3a 20 70 6c 6f 74 20 74 72 61 6e 73 70 6f 72 74 65 64 20 73 ....."Fig.3.:.plot.transported.s
21400 61 6d 70 6c 65 73 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d amples\n------------------------
21420 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 --------\n\n".......].....},....
21440 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 .{......."cell_type":."code",...
21460 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 ...."execution_count":.null,....
21480 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 ..."metadata":.{........."collap
214a0 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 sed":.false.......},......."outp
214c0 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 uts":.[],......."source":.[.....
214e0 20 20 20 20 22 23 20 64 69 73 70 6c 61 79 20 74 72 61 6e 73 70 6f 72 74 65 64 20 73 61 6d 70 6c ...."#.display.transported.sampl
21500 65 73 5c 6e 70 6c 2e 66 69 67 75 72 65 28 34 2c 20 66 69 67 73 69 7a 65 3d 28 38 2c 20 34 29 29 es\npl.figure(4,.figsize=(8,.4))
21520 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 20 32 2c 20 31 29 5c 6e 70 6c 2e 73 63 61 74 74 65 \npl.subplot(1,.2,.1)\npl.scatte
21540 72 28 58 74 5b 3a 2c 20 30 5d 2c 20 58 74 5b 3a 2c 20 31 5d 2c 20 63 3d 79 74 2c 20 6d 61 72 6b r(Xt[:,.0],.Xt[:,.1],.c=yt,.mark
21560 65 72 3d 27 6f 27 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 6c 61 62 65 6c 3d 27 54 61 72 67 65 er='o',\n...........label='Targe
21580 74 20 73 61 6d 70 6c 65 73 27 2c 20 61 6c 70 68 61 3d 30 2e 35 29 5c 6e 70 6c 2e 73 63 61 74 74 t.samples',.alpha=0.5)\npl.scatt
215a0 65 72 28 74 72 61 6e 73 70 5f 58 73 5f 73 69 6e 6b 68 6f 72 6e 5f 75 6e 5b 3a 2c 20 30 5d 2c 20 er(transp_Xs_sinkhorn_un[:,.0],.
215c0 74 72 61 6e 73 70 5f 58 73 5f 73 69 6e 6b 68 6f 72 6e 5f 75 6e 5b 3a 2c 20 31 5d 2c 20 63 3d 79 transp_Xs_sinkhorn_un[:,.1],.c=y
215e0 73 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 6d 61 72 6b 65 72 3d 27 2b 27 2c 20 6c 61 62 65 6c s,\n...........marker='+',.label
21600 3d 27 54 72 61 6e 73 70 20 73 61 6d 70 6c 65 73 27 2c 20 73 3d 33 30 29 5c 6e 70 6c 2e 74 69 74 ='Transp.samples',.s=30)\npl.tit
21620 6c 65 28 27 54 72 61 6e 73 70 6f 72 74 65 64 20 73 61 6d 70 6c 65 73 5c 5c 6e 45 6d 64 54 72 61 le('Transported.samples\\nEmdTra
21640 6e 73 70 6f 72 74 27 29 5c 6e 70 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e 70 6c 2e 78 nsport')\npl.legend(loc=0)\npl.x
21660 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 79 74 69 63 6b 73 28 5b 5d 29 5c 6e 5c 6e 70 6c 2e 73 ticks([])\npl.yticks([])\n\npl.s
21680 75 62 70 6c 6f 74 28 31 2c 20 32 2c 20 32 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 58 74 5b 3a ubplot(1,.2,.2)\npl.scatter(Xt[:
216a0 2c 20 30 5d 2c 20 58 74 5b 3a 2c 20 31 5d 2c 20 63 3d 79 74 2c 20 6d 61 72 6b 65 72 3d 27 6f 27 ,.0],.Xt[:,.1],.c=yt,.marker='o'
216c0 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 ,\n...........label='Target.samp
216e0 6c 65 73 27 2c 20 61 6c 70 68 61 3d 30 2e 35 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 74 72 61 les',.alpha=0.5)\npl.scatter(tra
21700 6e 73 70 5f 58 73 5f 73 69 6e 6b 68 6f 72 6e 5f 73 65 6d 69 5b 3a 2c 20 30 5d 2c 20 74 72 61 6e nsp_Xs_sinkhorn_semi[:,.0],.tran
21720 73 70 5f 58 73 5f 73 69 6e 6b 68 6f 72 6e 5f 73 65 6d 69 5b 3a 2c 20 31 5d 2c 20 63 3d 79 73 2c sp_Xs_sinkhorn_semi[:,.1],.c=ys,
21740 5c 6e 20 20 20 20 20 20 20 20 20 20 20 6d 61 72 6b 65 72 3d 27 2b 27 2c 20 6c 61 62 65 6c 3d 27 \n...........marker='+',.label='
21760 54 72 61 6e 73 70 20 73 61 6d 70 6c 65 73 27 2c 20 73 3d 33 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 Transp.samples',.s=30)\npl.title
21780 28 27 54 72 61 6e 73 70 6f 72 74 65 64 20 73 61 6d 70 6c 65 73 5c 5c 6e 53 69 6e 6b 68 6f 72 6e ('Transported.samples\\nSinkhorn
217a0 54 72 61 6e 73 70 6f 72 74 27 29 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 79 Transport')\npl.xticks([])\npl.y
217c0 74 69 63 6b 73 28 5b 5d 29 5c 6e 5c 6e 70 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 5c 6e ticks([])\n\npl.tight_layout()\n
217e0 70 6c 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 0a 20 20 5d 2c 0a 20 20 pl.show()".......].....}...],...
21800 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 22 6b 65 72 6e 65 6c 73 70 65 63 22 3a 20 "metadata":.{....."kernelspec":.
21820 7b 0a 20 20 20 20 20 20 22 64 69 73 70 6c 61 79 5f 6e 61 6d 65 22 3a 20 22 50 79 74 68 6f 6e 20 {......."display_name":."Python.
21840 33 22 2c 0a 20 20 20 20 20 20 22 6c 61 6e 67 75 61 67 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 3",......."language":."python",.
21860 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 33 22 0a 20 20 20 20 7d 2c 0a 20 ......"name":."python3".....},..
21880 20 20 20 22 6c 61 6e 67 75 61 67 65 5f 69 6e 66 6f 22 3a 20 7b 0a 20 20 20 20 20 20 22 63 6f 64 ..."language_info":.{......."cod
218a0 65 6d 69 72 72 6f 72 5f 6d 6f 64 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 3a emirror_mode":.{........."name":
218c0 20 22 69 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 33 ."ipython",........."version":.3
218e0 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 66 69 6c 65 5f 65 78 74 65 6e 73 69 6f 6e 22 .......},......."file_extension"
21900 3a 20 22 2e 70 79 22 2c 0a 20 20 20 20 20 20 22 6d 69 6d 65 74 79 70 65 22 3a 20 22 74 65 78 74 :.".py",......."mimetype":."text
21920 2f 78 2d 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f /x-python",......."name":."pytho
21940 6e 22 2c 0a 20 20 20 20 20 20 22 6e 62 63 6f 6e 76 65 72 74 5f 65 78 70 6f 72 74 65 72 22 3a 20 n",......."nbconvert_exporter":.
21960 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 70 79 67 6d 65 6e 74 73 5f 6c 65 78 65 72 22 "python",......."pygments_lexer"
21980 3a 20 22 69 70 79 74 68 6f 6e 33 22 2c 0a 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 :."ipython3",......."version":."
219a0 33 2e 36 2e 39 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 22 3a 20 3.6.9".....}...},..."nbformat":.
219c0 34 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 5f 6d 69 6e 6f 72 22 3a 20 30 0a 7d 50 4b 03 04 14 00 4,..."nbformat_minor":.0.}PK....
219e0 00 00 00 00 c1 72 94 50 21 2e c0 88 fa 16 00 00 fa 16 00 00 17 00 00 00 70 6c 6f 74 5f 6f 74 64 .....r.P!...............plot_otd
21a00 61 5f 6d 61 70 70 69 6e 67 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 22 3a 20 5b 0a 20 20 a_mapping.ipynb{..."cells":.[...
21a20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 ..{......."cell_type":."code",..
21a40 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 ....."execution_count":.null,...
21a60 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 ...."metadata":.{........."colla
21a80 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 psed":.false.......},......."out
21aa0 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 puts":.[],......."source":.[....
21ac0 20 20 20 20 20 22 25 6d 61 74 70 6c 6f 74 6c 69 62 20 69 6e 6c 69 6e 65 22 0a 20 20 20 20 20 20 ....."%matplotlib.inline".......
21ae0 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 ].....},.....{......."cell_type"
21b00 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 :."markdown",......."metadata":.
21b20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5c {},......."source":.[........."\
21b40 6e 23 20 4f 54 20 6d 61 70 70 69 6e 67 20 65 73 74 69 6d 61 74 69 6f 6e 20 66 6f 72 20 64 6f 6d n#.OT.mapping.estimation.for.dom
21b60 61 69 6e 20 61 64 61 70 74 61 74 69 6f 6e 5c 6e 5c 6e 5c 6e 54 68 69 73 20 65 78 61 6d 70 6c 65 ain.adaptation\n\n\nThis.example
21b80 20 70 72 65 73 65 6e 74 73 20 68 6f 77 20 74 6f 20 75 73 65 20 4d 61 70 70 69 6e 67 54 72 61 6e .presents.how.to.use.MappingTran
21ba0 73 70 6f 72 74 20 74 6f 20 65 73 74 69 6d 61 74 65 20 61 74 20 74 68 65 20 73 61 6d 65 5c 6e 74 sport.to.estimate.at.the.same\nt
21bc0 69 6d 65 20 62 6f 74 68 20 74 68 65 20 63 6f 75 70 6c 69 6e 67 20 74 72 61 6e 73 70 6f 72 74 20 ime.both.the.coupling.transport.
21be0 61 6e 64 20 61 70 70 72 6f 78 69 6d 61 74 65 20 74 68 65 20 74 72 61 6e 73 70 6f 72 74 20 6d 61 and.approximate.the.transport.ma
21c00 70 20 77 69 74 68 20 65 69 74 68 65 72 5c 6e 61 20 6c 69 6e 65 61 72 20 6f 72 20 61 20 6b 65 72 p.with.either\na.linear.or.a.ker
21c20 6e 65 6c 69 7a 65 64 20 6d 61 70 70 69 6e 67 20 61 73 20 69 6e 74 72 6f 64 75 63 65 64 20 69 6e nelized.mapping.as.introduced.in
21c40 20 5b 38 5d 2e 5c 6e 5c 6e 5b 38 5d 20 4d 2e 20 50 65 72 72 6f 74 2c 20 4e 2e 20 43 6f 75 72 74 .[8].\n\n[8].M..Perrot,.N..Court
21c60 79 2c 20 52 2e 20 46 6c 61 6d 61 72 79 2c 20 41 2e 20 48 61 62 72 61 72 64 2c 5c 6e 20 20 20 20 y,.R..Flamary,.A..Habrard,\n....
21c80 5c 22 4d 61 70 70 69 6e 67 20 65 73 74 69 6d 61 74 69 6f 6e 20 66 6f 72 20 64 69 73 63 72 65 74 \"Mapping.estimation.for.discret
21ca0 65 20 6f 70 74 69 6d 61 6c 20 74 72 61 6e 73 70 6f 72 74 5c 22 2c 5c 6e 20 20 20 20 4e 65 75 72 e.optimal.transport\",\n....Neur
21cc0 61 6c 20 49 6e 66 6f 72 6d 61 74 69 6f 6e 20 50 72 6f 63 65 73 73 69 6e 67 20 53 79 73 74 65 6d al.Information.Processing.System
21ce0 73 20 28 4e 49 50 53 29 2c 20 32 30 31 36 2e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 s.(NIPS),.2016.\n\n".......]....
21d00 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f .},.....{......."cell_type":."co
21d20 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 de",......."execution_count":.nu
21d40 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 ll,......."metadata":.{.........
21d60 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 "collapsed":.false.......},.....
21d80 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a .."outputs":.[],......."source":
21da0 20 5b 0a 20 20 20 20 20 20 20 20 22 23 20 41 75 74 68 6f 72 73 3a 20 52 65 6d 69 20 46 6c 61 6d .[........."#.Authors:.Remi.Flam
21dc0 61 72 79 20 3c 72 65 6d 69 2e 66 6c 61 6d 61 72 79 40 75 6e 69 63 65 2e 66 72 3e 5c 6e 23 20 20 ary.<remi.flamary@unice.fr>\n#..
21de0 20 20 20 20 20 20 20 20 53 74 61 6e 69 73 6c 61 73 20 43 68 61 6d 62 6f 6e 20 3c 73 74 61 6e 2e ........Stanislas.Chambon.<stan.
21e00 63 68 61 6d 62 6f 6e 40 67 6d 61 69 6c 2e 63 6f 6d 3e 5c 6e 23 5c 6e 23 20 4c 69 63 65 6e 73 65 chambon@gmail.com>\n#\n#.License
21e20 3a 20 4d 49 54 20 4c 69 63 65 6e 73 65 5c 6e 5c 6e 69 6d 70 6f 72 74 20 6e 75 6d 70 79 20 61 73 :.MIT.License\n\nimport.numpy.as
21e40 20 6e 70 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 6c 61 62 20 61 73 20 .np\nimport.matplotlib.pylab.as.
21e60 70 6c 5c 6e 69 6d 70 6f 72 74 20 6f 74 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 pl\nimport.ot".......].....},...
21e80 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e ..{......."cell_type":."markdown
21ea0 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 ",......."metadata":.{},......."
21ec0 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 47 65 6e 65 72 61 74 65 20 64 61 74 source":.[........."Generate.dat
21ee0 61 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 a\n-------------\n\n".......]...
21f00 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 ..},.....{......."cell_type":."c
21f20 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e ode",......."execution_count":.n
21f40 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 ull,......."metadata":.{........
21f60 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 ."collapsed":.false.......},....
21f80 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 ..."outputs":.[],......."source"
21fa0 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 6e 5f 73 6f 75 72 63 65 5f 73 61 6d 70 6c 65 73 20 3d 20 :.[........."n_source_samples.=.
21fc0 31 30 30 5c 6e 6e 5f 74 61 72 67 65 74 5f 73 61 6d 70 6c 65 73 20 3d 20 31 30 30 5c 6e 74 68 65 100\nn_target_samples.=.100\nthe
21fe0 74 61 20 3d 20 32 20 2a 20 6e 70 2e 70 69 20 2f 20 32 30 5c 6e 6e 6f 69 73 65 5f 6c 65 76 65 6c ta.=.2.*.np.pi./.20\nnoise_level
22000 20 3d 20 30 2e 31 5c 6e 5c 6e 58 73 2c 20 79 73 20 3d 20 6f 74 2e 64 61 74 61 73 65 74 73 2e 6d .=.0.1\n\nXs,.ys.=.ot.datasets.m
22020 61 6b 65 5f 64 61 74 61 5f 63 6c 61 73 73 69 66 28 5c 6e 20 20 20 20 27 67 61 75 73 73 72 6f 74 ake_data_classif(\n....'gaussrot
22040 27 2c 20 6e 5f 73 6f 75 72 63 65 5f 73 61 6d 70 6c 65 73 2c 20 6e 7a 3d 6e 6f 69 73 65 5f 6c 65 ',.n_source_samples,.nz=noise_le
22060 76 65 6c 29 5c 6e 58 73 5f 6e 65 77 2c 20 5f 20 3d 20 6f 74 2e 64 61 74 61 73 65 74 73 2e 6d 61 vel)\nXs_new,._.=.ot.datasets.ma
22080 6b 65 5f 64 61 74 61 5f 63 6c 61 73 73 69 66 28 5c 6e 20 20 20 20 27 67 61 75 73 73 72 6f 74 27 ke_data_classif(\n....'gaussrot'
220a0 2c 20 6e 5f 73 6f 75 72 63 65 5f 73 61 6d 70 6c 65 73 2c 20 6e 7a 3d 6e 6f 69 73 65 5f 6c 65 76 ,.n_source_samples,.nz=noise_lev
220c0 65 6c 29 5c 6e 58 74 2c 20 79 74 20 3d 20 6f 74 2e 64 61 74 61 73 65 74 73 2e 6d 61 6b 65 5f 64 el)\nXt,.yt.=.ot.datasets.make_d
220e0 61 74 61 5f 63 6c 61 73 73 69 66 28 5c 6e 20 20 20 20 27 67 61 75 73 73 72 6f 74 27 2c 20 6e 5f ata_classif(\n....'gaussrot',.n_
22100 74 61 72 67 65 74 5f 73 61 6d 70 6c 65 73 2c 20 74 68 65 74 61 3d 74 68 65 74 61 2c 20 6e 7a 3d target_samples,.theta=theta,.nz=
22120 6e 6f 69 73 65 5f 6c 65 76 65 6c 29 5c 6e 5c 6e 23 20 6f 6e 65 20 6f 66 20 74 68 65 20 74 61 72 noise_level)\n\n#.one.of.the.tar
22140 67 65 74 20 6d 6f 64 65 20 63 68 61 6e 67 65 73 20 69 74 73 20 76 61 72 69 61 6e 63 65 20 28 6e get.mode.changes.its.variance.(n
22160 6f 20 6c 69 6e 65 61 72 20 6d 61 70 70 69 6e 67 29 5c 6e 58 74 5b 79 74 20 3d 3d 20 32 5d 20 2a o.linear.mapping)\nXt[yt.==.2].*
22180 3d 20 33 5c 6e 58 74 20 3d 20 58 74 20 2b 20 34 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c =.3\nXt.=.Xt.+.4".......].....},
221a0 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 .....{......."cell_type":."markd
221c0 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 own",......."metadata":.{},.....
221e0 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 50 6c 6f 74 20 64 61 74 61 .."source":.[........."Plot.data
22200 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a \n---------\n\n".......].....},.
22220 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c ....{......."cell_type":."code",
22240 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a ......."execution_count":.null,.
22260 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c ......"metadata":.{........."col
22280 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f lapsed":.false.......},......."o
222a0 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 utputs":.[],......."source":.[..
222c0 20 20 20 20 20 20 20 22 70 6c 2e 66 69 67 75 72 65 28 31 2c 20 28 31 30 2c 20 35 29 29 5c 6e 70 ......."pl.figure(1,.(10,.5))\np
222e0 6c 2e 63 6c 66 28 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 58 73 5b 3a 2c 20 30 5d 2c 20 58 73 l.clf()\npl.scatter(Xs[:,.0],.Xs
22300 5b 3a 2c 20 31 5d 2c 20 63 3d 79 73 2c 20 6d 61 72 6b 65 72 3d 27 2b 27 2c 20 6c 61 62 65 6c 3d [:,.1],.c=ys,.marker='+',.label=
22320 27 53 6f 75 72 63 65 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 58 74 'Source.samples')\npl.scatter(Xt
22340 5b 3a 2c 20 30 5d 2c 20 58 74 5b 3a 2c 20 31 5d 2c 20 63 3d 79 74 2c 20 6d 61 72 6b 65 72 3d 27 [:,.0],.Xt[:,.1],.c=yt,.marker='
22360 6f 27 2c 20 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e o',.label='Target.samples')\npl.
22380 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 53 6f 75 72 63 65 20 legend(loc=0)\npl.title('Source.
223a0 61 6e 64 20 74 61 72 67 65 74 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 27 29 22 0a 20 20 20 20 and.target.distributions')".....
223c0 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 ..].....},.....{......."cell_typ
223e0 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 e":."markdown",......."metadata"
22400 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 :.{},......."source":.[.........
22420 22 49 6e 73 74 61 6e 74 69 61 74 65 20 74 68 65 20 64 69 66 66 65 72 65 6e 74 20 74 72 61 6e 73 "Instantiate.the.different.trans
22440 70 6f 72 74 20 61 6c 67 6f 72 69 74 68 6d 73 20 61 6e 64 20 66 69 74 20 74 68 65 6d 5c 6e 2d 2d port.algorithms.and.fit.them\n--
22460 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
22480 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 -------------------------\n\n"..
224a0 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f .....].....},.....{......."cell_
224c0 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f type":."code",......."execution_
224e0 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 count":.null,......."metadata":.
22500 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 {........."collapsed":.false....
22520 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 ...},......."outputs":.[],......
22540 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 20 4d 61 70 70 69 6e 67 54 ."source":.[........."#.MappingT
22560 72 61 6e 73 70 6f 72 74 20 77 69 74 68 20 6c 69 6e 65 61 72 20 6b 65 72 6e 65 6c 5c 6e 6f 74 5f ransport.with.linear.kernel\not_
22580 6d 61 70 70 69 6e 67 5f 6c 69 6e 65 61 72 20 3d 20 6f 74 2e 64 61 2e 4d 61 70 70 69 6e 67 54 72 mapping_linear.=.ot.da.MappingTr
225a0 61 6e 73 70 6f 72 74 28 5c 6e 20 20 20 20 6b 65 72 6e 65 6c 3d 5c 22 6c 69 6e 65 61 72 5c 22 2c ansport(\n....kernel=\"linear\",
225c0 20 6d 75 3d 31 65 30 2c 20 65 74 61 3d 31 65 2d 38 2c 20 62 69 61 73 3d 54 72 75 65 2c 5c 6e 20 .mu=1e0,.eta=1e-8,.bias=True,\n.
225e0 20 20 20 6d 61 78 5f 69 74 65 72 3d 32 30 2c 20 76 65 72 62 6f 73 65 3d 54 72 75 65 29 5c 6e 5c ...max_iter=20,.verbose=True)\n\
22600 6e 6f 74 5f 6d 61 70 70 69 6e 67 5f 6c 69 6e 65 61 72 2e 66 69 74 28 58 73 3d 58 73 2c 20 58 74 not_mapping_linear.fit(Xs=Xs,.Xt
22620 3d 58 74 29 5c 6e 5c 6e 23 20 66 6f 72 20 6f 72 69 67 69 6e 61 6c 20 73 6f 75 72 63 65 20 73 61 =Xt)\n\n#.for.original.source.sa
22640 6d 70 6c 65 73 2c 20 74 72 61 6e 73 66 6f 72 6d 20 61 70 70 6c 69 65 73 20 62 61 72 79 63 65 6e mples,.transform.applies.barycen
22660 74 72 69 63 20 6d 61 70 70 69 6e 67 5c 6e 74 72 61 6e 73 70 5f 58 73 5f 6c 69 6e 65 61 72 20 3d tric.mapping\ntransp_Xs_linear.=
22680 20 6f 74 5f 6d 61 70 70 69 6e 67 5f 6c 69 6e 65 61 72 2e 74 72 61 6e 73 66 6f 72 6d 28 58 73 3d .ot_mapping_linear.transform(Xs=
226a0 58 73 29 5c 6e 5c 6e 23 20 66 6f 72 20 6f 75 74 20 6f 66 20 73 6f 75 72 63 65 20 73 61 6d 70 6c Xs)\n\n#.for.out.of.source.sampl
226c0 65 73 2c 20 74 72 61 6e 73 66 6f 72 6d 20 61 70 70 6c 69 65 73 20 74 68 65 20 6c 69 6e 65 61 72 es,.transform.applies.the.linear
226e0 20 6d 61 70 70 69 6e 67 5c 6e 74 72 61 6e 73 70 5f 58 73 5f 6c 69 6e 65 61 72 5f 6e 65 77 20 3d .mapping\ntransp_Xs_linear_new.=
22700 20 6f 74 5f 6d 61 70 70 69 6e 67 5f 6c 69 6e 65 61 72 2e 74 72 61 6e 73 66 6f 72 6d 28 58 73 3d .ot_mapping_linear.transform(Xs=
22720 58 73 5f 6e 65 77 29 5c 6e 5c 6e 5c 6e 23 20 4d 61 70 70 69 6e 67 54 72 61 6e 73 70 6f 72 74 20 Xs_new)\n\n\n#.MappingTransport.
22740 77 69 74 68 20 67 61 75 73 73 69 61 6e 20 6b 65 72 6e 65 6c 5c 6e 6f 74 5f 6d 61 70 70 69 6e 67 with.gaussian.kernel\not_mapping
22760 5f 67 61 75 73 73 69 61 6e 20 3d 20 6f 74 2e 64 61 2e 4d 61 70 70 69 6e 67 54 72 61 6e 73 70 6f _gaussian.=.ot.da.MappingTranspo
22780 72 74 28 5c 6e 20 20 20 20 6b 65 72 6e 65 6c 3d 5c 22 67 61 75 73 73 69 61 6e 5c 22 2c 20 65 74 rt(\n....kernel=\"gaussian\",.et
227a0 61 3d 31 65 2d 35 2c 20 6d 75 3d 31 65 2d 31 2c 20 62 69 61 73 3d 54 72 75 65 2c 20 73 69 67 6d a=1e-5,.mu=1e-1,.bias=True,.sigm
227c0 61 3d 31 2c 5c 6e 20 20 20 20 6d 61 78 5f 69 74 65 72 3d 31 30 2c 20 76 65 72 62 6f 73 65 3d 54 a=1,\n....max_iter=10,.verbose=T
227e0 72 75 65 29 5c 6e 6f 74 5f 6d 61 70 70 69 6e 67 5f 67 61 75 73 73 69 61 6e 2e 66 69 74 28 58 73 rue)\not_mapping_gaussian.fit(Xs
22800 3d 58 73 2c 20 58 74 3d 58 74 29 5c 6e 5c 6e 23 20 66 6f 72 20 6f 72 69 67 69 6e 61 6c 20 73 6f =Xs,.Xt=Xt)\n\n#.for.original.so
22820 75 72 63 65 20 73 61 6d 70 6c 65 73 2c 20 74 72 61 6e 73 66 6f 72 6d 20 61 70 70 6c 69 65 73 20 urce.samples,.transform.applies.
22840 62 61 72 79 63 65 6e 74 72 69 63 20 6d 61 70 70 69 6e 67 5c 6e 74 72 61 6e 73 70 5f 58 73 5f 67 barycentric.mapping\ntransp_Xs_g
22860 61 75 73 73 69 61 6e 20 3d 20 6f 74 5f 6d 61 70 70 69 6e 67 5f 67 61 75 73 73 69 61 6e 2e 74 72 aussian.=.ot_mapping_gaussian.tr
22880 61 6e 73 66 6f 72 6d 28 58 73 3d 58 73 29 5c 6e 5c 6e 23 20 66 6f 72 20 6f 75 74 20 6f 66 20 73 ansform(Xs=Xs)\n\n#.for.out.of.s
228a0 6f 75 72 63 65 20 73 61 6d 70 6c 65 73 2c 20 74 72 61 6e 73 66 6f 72 6d 20 61 70 70 6c 69 65 73 ource.samples,.transform.applies
228c0 20 74 68 65 20 67 61 75 73 73 69 61 6e 20 6d 61 70 70 69 6e 67 5c 6e 74 72 61 6e 73 70 5f 58 73 .the.gaussian.mapping\ntransp_Xs
228e0 5f 67 61 75 73 73 69 61 6e 5f 6e 65 77 20 3d 20 6f 74 5f 6d 61 70 70 69 6e 67 5f 67 61 75 73 73 _gaussian_new.=.ot_mapping_gauss
22900 69 61 6e 2e 74 72 61 6e 73 66 6f 72 6d 28 58 73 3d 58 73 5f 6e 65 77 29 22 0a 20 20 20 20 20 20 ian.transform(Xs=Xs_new)".......
22920 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 ].....},.....{......."cell_type"
22940 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 :."markdown",......."metadata":.
22960 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 50 {},......."source":.[........."P
22980 6c 6f 74 20 74 72 61 6e 73 70 6f 72 74 65 64 20 73 61 6d 70 6c 65 73 5c 6e 2d 2d 2d 2d 2d 2d 2d lot.transported.samples\n-------
229a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 -----------------\n\n".......]..
229c0 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 ...},.....{......."cell_type":."
229e0 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 code",......."execution_count":.
22a00 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 null,......."metadata":.{.......
22a20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 .."collapsed":.false.......},...
22a40 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 ...."outputs":.[],......."source
22a60 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 70 6c 2e 66 69 67 75 72 65 28 32 29 5c 6e 70 6c 2e 63 ":.[........."pl.figure(2)\npl.c
22a80 6c 66 28 29 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 32 2c 20 31 29 5c 6e 70 6c 2e 73 63 lf()\npl.subplot(2,.2,.1)\npl.sc
22aa0 61 74 74 65 72 28 58 74 5b 3a 2c 20 30 5d 2c 20 58 74 5b 3a 2c 20 31 5d 2c 20 63 3d 79 74 2c 20 atter(Xt[:,.0],.Xt[:,.1],.c=yt,.
22ac0 6d 61 72 6b 65 72 3d 27 6f 27 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 6c 61 62 65 6c 3d 27 54 marker='o',\n...........label='T
22ae0 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 2c 20 61 6c 70 68 61 3d 2e 32 29 5c 6e 70 6c 2e 73 63 arget.samples',.alpha=.2)\npl.sc
22b00 61 74 74 65 72 28 74 72 61 6e 73 70 5f 58 73 5f 6c 69 6e 65 61 72 5b 3a 2c 20 30 5d 2c 20 74 72 atter(transp_Xs_linear[:,.0],.tr
22b20 61 6e 73 70 5f 58 73 5f 6c 69 6e 65 61 72 5b 3a 2c 20 31 5d 2c 20 63 3d 79 73 2c 20 6d 61 72 6b ansp_Xs_linear[:,.1],.c=ys,.mark
22b40 65 72 3d 27 2b 27 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 6c 61 62 65 6c 3d 27 4d 61 70 70 65 er='+',\n...........label='Mappe
22b60 64 20 73 6f 75 72 63 65 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 5c 22 42 d.source.samples')\npl.title(\"B
22b80 61 72 79 2e 20 6d 61 70 70 69 6e 67 20 28 6c 69 6e 65 61 72 29 5c 22 29 5c 6e 70 6c 2e 6c 65 67 ary..mapping.(linear)\")\npl.leg
22ba0 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 32 2c 20 32 end(loc=0)\n\npl.subplot(2,.2,.2
22bc0 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 58 74 5b 3a 2c 20 30 5d 2c 20 58 74 5b 3a 2c 20 31 5d )\npl.scatter(Xt[:,.0],.Xt[:,.1]
22be0 2c 20 63 3d 79 74 2c 20 6d 61 72 6b 65 72 3d 27 6f 27 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 ,.c=yt,.marker='o',\n...........
22c00 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 2c 20 61 6c 70 68 61 3d 2e 32 label='Target.samples',.alpha=.2
22c20 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 74 72 61 6e 73 70 5f 58 73 5f 6c 69 6e 65 61 72 5f 6e )\npl.scatter(transp_Xs_linear_n
22c40 65 77 5b 3a 2c 20 30 5d 2c 20 74 72 61 6e 73 70 5f 58 73 5f 6c 69 6e 65 61 72 5f 6e 65 77 5b 3a ew[:,.0],.transp_Xs_linear_new[:
22c60 2c 20 31 5d 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 63 3d 79 73 2c 20 6d 61 72 6b 65 72 3d 27 ,.1],\n...........c=ys,.marker='
22c80 2b 27 2c 20 6c 61 62 65 6c 3d 27 4c 65 61 72 6e 65 64 20 6d 61 70 70 69 6e 67 27 29 5c 6e 70 6c +',.label='Learned.mapping')\npl
22ca0 2e 74 69 74 6c 65 28 5c 22 45 73 74 69 6d 2e 20 6d 61 70 70 69 6e 67 20 28 6c 69 6e 65 61 72 29 .title(\"Estim..mapping.(linear)
22cc0 5c 22 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 32 2c 20 33 29 5c 6e 70 6c 2e 73 \")\n\npl.subplot(2,.2,.3)\npl.s
22ce0 63 61 74 74 65 72 28 58 74 5b 3a 2c 20 30 5d 2c 20 58 74 5b 3a 2c 20 31 5d 2c 20 63 3d 79 74 2c catter(Xt[:,.0],.Xt[:,.1],.c=yt,
22d00 20 6d 61 72 6b 65 72 3d 27 6f 27 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 6c 61 62 65 6c 3d 27 .marker='o',\n...........label='
22d20 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 2c 20 61 6c 70 68 61 3d 2e 32 29 5c 6e 70 6c 2e 73 Target.samples',.alpha=.2)\npl.s
22d40 63 61 74 74 65 72 28 74 72 61 6e 73 70 5f 58 73 5f 67 61 75 73 73 69 61 6e 5b 3a 2c 20 30 5d 2c catter(transp_Xs_gaussian[:,.0],
22d60 20 74 72 61 6e 73 70 5f 58 73 5f 67 61 75 73 73 69 61 6e 5b 3a 2c 20 31 5d 2c 20 63 3d 79 73 2c .transp_Xs_gaussian[:,.1],.c=ys,
22d80 5c 6e 20 20 20 20 20 20 20 20 20 20 20 6d 61 72 6b 65 72 3d 27 2b 27 2c 20 6c 61 62 65 6c 3d 27 \n...........marker='+',.label='
22da0 62 61 72 79 63 65 6e 74 72 69 63 20 6d 61 70 70 69 6e 67 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 barycentric.mapping')\npl.title(
22dc0 5c 22 42 61 72 79 2e 20 6d 61 70 70 69 6e 67 20 28 6b 65 72 6e 65 6c 29 5c 22 29 5c 6e 5c 6e 70 \"Bary..mapping.(kernel)\")\n\np
22de0 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 32 2c 20 34 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 58 l.subplot(2,.2,.4)\npl.scatter(X
22e00 74 5b 3a 2c 20 30 5d 2c 20 58 74 5b 3a 2c 20 31 5d 2c 20 63 3d 79 74 2c 20 6d 61 72 6b 65 72 3d t[:,.0],.Xt[:,.1],.c=yt,.marker=
22e20 27 6f 27 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 'o',\n...........label='Target.s
22e40 61 6d 70 6c 65 73 27 2c 20 61 6c 70 68 61 3d 2e 32 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 74 amples',.alpha=.2)\npl.scatter(t
22e60 72 61 6e 73 70 5f 58 73 5f 67 61 75 73 73 69 61 6e 5f 6e 65 77 5b 3a 2c 20 30 5d 2c 20 74 72 61 ransp_Xs_gaussian_new[:,.0],.tra
22e80 6e 73 70 5f 58 73 5f 67 61 75 73 73 69 61 6e 5f 6e 65 77 5b 3a 2c 20 31 5d 2c 20 63 3d 79 73 2c nsp_Xs_gaussian_new[:,.1],.c=ys,
22ea0 5c 6e 20 20 20 20 20 20 20 20 20 20 20 6d 61 72 6b 65 72 3d 27 2b 27 2c 20 6c 61 62 65 6c 3d 27 \n...........marker='+',.label='
22ec0 4c 65 61 72 6e 65 64 20 6d 61 70 70 69 6e 67 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 5c 22 45 73 Learned.mapping')\npl.title(\"Es
22ee0 74 69 6d 2e 20 6d 61 70 70 69 6e 67 20 28 6b 65 72 6e 65 6c 29 5c 22 29 5c 6e 70 6c 2e 74 69 67 tim..mapping.(kernel)\")\npl.tig
22f00 68 74 5f 6c 61 79 6f 75 74 28 29 5c 6e 5c 6e 70 6c 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 ht_layout()\n\npl.show()".......
22f20 5d 0a 20 20 20 20 7d 0a 20 20 5d 2c 0a 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 ].....}...],..."metadata":.{....
22f40 20 22 6b 65 72 6e 65 6c 73 70 65 63 22 3a 20 7b 0a 20 20 20 20 20 20 22 64 69 73 70 6c 61 79 5f ."kernelspec":.{......."display_
22f60 6e 61 6d 65 22 3a 20 22 50 79 74 68 6f 6e 20 33 22 2c 0a 20 20 20 20 20 20 22 6c 61 6e 67 75 61 name":."Python.3",......."langua
22f80 67 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 ge":."python",......."name":."py
22fa0 74 68 6f 6e 33 22 0a 20 20 20 20 7d 2c 0a 20 20 20 20 22 6c 61 6e 67 75 61 67 65 5f 69 6e 66 6f thon3".....},....."language_info
22fc0 22 3a 20 7b 0a 20 20 20 20 20 20 22 63 6f 64 65 6d 69 72 72 6f 72 5f 6d 6f 64 65 22 3a 20 7b 0a ":.{......."codemirror_mode":.{.
22fe0 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 69 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 ........"name":."ipython",......
23000 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 33 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 ..."version":.3.......},......."
23020 66 69 6c 65 5f 65 78 74 65 6e 73 69 6f 6e 22 3a 20 22 2e 70 79 22 2c 0a 20 20 20 20 20 20 22 6d file_extension":.".py",......."m
23040 69 6d 65 74 79 70 65 22 3a 20 22 74 65 78 74 2f 78 2d 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 imetype":."text/x-python",......
23060 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 62 63 6f 6e 76 ."name":."python",......."nbconv
23080 65 72 74 5f 65 78 70 6f 72 74 65 72 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 ert_exporter":."python",......."
230a0 70 79 67 6d 65 6e 74 73 5f 6c 65 78 65 72 22 3a 20 22 69 70 79 74 68 6f 6e 33 22 2c 0a 20 20 20 pygments_lexer":."ipython3",....
230c0 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 36 2e 39 22 0a 20 20 20 20 7d 0a 20 20 7d 2c ..."version":."3.6.9".....}...},
230e0 0a 20 20 22 6e 62 66 6f 72 6d 61 74 22 3a 20 34 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 5f 6d 69 ..."nbformat":.4,..."nbformat_mi
23100 6e 6f 72 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 ce 72 94 50 b9 99 0e 46 f4 1c 00 00 f4 nor":.0.}PK.........r.P...F.....
23120 1c 00 00 12 00 00 00 70 6c 6f 74 5f 6f 74 64 61 5f 64 32 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 .......plot_otda_d2.ipynb{..."ce
23140 6c 6c 73 22 3a 20 5b 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a lls":.[.....{......."cell_type":
23160 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 ."code",......."execution_count"
23180 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 :.null,......."metadata":.{.....
231a0 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a ...."collapsed":.false.......},.
231c0 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 ......"outputs":.[],......."sour
231e0 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 25 6d 61 74 70 6c 6f 74 6c 69 62 20 69 6e 6c 69 ce":.[........."%matplotlib.inli
23200 6e 65 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 ne".......].....},.....{......."
23220 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d cell_type":."markdown",......."m
23240 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a etadata":.{},......."source":.[.
23260 20 20 20 20 20 20 20 20 22 5c 6e 23 20 4f 54 20 66 6f 72 20 64 6f 6d 61 69 6e 20 61 64 61 70 74 ........"\n#.OT.for.domain.adapt
23280 61 74 69 6f 6e 20 6f 6e 20 65 6d 70 69 72 69 63 61 6c 20 64 69 73 74 72 69 62 75 74 69 6f 6e 73 ation.on.empirical.distributions
232a0 5c 6e 5c 6e 5c 6e 54 68 69 73 20 65 78 61 6d 70 6c 65 20 69 6e 74 72 6f 64 75 63 65 73 20 61 20 \n\n\nThis.example.introduces.a.
232c0 64 6f 6d 61 69 6e 20 61 64 61 70 74 61 74 69 6f 6e 20 69 6e 20 61 20 32 44 20 73 65 74 74 69 6e domain.adaptation.in.a.2D.settin
232e0 67 2e 20 49 74 20 65 78 70 6c 69 63 69 74 73 5c 6e 74 68 65 20 70 72 6f 62 6c 65 6d 20 6f 66 20 g..It.explicits\nthe.problem.of.
23300 64 6f 6d 61 69 6e 20 61 64 61 70 74 61 74 69 6f 6e 20 61 6e 64 20 69 6e 74 72 6f 64 75 63 65 73 domain.adaptation.and.introduces
23320 20 73 6f 6d 65 20 6f 70 74 69 6d 61 6c 20 74 72 61 6e 73 70 6f 72 74 5c 6e 61 70 70 72 6f 61 63 .some.optimal.transport\napproac
23340 68 65 73 20 74 6f 20 73 6f 6c 76 65 20 69 74 2e 5c 6e 5c 6e 51 75 61 6e 74 69 74 69 65 73 20 73 hes.to.solve.it.\n\nQuantities.s
23360 75 63 68 20 61 73 20 6f 70 74 69 6d 61 6c 20 63 6f 75 70 6c 69 6e 67 73 2c 20 67 72 65 61 74 65 uch.as.optimal.couplings,.greate
23380 72 20 63 6f 75 70 6c 69 6e 67 20 63 6f 65 66 66 69 63 69 65 6e 74 73 20 61 6e 64 5c 6e 74 72 61 r.coupling.coefficients.and\ntra
233a0 6e 73 70 6f 72 74 65 64 20 73 61 6d 70 6c 65 73 20 61 72 65 20 72 65 70 72 65 73 65 6e 74 65 64 nsported.samples.are.represented
233c0 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 67 69 76 65 20 61 20 76 69 73 75 61 6c 20 75 6e 64 65 72 .in.order.to.give.a.visual.under
233e0 73 74 61 6e 64 69 6e 67 5c 6e 6f 66 20 77 68 61 74 20 74 68 65 20 74 72 61 6e 73 70 6f 72 74 20 standing\nof.what.the.transport.
23400 6d 65 74 68 6f 64 73 20 61 72 65 20 64 6f 69 6e 67 2e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a methods.are.doing.\n\n".......].
23420 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 ....},.....{......."cell_type":.
23440 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a "code",......."execution_count":
23460 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 .null,......."metadata":.{......
23480 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 ..."collapsed":.false.......},..
234a0 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 ....."outputs":.[],......."sourc
234c0 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 20 41 75 74 68 6f 72 73 3a 20 52 65 6d 69 20 46 e":.[........."#.Authors:.Remi.F
234e0 6c 61 6d 61 72 79 20 3c 72 65 6d 69 2e 66 6c 61 6d 61 72 79 40 75 6e 69 63 65 2e 66 72 3e 5c 6e lamary.<remi.flamary@unice.fr>\n
23500 23 20 20 20 20 20 20 20 20 20 20 53 74 61 6e 69 73 6c 61 73 20 43 68 61 6d 62 6f 6e 20 3c 73 74 #..........Stanislas.Chambon.<st
23520 61 6e 2e 63 68 61 6d 62 6f 6e 40 67 6d 61 69 6c 2e 63 6f 6d 3e 5c 6e 23 5c 6e 23 20 4c 69 63 65 an.chambon@gmail.com>\n#\n#.Lice
23540 6e 73 65 3a 20 4d 49 54 20 4c 69 63 65 6e 73 65 5c 6e 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c nse:.MIT.License\n\nimport.matpl
23560 6f 74 6c 69 62 2e 70 79 6c 61 62 20 61 73 20 70 6c 5c 6e 69 6d 70 6f 72 74 20 6f 74 5c 6e 69 6d otlib.pylab.as.pl\nimport.ot\nim
23580 70 6f 72 74 20 6f 74 2e 70 6c 6f 74 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 port.ot.plot".......].....},....
235a0 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 .{......."cell_type":."markdown"
235c0 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 ,......."metadata":.{},......."s
235e0 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 67 65 6e 65 72 61 74 65 20 64 61 74 61 ource":.[........."generate.data
23600 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 \n-------------\n\n".......]....
23620 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f .},.....{......."cell_type":."co
23640 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 de",......."execution_count":.nu
23660 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 ll,......."metadata":.{.........
23680 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 "collapsed":.false.......},.....
236a0 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a .."outputs":.[],......."source":
236c0 20 5b 0a 20 20 20 20 20 20 20 20 22 6e 5f 73 61 6d 70 6c 65 73 5f 73 6f 75 72 63 65 20 3d 20 31 .[........."n_samples_source.=.1
236e0 35 30 5c 6e 6e 5f 73 61 6d 70 6c 65 73 5f 74 61 72 67 65 74 20 3d 20 31 35 30 5c 6e 5c 6e 58 73 50\nn_samples_target.=.150\n\nXs
23700 2c 20 79 73 20 3d 20 6f 74 2e 64 61 74 61 73 65 74 73 2e 6d 61 6b 65 5f 64 61 74 61 5f 63 6c 61 ,.ys.=.ot.datasets.make_data_cla
23720 73 73 69 66 28 27 33 67 61 75 73 73 27 2c 20 6e 5f 73 61 6d 70 6c 65 73 5f 73 6f 75 72 63 65 29 ssif('3gauss',.n_samples_source)
23740 5c 6e 58 74 2c 20 79 74 20 3d 20 6f 74 2e 64 61 74 61 73 65 74 73 2e 6d 61 6b 65 5f 64 61 74 61 \nXt,.yt.=.ot.datasets.make_data
23760 5f 63 6c 61 73 73 69 66 28 27 33 67 61 75 73 73 32 27 2c 20 6e 5f 73 61 6d 70 6c 65 73 5f 74 61 _classif('3gauss2',.n_samples_ta
23780 72 67 65 74 29 5c 6e 5c 6e 23 20 43 6f 73 74 20 6d 61 74 72 69 78 5c 6e 4d 20 3d 20 6f 74 2e 64 rget)\n\n#.Cost.matrix\nM.=.ot.d
237a0 69 73 74 28 58 73 2c 20 58 74 2c 20 6d 65 74 72 69 63 3d 27 73 71 65 75 63 6c 69 64 65 61 6e 27 ist(Xs,.Xt,.metric='sqeuclidean'
237c0 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 )".......].....},.....{......."c
237e0 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 ell_type":."markdown",......."me
23800 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 tadata":.{},......."source":.[..
23820 20 20 20 20 20 20 20 22 49 6e 73 74 61 6e 74 69 61 74 65 20 74 68 65 20 64 69 66 66 65 72 65 6e ......."Instantiate.the.differen
23840 74 20 74 72 61 6e 73 70 6f 72 74 20 61 6c 67 6f 72 69 74 68 6d 73 20 61 6e 64 20 66 69 74 20 74 t.transport.algorithms.and.fit.t
23860 68 65 6d 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d hem\n---------------------------
23880 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
238a0 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 \n\n".......].....},.....{......
238c0 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 ."cell_type":."code",......."exe
238e0 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 cution_count":.null,......."meta
23900 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 data":.{........."collapsed":.fa
23920 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d lse.......},......."outputs":.[]
23940 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 20 45 ,......."source":.[........."#.E
23960 4d 44 20 54 72 61 6e 73 70 6f 72 74 5c 6e 6f 74 5f 65 6d 64 20 3d 20 6f 74 2e 64 61 2e 45 4d 44 MD.Transport\not_emd.=.ot.da.EMD
23980 54 72 61 6e 73 70 6f 72 74 28 29 5c 6e 6f 74 5f 65 6d 64 2e 66 69 74 28 58 73 3d 58 73 2c 20 58 Transport()\not_emd.fit(Xs=Xs,.X
239a0 74 3d 58 74 29 5c 6e 5c 6e 23 20 53 69 6e 6b 68 6f 72 6e 20 54 72 61 6e 73 70 6f 72 74 5c 6e 6f t=Xt)\n\n#.Sinkhorn.Transport\no
239c0 74 5f 73 69 6e 6b 68 6f 72 6e 20 3d 20 6f 74 2e 64 61 2e 53 69 6e 6b 68 6f 72 6e 54 72 61 6e 73 t_sinkhorn.=.ot.da.SinkhornTrans
239e0 70 6f 72 74 28 72 65 67 5f 65 3d 31 65 2d 31 29 5c 6e 6f 74 5f 73 69 6e 6b 68 6f 72 6e 2e 66 69 port(reg_e=1e-1)\not_sinkhorn.fi
23a00 74 28 58 73 3d 58 73 2c 20 58 74 3d 58 74 29 5c 6e 5c 6e 23 20 53 69 6e 6b 68 6f 72 6e 20 54 72 t(Xs=Xs,.Xt=Xt)\n\n#.Sinkhorn.Tr
23a20 61 6e 73 70 6f 72 74 20 77 69 74 68 20 47 72 6f 75 70 20 6c 61 73 73 6f 20 72 65 67 75 6c 61 72 ansport.with.Group.lasso.regular
23a40 69 7a 61 74 69 6f 6e 5c 6e 6f 74 5f 6c 70 6c 31 20 3d 20 6f 74 2e 64 61 2e 53 69 6e 6b 68 6f 72 ization\not_lpl1.=.ot.da.Sinkhor
23a60 6e 4c 70 6c 31 54 72 61 6e 73 70 6f 72 74 28 72 65 67 5f 65 3d 31 65 2d 31 2c 20 72 65 67 5f 63 nLpl1Transport(reg_e=1e-1,.reg_c
23a80 6c 3d 31 65 30 29 5c 6e 6f 74 5f 6c 70 6c 31 2e 66 69 74 28 58 73 3d 58 73 2c 20 79 73 3d 79 73 l=1e0)\not_lpl1.fit(Xs=Xs,.ys=ys
23aa0 2c 20 58 74 3d 58 74 29 5c 6e 5c 6e 23 20 74 72 61 6e 73 70 6f 72 74 20 73 6f 75 72 63 65 20 73 ,.Xt=Xt)\n\n#.transport.source.s
23ac0 61 6d 70 6c 65 73 20 6f 6e 74 6f 20 74 61 72 67 65 74 20 73 61 6d 70 6c 65 73 5c 6e 74 72 61 6e amples.onto.target.samples\ntran
23ae0 73 70 5f 58 73 5f 65 6d 64 20 3d 20 6f 74 5f 65 6d 64 2e 74 72 61 6e 73 66 6f 72 6d 28 58 73 3d sp_Xs_emd.=.ot_emd.transform(Xs=
23b00 58 73 29 5c 6e 74 72 61 6e 73 70 5f 58 73 5f 73 69 6e 6b 68 6f 72 6e 20 3d 20 6f 74 5f 73 69 6e Xs)\ntransp_Xs_sinkhorn.=.ot_sin
23b20 6b 68 6f 72 6e 2e 74 72 61 6e 73 66 6f 72 6d 28 58 73 3d 58 73 29 5c 6e 74 72 61 6e 73 70 5f 58 khorn.transform(Xs=Xs)\ntransp_X
23b40 73 5f 6c 70 6c 31 20 3d 20 6f 74 5f 6c 70 6c 31 2e 74 72 61 6e 73 66 6f 72 6d 28 58 73 3d 58 73 s_lpl1.=.ot_lpl1.transform(Xs=Xs
23b60 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 )".......].....},.....{......."c
23b80 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 ell_type":."markdown",......."me
23ba0 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 tadata":.{},......."source":.[..
23bc0 20 20 20 20 20 20 20 22 46 69 67 20 31 20 3a 20 70 6c 6f 74 73 20 73 6f 75 72 63 65 20 61 6e 64 ......."Fig.1.:.plots.source.and
23be0 20 74 61 72 67 65 74 20 73 61 6d 70 6c 65 73 20 2b 20 6d 61 74 72 69 78 20 6f 66 20 70 61 69 72 .target.samples.+.matrix.of.pair
23c00 77 69 73 65 20 64 69 73 74 61 6e 63 65 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d wise.distance\n-----------------
23c20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
23c40 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 --------------------\n\n".......
23c60 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 ].....},.....{......."cell_type"
23c80 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 :."code",......."execution_count
23ca0 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 ":.null,......."metadata":.{....
23cc0 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c ....."collapsed":.false.......},
23ce0 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 ......."outputs":.[],......."sou
23d00 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 70 6c 2e 66 69 67 75 72 65 28 31 2c 20 66 69 rce":.[........."pl.figure(1,.fi
23d20 67 73 69 7a 65 3d 28 31 30 2c 20 31 30 29 29 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 32 gsize=(10,.10))\npl.subplot(2,.2
23d40 2c 20 31 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 58 73 5b 3a 2c 20 30 5d 2c 20 58 73 5b 3a 2c ,.1)\npl.scatter(Xs[:,.0],.Xs[:,
23d60 20 31 5d 2c 20 63 3d 79 73 2c 20 6d 61 72 6b 65 72 3d 27 2b 27 2c 20 6c 61 62 65 6c 3d 27 53 6f .1],.c=ys,.marker='+',.label='So
23d80 75 72 63 65 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 urce.samples')\npl.xticks([])\np
23da0 6c 2e 79 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e l.yticks([])\npl.legend(loc=0)\n
23dc0 70 6c 2e 74 69 74 6c 65 28 27 53 6f 75 72 63 65 20 20 73 61 6d 70 6c 65 73 27 29 5c 6e 5c 6e 70 pl.title('Source..samples')\n\np
23de0 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 32 2c 20 32 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 58 l.subplot(2,.2,.2)\npl.scatter(X
23e00 74 5b 3a 2c 20 30 5d 2c 20 58 74 5b 3a 2c 20 31 5d 2c 20 63 3d 79 74 2c 20 6d 61 72 6b 65 72 3d t[:,.0],.Xt[:,.1],.c=yt,.marker=
23e20 27 6f 27 2c 20 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 'o',.label='Target.samples')\npl
23e40 2e 78 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 79 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 6c .xticks([])\npl.yticks([])\npl.l
23e60 65 67 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 54 61 72 67 65 74 20 73 egend(loc=0)\npl.title('Target.s
23e80 61 6d 70 6c 65 73 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 32 2c 20 33 29 5c amples')\n\npl.subplot(2,.2,.3)\
23ea0 6e 70 6c 2e 69 6d 73 68 6f 77 28 4d 2c 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 3d 27 6e 65 61 npl.imshow(M,.interpolation='nea
23ec0 72 65 73 74 27 29 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 79 74 69 63 6b 73 rest')\npl.xticks([])\npl.yticks
23ee0 28 5b 5d 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 4d 61 74 72 69 78 20 6f 66 20 70 61 69 72 77 69 ([])\npl.title('Matrix.of.pairwi
23f00 73 65 20 64 69 73 74 61 6e 63 65 73 27 29 5c 6e 70 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 se.distances')\npl.tight_layout(
23f20 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 )".......].....},.....{......."c
23f40 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 ell_type":."markdown",......."me
23f60 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 tadata":.{},......."source":.[..
23f80 20 20 20 20 20 20 20 22 46 69 67 20 32 20 3a 20 70 6c 6f 74 73 20 6f 70 74 69 6d 61 6c 20 63 6f ......."Fig.2.:.plots.optimal.co
23fa0 75 70 6c 69 6e 67 73 20 66 6f 72 20 74 68 65 20 64 69 66 66 65 72 65 6e 74 20 6d 65 74 68 6f 64 uplings.for.the.different.method
23fc0 73 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d s\n-----------------------------
23fe0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e ----------------------------\n\n
24000 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 ".......].....},.....{......."ce
24020 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 ll_type":."code",......."executi
24040 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 on_count":.null,......."metadata
24060 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a ":.{........."collapsed":.false.
24080 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 ......},......."outputs":.[],...
240a0 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 70 6c 2e 66 69 67 75 ...."source":.[........."pl.figu
240c0 72 65 28 32 2c 20 66 69 67 73 69 7a 65 3d 28 31 30 2c 20 36 29 29 5c 6e 5c 6e 70 6c 2e 73 75 62 re(2,.figsize=(10,.6))\n\npl.sub
240e0 70 6c 6f 74 28 32 2c 20 33 2c 20 31 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 6f 74 5f 65 6d 64 2e plot(2,.3,.1)\npl.imshow(ot_emd.
24100 63 6f 75 70 6c 69 6e 67 5f 2c 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 3d 27 6e 65 61 72 65 73 coupling_,.interpolation='neares
24120 74 27 29 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 79 74 69 63 6b 73 28 5b 5d t')\npl.xticks([])\npl.yticks([]
24140 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 4f 70 74 69 6d 61 6c 20 63 6f 75 70 6c 69 6e 67 5c 5c 6e )\npl.title('Optimal.coupling\\n
24160 45 4d 44 54 72 61 6e 73 70 6f 72 74 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 EMDTransport')\n\npl.subplot(2,.
24180 33 2c 20 32 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 6f 74 5f 73 69 6e 6b 68 6f 72 6e 2e 63 6f 75 3,.2)\npl.imshow(ot_sinkhorn.cou
241a0 70 6c 69 6e 67 5f 2c 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 3d 27 6e 65 61 72 65 73 74 27 29 pling_,.interpolation='nearest')
241c0 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 79 74 69 63 6b 73 28 5b 5d 29 5c 6e \npl.xticks([])\npl.yticks([])\n
241e0 70 6c 2e 74 69 74 6c 65 28 27 4f 70 74 69 6d 61 6c 20 63 6f 75 70 6c 69 6e 67 5c 5c 6e 53 69 6e pl.title('Optimal.coupling\\nSin
24200 6b 68 6f 72 6e 54 72 61 6e 73 70 6f 72 74 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 khornTransport')\n\npl.subplot(2
24220 2c 20 33 2c 20 33 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 6f 74 5f 6c 70 6c 31 2e 63 6f 75 70 6c ,.3,.3)\npl.imshow(ot_lpl1.coupl
24240 69 6e 67 5f 2c 20 69 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 3d 27 6e 65 61 72 65 73 74 27 29 5c 6e ing_,.interpolation='nearest')\n
24260 70 6c 2e 78 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 79 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c pl.xticks([])\npl.yticks([])\npl
24280 2e 74 69 74 6c 65 28 27 4f 70 74 69 6d 61 6c 20 63 6f 75 70 6c 69 6e 67 5c 5c 6e 53 69 6e 6b 68 .title('Optimal.coupling\\nSinkh
242a0 6f 72 6e 4c 70 6c 31 54 72 61 6e 73 70 6f 72 74 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 ornLpl1Transport')\n\npl.subplot
242c0 28 32 2c 20 33 2c 20 34 29 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 32 44 5f 73 61 6d 70 6c 65 (2,.3,.4)\not.plot.plot2D_sample
242e0 73 5f 6d 61 74 28 58 73 2c 20 58 74 2c 20 6f 74 5f 65 6d 64 2e 63 6f 75 70 6c 69 6e 67 5f 2c 20 s_mat(Xs,.Xt,.ot_emd.coupling_,.
24300 63 3d 5b 2e 35 2c 20 2e 35 2c 20 31 5d 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 58 73 5b 3a 2c c=[.5,..5,.1])\npl.scatter(Xs[:,
24320 20 30 5d 2c 20 58 73 5b 3a 2c 20 31 5d 2c 20 63 3d 79 73 2c 20 6d 61 72 6b 65 72 3d 27 2b 27 2c .0],.Xs[:,.1],.c=ys,.marker='+',
24340 20 6c 61 62 65 6c 3d 27 53 6f 75 72 63 65 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 73 63 61 .label='Source.samples')\npl.sca
24360 74 74 65 72 28 58 74 5b 3a 2c 20 30 5d 2c 20 58 74 5b 3a 2c 20 31 5d 2c 20 63 3d 79 74 2c 20 6d tter(Xt[:,.0],.Xt[:,.1],.c=yt,.m
24380 61 72 6b 65 72 3d 27 6f 27 2c 20 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 arker='o',.label='Target.samples
243a0 27 29 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 79 74 69 63 6b 73 28 5b 5d 29 ')\npl.xticks([])\npl.yticks([])
243c0 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 4d 61 69 6e 20 63 6f 75 70 6c 69 6e 67 20 63 6f 65 66 66 69 \npl.title('Main.coupling.coeffi
243e0 63 69 65 6e 74 73 5c 5c 6e 45 4d 44 54 72 61 6e 73 70 6f 72 74 27 29 5c 6e 5c 6e 70 6c 2e 73 75 cients\\nEMDTransport')\n\npl.su
24400 62 70 6c 6f 74 28 32 2c 20 33 2c 20 35 29 5c 6e 6f 74 2e 70 6c 6f 74 2e 70 6c 6f 74 32 44 5f 73 bplot(2,.3,.5)\not.plot.plot2D_s
24420 61 6d 70 6c 65 73 5f 6d 61 74 28 58 73 2c 20 58 74 2c 20 6f 74 5f 73 69 6e 6b 68 6f 72 6e 2e 63 amples_mat(Xs,.Xt,.ot_sinkhorn.c
24440 6f 75 70 6c 69 6e 67 5f 2c 20 63 3d 5b 2e 35 2c 20 2e 35 2c 20 31 5d 29 5c 6e 70 6c 2e 73 63 61 oupling_,.c=[.5,..5,.1])\npl.sca
24460 74 74 65 72 28 58 73 5b 3a 2c 20 30 5d 2c 20 58 73 5b 3a 2c 20 31 5d 2c 20 63 3d 79 73 2c 20 6d tter(Xs[:,.0],.Xs[:,.1],.c=ys,.m
24480 61 72 6b 65 72 3d 27 2b 27 2c 20 6c 61 62 65 6c 3d 27 53 6f 75 72 63 65 20 73 61 6d 70 6c 65 73 arker='+',.label='Source.samples
244a0 27 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 58 74 5b 3a 2c 20 30 5d 2c 20 58 74 5b 3a 2c 20 31 ')\npl.scatter(Xt[:,.0],.Xt[:,.1
244c0 5d 2c 20 63 3d 79 74 2c 20 6d 61 72 6b 65 72 3d 27 6f 27 2c 20 6c 61 62 65 6c 3d 27 54 61 72 67 ],.c=yt,.marker='o',.label='Targ
244e0 65 74 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e et.samples')\npl.xticks([])\npl.
24500 79 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 4d 61 69 6e 20 63 6f 75 70 6c yticks([])\npl.title('Main.coupl
24520 69 6e 67 20 63 6f 65 66 66 69 63 69 65 6e 74 73 5c 5c 6e 53 69 6e 6b 68 6f 72 6e 54 72 61 6e 73 ing.coefficients\\nSinkhornTrans
24540 70 6f 72 74 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 33 2c 20 36 29 5c 6e 6f port')\n\npl.subplot(2,.3,.6)\no
24560 74 2e 70 6c 6f 74 2e 70 6c 6f 74 32 44 5f 73 61 6d 70 6c 65 73 5f 6d 61 74 28 58 73 2c 20 58 74 t.plot.plot2D_samples_mat(Xs,.Xt
24580 2c 20 6f 74 5f 6c 70 6c 31 2e 63 6f 75 70 6c 69 6e 67 5f 2c 20 63 3d 5b 2e 35 2c 20 2e 35 2c 20 ,.ot_lpl1.coupling_,.c=[.5,..5,.
245a0 31 5d 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 58 73 5b 3a 2c 20 30 5d 2c 20 58 73 5b 3a 2c 20 1])\npl.scatter(Xs[:,.0],.Xs[:,.
245c0 31 5d 2c 20 63 3d 79 73 2c 20 6d 61 72 6b 65 72 3d 27 2b 27 2c 20 6c 61 62 65 6c 3d 27 53 6f 75 1],.c=ys,.marker='+',.label='Sou
245e0 72 63 65 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 58 74 5b 3a 2c 20 rce.samples')\npl.scatter(Xt[:,.
24600 30 5d 2c 20 58 74 5b 3a 2c 20 31 5d 2c 20 63 3d 79 74 2c 20 6d 61 72 6b 65 72 3d 27 6f 27 2c 20 0],.Xt[:,.1],.c=yt,.marker='o',.
24620 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 29 5c 6e 70 6c 2e 78 74 69 63 label='Target.samples')\npl.xtic
24640 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 79 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 ks([])\npl.yticks([])\npl.title(
24660 27 4d 61 69 6e 20 63 6f 75 70 6c 69 6e 67 20 63 6f 65 66 66 69 63 69 65 6e 74 73 5c 5c 6e 53 69 'Main.coupling.coefficients\\nSi
24680 6e 6b 68 6f 72 6e 4c 70 6c 31 54 72 61 6e 73 70 6f 72 74 27 29 5c 6e 70 6c 2e 74 69 67 68 74 5f nkhornLpl1Transport')\npl.tight_
246a0 6c 61 79 6f 75 74 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 layout()".......].....},.....{..
246c0 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 ....."cell_type":."markdown",...
246e0 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 ...."metadata":.{},......."sourc
24700 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 46 69 67 20 33 20 3a 20 70 6c 6f 74 20 74 72 61 6e e":.[........."Fig.3.:.plot.tran
24720 73 70 6f 72 74 65 64 20 73 61 6d 70 6c 65 73 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d sported.samples\n---------------
24740 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 -----------------\n\n".......]..
24760 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 ...},.....{......."cell_type":."
24780 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 code",......."execution_count":.
247a0 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 null,......."metadata":.{.......
247c0 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 .."collapsed":.false.......},...
247e0 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 ...."outputs":.[],......."source
24800 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 20 64 69 73 70 6c 61 79 20 74 72 61 6e 73 70 6f 72 ":.[........."#.display.transpor
24820 74 65 64 20 73 61 6d 70 6c 65 73 5c 6e 70 6c 2e 66 69 67 75 72 65 28 34 2c 20 66 69 67 73 69 7a ted.samples\npl.figure(4,.figsiz
24840 65 3d 28 31 30 2c 20 34 29 29 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 20 33 2c 20 31 29 5c e=(10,.4))\npl.subplot(1,.3,.1)\
24860 6e 70 6c 2e 73 63 61 74 74 65 72 28 58 74 5b 3a 2c 20 30 5d 2c 20 58 74 5b 3a 2c 20 31 5d 2c 20 npl.scatter(Xt[:,.0],.Xt[:,.1],.
24880 63 3d 79 74 2c 20 6d 61 72 6b 65 72 3d 27 6f 27 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 6c 61 c=yt,.marker='o',\n...........la
248a0 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 2c 20 61 6c 70 68 61 3d 30 2e 35 29 bel='Target.samples',.alpha=0.5)
248c0 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 74 72 61 6e 73 70 5f 58 73 5f 65 6d 64 5b 3a 2c 20 30 5d \npl.scatter(transp_Xs_emd[:,.0]
248e0 2c 20 74 72 61 6e 73 70 5f 58 73 5f 65 6d 64 5b 3a 2c 20 31 5d 2c 20 63 3d 79 73 2c 5c 6e 20 20 ,.transp_Xs_emd[:,.1],.c=ys,\n..
24900 20 20 20 20 20 20 20 20 20 6d 61 72 6b 65 72 3d 27 2b 27 2c 20 6c 61 62 65 6c 3d 27 54 72 61 6e .........marker='+',.label='Tran
24920 73 70 20 73 61 6d 70 6c 65 73 27 2c 20 73 3d 33 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 54 72 sp.samples',.s=30)\npl.title('Tr
24940 61 6e 73 70 6f 72 74 65 64 20 73 61 6d 70 6c 65 73 5c 5c 6e 45 6d 64 54 72 61 6e 73 70 6f 72 74 ansported.samples\\nEmdTransport
24960 27 29 5c 6e 70 6c 2e 6c 65 67 65 6e 64 28 6c 6f 63 3d 30 29 5c 6e 70 6c 2e 78 74 69 63 6b 73 28 ')\npl.legend(loc=0)\npl.xticks(
24980 5b 5d 29 5c 6e 70 6c 2e 79 74 69 63 6b 73 28 5b 5d 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 [])\npl.yticks([])\n\npl.subplot
249a0 28 31 2c 20 33 2c 20 32 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 58 74 5b 3a 2c 20 30 5d 2c 20 (1,.3,.2)\npl.scatter(Xt[:,.0],.
249c0 58 74 5b 3a 2c 20 31 5d 2c 20 63 3d 79 74 2c 20 6d 61 72 6b 65 72 3d 27 6f 27 2c 5c 6e 20 20 20 Xt[:,.1],.c=yt,.marker='o',\n...
249e0 20 20 20 20 20 20 20 20 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d 70 6c 65 73 27 2c 20 ........label='Target.samples',.
24a00 61 6c 70 68 61 3d 30 2e 35 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 74 72 61 6e 73 70 5f 58 73 alpha=0.5)\npl.scatter(transp_Xs
24a20 5f 73 69 6e 6b 68 6f 72 6e 5b 3a 2c 20 30 5d 2c 20 74 72 61 6e 73 70 5f 58 73 5f 73 69 6e 6b 68 _sinkhorn[:,.0],.transp_Xs_sinkh
24a40 6f 72 6e 5b 3a 2c 20 31 5d 2c 20 63 3d 79 73 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 6d 61 72 orn[:,.1],.c=ys,\n...........mar
24a60 6b 65 72 3d 27 2b 27 2c 20 6c 61 62 65 6c 3d 27 54 72 61 6e 73 70 20 73 61 6d 70 6c 65 73 27 2c ker='+',.label='Transp.samples',
24a80 20 73 3d 33 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 54 72 61 6e 73 70 6f 72 74 65 64 20 73 61 .s=30)\npl.title('Transported.sa
24aa0 6d 70 6c 65 73 5c 5c 6e 53 69 6e 6b 68 6f 72 6e 54 72 61 6e 73 70 6f 72 74 27 29 5c 6e 70 6c 2e mples\\nSinkhornTransport')\npl.
24ac0 78 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 79 74 69 63 6b 73 28 5b 5d 29 5c 6e 5c 6e 70 6c 2e xticks([])\npl.yticks([])\n\npl.
24ae0 73 75 62 70 6c 6f 74 28 31 2c 20 33 2c 20 33 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 58 74 5b subplot(1,.3,.3)\npl.scatter(Xt[
24b00 3a 2c 20 30 5d 2c 20 58 74 5b 3a 2c 20 31 5d 2c 20 63 3d 79 74 2c 20 6d 61 72 6b 65 72 3d 27 6f :,.0],.Xt[:,.1],.c=yt,.marker='o
24b20 27 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 6c 61 62 65 6c 3d 27 54 61 72 67 65 74 20 73 61 6d ',\n...........label='Target.sam
24b40 70 6c 65 73 27 2c 20 61 6c 70 68 61 3d 30 2e 35 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 74 72 ples',.alpha=0.5)\npl.scatter(tr
24b60 61 6e 73 70 5f 58 73 5f 6c 70 6c 31 5b 3a 2c 20 30 5d 2c 20 74 72 61 6e 73 70 5f 58 73 5f 6c 70 ansp_Xs_lpl1[:,.0],.transp_Xs_lp
24b80 6c 31 5b 3a 2c 20 31 5d 2c 20 63 3d 79 73 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 6d 61 72 6b l1[:,.1],.c=ys,\n...........mark
24ba0 65 72 3d 27 2b 27 2c 20 6c 61 62 65 6c 3d 27 54 72 61 6e 73 70 20 73 61 6d 70 6c 65 73 27 2c 20 er='+',.label='Transp.samples',.
24bc0 73 3d 33 30 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 54 72 61 6e 73 70 6f 72 74 65 64 20 73 61 6d s=30)\npl.title('Transported.sam
24be0 70 6c 65 73 5c 5c 6e 53 69 6e 6b 68 6f 72 6e 4c 70 6c 31 54 72 61 6e 73 70 6f 72 74 27 29 5c 6e ples\\nSinkhornLpl1Transport')\n
24c00 70 6c 2e 78 74 69 63 6b 73 28 5b 5d 29 5c 6e 70 6c 2e 79 74 69 63 6b 73 28 5b 5d 29 5c 6e 5c 6e pl.xticks([])\npl.yticks([])\n\n
24c20 70 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 5c 6e 70 6c 2e 73 68 6f 77 28 29 22 0a 20 20 pl.tight_layout()\npl.show()"...
24c40 20 20 20 20 5d 0a 20 20 20 20 7d 0a 20 20 5d 2c 0a 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b ....].....}...],..."metadata":.{
24c60 0a 20 20 20 20 22 6b 65 72 6e 65 6c 73 70 65 63 22 3a 20 7b 0a 20 20 20 20 20 20 22 64 69 73 70 ....."kernelspec":.{......."disp
24c80 6c 61 79 5f 6e 61 6d 65 22 3a 20 22 50 79 74 68 6f 6e 20 33 22 2c 0a 20 20 20 20 20 20 22 6c 61 lay_name":."Python.3",......."la
24ca0 6e 67 75 61 67 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a nguage":."python",......."name":
24cc0 20 22 70 79 74 68 6f 6e 33 22 0a 20 20 20 20 7d 2c 0a 20 20 20 20 22 6c 61 6e 67 75 61 67 65 5f ."python3".....},....."language_
24ce0 69 6e 66 6f 22 3a 20 7b 0a 20 20 20 20 20 20 22 63 6f 64 65 6d 69 72 72 6f 72 5f 6d 6f 64 65 22 info":.{......."codemirror_mode"
24d00 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 69 70 79 74 68 6f 6e 22 2c 0a 20 :.{........."name":."ipython",..
24d20 20 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 33 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 ......."version":.3.......},....
24d40 20 20 20 22 66 69 6c 65 5f 65 78 74 65 6e 73 69 6f 6e 22 3a 20 22 2e 70 79 22 2c 0a 20 20 20 20 ..."file_extension":.".py",.....
24d60 20 20 22 6d 69 6d 65 74 79 70 65 22 3a 20 22 74 65 78 74 2f 78 2d 70 79 74 68 6f 6e 22 2c 0a 20 .."mimetype":."text/x-python",..
24d80 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 62 ....."name":."python",......."nb
24da0 63 6f 6e 76 65 72 74 5f 65 78 70 6f 72 74 65 72 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 convert_exporter":."python",....
24dc0 20 20 20 22 70 79 67 6d 65 6e 74 73 5f 6c 65 78 65 72 22 3a 20 22 69 70 79 74 68 6f 6e 33 22 2c ..."pygments_lexer":."ipython3",
24de0 0a 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 36 2e 39 22 0a 20 20 20 20 7d 0a ......."version":."3.6.9".....}.
24e00 20 20 7d 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 22 3a 20 34 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 ..},..."nbformat":.4,..."nbforma
24e20 74 5f 6d 69 6e 6f 72 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 bc 75 94 50 a6 23 02 85 16 t_minor":.0.}PK.........u.P.#...
24e40 18 00 00 16 18 00 00 25 00 00 00 70 6c 6f 74 5f 6f 74 64 61 5f 6d 61 70 70 69 6e 67 5f 63 6f 6c .......%...plot_otda_mapping_col
24e60 6f 72 73 5f 69 6d 61 67 65 73 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 22 3a 20 5b 0a 20 ors_images.ipynb{..."cells":.[..
24e80 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a ...{......."cell_type":."code",.
24ea0 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 ......"execution_count":.null,..
24ec0 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c ....."metadata":.{........."coll
24ee0 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 apsed":.false.......},......."ou
24f00 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 tputs":.[],......."source":.[...
24f20 20 20 20 20 20 20 22 25 6d 61 74 70 6c 6f 74 6c 69 62 20 69 6e 6c 69 6e 65 22 0a 20 20 20 20 20 ......"%matplotlib.inline"......
24f40 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 .].....},.....{......."cell_type
24f60 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a ":."markdown",......."metadata":
24f80 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 .{},......."source":.[........."
24fa0 5c 6e 23 20 4f 54 20 66 6f 72 20 69 6d 61 67 65 20 63 6f 6c 6f 72 20 61 64 61 70 74 61 74 69 6f \n#.OT.for.image.color.adaptatio
24fc0 6e 20 77 69 74 68 20 6d 61 70 70 69 6e 67 20 65 73 74 69 6d 61 74 69 6f 6e 5c 6e 5c 6e 5c 6e 4f n.with.mapping.estimation\n\n\nO
24fe0 54 20 66 6f 72 20 64 6f 6d 61 69 6e 20 61 64 61 70 74 61 74 69 6f 6e 20 77 69 74 68 20 69 6d 61 T.for.domain.adaptation.with.ima
25000 67 65 20 63 6f 6c 6f 72 20 61 64 61 70 74 61 74 69 6f 6e 20 5b 36 5d 20 77 69 74 68 20 6d 61 70 ge.color.adaptation.[6].with.map
25020 70 69 6e 67 5c 6e 65 73 74 69 6d 61 74 69 6f 6e 20 5b 38 5d 2e 5c 6e 5c 6e 5b 36 5d 20 46 65 72 ping\nestimation.[8].\n\n[6].Fer
25040 72 61 64 61 6e 73 2c 20 53 2e 2c 20 50 61 70 61 64 61 6b 69 73 2c 20 4e 2e 2c 20 50 65 79 72 65 radans,.S.,.Papadakis,.N.,.Peyre
25060 2c 20 47 2e 2c 20 26 20 41 75 6a 6f 6c 2c 20 4a 2e 20 46 2e 20 28 32 30 31 34 29 2e 20 52 65 67 ,.G.,.&.Aujol,.J..F..(2014)..Reg
25080 75 6c 61 72 69 7a 65 64 5c 6e 20 20 20 20 64 69 73 63 72 65 74 65 20 6f 70 74 69 6d 61 6c 20 74 ularized\n....discrete.optimal.t
250a0 72 61 6e 73 70 6f 72 74 2e 20 53 49 41 4d 20 4a 6f 75 72 6e 61 6c 20 6f 6e 20 49 6d 61 67 69 6e ransport..SIAM.Journal.on.Imagin
250c0 67 20 53 63 69 65 6e 63 65 73 2c 20 37 28 33 29 2c 5c 6e 20 20 20 20 31 38 35 33 2d 31 38 38 32 g.Sciences,.7(3),\n....1853-1882
250e0 2e 5c 6e 5b 38 5d 20 4d 2e 20 50 65 72 72 6f 74 2c 20 4e 2e 20 43 6f 75 72 74 79 2c 20 52 2e 20 .\n[8].M..Perrot,.N..Courty,.R..
25100 46 6c 61 6d 61 72 79 2c 20 41 2e 20 48 61 62 72 61 72 64 2c 20 5c 22 4d 61 70 70 69 6e 67 20 65 Flamary,.A..Habrard,.\"Mapping.e
25120 73 74 69 6d 61 74 69 6f 6e 20 66 6f 72 5c 6e 20 20 20 20 64 69 73 63 72 65 74 65 20 6f 70 74 69 stimation.for\n....discrete.opti
25140 6d 61 6c 20 74 72 61 6e 73 70 6f 72 74 5c 22 2c 20 4e 65 75 72 61 6c 20 49 6e 66 6f 72 6d 61 74 mal.transport\",.Neural.Informat
25160 69 6f 6e 20 50 72 6f 63 65 73 73 69 6e 67 20 53 79 73 74 65 6d 73 20 28 4e 49 50 53 29 2c 5c 6e ion.Processing.Systems.(NIPS),\n
25180 20 20 20 20 32 30 31 36 2e 5c 6e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a ....2016.\n\n\n".......].....},.
251a0 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c ....{......."cell_type":."code",
251c0 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a ......."execution_count":.null,.
251e0 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c ......"metadata":.{........."col
25200 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f lapsed":.false.......},......."o
25220 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 utputs":.[],......."source":.[..
25240 20 20 20 20 20 20 20 22 23 20 41 75 74 68 6f 72 73 3a 20 52 65 6d 69 20 46 6c 61 6d 61 72 79 20 ......."#.Authors:.Remi.Flamary.
25260 3c 72 65 6d 69 2e 66 6c 61 6d 61 72 79 40 75 6e 69 63 65 2e 66 72 3e 5c 6e 23 20 20 20 20 20 20 <remi.flamary@unice.fr>\n#......
25280 20 20 20 20 53 74 61 6e 69 73 6c 61 73 20 43 68 61 6d 62 6f 6e 20 3c 73 74 61 6e 2e 63 68 61 6d ....Stanislas.Chambon.<stan.cham
252a0 62 6f 6e 40 67 6d 61 69 6c 2e 63 6f 6d 3e 5c 6e 23 5c 6e 23 20 4c 69 63 65 6e 73 65 3a 20 4d 49 bon@gmail.com>\n#\n#.License:.MI
252c0 54 20 4c 69 63 65 6e 73 65 5c 6e 5c 6e 69 6d 70 6f 72 74 20 6e 75 6d 70 79 20 61 73 20 6e 70 5c T.License\n\nimport.numpy.as.np\
252e0 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 6c 61 62 20 61 73 20 70 6c 5c 6e nimport.matplotlib.pylab.as.pl\n
25300 69 6d 70 6f 72 74 20 6f 74 5c 6e 5c 6e 72 20 3d 20 6e 70 2e 72 61 6e 64 6f 6d 2e 52 61 6e 64 6f import.ot\n\nr.=.np.random.Rando
25320 6d 53 74 61 74 65 28 34 32 29 5c 6e 5c 6e 5c 6e 64 65 66 20 69 6d 32 6d 61 74 28 49 29 3a 5c 6e mState(42)\n\n\ndef.im2mat(I):\n
25340 20 20 20 20 5c 22 5c 22 5c 22 43 6f 6e 76 65 72 74 73 20 61 6e 64 20 69 6d 61 67 65 20 74 6f 20 ....\"\"\"Converts.and.image.to.
25360 6d 61 74 72 69 78 20 28 6f 6e 65 20 70 69 78 65 6c 20 70 65 72 20 6c 69 6e 65 29 5c 22 5c 22 5c matrix.(one.pixel.per.line)\"\"\
25380 22 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 49 2e 72 65 73 68 61 70 65 28 28 49 2e 73 68 61 70 65 "\n....return.I.reshape((I.shape
253a0 5b 30 5d 20 2a 20 49 2e 73 68 61 70 65 5b 31 5d 2c 20 49 2e 73 68 61 70 65 5b 32 5d 29 29 5c 6e [0].*.I.shape[1],.I.shape[2]))\n
253c0 5c 6e 5c 6e 64 65 66 20 6d 61 74 32 69 6d 28 58 2c 20 73 68 61 70 65 29 3a 5c 6e 20 20 20 20 5c \n\ndef.mat2im(X,.shape):\n....\
253e0 22 5c 22 5c 22 43 6f 6e 76 65 72 74 73 20 62 61 63 6b 20 61 20 6d 61 74 72 69 78 20 74 6f 20 61 "\"\"Converts.back.a.matrix.to.a
25400 6e 20 69 6d 61 67 65 5c 22 5c 22 5c 22 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 58 2e 72 65 73 68 n.image\"\"\"\n....return.X.resh
25420 61 70 65 28 73 68 61 70 65 29 5c 6e 5c 6e 5c 6e 64 65 66 20 6d 69 6e 6d 61 78 28 49 29 3a 5c 6e ape(shape)\n\n\ndef.minmax(I):\n
25440 20 20 20 20 72 65 74 75 72 6e 20 6e 70 2e 63 6c 69 70 28 49 2c 20 30 2c 20 31 29 22 0a 20 20 20 ....return.np.clip(I,.0,.1)"....
25460 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 ...].....},.....{......."cell_ty
25480 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 pe":."markdown",......."metadata
254a0 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 ":.{},......."source":.[........
254c0 20 22 47 65 6e 65 72 61 74 65 20 64 61 74 61 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e ."Generate.data\n-------------\n
254e0 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 \n".......].....},.....{......."
25500 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 cell_type":."code",......."execu
25520 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 tion_count":.null,......."metada
25540 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 ta":.{........."collapsed":.fals
25560 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a e.......},......."outputs":.[],.
25580 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 20 4c 6f 61 ......"source":.[........."#.Loa
255a0 64 69 6e 67 20 69 6d 61 67 65 73 5c 6e 49 31 20 3d 20 70 6c 2e 69 6d 72 65 61 64 28 27 2e 2e 2f ding.images\nI1.=.pl.imread('../
255c0 64 61 74 61 2f 6f 63 65 61 6e 5f 64 61 79 2e 6a 70 67 27 29 2e 61 73 74 79 70 65 28 6e 70 2e 66 data/ocean_day.jpg').astype(np.f
255e0 6c 6f 61 74 36 34 29 20 2f 20 32 35 36 5c 6e 49 32 20 3d 20 70 6c 2e 69 6d 72 65 61 64 28 27 2e loat64)./.256\nI2.=.pl.imread('.
25600 2e 2f 64 61 74 61 2f 6f 63 65 61 6e 5f 73 75 6e 73 65 74 2e 6a 70 67 27 29 2e 61 73 74 79 70 65 ./data/ocean_sunset.jpg').astype
25620 28 6e 70 2e 66 6c 6f 61 74 36 34 29 20 2f 20 32 35 36 5c 6e 5c 6e 5c 6e 58 31 20 3d 20 69 6d 32 (np.float64)./.256\n\n\nX1.=.im2
25640 6d 61 74 28 49 31 29 5c 6e 58 32 20 3d 20 69 6d 32 6d 61 74 28 49 32 29 5c 6e 5c 6e 23 20 74 72 mat(I1)\nX2.=.im2mat(I2)\n\n#.tr
25660 61 69 6e 69 6e 67 20 73 61 6d 70 6c 65 73 5c 6e 6e 62 20 3d 20 31 30 30 30 5c 6e 69 64 78 31 20 aining.samples\nnb.=.1000\nidx1.
25680 3d 20 72 2e 72 61 6e 64 69 6e 74 28 58 31 2e 73 68 61 70 65 5b 30 5d 2c 20 73 69 7a 65 3d 28 6e =.r.randint(X1.shape[0],.size=(n
256a0 62 2c 29 29 5c 6e 69 64 78 32 20 3d 20 72 2e 72 61 6e 64 69 6e 74 28 58 32 2e 73 68 61 70 65 5b b,))\nidx2.=.r.randint(X2.shape[
256c0 30 5d 2c 20 73 69 7a 65 3d 28 6e 62 2c 29 29 5c 6e 5c 6e 58 73 20 3d 20 58 31 5b 69 64 78 31 2c 0],.size=(nb,))\n\nXs.=.X1[idx1,
256e0 20 3a 5d 5c 6e 58 74 20 3d 20 58 32 5b 69 64 78 32 2c 20 3a 5d 22 0a 20 20 20 20 20 20 5d 0a 20 .:]\nXt.=.X2[idx2,.:]".......]..
25700 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 ...},.....{......."cell_type":."
25720 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c markdown",......."metadata":.{},
25740 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 44 6f 6d 61 ......."source":.[........."Doma
25760 69 6e 20 61 64 61 70 74 61 74 69 6f 6e 20 66 6f 72 20 70 69 78 65 6c 20 64 69 73 74 72 69 62 75 in.adaptation.for.pixel.distribu
25780 74 69 6f 6e 20 74 72 61 6e 73 66 65 72 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d tion.transfer\n-----------------
257a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
257c0 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 \n\n".......].....},.....{......
257e0 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 ."cell_type":."code",......."exe
25800 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 cution_count":.null,......."meta
25820 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 data":.{........."collapsed":.fa
25840 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d lse.......},......."outputs":.[]
25860 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 20 45 ,......."source":.[........."#.E
25880 4d 44 54 72 61 6e 73 70 6f 72 74 5c 6e 6f 74 5f 65 6d 64 20 3d 20 6f 74 2e 64 61 2e 45 4d 44 54 MDTransport\not_emd.=.ot.da.EMDT
258a0 72 61 6e 73 70 6f 72 74 28 29 5c 6e 6f 74 5f 65 6d 64 2e 66 69 74 28 58 73 3d 58 73 2c 20 58 74 ransport()\not_emd.fit(Xs=Xs,.Xt
258c0 3d 58 74 29 5c 6e 74 72 61 6e 73 70 5f 58 73 5f 65 6d 64 20 3d 20 6f 74 5f 65 6d 64 2e 74 72 61 =Xt)\ntransp_Xs_emd.=.ot_emd.tra
258e0 6e 73 66 6f 72 6d 28 58 73 3d 58 31 29 5c 6e 49 6d 61 67 65 5f 65 6d 64 20 3d 20 6d 69 6e 6d 61 nsform(Xs=X1)\nImage_emd.=.minma
25900 78 28 6d 61 74 32 69 6d 28 74 72 61 6e 73 70 5f 58 73 5f 65 6d 64 2c 20 49 31 2e 73 68 61 70 65 x(mat2im(transp_Xs_emd,.I1.shape
25920 29 29 5c 6e 5c 6e 23 20 53 69 6e 6b 68 6f 72 6e 54 72 61 6e 73 70 6f 72 74 5c 6e 6f 74 5f 73 69 ))\n\n#.SinkhornTransport\not_si
25940 6e 6b 68 6f 72 6e 20 3d 20 6f 74 2e 64 61 2e 53 69 6e 6b 68 6f 72 6e 54 72 61 6e 73 70 6f 72 74 nkhorn.=.ot.da.SinkhornTransport
25960 28 72 65 67 5f 65 3d 31 65 2d 31 29 5c 6e 6f 74 5f 73 69 6e 6b 68 6f 72 6e 2e 66 69 74 28 58 73 (reg_e=1e-1)\not_sinkhorn.fit(Xs
25980 3d 58 73 2c 20 58 74 3d 58 74 29 5c 6e 74 72 61 6e 73 70 5f 58 73 5f 73 69 6e 6b 68 6f 72 6e 20 =Xs,.Xt=Xt)\ntransp_Xs_sinkhorn.
259a0 3d 20 6f 74 5f 73 69 6e 6b 68 6f 72 6e 2e 74 72 61 6e 73 66 6f 72 6d 28 58 73 3d 58 31 29 5c 6e =.ot_sinkhorn.transform(Xs=X1)\n
259c0 49 6d 61 67 65 5f 73 69 6e 6b 68 6f 72 6e 20 3d 20 6d 69 6e 6d 61 78 28 6d 61 74 32 69 6d 28 74 Image_sinkhorn.=.minmax(mat2im(t
259e0 72 61 6e 73 70 5f 58 73 5f 73 69 6e 6b 68 6f 72 6e 2c 20 49 31 2e 73 68 61 70 65 29 29 5c 6e 5c ransp_Xs_sinkhorn,.I1.shape))\n\
25a00 6e 6f 74 5f 6d 61 70 70 69 6e 67 5f 6c 69 6e 65 61 72 20 3d 20 6f 74 2e 64 61 2e 4d 61 70 70 69 not_mapping_linear.=.ot.da.Mappi
25a20 6e 67 54 72 61 6e 73 70 6f 72 74 28 5c 6e 20 20 20 20 6d 75 3d 31 65 30 2c 20 65 74 61 3d 31 65 ngTransport(\n....mu=1e0,.eta=1e
25a40 2d 38 2c 20 62 69 61 73 3d 54 72 75 65 2c 20 6d 61 78 5f 69 74 65 72 3d 32 30 2c 20 76 65 72 62 -8,.bias=True,.max_iter=20,.verb
25a60 6f 73 65 3d 54 72 75 65 29 5c 6e 6f 74 5f 6d 61 70 70 69 6e 67 5f 6c 69 6e 65 61 72 2e 66 69 74 ose=True)\not_mapping_linear.fit
25a80 28 58 73 3d 58 73 2c 20 58 74 3d 58 74 29 5c 6e 5c 6e 58 31 74 6c 20 3d 20 6f 74 5f 6d 61 70 70 (Xs=Xs,.Xt=Xt)\n\nX1tl.=.ot_mapp
25aa0 69 6e 67 5f 6c 69 6e 65 61 72 2e 74 72 61 6e 73 66 6f 72 6d 28 58 73 3d 58 31 29 5c 6e 49 6d 61 ing_linear.transform(Xs=X1)\nIma
25ac0 67 65 5f 6d 61 70 70 69 6e 67 5f 6c 69 6e 65 61 72 20 3d 20 6d 69 6e 6d 61 78 28 6d 61 74 32 69 ge_mapping_linear.=.minmax(mat2i
25ae0 6d 28 58 31 74 6c 2c 20 49 31 2e 73 68 61 70 65 29 29 5c 6e 5c 6e 6f 74 5f 6d 61 70 70 69 6e 67 m(X1tl,.I1.shape))\n\not_mapping
25b00 5f 67 61 75 73 73 69 61 6e 20 3d 20 6f 74 2e 64 61 2e 4d 61 70 70 69 6e 67 54 72 61 6e 73 70 6f _gaussian.=.ot.da.MappingTranspo
25b20 72 74 28 5c 6e 20 20 20 20 6d 75 3d 31 65 30 2c 20 65 74 61 3d 31 65 2d 32 2c 20 73 69 67 6d 61 rt(\n....mu=1e0,.eta=1e-2,.sigma
25b40 3d 31 2c 20 62 69 61 73 3d 46 61 6c 73 65 2c 20 6d 61 78 5f 69 74 65 72 3d 31 30 2c 20 76 65 72 =1,.bias=False,.max_iter=10,.ver
25b60 62 6f 73 65 3d 54 72 75 65 29 5c 6e 6f 74 5f 6d 61 70 70 69 6e 67 5f 67 61 75 73 73 69 61 6e 2e bose=True)\not_mapping_gaussian.
25b80 66 69 74 28 58 73 3d 58 73 2c 20 58 74 3d 58 74 29 5c 6e 5c 6e 58 31 74 6e 20 3d 20 6f 74 5f 6d fit(Xs=Xs,.Xt=Xt)\n\nX1tn.=.ot_m
25ba0 61 70 70 69 6e 67 5f 67 61 75 73 73 69 61 6e 2e 74 72 61 6e 73 66 6f 72 6d 28 58 73 3d 58 31 29 apping_gaussian.transform(Xs=X1)
25bc0 20 20 23 20 75 73 65 20 74 68 65 20 65 73 74 69 6d 61 74 65 64 20 6d 61 70 70 69 6e 67 5c 6e 49 ..#.use.the.estimated.mapping\nI
25be0 6d 61 67 65 5f 6d 61 70 70 69 6e 67 5f 67 61 75 73 73 69 61 6e 20 3d 20 6d 69 6e 6d 61 78 28 6d mage_mapping_gaussian.=.minmax(m
25c00 61 74 32 69 6d 28 58 31 74 6e 2c 20 49 31 2e 73 68 61 70 65 29 29 22 0a 20 20 20 20 20 20 5d 0a at2im(X1tn,.I1.shape))".......].
25c20 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 ....},.....{......."cell_type":.
25c40 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d "markdown",......."metadata":.{}
25c60 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 50 6c 6f ,......."source":.[........."Plo
25c80 74 20 6f 72 69 67 69 6e 61 6c 20 69 6d 61 67 65 73 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d t.original.images\n-------------
25ca0 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 -------\n\n".......].....},.....
25cc0 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 {......."cell_type":."code",....
25ce0 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 ..."execution_count":.null,.....
25d00 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 .."metadata":.{........."collaps
25d20 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 ed":.false.......},......."outpu
25d40 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 ts":.[],......."source":.[......
25d60 20 20 20 22 70 6c 2e 66 69 67 75 72 65 28 31 2c 20 66 69 67 73 69 7a 65 3d 28 36 2e 34 2c 20 33 ..."pl.figure(1,.figsize=(6.4,.3
25d80 29 29 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 20 32 2c 20 31 29 5c 6e 70 6c 2e 69 6d 73 68 ))\npl.subplot(1,.2,.1)\npl.imsh
25da0 6f 77 28 49 31 29 5c 6e 70 6c 2e 61 78 69 73 28 27 6f 66 66 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 ow(I1)\npl.axis('off')\npl.title
25dc0 28 27 49 6d 61 67 65 20 31 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 20 32 2c 20 ('Image.1')\n\npl.subplot(1,.2,.
25de0 32 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 49 32 29 5c 6e 70 6c 2e 61 78 69 73 28 27 6f 66 66 27 2)\npl.imshow(I2)\npl.axis('off'
25e00 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 49 6d 61 67 65 20 32 27 29 5c 6e 70 6c 2e 74 69 67 68 74 )\npl.title('Image.2')\npl.tight
25e20 5f 6c 61 79 6f 75 74 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a _layout()".......].....},.....{.
25e40 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 ......"cell_type":."markdown",..
25e60 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 ....."metadata":.{},......."sour
25e80 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 50 6c 6f 74 20 70 69 78 65 6c 20 76 61 6c 75 65 ce":.[........."Plot.pixel.value
25ea0 73 20 64 69 73 74 72 69 62 75 74 69 6f 6e 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d s.distribution\n----------------
25ec0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 --------------\n\n".......].....
25ee0 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 },.....{......."cell_type":."cod
25f00 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c e",......."execution_count":.nul
25f20 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 l,......."metadata":.{........."
25f40 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 collapsed":.false.......},......
25f60 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 ."outputs":.[],......."source":.
25f80 5b 0a 20 20 20 20 20 20 20 20 22 70 6c 2e 66 69 67 75 72 65 28 32 2c 20 66 69 67 73 69 7a 65 3d [........."pl.figure(2,.figsize=
25fa0 28 36 2e 34 2c 20 35 29 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 31 2c 20 32 2c 20 31 29 (6.4,.5))\n\npl.subplot(1,.2,.1)
25fc0 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 58 73 5b 3a 2c 20 30 5d 2c 20 58 73 5b 3a 2c 20 32 5d 2c \npl.scatter(Xs[:,.0],.Xs[:,.2],
25fe0 20 63 3d 58 73 29 5c 6e 70 6c 2e 61 78 69 73 28 5b 30 2c 20 31 2c 20 30 2c 20 31 5d 29 5c 6e 70 .c=Xs)\npl.axis([0,.1,.0,.1])\np
26000 6c 2e 78 6c 61 62 65 6c 28 27 52 65 64 27 29 5c 6e 70 6c 2e 79 6c 61 62 65 6c 28 27 42 6c 75 65 l.xlabel('Red')\npl.ylabel('Blue
26020 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 49 6d 61 67 65 20 31 27 29 5c 6e 5c 6e 70 6c 2e 73 75 ')\npl.title('Image.1')\n\npl.su
26040 62 70 6c 6f 74 28 31 2c 20 32 2c 20 32 29 5c 6e 70 6c 2e 73 63 61 74 74 65 72 28 58 74 5b 3a 2c bplot(1,.2,.2)\npl.scatter(Xt[:,
26060 20 30 5d 2c 20 58 74 5b 3a 2c 20 32 5d 2c 20 63 3d 58 74 29 5c 6e 70 6c 2e 61 78 69 73 28 5b 30 .0],.Xt[:,.2],.c=Xt)\npl.axis([0
26080 2c 20 31 2c 20 30 2c 20 31 5d 29 5c 6e 70 6c 2e 78 6c 61 62 65 6c 28 27 52 65 64 27 29 5c 6e 70 ,.1,.0,.1])\npl.xlabel('Red')\np
260a0 6c 2e 79 6c 61 62 65 6c 28 27 42 6c 75 65 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 49 6d 61 67 l.ylabel('Blue')\npl.title('Imag
260c0 65 20 32 27 29 5c 6e 70 6c 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 22 0a 20 20 20 20 20 20 e.2')\npl.tight_layout()".......
260e0 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 ].....},.....{......."cell_type"
26100 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 :."markdown",......."metadata":.
26120 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 50 {},......."source":.[........."P
26140 6c 6f 74 20 74 72 61 6e 73 66 6f 72 6d 65 64 20 69 6d 61 67 65 73 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d lot.transformed.images\n--------
26160 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 ---------------\n\n".......]....
26180 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f .},.....{......."cell_type":."co
261a0 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 de",......."execution_count":.nu
261c0 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 ll,......."metadata":.{.........
261e0 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 "collapsed":.false.......},.....
26200 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a .."outputs":.[],......."source":
26220 20 5b 0a 20 20 20 20 20 20 20 20 22 70 6c 2e 66 69 67 75 72 65 28 32 2c 20 66 69 67 73 69 7a 65 .[........."pl.figure(2,.figsize
26240 3d 28 31 30 2c 20 35 29 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 33 2c 20 31 29 =(10,.5))\n\npl.subplot(2,.3,.1)
26260 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 49 31 29 5c 6e 70 6c 2e 61 78 69 73 28 27 6f 66 66 27 29 5c \npl.imshow(I1)\npl.axis('off')\
26280 6e 70 6c 2e 74 69 74 6c 65 28 27 49 6d 2e 20 31 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 npl.title('Im..1')\n\npl.subplot
262a0 28 32 2c 20 33 2c 20 34 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 49 32 29 5c 6e 70 6c 2e 61 78 69 (2,.3,.4)\npl.imshow(I2)\npl.axi
262c0 73 28 27 6f 66 66 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 49 6d 2e 20 32 27 29 5c 6e 5c 6e 70 s('off')\npl.title('Im..2')\n\np
262e0 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 33 2c 20 32 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 49 6d l.subplot(2,.3,.2)\npl.imshow(Im
26300 61 67 65 5f 65 6d 64 29 5c 6e 70 6c 2e 61 78 69 73 28 27 6f 66 66 27 29 5c 6e 70 6c 2e 74 69 74 age_emd)\npl.axis('off')\npl.tit
26320 6c 65 28 27 45 6d 64 54 72 61 6e 73 70 6f 72 74 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 le('EmdTransport')\n\npl.subplot
26340 28 32 2c 20 33 2c 20 35 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 49 6d 61 67 65 5f 73 69 6e 6b 68 (2,.3,.5)\npl.imshow(Image_sinkh
26360 6f 72 6e 29 5c 6e 70 6c 2e 61 78 69 73 28 27 6f 66 66 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 orn)\npl.axis('off')\npl.title('
26380 53 69 6e 6b 68 6f 72 6e 54 72 61 6e 73 70 6f 72 74 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f SinkhornTransport')\n\npl.subplo
263a0 74 28 32 2c 20 33 2c 20 33 29 5c 6e 70 6c 2e 69 6d 73 68 6f 77 28 49 6d 61 67 65 5f 6d 61 70 70 t(2,.3,.3)\npl.imshow(Image_mapp
263c0 69 6e 67 5f 6c 69 6e 65 61 72 29 5c 6e 70 6c 2e 61 78 69 73 28 27 6f 66 66 27 29 5c 6e 70 6c 2e ing_linear)\npl.axis('off')\npl.
263e0 74 69 74 6c 65 28 27 4d 61 70 70 69 6e 67 54 72 61 6e 73 70 6f 72 74 20 28 6c 69 6e 65 61 72 29 title('MappingTransport.(linear)
26400 27 29 5c 6e 5c 6e 70 6c 2e 73 75 62 70 6c 6f 74 28 32 2c 20 33 2c 20 36 29 5c 6e 70 6c 2e 69 6d ')\n\npl.subplot(2,.3,.6)\npl.im
26420 73 68 6f 77 28 49 6d 61 67 65 5f 6d 61 70 70 69 6e 67 5f 67 61 75 73 73 69 61 6e 29 5c 6e 70 6c show(Image_mapping_gaussian)\npl
26440 2e 61 78 69 73 28 27 6f 66 66 27 29 5c 6e 70 6c 2e 74 69 74 6c 65 28 27 4d 61 70 70 69 6e 67 54 .axis('off')\npl.title('MappingT
26460 72 61 6e 73 70 6f 72 74 20 28 67 61 75 73 73 69 61 6e 29 27 29 5c 6e 70 6c 2e 74 69 67 68 74 5f ransport.(gaussian)')\npl.tight_
26480 6c 61 79 6f 75 74 28 29 5c 6e 5c 6e 70 6c 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 layout()\n\npl.show()".......]..
264a0 20 20 20 7d 0a 20 20 5d 2c 0a 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 22 6b ...}...],..."metadata":.{....."k
264c0 65 72 6e 65 6c 73 70 65 63 22 3a 20 7b 0a 20 20 20 20 20 20 22 64 69 73 70 6c 61 79 5f 6e 61 6d ernelspec":.{......."display_nam
264e0 65 22 3a 20 22 50 79 74 68 6f 6e 20 33 22 2c 0a 20 20 20 20 20 20 22 6c 61 6e 67 75 61 67 65 22 e":."Python.3",......."language"
26500 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f :."python",......."name":."pytho
26520 6e 33 22 0a 20 20 20 20 7d 2c 0a 20 20 20 20 22 6c 61 6e 67 75 61 67 65 5f 69 6e 66 6f 22 3a 20 n3".....},....."language_info":.
26540 7b 0a 20 20 20 20 20 20 22 63 6f 64 65 6d 69 72 72 6f 72 5f 6d 6f 64 65 22 3a 20 7b 0a 20 20 20 {......."codemirror_mode":.{....
26560 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 69 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 20 20 ....."name":."ipython",.........
26580 22 76 65 72 73 69 6f 6e 22 3a 20 33 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 66 69 6c "version":.3.......},......."fil
265a0 65 5f 65 78 74 65 6e 73 69 6f 6e 22 3a 20 22 2e 70 79 22 2c 0a 20 20 20 20 20 20 22 6d 69 6d 65 e_extension":.".py",......."mime
265c0 74 79 70 65 22 3a 20 22 74 65 78 74 2f 78 2d 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e type":."text/x-python",......."n
265e0 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 62 63 6f 6e 76 65 72 74 ame":."python",......."nbconvert
26600 5f 65 78 70 6f 72 74 65 72 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 70 79 67 _exporter":."python",......."pyg
26620 6d 65 6e 74 73 5f 6c 65 78 65 72 22 3a 20 22 69 70 79 74 68 6f 6e 33 22 2c 0a 20 20 20 20 20 20 ments_lexer":."ipython3",.......
26640 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 36 2e 39 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 "version":."3.6.9".....}...},...
26660 22 6e 62 66 6f 72 6d 61 74 22 3a 20 34 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 5f 6d 69 6e 6f 72 "nbformat":.4,..."nbformat_minor
26680 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 04 78 94 50 3b 32 15 4c 06 23 00 00 06 23 00 00 ":.0.}PK.........x.P;2.L.#...#..
266a0 1c 00 00 00 70 6c 6f 74 5f 67 72 6f 6d 6f 76 5f 62 61 72 79 63 65 6e 74 65 72 2e 69 70 79 6e 62 ....plot_gromov_barycenter.ipynb
266c0 7b 0a 20 20 22 63 65 6c 6c 73 22 3a 20 5b 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c {..."cells":.[.....{......."cell
266e0 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e _type":."code",......."execution
26700 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a _count":.null,......."metadata":
26720 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 .{........."collapsed":.false...
26740 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 ....},......."outputs":.[],.....
26760 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 25 6d 61 74 70 6c 6f 74 6c .."source":.[........."%matplotl
26780 69 62 20 69 6e 6c 69 6e 65 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a ib.inline".......].....},.....{.
267a0 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 ......"cell_type":."markdown",..
267c0 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 ....."metadata":.{},......."sour
267e0 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 47 72 6f 6d 6f 76 2d 57 61 73 73 65 ce":.[........."\n#.Gromov-Wasse
26800 72 73 74 65 69 6e 20 42 61 72 79 63 65 6e 74 65 72 20 65 78 61 6d 70 6c 65 5c 6e 5c 6e 5c 6e 54 rstein.Barycenter.example\n\n\nT
26820 68 69 73 20 65 78 61 6d 70 6c 65 20 69 73 20 64 65 73 69 67 6e 65 64 20 74 6f 20 73 68 6f 77 20 his.example.is.designed.to.show.
26840 68 6f 77 20 74 6f 20 75 73 65 20 74 68 65 20 47 72 6f 6d 6f 76 2d 57 61 73 73 65 72 73 74 65 69 how.to.use.the.Gromov-Wasserstei
26860 6e 20 64 69 73 74 61 6e 63 65 5c 6e 63 6f 6d 70 75 74 61 74 69 6f 6e 20 69 6e 20 50 4f 54 2e 5c n.distance\ncomputation.in.POT.\
26880 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 n\n".......].....},.....{.......
268a0 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 "cell_type":."code",......."exec
268c0 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 ution_count":.null,......."metad
268e0 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c ata":.{........."collapsed":.fal
26900 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c se.......},......."outputs":.[],
26920 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 20 41 75 ......."source":.[........."#.Au
26940 74 68 6f 72 3a 20 45 72 77 61 6e 20 56 61 75 74 69 65 72 20 3c 65 72 77 61 6e 2e 76 61 75 74 69 thor:.Erwan.Vautier.<erwan.vauti
26960 65 72 40 67 6d 61 69 6c 2e 63 6f 6d 3e 5c 6e 23 20 20 20 20 20 20 20 20 20 4e 69 63 6f 6c 61 73 er@gmail.com>\n#.........Nicolas
26980 20 43 6f 75 72 74 79 20 3c 6e 63 6f 75 72 74 79 40 69 72 69 73 61 2e 66 72 3e 5c 6e 23 5c 6e 23 .Courty.<ncourty@irisa.fr>\n#\n#
269a0 20 4c 69 63 65 6e 73 65 3a 20 4d 49 54 20 4c 69 63 65 6e 73 65 5c 6e 5c 6e 5c 6e 69 6d 70 6f 72 .License:.MIT.License\n\n\nimpor
269c0 74 20 6e 75 6d 70 79 20 61 73 20 6e 70 5c 6e 69 6d 70 6f 72 74 20 73 63 69 70 79 20 61 73 20 73 t.numpy.as.np\nimport.scipy.as.s
269e0 70 5c 6e 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 6c 61 62 20 61 73 20 p\n\nimport.matplotlib.pylab.as.
26a00 70 6c 5c 6e 66 72 6f 6d 20 73 6b 6c 65 61 72 6e 20 69 6d 70 6f 72 74 20 6d 61 6e 69 66 6f 6c 64 pl\nfrom.sklearn.import.manifold
26a20 5c 6e 66 72 6f 6d 20 73 6b 6c 65 61 72 6e 2e 64 65 63 6f 6d 70 6f 73 69 74 69 6f 6e 20 69 6d 70 \nfrom.sklearn.decomposition.imp
26a40 6f 72 74 20 50 43 41 5c 6e 5c 6e 69 6d 70 6f 72 74 20 6f 74 22 0a 20 20 20 20 20 20 5d 0a 20 20 ort.PCA\n\nimport.ot".......]...
26a60 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d ..},.....{......."cell_type":."m
26a80 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a arkdown",......."metadata":.{},.
26aa0 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 53 6d 61 63 6f ......"source":.[........."Smaco
26ac0 66 20 4d 44 53 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 54 68 69 73 20 66 75 6e 63 74 69 f.MDS\n----------\n\nThis.functi
26ae0 6f 6e 20 61 6c 6c 6f 77 73 20 74 6f 20 66 69 6e 64 20 61 6e 20 65 6d 62 65 64 64 69 6e 67 20 6f on.allows.to.find.an.embedding.o
26b00 66 20 70 6f 69 6e 74 73 20 67 69 76 65 6e 20 61 20 64 69 73 73 69 6d 69 6c 61 72 69 74 79 20 6d f.points.given.a.dissimilarity.m
26b20 61 74 72 69 78 5c 6e 74 68 61 74 20 77 69 6c 6c 20 62 65 20 67 69 76 65 6e 20 62 79 20 74 68 65 atrix\nthat.will.be.given.by.the
26b40 20 6f 75 74 70 75 74 20 6f 66 20 74 68 65 20 61 6c 67 6f 72 69 74 68 6d 5c 6e 5c 6e 22 0a 20 20 .output.of.the.algorithm\n\n"...
26b60 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 ....].....},.....{......."cell_t
26b80 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 ype":."code",......."execution_c
26ba0 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b ount":.null,......."metadata":.{
26bc0 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 ........."collapsed":.false.....
26be0 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 ..},......."outputs":.[],.......
26c00 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 64 65 66 20 73 6d 61 63 6f 66 5f "source":.[........."def.smacof_
26c20 6d 64 73 28 43 2c 20 64 69 6d 2c 20 6d 61 78 5f 69 74 65 72 3d 33 30 30 30 2c 20 65 70 73 3d 31 mds(C,.dim,.max_iter=3000,.eps=1
26c40 65 2d 39 29 3a 5c 6e 20 20 20 20 5c 22 5c 22 5c 22 5c 6e 20 20 20 20 52 65 74 75 72 6e 73 20 61 e-9):\n....\"\"\"\n....Returns.a
26c60 6e 20 69 6e 74 65 72 70 6f 6c 61 74 65 64 20 70 6f 69 6e 74 20 63 6c 6f 75 64 20 66 6f 6c 6c 6f n.interpolated.point.cloud.follo
26c80 77 69 6e 67 20 74 68 65 20 64 69 73 73 69 6d 69 6c 61 72 69 74 79 20 6d 61 74 72 69 78 20 43 5c wing.the.dissimilarity.matrix.C\
26ca0 6e 20 20 20 20 75 73 69 6e 67 20 53 4d 41 43 4f 46 20 6d 75 6c 74 69 64 69 6d 65 6e 73 69 6f 6e n....using.SMACOF.multidimension
26cc0 61 6c 20 73 63 61 6c 69 6e 67 20 28 4d 44 53 29 20 69 6e 20 73 70 65 63 69 66 69 63 20 64 69 6d al.scaling.(MDS).in.specific.dim
26ce0 65 6e 73 69 6f 6e 6e 65 64 5c 6e 20 20 20 20 74 61 72 67 65 74 20 73 70 61 63 65 5c 6e 5c 6e 20 ensionned\n....target.space\n\n.
26d00 20 20 20 50 61 72 61 6d 65 74 65 72 73 5c 6e 20 20 20 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 20 ...Parameters\n....----------\n.
26d20 20 20 20 43 20 3a 20 6e 64 61 72 72 61 79 2c 20 73 68 61 70 65 20 28 6e 73 2c 20 6e 73 29 5c 6e ...C.:.ndarray,.shape.(ns,.ns)\n
26d40 20 20 20 20 20 20 20 20 64 69 73 73 69 6d 69 6c 61 72 69 74 79 20 6d 61 74 72 69 78 5c 6e 20 20 ........dissimilarity.matrix\n..
26d60 20 20 64 69 6d 20 3a 20 69 6e 74 5c 6e 20 20 20 20 20 20 20 20 20 20 64 69 6d 65 6e 73 69 6f 6e ..dim.:.int\n..........dimension
26d80 20 6f 66 20 74 68 65 20 74 61 72 67 65 74 65 64 20 73 70 61 63 65 5c 6e 20 20 20 20 6d 61 78 5f .of.the.targeted.space\n....max_
26da0 69 74 65 72 20 3a 20 20 69 6e 74 5c 6e 20 20 20 20 20 20 20 20 4d 61 78 69 6d 75 6d 20 6e 75 6d iter.:..int\n........Maximum.num
26dc0 62 65 72 20 6f 66 20 69 74 65 72 61 74 69 6f 6e 73 20 6f 66 20 74 68 65 20 53 4d 41 43 4f 46 20 ber.of.iterations.of.the.SMACOF.
26de0 61 6c 67 6f 72 69 74 68 6d 20 66 6f 72 20 61 20 73 69 6e 67 6c 65 20 72 75 6e 5c 6e 20 20 20 20 algorithm.for.a.single.run\n....
26e00 65 70 73 20 3a 20 66 6c 6f 61 74 5c 6e 20 20 20 20 20 20 20 20 72 65 6c 61 74 69 76 65 20 74 6f eps.:.float\n........relative.to
26e20 6c 65 72 61 6e 63 65 20 77 2e 72 2e 74 20 73 74 72 65 73 73 20 74 6f 20 64 65 63 6c 61 72 65 20 lerance.w.r.t.stress.to.declare.
26e40 63 6f 6e 76 65 72 67 65 5c 6e 5c 6e 20 20 20 20 52 65 74 75 72 6e 73 5c 6e 20 20 20 20 2d 2d 2d converge\n\n....Returns\n....---
26e60 2d 2d 2d 2d 5c 6e 20 20 20 20 6e 70 6f 73 20 3a 20 6e 64 61 72 72 61 79 2c 20 73 68 61 70 65 20 ----\n....npos.:.ndarray,.shape.
26e80 28 52 2c 20 64 69 6d 29 5c 6e 20 20 20 20 20 20 20 20 20 20 20 45 6d 62 65 64 64 65 64 20 63 6f (R,.dim)\n...........Embedded.co
26ea0 6f 72 64 69 6e 61 74 65 73 20 6f 66 20 74 68 65 20 69 6e 74 65 72 70 6f 6c 61 74 65 64 20 70 6f ordinates.of.the.interpolated.po
26ec0 69 6e 74 20 63 6c 6f 75 64 20 28 64 65 66 69 6e 65 64 20 77 69 74 68 5c 6e 20 20 20 20 20 20 20 int.cloud.(defined.with\n.......
26ee0 20 20 20 20 6f 6e 65 20 69 73 6f 6d 65 74 72 79 29 5c 6e 20 20 20 20 5c 22 5c 22 5c 22 5c 6e 5c ....one.isometry)\n....\"\"\"\n\
26f00 6e 20 20 20 20 72 6e 67 20 3d 20 6e 70 2e 72 61 6e 64 6f 6d 2e 52 61 6e 64 6f 6d 53 74 61 74 65 n....rng.=.np.random.RandomState
26f20 28 73 65 65 64 3d 33 29 5c 6e 5c 6e 20 20 20 20 6d 64 73 20 3d 20 6d 61 6e 69 66 6f 6c 64 2e 4d (seed=3)\n\n....mds.=.manifold.M
26f40 44 53 28 5c 6e 20 20 20 20 20 20 20 20 64 69 6d 2c 5c 6e 20 20 20 20 20 20 20 20 6d 61 78 5f 69 DS(\n........dim,\n........max_i
26f60 74 65 72 3d 6d 61 78 5f 69 74 65 72 2c 5c 6e 20 20 20 20 20 20 20 20 65 70 73 3d 31 65 2d 39 2c ter=max_iter,\n........eps=1e-9,
26f80 5c 6e 20 20 20 20 20 20 20 20 64 69 73 73 69 6d 69 6c 61 72 69 74 79 3d 27 70 72 65 63 6f 6d 70 \n........dissimilarity='precomp
26fa0 75 74 65 64 27 2c 5c 6e 20 20 20 20 20 20 20 20 6e 5f 69 6e 69 74 3d 31 29 5c 6e 20 20 20 20 70 uted',\n........n_init=1)\n....p
26fc0 6f 73 20 3d 20 6d 64 73 2e 66 69 74 28 43 29 2e 65 6d 62 65 64 64 69 6e 67 5f 5c 6e 5c 6e 20 20 os.=.mds.fit(C).embedding_\n\n..
26fe0 20 20 6e 6d 64 73 20 3d 20 6d 61 6e 69 66 6f 6c 64 2e 4d 44 53 28 5c 6e 20 20 20 20 20 20 20 20 ..nmds.=.manifold.MDS(\n........
27000 32 2c 5c 6e 20 20 20 20 20 20 20 20 6d 61 78 5f 69 74 65 72 3d 6d 61 78 5f 69 74 65 72 2c 5c 6e 2,\n........max_iter=max_iter,\n
27020 20 20 20 20 20 20 20 20 65 70 73 3d 31 65 2d 39 2c 5c 6e 20 20 20 20 20 20 20 20 64 69 73 73 69 ........eps=1e-9,\n........dissi
27040 6d 69 6c 61 72 69 74 79 3d 5c 22 70 72 65 63 6f 6d 70 75 74 65 64 5c 22 2c 5c 6e 20 20 20 20 20 milarity=\"precomputed\",\n.....
27060 20 20 20 72 61 6e 64 6f 6d 5f 73 74 61 74 65 3d 72 6e 67 2c 5c 6e 20 20 20 20 20 20 20 20 6e 5f ...random_state=rng,\n........n_
27080 69 6e 69 74 3d 31 29 5c 6e 20 20 20 20 6e 70 6f 73 20 3d 20 6e 6d 64 73 2e 66 69 74 5f 74 72 61 init=1)\n....npos.=.nmds.fit_tra
270a0 6e 73 66 6f 72 6d 28 43 2c 20 69 6e 69 74 3d 70 6f 73 29 5c 6e 5c 6e 20 20 20 20 72 65 74 75 72 nsform(C,.init=pos)\n\n....retur
270c0 6e 20 6e 70 6f 73 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 n.npos".......].....},.....{....
270e0 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 ..."cell_type":."markdown",.....
27100 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 .."metadata":.{},......."source"
27120 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 44 61 74 61 20 70 72 65 70 61 72 61 74 69 6f 6e 5c 6e 2d :.[........."Data.preparation\n-
27140 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 54 68 65 20 66 6f 75 72 20 64 69 73 74 ---------------\n\nThe.four.dist
27160 72 69 62 75 74 69 6f 6e 73 20 61 72 65 20 63 6f 6e 73 74 72 75 63 74 65 64 20 66 72 6f 6d 20 34 ributions.are.constructed.from.4
27180 20 73 69 6d 70 6c 65 20 69 6d 61 67 65 73 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 .simple.images\n\n".......].....
271a0 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 },.....{......."cell_type":."cod
271c0 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c e",......."execution_count":.nul
271e0 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 l,......."metadata":.{........."
27200 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 collapsed":.false.......},......
27220 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 ."outputs":.[],......."source":.
27240 5b 0a 20 20 20 20 20 20 20 20 22 64 65 66 20 69 6d 32 6d 61 74 28 49 29 3a 5c 6e 20 20 20 20 5c [........."def.im2mat(I):\n....\
27260 22 5c 22 5c 22 43 6f 6e 76 65 72 74 73 20 61 6e 64 20 69 6d 61 67 65 20 74 6f 20 6d 61 74 72 69 "\"\"Converts.and.image.to.matri
27280 78 20 28 6f 6e 65 20 70 69 78 65 6c 20 70 65 72 20 6c 69 6e 65 29 5c 22 5c 22 5c 22 5c 6e 20 20 x.(one.pixel.per.line)\"\"\"\n..
272a0 20 20 72 65 74 75 72 6e 20 49 2e 72 65 73 68 61 70 65 28 28 49 2e 73 68 61 70 65 5b 30 5d 20 2a ..return.I.reshape((I.shape[0].*
272c0 20 49 2e 73 68 61 70 65 5b 31 5d 2c 20 49 2e 73 68 61 70 65 5b 32 5d 29 29 5c 6e 5c 6e 5c 6e 73 .I.shape[1],.I.shape[2]))\n\n\ns
272e0 71 75 61 72 65 20 3d 20 70 6c 2e 69 6d 72 65 61 64 28 27 2e 2e 2f 64 61 74 61 2f 73 71 75 61 72 quare.=.pl.imread('../data/squar
27300 65 2e 70 6e 67 27 29 2e 61 73 74 79 70 65 28 6e 70 2e 66 6c 6f 61 74 36 34 29 5b 3a 2c 20 3a 2c e.png').astype(np.float64)[:,.:,
27320 20 32 5d 20 2f 20 32 35 36 5c 6e 63 72 6f 73 73 20 3d 20 70 6c 2e 69 6d 72 65 61 64 28 27 2e 2e .2]./.256\ncross.=.pl.imread('..
27340 2f 64 61 74 61 2f 63 72 6f 73 73 2e 70 6e 67 27 29 2e 61 73 74 79 70 65 28 6e 70 2e 66 6c 6f 61 /data/cross.png').astype(np.floa
27360 74 36 34 29 5b 3a 2c 20 3a 2c 20 32 5d 20 2f 20 32 35 36 5c 6e 74 72 69 61 6e 67 6c 65 20 3d 20 t64)[:,.:,.2]./.256\ntriangle.=.
27380 70 6c 2e 69 6d 72 65 61 64 28 27 2e 2e 2f 64 61 74 61 2f 74 72 69 61 6e 67 6c 65 2e 70 6e 67 27 pl.imread('../data/triangle.png'
273a0 29 2e 61 73 74 79 70 65 28 6e 70 2e 66 6c 6f 61 74 36 34 29 5b 3a 2c 20 3a 2c 20 32 5d 20 2f 20 ).astype(np.float64)[:,.:,.2]./.
273c0 32 35 36 5c 6e 73 74 61 72 20 3d 20 70 6c 2e 69 6d 72 65 61 64 28 27 2e 2e 2f 64 61 74 61 2f 73 256\nstar.=.pl.imread('../data/s
273e0 74 61 72 2e 70 6e 67 27 29 2e 61 73 74 79 70 65 28 6e 70 2e 66 6c 6f 61 74 36 34 29 5b 3a 2c 20 tar.png').astype(np.float64)[:,.
27400 3a 2c 20 32 5d 20 2f 20 32 35 36 5c 6e 5c 6e 73 68 61 70 65 73 20 3d 20 5b 73 71 75 61 72 65 2c :,.2]./.256\n\nshapes.=.[square,
27420 20 63 72 6f 73 73 2c 20 74 72 69 61 6e 67 6c 65 2c 20 73 74 61 72 5d 5c 6e 5c 6e 53 20 3d 20 34 .cross,.triangle,.star]\n\nS.=.4
27440 5c 6e 78 73 20 3d 20 5b 5b 5d 20 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 65 28 53 29 5d 5c 6e 5c \nxs.=.[[].for.i.in.range(S)]\n\
27460 6e 5c 6e 66 6f 72 20 6e 62 20 69 6e 20 72 61 6e 67 65 28 34 29 3a 5c 6e 20 20 20 20 66 6f 72 20 n\nfor.nb.in.range(4):\n....for.
27480 69 20 69 6e 20 72 61 6e 67 65 28 38 29 3a 5c 6e 20 20 20 20 20 20 20 20 66 6f 72 20 6a 20 69 6e i.in.range(8):\n........for.j.in
274a0 20 72 61 6e 67 65 28 38 29 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 73 68 61 70 65 .range(8):\n............if.shape
274c0 73 5b 6e 62 5d 5b 69 2c 20 6a 5d 20 3c 20 30 2e 39 35 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 s[nb][i,.j].<.0.95:\n...........
274e0 20 20 20 20 20 78 73 5b 6e 62 5d 2e 61 70 70 65 6e 64 28 5b 6a 2c 20 38 20 2d 20 69 5d 29 5c 6e .....xs[nb].append([j,.8.-.i])\n
27500 5c 6e 78 73 20 3d 20 6e 70 2e 61 72 72 61 79 28 5b 6e 70 2e 61 72 72 61 79 28 78 73 5b 30 5d 29 \nxs.=.np.array([np.array(xs[0])
27520 2c 20 6e 70 2e 61 72 72 61 79 28 78 73 5b 31 5d 29 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 ,.np.array(xs[1]),\n............
27540 20 20 20 6e 70 2e 61 72 72 61 79 28 78 73 5b 32 5d 29 2c 20 6e 70 2e 61 72 72 61 79 28 78 73 5b ...np.array(xs[2]),.np.array(xs[
27560 33 5d 29 5d 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 3])])".......].....},.....{.....
27580 20 20 22 63 65 6c 6c 5f 74 79 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 .."cell_type":."markdown",......
275a0 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a ."metadata":.{},......."source":
275c0 20 5b 0a 20 20 20 20 20 20 20 20 22 42 61 72 79 63 65 6e 74 65 72 20 63 6f 6d 70 75 74 61 74 69 .[........."Barycenter.computati
275e0 6f 6e 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 5c 6e 22 0a on\n----------------------\n\n".
27600 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c ......].....},.....{......."cell
27620 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 6f 6e _type":."code",......."execution
27640 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 22 3a _count":.null,......."metadata":
27660 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a 20 20 .{........."collapsed":.false...
27680 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 20 20 ....},......."outputs":.[],.....
276a0 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 6e 73 20 3d 20 5b 6c 65 6e .."source":.[........."ns.=.[len
276c0 28 78 73 5b 73 5d 29 20 66 6f 72 20 73 20 69 6e 20 72 61 6e 67 65 28 53 29 5d 5c 6e 6e 5f 73 61 (xs[s]).for.s.in.range(S)]\nn_sa
276e0 6d 70 6c 65 73 20 3d 20 33 30 5c 6e 5c 6e 5c 22 5c 22 5c 22 43 6f 6d 70 75 74 65 20 61 6c 6c 20 mples.=.30\n\n\"\"\"Compute.all.
27700 64 69 73 74 61 6e 63 65 73 20 6d 61 74 72 69 63 65 73 20 66 6f 72 20 74 68 65 20 66 6f 75 72 20 distances.matrices.for.the.four.
27720 73 68 61 70 65 73 5c 22 5c 22 5c 22 5c 6e 43 73 20 3d 20 5b 73 70 2e 73 70 61 74 69 61 6c 2e 64 shapes\"\"\"\nCs.=.[sp.spatial.d
27740 69 73 74 61 6e 63 65 2e 63 64 69 73 74 28 78 73 5b 73 5d 2c 20 78 73 5b 73 5d 29 20 66 6f 72 20 istance.cdist(xs[s],.xs[s]).for.
27760 73 20 69 6e 20 72 61 6e 67 65 28 53 29 5d 5c 6e 43 73 20 3d 20 5b 63 73 20 2f 20 63 73 2e 6d 61 s.in.range(S)]\nCs.=.[cs./.cs.ma
27780 78 28 29 20 66 6f 72 20 63 73 20 69 6e 20 43 73 5d 5c 6e 5c 6e 70 73 20 3d 20 5b 6f 74 2e 75 6e x().for.cs.in.Cs]\n\nps.=.[ot.un
277a0 69 66 28 6e 73 5b 73 5d 29 20 66 6f 72 20 73 20 69 6e 20 72 61 6e 67 65 28 53 29 5d 5c 6e 70 20 if(ns[s]).for.s.in.range(S)]\np.
277c0 3d 20 6f 74 2e 75 6e 69 66 28 6e 5f 73 61 6d 70 6c 65 73 29 5c 6e 5c 6e 5c 6e 6c 61 6d 62 64 61 =.ot.unif(n_samples)\n\n\nlambda
277e0 73 74 20 3d 20 5b 5b 66 6c 6f 61 74 28 69 29 20 2f 20 33 2c 20 66 6c 6f 61 74 28 33 20 2d 20 69 st.=.[[float(i)./.3,.float(3.-.i
27800 29 20 2f 20 33 5d 20 66 6f 72 20 69 20 69 6e 20 5b 31 2c 20 32 5d 5d 5c 6e 5c 6e 43 74 30 31 20 )./.3].for.i.in.[1,.2]]\n\nCt01.
27820 3d 20 5b 30 20 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 65 28 32 29 5d 5c 6e 66 6f 72 20 69 20 69 =.[0.for.i.in.range(2)]\nfor.i.i
27840 6e 20 72 61 6e 67 65 28 32 29 3a 5c 6e 20 20 20 20 43 74 30 31 5b 69 5d 20 3d 20 6f 74 2e 67 72 n.range(2):\n....Ct01[i].=.ot.gr
27860 6f 6d 6f 76 2e 67 72 6f 6d 6f 76 5f 62 61 72 79 63 65 6e 74 65 72 73 28 6e 5f 73 61 6d 70 6c 65 omov.gromov_barycenters(n_sample
27880 73 2c 20 5b 43 73 5b 30 5d 2c 20 43 73 5b 31 5d 5d 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 s,.[Cs[0],.Cs[1]],\n............
278a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5b ...............................[
278c0 70 73 5b 30 5d 2c 20 70 73 5b 31 5d 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ps[0],.ps[1]\n..................
278e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5d 2c 20 70 2c 20 ..........................],.p,.
27900 6c 61 6d 62 64 61 73 74 5b 69 5d 2c 20 27 73 71 75 61 72 65 5f 6c 6f 73 73 27 2c 20 20 23 20 35 lambdast[i],.'square_loss',..#.5
27920 65 2d 34 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e-4,\n..........................
27940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 78 5f 69 74 65 72 3d 31 30 30 2c 20 74 .................max_iter=100,.t
27960 6f 6c 3d 31 65 2d 33 29 5c 6e 5c 6e 43 74 30 32 20 3d 20 5b 30 20 66 6f 72 20 69 20 69 6e 20 72 ol=1e-3)\n\nCt02.=.[0.for.i.in.r
27980 61 6e 67 65 28 32 29 5d 5c 6e 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 65 28 32 29 3a 5c 6e 20 20 ange(2)]\nfor.i.in.range(2):\n..
279a0 20 20 43 74 30 32 5b 69 5d 20 3d 20 6f 74 2e 67 72 6f 6d 6f 76 2e 67 72 6f 6d 6f 76 5f 62 61 72 ..Ct02[i].=.ot.gromov.gromov_bar
279c0 79 63 65 6e 74 65 72 73 28 6e 5f 73 61 6d 70 6c 65 73 2c 20 5b 43 73 5b 30 5d 2c 20 43 73 5b 32 ycenters(n_samples,.[Cs[0],.Cs[2
279e0 5d 5d 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ]],\n...........................
27a00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5b 70 73 5b 30 5d 2c 20 70 73 5b 32 5d 5c 6e 20 ................[ps[0],.ps[2]\n.
27a20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
27a40 20 20 20 20 20 20 20 20 20 20 20 5d 2c 20 70 2c 20 6c 61 6d 62 64 61 73 74 5b 69 5d 2c 20 27 73 ...........],.p,.lambdast[i],.'s
27a60 71 75 61 72 65 5f 6c 6f 73 73 27 2c 20 20 23 20 35 65 2d 34 2c 5c 6e 20 20 20 20 20 20 20 20 20 quare_loss',..#.5e-4,\n.........
27a80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
27aa0 20 20 6d 61 78 5f 69 74 65 72 3d 31 30 30 2c 20 74 6f 6c 3d 31 65 2d 33 29 5c 6e 5c 6e 43 74 31 ..max_iter=100,.tol=1e-3)\n\nCt1
27ac0 33 20 3d 20 5b 30 20 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 65 28 32 29 5d 5c 6e 66 6f 72 20 69 3.=.[0.for.i.in.range(2)]\nfor.i
27ae0 20 69 6e 20 72 61 6e 67 65 28 32 29 3a 5c 6e 20 20 20 20 43 74 31 33 5b 69 5d 20 3d 20 6f 74 2e .in.range(2):\n....Ct13[i].=.ot.
27b00 67 72 6f 6d 6f 76 2e 67 72 6f 6d 6f 76 5f 62 61 72 79 63 65 6e 74 65 72 73 28 6e 5f 73 61 6d 70 gromov.gromov_barycenters(n_samp
27b20 6c 65 73 2c 20 5b 43 73 5b 31 5d 2c 20 43 73 5b 33 5d 5d 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 les,.[Cs[1],.Cs[3]],\n..........
27b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
27b60 20 5b 70 73 5b 31 5d 2c 20 70 73 5b 33 5d 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .[ps[1],.ps[3]\n................
27b80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5d 2c 20 70 ............................],.p
27ba0 2c 20 6c 61 6d 62 64 61 73 74 5b 69 5d 2c 20 27 73 71 75 61 72 65 5f 6c 6f 73 73 27 2c 20 20 23 ,.lambdast[i],.'square_loss',..#
27bc0 20 35 65 2d 34 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .5e-4,\n........................
27be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 78 5f 69 74 65 72 3d 31 30 30 2c ...................max_iter=100,
27c00 20 74 6f 6c 3d 31 65 2d 33 29 5c 6e 5c 6e 43 74 32 33 20 3d 20 5b 30 20 66 6f 72 20 69 20 69 6e .tol=1e-3)\n\nCt23.=.[0.for.i.in
27c20 20 72 61 6e 67 65 28 32 29 5d 5c 6e 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 65 28 32 29 3a 5c 6e .range(2)]\nfor.i.in.range(2):\n
27c40 20 20 20 20 43 74 32 33 5b 69 5d 20 3d 20 6f 74 2e 67 72 6f 6d 6f 76 2e 67 72 6f 6d 6f 76 5f 62 ....Ct23[i].=.ot.gromov.gromov_b
27c60 61 72 79 63 65 6e 74 65 72 73 28 6e 5f 73 61 6d 70 6c 65 73 2c 20 5b 43 73 5b 32 5d 2c 20 43 73 arycenters(n_samples,.[Cs[2],.Cs
27c80 5b 33 5d 5d 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 [3]],\n.........................
27ca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5b 70 73 5b 32 5d 2c 20 70 73 5b 33 5d 5c ..................[ps[2],.ps[3]\
27cc0 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n...............................
27ce0 20 20 20 20 20 20 20 20 20 20 20 20 20 5d 2c 20 70 2c 20 6c 61 6d 62 64 61 73 74 5b 69 5d 2c 20 .............],.p,.lambdast[i],.
27d00 27 73 71 75 61 72 65 5f 6c 6f 73 73 27 2c 20 20 23 20 35 65 2d 34 2c 5c 6e 20 20 20 20 20 20 20 'square_loss',..#.5e-4,\n.......
27d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
27d40 20 20 20 20 6d 61 78 5f 69 74 65 72 3d 31 30 30 2c 20 74 6f 6c 3d 31 65 2d 33 29 22 0a 20 20 20 ....max_iter=100,.tol=1e-3)"....
27d60 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 6c 6c 5f 74 79 ...].....},.....{......."cell_ty
27d80 70 65 22 3a 20 22 6d 61 72 6b 64 6f 77 6e 22 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 pe":."markdown",......."metadata
27da0 22 3a 20 7b 7d 2c 0a 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 ":.{},......."source":.[........
27dc0 20 22 56 69 73 75 61 6c 69 7a 61 74 69 6f 6e 5c 6e 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e ."Visualization\n-------------\n
27de0 5c 6e 54 68 65 20 50 43 41 20 68 65 6c 70 73 20 69 6e 20 67 65 74 74 69 6e 67 20 63 6f 6e 73 69 \nThe.PCA.helps.in.getting.consi
27e00 73 74 65 6e 63 79 20 62 65 74 77 65 65 6e 20 74 68 65 20 72 6f 74 61 74 69 6f 6e 73 5c 6e 5c 6e stency.between.the.rotations\n\n
27e20 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 63 65 ".......].....},.....{......."ce
27e40 6c 6c 5f 74 79 70 65 22 3a 20 22 63 6f 64 65 22 2c 0a 20 20 20 20 20 20 22 65 78 65 63 75 74 69 ll_type":."code",......."executi
27e60 6f 6e 5f 63 6f 75 6e 74 22 3a 20 6e 75 6c 6c 2c 0a 20 20 20 20 20 20 22 6d 65 74 61 64 61 74 61 on_count":.null,......."metadata
27e80 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 63 6f 6c 6c 61 70 73 65 64 22 3a 20 66 61 6c 73 65 0a ":.{........."collapsed":.false.
27ea0 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 6f 75 74 70 75 74 73 22 3a 20 5b 5d 2c 0a 20 20 ......},......."outputs":.[],...
27ec0 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 63 6c 66 20 3d 20 50 ...."source":.[........."clf.=.P
27ee0 43 41 28 6e 5f 63 6f 6d 70 6f 6e 65 6e 74 73 3d 32 29 5c 6e 6e 70 6f 73 20 3d 20 5b 30 2c 20 30 CA(n_components=2)\nnpos.=.[0,.0
27f00 2c 20 30 2c 20 30 5d 5c 6e 6e 70 6f 73 20 3d 20 5b 73 6d 61 63 6f 66 5f 6d 64 73 28 43 73 5b 73 ,.0,.0]\nnpos.=.[smacof_mds(Cs[s
27f20 5d 2c 20 32 29 20 66 6f 72 20 73 20 69 6e 20 72 61 6e 67 65 28 53 29 5d 5c 6e 5c 6e 6e 70 6f 73 ],.2).for.s.in.range(S)]\n\nnpos
27f40 74 30 31 20 3d 20 5b 30 2c 20 30 5d 5c 6e 6e 70 6f 73 74 30 31 20 3d 20 5b 73 6d 61 63 6f 66 5f t01.=.[0,.0]\nnpost01.=.[smacof_
27f60 6d 64 73 28 43 74 30 31 5b 73 5d 2c 20 32 29 20 66 6f 72 20 73 20 69 6e 20 72 61 6e 67 65 28 32 mds(Ct01[s],.2).for.s.in.range(2
27f80 29 5d 5c 6e 6e 70 6f 73 74 30 31 20 3d 20 5b 63 6c 66 2e 66 69 74 5f 74 72 61 6e 73 66 6f 72 6d )]\nnpost01.=.[clf.fit_transform
27fa0 28 6e 70 6f 73 74 30 31 5b 73 5d 29 20 66 6f 72 20 73 20 69 6e 20 72 61 6e 67 65 28 32 29 5d 5c (npost01[s]).for.s.in.range(2)]\
27fc0 6e 5c 6e 6e 70 6f 73 74 30 32 20 3d 20 5b 30 2c 20 30 5d 5c 6e 6e 70 6f 73 74 30 32 20 3d 20 5b n\nnpost02.=.[0,.0]\nnpost02.=.[
27fe0 73 6d 61 63 6f 66 5f 6d 64 73 28 43 74 30 32 5b 73 5d 2c 20 32 29 20 66 6f 72 20 73 20 69 6e 20 smacof_mds(Ct02[s],.2).for.s.in.
28000 72 61 6e 67 65 28 32 29 5d 5c 6e 6e 70 6f 73 74 30 32 20 3d 20 5b 63 6c 66 2e 66 69 74 5f 74 72 range(2)]\nnpost02.=.[clf.fit_tr
28020 61 6e 73 66 6f 72 6d 28 6e 70 6f 73 74 30 32 5b 73 5d 29 20 66 6f 72 20 73 20 69 6e 20 72 61 6e ansform(npost02[s]).for.s.in.ran
28040 67 65 28 32 29 5d 5c 6e 5c 6e 6e 70 6f 73 74 31 33 20 3d 20 5b 30 2c 20 30 5d 5c 6e 6e 70 6f 73 ge(2)]\n\nnpost13.=.[0,.0]\nnpos
28060 74 31 33 20 3d 20 5b 73 6d 61 63 6f 66 5f 6d 64 73 28 43 74 31 33 5b 73 5d 2c 20 32 29 20 66 6f t13.=.[smacof_mds(Ct13[s],.2).fo
28080 72 20 73 20 69 6e 20 72 61 6e 67 65 28 32 29 5d 5c 6e 6e 70 6f 73 74 31 33 20 3d 20 5b 63 6c 66 r.s.in.range(2)]\nnpost13.=.[clf
280a0 2e 66 69 74 5f 74 72 61 6e 73 66 6f 72 6d 28 6e 70 6f 73 74 31 33 5b 73 5d 29 20 66 6f 72 20 73 .fit_transform(npost13[s]).for.s
280c0 20 69 6e 20 72 61 6e 67 65 28 32 29 5d 5c 6e 5c 6e 6e 70 6f 73 74 32 33 20 3d 20 5b 30 2c 20 30 .in.range(2)]\n\nnpost23.=.[0,.0
280e0 5d 5c 6e 6e 70 6f 73 74 32 33 20 3d 20 5b 73 6d 61 63 6f 66 5f 6d 64 73 28 43 74 32 33 5b 73 5d ]\nnpost23.=.[smacof_mds(Ct23[s]
28100 2c 20 32 29 20 66 6f 72 20 73 20 69 6e 20 72 61 6e 67 65 28 32 29 5d 5c 6e 6e 70 6f 73 74 32 33 ,.2).for.s.in.range(2)]\nnpost23
28120 20 3d 20 5b 63 6c 66 2e 66 69 74 5f 74 72 61 6e 73 66 6f 72 6d 28 6e 70 6f 73 74 32 33 5b 73 5d .=.[clf.fit_transform(npost23[s]
28140 29 20 66 6f 72 20 73 20 69 6e 20 72 61 6e 67 65 28 32 29 5d 5c 6e 5c 6e 5c 6e 66 69 67 20 3d 20 ).for.s.in.range(2)]\n\n\nfig.=.
28160 70 6c 2e 66 69 67 75 72 65 28 66 69 67 73 69 7a 65 3d 28 31 30 2c 20 31 30 29 29 5c 6e 5c 6e 61 pl.figure(figsize=(10,.10))\n\na
28180 78 31 20 3d 20 70 6c 2e 73 75 62 70 6c 6f 74 32 67 72 69 64 28 28 34 2c 20 34 29 2c 20 28 30 2c x1.=.pl.subplot2grid((4,.4),.(0,
281a0 20 30 29 29 5c 6e 70 6c 2e 78 6c 69 6d 28 28 2d 31 2c 20 31 29 29 5c 6e 70 6c 2e 79 6c 69 6d 28 .0))\npl.xlim((-1,.1))\npl.ylim(
281c0 28 2d 31 2c 20 31 29 29 5c 6e 61 78 31 2e 73 63 61 74 74 65 72 28 6e 70 6f 73 5b 30 5d 5b 3a 2c (-1,.1))\nax1.scatter(npos[0][:,
281e0 20 30 5d 2c 20 6e 70 6f 73 5b 30 5d 5b 3a 2c 20 31 5d 2c 20 63 6f 6c 6f 72 3d 27 72 27 29 5c 6e .0],.npos[0][:,.1],.color='r')\n
28200 5c 6e 61 78 32 20 3d 20 70 6c 2e 73 75 62 70 6c 6f 74 32 67 72 69 64 28 28 34 2c 20 34 29 2c 20 \nax2.=.pl.subplot2grid((4,.4),.
28220 28 30 2c 20 31 29 29 5c 6e 70 6c 2e 78 6c 69 6d 28 28 2d 31 2c 20 31 29 29 5c 6e 70 6c 2e 79 6c (0,.1))\npl.xlim((-1,.1))\npl.yl
28240 69 6d 28 28 2d 31 2c 20 31 29 29 5c 6e 61 78 32 2e 73 63 61 74 74 65 72 28 6e 70 6f 73 74 30 31 im((-1,.1))\nax2.scatter(npost01
28260 5b 31 5d 5b 3a 2c 20 30 5d 2c 20 6e 70 6f 73 74 30 31 5b 31 5d 5b 3a 2c 20 31 5d 2c 20 63 6f 6c [1][:,.0],.npost01[1][:,.1],.col
28280 6f 72 3d 27 62 27 29 5c 6e 5c 6e 61 78 33 20 3d 20 70 6c 2e 73 75 62 70 6c 6f 74 32 67 72 69 64 or='b')\n\nax3.=.pl.subplot2grid
282a0 28 28 34 2c 20 34 29 2c 20 28 30 2c 20 32 29 29 5c 6e 70 6c 2e 78 6c 69 6d 28 28 2d 31 2c 20 31 ((4,.4),.(0,.2))\npl.xlim((-1,.1
282c0 29 29 5c 6e 70 6c 2e 79 6c 69 6d 28 28 2d 31 2c 20 31 29 29 5c 6e 61 78 33 2e 73 63 61 74 74 65 ))\npl.ylim((-1,.1))\nax3.scatte
282e0 72 28 6e 70 6f 73 74 30 31 5b 30 5d 5b 3a 2c 20 30 5d 2c 20 6e 70 6f 73 74 30 31 5b 30 5d 5b 3a r(npost01[0][:,.0],.npost01[0][:
28300 2c 20 31 5d 2c 20 63 6f 6c 6f 72 3d 27 62 27 29 5c 6e 5c 6e 61 78 34 20 3d 20 70 6c 2e 73 75 62 ,.1],.color='b')\n\nax4.=.pl.sub
28320 70 6c 6f 74 32 67 72 69 64 28 28 34 2c 20 34 29 2c 20 28 30 2c 20 33 29 29 5c 6e 70 6c 2e 78 6c plot2grid((4,.4),.(0,.3))\npl.xl
28340 69 6d 28 28 2d 31 2c 20 31 29 29 5c 6e 70 6c 2e 79 6c 69 6d 28 28 2d 31 2c 20 31 29 29 5c 6e 61 im((-1,.1))\npl.ylim((-1,.1))\na
28360 78 34 2e 73 63 61 74 74 65 72 28 6e 70 6f 73 5b 31 5d 5b 3a 2c 20 30 5d 2c 20 6e 70 6f 73 5b 31 x4.scatter(npos[1][:,.0],.npos[1
28380 5d 5b 3a 2c 20 31 5d 2c 20 63 6f 6c 6f 72 3d 27 72 27 29 5c 6e 5c 6e 61 78 35 20 3d 20 70 6c 2e ][:,.1],.color='r')\n\nax5.=.pl.
283a0 73 75 62 70 6c 6f 74 32 67 72 69 64 28 28 34 2c 20 34 29 2c 20 28 31 2c 20 30 29 29 5c 6e 70 6c subplot2grid((4,.4),.(1,.0))\npl
283c0 2e 78 6c 69 6d 28 28 2d 31 2c 20 31 29 29 5c 6e 70 6c 2e 79 6c 69 6d 28 28 2d 31 2c 20 31 29 29 .xlim((-1,.1))\npl.ylim((-1,.1))
283e0 5c 6e 61 78 35 2e 73 63 61 74 74 65 72 28 6e 70 6f 73 74 30 32 5b 31 5d 5b 3a 2c 20 30 5d 2c 20 \nax5.scatter(npost02[1][:,.0],.
28400 6e 70 6f 73 74 30 32 5b 31 5d 5b 3a 2c 20 31 5d 2c 20 63 6f 6c 6f 72 3d 27 62 27 29 5c 6e 5c 6e npost02[1][:,.1],.color='b')\n\n
28420 61 78 36 20 3d 20 70 6c 2e 73 75 62 70 6c 6f 74 32 67 72 69 64 28 28 34 2c 20 34 29 2c 20 28 31 ax6.=.pl.subplot2grid((4,.4),.(1
28440 2c 20 33 29 29 5c 6e 70 6c 2e 78 6c 69 6d 28 28 2d 31 2c 20 31 29 29 5c 6e 70 6c 2e 79 6c 69 6d ,.3))\npl.xlim((-1,.1))\npl.ylim
28460 28 28 2d 31 2c 20 31 29 29 5c 6e 61 78 36 2e 73 63 61 74 74 65 72 28 6e 70 6f 73 74 31 33 5b 31 ((-1,.1))\nax6.scatter(npost13[1
28480 5d 5b 3a 2c 20 30 5d 2c 20 6e 70 6f 73 74 31 33 5b 31 5d 5b 3a 2c 20 31 5d 2c 20 63 6f 6c 6f 72 ][:,.0],.npost13[1][:,.1],.color
284a0 3d 27 62 27 29 5c 6e 5c 6e 61 78 37 20 3d 20 70 6c 2e 73 75 62 70 6c 6f 74 32 67 72 69 64 28 28 ='b')\n\nax7.=.pl.subplot2grid((
284c0 34 2c 20 34 29 2c 20 28 32 2c 20 30 29 29 5c 6e 70 6c 2e 78 6c 69 6d 28 28 2d 31 2c 20 31 29 29 4,.4),.(2,.0))\npl.xlim((-1,.1))
284e0 5c 6e 70 6c 2e 79 6c 69 6d 28 28 2d 31 2c 20 31 29 29 5c 6e 61 78 37 2e 73 63 61 74 74 65 72 28 \npl.ylim((-1,.1))\nax7.scatter(
28500 6e 70 6f 73 74 30 32 5b 30 5d 5b 3a 2c 20 30 5d 2c 20 6e 70 6f 73 74 30 32 5b 30 5d 5b 3a 2c 20 npost02[0][:,.0],.npost02[0][:,.
28520 31 5d 2c 20 63 6f 6c 6f 72 3d 27 62 27 29 5c 6e 5c 6e 61 78 38 20 3d 20 70 6c 2e 73 75 62 70 6c 1],.color='b')\n\nax8.=.pl.subpl
28540 6f 74 32 67 72 69 64 28 28 34 2c 20 34 29 2c 20 28 32 2c 20 33 29 29 5c 6e 70 6c 2e 78 6c 69 6d ot2grid((4,.4),.(2,.3))\npl.xlim
28560 28 28 2d 31 2c 20 31 29 29 5c 6e 70 6c 2e 79 6c 69 6d 28 28 2d 31 2c 20 31 29 29 5c 6e 61 78 38 ((-1,.1))\npl.ylim((-1,.1))\nax8
28580 2e 73 63 61 74 74 65 72 28 6e 70 6f 73 74 31 33 5b 30 5d 5b 3a 2c 20 30 5d 2c 20 6e 70 6f 73 74 .scatter(npost13[0][:,.0],.npost
285a0 31 33 5b 30 5d 5b 3a 2c 20 31 5d 2c 20 63 6f 6c 6f 72 3d 27 62 27 29 5c 6e 5c 6e 61 78 39 20 3d 13[0][:,.1],.color='b')\n\nax9.=
285c0 20 70 6c 2e 73 75 62 70 6c 6f 74 32 67 72 69 64 28 28 34 2c 20 34 29 2c 20 28 33 2c 20 30 29 29 .pl.subplot2grid((4,.4),.(3,.0))
285e0 5c 6e 70 6c 2e 78 6c 69 6d 28 28 2d 31 2c 20 31 29 29 5c 6e 70 6c 2e 79 6c 69 6d 28 28 2d 31 2c \npl.xlim((-1,.1))\npl.ylim((-1,
28600 20 31 29 29 5c 6e 61 78 39 2e 73 63 61 74 74 65 72 28 6e 70 6f 73 5b 32 5d 5b 3a 2c 20 30 5d 2c .1))\nax9.scatter(npos[2][:,.0],
28620 20 6e 70 6f 73 5b 32 5d 5b 3a 2c 20 31 5d 2c 20 63 6f 6c 6f 72 3d 27 72 27 29 5c 6e 5c 6e 61 78 .npos[2][:,.1],.color='r')\n\nax
28640 31 30 20 3d 20 70 6c 2e 73 75 62 70 6c 6f 74 32 67 72 69 64 28 28 34 2c 20 34 29 2c 20 28 33 2c 10.=.pl.subplot2grid((4,.4),.(3,
28660 20 31 29 29 5c 6e 70 6c 2e 78 6c 69 6d 28 28 2d 31 2c 20 31 29 29 5c 6e 70 6c 2e 79 6c 69 6d 28 .1))\npl.xlim((-1,.1))\npl.ylim(
28680 28 2d 31 2c 20 31 29 29 5c 6e 61 78 31 30 2e 73 63 61 74 74 65 72 28 6e 70 6f 73 74 32 33 5b 31 (-1,.1))\nax10.scatter(npost23[1
286a0 5d 5b 3a 2c 20 30 5d 2c 20 6e 70 6f 73 74 32 33 5b 31 5d 5b 3a 2c 20 31 5d 2c 20 63 6f 6c 6f 72 ][:,.0],.npost23[1][:,.1],.color
286c0 3d 27 62 27 29 5c 6e 5c 6e 61 78 31 31 20 3d 20 70 6c 2e 73 75 62 70 6c 6f 74 32 67 72 69 64 28 ='b')\n\nax11.=.pl.subplot2grid(
286e0 28 34 2c 20 34 29 2c 20 28 33 2c 20 32 29 29 5c 6e 70 6c 2e 78 6c 69 6d 28 28 2d 31 2c 20 31 29 (4,.4),.(3,.2))\npl.xlim((-1,.1)
28700 29 5c 6e 70 6c 2e 79 6c 69 6d 28 28 2d 31 2c 20 31 29 29 5c 6e 61 78 31 31 2e 73 63 61 74 74 65 )\npl.ylim((-1,.1))\nax11.scatte
28720 72 28 6e 70 6f 73 74 32 33 5b 30 5d 5b 3a 2c 20 30 5d 2c 20 6e 70 6f 73 74 32 33 5b 30 5d 5b 3a r(npost23[0][:,.0],.npost23[0][:
28740 2c 20 31 5d 2c 20 63 6f 6c 6f 72 3d 27 62 27 29 5c 6e 5c 6e 61 78 31 32 20 3d 20 70 6c 2e 73 75 ,.1],.color='b')\n\nax12.=.pl.su
28760 62 70 6c 6f 74 32 67 72 69 64 28 28 34 2c 20 34 29 2c 20 28 33 2c 20 33 29 29 5c 6e 70 6c 2e 78 bplot2grid((4,.4),.(3,.3))\npl.x
28780 6c 69 6d 28 28 2d 31 2c 20 31 29 29 5c 6e 70 6c 2e 79 6c 69 6d 28 28 2d 31 2c 20 31 29 29 5c 6e lim((-1,.1))\npl.ylim((-1,.1))\n
287a0 61 78 31 32 2e 73 63 61 74 74 65 72 28 6e 70 6f 73 5b 33 5d 5b 3a 2c 20 30 5d 2c 20 6e 70 6f 73 ax12.scatter(npos[3][:,.0],.npos
287c0 5b 33 5d 5b 3a 2c 20 31 5d 2c 20 63 6f 6c 6f 72 3d 27 72 27 29 22 0a 20 20 20 20 20 20 5d 0a 20 [3][:,.1],.color='r')".......]..
287e0 20 20 20 7d 0a 20 20 5d 2c 0a 20 20 22 6d 65 74 61 64 61 74 61 22 3a 20 7b 0a 20 20 20 20 22 6b ...}...],..."metadata":.{....."k
28800 65 72 6e 65 6c 73 70 65 63 22 3a 20 7b 0a 20 20 20 20 20 20 22 64 69 73 70 6c 61 79 5f 6e 61 6d ernelspec":.{......."display_nam
28820 65 22 3a 20 22 50 79 74 68 6f 6e 20 33 22 2c 0a 20 20 20 20 20 20 22 6c 61 6e 67 75 61 67 65 22 e":."Python.3",......."language"
28840 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 70 79 74 68 6f :."python",......."name":."pytho
28860 6e 33 22 0a 20 20 20 20 7d 2c 0a 20 20 20 20 22 6c 61 6e 67 75 61 67 65 5f 69 6e 66 6f 22 3a 20 n3".....},....."language_info":.
28880 7b 0a 20 20 20 20 20 20 22 63 6f 64 65 6d 69 72 72 6f 72 5f 6d 6f 64 65 22 3a 20 7b 0a 20 20 20 {......."codemirror_mode":.{....
288a0 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 69 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 20 20 ....."name":."ipython",.........
288c0 22 76 65 72 73 69 6f 6e 22 3a 20 33 0a 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 22 66 69 6c "version":.3.......},......."fil
288e0 65 5f 65 78 74 65 6e 73 69 6f 6e 22 3a 20 22 2e 70 79 22 2c 0a 20 20 20 20 20 20 22 6d 69 6d 65 e_extension":.".py",......."mime
28900 74 79 70 65 22 3a 20 22 74 65 78 74 2f 78 2d 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e type":."text/x-python",......."n
28920 61 6d 65 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 6e 62 63 6f 6e 76 65 72 74 ame":."python",......."nbconvert
28940 5f 65 78 70 6f 72 74 65 72 22 3a 20 22 70 79 74 68 6f 6e 22 2c 0a 20 20 20 20 20 20 22 70 79 67 _exporter":."python",......."pyg
28960 6d 65 6e 74 73 5f 6c 65 78 65 72 22 3a 20 22 69 70 79 74 68 6f 6e 33 22 2c 0a 20 20 20 20 20 20 ments_lexer":."ipython3",.......
28980 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 36 2e 39 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 "version":."3.6.9".....}...},...
289a0 22 6e 62 66 6f 72 6d 61 74 22 3a 20 34 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 5f 6d 69 6e 6f 72 "nbformat":.4,..."nbformat_minor
289c0 22 3a 20 30 0a 7d 50 4b 01 02 14 03 14 00 00 00 00 00 7c 68 3a 4f ae 38 61 57 26 14 00 00 26 14 ":.0.}PK..........|h:O.8aW&...&.
289e0 00 00 0e 00 00 00 00 00 00 00 00 00 00 00 b4 81 00 00 00 00 70 6c 6f 74 5f 57 44 41 2e 69 70 79 ....................plot_WDA.ipy
28a00 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 a6 72 94 50 e0 47 d9 b1 81 11 00 00 81 11 00 00 11 00 nbPK...........r.P.G............
28a20 00 00 00 00 00 00 00 00 00 00 b4 81 52 14 00 00 70 6c 6f 74 5f 67 72 6f 6d 6f 76 2e 69 70 79 6e ............R...plot_gromov.ipyn
28a40 62 50 4b 01 02 14 03 14 00 00 00 00 00 d6 72 94 50 12 6c 09 29 78 22 00 00 78 22 00 00 19 00 00 bPK...........r.P.l.)x"..x".....
28a60 00 00 00 00 00 00 00 00 00 b4 81 02 26 00 00 70 6c 6f 74 5f 62 61 72 79 63 65 6e 74 65 72 5f 66 ............&..plot_barycenter_f
28a80 67 77 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 c0 72 94 50 21 b3 a5 02 cc 15 00 00 gw.ipynbPK...........r.P!.......
28aa0 cc 15 00 00 18 00 00 00 00 00 00 00 00 00 00 00 b4 81 b1 48 00 00 70 6c 6f 74 5f 62 61 72 79 63 ...................H..plot_baryc
28ac0 65 6e 74 65 72 5f 31 44 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 b9 72 94 50 45 9a enter_1D.ipynbPK...........r.PE.
28ae0 9b 1d 0d 13 00 00 0d 13 00 00 18 00 00 00 00 00 00 00 00 00 00 00 b4 81 b3 5e 00 00 70 6c 6f 74 .........................^..plot
28b00 5f 4f 54 5f 32 44 5f 73 61 6d 70 6c 65 73 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 _OT_2D_samples.ipynbPK..........
28b20 a4 72 94 50 99 c4 c0 a2 76 0c 00 00 76 0c 00 00 11 00 00 00 00 00 00 00 00 00 00 00 b4 81 f6 71 .r.P....v...v..................q
28b40 00 00 70 6c 6f 74 5f 55 4f 54 5f 31 44 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 03 ..plot_UOT_1D.ipynbPK...........
28b60 78 94 50 d8 23 74 ca 23 16 00 00 23 16 00 00 1c 00 00 00 00 00 00 00 00 00 00 00 b4 81 9b 7e 00 x.P.#t.#...#..................~.
28b80 00 70 6c 6f 74 5f 55 4f 54 5f 62 61 72 79 63 65 6e 74 65 72 5f 31 44 2e 69 70 79 6e 62 50 4b 01 .plot_UOT_barycenter_1D.ipynbPK.
28ba0 02 14 03 14 00 00 00 00 00 d5 72 94 50 81 63 50 b6 2d 22 00 00 2d 22 00 00 24 00 00 00 00 00 00 ..........r.P.cP.-"..-"..$......
28bc0 00 00 00 00 00 b4 81 f8 94 00 00 70 6c 6f 74 5f 62 61 72 79 63 65 6e 74 65 72 5f 6c 70 5f 76 73 ...........plot_barycenter_lp_vs
28be0 5f 65 6e 74 72 6f 70 69 63 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 a5 72 94 50 e0 _entropic.ipynbPK...........r.P.
28c00 79 5e 6d e4 0d 00 00 e4 0d 00 00 22 00 00 00 00 00 00 00 00 00 00 00 b4 81 67 b7 00 00 70 6c 6f y^m........".............g...plo
28c20 74 5f 66 72 65 65 5f 73 75 70 70 6f 72 74 5f 62 61 72 79 63 65 6e 74 65 72 2e 69 70 79 6e 62 50 t_free_support_barycenter.ipynbP
28c40 4b 01 02 14 03 14 00 00 00 00 00 a5 72 94 50 e8 8e 42 62 97 12 00 00 97 12 00 00 16 00 00 00 00 K...........r.P..Bb.............
28c60 00 00 00 00 00 00 00 b4 81 8b c5 00 00 70 6c 6f 74 5f 6f 70 74 69 6d 5f 4f 54 72 65 67 2e 69 70 .............plot_optim_OTreg.ip
28c80 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 b8 72 94 50 e6 95 03 a9 02 15 00 00 02 15 00 00 1e ynbPK...........r.P.............
28ca0 00 00 00 00 00 00 00 00 00 00 00 b4 81 56 d8 00 00 70 6c 6f 74 5f 6f 74 64 61 5f 6c 69 6e 65 61 .............V...plot_otda_linea
28cc0 72 5f 6d 61 70 70 69 6e 67 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 70 75 94 50 01 r_mapping.ipynbPK..........pu.P.
28ce0 f9 09 89 fe 15 00 00 fe 15 00 00 1c 00 00 00 00 00 00 00 00 00 00 00 b4 81 94 ed 00 00 70 6c 6f .............................plo
28d00 74 5f 6f 74 64 61 5f 63 6f 6c 6f 72 5f 69 6d 61 67 65 73 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 t_otda_color_images.ipynbPK.....
28d20 00 00 00 00 00 b8 72 94 50 30 5b ac 70 e5 0e 00 00 e5 0e 00 00 23 00 00 00 00 00 00 00 00 00 00 ......r.P0[.p........#..........
28d40 00 b4 81 cc 03 01 00 70 6c 6f 74 5f 63 6f 6e 76 6f 6c 75 74 69 6f 6e 61 6c 5f 62 61 72 79 63 65 .......plot_convolutional_baryce
28d60 6e 74 65 72 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 a5 72 94 50 fa c1 0f 3c 4d 11 nter.ipynbPK...........r.P...<M.
28d80 00 00 4d 11 00 00 17 00 00 00 00 00 00 00 00 00 00 00 b4 81 f2 12 01 00 70 6c 6f 74 5f 4f 54 5f ..M.....................plot_OT_
28da0 31 44 5f 73 6d 6f 6f 74 68 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 c3 72 94 50 a4 1D_smooth.ipynbPK...........r.P.
28dc0 54 3f 6d 2d 18 00 00 2d 18 00 00 17 00 00 00 00 00 00 00 00 00 00 00 b4 81 74 24 01 00 70 6c 6f T?m-...-.................t$..plo
28de0 74 5f 6f 74 64 61 5f 63 6c 61 73 73 65 73 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 t_otda_classes.ipynbPK..........
28e00 4a 78 94 50 f9 32 f8 e9 a5 1b 00 00 a5 1b 00 00 22 00 00 00 00 00 00 00 00 00 00 00 b4 81 d6 3c Jx.P.2.........."..............<
28e20 01 00 70 6c 6f 74 5f 70 61 72 74 69 61 6c 5f 77 61 73 73 5f 61 6e 64 5f 67 72 6f 6d 6f 76 2e 69 ..plot_partial_wass_and_gromov.i
28e40 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 a4 72 94 50 60 4e ee 5b dd 0d 00 00 dd 0d 00 00 pynbPK...........r.P`N.[........
28e60 10 00 00 00 00 00 00 00 00 00 00 00 b4 81 bb 58 01 00 70 6c 6f 74 5f 4f 54 5f 31 44 2e 69 70 79 ...............X..plot_OT_1D.ipy
28e80 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 c0 72 94 50 6f 0b 8a da 55 26 00 00 55 26 00 00 15 00 nbPK...........r.Po...U&..U&....
28ea0 00 00 00 00 00 00 00 00 00 00 b4 81 c6 66 01 00 70 6c 6f 74 5f 73 74 6f 63 68 61 73 74 69 63 2e .............f..plot_stochastic.
28ec0 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 c1 72 94 50 9c da 7a a2 d8 19 00 00 d8 19 00 ipynbPK...........r.P..z........
28ee0 00 0e 00 00 00 00 00 00 00 00 00 00 00 b4 81 4e 8d 01 00 70 6c 6f 74 5f 66 67 77 2e 69 70 79 6e ...............N...plot_fgw.ipyn
28f00 62 50 4b 01 02 14 03 14 00 00 00 00 00 cf 72 94 50 e7 14 7f a6 c3 1a 00 00 c3 1a 00 00 16 00 00 bPK...........r.P...............
28f20 00 00 00 00 00 00 00 00 00 b4 81 52 a7 01 00 70 6c 6f 74 5f 4f 54 5f 4c 31 5f 76 73 5f 4c 32 2e ...........R...plot_OT_L1_vs_L2.
28f40 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 a4 72 94 50 32 51 b4 4f 02 0d 00 00 02 0d 00 ipynbPK...........r.P2Q.O.......
28f60 00 19 00 00 00 00 00 00 00 00 00 00 00 b4 81 49 c2 01 00 70 6c 6f 74 5f 73 63 72 65 65 6e 6b 68 ...............I...plot_screenkh
28f80 6f 72 6e 5f 31 44 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 a6 72 94 50 9d 28 3f 1d orn_1D.ipynbPK...........r.P.(?.
28fa0 11 10 00 00 11 10 00 00 16 00 00 00 00 00 00 00 00 00 00 00 b4 81 82 cf 01 00 70 6c 6f 74 5f 63 ..........................plot_c
28fc0 6f 6d 70 75 74 65 5f 65 6d 64 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 d2 72 94 50 ompute_emd.ipynbPK...........r.P
28fe0 72 63 28 c1 ab 1f 00 00 ab 1f 00 00 15 00 00 00 00 00 00 00 00 00 00 00 b4 81 c7 df 01 00 70 6c rc(...........................pl
29000 6f 74 5f 6f 74 64 61 5f 6a 63 70 6f 74 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 c2 ot_otda_jcpot.ipynbPK...........
29020 72 94 50 c1 53 cd fd f8 19 00 00 f8 19 00 00 1f 00 00 00 00 00 00 00 00 00 00 00 b4 81 a5 ff 01 r.P.S...........................
29040 00 70 6c 6f 74 5f 6f 74 64 61 5f 73 65 6d 69 5f 73 75 70 65 72 76 69 73 65 64 2e 69 70 79 6e 62 .plot_otda_semi_supervised.ipynb
29060 50 4b 01 02 14 03 14 00 00 00 00 00 c1 72 94 50 21 2e c0 88 fa 16 00 00 fa 16 00 00 17 00 00 00 PK...........r.P!...............
29080 00 00 00 00 00 00 00 00 b4 81 da 19 02 00 70 6c 6f 74 5f 6f 74 64 61 5f 6d 61 70 70 69 6e 67 2e ..............plot_otda_mapping.
290a0 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 ce 72 94 50 b9 99 0e 46 f4 1c 00 00 f4 1c 00 ipynbPK...........r.P...F.......
290c0 00 12 00 00 00 00 00 00 00 00 00 00 00 b4 81 09 31 02 00 70 6c 6f 74 5f 6f 74 64 61 5f 64 32 2e ................1..plot_otda_d2.
290e0 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 bc 75 94 50 a6 23 02 85 16 18 00 00 16 18 00 ipynbPK...........u.P.#.........
29100 00 25 00 00 00 00 00 00 00 00 00 00 00 b4 81 2d 4e 02 00 70 6c 6f 74 5f 6f 74 64 61 5f 6d 61 70 .%.............-N..plot_otda_map
29120 70 69 6e 67 5f 63 6f 6c 6f 72 73 5f 69 6d 61 67 65 73 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 ping_colors_images.ipynbPK......
29140 00 00 00 00 04 78 94 50 3b 32 15 4c 06 23 00 00 06 23 00 00 1c 00 00 00 00 00 00 00 00 00 00 00 .....x.P;2.L.#...#..............
29160 b4 81 86 66 02 00 70 6c 6f 74 5f 67 72 6f 6d 6f 76 5f 62 61 72 79 63 65 6e 74 65 72 2e 69 70 79 ...f..plot_gromov_barycenter.ipy
29180 6e 62 50 4b 05 06 00 00 00 00 1c 00 1c 00 bc 07 00 00 c6 89 02 00 00 00 nbPK....................