summaryrefslogtreecommitdiff
path: root/_downloads/6f1e7a639e0699d6164445b55e6c116d/auto_examples_jupyter.zip
blob: 9c03beeaa78f961db919d5983ac272668866f07c (plain)
ofshex dumpascii
0000 50 4b 03 04 14 00 00 00 00 00 07 0f 5a 56 15 c1 02 76 92 07 00 00 92 07 00 00 1f 00 00 00 33 64 PK..........ZV...v............3d
0020 5f 64 72 61 77 69 6e 67 2f 6d 61 79 61 76 69 32 5f 73 70 72 69 6e 67 2e 69 70 79 6e 62 7b 0a 20 _drawing/mayavi2_spring.ipynb{..
0040 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 74 79 ."cells":.[.....{......."cell_ty
0060 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
0080 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":.{.
00a0 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......
00c0 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":.[],......."
00e0 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 62 20 source":.[........."%matplotlib.
0100 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 20 20 inline".......].....},.....{....
0120 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",.....
0140 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"
0160 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 4d 61 79 61 76 69 32 5c 6e 22 0a 20 20 20 20 :.[........."\n#.Mayavi2\n".....
0180 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
01a0 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
01c0 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":.{..
01e0 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.......
0200 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
0220 6f 75 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 65 74 77 6f 72 ource":.[........."import.networ
0240 6b 78 20 61 73 20 6e 78 5c 6e 69 6d 70 6f 72 74 20 6e 75 6d 70 79 20 61 73 20 6e 70 5c 6e 66 72 kx.as.nx\nimport.numpy.as.np\nfr
0260 6f 6d 20 6d 61 79 61 76 69 20 69 6d 70 6f 72 74 20 6d 6c 61 62 5c 6e 5c 6e 23 20 73 6f 6d 65 20 om.mayavi.import.mlab\n\n#.some.
0280 67 72 61 70 68 73 20 74 6f 20 74 72 79 5c 6e 23 20 48 3d 6e 78 2e 6b 72 61 63 6b 68 61 72 64 74 graphs.to.try\n#.H=nx.krackhardt
02a0 5f 6b 69 74 65 5f 67 72 61 70 68 28 29 5c 6e 23 20 48 3d 6e 78 2e 47 72 61 70 68 28 29 3b 48 2e _kite_graph()\n#.H=nx.Graph();H.
02c0 61 64 64 5f 65 64 67 65 28 27 61 27 2c 27 62 27 29 3b 48 2e 61 64 64 5f 65 64 67 65 28 27 61 27 add_edge('a','b');H.add_edge('a'
02e0 2c 27 63 27 29 3b 48 2e 61 64 64 5f 65 64 67 65 28 27 61 27 2c 27 64 27 29 5c 6e 23 20 48 3d 6e ,'c');H.add_edge('a','d')\n#.H=n
0300 78 2e 67 72 69 64 5f 32 64 5f 67 72 61 70 68 28 34 2c 35 29 5c 6e 48 20 3d 20 6e 78 2e 63 79 63 x.grid_2d_graph(4,5)\nH.=.nx.cyc
0320 6c 65 5f 67 72 61 70 68 28 32 30 29 5c 6e 5c 6e 23 20 72 65 6f 72 64 65 72 20 6e 6f 64 65 73 20 le_graph(20)\n\n#.reorder.nodes.
0340 66 72 6f 6d 20 30 2c 6c 65 6e 28 47 29 2d 31 5c 6e 47 20 3d 20 6e 78 2e 63 6f 6e 76 65 72 74 5f from.0,len(G)-1\nG.=.nx.convert_
0360 6e 6f 64 65 5f 6c 61 62 65 6c 73 5f 74 6f 5f 69 6e 74 65 67 65 72 73 28 48 29 5c 6e 23 20 33 64 node_labels_to_integers(H)\n#.3d
0380 20 73 70 72 69 6e 67 20 6c 61 79 6f 75 74 5c 6e 70 6f 73 20 3d 20 6e 78 2e 73 70 72 69 6e 67 5f .spring.layout\npos.=.nx.spring_
03a0 6c 61 79 6f 75 74 28 47 2c 20 64 69 6d 3d 33 2c 20 73 65 65 64 3d 31 30 30 31 29 5c 6e 23 20 6e layout(G,.dim=3,.seed=1001)\n#.n
03c0 75 6d 70 79 20 61 72 72 61 79 20 6f 66 20 78 2c 79 2c 7a 20 70 6f 73 69 74 69 6f 6e 73 20 69 6e umpy.array.of.x,y,z.positions.in
03e0 20 73 6f 72 74 65 64 20 6e 6f 64 65 20 6f 72 64 65 72 5c 6e 78 79 7a 20 3d 20 6e 70 2e 61 72 72 .sorted.node.order\nxyz.=.np.arr
0400 61 79 28 5b 70 6f 73 5b 76 5d 20 66 6f 72 20 76 20 69 6e 20 73 6f 72 74 65 64 28 47 29 5d 29 5c ay([pos[v].for.v.in.sorted(G)])\
0420 6e 23 20 73 63 61 6c 61 72 20 63 6f 6c 6f 72 73 5c 6e 73 63 61 6c 61 72 73 20 3d 20 6e 70 2e 61 n#.scalar.colors\nscalars.=.np.a
0440 72 72 61 79 28 6c 69 73 74 28 47 2e 6e 6f 64 65 73 28 29 29 29 20 2b 20 35 5c 6e 5c 6e 6d 6c 61 rray(list(G.nodes())).+.5\n\nmla
0460 62 2e 66 69 67 75 72 65 28 29 5c 6e 5c 6e 70 74 73 20 3d 20 6d 6c 61 62 2e 70 6f 69 6e 74 73 33 b.figure()\n\npts.=.mlab.points3
0480 64 28 5c 6e 20 20 20 20 78 79 7a 5b 3a 2c 20 30 5d 2c 5c 6e 20 20 20 20 78 79 7a 5b 3a 2c 20 31 d(\n....xyz[:,.0],\n....xyz[:,.1
04a0 5d 2c 5c 6e 20 20 20 20 78 79 7a 5b 3a 2c 20 32 5d 2c 5c 6e 20 20 20 20 73 63 61 6c 61 72 73 2c ],\n....xyz[:,.2],\n....scalars,
04c0 5c 6e 20 20 20 20 73 63 61 6c 65 5f 66 61 63 74 6f 72 3d 30 2e 31 2c 5c 6e 20 20 20 20 73 63 61 \n....scale_factor=0.1,\n....sca
04e0 6c 65 5f 6d 6f 64 65 3d 5c 22 6e 6f 6e 65 5c 22 2c 5c 6e 20 20 20 20 63 6f 6c 6f 72 6d 61 70 3d le_mode=\"none\",\n....colormap=
0500 5c 22 42 6c 75 65 73 5c 22 2c 5c 6e 20 20 20 20 72 65 73 6f 6c 75 74 69 6f 6e 3d 32 30 2c 5c 6e \"Blues\",\n....resolution=20,\n
0520 29 5c 6e 5c 6e 70 74 73 2e 6d 6c 61 62 5f 73 6f 75 72 63 65 2e 64 61 74 61 73 65 74 2e 6c 69 6e )\n\npts.mlab_source.dataset.lin
0540 65 73 20 3d 20 6e 70 2e 61 72 72 61 79 28 6c 69 73 74 28 47 2e 65 64 67 65 73 28 29 29 29 5c 6e es.=.np.array(list(G.edges()))\n
0560 74 75 62 65 20 3d 20 6d 6c 61 62 2e 70 69 70 65 6c 69 6e 65 2e 74 75 62 65 28 70 74 73 2c 20 74 tube.=.mlab.pipeline.tube(pts,.t
0580 75 62 65 5f 72 61 64 69 75 73 3d 30 2e 30 31 29 5c 6e 6d 6c 61 62 2e 70 69 70 65 6c 69 6e 65 2e ube_radius=0.01)\nmlab.pipeline.
05a0 73 75 72 66 61 63 65 28 74 75 62 65 2c 20 63 6f 6c 6f 72 3d 28 30 2e 38 2c 20 30 2e 38 2c 20 30 surface(tube,.color=(0.8,.0.8,.0
05c0 2e 38 29 29 5c 6e 6d 6c 61 62 2e 6f 72 69 65 6e 74 61 74 69 6f 6e 5f 61 78 65 73 28 29 22 0a 20 .8))\nmlab.orientation_axes()"..
05e0 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":.
0600 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
0620 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
0640 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"
0660 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
0680 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
06a0 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",.
06c0 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.......},...
06e0 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",....
0700 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",.
0720 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
0740 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",...
0760 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"
0780 2c 0a 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 39 2e 31 36 22 0a 20 20 20 20 ,......."version":."3.9.16".....
07a0 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 6f 72 }...},..."nbformat":.4,..."nbfor
07c0 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 07 0f 5a 56 91 ea e9 mat_minor":.0.}PK..........ZV...
07e0 42 6f 08 00 00 6f 08 00 00 1b 00 00 00 33 64 5f 64 72 61 77 69 6e 67 2f 70 6c 6f 74 5f 62 61 73 Bo...o.......3d_drawing/plot_bas
0800 69 63 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 ic.ipynb{..."cells":.[.....{....
0820 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
0840 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
0860 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":.
0880 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":.
08a0 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 25 [],......."source":.[........."%
08c0 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 7d matplotlib.inline".......].....}
08e0 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
0900 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":.{},....
0920 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 42 61 73 69 ..."source":.[........."\n#.Basi
0940 63 20 6d 61 74 70 6c 6f 74 6c 69 62 5c 6e 5c 6e 41 20 62 61 73 69 63 20 65 78 61 6d 70 6c 65 20 c.matplotlib\n\nA.basic.example.
0960 6f 66 20 33 44 20 47 72 61 70 68 20 76 69 73 75 61 6c 69 7a 61 74 69 6f 6e 20 75 73 69 6e 67 20 of.3D.Graph.visualization.using.
0980 60 6d 70 6c 5f 74 6f 6f 6c 6b 69 74 73 2e 6d 70 6c 6f 74 5f 33 64 60 2e 5c 6e 22 0a 20 20 20 20 `mpl_toolkits.mplot_3d`.\n".....
09a0 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
09c0 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
09e0 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":.{..
0a00 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.......
0a20 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
0a40 6f 75 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 65 74 77 6f 72 ource":.[........."import.networ
0a60 6b 78 20 61 73 20 6e 78 5c 6e 69 6d 70 6f 72 74 20 6e 75 6d 70 79 20 61 73 20 6e 70 5c 6e 69 6d kx.as.nx\nimport.numpy.as.np\nim
0a80 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 20 70 6c 74 5c 6e 66 port.matplotlib.pyplot.as.plt\nf
0aa0 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.
0ac0 41 78 65 73 33 44 5c 6e 5c 6e 23 20 54 68 65 20 67 72 61 70 68 20 74 6f 20 76 69 73 75 61 6c 69 Axes3D\n\n#.The.graph.to.visuali
0ae0 7a 65 5c 6e 47 20 3d 20 6e 78 2e 63 79 63 6c 65 5f 67 72 61 70 68 28 32 30 29 5c 6e 5c 6e 23 20 ze\nG.=.nx.cycle_graph(20)\n\n#.
0b00 33 64 20 73 70 72 69 6e 67 20 6c 61 79 6f 75 74 5c 6e 70 6f 73 20 3d 20 6e 78 2e 73 70 72 69 6e 3d.spring.layout\npos.=.nx.sprin
0b20 67 5f 6c 61 79 6f 75 74 28 47 2c 20 64 69 6d 3d 33 2c 20 73 65 65 64 3d 37 37 39 29 5c 6e 23 20 g_layout(G,.dim=3,.seed=779)\n#.
0b40 45 78 74 72 61 63 74 20 6e 6f 64 65 20 61 6e 64 20 65 64 67 65 20 70 6f 73 69 74 69 6f 6e 73 20 Extract.node.and.edge.positions.
0b60 66 72 6f 6d 20 74 68 65 20 6c 61 79 6f 75 74 5c 6e 6e 6f 64 65 5f 78 79 7a 20 3d 20 6e 70 2e 61 from.the.layout\nnode_xyz.=.np.a
0b80 72 72 61 79 28 5b 70 6f 73 5b 76 5d 20 66 6f 72 20 76 20 69 6e 20 73 6f 72 74 65 64 28 47 29 5d rray([pos[v].for.v.in.sorted(G)]
0ba0 29 5c 6e 65 64 67 65 5f 78 79 7a 20 3d 20 6e 70 2e 61 72 72 61 79 28 5b 28 70 6f 73 5b 75 5d 2c )\nedge_xyz.=.np.array([(pos[u],
0bc0 20 70 6f 73 5b 76 5d 29 20 66 6f 72 20 75 2c 20 76 20 69 6e 20 47 2e 65 64 67 65 73 28 29 5d 29 .pos[v]).for.u,.v.in.G.edges()])
0be0 5c 6e 5c 6e 23 20 43 72 65 61 74 65 20 74 68 65 20 33 44 20 66 69 67 75 72 65 5c 6e 66 69 67 20 \n\n#.Create.the.3D.figure\nfig.
0c00 3d 20 70 6c 74 2e 66 69 67 75 72 65 28 29 5c 6e 61 78 20 3d 20 66 69 67 2e 61 64 64 5f 73 75 62 =.plt.figure()\nax.=.fig.add_sub
0c20 70 6c 6f 74 28 31 31 31 2c 20 70 72 6f 6a 65 63 74 69 6f 6e 3d 5c 22 33 64 5c 22 29 5c 6e 5c 6e plot(111,.projection=\"3d\")\n\n
0c40 23 20 50 6c 6f 74 20 74 68 65 20 6e 6f 64 65 73 20 2d 20 61 6c 70 68 61 20 69 73 20 73 63 61 6c #.Plot.the.nodes.-.alpha.is.scal
0c60 65 64 20 62 79 20 5c 22 64 65 70 74 68 5c 22 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 5c 6e 61 ed.by.\"depth\".automatically\na
0c80 78 2e 73 63 61 74 74 65 72 28 2a 6e 6f 64 65 5f 78 79 7a 2e 54 2c 20 73 3d 31 30 30 2c 20 65 63 x.scatter(*node_xyz.T,.s=100,.ec
0ca0 3d 5c 22 77 5c 22 29 5c 6e 5c 6e 23 20 50 6c 6f 74 20 74 68 65 20 65 64 67 65 73 5c 6e 66 6f 72 =\"w\")\n\n#.Plot.the.edges\nfor
0cc0 20 76 69 7a 65 64 67 65 20 69 6e 20 65 64 67 65 5f 78 79 7a 3a 5c 6e 20 20 20 20 61 78 2e 70 6c .vizedge.in.edge_xyz:\n....ax.pl
0ce0 6f 74 28 2a 76 69 7a 65 64 67 65 2e 54 2c 20 63 6f 6c 6f 72 3d 5c 22 74 61 62 3a 67 72 61 79 5c ot(*vizedge.T,.color=\"tab:gray\
0d00 22 29 5c 6e 5c 6e 5c 6e 64 65 66 20 5f 66 6f 72 6d 61 74 5f 61 78 65 73 28 61 78 29 3a 5c 6e 20 ")\n\n\ndef._format_axes(ax):\n.
0d20 20 20 20 5c 22 5c 22 5c 22 56 69 73 75 61 6c 69 7a 61 74 69 6f 6e 20 6f 70 74 69 6f 6e 73 20 66 ...\"\"\"Visualization.options.f
0d40 6f 72 20 74 68 65 20 33 44 20 61 78 65 73 2e 5c 22 5c 22 5c 22 5c 6e 20 20 20 20 23 20 54 75 72 or.the.3D.axes.\"\"\"\n....#.Tur
0d60 6e 20 67 72 69 64 6c 69 6e 65 73 20 6f 66 66 5c 6e 20 20 20 20 61 78 2e 67 72 69 64 28 46 61 6c n.gridlines.off\n....ax.grid(Fal
0d80 73 65 29 5c 6e 20 20 20 20 23 20 53 75 70 70 72 65 73 73 20 74 69 63 6b 20 6c 61 62 65 6c 73 5c se)\n....#.Suppress.tick.labels\
0da0 6e 20 20 20 20 66 6f 72 20 64 69 6d 20 69 6e 20 28 61 78 2e 78 61 78 69 73 2c 20 61 78 2e 79 61 n....for.dim.in.(ax.xaxis,.ax.ya
0dc0 78 69 73 2c 20 61 78 2e 7a 61 78 69 73 29 3a 5c 6e 20 20 20 20 20 20 20 20 64 69 6d 2e 73 65 74 xis,.ax.zaxis):\n........dim.set
0de0 5f 74 69 63 6b 73 28 5b 5d 29 5c 6e 20 20 20 20 23 20 53 65 74 20 61 78 65 73 20 6c 61 62 65 6c _ticks([])\n....#.Set.axes.label
0e00 73 5c 6e 20 20 20 20 61 78 2e 73 65 74 5f 78 6c 61 62 65 6c 28 5c 22 78 5c 22 29 5c 6e 20 20 20 s\n....ax.set_xlabel(\"x\")\n...
0e20 20 61 78 2e 73 65 74 5f 79 6c 61 62 65 6c 28 5c 22 79 5c 22 29 5c 6e 20 20 20 20 61 78 2e 73 65 .ax.set_ylabel(\"y\")\n....ax.se
0e40 74 5f 7a 6c 61 62 65 6c 28 5c 22 7a 5c 22 29 5c 6e 5c 6e 5c 6e 5f 66 6f 72 6d 61 74 5f 61 78 65 t_zlabel(\"z\")\n\n\n_format_axe
0e60 73 28 61 78 29 5c 6e 66 69 67 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 5c 6e 70 6c 74 2e 73 s(ax)\nfig.tight_layout()\nplt.s
0e80 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
0ea0 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":.{...
0ec0 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",.
0ee0 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",.....
0f00 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".....},....."
0f20 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
0f40 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
0f60 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....
0f80 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":.".
0fa0 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
0fc0 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",.
0fe0 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
1000 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
1020 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 39 2e python3",......."version":."3.9.
1040 31 36 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 16".....}...},..."nbformat":.4,.
1060 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 00 .."nbformat_minor":.0.}PK.......
1080 00 1a 0f 5a 56 c7 83 85 22 d4 10 00 00 d4 10 00 00 1a 00 00 00 61 6c 67 6f 72 69 74 68 6d 73 2f ...ZV..."............algorithms/
10a0 70 6c 6f 74 5f 73 6e 61 70 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 22 3a 20 5b 0a 20 20 plot_snap.ipynb{..."cells":.[...
10c0 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",..
10e0 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,...
1100 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
1120 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
1140 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":.[....
1160 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".......
1180 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"
11a0 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":.
11c0 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":.[........."\
11e0 6e 23 20 53 4e 41 50 20 47 72 61 70 68 20 53 75 6d 6d 61 72 79 5c 6e 41 6e 20 65 78 61 6d 70 6c n#.SNAP.Graph.Summary\nAn.exampl
1200 65 20 6f 66 20 73 75 6d 6d 61 72 69 7a 69 6e 67 20 61 20 67 72 61 70 68 20 62 61 73 65 64 20 6f e.of.summarizing.a.graph.based.o
1220 6e 20 6e 6f 64 65 20 61 74 74 72 69 62 75 74 65 73 20 61 6e 64 20 65 64 67 65 20 61 74 74 72 69 n.node.attributes.and.edge.attri
1240 62 75 74 65 73 5c 6e 75 73 69 6e 67 20 74 68 65 20 53 75 6d 6d 61 72 69 7a 61 74 69 6f 6e 20 62 butes\nusing.the.Summarization.b
1260 79 20 47 72 6f 75 70 69 6e 67 20 4e 6f 64 65 73 20 6f 6e 20 41 74 74 72 69 62 75 74 65 73 20 61 y.Grouping.Nodes.on.Attributes.a
1280 6e 64 20 50 61 69 72 77 69 73 65 5c 6e 65 64 67 65 73 20 28 53 4e 41 50 29 20 61 6c 67 6f 72 69 nd.Pairwise\nedges.(SNAP).algori
12a0 74 68 6d 20 28 6e 6f 74 20 74 6f 20 62 65 20 63 6f 6e 66 75 73 65 64 20 77 69 74 68 20 74 68 65 thm.(not.to.be.confused.with.the
12c0 20 53 74 61 6e 66 6f 72 64 20 4e 65 74 77 6f 72 6b 5c 6e 41 6e 61 6c 79 73 69 73 20 50 72 6f 6a .Stanford.Network\nAnalysis.Proj
12e0 65 63 74 29 2e 20 20 54 68 65 20 61 6c 67 6f 72 69 74 68 6d 20 67 72 6f 75 70 73 20 6e 6f 64 65 ect)...The.algorithm.groups.node
1300 73 20 62 79 20 74 68 65 69 72 20 75 6e 69 71 75 65 5c 6e 63 6f 6d 62 69 6e 61 74 69 6f 6e 73 20 s.by.their.unique\ncombinations.
1320 6f 66 20 6e 6f 64 65 20 61 74 74 72 69 62 75 74 65 20 76 61 6c 75 65 73 20 61 6e 64 20 65 64 67 of.node.attribute.values.and.edg
1340 65 20 74 79 70 65 73 20 77 69 74 68 20 6f 74 68 65 72 20 67 72 6f 75 70 73 5c 6e 6f 66 20 6e 6f e.types.with.other.groups\nof.no
1360 64 65 73 20 74 6f 20 70 72 6f 64 75 63 65 20 61 20 73 75 6d 6d 61 72 79 20 67 72 61 70 68 2e 20 des.to.produce.a.summary.graph..
1380 20 54 68 65 20 73 75 6d 6d 61 72 79 20 67 72 61 70 68 20 63 61 6e 20 74 68 65 6e 20 62 65 20 75 .The.summary.graph.can.then.be.u
13a0 73 65 64 20 74 6f 5c 6e 69 6e 66 65 72 20 68 6f 77 20 6e 6f 64 65 73 20 77 69 74 68 20 64 69 66 sed.to\ninfer.how.nodes.with.dif
13c0 66 65 72 65 6e 74 20 61 74 74 72 69 62 75 74 65 73 20 76 61 6c 75 65 73 20 72 65 6c 61 74 65 20 ferent.attributes.values.relate.
13e0 74 6f 20 6f 74 68 65 72 20 6e 6f 64 65 73 20 69 6e 20 74 68 65 5c 6e 67 72 61 70 68 2e 5c 6e 22 to.other.nodes.in.the\ngraph.\n"
1400 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
1420 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
1440 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"
1460 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..
1480 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":.[],....
14a0 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 72 74 20 6e ..."source":.[........."import.n
14c0 65 74 77 6f 72 6b 78 20 61 73 20 6e 78 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 etworkx.as.nx\nimport.matplotlib
14e0 2e 70 79 70 6c 6f 74 20 61 73 20 70 6c 74 5c 6e 5c 6e 5c 6e 6e 6f 64 65 73 20 3d 20 7b 5c 6e 20 .pyplot.as.plt\n\n\nnodes.=.{\n.
1500 20 20 20 5c 22 41 5c 22 3a 20 7b 5c 22 63 6f 6c 6f 72 5c 22 3a 20 5c 22 52 65 64 5c 22 7d 2c 5c ...\"A\":.{\"color\":.\"Red\"},\
1520 6e 20 20 20 20 5c 22 42 5c 22 3a 20 7b 5c 22 63 6f 6c 6f 72 5c 22 3a 20 5c 22 52 65 64 5c 22 7d n....\"B\":.{\"color\":.\"Red\"}
1540 2c 5c 6e 20 20 20 20 5c 22 43 5c 22 3a 20 7b 5c 22 63 6f 6c 6f 72 5c 22 3a 20 5c 22 52 65 64 5c ,\n....\"C\":.{\"color\":.\"Red\
1560 22 7d 2c 5c 6e 20 20 20 20 5c 22 44 5c 22 3a 20 7b 5c 22 63 6f 6c 6f 72 5c 22 3a 20 5c 22 52 65 "},\n....\"D\":.{\"color\":.\"Re
1580 64 5c 22 7d 2c 5c 6e 20 20 20 20 5c 22 45 5c 22 3a 20 7b 5c 22 63 6f 6c 6f 72 5c 22 3a 20 5c 22 d\"},\n....\"E\":.{\"color\":.\"
15a0 42 6c 75 65 5c 22 7d 2c 5c 6e 20 20 20 20 5c 22 46 5c 22 3a 20 7b 5c 22 63 6f 6c 6f 72 5c 22 3a Blue\"},\n....\"F\":.{\"color\":
15c0 20 5c 22 42 6c 75 65 5c 22 7d 2c 5c 6e 20 20 20 20 5c 22 47 5c 22 3a 20 7b 5c 22 63 6f 6c 6f 72 .\"Blue\"},\n....\"G\":.{\"color
15e0 5c 22 3a 20 5c 22 42 6c 75 65 5c 22 7d 2c 5c 6e 20 20 20 20 5c 22 48 5c 22 3a 20 7b 5c 22 63 6f \":.\"Blue\"},\n....\"H\":.{\"co
1600 6c 6f 72 5c 22 3a 20 5c 22 42 6c 75 65 5c 22 7d 2c 5c 6e 20 20 20 20 5c 22 49 5c 22 3a 20 7b 5c lor\":.\"Blue\"},\n....\"I\":.{\
1620 22 63 6f 6c 6f 72 5c 22 3a 20 5c 22 59 65 6c 6c 6f 77 5c 22 7d 2c 5c 6e 20 20 20 20 5c 22 4a 5c "color\":.\"Yellow\"},\n....\"J\
1640 22 3a 20 7b 5c 22 63 6f 6c 6f 72 5c 22 3a 20 5c 22 59 65 6c 6c 6f 77 5c 22 7d 2c 5c 6e 20 20 20 ":.{\"color\":.\"Yellow\"},\n...
1660 20 5c 22 4b 5c 22 3a 20 7b 5c 22 63 6f 6c 6f 72 5c 22 3a 20 5c 22 59 65 6c 6c 6f 77 5c 22 7d 2c .\"K\":.{\"color\":.\"Yellow\"},
1680 5c 6e 20 20 20 20 5c 22 4c 5c 22 3a 20 7b 5c 22 63 6f 6c 6f 72 5c 22 3a 20 5c 22 59 65 6c 6c 6f \n....\"L\":.{\"color\":.\"Yello
16a0 77 5c 22 7d 2c 5c 6e 7d 5c 6e 65 64 67 65 73 20 3d 20 5b 5c 6e 20 20 20 20 28 5c 22 41 5c 22 2c w\"},\n}\nedges.=.[\n....(\"A\",
16c0 20 5c 22 42 5c 22 2c 20 5c 22 53 74 72 6f 6e 67 5c 22 29 2c 5c 6e 20 20 20 20 28 5c 22 41 5c 22 .\"B\",.\"Strong\"),\n....(\"A\"
16e0 2c 20 5c 22 43 5c 22 2c 20 5c 22 57 65 61 6b 5c 22 29 2c 5c 6e 20 20 20 20 28 5c 22 41 5c 22 2c ,.\"C\",.\"Weak\"),\n....(\"A\",
1700 20 5c 22 45 5c 22 2c 20 5c 22 53 74 72 6f 6e 67 5c 22 29 2c 5c 6e 20 20 20 20 28 5c 22 41 5c 22 .\"E\",.\"Strong\"),\n....(\"A\"
1720 2c 20 5c 22 49 5c 22 2c 20 5c 22 57 65 61 6b 5c 22 29 2c 5c 6e 20 20 20 20 28 5c 22 42 5c 22 2c ,.\"I\",.\"Weak\"),\n....(\"B\",
1740 20 5c 22 44 5c 22 2c 20 5c 22 57 65 61 6b 5c 22 29 2c 5c 6e 20 20 20 20 28 5c 22 42 5c 22 2c 20 .\"D\",.\"Weak\"),\n....(\"B\",.
1760 5c 22 4a 5c 22 2c 20 5c 22 57 65 61 6b 5c 22 29 2c 5c 6e 20 20 20 20 28 5c 22 42 5c 22 2c 20 5c \"J\",.\"Weak\"),\n....(\"B\",.\
1780 22 46 5c 22 2c 20 5c 22 53 74 72 6f 6e 67 5c 22 29 2c 5c 6e 20 20 20 20 28 5c 22 43 5c 22 2c 20 "F\",.\"Strong\"),\n....(\"C\",.
17a0 5c 22 47 5c 22 2c 20 5c 22 57 65 61 6b 5c 22 29 2c 5c 6e 20 20 20 20 28 5c 22 44 5c 22 2c 20 5c \"G\",.\"Weak\"),\n....(\"D\",.\
17c0 22 48 5c 22 2c 20 5c 22 57 65 61 6b 5c 22 29 2c 5c 6e 20 20 20 20 28 5c 22 49 5c 22 2c 20 5c 22 "H\",.\"Weak\"),\n....(\"I\",.\"
17e0 4a 5c 22 2c 20 5c 22 53 74 72 6f 6e 67 5c 22 29 2c 5c 6e 20 20 20 20 28 5c 22 4a 5c 22 2c 20 5c J\",.\"Strong\"),\n....(\"J\",.\
1800 22 4b 5c 22 2c 20 5c 22 53 74 72 6f 6e 67 5c 22 29 2c 5c 6e 20 20 20 20 28 5c 22 49 5c 22 2c 20 "K\",.\"Strong\"),\n....(\"I\",.
1820 5c 22 4c 5c 22 2c 20 5c 22 53 74 72 6f 6e 67 5c 22 29 2c 5c 6e 5d 5c 6e 6f 72 69 67 69 6e 61 6c \"L\",.\"Strong\"),\n]\noriginal
1840 5f 67 72 61 70 68 20 3d 20 6e 78 2e 47 72 61 70 68 28 29 5c 6e 6f 72 69 67 69 6e 61 6c 5f 67 72 _graph.=.nx.Graph()\noriginal_gr
1860 61 70 68 2e 61 64 64 5f 6e 6f 64 65 73 5f 66 72 6f 6d 28 6e 20 66 6f 72 20 6e 20 69 6e 20 6e 6f aph.add_nodes_from(n.for.n.in.no
1880 64 65 73 2e 69 74 65 6d 73 28 29 29 5c 6e 6f 72 69 67 69 6e 61 6c 5f 67 72 61 70 68 2e 61 64 64 des.items())\noriginal_graph.add
18a0 5f 65 64 67 65 73 5f 66 72 6f 6d 28 28 75 2c 20 76 2c 20 7b 5c 22 74 79 70 65 5c 22 3a 20 6c 61 _edges_from((u,.v,.{\"type\":.la
18c0 62 65 6c 7d 29 20 66 6f 72 20 75 2c 20 76 2c 20 6c 61 62 65 6c 20 69 6e 20 65 64 67 65 73 29 5c bel}).for.u,.v,.label.in.edges)\
18e0 6e 5c 6e 5c 6e 70 6c 74 2e 73 75 70 74 69 74 6c 65 28 5c 22 53 4e 41 50 20 53 75 6d 6d 61 72 69 n\n\nplt.suptitle(\"SNAP.Summari
1900 7a 61 74 69 6f 6e 5c 22 29 5c 6e 5c 6e 62 61 73 65 5f 6f 70 74 69 6f 6e 73 20 3d 20 7b 5c 22 77 zation\")\n\nbase_options.=.{\"w
1920 69 74 68 5f 6c 61 62 65 6c 73 5c 22 3a 20 54 72 75 65 2c 20 5c 22 65 64 67 65 63 6f 6c 6f 72 73 ith_labels\":.True,.\"edgecolors
1940 5c 22 3a 20 5c 22 62 6c 61 63 6b 5c 22 2c 20 5c 22 6e 6f 64 65 5f 73 69 7a 65 5c 22 3a 20 35 30 \":.\"black\",.\"node_size\":.50
1960 30 7d 5c 6e 5c 6e 61 78 31 20 3d 20 70 6c 74 2e 73 75 62 70 6c 6f 74 28 31 2c 20 32 2c 20 31 29 0}\n\nax1.=.plt.subplot(1,.2,.1)
1980 5c 6e 70 6c 74 2e 74 69 74 6c 65 28 5c 6e 20 20 20 20 5c 22 4f 72 69 67 69 6e 61 6c 20 28 25 73 \nplt.title(\n....\"Original.(%s
19a0 20 6e 6f 64 65 73 2c 20 25 73 20 65 64 67 65 73 29 5c 22 5c 6e 20 20 20 20 25 20 28 6f 72 69 67 .nodes,.%s.edges)\"\n....%.(orig
19c0 69 6e 61 6c 5f 67 72 61 70 68 2e 6e 75 6d 62 65 72 5f 6f 66 5f 6e 6f 64 65 73 28 29 2c 20 6f 72 inal_graph.number_of_nodes(),.or
19e0 69 67 69 6e 61 6c 5f 67 72 61 70 68 2e 6e 75 6d 62 65 72 5f 6f 66 5f 65 64 67 65 73 28 29 29 5c iginal_graph.number_of_edges())\
1a00 6e 29 5c 6e 70 6f 73 20 3d 20 6e 78 2e 73 70 72 69 6e 67 5f 6c 61 79 6f 75 74 28 6f 72 69 67 69 n)\npos.=.nx.spring_layout(origi
1a20 6e 61 6c 5f 67 72 61 70 68 2c 20 73 65 65 64 3d 37 34 38 32 39 33 34 29 5c 6e 6e 6f 64 65 5f 63 nal_graph,.seed=7482934)\nnode_c
1a40 6f 6c 6f 72 73 20 3d 20 5b 64 5b 5c 22 63 6f 6c 6f 72 5c 22 5d 20 66 6f 72 20 5f 2c 20 64 20 69 olors.=.[d[\"color\"].for._,.d.i
1a60 6e 20 6f 72 69 67 69 6e 61 6c 5f 67 72 61 70 68 2e 6e 6f 64 65 73 28 64 61 74 61 3d 54 72 75 65 n.original_graph.nodes(data=True
1a80 29 5d 5c 6e 5c 6e 65 64 67 65 5f 74 79 70 65 5f 76 69 73 75 61 6c 5f 77 65 69 67 68 74 5f 6c 6f )]\n\nedge_type_visual_weight_lo
1aa0 6f 6b 75 70 20 3d 20 7b 5c 22 57 65 61 6b 5c 22 3a 20 31 2e 30 2c 20 5c 22 53 74 72 6f 6e 67 5c okup.=.{\"Weak\":.1.0,.\"Strong\
1ac0 22 3a 20 33 2e 30 7d 5c 6e 65 64 67 65 5f 77 65 69 67 68 74 73 20 3d 20 5b 5c 6e 20 20 20 20 65 ":.3.0}\nedge_weights.=.[\n....e
1ae0 64 67 65 5f 74 79 70 65 5f 76 69 73 75 61 6c 5f 77 65 69 67 68 74 5f 6c 6f 6f 6b 75 70 5b 64 5b dge_type_visual_weight_lookup[d[
1b00 5c 22 74 79 70 65 5c 22 5d 5d 5c 6e 20 20 20 20 66 6f 72 20 5f 2c 20 5f 2c 20 64 20 69 6e 20 6f \"type\"]]\n....for._,._,.d.in.o
1b20 72 69 67 69 6e 61 6c 5f 67 72 61 70 68 2e 65 64 67 65 73 28 64 61 74 61 3d 54 72 75 65 29 5c 6e riginal_graph.edges(data=True)\n
1b40 5d 5c 6e 5c 6e 6e 78 2e 64 72 61 77 5f 6e 65 74 77 6f 72 6b 78 28 5c 6e 20 20 20 20 6f 72 69 67 ]\n\nnx.draw_networkx(\n....orig
1b60 69 6e 61 6c 5f 67 72 61 70 68 2c 20 70 6f 73 3d 70 6f 73 2c 20 6e 6f 64 65 5f 63 6f 6c 6f 72 3d inal_graph,.pos=pos,.node_color=
1b80 6e 6f 64 65 5f 63 6f 6c 6f 72 73 2c 20 77 69 64 74 68 3d 65 64 67 65 5f 77 65 69 67 68 74 73 2c node_colors,.width=edge_weights,
1ba0 20 2a 2a 62 61 73 65 5f 6f 70 74 69 6f 6e 73 5c 6e 29 5c 6e 5c 6e 6e 6f 64 65 5f 61 74 74 72 69 .**base_options\n)\n\nnode_attri
1bc0 62 75 74 65 73 20 3d 20 28 5c 22 63 6f 6c 6f 72 5c 22 2c 29 5c 6e 65 64 67 65 5f 61 74 74 72 69 butes.=.(\"color\",)\nedge_attri
1be0 62 75 74 65 73 20 3d 20 28 5c 22 74 79 70 65 5c 22 2c 29 5c 6e 73 75 6d 6d 61 72 79 5f 67 72 61 butes.=.(\"type\",)\nsummary_gra
1c00 70 68 20 3d 20 6e 78 2e 73 6e 61 70 5f 61 67 67 72 65 67 61 74 69 6f 6e 28 5c 6e 20 20 20 20 6f ph.=.nx.snap_aggregation(\n....o
1c20 72 69 67 69 6e 61 6c 5f 67 72 61 70 68 2c 20 6e 6f 64 65 5f 61 74 74 72 69 62 75 74 65 73 2c 20 riginal_graph,.node_attributes,.
1c40 65 64 67 65 5f 61 74 74 72 69 62 75 74 65 73 2c 20 70 72 65 66 69 78 3d 5c 22 53 2d 5c 22 5c 6e edge_attributes,.prefix=\"S-\"\n
1c60 29 5c 6e 5c 6e 70 6c 74 2e 73 75 62 70 6c 6f 74 28 31 2c 20 32 2c 20 32 29 5c 6e 5c 6e 70 6c 74 )\n\nplt.subplot(1,.2,.2)\n\nplt
1c80 2e 74 69 74 6c 65 28 5c 6e 20 20 20 20 5c 22 53 4e 41 50 20 41 67 67 72 65 67 61 74 69 6f 6e 20 .title(\n....\"SNAP.Aggregation.
1ca0 28 25 73 20 6e 6f 64 65 73 2c 20 25 73 20 65 64 67 65 73 29 5c 22 5c 6e 20 20 20 20 25 20 28 73 (%s.nodes,.%s.edges)\"\n....%.(s
1cc0 75 6d 6d 61 72 79 5f 67 72 61 70 68 2e 6e 75 6d 62 65 72 5f 6f 66 5f 6e 6f 64 65 73 28 29 2c 20 ummary_graph.number_of_nodes(),.
1ce0 73 75 6d 6d 61 72 79 5f 67 72 61 70 68 2e 6e 75 6d 62 65 72 5f 6f 66 5f 65 64 67 65 73 28 29 29 summary_graph.number_of_edges())
1d00 5c 6e 29 5c 6e 73 75 6d 6d 61 72 79 5f 70 6f 73 20 3d 20 6e 78 2e 73 70 72 69 6e 67 5f 6c 61 79 \n)\nsummary_pos.=.nx.spring_lay
1d20 6f 75 74 28 73 75 6d 6d 61 72 79 5f 67 72 61 70 68 2c 20 73 65 65 64 3d 38 33 37 35 34 32 38 29 out(summary_graph,.seed=8375428)
1d40 5c 6e 6e 6f 64 65 5f 63 6f 6c 6f 72 73 20 3d 20 5b 5d 5c 6e 66 6f 72 20 6e 6f 64 65 20 69 6e 20 \nnode_colors.=.[]\nfor.node.in.
1d60 73 75 6d 6d 61 72 79 5f 67 72 61 70 68 3a 5c 6e 20 20 20 20 63 6f 6c 6f 72 20 3d 20 73 75 6d 6d summary_graph:\n....color.=.summ
1d80 61 72 79 5f 67 72 61 70 68 2e 6e 6f 64 65 73 5b 6e 6f 64 65 5d 5b 5c 22 63 6f 6c 6f 72 5c 22 5d ary_graph.nodes[node][\"color\"]
1da0 5c 6e 20 20 20 20 6e 6f 64 65 5f 63 6f 6c 6f 72 73 2e 61 70 70 65 6e 64 28 63 6f 6c 6f 72 29 5c \n....node_colors.append(color)\
1dc0 6e 5c 6e 65 64 67 65 5f 77 65 69 67 68 74 73 20 3d 20 5b 5d 5c 6e 66 6f 72 20 65 64 67 65 20 69 n\nedge_weights.=.[]\nfor.edge.i
1de0 6e 20 73 75 6d 6d 61 72 79 5f 67 72 61 70 68 2e 65 64 67 65 73 28 29 3a 5c 6e 20 20 20 20 65 64 n.summary_graph.edges():\n....ed
1e00 67 65 5f 74 79 70 65 73 20 3d 20 73 75 6d 6d 61 72 79 5f 67 72 61 70 68 2e 67 65 74 5f 65 64 67 ge_types.=.summary_graph.get_edg
1e20 65 5f 64 61 74 61 28 2a 65 64 67 65 29 5b 5c 22 74 79 70 65 73 5c 22 5d 5c 6e 20 20 20 20 65 64 e_data(*edge)[\"types\"]\n....ed
1e40 67 65 5f 77 65 69 67 68 74 20 3d 20 30 2e 30 5c 6e 20 20 20 20 66 6f 72 20 65 64 67 65 5f 74 79 ge_weight.=.0.0\n....for.edge_ty
1e60 70 65 20 69 6e 20 65 64 67 65 5f 74 79 70 65 73 3a 5c 6e 20 20 20 20 20 20 20 20 65 64 67 65 5f pe.in.edge_types:\n........edge_
1e80 77 65 69 67 68 74 20 2b 3d 20 65 64 67 65 5f 74 79 70 65 5f 76 69 73 75 61 6c 5f 77 65 69 67 68 weight.+=.edge_type_visual_weigh
1ea0 74 5f 6c 6f 6f 6b 75 70 5b 65 64 67 65 5f 74 79 70 65 5b 5c 22 74 79 70 65 5c 22 5d 5d 5c 6e 20 t_lookup[edge_type[\"type\"]]\n.
1ec0 20 20 20 65 64 67 65 5f 77 65 69 67 68 74 73 2e 61 70 70 65 6e 64 28 65 64 67 65 5f 77 65 69 67 ...edge_weights.append(edge_weig
1ee0 68 74 29 5c 6e 5c 6e 6e 78 2e 64 72 61 77 5f 6e 65 74 77 6f 72 6b 78 28 5c 6e 20 20 20 20 73 75 ht)\n\nnx.draw_networkx(\n....su
1f00 6d 6d 61 72 79 5f 67 72 61 70 68 2c 5c 6e 20 20 20 20 70 6f 73 3d 73 75 6d 6d 61 72 79 5f 70 6f mmary_graph,\n....pos=summary_po
1f20 73 2c 5c 6e 20 20 20 20 6e 6f 64 65 5f 63 6f 6c 6f 72 3d 6e 6f 64 65 5f 63 6f 6c 6f 72 73 2c 5c s,\n....node_color=node_colors,\
1f40 6e 20 20 20 20 77 69 64 74 68 3d 65 64 67 65 5f 77 65 69 67 68 74 73 2c 5c 6e 20 20 20 20 2a 2a n....width=edge_weights,\n....**
1f60 62 61 73 65 5f 6f 70 74 69 6f 6e 73 5c 6e 29 5c 6e 5c 6e 70 6c 74 2e 74 69 67 68 74 5f 6c 61 79 base_options\n)\n\nplt.tight_lay
1f80 6f 75 74 28 29 5c 6e 70 6c 74 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d out()\nplt.show()".......].....}
1fa0 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
1fc0 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":.
1fe0 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
2000 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".
2020 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":.{...
2040 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":.{........
2060 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
2080 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
20a0 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
20c0 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"
20e0 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
2100 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
2120 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
2140 73 69 6f 6e 22 3a 20 22 33 2e 39 2e 31 36 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 6e 62 sion":."3.9.16".....}...},..."nb
2160 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 3a 20 format":.4,..."nbformat_minor":.
2180 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 0f 0f 5a 56 22 5d fe 28 56 07 00 00 56 07 00 00 2d 00 00 0.}PK..........ZV"].(V...V...-..
21a0 00 61 6c 67 6f 72 69 74 68 6d 73 2f 70 6c 6f 74 5f 6d 61 78 69 6d 75 6d 5f 69 6e 64 65 70 65 6e .algorithms/plot_maximum_indepen
21c0 64 65 6e 74 5f 73 65 74 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 22 3a 20 5b 0a 20 20 20 dent_set.ipynb{..."cells":.[....
21e0 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",...
2200 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,....
2220 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
2240 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
2260 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":.[.....
2280 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".......]
22a0 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":
22c0 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":.{
22e0 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
2300 23 20 4d 61 78 69 6d 75 6d 20 49 6e 64 65 70 65 6e 64 65 6e 74 20 53 65 74 5c 6e 5c 6e 41 6e 20 #.Maximum.Independent.Set\n\nAn.
2320 69 6e 64 65 70 65 6e 64 65 6e 74 20 73 65 74 20 69 73 20 61 20 73 65 74 20 6f 66 20 76 65 72 74 independent.set.is.a.set.of.vert
2340 69 63 65 73 20 69 6e 20 61 20 67 72 61 70 68 20 77 68 65 72 65 20 6e 6f 20 74 77 6f 20 76 65 72 ices.in.a.graph.where.no.two.ver
2360 74 69 63 65 73 20 69 6e 20 74 68 65 5c 6e 73 65 74 20 61 72 65 20 61 64 6a 61 63 65 6e 74 2e 20 tices.in.the\nset.are.adjacent..
2380 54 68 65 20 6d 61 78 69 6d 75 6d 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 73 65 74 20 69 73 20 74 The.maximum.independent.set.is.t
23a0 68 65 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 73 65 74 20 6f 66 20 6c 61 72 67 65 73 74 5c 6e 70 he.independent.set.of.largest\np
23c0 6f 73 73 69 62 6c 65 20 73 69 7a 65 20 66 6f 72 20 61 20 67 69 76 65 6e 20 67 72 61 70 68 2e 5c ossible.size.for.a.given.graph.\
23e0 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
2400 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
2420 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
2440 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
2460 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":.[],..
2480 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 72 74 ....."source":.[........."import
24a0 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 62 2e .numpy.as.np\nimport.matplotlib.
24c0 70 79 70 6c 6f 74 20 61 73 20 70 6c 74 5c 6e 69 6d 70 6f 72 74 20 6e 65 74 77 6f 72 6b 78 20 61 pyplot.as.plt\nimport.networkx.a
24e0 73 20 6e 78 5c 6e 66 72 6f 6d 20 6e 65 74 77 6f 72 6b 78 2e 61 6c 67 6f 72 69 74 68 6d 73 20 69 s.nx\nfrom.networkx.algorithms.i
2500 6d 70 6f 72 74 20 61 70 70 72 6f 78 69 6d 61 74 69 6f 6e 20 61 73 20 61 70 70 72 6f 78 5c 6e 5c mport.approximation.as.approx\n\
2520 6e 47 20 3d 20 6e 78 2e 47 72 61 70 68 28 5c 6e 20 20 20 20 5b 5c 6e 20 20 20 20 20 20 20 20 28 nG.=.nx.Graph(\n....[\n........(
2540 31 2c 20 32 29 2c 5c 6e 20 20 20 20 20 20 20 20 28 37 2c 20 32 29 2c 5c 6e 20 20 20 20 20 20 20 1,.2),\n........(7,.2),\n.......
2560 20 28 33 2c 20 39 29 2c 5c 6e 20 20 20 20 20 20 20 20 28 33 2c 20 32 29 2c 5c 6e 20 20 20 20 20 .(3,.9),\n........(3,.2),\n.....
2580 20 20 20 28 37 2c 20 36 29 2c 5c 6e 20 20 20 20 20 20 20 20 28 35 2c 20 32 29 2c 5c 6e 20 20 20 ...(7,.6),\n........(5,.2),\n...
25a0 20 20 20 20 20 28 31 2c 20 35 29 2c 5c 6e 20 20 20 20 20 20 20 20 28 32 2c 20 38 29 2c 5c 6e 20 .....(1,.5),\n........(2,.8),\n.
25c0 20 20 20 20 20 20 20 28 31 30 2c 20 32 29 2c 5c 6e 20 20 20 20 20 20 20 20 28 31 2c 20 37 29 2c .......(10,.2),\n........(1,.7),
25e0 5c 6e 20 20 20 20 20 20 20 20 28 36 2c 20 31 29 2c 5c 6e 20 20 20 20 20 20 20 20 28 36 2c 20 39 \n........(6,.1),\n........(6,.9
2600 29 2c 5c 6e 20 20 20 20 20 20 20 20 28 38 2c 20 34 29 2c 5c 6e 20 20 20 20 20 20 20 20 28 39 2c ),\n........(8,.4),\n........(9,
2620 20 34 29 2c 5c 6e 20 20 20 20 5d 5c 6e 29 5c 6e 5c 6e 49 20 3d 20 61 70 70 72 6f 78 2e 6d 61 78 .4),\n....]\n)\n\nI.=.approx.max
2640 69 6d 75 6d 5f 69 6e 64 65 70 65 6e 64 65 6e 74 5f 73 65 74 28 47 29 5c 6e 70 72 69 6e 74 28 66 imum_independent_set(G)\nprint(f
2660 5c 22 4d 61 78 69 6d 75 6d 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 73 65 74 20 6f 66 20 47 3a 20 \"Maximum.independent.set.of.G:.
2680 7b 49 7d 5c 22 29 5c 6e 5c 6e 70 6f 73 20 3d 20 6e 78 2e 73 70 72 69 6e 67 5f 6c 61 79 6f 75 74 {I}\")\n\npos.=.nx.spring_layout
26a0 28 47 2c 20 73 65 65 64 3d 33 39 32 39 39 38 39 39 29 5c 6e 6e 78 2e 64 72 61 77 28 5c 6e 20 20 (G,.seed=39299899)\nnx.draw(\n..
26c0 20 20 47 2c 5c 6e 20 20 20 20 70 6f 73 3d 70 6f 73 2c 5c 6e 20 20 20 20 77 69 74 68 5f 6c 61 62 ..G,\n....pos=pos,\n....with_lab
26e0 65 6c 73 3d 54 72 75 65 2c 5c 6e 20 20 20 20 6e 6f 64 65 5f 63 6f 6c 6f 72 3d 5b 5c 22 74 61 62 els=True,\n....node_color=[\"tab
2700 3a 72 65 64 5c 22 20 69 66 20 6e 20 69 6e 20 49 20 65 6c 73 65 20 5c 22 74 61 62 3a 62 6c 75 65 :red\".if.n.in.I.else.\"tab:blue
2720 5c 22 20 66 6f 72 20 6e 20 69 6e 20 47 5d 2c 5c 6e 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 \".for.n.in.G],\n)".......].....
2740 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 72 6e }...],..."metadata":.{....."kern
2760 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 22 3a elspec":.{......."display_name":
2780 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 20 22 ."Python.3",......."language":."
27a0 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 33 22 python",......."name":."python3"
27c0 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 0a 20 .....},....."language_info":.{..
27e0 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 20 20 ....."codemirror_mode":.{.......
2800 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 76 65 .."name":."ipython",........."ve
2820 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 5f 65 rsion":.3.......},......."file_e
2840 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 79 70 xtension":.".py",......."mimetyp
2860 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 6d 65 e":."text/x-python",......."name
2880 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 65 78 ":."python",......."nbconvert_ex
28a0 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 65 6e porter":."python",......."pygmen
28c0 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 76 65 ts_lexer":."ipython3",......."ve
28e0 72 73 69 6f 6e 22 3a 20 22 33 2e 39 2e 31 36 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 6e rsion":."3.9.16".....}...},..."n
2900 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 3a bformat":.4,..."nbformat_minor":
2920 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 0f 0f 5a 56 91 d0 1f 75 5d 0d 00 00 5d 0d 00 00 25 00 .0.}PK..........ZV...u]...]...%.
2940 00 00 61 6c 67 6f 72 69 74 68 6d 73 2f 70 6c 6f 74 5f 64 65 64 65 6e 73 69 66 69 63 61 74 69 6f ..algorithms/plot_dedensificatio
2960 6e 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 n.ipynb{..."cells":.[.....{.....
2980 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
29a0 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
29c0 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
29e0 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":.[
2a00 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
2a20 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".......].....},
2a40 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
2a60 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":.{},.....
2a80 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 44 65 64 65 6e .."source":.[........."\n#.Deden
2aa0 73 69 66 69 63 61 74 69 6f 6e 5c 6e 5c 6e 45 78 61 6d 70 6c 65 73 20 6f 66 20 64 65 64 65 6e 73 sification\n\nExamples.of.dedens
2ac0 69 66 69 63 61 74 69 6f 6e 20 6f 66 20 61 20 67 72 61 70 68 2e 20 20 44 65 64 65 6e 73 69 66 69 ification.of.a.graph...Dedensifi
2ae0 63 61 74 69 6f 6e 20 72 65 74 61 69 6e 73 20 74 68 65 20 73 74 72 75 63 74 75 72 61 6c 5c 6e 70 cation.retains.the.structural\np
2b00 61 74 74 65 72 6e 20 6f 66 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 67 72 61 70 68 20 61 6e 64 attern.of.the.original.graph.and
2b20 20 77 69 6c 6c 20 6f 6e 6c 79 20 61 64 64 20 63 6f 6d 70 72 65 73 73 6f 72 20 6e 6f 64 65 73 20 .will.only.add.compressor.nodes.
2b40 77 68 65 6e 20 64 6f 69 6e 67 20 73 6f 5c 6e 77 6f 75 6c 64 20 72 65 73 75 6c 74 20 69 6e 20 66 when.doing.so\nwould.result.in.f
2b60 65 77 65 72 20 65 64 67 65 73 20 69 6e 20 74 68 65 20 63 6f 6d 70 72 65 73 73 65 64 20 67 72 61 ewer.edges.in.the.compressed.gra
2b80 70 68 2e 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 ph.\n".......].....},.....{.....
2ba0 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
2bc0 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
2be0 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
2c00 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":.[
2c20 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 69 6d ],......."source":.[........."im
2c40 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 20 70 6c 74 5c 6e 69 port.matplotlib.pyplot.as.plt\ni
2c60 6d 70 6f 72 74 20 6e 65 74 77 6f 72 6b 78 20 61 73 20 6e 78 5c 6e 5c 6e 70 6c 74 2e 73 75 70 74 mport.networkx.as.nx\n\nplt.supt
2c80 69 74 6c 65 28 5c 22 44 65 64 65 6e 73 69 66 69 63 61 74 69 6f 6e 5c 22 29 5c 6e 5c 6e 6f 72 69 itle(\"Dedensification\")\n\nori
2ca0 67 69 6e 61 6c 5f 67 72 61 70 68 20 3d 20 6e 78 2e 44 69 47 72 61 70 68 28 29 5c 6e 77 68 69 74 ginal_graph.=.nx.DiGraph()\nwhit
2cc0 65 5f 6e 6f 64 65 73 20 3d 20 5b 5c 22 31 5c 22 2c 20 5c 22 32 5c 22 2c 20 5c 22 33 5c 22 2c 20 e_nodes.=.[\"1\",.\"2\",.\"3\",.
2ce0 5c 22 34 5c 22 2c 20 5c 22 35 5c 22 2c 20 5c 22 36 5c 22 5d 5c 6e 72 65 64 5f 6e 6f 64 65 73 20 \"4\",.\"5\",.\"6\"]\nred_nodes.
2d00 3d 20 5b 5c 22 41 5c 22 2c 20 5c 22 42 5c 22 2c 20 5c 22 43 5c 22 5d 5c 6e 6e 6f 64 65 5f 73 69 =.[\"A\",.\"B\",.\"C\"]\nnode_si
2d20 7a 65 73 20 3d 20 5b 32 35 30 20 66 6f 72 20 6e 6f 64 65 20 69 6e 20 77 68 69 74 65 5f 6e 6f 64 zes.=.[250.for.node.in.white_nod
2d40 65 73 20 2b 20 72 65 64 5f 6e 6f 64 65 73 5d 5c 6e 6e 6f 64 65 5f 63 6f 6c 6f 72 73 20 3d 20 5b es.+.red_nodes]\nnode_colors.=.[
2d60 5c 22 77 68 69 74 65 5c 22 20 66 6f 72 20 6e 20 69 6e 20 77 68 69 74 65 5f 6e 6f 64 65 73 5d 20 \"white\".for.n.in.white_nodes].
2d80 2b 20 5b 5c 22 72 65 64 5c 22 20 66 6f 72 20 6e 20 69 6e 20 72 65 64 5f 6e 6f 64 65 73 5d 5c 6e +.[\"red\".for.n.in.red_nodes]\n
2da0 5c 6e 6f 72 69 67 69 6e 61 6c 5f 67 72 61 70 68 2e 61 64 64 5f 6e 6f 64 65 73 5f 66 72 6f 6d 28 \noriginal_graph.add_nodes_from(
2dc0 77 68 69 74 65 5f 6e 6f 64 65 73 20 2b 20 72 65 64 5f 6e 6f 64 65 73 29 5c 6e 6f 72 69 67 69 6e white_nodes.+.red_nodes)\norigin
2de0 61 6c 5f 67 72 61 70 68 2e 61 64 64 5f 65 64 67 65 73 5f 66 72 6f 6d 28 5c 6e 20 20 20 20 5b 5c al_graph.add_edges_from(\n....[\
2e00 6e 20 20 20 20 20 20 20 20 28 5c 22 31 5c 22 2c 20 5c 22 43 5c 22 29 2c 5c 6e 20 20 20 20 20 20 n........(\"1\",.\"C\"),\n......
2e20 20 20 28 5c 22 31 5c 22 2c 20 5c 22 42 5c 22 29 2c 5c 6e 20 20 20 20 20 20 20 20 28 5c 22 32 5c ..(\"1\",.\"B\"),\n........(\"2\
2e40 22 2c 20 5c 22 43 5c 22 29 2c 5c 6e 20 20 20 20 20 20 20 20 28 5c 22 32 5c 22 2c 20 5c 22 42 5c ",.\"C\"),\n........(\"2\",.\"B\
2e60 22 29 2c 5c 6e 20 20 20 20 20 20 20 20 28 5c 22 32 5c 22 2c 20 5c 22 41 5c 22 29 2c 5c 6e 20 20 "),\n........(\"2\",.\"A\"),\n..
2e80 20 20 20 20 20 20 28 5c 22 33 5c 22 2c 20 5c 22 42 5c 22 29 2c 5c 6e 20 20 20 20 20 20 20 20 28 ......(\"3\",.\"B\"),\n........(
2ea0 5c 22 33 5c 22 2c 20 5c 22 41 5c 22 29 2c 5c 6e 20 20 20 20 20 20 20 20 28 5c 22 33 5c 22 2c 20 \"3\",.\"A\"),\n........(\"3\",.
2ec0 5c 22 36 5c 22 29 2c 5c 6e 20 20 20 20 20 20 20 20 28 5c 22 34 5c 22 2c 20 5c 22 43 5c 22 29 2c \"6\"),\n........(\"4\",.\"C\"),
2ee0 5c 6e 20 20 20 20 20 20 20 20 28 5c 22 34 5c 22 2c 20 5c 22 42 5c 22 29 2c 5c 6e 20 20 20 20 20 \n........(\"4\",.\"B\"),\n.....
2f00 20 20 20 28 5c 22 34 5c 22 2c 20 5c 22 41 5c 22 29 2c 5c 6e 20 20 20 20 20 20 20 20 28 5c 22 35 ...(\"4\",.\"A\"),\n........(\"5
2f20 5c 22 2c 20 5c 22 42 5c 22 29 2c 5c 6e 20 20 20 20 20 20 20 20 28 5c 22 35 5c 22 2c 20 5c 22 41 \",.\"B\"),\n........(\"5\",.\"A
2f40 5c 22 29 2c 5c 6e 20 20 20 20 20 20 20 20 28 5c 22 36 5c 22 2c 20 5c 22 35 5c 22 29 2c 5c 6e 20 \"),\n........(\"6\",.\"5\"),\n.
2f60 20 20 20 20 20 20 20 28 5c 22 41 5c 22 2c 20 5c 22 36 5c 22 29 2c 5c 6e 20 20 20 20 5d 5c 6e 29 .......(\"A\",.\"6\"),\n....]\n)
2f80 5c 6e 62 61 73 65 5f 6f 70 74 69 6f 6e 73 20 3d 20 7b 5c 22 77 69 74 68 5f 6c 61 62 65 6c 73 5c \nbase_options.=.{\"with_labels\
2fa0 22 3a 20 54 72 75 65 2c 20 5c 22 65 64 67 65 63 6f 6c 6f 72 73 5c 22 3a 20 5c 22 62 6c 61 63 6b ":.True,.\"edgecolors\":.\"black
2fc0 5c 22 7d 5c 6e 70 6f 73 20 3d 20 7b 5c 6e 20 20 20 20 5c 22 33 5c 22 3a 20 28 30 2c 20 31 29 2c \"}\npos.=.{\n....\"3\":.(0,.1),
2fe0 5c 6e 20 20 20 20 5c 22 32 5c 22 3a 20 28 30 2c 20 32 29 2c 5c 6e 20 20 20 20 5c 22 31 5c 22 3a \n....\"2\":.(0,.2),\n....\"1\":
3000 20 28 30 2c 20 33 29 2c 5c 6e 20 20 20 20 5c 22 36 5c 22 3a 20 28 31 2c 20 30 29 2c 5c 6e 20 20 .(0,.3),\n....\"6\":.(1,.0),\n..
3020 20 20 5c 22 41 5c 22 3a 20 28 31 2c 20 31 29 2c 5c 6e 20 20 20 20 5c 22 42 5c 22 3a 20 28 31 2c ..\"A\":.(1,.1),\n....\"B\":.(1,
3040 20 32 29 2c 5c 6e 20 20 20 20 5c 22 43 5c 22 3a 20 28 31 2c 20 33 29 2c 5c 6e 20 20 20 20 5c 22 .2),\n....\"C\":.(1,.3),\n....\"
3060 34 5c 22 3a 20 28 32 2c 20 33 29 2c 5c 6e 20 20 20 20 5c 22 35 5c 22 3a 20 28 32 2c 20 31 29 2c 4\":.(2,.3),\n....\"5\":.(2,.1),
3080 5c 6e 7d 5c 6e 61 78 31 20 3d 20 70 6c 74 2e 73 75 62 70 6c 6f 74 28 31 2c 20 32 2c 20 31 29 5c \n}\nax1.=.plt.subplot(1,.2,.1)\
30a0 6e 70 6c 74 2e 74 69 74 6c 65 28 5c 22 4f 72 69 67 69 6e 61 6c 20 28 25 73 20 65 64 67 65 73 29 nplt.title(\"Original.(%s.edges)
30c0 5c 22 20 25 20 6f 72 69 67 69 6e 61 6c 5f 67 72 61 70 68 2e 6e 75 6d 62 65 72 5f 6f 66 5f 65 64 \".%.original_graph.number_of_ed
30e0 67 65 73 28 29 29 5c 6e 6e 78 2e 64 72 61 77 5f 6e 65 74 77 6f 72 6b 78 28 6f 72 69 67 69 6e 61 ges())\nnx.draw_networkx(origina
3100 6c 5f 67 72 61 70 68 2c 20 70 6f 73 3d 70 6f 73 2c 20 6e 6f 64 65 5f 63 6f 6c 6f 72 3d 6e 6f 64 l_graph,.pos=pos,.node_color=nod
3120 65 5f 63 6f 6c 6f 72 73 2c 20 2a 2a 62 61 73 65 5f 6f 70 74 69 6f 6e 73 29 5c 6e 5c 6e 6e 6f 6e e_colors,.**base_options)\n\nnon
3140 65 78 70 5f 67 72 61 70 68 2c 20 63 6f 6d 70 72 65 73 73 69 6f 6e 5f 6e 6f 64 65 73 20 3d 20 6e exp_graph,.compression_nodes.=.n
3160 78 2e 73 75 6d 6d 61 72 69 7a 61 74 69 6f 6e 2e 64 65 64 65 6e 73 69 66 79 28 5c 6e 20 20 20 20 x.summarization.dedensify(\n....
3180 6f 72 69 67 69 6e 61 6c 5f 67 72 61 70 68 2c 20 74 68 72 65 73 68 6f 6c 64 3d 32 2c 20 63 6f 70 original_graph,.threshold=2,.cop
31a0 79 3d 46 61 6c 73 65 5c 6e 29 5c 6e 6e 6f 6e 65 78 70 5f 6e 6f 64 65 5f 63 6f 6c 6f 72 73 20 3d y=False\n)\nnonexp_node_colors.=
31c0 20 6c 69 73 74 28 6e 6f 64 65 5f 63 6f 6c 6f 72 73 29 5c 6e 6e 6f 6e 65 78 70 5f 6e 6f 64 65 5f .list(node_colors)\nnonexp_node_
31e0 73 69 7a 65 73 20 3d 20 6c 69 73 74 28 6e 6f 64 65 5f 73 69 7a 65 73 29 5c 6e 66 6f 72 20 6e 6f sizes.=.list(node_sizes)\nfor.no
3200 64 65 20 69 6e 20 63 6f 6d 70 72 65 73 73 69 6f 6e 5f 6e 6f 64 65 73 3a 5c 6e 20 20 20 20 6e 6f de.in.compression_nodes:\n....no
3220 6e 65 78 70 5f 6e 6f 64 65 5f 63 6f 6c 6f 72 73 2e 61 70 70 65 6e 64 28 5c 22 79 65 6c 6c 6f 77 nexp_node_colors.append(\"yellow
3240 5c 22 29 5c 6e 20 20 20 20 6e 6f 6e 65 78 70 5f 6e 6f 64 65 5f 73 69 7a 65 73 2e 61 70 70 65 6e \")\n....nonexp_node_sizes.appen
3260 64 28 36 30 30 29 5c 6e 70 6c 74 2e 73 75 62 70 6c 6f 74 28 31 2c 20 32 2c 20 32 29 5c 6e 5c 6e d(600)\nplt.subplot(1,.2,.2)\n\n
3280 70 6c 74 2e 74 69 74 6c 65 28 5c 22 44 65 64 65 6e 73 69 66 69 65 64 20 28 25 73 20 65 64 67 65 plt.title(\"Dedensified.(%s.edge
32a0 73 29 5c 22 20 25 20 6e 6f 6e 65 78 70 5f 67 72 61 70 68 2e 6e 75 6d 62 65 72 5f 6f 66 5f 65 64 s)\".%.nonexp_graph.number_of_ed
32c0 67 65 73 28 29 29 5c 6e 6e 6f 6e 65 78 70 5f 70 6f 73 20 3d 20 7b 5c 6e 20 20 20 20 5c 22 35 5c ges())\nnonexp_pos.=.{\n....\"5\
32e0 22 3a 20 28 30 2c 20 30 29 2c 5c 6e 20 20 20 20 5c 22 42 5c 22 3a 20 28 30 2c 20 32 29 2c 5c 6e ":.(0,.0),\n....\"B\":.(0,.2),\n
3300 20 20 20 20 5c 22 31 5c 22 3a 20 28 30 2c 20 33 29 2c 5c 6e 20 20 20 20 5c 22 36 5c 22 3a 20 28 ....\"1\":.(0,.3),\n....\"6\":.(
3320 31 2c 20 30 2e 37 35 29 2c 5c 6e 20 20 20 20 5c 22 33 5c 22 3a 20 28 31 2e 35 2c 20 31 2e 35 29 1,.0.75),\n....\"3\":.(1.5,.1.5)
3340 2c 5c 6e 20 20 20 20 5c 22 41 5c 22 3a 20 28 32 2c 20 30 29 2c 5c 6e 20 20 20 20 5c 22 43 5c 22 ,\n....\"A\":.(2,.0),\n....\"C\"
3360 3a 20 28 32 2c 20 33 29 2c 5c 6e 20 20 20 20 5c 22 34 5c 22 3a 20 28 33 2c 20 31 2e 35 29 2c 5c :.(2,.3),\n....\"4\":.(3,.1.5),\
3380 6e 20 20 20 20 5c 22 32 5c 22 3a 20 28 33 2c 20 32 2e 35 29 2c 5c 6e 7d 5c 6e 63 5f 6e 6f 64 65 n....\"2\":.(3,.2.5),\n}\nc_node
33a0 73 20 3d 20 6c 69 73 74 28 63 6f 6d 70 72 65 73 73 69 6f 6e 5f 6e 6f 64 65 73 29 5c 6e 63 5f 6e s.=.list(compression_nodes)\nc_n
33c0 6f 64 65 73 2e 73 6f 72 74 28 29 5c 6e 66 6f 72 20 73 70 6f 74 2c 20 6e 6f 64 65 20 69 6e 20 65 odes.sort()\nfor.spot,.node.in.e
33e0 6e 75 6d 65 72 61 74 65 28 63 5f 6e 6f 64 65 73 29 3a 5c 6e 20 20 20 20 6e 6f 6e 65 78 70 5f 70 numerate(c_nodes):\n....nonexp_p
3400 6f 73 5b 6e 6f 64 65 5d 20 3d 20 28 32 2c 20 73 70 6f 74 20 2b 20 32 29 5c 6e 6e 78 2e 64 72 61 os[node].=.(2,.spot.+.2)\nnx.dra
3420 77 5f 6e 65 74 77 6f 72 6b 78 28 5c 6e 20 20 20 20 6e 6f 6e 65 78 70 5f 67 72 61 70 68 2c 5c 6e w_networkx(\n....nonexp_graph,\n
3440 20 20 20 20 70 6f 73 3d 6e 6f 6e 65 78 70 5f 70 6f 73 2c 5c 6e 20 20 20 20 6e 6f 64 65 5f 63 6f ....pos=nonexp_pos,\n....node_co
3460 6c 6f 72 3d 6e 6f 6e 65 78 70 5f 6e 6f 64 65 5f 63 6f 6c 6f 72 73 2c 5c 6e 20 20 20 20 6e 6f 64 lor=nonexp_node_colors,\n....nod
3480 65 5f 73 69 7a 65 3d 6e 6f 6e 65 78 70 5f 6e 6f 64 65 5f 73 69 7a 65 73 2c 5c 6e 20 20 20 20 2a e_size=nonexp_node_sizes,\n....*
34a0 2a 62 61 73 65 5f 6f 70 74 69 6f 6e 73 5c 6e 29 5c 6e 5c 6e 70 6c 74 2e 74 69 67 68 74 5f 6c 61 *base_options\n)\n\nplt.tight_la
34c0 79 6f 75 74 28 29 5c 6e 70 6c 74 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 yout()\nplt.show()".......].....
34e0 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 72 6e }...],..."metadata":.{....."kern
3500 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 22 3a elspec":.{......."display_name":
3520 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 20 22 ."Python.3",......."language":."
3540 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 33 22 python",......."name":."python3"
3560 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 0a 20 .....},....."language_info":.{..
3580 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 20 20 ....."codemirror_mode":.{.......
35a0 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 76 65 .."name":."ipython",........."ve
35c0 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 5f 65 rsion":.3.......},......."file_e
35e0 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 79 70 xtension":.".py",......."mimetyp
3600 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 6d 65 e":."text/x-python",......."name
3620 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 65 78 ":."python",......."nbconvert_ex
3640 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 65 6e porter":."python",......."pygmen
3660 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 76 65 ts_lexer":."ipython3",......."ve
3680 72 73 69 6f 6e 22 3a 20 22 33 2e 39 2e 31 36 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 6e rsion":."3.9.16".....}...},..."n
36a0 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 3a bformat":.4,..."nbformat_minor":
36c0 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 0f 0f 5a 56 3c 2c ca bb 4b 06 00 00 4b 06 00 00 2b 00 .0.}PK..........ZV<,..K...K...+.
36e0 00 00 61 6c 67 6f 72 69 74 68 6d 73 2f 70 6c 6f 74 5f 6b 72 61 63 6b 68 61 72 64 74 5f 63 65 6e ..algorithms/plot_krackhardt_cen
3700 74 72 61 6c 69 74 79 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 trality.ipynb{..."cells":.[.....
3720 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",....
3740 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,.....
3760 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
3780 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
37a0 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":.[......
37c0 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".......].
37e0 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":.
3800 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":.{}
3820 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#
3840 20 4b 72 61 63 6b 68 61 72 64 74 20 43 65 6e 74 72 61 6c 69 74 79 5c 6e 5c 6e 43 65 6e 74 72 61 .Krackhardt.Centrality\n\nCentra
3860 6c 69 74 79 20 6d 65 61 73 75 72 65 73 20 6f 66 20 4b 72 61 63 6b 68 61 72 64 74 20 73 6f 63 69 lity.measures.of.Krackhardt.soci
3880 61 6c 20 6e 65 74 77 6f 72 6b 2e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 al.network.\n".......].....},...
38a0 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",..
38c0 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,...
38e0 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
3900 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
3920 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":.[....
3940 20 20 20 20 20 22 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 ....."import.matplotlib.pyplot.a
3960 73 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 5c 6e s.plt\nimport.networkx.as.nx\n\n
3980 47 20 3d 20 6e 78 2e 6b 72 61 63 6b 68 61 72 64 74 5f 6b 69 74 65 5f 67 72 61 70 68 28 29 5c 6e G.=.nx.krackhardt_kite_graph()\n
39a0 5c 6e 70 72 69 6e 74 28 5c 22 42 65 74 77 65 65 6e 6e 65 73 73 5c 22 29 5c 6e 62 20 3d 20 6e 78 \nprint(\"Betweenness\")\nb.=.nx
39c0 2e 62 65 74 77 65 65 6e 6e 65 73 73 5f 63 65 6e 74 72 61 6c 69 74 79 28 47 29 5c 6e 66 6f 72 20 .betweenness_centrality(G)\nfor.
39e0 76 20 69 6e 20 47 2e 6e 6f 64 65 73 28 29 3a 5c 6e 20 20 20 20 70 72 69 6e 74 28 66 5c 22 7b 76 v.in.G.nodes():\n....print(f\"{v
3a00 3a 32 7d 20 7b 62 5b 76 5d 3a 2e 33 66 7d 5c 22 29 5c 6e 5c 6e 70 72 69 6e 74 28 5c 22 44 65 67 :2}.{b[v]:.3f}\")\n\nprint(\"Deg
3a20 72 65 65 20 63 65 6e 74 72 61 6c 69 74 79 5c 22 29 5c 6e 64 20 3d 20 6e 78 2e 64 65 67 72 65 65 ree.centrality\")\nd.=.nx.degree
3a40 5f 63 65 6e 74 72 61 6c 69 74 79 28 47 29 5c 6e 66 6f 72 20 76 20 69 6e 20 47 2e 6e 6f 64 65 73 _centrality(G)\nfor.v.in.G.nodes
3a60 28 29 3a 5c 6e 20 20 20 20 70 72 69 6e 74 28 66 5c 22 7b 76 3a 32 7d 20 7b 64 5b 76 5d 3a 2e 33 ():\n....print(f\"{v:2}.{d[v]:.3
3a80 66 7d 5c 22 29 5c 6e 5c 6e 70 72 69 6e 74 28 5c 22 43 6c 6f 73 65 6e 65 73 73 20 63 65 6e 74 72 f}\")\n\nprint(\"Closeness.centr
3aa0 61 6c 69 74 79 5c 22 29 5c 6e 63 20 3d 20 6e 78 2e 63 6c 6f 73 65 6e 65 73 73 5f 63 65 6e 74 72 ality\")\nc.=.nx.closeness_centr
3ac0 61 6c 69 74 79 28 47 29 5c 6e 66 6f 72 20 76 20 69 6e 20 47 2e 6e 6f 64 65 73 28 29 3a 5c 6e 20 ality(G)\nfor.v.in.G.nodes():\n.
3ae0 20 20 20 70 72 69 6e 74 28 66 5c 22 7b 76 3a 32 7d 20 7b 63 5b 76 5d 3a 2e 33 66 7d 5c 22 29 5c ...print(f\"{v:2}.{c[v]:.3f}\")\
3b00 6e 5c 6e 70 6f 73 20 3d 20 6e 78 2e 73 70 72 69 6e 67 5f 6c 61 79 6f 75 74 28 47 2c 20 73 65 65 n\npos.=.nx.spring_layout(G,.see
3b20 64 3d 33 36 37 29 20 20 23 20 53 65 65 64 20 6c 61 79 6f 75 74 20 66 6f 72 20 72 65 70 72 6f 64 d=367)..#.Seed.layout.for.reprod
3b40 75 63 69 62 69 6c 69 74 79 5c 6e 6e 78 2e 64 72 61 77 28 47 2c 20 70 6f 73 29 5c 6e 70 6c 74 2e ucibility\nnx.draw(G,.pos)\nplt.
3b60 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 65 show()".......].....}...],..."me
3b80 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 20 tadata":.{....."kernelspec":.{..
3ba0 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 2c ....."display_name":."Python.3",
3bc0 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 20 ......."language":."python",....
3be0 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 20 ..."name":."python3".....},.....
3c00 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 69 "language_info":.{......."codemi
3c20 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 69 rror_mode":.{........."name":."i
3c40 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 20 python",........."version":.3...
3c60 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 22 ....},......."file_extension":."
3c80 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 2d .py",......."mimetype":."text/x-
3ca0 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 2c python",......."name":."python",
3cc0 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 79 ......."nbconvert_exporter":."py
3ce0 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 22 thon",......."pygments_lexer":."
3d00 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 39 ipython3",......."version":."3.9
3d20 2e 31 36 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 .16".....}...},..."nbformat":.4,
3d40 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......
3d60 00 00 0f 0f 5a 56 48 2e 50 7d de 1b 00 00 de 1b 00 00 30 00 00 00 61 6c 67 6f 72 69 74 68 6d 73 ....ZVH.P}........0...algorithms
3d80 2f 70 6c 6f 74 5f 69 74 65 72 61 74 65 64 5f 64 79 6e 61 6d 69 63 61 6c 5f 73 79 73 74 65 6d 73 /plot_iterated_dynamical_systems
3da0 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":.[.....{......
3dc0 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
3de0 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
3e00 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
3e20 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":.[]
3e40 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
3e60 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".......].....},.
3e80 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
3ea0 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":.{},......
3ec0 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 49 74 65 72 61 74 ."source":.[........."\n#.Iterat
3ee0 65 64 20 44 79 6e 61 6d 69 63 61 6c 20 53 79 73 74 65 6d 73 5c 6e 5c 6e 44 69 67 72 61 70 68 73 ed.Dynamical.Systems\n\nDigraphs
3f00 20 66 72 6f 6d 20 49 6e 74 65 67 65 72 2d 76 61 6c 75 65 64 20 49 74 65 72 61 74 65 64 20 46 75 .from.Integer-valued.Iterated.Fu
3f20 6e 63 74 69 6f 6e 73 5c 6e 5c 6e 23 23 20 53 75 6d 73 20 6f 66 20 63 75 62 65 73 20 6f 6e 20 33 nctions\n\n##.Sums.of.cubes.on.3
3f40 4e 5c 6e 5c 6e 54 68 65 20 6e 75 6d 62 65 72 20 31 35 33 20 68 61 73 20 61 20 63 75 72 69 6f 75 N\n\nThe.number.153.has.a.curiou
3f60 73 20 70 72 6f 70 65 72 74 79 2e 5c 6e 5c 6e 4c 65 74 20 33 4e 3d 7b 33 2c 36 2c 39 2c 31 32 2c s.property.\n\nLet.3N={3,6,9,12,
3f80 2e 2e 2e 7d 20 62 65 20 74 68 65 20 73 65 74 20 6f 66 20 70 6f 73 69 74 69 76 65 20 6d 75 6c 74 ...}.be.the.set.of.positive.mult
3fa0 69 70 6c 65 73 20 6f 66 20 33 2e 20 20 44 65 66 69 6e 65 20 61 6e 5c 6e 69 74 65 72 61 74 69 76 iples.of.3...Define.an\niterativ
3fc0 65 20 70 72 6f 63 65 73 73 20 66 3a 33 4e 2d 3e 33 4e 20 61 73 20 66 6f 6c 6c 6f 77 73 3a 20 66 e.process.f:3N->3N.as.follows:.f
3fe0 6f 72 20 61 20 67 69 76 65 6e 20 6e 2c 20 74 61 6b 65 20 65 61 63 68 20 64 69 67 69 74 5c 6e 6f or.a.given.n,.take.each.digit\no
4000 66 20 6e 20 28 69 6e 20 62 61 73 65 20 31 30 29 2c 20 63 75 62 65 20 69 74 20 61 6e 64 20 74 68 f.n.(in.base.10),.cube.it.and.th
4020 65 6e 20 73 75 6d 20 74 68 65 20 63 75 62 65 73 20 74 6f 20 6f 62 74 61 69 6e 20 66 28 6e 29 2e en.sum.the.cubes.to.obtain.f(n).
4040 5c 6e 5c 6e 57 68 65 6e 20 74 68 69 73 20 70 72 6f 63 65 73 73 20 69 73 20 72 65 70 65 61 74 65 \n\nWhen.this.process.is.repeate
4060 64 2c 20 74 68 65 20 72 65 73 75 6c 74 69 6e 67 20 73 65 72 69 65 73 20 6e 2c 20 66 28 6e 29 2c d,.the.resulting.series.n,.f(n),
4080 20 66 28 66 28 6e 29 29 2c 2e 2e 2e 5c 6e 74 65 72 6d 69 6e 61 74 65 20 69 6e 20 31 35 33 20 61 .f(f(n)),...\nterminate.in.153.a
40a0 66 74 65 72 20 61 20 66 69 6e 69 74 65 20 6e 75 6d 62 65 72 20 6f 66 20 69 74 65 72 61 74 69 6f fter.a.finite.number.of.iteratio
40c0 6e 73 20 28 74 68 65 20 70 72 6f 63 65 73 73 20 65 6e 64 73 5c 6e 62 65 63 61 75 73 65 20 31 35 ns.(the.process.ends\nbecause.15
40e0 33 20 3d 20 31 2a 2a 33 20 2b 20 35 2a 2a 33 20 2b 20 33 2a 2a 33 29 2e 5c 6e 5c 6e 49 6e 20 74 3.=.1**3.+.5**3.+.3**3).\n\nIn.t
4100 68 65 20 6c 61 6e 67 75 61 67 65 20 6f 66 20 64 69 73 63 72 65 74 65 20 64 79 6e 61 6d 69 63 61 he.language.of.discrete.dynamica
4120 6c 20 73 79 73 74 65 6d 73 2c 20 31 35 33 20 69 73 20 74 68 65 20 67 6c 6f 62 61 6c 5c 6e 61 74 l.systems,.153.is.the.global\nat
4140 74 72 61 63 74 6f 72 20 66 6f 72 20 74 68 65 20 69 74 65 72 61 74 65 64 20 6d 61 70 20 66 20 72 tractor.for.the.iterated.map.f.r
4160 65 73 74 72 69 63 74 65 64 20 74 6f 20 74 68 65 20 73 65 74 20 33 4e 2e 5c 6e 5c 6e 46 6f 72 20 estricted.to.the.set.3N.\n\nFor.
4180 65 78 61 6d 70 6c 65 3a 20 74 61 6b 65 20 74 68 65 20 6e 75 6d 62 65 72 20 31 30 38 5c 6e 5c 6e example:.take.the.number.108\n\n
41a0 66 28 31 30 38 29 20 3d 20 31 2a 2a 33 20 2b 20 30 2a 2a 33 20 2b 20 38 2a 2a 33 20 3d 20 35 31 f(108).=.1**3.+.0**3.+.8**3.=.51
41c0 33 5c 6e 5c 6e 61 6e 64 5c 6e 5c 6e 66 28 35 31 33 29 20 3d 20 35 2a 2a 33 20 2b 20 31 2a 2a 33 3\n\nand\n\nf(513).=.5**3.+.1**3
41e0 20 2b 20 33 2a 2a 33 20 3d 20 31 35 33 5c 6e 5c 6e 53 6f 2c 20 73 74 61 72 74 69 6e 67 20 61 74 .+.3**3.=.153\n\nSo,.starting.at
4200 20 31 30 38 20 77 65 20 72 65 61 63 68 20 31 35 33 20 69 6e 20 74 77 6f 20 69 74 65 72 61 74 69 .108.we.reach.153.in.two.iterati
4220 6f 6e 73 2c 5c 6e 72 65 70 72 65 73 65 6e 74 65 64 20 61 73 3a 5c 6e 5c 6e 31 30 38 2d 3e 35 31 ons,\nrepresented.as:\n\n108->51
4240 33 2d 3e 31 35 33 5c 6e 5c 6e 43 6f 6d 70 75 74 69 6e 67 20 61 6c 6c 20 6f 72 62 69 74 73 20 6f 3->153\n\nComputing.all.orbits.o
4260 66 20 33 4e 20 75 70 20 74 6f 20 31 30 2a 2a 35 20 72 65 76 65 61 6c 73 20 74 68 61 74 20 74 68 f.3N.up.to.10**5.reveals.that.th
4280 65 20 61 74 74 72 61 63 74 6f 72 5c 6e 31 35 33 20 69 73 20 72 65 61 63 68 65 64 20 69 6e 20 61 e.attractor\n153.is.reached.in.a
42a0 20 6d 61 78 69 6d 75 6d 20 6f 66 20 31 34 20 69 74 65 72 61 74 69 6f 6e 73 2e 20 49 6e 20 74 68 .maximum.of.14.iterations..In.th
42c0 69 73 20 63 6f 64 65 20 77 65 5c 6e 73 68 6f 77 20 74 68 61 74 20 31 33 20 63 79 63 6c 65 73 20 is.code.we\nshow.that.13.cycles.
42e0 69 73 20 74 68 65 20 6d 61 78 69 6d 75 6d 20 72 65 71 75 69 72 65 64 20 66 6f 72 20 61 6c 6c 20 is.the.maximum.required.for.all.
4300 69 6e 74 65 67 65 72 73 20 28 69 6e 20 33 4e 29 5c 6e 6c 65 73 73 20 74 68 61 6e 20 31 30 2c 30 integers.(in.3N)\nless.than.10,0
4320 30 30 2e 5c 6e 5c 6e 54 68 65 20 73 6d 61 6c 6c 65 73 74 20 6e 75 6d 62 65 72 20 74 68 61 74 20 00.\n\nThe.smallest.number.that.
4340 72 65 71 75 69 72 65 73 20 31 33 20 69 74 65 72 61 74 69 6f 6e 73 20 74 6f 20 72 65 61 63 68 20 requires.13.iterations.to.reach.
4360 31 35 33 2c 20 69 73 20 31 37 37 2c 20 69 2e 65 2e 2c 5c 6e 5c 6e 31 37 37 2d 3e 36 38 37 2d 3e 153,.is.177,.i.e.,\n\n177->687->
4380 31 30 37 31 2d 3e 33 34 35 2d 3e 32 31 36 2d 3e 32 32 35 2d 3e 31 34 31 2d 3e 36 36 2d 3e 34 33 1071->345->216->225->141->66->43
43a0 32 2d 3e 39 39 2d 3e 31 34 35 38 2d 3e 37 30 32 2d 3e 33 35 31 2d 3e 31 35 33 5c 6e 5c 6e 54 68 2->99->1458->702->351->153\n\nTh
43c0 65 20 72 65 73 75 6c 74 69 6e 67 20 6c 61 72 67 65 20 64 69 67 72 61 70 68 73 20 61 72 65 20 75 e.resulting.large.digraphs.are.u
43e0 73 65 66 75 6c 20 66 6f 72 20 74 65 73 74 69 6e 67 20 6e 65 74 77 6f 72 6b 20 73 6f 66 74 77 61 seful.for.testing.network.softwa
4400 72 65 2e 5c 6e 5c 6e 23 23 20 54 68 65 20 67 65 6e 65 72 61 6c 20 70 72 6f 62 6c 65 6d 5c 6e 5c re.\n\n##.The.general.problem\n\
4420 6e 47 69 76 65 6e 20 6e 75 6d 62 65 72 73 20 6e 2c 20 61 20 70 6f 77 65 72 20 70 20 61 6e 64 20 nGiven.numbers.n,.a.power.p.and.
4440 62 61 73 65 20 62 2c 20 64 65 66 69 6e 65 20 46 28 6e 3b 20 70 2c 20 62 29 20 61 73 20 74 68 65 base.b,.define.F(n;.p,.b).as.the
4460 20 73 75 6d 20 6f 66 5c 6e 74 68 65 20 64 69 67 69 74 73 20 6f 66 20 6e 20 28 69 6e 20 62 61 73 .sum.of\nthe.digits.of.n.(in.bas
4480 65 20 62 29 20 72 61 69 73 65 64 20 74 6f 20 74 68 65 20 70 6f 77 65 72 20 70 2e 20 54 68 65 20 e.b).raised.to.the.power.p..The.
44a0 61 62 6f 76 65 20 65 78 61 6d 70 6c 65 5c 6e 63 6f 72 72 65 73 70 6f 6e 64 73 20 74 6f 20 66 28 above.example\ncorresponds.to.f(
44c0 6e 29 3d 46 28 6e 3b 20 33 2c 31 30 29 2c 20 61 6e 64 20 62 65 6c 6f 77 20 46 28 6e 3b 20 70 2c n)=F(n;.3,10),.and.below.F(n;.p,
44e0 20 62 29 20 69 73 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20 61 73 5c 6e 74 68 65 20 66 75 6e 63 74 .b).is.implemented.as\nthe.funct
4500 69 6f 6e 20 70 6f 77 65 72 73 75 6d 28 6e 2c 70 2c 62 29 2e 20 54 68 65 20 69 74 65 72 61 74 69 ion.powersum(n,p,b)..The.iterati
4520 76 65 20 64 79 6e 61 6d 69 63 61 6c 20 73 79 73 74 65 6d 20 64 65 66 69 6e 65 64 20 62 79 5c 6e ve.dynamical.system.defined.by\n
4540 74 68 65 20 6d 61 70 70 69 6e 67 20 6e 3a 2d 3e 66 28 6e 29 20 61 62 6f 76 65 20 28 6f 76 65 72 the.mapping.n:->f(n).above.(over
4560 20 33 4e 29 20 63 6f 6e 76 65 72 67 65 73 20 74 6f 20 61 20 73 69 6e 67 6c 65 20 66 69 78 65 64 .3N).converges.to.a.single.fixed
4580 20 70 6f 69 6e 74 3b 5c 6e 31 35 33 2e 20 41 70 70 6c 79 69 6e 67 20 74 68 65 20 6d 61 70 20 74 .point;\n153..Applying.the.map.t
45a0 6f 20 61 6c 6c 20 70 6f 73 69 74 69 76 65 20 69 6e 74 65 67 65 72 73 20 4e 2c 20 6c 65 61 64 73 o.all.positive.integers.N,.leads
45c0 20 74 6f 20 61 20 64 69 73 63 72 65 74 65 5c 6e 64 79 6e 61 6d 69 63 61 6c 20 70 72 6f 63 65 73 .to.a.discrete\ndynamical.proces
45e0 73 20 77 69 74 68 20 35 20 66 69 78 65 64 20 70 6f 69 6e 74 73 3a 20 31 2c 20 31 35 33 2c 20 33 s.with.5.fixed.points:.1,.153,.3
4600 37 30 2c 20 33 37 31 2c 20 34 30 37 2e 20 4d 6f 64 75 6c 6f 20 33 5c 6e 74 68 6f 73 65 20 6e 75 70,.371,.407..Modulo.3\nthose.nu
4620 6d 62 65 72 73 20 61 72 65 20 31 2c 20 30 2c 20 31 2c 20 32 2c 20 32 2e 20 54 68 65 20 66 75 6e mbers.are.1,.0,.1,.2,.2..The.fun
4640 63 74 69 6f 6e 20 66 20 61 62 6f 76 65 20 68 61 73 20 74 68 65 20 61 64 64 65 64 5c 6e 70 72 6f ction.f.above.has.the.added\npro
4660 70 65 72 74 79 20 74 68 61 74 20 69 74 20 6d 61 70 73 20 61 20 6d 75 6c 74 69 70 6c 65 20 6f 66 perty.that.it.maps.a.multiple.of
4680 20 33 20 74 6f 20 61 6e 6f 74 68 65 72 20 6d 75 6c 74 69 70 6c 65 20 6f 66 20 33 3b 20 69 2e 65 .3.to.another.multiple.of.3;.i.e
46a0 2e 20 69 74 5c 6e 69 73 20 69 6e 76 61 72 69 61 6e 74 20 6f 6e 20 74 68 65 20 73 75 62 73 65 74 ..it\nis.invariant.on.the.subset
46c0 20 33 4e 2e 5c 6e 5c 6e 5c 6e 54 68 65 20 73 71 75 61 72 69 6e 67 20 6f 66 20 64 69 67 69 74 73 .3N.\n\n\nThe.squaring.of.digits
46e0 20 28 69 6e 20 62 61 73 65 20 31 30 29 20 72 65 73 75 6c 74 20 69 6e 20 63 79 63 6c 65 73 20 61 .(in.base.10).result.in.cycles.a
4700 6e 64 20 74 68 65 5c 6e 73 69 6e 67 6c 65 20 66 69 78 65 64 20 70 6f 69 6e 74 20 31 2e 20 49 2e nd.the\nsingle.fixed.point.1..I.
4720 65 2e 2c 20 66 72 6f 6d 20 61 20 63 65 72 74 61 69 6e 20 70 6f 69 6e 74 20 6f 6e 2c 20 74 68 65 e.,.from.a.certain.point.on,.the
4740 20 70 72 6f 63 65 73 73 5c 6e 73 74 61 72 74 73 20 72 65 70 65 61 74 69 6e 67 20 69 74 73 65 6c .process\nstarts.repeating.itsel
4760 66 2e 5c 6e 5c 6e 6b 65 79 77 6f 72 64 73 3a 20 5c 22 52 65 63 75 72 72 69 6e 67 20 44 69 67 69 f.\n\nkeywords:.\"Recurring.Digi
4780 74 61 6c 20 49 6e 76 61 72 69 61 6e 74 5c 22 2c 20 5c 22 4e 61 72 63 69 73 73 69 73 74 69 63 20 tal.Invariant\",.\"Narcissistic.
47a0 4e 75 6d 62 65 72 5c 22 2c 5c 6e 5c 22 48 61 70 70 79 20 4e 75 6d 62 65 72 5c 22 5c 6e 5c 6e 23 Number\",\n\"Happy.Number\"\n\n#
47c0 23 20 54 68 65 20 33 6e 2b 31 20 70 72 6f 62 6c 65 6d 5c 6e 5c 6e 54 68 65 72 65 20 69 73 20 61 #.The.3n+1.problem\n\nThere.is.a
47e0 20 72 69 63 68 20 68 69 73 74 6f 72 79 20 6f 66 20 6d 61 74 68 65 6d 61 74 69 63 61 6c 20 72 65 .rich.history.of.mathematical.re
4800 63 72 65 61 74 69 6f 6e 73 5c 6e 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 64 69 73 63 72 creations\nassociated.with.discr
4820 65 74 65 20 64 79 6e 61 6d 69 63 61 6c 20 73 79 73 74 65 6d 73 2e 20 20 54 68 65 20 6d 6f 73 74 ete.dynamical.systems...The.most
4840 20 66 61 6d 6f 75 73 5c 6e 69 73 20 74 68 65 20 43 6f 6c 6c 61 74 7a 20 33 6e 2b 31 20 70 72 6f .famous\nis.the.Collatz.3n+1.pro
4860 62 6c 65 6d 2e 20 53 65 65 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 5c 6e 63 6f 6c 6c 61 74 7a 5f blem..See.the.function\ncollatz_
4880 70 72 6f 62 6c 65 6d 5f 64 69 67 72 61 70 68 20 62 65 6c 6f 77 2e 20 54 68 65 20 43 6f 6c 6c 61 problem_digraph.below..The.Colla
48a0 74 7a 20 63 6f 6e 6a 65 63 74 75 72 65 5c 6e 2d 2d 2d 20 74 68 61 74 20 65 76 65 72 79 20 6f 72 tz.conjecture\n---.that.every.or
48c0 62 69 74 20 72 65 74 75 72 6e 73 20 74 6f 20 74 68 65 20 66 69 78 65 64 20 70 6f 69 6e 74 20 31 bit.returns.to.the.fixed.point.1
48e0 20 69 6e 20 66 69 6e 69 74 65 20 74 69 6d 65 5c 6e 2d 2d 2d 20 69 73 20 73 74 69 6c 6c 20 75 6e .in.finite.time\n---.is.still.un
4900 70 72 6f 76 65 6e 2e 20 45 76 65 6e 20 74 68 65 20 67 72 65 61 74 20 50 61 75 6c 20 45 72 64 6f proven..Even.the.great.Paul.Erdo
4920 73 20 73 61 69 64 20 5c 22 4d 61 74 68 65 6d 61 74 69 63 73 5c 6e 69 73 20 6e 6f 74 20 79 65 74 s.said.\"Mathematics\nis.not.yet
4940 20 72 65 61 64 79 20 66 6f 72 20 73 75 63 68 20 70 72 6f 62 6c 65 6d 73 5c 22 2c 20 61 6e 64 20 .ready.for.such.problems\",.and.
4960 6f 66 66 65 72 65 64 20 24 35 30 30 5c 6e 66 6f 72 20 69 74 73 20 73 6f 6c 75 74 69 6f 6e 2e 5c offered.$500\nfor.its.solution.\
4980 6e 5c 6e 6b 65 79 77 6f 72 64 73 3a 20 5c 22 33 6e 2b 31 5c 22 2c 20 5c 22 33 78 2b 31 5c 22 2c n\nkeywords:.\"3n+1\",.\"3x+1\",
49a0 20 5c 22 43 6f 6c 6c 61 74 7a 20 70 72 6f 62 6c 65 6d 5c 22 2c 20 5c 22 54 68 77 61 69 74 65 27 .\"Collatz.problem\",.\"Thwaite'
49c0 73 20 63 6f 6e 6a 65 63 74 75 72 65 5c 22 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c s.conjecture\"\n".......].....},
49e0 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"
4a00 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,
4a20 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
4a40 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.......},......."
4a60 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":.[.
4a80 20 20 20 20 20 20 20 20 22 69 6d 70 6f 72 74 20 6e 65 74 77 6f 72 6b 78 20 61 73 20 6e 78 5c 6e ........"import.networkx.as.nx\n
4aa0 5c 6e 6e 6d 61 78 20 3d 20 31 30 30 30 30 5c 6e 70 20 3d 20 33 5c 6e 5c 6e 5c 6e 64 65 66 20 64 \nnmax.=.10000\np.=.3\n\n\ndef.d
4ac0 69 67 69 74 73 72 65 70 28 6e 2c 20 62 3d 31 30 29 3a 5c 6e 20 20 20 20 5c 22 5c 22 5c 22 52 65 igitsrep(n,.b=10):\n....\"\"\"Re
4ae0 74 75 72 6e 20 6c 69 73 74 20 6f 66 20 64 69 67 69 74 73 20 63 6f 6d 70 72 69 73 69 6e 67 20 6e turn.list.of.digits.comprising.n
4b00 20 72 65 70 72 65 73 65 6e 74 65 64 20 69 6e 20 62 61 73 65 20 62 2e 5c 6e 20 20 20 20 6e 20 6d .represented.in.base.b.\n....n.m
4b20 75 73 74 20 62 65 20 61 20 6e 6f 6e 6e 65 67 61 74 69 76 65 20 69 6e 74 65 67 65 72 5c 22 5c 22 ust.be.a.nonnegative.integer\"\"
4b40 5c 22 5c 6e 5c 6e 20 20 20 20 69 66 20 6e 20 3c 3d 20 30 3a 5c 6e 20 20 20 20 20 20 20 20 72 65 \"\n\n....if.n.<=.0:\n........re
4b60 74 75 72 6e 20 5b 30 5d 5c 6e 5c 6e 20 20 20 20 64 6c 69 73 74 20 3d 20 5b 5d 5c 6e 20 20 20 20 turn.[0]\n\n....dlist.=.[]\n....
4b80 77 68 69 6c 65 20 6e 20 3e 20 30 3a 5c 6e 20 20 20 20 20 20 20 20 23 20 50 72 65 70 65 6e 64 20 while.n.>.0:\n........#.Prepend.
4ba0 6e 65 78 74 20 6c 65 61 73 74 2d 73 69 67 6e 69 66 69 63 61 6e 74 20 64 69 67 69 74 5c 6e 20 20 next.least-significant.digit\n..
4bc0 20 20 20 20 20 20 64 6c 69 73 74 20 3d 20 5b 6e 20 25 20 62 5d 20 2b 20 64 6c 69 73 74 5c 6e 20 ......dlist.=.[n.%.b].+.dlist\n.
4be0 20 20 20 20 20 20 20 23 20 46 6c 6f 6f 72 2d 64 69 76 69 73 69 6f 6e 5c 6e 20 20 20 20 20 20 20 .......#.Floor-division\n.......
4c00 20 6e 20 3d 20 6e 20 2f 2f 20 62 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 64 6c 69 73 74 5c 6e 5c .n.=.n.//.b\n....return.dlist\n\
4c20 6e 5c 6e 64 65 66 20 70 6f 77 65 72 73 75 6d 28 6e 2c 20 70 2c 20 62 3d 31 30 29 3a 5c 6e 20 20 n\ndef.powersum(n,.p,.b=10):\n..
4c40 20 20 5c 22 5c 22 5c 22 52 65 74 75 72 6e 20 73 75 6d 20 6f 66 20 64 69 67 69 74 73 20 6f 66 20 ..\"\"\"Return.sum.of.digits.of.
4c60 6e 20 28 69 6e 20 62 61 73 65 20 62 29 20 72 61 69 73 65 64 20 74 6f 20 74 68 65 20 70 6f 77 65 n.(in.base.b).raised.to.the.powe
4c80 72 20 70 2e 5c 22 5c 22 5c 22 5c 6e 20 20 20 20 64 6c 69 73 74 20 3d 20 64 69 67 69 74 73 72 65 r.p.\"\"\"\n....dlist.=.digitsre
4ca0 70 28 6e 2c 20 62 29 5c 6e 20 20 20 20 73 75 6d 20 3d 20 30 5c 6e 20 20 20 20 66 6f 72 20 6b 20 p(n,.b)\n....sum.=.0\n....for.k.
4cc0 69 6e 20 64 6c 69 73 74 3a 5c 6e 20 20 20 20 20 20 20 20 73 75 6d 20 2b 3d 20 6b 2a 2a 70 5c 6e in.dlist:\n........sum.+=.k**p\n
4ce0 20 20 20 20 72 65 74 75 72 6e 20 73 75 6d 5c 6e 5c 6e 5c 6e 64 65 66 20 61 74 74 72 61 63 74 6f ....return.sum\n\n\ndef.attracto
4d00 72 31 35 33 5f 67 72 61 70 68 28 6e 2c 20 70 2c 20 6d 75 6c 74 69 70 6c 65 3d 33 2c 20 62 3d 31 r153_graph(n,.p,.multiple=3,.b=1
4d20 30 29 3a 5c 6e 20 20 20 20 5c 22 5c 22 5c 22 52 65 74 75 72 6e 20 64 69 67 72 61 70 68 20 6f 66 0):\n....\"\"\"Return.digraph.of
4d40 20 69 74 65 72 61 74 69 6f 6e 73 20 6f 66 20 70 6f 77 65 72 73 75 6d 28 6e 2c 33 2c 31 30 29 2e .iterations.of.powersum(n,3,10).
4d60 5c 22 5c 22 5c 22 5c 6e 20 20 20 20 47 20 3d 20 6e 78 2e 44 69 47 72 61 70 68 28 29 5c 6e 20 20 \"\"\"\n....G.=.nx.DiGraph()\n..
4d80 20 20 66 6f 72 20 6b 20 69 6e 20 72 61 6e 67 65 28 31 2c 20 6e 20 2b 20 31 29 3a 5c 6e 20 20 20 ..for.k.in.range(1,.n.+.1):\n...
4da0 20 20 20 20 20 69 66 20 6b 20 25 20 6d 75 6c 74 69 70 6c 65 20 3d 3d 20 30 20 61 6e 64 20 6b 20 .....if.k.%.multiple.==.0.and.k.
4dc0 6e 6f 74 20 69 6e 20 47 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 6b 31 20 3d 20 6b 5c 6e 20 not.in.G:\n............k1.=.k\n.
4de0 20 20 20 20 20 20 20 20 20 20 20 6b 6e 65 78 74 20 3d 20 70 6f 77 65 72 73 75 6d 28 6b 31 2c 20 ...........knext.=.powersum(k1,.
4e00 70 2c 20 62 29 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 6b 31 20 21 3d 20 6b p,.b)\n............while.k1.!=.k
4e20 6e 65 78 74 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 47 2e 61 64 64 5f 65 64 67 next:\n................G.add_edg
4e40 65 28 6b 31 2c 20 6b 6e 65 78 74 29 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6b 31 e(k1,.knext)\n................k1
4e60 20 3d 20 6b 6e 65 78 74 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6b 6e 65 78 74 20 .=.knext\n................knext.
4e80 3d 20 70 6f 77 65 72 73 75 6d 28 6b 31 2c 20 70 2c 20 62 29 5c 6e 20 20 20 20 72 65 74 75 72 6e =.powersum(k1,.p,.b)\n....return
4ea0 20 47 5c 6e 5c 6e 5c 6e 64 65 66 20 73 71 75 61 72 69 6e 67 5f 63 79 63 6c 65 5f 67 72 61 70 68 .G\n\n\ndef.squaring_cycle_graph
4ec0 5f 6f 6c 64 28 6e 2c 20 62 3d 31 30 29 3a 5c 6e 20 20 20 20 5c 22 5c 22 5c 22 52 65 74 75 72 6e _old(n,.b=10):\n....\"\"\"Return
4ee0 20 64 69 67 72 61 70 68 20 6f 66 20 69 74 65 72 61 74 69 6f 6e 73 20 6f 66 20 70 6f 77 65 72 73 .digraph.of.iterations.of.powers
4f00 75 6d 28 6e 2c 32 2c 31 30 29 2e 5c 22 5c 22 5c 22 5c 6e 20 20 20 20 47 20 3d 20 6e 78 2e 44 69 um(n,2,10).\"\"\"\n....G.=.nx.Di
4f20 47 72 61 70 68 28 29 5c 6e 20 20 20 20 66 6f 72 20 6b 20 69 6e 20 72 61 6e 67 65 28 31 2c 20 6e Graph()\n....for.k.in.range(1,.n
4f40 20 2b 20 31 29 3a 5c 6e 20 20 20 20 20 20 20 20 6b 31 20 3d 20 6b 5c 6e 20 20 20 20 20 20 20 20 .+.1):\n........k1.=.k\n........
4f60 47 2e 61 64 64 5f 6e 6f 64 65 28 6b 31 29 20 20 23 20 63 61 73 65 20 6b 31 3d 3d 6b 6e 65 78 74 G.add_node(k1)..#.case.k1==knext
4f80 2c 20 61 74 20 6c 65 61 73 74 20 61 64 64 20 6e 6f 64 65 5c 6e 20 20 20 20 20 20 20 20 6b 6e 65 ,.at.least.add.node\n........kne
4fa0 78 74 20 3d 20 70 6f 77 65 72 73 75 6d 28 6b 31 2c 20 32 2c 20 62 29 5c 6e 20 20 20 20 20 20 20 xt.=.powersum(k1,.2,.b)\n.......
4fc0 20 47 2e 61 64 64 5f 65 64 67 65 28 6b 31 2c 20 6b 6e 65 78 74 29 5c 6e 20 20 20 20 20 20 20 20 .G.add_edge(k1,.knext)\n........
4fe0 77 68 69 6c 65 20 6b 31 20 21 3d 20 6b 6e 65 78 74 3a 20 20 23 20 73 74 6f 70 20 69 66 20 66 69 while.k1.!=.knext:..#.stop.if.fi
5000 78 65 64 20 70 6f 69 6e 74 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 6b 31 20 3d 20 6b 6e 65 78 xed.point\n............k1.=.knex
5020 74 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 6b 6e 65 78 74 20 3d 20 70 6f 77 65 72 73 75 6d 28 t\n............knext.=.powersum(
5040 6b 31 2c 20 32 2c 20 62 29 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 47 2e 61 64 64 5f 65 64 67 k1,.2,.b)\n............G.add_edg
5060 65 28 6b 31 2c 20 6b 6e 65 78 74 29 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 47 2e 6f e(k1,.knext)\n............if.G.o
5080 75 74 5f 64 65 67 72 65 65 28 6b 6e 65 78 74 29 20 3e 3d 20 31 3a 5c 6e 20 20 20 20 20 20 20 20 ut_degree(knext).>=.1:\n........
50a0 20 20 20 20 20 20 20 20 23 20 6b 6e 65 78 74 20 68 61 73 20 61 6c 72 65 61 64 79 20 62 65 65 6e ........#.knext.has.already.been
50c0 20 69 74 65 72 61 74 65 64 20 69 6e 20 61 6e 64 20 6f 75 74 5c 6e 20 20 20 20 20 20 20 20 20 20 .iterated.in.and.out\n..........
50e0 20 20 20 20 20 20 62 72 65 61 6b 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 47 5c 6e 5c 6e 5c 6e 64 ......break\n....return.G\n\n\nd
5100 65 66 20 73 75 6d 5f 6f 66 5f 64 69 67 69 74 73 5f 67 72 61 70 68 28 6e 6d 61 78 2c 20 62 3d 31 ef.sum_of_digits_graph(nmax,.b=1
5120 30 29 3a 5c 6e 20 20 20 20 64 65 66 20 66 28 6e 29 3a 5c 6e 20 20 20 20 20 20 20 20 72 65 74 75 0):\n....def.f(n):\n........retu
5140 72 6e 20 70 6f 77 65 72 73 75 6d 28 6e 2c 20 31 2c 20 62 29 5c 6e 5c 6e 20 20 20 20 72 65 74 75 rn.powersum(n,.1,.b)\n\n....retu
5160 72 6e 20 64 69 73 63 72 65 74 65 5f 64 79 6e 61 6d 69 63 73 5f 64 69 67 72 61 70 68 28 6e 6d 61 rn.discrete_dynamics_digraph(nma
5180 78 2c 20 66 29 5c 6e 5c 6e 5c 6e 64 65 66 20 73 71 75 61 72 69 6e 67 5f 63 79 63 6c 65 5f 64 69 x,.f)\n\n\ndef.squaring_cycle_di
51a0 67 72 61 70 68 28 6e 6d 61 78 2c 20 62 3d 31 30 29 3a 5c 6e 20 20 20 20 64 65 66 20 66 28 6e 29 graph(nmax,.b=10):\n....def.f(n)
51c0 3a 5c 6e 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 70 6f 77 65 72 73 75 6d 28 6e 2c 20 32 2c :\n........return.powersum(n,.2,
51e0 20 62 29 5c 6e 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 64 69 73 63 72 65 74 65 5f 64 79 6e 61 6d .b)\n\n....return.discrete_dynam
5200 69 63 73 5f 64 69 67 72 61 70 68 28 6e 6d 61 78 2c 20 66 29 5c 6e 5c 6e 5c 6e 64 65 66 20 63 75 ics_digraph(nmax,.f)\n\n\ndef.cu
5220 62 69 6e 67 5f 31 35 33 5f 64 69 67 72 61 70 68 28 6e 6d 61 78 29 3a 5c 6e 20 20 20 20 64 65 66 bing_153_digraph(nmax):\n....def
5240 20 66 28 6e 29 3a 5c 6e 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 70 6f 77 65 72 73 75 6d 28 .f(n):\n........return.powersum(
5260 6e 2c 20 33 2c 20 31 30 29 5c 6e 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 64 69 73 63 72 65 74 65 n,.3,.10)\n\n....return.discrete
5280 5f 64 79 6e 61 6d 69 63 73 5f 64 69 67 72 61 70 68 28 6e 6d 61 78 2c 20 66 29 5c 6e 5c 6e 5c 6e _dynamics_digraph(nmax,.f)\n\n\n
52a0 64 65 66 20 64 69 73 63 72 65 74 65 5f 64 79 6e 61 6d 69 63 73 5f 64 69 67 72 61 70 68 28 6e 6d def.discrete_dynamics_digraph(nm
52c0 61 78 2c 20 66 2c 20 69 74 65 72 6d 61 78 3d 35 30 30 30 30 29 3a 5c 6e 20 20 20 20 47 20 3d 20 ax,.f,.itermax=50000):\n....G.=.
52e0 6e 78 2e 44 69 47 72 61 70 68 28 29 5c 6e 20 20 20 20 66 6f 72 20 6b 20 69 6e 20 72 61 6e 67 65 nx.DiGraph()\n....for.k.in.range
5300 28 31 2c 20 6e 6d 61 78 20 2b 20 31 29 3a 5c 6e 20 20 20 20 20 20 20 20 6b 6f 6c 64 20 3d 20 6b (1,.nmax.+.1):\n........kold.=.k
5320 5c 6e 20 20 20 20 20 20 20 20 47 2e 61 64 64 5f 6e 6f 64 65 28 6b 6f 6c 64 29 5c 6e 20 20 20 20 \n........G.add_node(kold)\n....
5340 20 20 20 20 6b 6e 65 77 20 3d 20 66 28 6b 6f 6c 64 29 5c 6e 20 20 20 20 20 20 20 20 47 2e 61 64 ....knew.=.f(kold)\n........G.ad
5360 64 5f 65 64 67 65 28 6b 6f 6c 64 2c 20 6b 6e 65 77 29 5c 6e 20 20 20 20 20 20 20 20 77 68 69 6c d_edge(kold,.knew)\n........whil
5380 65 20 6b 6f 6c 64 20 21 3d 20 6b 6e 65 77 20 61 6e 64 20 6b 6f 6c 64 20 3c 3c 20 69 74 65 72 6d e.kold.!=.knew.and.kold.<<.iterm
53a0 61 78 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 23 20 69 74 65 72 61 74 65 20 75 6e 74 69 6c ax:\n............#.iterate.until
53c0 20 66 69 78 65 64 20 70 6f 69 6e 74 20 72 65 61 63 68 65 64 20 6f 72 20 69 74 65 72 6d 61 78 20 .fixed.point.reached.or.itermax.
53e0 69 73 20 65 78 63 65 65 64 65 64 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 6b 6f 6c 64 20 3d 20 is.exceeded\n............kold.=.
5400 6b 6e 65 77 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 6b 6e 65 77 20 3d 20 66 28 6b 6f 6c 64 29 knew\n............knew.=.f(kold)
5420 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 47 2e 61 64 64 5f 65 64 67 65 28 6b 6f 6c 64 2c 20 6b \n............G.add_edge(kold,.k
5440 6e 65 77 29 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 47 2e 6f 75 74 5f 64 65 67 72 65 new)\n............if.G.out_degre
5460 65 28 6b 6e 65 77 29 20 3e 3d 20 31 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 e(knew).>=.1:\n................#
5480 20 6b 6e 65 77 20 68 61 73 20 61 6c 72 65 61 64 79 20 62 65 65 6e 20 69 74 65 72 61 74 65 64 20 .knew.has.already.been.iterated.
54a0 69 6e 20 61 6e 64 20 6f 75 74 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 in.and.out\n................brea
54c0 6b 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 47 5c 6e 5c 6e 5c 6e 64 65 66 20 63 6f 6c 6c 61 74 7a k\n....return.G\n\n\ndef.collatz
54e0 5f 70 72 6f 62 6c 65 6d 5f 64 69 67 72 61 70 68 28 6e 6d 61 78 29 3a 5c 6e 20 20 20 20 64 65 66 _problem_digraph(nmax):\n....def
5500 20 66 28 6e 29 3a 5c 6e 20 20 20 20 20 20 20 20 69 66 20 6e 20 25 20 32 20 3d 3d 20 30 3a 5c 6e .f(n):\n........if.n.%.2.==.0:\n
5520 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 20 2f 2f 20 32 5c 6e 20 20 20 20 20 ............return.n.//.2\n.....
5540 20 20 20 65 6c 73 65 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 33 20 2a ...else:\n............return.3.*
5560 20 6e 20 2b 20 31 5c 6e 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 64 69 73 63 72 65 74 65 5f 64 79 .n.+.1\n\n....return.discrete_dy
5580 6e 61 6d 69 63 73 5f 64 69 67 72 61 70 68 28 6e 6d 61 78 2c 20 66 29 5c 6e 5c 6e 5c 6e 64 65 66 namics_digraph(nmax,.f)\n\n\ndef
55a0 20 66 69 78 65 64 5f 70 6f 69 6e 74 73 28 47 29 3a 5c 6e 20 20 20 20 5c 22 5c 22 5c 22 52 65 74 .fixed_points(G):\n....\"\"\"Ret
55c0 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 66 69 78 65 64 20 70 6f 69 6e 74 73 20 66 6f 72 20 74 urn.a.list.of.fixed.points.for.t
55e0 68 65 20 64 69 73 63 72 65 74 65 20 64 79 6e 61 6d 69 63 61 6c 5c 6e 20 20 20 20 73 79 73 74 65 he.discrete.dynamical\n....syste
5600 6d 20 72 65 70 72 65 73 65 6e 74 65 64 20 62 79 20 74 68 65 20 64 69 67 72 61 70 68 20 47 2e 5c m.represented.by.the.digraph.G.\
5620 6e 20 20 20 20 5c 22 5c 22 5c 22 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 5b 6e 20 66 6f 72 20 6e n....\"\"\"\n....return.[n.for.n
5640 20 69 6e 20 47 20 69 66 20 47 2e 6f 75 74 5f 64 65 67 72 65 65 28 6e 29 20 3d 3d 20 30 5d 5c 6e .in.G.if.G.out_degree(n).==.0]\n
5660 5c 6e 5c 6e 6e 6d 61 78 20 3d 20 31 30 30 30 30 5c 6e 70 72 69 6e 74 28 66 5c 22 42 75 69 6c 64 \n\nnmax.=.10000\nprint(f\"Build
5680 69 6e 67 20 63 75 62 69 6e 67 5f 31 35 33 5f 64 69 67 72 61 70 68 28 7b 6e 6d 61 78 7d 29 5c 22 ing.cubing_153_digraph({nmax})\"
56a0 29 5c 6e 47 20 3d 20 63 75 62 69 6e 67 5f 31 35 33 5f 64 69 67 72 61 70 68 28 6e 6d 61 78 29 5c )\nG.=.cubing_153_digraph(nmax)\
56c0 6e 70 72 69 6e 74 28 5c 22 52 65 73 75 6c 74 69 6e 67 20 64 69 67 72 61 70 68 20 68 61 73 5c 22 nprint(\"Resulting.digraph.has\"
56e0 2c 20 6c 65 6e 28 47 29 2c 20 5c 22 6e 6f 64 65 73 20 61 6e 64 5c 22 2c 20 47 2e 73 69 7a 65 28 ,.len(G),.\"nodes.and\",.G.size(
5700 29 2c 20 5c 22 20 65 64 67 65 73 5c 22 29 5c 6e 70 72 69 6e 74 28 5c 22 53 68 6f 72 74 65 73 74 ),.\".edges\")\nprint(\"Shortest
5720 20 70 61 74 68 20 66 72 6f 6d 20 31 37 37 20 74 6f 20 31 35 33 20 69 73 3a 5c 22 29 5c 6e 70 72 .path.from.177.to.153.is:\")\npr
5740 69 6e 74 28 6e 78 2e 73 68 6f 72 74 65 73 74 5f 70 61 74 68 28 47 2c 20 31 37 37 2c 20 31 35 33 int(nx.shortest_path(G,.177,.153
5760 29 29 5c 6e 70 72 69 6e 74 28 66 5c 22 66 69 78 65 64 20 70 6f 69 6e 74 73 20 61 72 65 20 7b 66 ))\nprint(f\"fixed.points.are.{f
5780 69 78 65 64 5f 70 6f 69 6e 74 73 28 47 29 7d 5c 22 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 ixed_points(G)}\")".......].....
57a0 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 72 6e }...],..."metadata":.{....."kern
57c0 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 22 3a elspec":.{......."display_name":
57e0 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 20 22 ."Python.3",......."language":."
5800 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 33 22 python",......."name":."python3"
5820 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 0a 20 .....},....."language_info":.{..
5840 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 20 20 ....."codemirror_mode":.{.......
5860 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 76 65 .."name":."ipython",........."ve
5880 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 5f 65 rsion":.3.......},......."file_e
58a0 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 79 70 xtension":.".py",......."mimetyp
58c0 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 6d 65 e":."text/x-python",......."name
58e0 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 65 78 ":."python",......."nbconvert_ex
5900 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 65 6e porter":."python",......."pygmen
5920 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 76 65 ts_lexer":."ipython3",......."ve
5940 72 73 69 6f 6e 22 3a 20 22 33 2e 39 2e 31 36 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 6e rsion":."3.9.16".....}...},..."n
5960 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 3a bformat":.4,..."nbformat_minor":
5980 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 1a 0f 5a 56 7d d4 84 d5 ad 0d 00 00 ad 0d 00 00 2a 00 .0.}PK..........ZV}...........*.
59a0 00 00 61 6c 67 6f 72 69 74 68 6d 73 2f 70 6c 6f 74 5f 70 61 72 61 6c 6c 65 6c 5f 62 65 74 77 65 ..algorithms/plot_parallel_betwe
59c0 65 6e 6e 65 73 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 enness.ipynb{..."cells":.[.....{
59e0 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",.....
5a00 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,......
5a20 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
5a40 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
5a60 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":.[.......
5a80 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 20 .."%matplotlib.inline".......]..
5aa0 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":."
5ac0 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":.{},
5ae0 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 20 ......."source":.[........."\n#.
5b00 50 61 72 61 6c 6c 65 6c 20 42 65 74 77 65 65 6e 6e 65 73 73 5c 6e 5c 6e 45 78 61 6d 70 6c 65 20 Parallel.Betweenness\n\nExample.
5b20 6f 66 20 70 61 72 61 6c 6c 65 6c 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 62 65 of.parallel.implementation.of.be
5b40 74 77 65 65 6e 6e 65 73 73 20 63 65 6e 74 72 61 6c 69 74 79 20 75 73 69 6e 67 20 74 68 65 5c 6e tweenness.centrality.using.the\n
5b60 6d 75 6c 74 69 70 72 6f 63 65 73 73 69 6e 67 20 6d 6f 64 75 6c 65 20 66 72 6f 6d 20 50 79 74 68 multiprocessing.module.from.Pyth
5b80 6f 6e 20 53 74 61 6e 64 61 72 64 20 4c 69 62 72 61 72 79 2e 5c 6e 5c 6e 54 68 65 20 66 75 6e 63 on.Standard.Library.\n\nThe.func
5ba0 74 69 6f 6e 20 62 65 74 77 65 65 6e 6e 65 73 73 20 63 65 6e 74 72 61 6c 69 74 79 20 61 63 63 65 tion.betweenness.centrality.acce
5bc0 70 74 73 20 61 20 62 75 6e 63 68 20 6f 66 20 6e 6f 64 65 73 20 61 6e 64 20 63 6f 6d 70 75 74 65 pts.a.bunch.of.nodes.and.compute
5be0 73 5c 6e 74 68 65 20 63 6f 6e 74 72 69 62 75 74 69 6f 6e 20 6f 66 20 74 68 6f 73 65 20 6e 6f 64 s\nthe.contribution.of.those.nod
5c00 65 73 20 74 6f 20 74 68 65 20 62 65 74 77 65 65 6e 6e 65 73 73 20 63 65 6e 74 72 61 6c 69 74 79 es.to.the.betweenness.centrality
5c20 20 6f 66 20 74 68 65 20 77 68 6f 6c 65 5c 6e 6e 65 74 77 6f 72 6b 2e 20 48 65 72 65 20 77 65 20 .of.the.whole\nnetwork..Here.we.
5c40 64 69 76 69 64 65 20 74 68 65 20 6e 65 74 77 6f 72 6b 20 69 6e 20 63 68 75 6e 6b 73 20 6f 66 20 divide.the.network.in.chunks.of.
5c60 6e 6f 64 65 73 20 61 6e 64 20 77 65 20 63 6f 6d 70 75 74 65 20 74 68 65 69 72 5c 6e 63 6f 6e 74 nodes.and.we.compute.their\ncont
5c80 72 69 62 75 74 69 6f 6e 20 74 6f 20 74 68 65 20 62 65 74 77 65 65 6e 6e 65 73 73 20 63 65 6e 74 ribution.to.the.betweenness.cent
5ca0 72 61 6c 69 74 79 20 6f 66 20 74 68 65 20 77 68 6f 6c 65 20 6e 65 74 77 6f 72 6b 2e 5c 6e 5c 6e rality.of.the.whole.network.\n\n
5cc0 4e 6f 74 65 3a 20 54 68 65 20 65 78 61 6d 70 6c 65 20 6f 75 74 70 75 74 20 62 65 6c 6f 77 20 73 Note:.The.example.output.below.s
5ce0 68 6f 77 73 20 74 68 61 74 20 74 68 65 20 6e 6f 6e 2d 70 61 72 61 6c 6c 65 6c 20 69 6d 70 6c 65 hows.that.the.non-parallel.imple
5d00 6d 65 6e 74 61 74 69 6f 6e 20 69 73 5c 6e 66 61 73 74 65 72 2e 20 54 68 69 73 20 69 73 20 61 20 mentation.is\nfaster..This.is.a.
5d20 6c 69 6d 69 74 61 74 69 6f 6e 20 6f 66 20 6f 75 72 20 43 49 2f 43 44 20 70 69 70 65 6c 69 6e 65 limitation.of.our.CI/CD.pipeline
5d40 20 72 75 6e 6e 69 6e 67 20 6f 6e 20 61 20 73 69 6e 67 6c 65 20 63 6f 72 65 2e 5c 6e 5c 6e 44 65 .running.on.a.single.core.\n\nDe
5d60 70 65 6e 64 69 6e 67 20 6f 6e 20 79 6f 75 72 20 73 65 74 75 70 2c 20 79 6f 75 20 77 69 6c 6c 20 pending.on.your.setup,.you.will.
5d80 6c 69 6b 65 6c 79 20 6f 62 73 65 72 76 65 20 61 20 73 70 65 65 64 75 70 2e 5c 6e 22 0a 20 20 20 likely.observe.a.speedup.\n"....
5da0 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
5dc0 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
5de0 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":.{.
5e00 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......
5e20 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":.[],......."
5e40 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 66 72 6f 6d 20 6d 75 6c 74 69 70 72 source":.[........."from.multipr
5e60 6f 63 65 73 73 69 6e 67 20 69 6d 70 6f 72 74 20 50 6f 6f 6c 5c 6e 69 6d 70 6f 72 74 20 74 69 6d ocessing.import.Pool\nimport.tim
5e80 65 5c 6e 69 6d 70 6f 72 74 20 69 74 65 72 74 6f 6f 6c 73 5c 6e 5c 6e 69 6d 70 6f 72 74 20 6d 61 e\nimport.itertools\n\nimport.ma
5ea0 74 70 6c 6f 74 6c 69 62 2e 70 79 70 6c 6f 74 20 61 73 20 70 6c 74 5c 6e 69 6d 70 6f 72 74 20 6e tplotlib.pyplot.as.plt\nimport.n
5ec0 65 74 77 6f 72 6b 78 20 61 73 20 6e 78 5c 6e 5c 6e 5c 6e 64 65 66 20 63 68 75 6e 6b 73 28 6c 2c etworkx.as.nx\n\n\ndef.chunks(l,
5ee0 20 6e 29 3a 5c 6e 20 20 20 20 5c 22 5c 22 5c 22 44 69 76 69 64 65 20 61 20 6c 69 73 74 20 6f 66 .n):\n....\"\"\"Divide.a.list.of
5f00 20 6e 6f 64 65 73 20 60 6c 60 20 69 6e 20 60 6e 60 20 63 68 75 6e 6b 73 5c 22 5c 22 5c 22 5c 6e .nodes.`l`.in.`n`.chunks\"\"\"\n
5f20 20 20 20 20 6c 5f 63 20 3d 20 69 74 65 72 28 6c 29 5c 6e 20 20 20 20 77 68 69 6c 65 20 31 3a 5c ....l_c.=.iter(l)\n....while.1:\
5f40 6e 20 20 20 20 20 20 20 20 78 20 3d 20 74 75 70 6c 65 28 69 74 65 72 74 6f 6f 6c 73 2e 69 73 6c n........x.=.tuple(itertools.isl
5f60 69 63 65 28 6c 5f 63 2c 20 6e 29 29 5c 6e 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 78 3a 5c ice(l_c,.n))\n........if.not.x:\
5f80 6e 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 5c 6e 20 20 20 20 20 20 20 20 79 69 65 n............return\n........yie
5fa0 6c 64 20 78 5c 6e 5c 6e 5c 6e 64 65 66 20 62 65 74 77 65 65 6e 6e 65 73 73 5f 63 65 6e 74 72 61 ld.x\n\n\ndef.betweenness_centra
5fc0 6c 69 74 79 5f 70 61 72 61 6c 6c 65 6c 28 47 2c 20 70 72 6f 63 65 73 73 65 73 3d 4e 6f 6e 65 29 lity_parallel(G,.processes=None)
5fe0 3a 5c 6e 20 20 20 20 5c 22 5c 22 5c 22 50 61 72 61 6c 6c 65 6c 20 62 65 74 77 65 65 6e 6e 65 73 :\n....\"\"\"Parallel.betweennes
6000 73 20 63 65 6e 74 72 61 6c 69 74 79 20 20 66 75 6e 63 74 69 6f 6e 5c 22 5c 22 5c 22 5c 6e 20 20 s.centrality..function\"\"\"\n..
6020 20 20 70 20 3d 20 50 6f 6f 6c 28 70 72 6f 63 65 73 73 65 73 3d 70 72 6f 63 65 73 73 65 73 29 5c ..p.=.Pool(processes=processes)\
6040 6e 20 20 20 20 6e 6f 64 65 5f 64 69 76 69 73 6f 72 20 3d 20 6c 65 6e 28 70 2e 5f 70 6f 6f 6c 29 n....node_divisor.=.len(p._pool)
6060 20 2a 20 34 5c 6e 20 20 20 20 6e 6f 64 65 5f 63 68 75 6e 6b 73 20 3d 20 6c 69 73 74 28 63 68 75 .*.4\n....node_chunks.=.list(chu
6080 6e 6b 73 28 47 2e 6e 6f 64 65 73 28 29 2c 20 47 2e 6f 72 64 65 72 28 29 20 2f 2f 20 6e 6f 64 65 nks(G.nodes(),.G.order().//.node
60a0 5f 64 69 76 69 73 6f 72 29 29 5c 6e 20 20 20 20 6e 75 6d 5f 63 68 75 6e 6b 73 20 3d 20 6c 65 6e _divisor))\n....num_chunks.=.len
60c0 28 6e 6f 64 65 5f 63 68 75 6e 6b 73 29 5c 6e 20 20 20 20 62 74 5f 73 63 20 3d 20 70 2e 73 74 61 (node_chunks)\n....bt_sc.=.p.sta
60e0 72 6d 61 70 28 5c 6e 20 20 20 20 20 20 20 20 6e 78 2e 62 65 74 77 65 65 6e 6e 65 73 73 5f 63 65 rmap(\n........nx.betweenness_ce
6100 6e 74 72 61 6c 69 74 79 5f 73 75 62 73 65 74 2c 5c 6e 20 20 20 20 20 20 20 20 7a 69 70 28 5c 6e ntrality_subset,\n........zip(\n
6120 20 20 20 20 20 20 20 20 20 20 20 20 5b 47 5d 20 2a 20 6e 75 6d 5f 63 68 75 6e 6b 73 2c 5c 6e 20 ............[G].*.num_chunks,\n.
6140 20 20 20 20 20 20 20 20 20 20 20 6e 6f 64 65 5f 63 68 75 6e 6b 73 2c 5c 6e 20 20 20 20 20 20 20 ...........node_chunks,\n.......
6160 20 20 20 20 20 5b 6c 69 73 74 28 47 29 5d 20 2a 20 6e 75 6d 5f 63 68 75 6e 6b 73 2c 5c 6e 20 20 .....[list(G)].*.num_chunks,\n..
6180 20 20 20 20 20 20 20 20 20 20 5b 54 72 75 65 5d 20 2a 20 6e 75 6d 5f 63 68 75 6e 6b 73 2c 5c 6e ..........[True].*.num_chunks,\n
61a0 20 20 20 20 20 20 20 20 20 20 20 20 5b 4e 6f 6e 65 5d 20 2a 20 6e 75 6d 5f 63 68 75 6e 6b 73 2c ............[None].*.num_chunks,
61c0 5c 6e 20 20 20 20 20 20 20 20 29 2c 5c 6e 20 20 20 20 29 5c 6e 5c 6e 20 20 20 20 23 20 52 65 64 \n........),\n....)\n\n....#.Red
61e0 75 63 65 20 74 68 65 20 70 61 72 74 69 61 6c 20 73 6f 6c 75 74 69 6f 6e 73 5c 6e 20 20 20 20 62 uce.the.partial.solutions\n....b
6200 74 5f 63 20 3d 20 62 74 5f 73 63 5b 30 5d 5c 6e 20 20 20 20 66 6f 72 20 62 74 20 69 6e 20 62 74 t_c.=.bt_sc[0]\n....for.bt.in.bt
6220 5f 73 63 5b 31 3a 5d 3a 5c 6e 20 20 20 20 20 20 20 20 66 6f 72 20 6e 20 69 6e 20 62 74 3a 5c 6e _sc[1:]:\n........for.n.in.bt:\n
6240 20 20 20 20 20 20 20 20 20 20 20 20 62 74 5f 63 5b 6e 5d 20 2b 3d 20 62 74 5b 6e 5d 5c 6e 20 20 ............bt_c[n].+=.bt[n]\n..
6260 20 20 72 65 74 75 72 6e 20 62 74 5f 63 5c 6e 5c 6e 5c 6e 47 5f 62 61 20 3d 20 6e 78 2e 62 61 72 ..return.bt_c\n\n\nG_ba.=.nx.bar
6280 61 62 61 73 69 5f 61 6c 62 65 72 74 5f 67 72 61 70 68 28 31 30 30 30 2c 20 33 29 5c 6e 47 5f 65 abasi_albert_graph(1000,.3)\nG_e
62a0 72 20 3d 20 6e 78 2e 67 6e 70 5f 72 61 6e 64 6f 6d 5f 67 72 61 70 68 28 31 30 30 30 2c 20 30 2e r.=.nx.gnp_random_graph(1000,.0.
62c0 30 31 29 5c 6e 47 5f 77 73 20 3d 20 6e 78 2e 63 6f 6e 6e 65 63 74 65 64 5f 77 61 74 74 73 5f 73 01)\nG_ws.=.nx.connected_watts_s
62e0 74 72 6f 67 61 74 7a 5f 67 72 61 70 68 28 31 30 30 30 2c 20 34 2c 20 30 2e 31 29 5c 6e 66 6f 72 trogatz_graph(1000,.4,.0.1)\nfor
6300 20 47 20 69 6e 20 5b 47 5f 62 61 2c 20 47 5f 65 72 2c 20 47 5f 77 73 5d 3a 5c 6e 20 20 20 20 70 .G.in.[G_ba,.G_er,.G_ws]:\n....p
6320 72 69 6e 74 28 5c 22 5c 22 29 5c 6e 20 20 20 20 70 72 69 6e 74 28 5c 22 43 6f 6d 70 75 74 69 6e rint(\"\")\n....print(\"Computin
6340 67 20 62 65 74 77 65 65 6e 6e 65 73 73 20 63 65 6e 74 72 61 6c 69 74 79 20 66 6f 72 3a 5c 22 29 g.betweenness.centrality.for:\")
6360 5c 6e 20 20 20 20 70 72 69 6e 74 28 47 29 5c 6e 20 20 20 20 70 72 69 6e 74 28 5c 22 5c 5c 74 50 \n....print(G)\n....print(\"\\tP
6380 61 72 61 6c 6c 65 6c 20 76 65 72 73 69 6f 6e 5c 22 29 5c 6e 20 20 20 20 73 74 61 72 74 20 3d 20 arallel.version\")\n....start.=.
63a0 74 69 6d 65 2e 74 69 6d 65 28 29 5c 6e 20 20 20 20 62 74 20 3d 20 62 65 74 77 65 65 6e 6e 65 73 time.time()\n....bt.=.betweennes
63c0 73 5f 63 65 6e 74 72 61 6c 69 74 79 5f 70 61 72 61 6c 6c 65 6c 28 47 29 5c 6e 20 20 20 20 70 72 s_centrality_parallel(G)\n....pr
63e0 69 6e 74 28 66 5c 22 5c 5c 74 5c 5c 74 54 69 6d 65 3a 20 7b 28 74 69 6d 65 2e 74 69 6d 65 28 29 int(f\"\\t\\tTime:.{(time.time()
6400 20 2d 20 73 74 61 72 74 29 3a 2e 34 46 7d 20 73 65 63 6f 6e 64 73 5c 22 29 5c 6e 20 20 20 20 70 .-.start):.4F}.seconds\")\n....p
6420 72 69 6e 74 28 66 5c 22 5c 5c 74 5c 5c 74 42 65 74 77 65 65 6e 6e 65 73 73 20 63 65 6e 74 72 61 rint(f\"\\t\\tBetweenness.centra
6440 6c 69 74 79 20 66 6f 72 20 6e 6f 64 65 20 30 3a 20 7b 62 74 5b 30 5d 3a 2e 35 66 7d 5c 22 29 5c lity.for.node.0:.{bt[0]:.5f}\")\
6460 6e 20 20 20 20 70 72 69 6e 74 28 5c 22 5c 5c 74 4e 6f 6e 2d 50 61 72 61 6c 6c 65 6c 20 76 65 72 n....print(\"\\tNon-Parallel.ver
6480 73 69 6f 6e 5c 22 29 5c 6e 20 20 20 20 73 74 61 72 74 20 3d 20 74 69 6d 65 2e 74 69 6d 65 28 29 sion\")\n....start.=.time.time()
64a0 5c 6e 20 20 20 20 62 74 20 3d 20 6e 78 2e 62 65 74 77 65 65 6e 6e 65 73 73 5f 63 65 6e 74 72 61 \n....bt.=.nx.betweenness_centra
64c0 6c 69 74 79 28 47 29 5c 6e 20 20 20 20 70 72 69 6e 74 28 66 5c 22 5c 5c 74 5c 5c 74 54 69 6d 65 lity(G)\n....print(f\"\\t\\tTime
64e0 3a 20 7b 28 74 69 6d 65 2e 74 69 6d 65 28 29 20 2d 20 73 74 61 72 74 29 3a 2e 34 46 7d 20 73 65 :.{(time.time().-.start):.4F}.se
6500 63 6f 6e 64 73 5c 22 29 5c 6e 20 20 20 20 70 72 69 6e 74 28 66 5c 22 5c 5c 74 5c 5c 74 42 65 74 conds\")\n....print(f\"\\t\\tBet
6520 77 65 65 6e 6e 65 73 73 20 63 65 6e 74 72 61 6c 69 74 79 20 66 6f 72 20 6e 6f 64 65 20 30 3a 20 weenness.centrality.for.node.0:.
6540 7b 62 74 5b 30 5d 3a 2e 35 66 7d 5c 22 29 5c 6e 70 72 69 6e 74 28 5c 22 5c 22 29 5c 6e 5c 6e 6e {bt[0]:.5f}\")\nprint(\"\")\n\nn
6560 78 2e 64 72 61 77 28 47 5f 62 61 2c 20 6e 6f 64 65 5f 73 69 7a 65 3d 31 30 30 29 5c 6e 70 6c 74 x.draw(G_ba,.node_size=100)\nplt
6580 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
65a0 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":.{.
65c0 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"
65e0 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",...
6600 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".....},....
6620 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
6640 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":."
6660 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..
6680 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":.
66a0 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
66c0 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"
66e0 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
6700 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":.
6720 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.
6740 39 2e 31 36 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 9.16".....}...},..."nbformat":.4
6760 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 00 ,..."nbformat_minor":.0.}PK.....
6780 00 00 00 0e 0f 5a 56 b5 c0 c9 88 60 0c 00 00 60 0c 00 00 2c 00 00 00 61 6c 67 6f 72 69 74 68 6d .....ZV....`...`...,...algorithm
67a0 73 2f 70 6c 6f 74 5f 62 65 74 77 65 65 6e 6e 65 73 73 5f 63 65 6e 74 72 61 6c 69 74 79 2e 69 70 s/plot_betweenness_centrality.ip
67c0 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 22 63 ynb{..."cells":.[.....{......."c
67e0 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
6800 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
6820 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
6840 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":.[],..
6860 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 70 6c ....."source":.[........."%matpl
6880 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 20 20 otlib.inline".......].....},....
68a0 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"
68c0 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
68e0 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 42 65 74 77 65 65 6e 6e 65 ource":.[........."\n#.Betweenne
6900 73 73 20 43 65 6e 74 72 61 6c 69 74 79 5c 6e 5c 6e 42 65 74 77 65 65 6e 6e 65 73 73 20 63 65 6e ss.Centrality\n\nBetweenness.cen
6920 74 72 61 6c 69 74 79 20 6d 65 61 73 75 72 65 73 20 6f 66 20 70 6f 73 69 74 69 76 65 20 67 65 6e trality.measures.of.positive.gen
6940 65 20 66 75 6e 63 74 69 6f 6e 61 6c 20 61 73 73 6f 63 69 61 74 69 6f 6e 73 5c 6e 75 73 69 6e 67 e.functional.associations\nusing
6960 20 57 6f 72 6d 4e 65 74 20 76 2e 33 2d 47 53 2e 5c 6e 5c 6e 44 61 74 61 20 66 72 6f 6d 3a 20 68 .WormNet.v.3-GS.\n\nData.from:.h
6980 74 74 70 73 3a 2f 2f 77 77 77 2e 69 6e 65 74 62 69 6f 2e 6f 72 67 2f 77 6f 72 6d 6e 65 74 2f 64 ttps://www.inetbio.org/wormnet/d
69a0 6f 77 6e 6c 6f 61 64 6e 65 74 77 6f 72 6b 2e 70 68 70 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 ownloadnetwork.php\n".......]...
69c0 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
69e0 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
6a00 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":.{........
6a20 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.......},....
6a40 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"
6a60 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 66 72 6f 6d 20 72 61 6e 64 6f 6d 20 69 6d 70 6f 72 74 20 :.[........."from.random.import.
6a80 73 61 6d 70 6c 65 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 sample\nimport.networkx.as.nx\ni
6aa0 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 20 70 6c 74 5c 6e mport.matplotlib.pyplot.as.plt\n
6ac0 5c 6e 23 20 47 6f 6c 64 20 73 74 61 6e 64 61 72 64 20 64 61 74 61 20 6f 66 20 70 6f 73 69 74 69 \n#.Gold.standard.data.of.positi
6ae0 76 65 20 67 65 6e 65 20 66 75 6e 63 74 69 6f 6e 61 6c 20 61 73 73 6f 63 69 61 74 69 6f 6e 73 5c ve.gene.functional.associations\
6b00 6e 23 20 66 72 6f 6d 20 68 74 74 70 73 3a 2f 2f 77 77 77 2e 69 6e 65 74 62 69 6f 2e 6f 72 67 2f n#.from.https://www.inetbio.org/
6b20 77 6f 72 6d 6e 65 74 2f 64 6f 77 6e 6c 6f 61 64 6e 65 74 77 6f 72 6b 2e 70 68 70 5c 6e 47 20 3d wormnet/downloadnetwork.php\nG.=
6b40 20 6e 78 2e 72 65 61 64 5f 65 64 67 65 6c 69 73 74 28 5c 22 57 6f 72 6d 4e 65 74 2e 76 33 2e 62 .nx.read_edgelist(\"WormNet.v3.b
6b60 65 6e 63 68 6d 61 72 6b 2e 74 78 74 5c 22 29 5c 6e 5c 6e 23 20 72 65 6d 6f 76 65 20 72 61 6e 64 enchmark.txt\")\n\n#.remove.rand
6b80 6f 6d 6c 79 20 73 65 6c 65 63 74 65 64 20 6e 6f 64 65 73 20 28 74 6f 20 6d 61 6b 65 20 65 78 61 omly.selected.nodes.(to.make.exa
6ba0 6d 70 6c 65 20 66 61 73 74 29 5c 6e 6e 75 6d 5f 74 6f 5f 72 65 6d 6f 76 65 20 3d 20 69 6e 74 28 mple.fast)\nnum_to_remove.=.int(
6bc0 6c 65 6e 28 47 29 20 2f 20 31 2e 35 29 5c 6e 6e 6f 64 65 73 20 3d 20 73 61 6d 70 6c 65 28 6c 69 len(G)./.1.5)\nnodes.=.sample(li
6be0 73 74 28 47 2e 6e 6f 64 65 73 29 2c 20 6e 75 6d 5f 74 6f 5f 72 65 6d 6f 76 65 29 5c 6e 47 2e 72 st(G.nodes),.num_to_remove)\nG.r
6c00 65 6d 6f 76 65 5f 6e 6f 64 65 73 5f 66 72 6f 6d 28 6e 6f 64 65 73 29 5c 6e 5c 6e 23 20 72 65 6d emove_nodes_from(nodes)\n\n#.rem
6c20 6f 76 65 20 6c 6f 77 2d 64 65 67 72 65 65 20 6e 6f 64 65 73 5c 6e 6c 6f 77 5f 64 65 67 72 65 65 ove.low-degree.nodes\nlow_degree
6c40 20 3d 20 5b 6e 20 66 6f 72 20 6e 2c 20 64 20 69 6e 20 47 2e 64 65 67 72 65 65 28 29 20 69 66 20 .=.[n.for.n,.d.in.G.degree().if.
6c60 64 20 3c 20 31 30 5d 5c 6e 47 2e 72 65 6d 6f 76 65 5f 6e 6f 64 65 73 5f 66 72 6f 6d 28 6c 6f 77 d.<.10]\nG.remove_nodes_from(low
6c80 5f 64 65 67 72 65 65 29 5c 6e 5c 6e 23 20 6c 61 72 67 65 73 74 20 63 6f 6e 6e 65 63 74 65 64 20 _degree)\n\n#.largest.connected.
6ca0 63 6f 6d 70 6f 6e 65 6e 74 5c 6e 63 6f 6d 70 6f 6e 65 6e 74 73 20 3d 20 6e 78 2e 63 6f 6e 6e 65 component\ncomponents.=.nx.conne
6cc0 63 74 65 64 5f 63 6f 6d 70 6f 6e 65 6e 74 73 28 47 29 5c 6e 6c 61 72 67 65 73 74 5f 63 6f 6d 70 cted_components(G)\nlargest_comp
6ce0 6f 6e 65 6e 74 20 3d 20 6d 61 78 28 63 6f 6d 70 6f 6e 65 6e 74 73 2c 20 6b 65 79 3d 6c 65 6e 29 onent.=.max(components,.key=len)
6d00 5c 6e 48 20 3d 20 47 2e 73 75 62 67 72 61 70 68 28 6c 61 72 67 65 73 74 5f 63 6f 6d 70 6f 6e 65 \nH.=.G.subgraph(largest_compone
6d20 6e 74 29 5c 6e 5c 6e 23 20 63 6f 6d 70 75 74 65 20 63 65 6e 74 72 61 6c 69 74 79 5c 6e 63 65 6e nt)\n\n#.compute.centrality\ncen
6d40 74 72 61 6c 69 74 79 20 3d 20 6e 78 2e 62 65 74 77 65 65 6e 6e 65 73 73 5f 63 65 6e 74 72 61 6c trality.=.nx.betweenness_central
6d60 69 74 79 28 48 2c 20 6b 3d 31 30 2c 20 65 6e 64 70 6f 69 6e 74 73 3d 54 72 75 65 29 5c 6e 5c 6e ity(H,.k=10,.endpoints=True)\n\n
6d80 23 20 63 6f 6d 70 75 74 65 20 63 6f 6d 6d 75 6e 69 74 79 20 73 74 72 75 63 74 75 72 65 5c 6e 6c #.compute.community.structure\nl
6da0 70 63 20 3d 20 6e 78 2e 63 6f 6d 6d 75 6e 69 74 79 2e 6c 61 62 65 6c 5f 70 72 6f 70 61 67 61 74 pc.=.nx.community.label_propagat
6dc0 69 6f 6e 5f 63 6f 6d 6d 75 6e 69 74 69 65 73 28 48 29 5c 6e 63 6f 6d 6d 75 6e 69 74 79 5f 69 6e ion_communities(H)\ncommunity_in
6de0 64 65 78 20 3d 20 7b 6e 3a 20 69 20 66 6f 72 20 69 2c 20 63 6f 6d 20 69 6e 20 65 6e 75 6d 65 72 dex.=.{n:.i.for.i,.com.in.enumer
6e00 61 74 65 28 6c 70 63 29 20 66 6f 72 20 6e 20 69 6e 20 63 6f 6d 7d 5c 6e 5c 6e 23 23 23 23 20 64 ate(lpc).for.n.in.com}\n\n####.d
6e20 72 61 77 20 67 72 61 70 68 20 23 23 23 23 5c 6e 66 69 67 2c 20 61 78 20 3d 20 70 6c 74 2e 73 75 raw.graph.####\nfig,.ax.=.plt.su
6e40 62 70 6c 6f 74 73 28 66 69 67 73 69 7a 65 3d 28 32 30 2c 20 31 35 29 29 5c 6e 70 6f 73 20 3d 20 bplots(figsize=(20,.15))\npos.=.
6e60 6e 78 2e 73 70 72 69 6e 67 5f 6c 61 79 6f 75 74 28 48 2c 20 6b 3d 30 2e 31 35 2c 20 73 65 65 64 nx.spring_layout(H,.k=0.15,.seed
6e80 3d 34 35 37 32 33 32 31 29 5c 6e 6e 6f 64 65 5f 63 6f 6c 6f 72 20 3d 20 5b 63 6f 6d 6d 75 6e 69 =4572321)\nnode_color.=.[communi
6ea0 74 79 5f 69 6e 64 65 78 5b 6e 5d 20 66 6f 72 20 6e 20 69 6e 20 48 5d 5c 6e 6e 6f 64 65 5f 73 69 ty_index[n].for.n.in.H]\nnode_si
6ec0 7a 65 20 3d 20 5b 76 20 2a 20 32 30 30 30 30 20 66 6f 72 20 76 20 69 6e 20 63 65 6e 74 72 61 6c ze.=.[v.*.20000.for.v.in.central
6ee0 69 74 79 2e 76 61 6c 75 65 73 28 29 5d 5c 6e 6e 78 2e 64 72 61 77 5f 6e 65 74 77 6f 72 6b 78 28 ity.values()]\nnx.draw_networkx(
6f00 5c 6e 20 20 20 20 48 2c 5c 6e 20 20 20 20 70 6f 73 3d 70 6f 73 2c 5c 6e 20 20 20 20 77 69 74 68 \n....H,\n....pos=pos,\n....with
6f20 5f 6c 61 62 65 6c 73 3d 46 61 6c 73 65 2c 5c 6e 20 20 20 20 6e 6f 64 65 5f 63 6f 6c 6f 72 3d 6e _labels=False,\n....node_color=n
6f40 6f 64 65 5f 63 6f 6c 6f 72 2c 5c 6e 20 20 20 20 6e 6f 64 65 5f 73 69 7a 65 3d 6e 6f 64 65 5f 73 ode_color,\n....node_size=node_s
6f60 69 7a 65 2c 5c 6e 20 20 20 20 65 64 67 65 5f 63 6f 6c 6f 72 3d 5c 22 67 61 69 6e 73 62 6f 72 6f ize,\n....edge_color=\"gainsboro
6f80 5c 22 2c 5c 6e 20 20 20 20 61 6c 70 68 61 3d 30 2e 34 2c 5c 6e 29 5c 6e 5c 6e 23 20 54 69 74 6c \",\n....alpha=0.4,\n)\n\n#.Titl
6fa0 65 2f 6c 65 67 65 6e 64 5c 6e 66 6f 6e 74 20 3d 20 7b 5c 22 63 6f 6c 6f 72 5c 22 3a 20 5c 22 6b e/legend\nfont.=.{\"color\":.\"k
6fc0 5c 22 2c 20 5c 22 66 6f 6e 74 77 65 69 67 68 74 5c 22 3a 20 5c 22 62 6f 6c 64 5c 22 2c 20 5c 22 \",.\"fontweight\":.\"bold\",.\"
6fe0 66 6f 6e 74 73 69 7a 65 5c 22 3a 20 32 30 7d 5c 6e 61 78 2e 73 65 74 5f 74 69 74 6c 65 28 5c 22 fontsize\":.20}\nax.set_title(\"
7000 47 65 6e 65 20 66 75 6e 63 74 69 6f 6e 61 6c 20 61 73 73 6f 63 69 61 74 69 6f 6e 20 6e 65 74 77 Gene.functional.association.netw
7020 6f 72 6b 20 28 43 2e 20 65 6c 65 67 61 6e 73 29 5c 22 2c 20 66 6f 6e 74 29 5c 6e 23 20 43 68 61 ork.(C..elegans)\",.font)\n#.Cha
7040 6e 67 65 20 66 6f 6e 74 20 63 6f 6c 6f 72 20 66 6f 72 20 6c 65 67 65 6e 64 5c 6e 66 6f 6e 74 5b nge.font.color.for.legend\nfont[
7060 5c 22 63 6f 6c 6f 72 5c 22 5d 20 3d 20 5c 22 72 5c 22 5c 6e 5c 6e 61 78 2e 74 65 78 74 28 5c 6e \"color\"].=.\"r\"\n\nax.text(\n
7080 20 20 20 20 30 2e 38 30 2c 5c 6e 20 20 20 20 30 2e 31 30 2c 5c 6e 20 20 20 20 5c 22 6e 6f 64 65 ....0.80,\n....0.10,\n....\"node
70a0 20 63 6f 6c 6f 72 20 3d 20 63 6f 6d 6d 75 6e 69 74 79 20 73 74 72 75 63 74 75 72 65 5c 22 2c 5c .color.=.community.structure\",\
70c0 6e 20 20 20 20 68 6f 72 69 7a 6f 6e 74 61 6c 61 6c 69 67 6e 6d 65 6e 74 3d 5c 22 63 65 6e 74 65 n....horizontalalignment=\"cente
70e0 72 5c 22 2c 5c 6e 20 20 20 20 74 72 61 6e 73 66 6f 72 6d 3d 61 78 2e 74 72 61 6e 73 41 78 65 73 r\",\n....transform=ax.transAxes
7100 2c 5c 6e 20 20 20 20 66 6f 6e 74 64 69 63 74 3d 66 6f 6e 74 2c 5c 6e 29 5c 6e 61 78 2e 74 65 78 ,\n....fontdict=font,\n)\nax.tex
7120 74 28 5c 6e 20 20 20 20 30 2e 38 30 2c 5c 6e 20 20 20 20 30 2e 30 36 2c 5c 6e 20 20 20 20 5c 22 t(\n....0.80,\n....0.06,\n....\"
7140 6e 6f 64 65 20 73 69 7a 65 20 3d 20 62 65 74 77 65 65 6e 6e 65 73 73 20 63 65 6e 74 72 61 6c 69 node.size.=.betweenness.centrali
7160 74 79 5c 22 2c 5c 6e 20 20 20 20 68 6f 72 69 7a 6f 6e 74 61 6c 61 6c 69 67 6e 6d 65 6e 74 3d 5c ty\",\n....horizontalalignment=\
7180 22 63 65 6e 74 65 72 5c 22 2c 5c 6e 20 20 20 20 74 72 61 6e 73 66 6f 72 6d 3d 61 78 2e 74 72 61 "center\",\n....transform=ax.tra
71a0 6e 73 41 78 65 73 2c 5c 6e 20 20 20 20 66 6f 6e 74 64 69 63 74 3d 66 6f 6e 74 2c 5c 6e 29 5c 6e nsAxes,\n....fontdict=font,\n)\n
71c0 5c 6e 23 20 52 65 73 69 7a 65 20 66 69 67 75 72 65 20 66 6f 72 20 6c 61 62 65 6c 20 72 65 61 64 \n#.Resize.figure.for.label.read
71e0 61 62 69 6c 69 74 79 5c 6e 61 78 2e 6d 61 72 67 69 6e 73 28 30 2e 31 2c 20 30 2e 30 35 29 5c 6e ability\nax.margins(0.1,.0.05)\n
7200 66 69 67 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 5c 6e 70 6c 74 2e 61 78 69 73 28 5c 22 6f fig.tight_layout()\nplt.axis(\"o
7220 66 66 5c 22 29 5c 6e 70 6c 74 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d ff\")\nplt.show()".......].....}
7240 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
7260 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":.
7280 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
72a0 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".
72c0 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":.{...
72e0 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":.{........
7300 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
7320 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
7340 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
7360 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"
7380 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
73a0 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
73c0 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
73e0 73 69 6f 6e 22 3a 20 22 33 2e 39 2e 31 36 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 6e 62 sion":."3.9.16".....}...},..."nb
7400 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 3a 20 format":.4,..."nbformat_minor":.
7420 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 0f 0f 5a 56 36 81 6d b5 9d 08 00 00 9d 08 00 00 20 00 00 0.}PK..........ZV6.m............
7440 00 61 6c 67 6f 72 69 74 68 6d 73 2f 70 6c 6f 74 5f 64 61 76 69 73 5f 63 6c 75 62 2e 69 70 79 6e .algorithms/plot_davis_club.ipyn
7460 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
7480 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
74a0 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"
74c0 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..
74e0 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":.[],....
7500 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
7520 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".......].....},.....{
7540 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",.
7560 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
7580 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 44 61 76 69 73 20 43 6c 75 62 5c rce":.[........."\n#.Davis.Club\
75a0 6e 5c 6e 44 61 76 69 73 20 53 6f 75 74 68 65 72 6e 20 43 6c 75 62 20 57 6f 6d 65 6e 5c 6e 5c 6e n\nDavis.Southern.Club.Women\n\n
75c0 53 68 6f 77 73 20 68 6f 77 20 74 6f 20 6d 61 6b 65 20 75 6e 69 70 61 72 74 69 74 65 20 70 72 6f Shows.how.to.make.unipartite.pro
75e0 6a 65 63 74 69 6f 6e 73 20 6f 66 20 74 68 65 20 67 72 61 70 68 20 61 6e 64 20 63 6f 6d 70 75 74 jections.of.the.graph.and.comput
7600 65 20 74 68 65 5c 6e 70 72 6f 70 65 72 74 69 65 73 20 6f 66 20 74 68 6f 73 65 20 67 72 61 70 68 e.the\nproperties.of.those.graph
7620 73 2e 5c 6e 5c 6e 54 68 65 73 65 20 64 61 74 61 20 77 65 72 65 20 63 6f 6c 6c 65 63 74 65 64 20 s.\n\nThese.data.were.collected.
7640 62 79 20 44 61 76 69 73 20 65 74 20 61 6c 2e 20 69 6e 20 74 68 65 20 31 39 33 30 73 2e 5c 6e 54 by.Davis.et.al..in.the.1930s.\nT
7660 68 65 79 20 72 65 70 72 65 73 65 6e 74 20 6f 62 73 65 72 76 65 64 20 61 74 74 65 6e 64 61 6e 63 hey.represent.observed.attendanc
7680 65 20 61 74 20 31 34 20 73 6f 63 69 61 6c 20 65 76 65 6e 74 73 20 62 79 20 31 38 20 53 6f 75 74 e.at.14.social.events.by.18.Sout
76a0 68 65 72 6e 20 77 6f 6d 65 6e 2e 5c 6e 54 68 65 20 67 72 61 70 68 20 69 73 20 62 69 70 61 72 74 hern.women.\nThe.graph.is.bipart
76c0 69 74 65 20 28 63 6c 75 62 73 2c 20 77 6f 6d 65 6e 29 2e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 ite.(clubs,.women).\n".......]..
76e0 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":."
7700 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":.
7720 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":.{.......
7740 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.......},...
7760 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
7780 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e ":.[........."import.matplotlib.
77a0 70 79 70 6c 6f 74 20 61 73 20 70 6c 74 5c 6e 69 6d 70 6f 72 74 20 6e 65 74 77 6f 72 6b 78 20 61 pyplot.as.plt\nimport.networkx.a
77c0 73 20 6e 78 5c 6e 66 72 6f 6d 20 6e 65 74 77 6f 72 6b 78 2e 61 6c 67 6f 72 69 74 68 6d 73 20 69 s.nx\nfrom.networkx.algorithms.i
77e0 6d 70 6f 72 74 20 62 69 70 61 72 74 69 74 65 5c 6e 5c 6e 47 20 3d 20 6e 78 2e 64 61 76 69 73 5f mport.bipartite\n\nG.=.nx.davis_
7800 73 6f 75 74 68 65 72 6e 5f 77 6f 6d 65 6e 5f 67 72 61 70 68 28 29 5c 6e 77 6f 6d 65 6e 20 3d 20 southern_women_graph()\nwomen.=.
7820 47 2e 67 72 61 70 68 5b 5c 22 74 6f 70 5c 22 5d 5c 6e 63 6c 75 62 73 20 3d 20 47 2e 67 72 61 70 G.graph[\"top\"]\nclubs.=.G.grap
7840 68 5b 5c 22 62 6f 74 74 6f 6d 5c 22 5d 5c 6e 5c 6e 70 72 69 6e 74 28 5c 22 42 69 61 64 6a 61 63 h[\"bottom\"]\n\nprint(\"Biadjac
7860 65 6e 63 79 20 6d 61 74 72 69 78 5c 22 29 5c 6e 70 72 69 6e 74 28 62 69 70 61 72 74 69 74 65 2e ency.matrix\")\nprint(bipartite.
7880 62 69 61 64 6a 61 63 65 6e 63 79 5f 6d 61 74 72 69 78 28 47 2c 20 77 6f 6d 65 6e 2c 20 63 6c 75 biadjacency_matrix(G,.women,.clu
78a0 62 73 29 29 5c 6e 5c 6e 23 20 70 72 6f 6a 65 63 74 20 62 69 70 61 72 74 69 74 65 20 67 72 61 70 bs))\n\n#.project.bipartite.grap
78c0 68 20 6f 6e 74 6f 20 77 6f 6d 65 6e 20 6e 6f 64 65 73 5c 6e 57 20 3d 20 62 69 70 61 72 74 69 74 h.onto.women.nodes\nW.=.bipartit
78e0 65 2e 70 72 6f 6a 65 63 74 65 64 5f 67 72 61 70 68 28 47 2c 20 77 6f 6d 65 6e 29 5c 6e 70 72 69 e.projected_graph(G,.women)\npri
7900 6e 74 28 29 5c 6e 70 72 69 6e 74 28 5c 22 23 46 72 69 65 6e 64 73 2c 20 4d 65 6d 62 65 72 5c 22 nt()\nprint(\"#Friends,.Member\"
7920 29 5c 6e 66 6f 72 20 77 20 69 6e 20 77 6f 6d 65 6e 3a 5c 6e 20 20 20 20 70 72 69 6e 74 28 66 5c )\nfor.w.in.women:\n....print(f\
7940 22 7b 57 2e 64 65 67 72 65 65 28 77 29 7d 20 7b 77 7d 5c 22 29 5c 6e 5c 6e 23 20 70 72 6f 6a 65 "{W.degree(w)}.{w}\")\n\n#.proje
7960 63 74 20 62 69 70 61 72 74 69 74 65 20 67 72 61 70 68 20 6f 6e 74 6f 20 77 6f 6d 65 6e 20 6e 6f ct.bipartite.graph.onto.women.no
7980 64 65 73 20 6b 65 65 70 69 6e 67 20 6e 75 6d 62 65 72 20 6f 66 20 63 6f 2d 6f 63 63 75 72 65 6e des.keeping.number.of.co-occuren
79a0 63 65 5c 6e 23 20 74 68 65 20 64 65 67 72 65 65 20 63 6f 6d 70 75 74 65 64 20 69 73 20 77 65 69 ce\n#.the.degree.computed.is.wei
79c0 67 68 74 65 64 20 61 6e 64 20 63 6f 75 6e 74 73 20 74 68 65 20 74 6f 74 61 6c 20 6e 75 6d 62 65 ghted.and.counts.the.total.numbe
79e0 72 20 6f 66 20 73 68 61 72 65 64 20 63 6f 6e 74 61 63 74 73 5c 6e 57 20 3d 20 62 69 70 61 72 74 r.of.shared.contacts\nW.=.bipart
7a00 69 74 65 2e 77 65 69 67 68 74 65 64 5f 70 72 6f 6a 65 63 74 65 64 5f 67 72 61 70 68 28 47 2c 20 ite.weighted_projected_graph(G,.
7a20 77 6f 6d 65 6e 29 5c 6e 70 72 69 6e 74 28 29 5c 6e 70 72 69 6e 74 28 5c 22 23 46 72 69 65 6e 64 women)\nprint()\nprint(\"#Friend
7a40 20 6d 65 65 74 69 6e 67 73 2c 20 4d 65 6d 62 65 72 5c 22 29 5c 6e 66 6f 72 20 77 20 69 6e 20 77 .meetings,.Member\")\nfor.w.in.w
7a60 6f 6d 65 6e 3a 5c 6e 20 20 20 20 70 72 69 6e 74 28 66 5c 22 7b 57 2e 64 65 67 72 65 65 28 77 2c omen:\n....print(f\"{W.degree(w,
7a80 20 77 65 69 67 68 74 3d 27 77 65 69 67 68 74 27 29 7d 20 7b 77 7d 5c 22 29 5c 6e 5c 6e 70 6f 73 .weight='weight')}.{w}\")\n\npos
7aa0 20 3d 20 6e 78 2e 73 70 72 69 6e 67 5f 6c 61 79 6f 75 74 28 47 2c 20 73 65 65 64 3d 36 34 38 29 .=.nx.spring_layout(G,.seed=648)
7ac0 20 20 23 20 53 65 65 64 20 6c 61 79 6f 75 74 20 66 6f 72 20 72 65 70 72 6f 64 75 63 69 62 6c 65 ..#.Seed.layout.for.reproducible
7ae0 20 6e 6f 64 65 20 70 6f 73 69 74 69 6f 6e 73 5c 6e 6e 78 2e 64 72 61 77 28 47 2c 20 70 6f 73 29 .node.positions\nnx.draw(G,.pos)
7b00 5c 6e 70 6c 74 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 \nplt.show()".......].....}...],
7b20 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 6c 73 70 65 63 ..."metadata":.{....."kernelspec
7b40 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 22 50 79 74 68 ":.{......."display_name":."Pyth
7b60 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 79 74 68 6f 6e on.3",......."language":."python
7b80 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 20 20 20 20 7d ",......."name":."python3".....}
7ba0 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 20 20 20 20 22 ,....."language_info":.{......."
7bc0 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 20 22 6e 61 6d codemirror_mode":.{........."nam
7be0 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 73 69 6f 6e 22 e":."ipython",........."version"
7c00 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 74 65 6e 73 69 :.3.......},......."file_extensi
7c20 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 22 3a 20 22 74 on":.".py",......."mimetype":."t
7c40 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 3a 20 22 70 79 ext/x-python",......."name":."py
7c60 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 6f 72 74 65 72 thon",......."nbconvert_exporter
7c80 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 73 5f 6c 65 78 ":."python",......."pygments_lex
7ca0 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 73 69 6f 6e 22 er":."ipython3",......."version"
7cc0 3a 20 22 33 2e 39 2e 31 36 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 :."3.9.16".....}...},..."nbforma
7ce0 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 0a 7d 50 4b t":.4,..."nbformat_minor":.0.}PK
7d00 03 04 14 00 00 00 00 00 0f 0f 5a 56 a6 2d 1f 92 b0 12 00 00 b0 12 00 00 1e 00 00 00 61 6c 67 6f ..........ZV.-..............algo
7d20 72 69 74 68 6d 73 2f 70 6c 6f 74 5f 63 69 72 63 75 69 74 73 2e 69 70 79 6e 62 7b 0a 20 20 22 63 rithms/plot_circuits.ipynb{..."c
7d40 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"
7d60 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
7d80 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":.{....
7da0 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.......},
7dc0 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
7de0 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
7e00 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".......].....},.....{.......
7e20 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",......."
7e40 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":.[
7e60 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 43 69 72 63 75 69 74 73 5c 6e 5c 6e 43 6f 6e 76 65 72 ........."\n#.Circuits\n\nConver
7e80 74 20 61 20 42 6f 6f 6c 65 61 6e 20 63 69 72 63 75 69 74 20 74 6f 20 61 6e 20 65 71 75 69 76 61 t.a.Boolean.circuit.to.an.equiva
7ea0 6c 65 6e 74 20 42 6f 6f 6c 65 61 6e 20 66 6f 72 6d 75 6c 61 2e 5c 6e 5c 6e 41 20 42 6f 6f 6c 65 lent.Boolean.formula.\n\nA.Boole
7ec0 61 6e 20 63 69 72 63 75 69 74 20 63 61 6e 20 62 65 20 65 78 70 6f 6e 65 6e 74 69 61 6c 6c 79 20 an.circuit.can.be.exponentially.
7ee0 6d 6f 72 65 20 65 78 70 72 65 73 73 69 76 65 20 74 68 61 6e 20 61 6e 5c 6e 65 71 75 69 76 61 6c more.expressive.than.an\nequival
7f00 65 6e 74 20 66 6f 72 6d 75 6c 61 20 69 6e 20 74 68 65 20 77 6f 72 73 74 20 63 61 73 65 2c 20 73 ent.formula.in.the.worst.case,.s
7f20 69 6e 63 65 20 74 68 65 20 63 69 72 63 75 69 74 20 63 61 6e 20 72 65 75 73 65 5c 6e 73 75 62 63 ince.the.circuit.can.reuse\nsubc
7f40 69 72 63 75 69 74 73 20 6d 75 6c 74 69 70 6c 65 20 74 69 6d 65 73 2c 20 77 68 65 72 65 61 73 20 ircuits.multiple.times,.whereas.
7f60 61 20 66 6f 72 6d 75 6c 61 20 63 61 6e 6e 6f 74 20 72 65 75 73 65 20 73 75 62 66 6f 72 6d 75 6c a.formula.cannot.reuse.subformul
7f80 61 73 5c 6e 6d 6f 72 65 20 74 68 61 6e 20 6f 6e 63 65 2e 20 54 68 75 73 20 63 72 65 61 74 69 6e as\nmore.than.once..Thus.creatin
7fa0 67 20 61 20 42 6f 6f 6c 65 61 6e 20 66 6f 72 6d 75 6c 61 20 66 72 6f 6d 20 61 20 42 6f 6f 6c 65 g.a.Boolean.formula.from.a.Boole
7fc0 61 6e 20 63 69 72 63 75 69 74 5c 6e 69 6e 20 74 68 69 73 20 77 61 79 20 6d 61 79 20 62 65 20 69 an.circuit\nin.this.way.may.be.i
7fe0 6e 66 65 61 73 69 62 6c 65 20 69 66 20 74 68 65 20 63 69 72 63 75 69 74 20 69 73 20 6c 61 72 67 nfeasible.if.the.circuit.is.larg
8000 65 2e 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 e.\n".......].....},.....{......
8020 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
8040 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
8060 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
8080 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":.[]
80a0 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 69 6d 70 ,......."source":.[........."imp
80c0 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 70 6c 6f 74 20 61 73 20 70 6c 74 5c 6e 69 6d ort.matplotlib.pyplot.as.plt\nim
80e0 70 6f 72 74 20 6e 65 74 77 6f 72 6b 78 20 61 73 20 6e 78 5c 6e 5c 6e 5c 6e 64 65 66 20 63 69 72 port.networkx.as.nx\n\n\ndef.cir
8100 63 75 69 74 5f 74 6f 5f 66 6f 72 6d 75 6c 61 28 63 69 72 63 75 69 74 29 3a 5c 6e 20 20 20 20 23 cuit_to_formula(circuit):\n....#
8120 20 43 6f 6e 76 65 72 74 20 74 68 65 20 63 69 72 63 75 69 74 20 74 6f 20 61 6e 20 65 71 75 69 76 .Convert.the.circuit.to.an.equiv
8140 61 6c 65 6e 74 20 66 6f 72 6d 75 6c 61 2e 5c 6e 20 20 20 20 66 6f 72 6d 75 6c 61 20 3d 20 6e 78 alent.formula.\n....formula.=.nx
8160 2e 64 61 67 5f 74 6f 5f 62 72 61 6e 63 68 69 6e 67 28 63 69 72 63 75 69 74 29 5c 6e 20 20 20 20 .dag_to_branching(circuit)\n....
8180 23 20 54 72 61 6e 73 66 65 72 20 74 68 65 20 6f 70 65 72 61 74 6f 72 20 6f 72 20 76 61 72 69 61 #.Transfer.the.operator.or.varia
81a0 62 6c 65 20 6c 61 62 65 6c 73 20 66 6f 72 20 65 61 63 68 20 6e 6f 64 65 20 66 72 6f 6d 20 74 68 ble.labels.for.each.node.from.th
81c0 65 5c 6e 20 20 20 20 23 20 63 69 72 63 75 69 74 20 74 6f 20 74 68 65 20 66 6f 72 6d 75 6c 61 2e e\n....#.circuit.to.the.formula.
81e0 5c 6e 20 20 20 20 66 6f 72 20 76 20 69 6e 20 66 6f 72 6d 75 6c 61 3a 5c 6e 20 20 20 20 20 20 20 \n....for.v.in.formula:\n.......
8200 20 73 6f 75 72 63 65 20 3d 20 66 6f 72 6d 75 6c 61 2e 6e 6f 64 65 73 5b 76 5d 5b 5c 22 73 6f 75 .source.=.formula.nodes[v][\"sou
8220 72 63 65 5c 22 5d 5c 6e 20 20 20 20 20 20 20 20 66 6f 72 6d 75 6c 61 2e 6e 6f 64 65 73 5b 76 5d rce\"]\n........formula.nodes[v]
8240 5b 5c 22 6c 61 62 65 6c 5c 22 5d 20 3d 20 63 69 72 63 75 69 74 2e 6e 6f 64 65 73 5b 73 6f 75 72 [\"label\"].=.circuit.nodes[sour
8260 63 65 5d 5b 5c 22 6c 61 62 65 6c 5c 22 5d 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 66 6f 72 6d 75 ce][\"label\"]\n....return.formu
8280 6c 61 5c 6e 5c 6e 5c 6e 64 65 66 20 66 6f 72 6d 75 6c 61 5f 74 6f 5f 73 74 72 69 6e 67 28 66 6f la\n\n\ndef.formula_to_string(fo
82a0 72 6d 75 6c 61 29 3a 5c 6e 20 20 20 20 64 65 66 20 5f 74 6f 5f 73 74 72 69 6e 67 28 66 6f 72 6d rmula):\n....def._to_string(form
82c0 75 6c 61 2c 20 72 6f 6f 74 29 3a 5c 6e 20 20 20 20 20 20 20 20 23 20 49 66 20 74 68 65 72 65 20 ula,.root):\n........#.If.there.
82e0 61 72 65 20 6e 6f 20 63 68 69 6c 64 72 65 6e 2c 20 74 68 69 73 20 69 73 20 61 20 76 61 72 69 61 are.no.children,.this.is.a.varia
8300 62 6c 65 20 6e 6f 64 65 2e 5c 6e 20 20 20 20 20 20 20 20 6c 61 62 65 6c 20 3d 20 66 6f 72 6d 75 ble.node.\n........label.=.formu
8320 6c 61 2e 6e 6f 64 65 73 5b 72 6f 6f 74 5d 5b 5c 22 6c 61 62 65 6c 5c 22 5d 5c 6e 20 20 20 20 20 la.nodes[root][\"label\"]\n.....
8340 20 20 20 69 66 20 6e 6f 74 20 66 6f 72 6d 75 6c 61 5b 72 6f 6f 74 5d 3a 5c 6e 20 20 20 20 20 20 ...if.not.formula[root]:\n......
8360 20 20 20 20 20 20 72 65 74 75 72 6e 20 6c 61 62 65 6c 5c 6e 20 20 20 20 20 20 20 20 23 20 4f 74 ......return.label\n........#.Ot
8380 68 65 72 77 69 73 65 2c 20 74 68 69 73 20 69 73 20 61 6e 20 6f 70 65 72 61 74 6f 72 2e 5c 6e 20 herwise,.this.is.an.operator.\n.
83a0 20 20 20 20 20 20 20 63 68 69 6c 64 72 65 6e 20 3d 20 66 6f 72 6d 75 6c 61 5b 72 6f 6f 74 5d 5c .......children.=.formula[root]\
83c0 6e 20 20 20 20 20 20 20 20 23 20 49 66 20 6f 6e 65 20 63 68 69 6c 64 2c 20 74 68 65 20 6c 61 62 n........#.If.one.child,.the.lab
83e0 65 6c 20 6d 75 73 74 20 62 65 20 61 20 4e 4f 54 20 6f 70 65 72 61 74 6f 72 2e 5c 6e 20 20 20 20 el.must.be.a.NOT.operator.\n....
8400 20 20 20 20 69 66 20 6c 65 6e 28 63 68 69 6c 64 72 65 6e 29 20 3d 3d 20 31 3a 5c 6e 20 20 20 20 ....if.len(children).==.1:\n....
8420 20 20 20 20 20 20 20 20 63 68 69 6c 64 20 3d 20 6e 78 2e 75 74 69 6c 73 2e 61 72 62 69 74 72 61 ........child.=.nx.utils.arbitra
8440 72 79 5f 65 6c 65 6d 65 6e 74 28 63 68 69 6c 64 72 65 6e 29 5c 6e 20 20 20 20 20 20 20 20 20 20 ry_element(children)\n..........
8460 20 20 72 65 74 75 72 6e 20 66 5c 22 7b 6c 61 62 65 6c 7d 28 7b 5f 74 6f 5f 73 74 72 69 6e 67 28 ..return.f\"{label}({_to_string(
8480 66 6f 72 6d 75 6c 61 2c 20 63 68 69 6c 64 29 7d 29 5c 22 5c 6e 20 20 20 20 20 20 20 20 23 20 4e formula,.child)})\"\n........#.N
84a0 42 20 5c 22 6c 65 66 74 5c 22 20 61 6e 64 20 5c 22 72 69 67 68 74 5c 22 20 68 65 72 65 20 61 72 B.\"left\".and.\"right\".here.ar
84c0 65 20 61 20 6c 69 74 74 6c 65 20 6d 69 73 6c 65 61 64 69 6e 67 3a 20 74 68 65 72 65 20 69 73 5c e.a.little.misleading:.there.is\
84e0 6e 20 20 20 20 20 20 20 20 23 20 6e 6f 20 6f 72 64 65 72 20 6f 6e 20 74 68 65 20 63 68 69 6c 64 n........#.no.order.on.the.child
8500 72 65 6e 20 6f 66 20 61 20 6e 6f 64 65 2e 20 54 68 61 74 27 73 20 6f 6b 61 79 20 62 65 63 61 75 ren.of.a.node..That's.okay.becau
8520 73 65 20 74 68 65 5c 6e 20 20 20 20 20 20 20 20 23 20 42 6f 6f 6c 65 61 6e 20 41 4e 44 20 61 6e se.the\n........#.Boolean.AND.an
8540 64 20 4f 52 20 6f 70 65 72 61 74 6f 72 73 20 61 72 65 20 73 79 6d 6d 65 74 72 69 63 2e 20 49 74 d.OR.operators.are.symmetric..It
8560 20 6a 75 73 74 20 6d 65 61 6e 73 20 74 68 61 74 5c 6e 20 20 20 20 20 20 20 20 23 20 74 68 65 20 .just.means.that\n........#.the.
8580 6f 72 64 65 72 20 6f 66 20 74 68 65 20 6f 70 65 72 61 6e 64 73 20 63 61 6e 6e 6f 74 20 62 65 20 order.of.the.operands.cannot.be.
85a0 70 72 65 64 69 63 74 65 64 20 61 6e 64 20 68 65 6e 63 65 20 74 68 65 5c 6e 20 20 20 20 20 20 20 predicted.and.hence.the\n.......
85c0 20 23 20 66 75 6e 63 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 6e 65 63 65 73 73 61 72 69 6c 79 .#.function.does.not.necessarily
85e0 20 62 65 68 61 76 65 20 74 68 65 20 73 61 6d 65 20 77 61 79 20 6f 6e 20 65 76 65 72 79 5c 6e 20 .behave.the.same.way.on.every\n.
8600 20 20 20 20 20 20 20 23 20 69 6e 76 6f 63 61 74 69 6f 6e 2e 5c 6e 20 20 20 20 20 20 20 20 6c 65 .......#.invocation.\n........le
8620 66 74 2c 20 72 69 67 68 74 20 3d 20 66 6f 72 6d 75 6c 61 5b 72 6f 6f 74 5d 5c 6e 20 20 20 20 20 ft,.right.=.formula[root]\n.....
8640 20 20 20 6c 65 66 74 5f 73 75 62 66 6f 72 6d 75 6c 61 20 3d 20 5f 74 6f 5f 73 74 72 69 6e 67 28 ...left_subformula.=._to_string(
8660 66 6f 72 6d 75 6c 61 2c 20 6c 65 66 74 29 5c 6e 20 20 20 20 20 20 20 20 72 69 67 68 74 5f 73 75 formula,.left)\n........right_su
8680 62 66 6f 72 6d 75 6c 61 20 3d 20 5f 74 6f 5f 73 74 72 69 6e 67 28 66 6f 72 6d 75 6c 61 2c 20 72 bformula.=._to_string(formula,.r
86a0 69 67 68 74 29 5c 6e 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 5c 22 28 7b 6c 65 66 74 5f ight)\n........return.f\"({left_
86c0 73 75 62 66 6f 72 6d 75 6c 61 7d 20 7b 6c 61 62 65 6c 7d 20 7b 72 69 67 68 74 5f 73 75 62 66 6f subformula}.{label}.{right_subfo
86e0 72 6d 75 6c 61 7d 29 5c 22 5c 6e 5c 6e 20 20 20 20 72 6f 6f 74 20 3d 20 6e 65 78 74 28 76 20 66 rmula})\"\n\n....root.=.next(v.f
8700 6f 72 20 76 2c 20 64 20 69 6e 20 66 6f 72 6d 75 6c 61 2e 69 6e 5f 64 65 67 72 65 65 28 29 20 69 or.v,.d.in.formula.in_degree().i
8720 66 20 64 20 3d 3d 20 30 29 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 5f 74 6f 5f 73 74 72 69 6e 67 f.d.==.0)\n....return._to_string
8740 28 66 6f 72 6d 75 6c 61 2c 20 72 6f 6f 74 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a (formula,.root)".......].....},.
8760 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
8780 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":.{},......
87a0 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 23 20 43 72 65 61 74 65 20 ."source":.[........."##.Create.
87c0 61 6e 20 65 78 61 6d 70 6c 65 20 42 6f 6f 6c 65 61 6e 20 63 69 72 63 75 69 74 2e 5c 6e 5c 6e 54 an.example.Boolean.circuit.\n\nT
87e0 68 69 73 20 63 69 72 63 75 69 74 20 68 61 73 20 61 20 5c 75 32 32 32 37 20 61 74 20 74 68 65 20 his.circuit.has.a.\u2227.at.the.
8800 6f 75 74 70 75 74 20 61 6e 64 20 74 77 6f 20 5c 75 32 32 32 38 73 20 61 74 20 74 68 65 20 6e 65 output.and.two.\u2228s.at.the.ne
8820 78 74 20 6c 61 79 65 72 2e 5c 6e 54 68 65 20 74 68 69 72 64 20 6c 61 79 65 72 20 68 61 73 20 61 xt.layer.\nThe.third.layer.has.a
8840 20 76 61 72 69 61 62 6c 65 20 78 20 74 68 61 74 20 61 70 70 65 61 72 73 20 69 6e 20 74 68 65 20 .variable.x.that.appears.in.the.
8860 6c 65 66 74 20 5c 75 32 32 32 38 2c 20 61 5c 6e 76 61 72 69 61 62 6c 65 20 79 20 74 68 61 74 20 left.\u2228,.a\nvariable.y.that.
8880 61 70 70 65 61 72 73 20 69 6e 20 62 6f 74 68 20 74 68 65 20 6c 65 66 74 20 61 6e 64 20 72 69 67 appears.in.both.the.left.and.rig
88a0 68 74 20 5c 75 32 32 32 38 73 2c 20 61 6e 64 20 61 5c 6e 6e 65 67 61 74 69 6f 6e 20 66 6f 72 20 ht.\u2228s,.and.a\nnegation.for.
88c0 74 68 65 20 76 61 72 69 61 62 6c 65 20 7a 20 74 68 61 74 20 61 70 70 65 61 72 73 20 61 73 20 74 the.variable.z.that.appears.as.t
88e0 68 65 20 73 6f 6c 65 20 6e 6f 64 65 20 69 6e 20 74 68 65 5c 6e 66 6f 75 72 74 68 20 6c 61 79 65 he.sole.node.in.the\nfourth.laye
8900 72 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 r.\n\n".......].....},.....{....
8920 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
8940 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
8960 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":.
8980 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":.
89a0 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 63 [],......."source":.[........."c
89c0 69 72 63 75 69 74 20 3d 20 6e 78 2e 44 69 47 72 61 70 68 28 29 5c 6e 23 20 4c 61 79 65 72 20 30 ircuit.=.nx.DiGraph()\n#.Layer.0
89e0 5c 6e 63 69 72 63 75 69 74 2e 61 64 64 5f 6e 6f 64 65 28 30 2c 20 6c 61 62 65 6c 3d 5c 22 5c 75 \ncircuit.add_node(0,.label=\"\u
8a00 32 32 32 37 5c 22 2c 20 6c 61 79 65 72 3d 30 29 5c 6e 23 20 4c 61 79 65 72 20 31 5c 6e 63 69 72 2227\",.layer=0)\n#.Layer.1\ncir
8a20 63 75 69 74 2e 61 64 64 5f 6e 6f 64 65 28 31 2c 20 6c 61 62 65 6c 3d 5c 22 5c 75 32 32 32 38 5c cuit.add_node(1,.label=\"\u2228\
8a40 22 2c 20 6c 61 79 65 72 3d 31 29 5c 6e 63 69 72 63 75 69 74 2e 61 64 64 5f 6e 6f 64 65 28 32 2c ",.layer=1)\ncircuit.add_node(2,
8a60 20 6c 61 62 65 6c 3d 5c 22 5c 75 32 32 32 38 5c 22 2c 20 6c 61 79 65 72 3d 31 29 5c 6e 63 69 72 .label=\"\u2228\",.layer=1)\ncir
8a80 63 75 69 74 2e 61 64 64 5f 65 64 67 65 28 30 2c 20 31 29 5c 6e 63 69 72 63 75 69 74 2e 61 64 64 cuit.add_edge(0,.1)\ncircuit.add
8aa0 5f 65 64 67 65 28 30 2c 20 32 29 5c 6e 23 20 4c 61 79 65 72 20 32 5c 6e 63 69 72 63 75 69 74 2e _edge(0,.2)\n#.Layer.2\ncircuit.
8ac0 61 64 64 5f 6e 6f 64 65 28 33 2c 20 6c 61 62 65 6c 3d 5c 22 78 5c 22 2c 20 6c 61 79 65 72 3d 32 add_node(3,.label=\"x\",.layer=2
8ae0 29 5c 6e 63 69 72 63 75 69 74 2e 61 64 64 5f 6e 6f 64 65 28 34 2c 20 6c 61 62 65 6c 3d 5c 22 79 )\ncircuit.add_node(4,.label=\"y
8b00 5c 22 2c 20 6c 61 79 65 72 3d 32 29 5c 6e 63 69 72 63 75 69 74 2e 61 64 64 5f 6e 6f 64 65 28 35 \",.layer=2)\ncircuit.add_node(5
8b20 2c 20 6c 61 62 65 6c 3d 5c 22 5c 75 30 30 61 63 5c 22 2c 20 6c 61 79 65 72 3d 32 29 5c 6e 63 69 ,.label=\"\u00ac\",.layer=2)\nci
8b40 72 63 75 69 74 2e 61 64 64 5f 65 64 67 65 28 31 2c 20 33 29 5c 6e 63 69 72 63 75 69 74 2e 61 64 rcuit.add_edge(1,.3)\ncircuit.ad
8b60 64 5f 65 64 67 65 28 31 2c 20 34 29 5c 6e 63 69 72 63 75 69 74 2e 61 64 64 5f 65 64 67 65 28 32 d_edge(1,.4)\ncircuit.add_edge(2
8b80 2c 20 34 29 5c 6e 63 69 72 63 75 69 74 2e 61 64 64 5f 65 64 67 65 28 32 2c 20 35 29 5c 6e 23 20 ,.4)\ncircuit.add_edge(2,.5)\n#.
8ba0 4c 61 79 65 72 20 33 5c 6e 63 69 72 63 75 69 74 2e 61 64 64 5f 6e 6f 64 65 28 36 2c 20 6c 61 62 Layer.3\ncircuit.add_node(6,.lab
8bc0 65 6c 3d 5c 22 7a 5c 22 2c 20 6c 61 79 65 72 3d 33 29 5c 6e 63 69 72 63 75 69 74 2e 61 64 64 5f el=\"z\",.layer=3)\ncircuit.add_
8be0 65 64 67 65 28 35 2c 20 36 29 5c 6e 23 20 43 6f 6e 76 65 72 74 20 74 68 65 20 63 69 72 63 75 69 edge(5,.6)\n#.Convert.the.circui
8c00 74 20 74 6f 20 61 6e 20 65 71 75 69 76 61 6c 65 6e 74 20 66 6f 72 6d 75 6c 61 2e 5c 6e 66 6f 72 t.to.an.equivalent.formula.\nfor
8c20 6d 75 6c 61 20 3d 20 63 69 72 63 75 69 74 5f 74 6f 5f 66 6f 72 6d 75 6c 61 28 63 69 72 63 75 69 mula.=.circuit_to_formula(circui
8c40 74 29 5c 6e 70 72 69 6e 74 28 66 6f 72 6d 75 6c 61 5f 74 6f 5f 73 74 72 69 6e 67 28 66 6f 72 6d t)\nprint(formula_to_string(form
8c60 75 6c 61 29 29 5c 6e 5c 6e 5c 6e 6c 61 62 65 6c 73 20 3d 20 6e 78 2e 67 65 74 5f 6e 6f 64 65 5f ula))\n\n\nlabels.=.nx.get_node_
8c80 61 74 74 72 69 62 75 74 65 73 28 63 69 72 63 75 69 74 2c 20 5c 22 6c 61 62 65 6c 5c 22 29 5c 6e attributes(circuit,.\"label\")\n
8ca0 6f 70 74 69 6f 6e 73 20 3d 20 7b 5c 6e 20 20 20 20 5c 22 6e 6f 64 65 5f 73 69 7a 65 5c 22 3a 20 options.=.{\n....\"node_size\":.
8cc0 36 30 30 2c 5c 6e 20 20 20 20 5c 22 61 6c 70 68 61 5c 22 3a 20 30 2e 35 2c 5c 6e 20 20 20 20 5c 600,\n....\"alpha\":.0.5,\n....\
8ce0 22 6e 6f 64 65 5f 63 6f 6c 6f 72 5c 22 3a 20 5c 22 62 6c 75 65 5c 22 2c 5c 6e 20 20 20 20 5c 22 "node_color\":.\"blue\",\n....\"
8d00 6c 61 62 65 6c 73 5c 22 3a 20 6c 61 62 65 6c 73 2c 5c 6e 20 20 20 20 5c 22 66 6f 6e 74 5f 73 69 labels\":.labels,\n....\"font_si
8d20 7a 65 5c 22 3a 20 32 32 2c 5c 6e 7d 5c 6e 70 6c 74 2e 66 69 67 75 72 65 28 66 69 67 73 69 7a 65 ze\":.22,\n}\nplt.figure(figsize
8d40 3d 28 38 2c 20 38 29 29 5c 6e 70 6f 73 20 3d 20 6e 78 2e 6d 75 6c 74 69 70 61 72 74 69 74 65 5f =(8,.8))\npos.=.nx.multipartite_
8d60 6c 61 79 6f 75 74 28 63 69 72 63 75 69 74 2c 20 73 75 62 73 65 74 5f 6b 65 79 3d 5c 22 6c 61 79 layout(circuit,.subset_key=\"lay
8d80 65 72 5c 22 29 5c 6e 6e 78 2e 64 72 61 77 5f 6e 65 74 77 6f 72 6b 78 28 63 69 72 63 75 69 74 2c er\")\nnx.draw_networkx(circuit,
8da0 20 70 6f 73 2c 20 2a 2a 6f 70 74 69 6f 6e 73 29 5c 6e 70 6c 74 2e 74 69 74 6c 65 28 66 6f 72 6d .pos,.**options)\nplt.title(form
8dc0 75 6c 61 5f 74 6f 5f 73 74 72 69 6e 67 28 66 6f 72 6d 75 6c 61 29 29 5c 6e 70 6c 74 2e 61 78 69 ula_to_string(formula))\nplt.axi
8de0 73 28 5c 22 65 71 75 61 6c 5c 22 29 5c 6e 70 6c 74 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 s(\"equal\")\nplt.show()".......
8e00 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":.{....
8e20 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_
8e40 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
8e60 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
8e80 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
8ea0 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":.{.
8ec0 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",......
8ee0 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.......},......."
8f00 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
8f20 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",......
8f40 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
8f60 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",......."
8f80 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",....
8fa0 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 39 2e 31 36 22 0a 20 20 20 20 7d 0a 20 20 7d ..."version":."3.9.16".....}...}
8fc0 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 6d ,..."nbformat":.4,..."nbformat_m
8fe0 69 6e 6f 72 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 0f 0f 5a 56 e4 5f 7f 33 8c 0e 00 00 inor":.0.}PK..........ZV._.3....
9000 8c 0e 00 00 20 00 00 00 61 6c 67 6f 72 69 74 68 6d 73 2f 70 6c 6f 74 5f 62 6c 6f 63 6b 6d 6f 64 ........algorithms/plot_blockmod
9020 65 6c 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 el.ipynb{..."cells":.[.....{....
9040 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
9060 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
9080 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":.
90a0 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":.
90c0 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 25 [],......."source":.[........."%
90e0 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 7d matplotlib.inline".......].....}
9100 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
9120 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":.{},....
9140 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 42 6c 6f 63 ..."source":.[........."\n#.Bloc
9160 6b 6d 6f 64 65 6c 5c 6e 5c 6e 45 78 61 6d 70 6c 65 20 6f 66 20 63 72 65 61 74 69 6e 67 20 61 20 kmodel\n\nExample.of.creating.a.
9180 62 6c 6f 63 6b 20 6d 6f 64 65 6c 20 75 73 69 6e 67 20 74 68 65 20 71 75 6f 74 69 65 6e 74 5f 67 block.model.using.the.quotient_g
91a0 72 61 70 68 20 66 75 6e 63 74 69 6f 6e 20 69 6e 20 4e 58 2e 20 20 44 61 74 61 5c 6e 75 73 65 64 raph.function.in.NX...Data\nused
91c0 20 69 73 20 74 68 65 20 48 61 72 74 66 6f 72 64 2c 20 43 54 20 64 72 75 67 20 75 73 65 72 73 20 .is.the.Hartford,.CT.drug.users.
91e0 6e 65 74 77 6f 72 6b 3a 3a 5c 6e 5c 6e 20 20 20 20 40 61 72 74 69 63 6c 65 7b 77 65 65 6b 73 32 network::\n\n....@article{weeks2
9200 30 30 32 73 6f 63 69 61 6c 2c 5c 6e 20 20 20 20 20 20 74 69 74 6c 65 3d 7b 53 6f 63 69 61 6c 20 002social,\n......title={Social.
9220 6e 65 74 77 6f 72 6b 73 20 6f 66 20 64 72 75 67 20 75 73 65 72 73 20 69 6e 20 68 69 67 68 2d 72 networks.of.drug.users.in.high-r
9240 69 73 6b 20 73 69 74 65 73 3a 20 46 69 6e 64 69 6e 67 20 74 68 65 20 63 6f 6e 6e 65 63 74 69 6f isk.sites:.Finding.the.connectio
9260 6e 73 7d 2c 5c 6e 20 20 20 20 20 20 75 72 6c 20 3d 20 7b 68 74 74 70 73 3a 2f 2f 64 6f 69 2e 6f ns},\n......url.=.{https://doi.o
9280 72 67 2f 31 30 2e 31 30 32 33 2f 41 3a 31 30 31 35 34 35 37 34 30 30 38 39 37 7d 2c 5c 6e 20 20 rg/10.1023/A:1015457400897},\n..
92a0 20 20 20 20 64 6f 69 20 3d 20 7b 31 30 2e 31 30 32 33 2f 41 3a 31 30 31 35 34 35 37 34 30 30 38 ....doi.=.{10.1023/A:10154574008
92c0 39 37 7d 2c 5c 6e 20 20 20 20 20 20 61 75 74 68 6f 72 3d 7b 57 65 65 6b 73 2c 20 4d 61 72 67 61 97},\n......author={Weeks,.Marga
92e0 72 65 74 20 52 20 61 6e 64 20 43 6c 61 69 72 2c 20 53 63 6f 74 74 20 61 6e 64 20 42 6f 72 67 61 ret.R.and.Clair,.Scott.and.Borga
9300 74 74 69 2c 20 53 74 65 70 68 65 6e 20 50 20 61 6e 64 20 52 61 64 64 61 2c 20 4b 69 6d 20 61 6e tti,.Stephen.P.and.Radda,.Kim.an
9320 64 20 53 63 68 65 6e 73 75 6c 2c 20 4a 65 61 6e 20 4a 7d 2c 5c 6e 20 20 20 20 20 20 6a 6f 75 72 d.Schensul,.Jean.J},\n......jour
9340 6e 61 6c 3d 7b 7b 41 49 44 53 20 61 6e 64 20 42 65 68 61 76 69 6f 72 7d 7d 2c 5c 6e 20 20 20 20 nal={{AIDS.and.Behavior}},\n....
9360 20 20 76 6f 6c 75 6d 65 3d 7b 36 7d 2c 5c 6e 20 20 20 20 20 20 6e 75 6d 62 65 72 3d 7b 32 7d 2c ..volume={6},\n......number={2},
9380 5c 6e 20 20 20 20 20 20 70 61 67 65 73 3d 7b 31 39 33 2d 2d 32 30 36 7d 2c 5c 6e 20 20 20 20 20 \n......pages={193--206},\n.....
93a0 20 79 65 61 72 3d 7b 32 30 30 32 7d 2c 5c 6e 20 20 20 20 20 20 70 75 62 6c 69 73 68 65 72 3d 7b .year={2002},\n......publisher={
93c0 53 70 72 69 6e 67 65 72 7d 5c 6e 20 20 20 20 7d 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 Springer}\n....}\n".......].....
93e0 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
9400 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
9420 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":.{........."
9440 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.......},......
9460 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":.
9480 5b 0a 20 20 20 20 20 20 20 20 22 66 72 6f 6d 20 63 6f 6c 6c 65 63 74 69 6f 6e 73 20 69 6d 70 6f [........."from.collections.impo
94a0 72 74 20 64 65 66 61 75 6c 74 64 69 63 74 5c 6e 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 rt.defaultdict\n\nimport.matplot
94c0 6c 69 62 2e 70 79 70 6c 6f 74 20 61 73 20 70 6c 74 5c 6e 69 6d 70 6f 72 74 20 6e 65 74 77 6f 72 lib.pyplot.as.plt\nimport.networ
94e0 6b 78 20 61 73 20 6e 78 5c 6e 69 6d 70 6f 72 74 20 6e 75 6d 70 79 20 61 73 20 6e 70 5c 6e 66 72 kx.as.nx\nimport.numpy.as.np\nfr
9500 6f 6d 20 73 63 69 70 79 2e 63 6c 75 73 74 65 72 20 69 6d 70 6f 72 74 20 68 69 65 72 61 72 63 68 om.scipy.cluster.import.hierarch
9520 79 5c 6e 66 72 6f 6d 20 73 63 69 70 79 2e 73 70 61 74 69 61 6c 20 69 6d 70 6f 72 74 20 64 69 73 y\nfrom.scipy.spatial.import.dis
9540 74 61 6e 63 65 5c 6e 5c 6e 5c 6e 64 65 66 20 63 72 65 61 74 65 5f 68 63 28 47 29 3a 5c 6e 20 20 tance\n\n\ndef.create_hc(G):\n..
9560 20 20 5c 22 5c 22 5c 22 43 72 65 61 74 65 73 20 68 69 65 72 61 72 63 68 69 63 61 6c 20 63 6c 75 ..\"\"\"Creates.hierarchical.clu
9580 73 74 65 72 20 6f 66 20 67 72 61 70 68 20 47 20 66 72 6f 6d 20 64 69 73 74 61 6e 63 65 20 6d 61 ster.of.graph.G.from.distance.ma
95a0 74 72 69 78 5c 22 5c 22 5c 22 5c 6e 20 20 20 20 70 61 74 68 5f 6c 65 6e 67 74 68 20 3d 20 6e 78 trix\"\"\"\n....path_length.=.nx
95c0 2e 61 6c 6c 5f 70 61 69 72 73 5f 73 68 6f 72 74 65 73 74 5f 70 61 74 68 5f 6c 65 6e 67 74 68 28 .all_pairs_shortest_path_length(
95e0 47 29 5c 6e 20 20 20 20 64 69 73 74 61 6e 63 65 73 20 3d 20 6e 70 2e 7a 65 72 6f 73 28 28 6c 65 G)\n....distances.=.np.zeros((le
9600 6e 28 47 29 2c 20 6c 65 6e 28 47 29 29 29 5c 6e 20 20 20 20 66 6f 72 20 75 2c 20 70 20 69 6e 20 n(G),.len(G)))\n....for.u,.p.in.
9620 70 61 74 68 5f 6c 65 6e 67 74 68 3a 5c 6e 20 20 20 20 20 20 20 20 66 6f 72 20 76 2c 20 64 20 69 path_length:\n........for.v,.d.i
9640 6e 20 70 2e 69 74 65 6d 73 28 29 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 64 69 73 74 61 6e n.p.items():\n............distan
9660 63 65 73 5b 75 5d 5b 76 5d 20 3d 20 64 5c 6e 20 20 20 20 23 20 43 72 65 61 74 65 20 68 69 65 72 ces[u][v].=.d\n....#.Create.hier
9680 61 72 63 68 69 63 61 6c 20 63 6c 75 73 74 65 72 5c 6e 20 20 20 20 59 20 3d 20 64 69 73 74 61 6e archical.cluster\n....Y.=.distan
96a0 63 65 2e 73 71 75 61 72 65 66 6f 72 6d 28 64 69 73 74 61 6e 63 65 73 29 5c 6e 20 20 20 20 5a 20 ce.squareform(distances)\n....Z.
96c0 3d 20 68 69 65 72 61 72 63 68 79 2e 63 6f 6d 70 6c 65 74 65 28 59 29 20 20 23 20 43 72 65 61 74 =.hierarchy.complete(Y)..#.Creat
96e0 65 73 20 48 43 20 75 73 69 6e 67 20 66 61 72 74 68 65 73 74 20 70 6f 69 6e 74 20 6c 69 6e 6b 61 es.HC.using.farthest.point.linka
9700 67 65 5c 6e 20 20 20 20 23 20 54 68 69 73 20 70 61 72 74 69 74 69 6f 6e 20 73 65 6c 65 63 74 69 ge\n....#.This.partition.selecti
9720 6f 6e 20 69 73 20 61 72 62 69 74 72 61 72 79 2c 20 66 6f 72 20 69 6c 6c 75 73 74 72 69 76 65 20 on.is.arbitrary,.for.illustrive.
9740 70 75 72 70 6f 73 65 73 5c 6e 20 20 20 20 6d 65 6d 62 65 72 73 68 69 70 20 3d 20 6c 69 73 74 28 purposes\n....membership.=.list(
9760 68 69 65 72 61 72 63 68 79 2e 66 63 6c 75 73 74 65 72 28 5a 2c 20 74 3d 31 2e 31 35 29 29 5c 6e hierarchy.fcluster(Z,.t=1.15))\n
9780 20 20 20 20 23 20 43 72 65 61 74 65 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 6f 66 20 6c 69 73 74 73 ....#.Create.collection.of.lists
97a0 20 66 6f 72 20 62 6c 6f 63 6b 6d 6f 64 65 6c 5c 6e 20 20 20 20 70 61 72 74 69 74 69 6f 6e 20 3d .for.blockmodel\n....partition.=
97c0 20 64 65 66 61 75 6c 74 64 69 63 74 28 6c 69 73 74 29 5c 6e 20 20 20 20 66 6f 72 20 6e 2c 20 70 .defaultdict(list)\n....for.n,.p
97e0 20 69 6e 20 7a 69 70 28 6c 69 73 74 28 72 61 6e 67 65 28 6c 65 6e 28 47 29 29 29 2c 20 6d 65 6d .in.zip(list(range(len(G))),.mem
9800 62 65 72 73 68 69 70 29 3a 5c 6e 20 20 20 20 20 20 20 20 70 61 72 74 69 74 69 6f 6e 5b 70 5d 2e bership):\n........partition[p].
9820 61 70 70 65 6e 64 28 6e 29 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 6c 69 73 74 28 70 61 72 74 69 append(n)\n....return.list(parti
9840 74 69 6f 6e 2e 76 61 6c 75 65 73 28 29 29 5c 6e 5c 6e 5c 6e 47 20 3d 20 6e 78 2e 72 65 61 64 5f tion.values())\n\n\nG.=.nx.read_
9860 65 64 67 65 6c 69 73 74 28 5c 22 68 61 72 74 66 6f 72 64 5f 64 72 75 67 2e 65 64 67 65 6c 69 73 edgelist(\"hartford_drug.edgelis
9880 74 5c 22 29 5c 6e 5c 6e 23 20 45 78 74 72 61 63 74 20 6c 61 72 67 65 73 74 20 63 6f 6e 6e 65 63 t\")\n\n#.Extract.largest.connec
98a0 74 65 64 20 63 6f 6d 70 6f 6e 65 6e 74 20 69 6e 74 6f 20 67 72 61 70 68 20 48 5c 6e 48 20 3d 20 ted.component.into.graph.H\nH.=.
98c0 47 2e 73 75 62 67 72 61 70 68 28 6e 65 78 74 28 6e 78 2e 63 6f 6e 6e 65 63 74 65 64 5f 63 6f 6d G.subgraph(next(nx.connected_com
98e0 70 6f 6e 65 6e 74 73 28 47 29 29 29 5c 6e 23 20 4d 61 6b 65 73 20 6c 69 66 65 20 65 61 73 69 65 ponents(G)))\n#.Makes.life.easie
9900 72 20 74 6f 20 68 61 76 65 20 63 6f 6e 73 65 63 75 74 69 76 65 6c 79 20 6c 61 62 65 6c 65 64 20 r.to.have.consecutively.labeled.
9920 69 6e 74 65 67 65 72 20 6e 6f 64 65 73 5c 6e 48 20 3d 20 6e 78 2e 63 6f 6e 76 65 72 74 5f 6e 6f integer.nodes\nH.=.nx.convert_no
9940 64 65 5f 6c 61 62 65 6c 73 5f 74 6f 5f 69 6e 74 65 67 65 72 73 28 48 29 5c 6e 23 20 43 72 65 61 de_labels_to_integers(H)\n#.Crea
9960 74 65 20 70 61 72 74 69 74 69 6f 6e 73 20 77 69 74 68 20 68 69 65 72 61 72 63 68 69 63 61 6c 20 te.partitions.with.hierarchical.
9980 63 6c 75 73 74 65 72 69 6e 67 5c 6e 70 61 72 74 69 74 69 6f 6e 73 20 3d 20 63 72 65 61 74 65 5f clustering\npartitions.=.create_
99a0 68 63 28 48 29 5c 6e 23 20 42 75 69 6c 64 20 62 6c 6f 63 6b 6d 6f 64 65 6c 20 67 72 61 70 68 5c hc(H)\n#.Build.blockmodel.graph\
99c0 6e 42 4d 20 3d 20 6e 78 2e 71 75 6f 74 69 65 6e 74 5f 67 72 61 70 68 28 48 2c 20 70 61 72 74 69 nBM.=.nx.quotient_graph(H,.parti
99e0 74 69 6f 6e 73 2c 20 72 65 6c 61 62 65 6c 3d 54 72 75 65 29 5c 6e 5c 6e 23 20 44 72 61 77 20 6f tions,.relabel=True)\n\n#.Draw.o
9a00 72 69 67 69 6e 61 6c 20 67 72 61 70 68 5c 6e 70 6f 73 20 3d 20 6e 78 2e 73 70 72 69 6e 67 5f 6c riginal.graph\npos.=.nx.spring_l
9a20 61 79 6f 75 74 28 48 2c 20 69 74 65 72 61 74 69 6f 6e 73 3d 31 30 30 2c 20 73 65 65 64 3d 38 33 ayout(H,.iterations=100,.seed=83
9a40 29 20 20 23 20 53 65 65 64 20 66 6f 72 20 72 65 70 72 6f 64 75 63 69 62 69 6c 69 74 79 5c 6e 70 )..#.Seed.for.reproducibility\np
9a60 6c 74 2e 73 75 62 70 6c 6f 74 28 32 31 31 29 5c 6e 6e 78 2e 64 72 61 77 28 48 2c 20 70 6f 73 2c lt.subplot(211)\nnx.draw(H,.pos,
9a80 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 7a 65 3d 31 30 .with_labels=False,.node_size=10
9aa0 29 5c 6e 5c 6e 23 20 44 72 61 77 20 62 6c 6f 63 6b 20 6d 6f 64 65 6c 20 77 69 74 68 20 77 65 69 )\n\n#.Draw.block.model.with.wei
9ac0 67 68 74 65 64 20 65 64 67 65 73 20 61 6e 64 20 6e 6f 64 65 73 20 73 69 7a 65 64 20 62 79 20 6e ghted.edges.and.nodes.sized.by.n
9ae0 75 6d 62 65 72 20 6f 66 20 69 6e 74 65 72 6e 61 6c 20 6e 6f 64 65 73 5c 6e 6e 6f 64 65 5f 73 69 umber.of.internal.nodes\nnode_si
9b00 7a 65 20 3d 20 5b 42 4d 2e 6e 6f 64 65 73 5b 78 5d 5b 5c 22 6e 6e 6f 64 65 73 5c 22 5d 20 2a 20 ze.=.[BM.nodes[x][\"nnodes\"].*.
9b20 31 30 20 66 6f 72 20 78 20 69 6e 20 42 4d 2e 6e 6f 64 65 73 28 29 5d 5c 6e 65 64 67 65 5f 77 69 10.for.x.in.BM.nodes()]\nedge_wi
9b40 64 74 68 20 3d 20 5b 28 32 20 2a 20 64 5b 5c 22 77 65 69 67 68 74 5c 22 5d 29 20 66 6f 72 20 28 dth.=.[(2.*.d[\"weight\"]).for.(
9b60 75 2c 20 76 2c 20 64 29 20 69 6e 20 42 4d 2e 65 64 67 65 73 28 64 61 74 61 3d 54 72 75 65 29 5d u,.v,.d).in.BM.edges(data=True)]
9b80 5c 6e 23 20 53 65 74 20 70 6f 73 69 74 69 6f 6e 73 20 74 6f 20 6d 65 61 6e 20 6f 66 20 70 6f 73 \n#.Set.positions.to.mean.of.pos
9ba0 69 74 69 6f 6e 73 20 6f 66 20 69 6e 74 65 72 6e 61 6c 20 6e 6f 64 65 73 20 66 72 6f 6d 20 6f 72 itions.of.internal.nodes.from.or
9bc0 69 67 69 6e 61 6c 20 67 72 61 70 68 5c 6e 70 6f 73 42 4d 20 3d 20 7b 7d 5c 6e 66 6f 72 20 6e 20 iginal.graph\nposBM.=.{}\nfor.n.
9be0 69 6e 20 42 4d 3a 5c 6e 20 20 20 20 78 79 20 3d 20 6e 70 2e 61 72 72 61 79 28 5b 70 6f 73 5b 75 in.BM:\n....xy.=.np.array([pos[u
9c00 5d 20 66 6f 72 20 75 20 69 6e 20 42 4d 2e 6e 6f 64 65 73 5b 6e 5d 5b 5c 22 67 72 61 70 68 5c 22 ].for.u.in.BM.nodes[n][\"graph\"
9c20 5d 5d 29 5c 6e 20 20 20 20 70 6f 73 42 4d 5b 6e 5d 20 3d 20 78 79 2e 6d 65 61 6e 28 61 78 69 73 ]])\n....posBM[n].=.xy.mean(axis
9c40 3d 30 29 5c 6e 70 6c 74 2e 73 75 62 70 6c 6f 74 28 32 31 32 29 5c 6e 6e 78 2e 64 72 61 77 28 42 =0)\nplt.subplot(212)\nnx.draw(B
9c60 4d 2c 20 70 6f 73 42 4d 2c 20 6e 6f 64 65 5f 73 69 7a 65 3d 6e 6f 64 65 5f 73 69 7a 65 2c 20 77 M,.posBM,.node_size=node_size,.w
9c80 69 64 74 68 3d 65 64 67 65 5f 77 69 64 74 68 2c 20 77 69 74 68 5f 6c 61 62 65 6c 73 3d 46 61 6c idth=edge_width,.with_labels=Fal
9ca0 73 65 29 5c 6e 70 6c 74 2e 61 78 69 73 28 5c 22 6f 66 66 5c 22 29 5c 6e 70 6c 74 2e 73 68 6f 77 se)\nplt.axis(\"off\")\nplt.show
9cc0 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
9ce0 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":.{......
9d00 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",....
9d20 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",......."
9d40 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
9d60 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
9d80 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
9da0 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.......
9dc0 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"
9de0 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
9e00 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",....
9e20 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
9e40 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
9e60 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 39 2e 31 36 22 hon3",......."version":."3.9.16"
9e80 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,..."
9ea0 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 0c 0f nbformat_minor":.0.}PK..........
9ec0 5a 56 c7 81 9e 38 f4 14 00 00 f4 14 00 00 21 00 00 00 61 6c 67 6f 72 69 74 68 6d 73 2f 70 6c 6f ZV...8........!...algorithms/plo
9ee0 74 5f 62 65 61 6d 5f 73 65 61 72 63 68 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 22 3a 20 t_beam_search.ipynb{..."cells":.
9f00 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 64 65 [.....{......."cell_type":."code
9f20 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
9f40 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
9f60 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.......},.......
9f80 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":.[
9fa0 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 20 20 ........."%matplotlib.inline"...
9fc0 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
9fe0 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
a000 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":.[.......
a020 20 20 22 5c 6e 23 20 42 65 61 6d 20 53 65 61 72 63 68 5c 6e 5c 6e 42 65 61 6d 20 73 65 61 72 63 .."\n#.Beam.Search\n\nBeam.searc
a040 68 20 77 69 74 68 20 64 79 6e 61 6d 69 63 20 62 65 61 6d 20 77 69 64 74 68 2e 5c 6e 5c 6e 54 68 h.with.dynamic.beam.width.\n\nTh
a060 65 20 70 72 6f 67 72 65 73 73 69 76 65 20 77 69 64 65 6e 69 6e 67 20 62 65 61 6d 20 73 65 61 72 e.progressive.widening.beam.sear
a080 63 68 20 72 65 70 65 61 74 65 64 6c 79 20 65 78 65 63 75 74 65 73 20 61 20 62 65 61 6d 20 73 65 ch.repeatedly.executes.a.beam.se
a0a0 61 72 63 68 5c 6e 77 69 74 68 20 69 6e 63 72 65 61 73 69 6e 67 20 62 65 61 6d 20 77 69 64 74 68 arch\nwith.increasing.beam.width
a0c0 20 75 6e 74 69 6c 20 74 68 65 20 74 61 72 67 65 74 20 6e 6f 64 65 20 69 73 20 66 6f 75 6e 64 2e .until.the.target.node.is.found.
a0e0 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".......].....},.....{......."
a100 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
a120 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
a140 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
a160 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":.[],.
a180 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 72 ......"source":.[........."impor
a1a0 74 20 6d 61 74 68 5c 6e 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 70 6c t.math\n\nimport.matplotlib.pypl
a1c0 6f 74 20 61 73 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 ot.as.plt\nimport.networkx.as.nx
a1e0 5c 6e 5c 6e 5c 6e 64 65 66 20 70 72 6f 67 72 65 73 73 69 76 65 5f 77 69 64 65 6e 69 6e 67 5f 73 \n\n\ndef.progressive_widening_s
a200 65 61 72 63 68 28 47 2c 20 73 6f 75 72 63 65 2c 20 76 61 6c 75 65 2c 20 63 6f 6e 64 69 74 69 6f earch(G,.source,.value,.conditio
a220 6e 2c 20 69 6e 69 74 69 61 6c 5f 77 69 64 74 68 3d 31 29 3a 5c 6e 20 20 20 20 5c 22 5c 22 5c 22 n,.initial_width=1):\n....\"\"\"
a240 50 72 6f 67 72 65 73 73 69 76 65 20 77 69 64 65 6e 69 6e 67 20 62 65 61 6d 20 73 65 61 72 63 68 Progressive.widening.beam.search
a260 20 74 6f 20 66 69 6e 64 20 61 20 6e 6f 64 65 2e 5c 6e 5c 6e 20 20 20 20 54 68 65 20 70 72 6f 67 .to.find.a.node.\n\n....The.prog
a280 72 65 73 73 69 76 65 20 77 69 64 65 6e 69 6e 67 20 62 65 61 6d 20 73 65 61 72 63 68 20 69 6e 76 ressive.widening.beam.search.inv
a2a0 6f 6c 76 65 73 20 61 20 72 65 70 65 61 74 65 64 20 62 65 61 6d 5c 6e 20 20 20 20 73 65 61 72 63 olves.a.repeated.beam\n....searc
a2c0 68 2c 20 73 74 61 72 74 69 6e 67 20 77 69 74 68 20 61 20 73 6d 61 6c 6c 20 62 65 61 6d 20 77 69 h,.starting.with.a.small.beam.wi
a2e0 64 74 68 20 74 68 65 6e 20 65 78 74 65 6e 64 69 6e 67 20 74 6f 5c 6e 20 20 20 20 70 72 6f 67 72 dth.then.extending.to\n....progr
a300 65 73 73 69 76 65 6c 79 20 6c 61 72 67 65 72 20 62 65 61 6d 20 77 69 64 74 68 73 20 69 66 20 74 essively.larger.beam.widths.if.t
a320 68 65 20 74 61 72 67 65 74 20 6e 6f 64 65 20 69 73 20 6e 6f 74 5c 6e 20 20 20 20 66 6f 75 6e 64 he.target.node.is.not\n....found
a340 2e 20 54 68 69 73 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 73 69 6d 70 6c 79 20 72 65 74 ..This.implementation.simply.ret
a360 75 72 6e 73 20 74 68 65 20 66 69 72 73 74 20 6e 6f 64 65 20 66 6f 75 6e 64 20 74 68 61 74 5c 6e urns.the.first.node.found.that\n
a380 20 20 20 20 6d 61 74 63 68 65 73 20 74 68 65 20 74 65 72 6d 69 6e 61 74 69 6f 6e 20 63 6f 6e 64 ....matches.the.termination.cond
a3a0 69 74 69 6f 6e 2e 5c 6e 5c 6e 20 20 20 20 60 47 60 20 69 73 20 61 20 4e 65 74 77 6f 72 6b 58 20 ition.\n\n....`G`.is.a.NetworkX.
a3c0 67 72 61 70 68 2e 5c 6e 5c 6e 20 20 20 20 60 73 6f 75 72 63 65 60 20 69 73 20 61 20 6e 6f 64 65 graph.\n\n....`source`.is.a.node
a3e0 20 69 6e 20 74 68 65 20 67 72 61 70 68 2e 20 54 68 65 20 73 65 61 72 63 68 20 66 6f 72 20 74 68 .in.the.graph..The.search.for.th
a400 65 20 6e 6f 64 65 20 6f 66 20 69 6e 74 65 72 65 73 74 5c 6e 20 20 20 20 62 65 67 69 6e 73 20 68 e.node.of.interest\n....begins.h
a420 65 72 65 20 61 6e 64 20 65 78 74 65 6e 64 73 20 6f 6e 6c 79 20 74 6f 20 74 68 6f 73 65 20 6e 6f ere.and.extends.only.to.those.no
a440 64 65 73 20 69 6e 20 74 68 65 20 28 77 65 61 6b 6c 79 29 5c 6e 20 20 20 20 63 6f 6e 6e 65 63 74 des.in.the.(weakly)\n....connect
a460 65 64 20 63 6f 6d 70 6f 6e 65 6e 74 20 6f 66 20 74 68 69 73 20 6e 6f 64 65 2e 5c 6e 5c 6e 20 20 ed.component.of.this.node.\n\n..
a480 20 20 60 76 61 6c 75 65 60 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 ..`value`.is.a.function.that.ret
a4a0 75 72 6e 73 20 61 20 72 65 61 6c 20 6e 75 6d 62 65 72 20 69 6e 64 69 63 61 74 69 6e 67 20 68 6f urns.a.real.number.indicating.ho
a4c0 77 20 67 6f 6f 64 5c 6e 20 20 20 20 61 20 70 6f 74 65 6e 74 69 61 6c 20 6e 65 69 67 68 62 6f 72 w.good\n....a.potential.neighbor
a4e0 20 6e 6f 64 65 20 69 73 20 77 68 65 6e 20 64 65 63 69 64 69 6e 67 20 77 68 69 63 68 20 6e 65 69 .node.is.when.deciding.which.nei
a500 67 68 62 6f 72 20 6e 6f 64 65 73 20 74 6f 5c 6e 20 20 20 20 65 6e 71 75 65 75 65 20 69 6e 20 74 ghbor.nodes.to\n....enqueue.in.t
a520 68 65 20 62 72 65 61 64 74 68 2d 66 69 72 73 74 20 73 65 61 72 63 68 2e 20 4f 6e 6c 79 20 74 68 he.breadth-first.search..Only.th
a540 65 20 62 65 73 74 20 6e 6f 64 65 73 20 77 69 74 68 69 6e 20 74 68 65 5c 6e 20 20 20 20 63 75 72 e.best.nodes.within.the\n....cur
a560 72 65 6e 74 20 62 65 61 6d 20 77 69 64 74 68 20 77 69 6c 6c 20 62 65 20 65 6e 71 75 65 75 65 64 rent.beam.width.will.be.enqueued
a580 20 61 74 20 65 61 63 68 20 73 74 65 70 2e 5c 6e 5c 6e 20 20 20 20 60 63 6f 6e 64 69 74 69 6f 6e .at.each.step.\n\n....`condition
a5a0 60 20 69 73 20 74 68 65 20 74 65 72 6d 69 6e 61 74 69 6f 6e 20 63 6f 6e 64 69 74 69 6f 6e 20 66 `.is.the.termination.condition.f
a5c0 6f 72 20 74 68 65 20 73 65 61 72 63 68 2e 20 54 68 69 73 20 69 73 20 61 5c 6e 20 20 20 20 66 75 or.the.search..This.is.a\n....fu
a5e0 6e 63 74 69 6f 6e 20 74 68 61 74 20 74 61 6b 65 73 20 61 20 6e 6f 64 65 20 61 73 20 69 6e 70 75 nction.that.takes.a.node.as.inpu
a600 74 20 61 6e 64 20 72 65 74 75 72 6e 20 61 20 42 6f 6f 6c 65 61 6e 20 69 6e 64 69 63 61 74 69 6e t.and.return.a.Boolean.indicatin
a620 67 5c 6e 20 20 20 20 77 68 65 74 68 65 72 20 74 68 65 20 6e 6f 64 65 20 69 73 20 74 68 65 20 74 g\n....whether.the.node.is.the.t
a640 61 72 67 65 74 2e 20 49 66 20 6e 6f 20 6e 6f 64 65 20 6d 61 74 63 68 65 73 20 74 68 65 20 74 65 arget..If.no.node.matches.the.te
a660 72 6d 69 6e 61 74 69 6f 6e 5c 6e 20 20 20 20 63 6f 6e 64 69 74 69 6f 6e 2c 20 74 68 69 73 20 66 rmination\n....condition,.this.f
a680 75 6e 63 74 69 6f 6e 20 72 61 69 73 65 73 20 3a 65 78 63 3a 60 4e 6f 64 65 4e 6f 74 46 6f 75 6e unction.raises.:exc:`NodeNotFoun
a6a0 64 60 2e 5c 6e 5c 6e 20 20 20 20 60 69 6e 69 74 69 61 6c 5f 77 69 64 74 68 60 20 69 73 20 74 68 d`.\n\n....`initial_width`.is.th
a6c0 65 20 73 74 61 72 74 69 6e 67 20 62 65 61 6d 20 77 69 64 74 68 20 66 6f 72 20 74 68 65 20 62 65 e.starting.beam.width.for.the.be
a6e0 61 6d 20 73 65 61 72 63 68 20 28 74 68 65 5c 6e 20 20 20 20 64 65 66 61 75 6c 74 20 69 73 20 6f am.search.(the\n....default.is.o
a700 6e 65 29 2e 20 49 66 20 6e 6f 20 6e 6f 64 65 20 6d 61 74 63 68 69 6e 67 20 74 68 65 20 60 63 6f ne)..If.no.node.matching.the.`co
a720 6e 64 69 74 69 6f 6e 60 20 69 73 20 66 6f 75 6e 64 20 77 69 74 68 5c 6e 20 20 20 20 74 68 69 73 ndition`.is.found.with\n....this
a740 20 62 65 61 6d 20 77 69 64 74 68 2c 20 74 68 65 20 62 65 61 6d 20 73 65 61 72 63 68 20 69 73 20 .beam.width,.the.beam.search.is.
a760 72 65 73 74 61 72 74 65 64 20 66 72 6f 6d 20 74 68 65 20 60 73 6f 75 72 63 65 60 20 6e 6f 64 65 restarted.from.the.`source`.node
a780 5c 6e 20 20 20 20 77 69 74 68 20 61 20 62 65 61 6d 20 77 69 64 74 68 20 74 68 61 74 20 69 73 20 \n....with.a.beam.width.that.is.
a7a0 74 77 69 63 65 20 61 73 20 6c 61 72 67 65 20 28 73 6f 20 74 68 65 20 62 65 61 6d 20 77 69 64 74 twice.as.large.(so.the.beam.widt
a7c0 68 5c 6e 20 20 20 20 69 6e 63 72 65 61 73 65 73 20 65 78 70 6f 6e 65 6e 74 69 61 6c 6c 79 29 2e h\n....increases.exponentially).
a7e0 20 54 68 65 20 73 65 61 72 63 68 20 74 65 72 6d 69 6e 61 74 65 73 20 61 66 74 65 72 20 74 68 65 .The.search.terminates.after.the
a800 20 62 65 61 6d 20 77 69 64 74 68 5c 6e 20 20 20 20 65 78 63 65 65 64 73 20 74 68 65 20 6e 75 6d .beam.width\n....exceeds.the.num
a820 62 65 72 20 6f 66 20 6e 6f 64 65 73 20 69 6e 20 74 68 65 20 67 72 61 70 68 2e 5c 6e 5c 6e 20 20 ber.of.nodes.in.the.graph.\n\n..
a840 20 20 5c 22 5c 22 5c 22 5c 6e 20 20 20 20 23 20 43 68 65 63 6b 20 66 6f 72 20 74 68 65 20 73 70 ..\"\"\"\n....#.Check.for.the.sp
a860 65 63 69 61 6c 20 63 61 73 65 20 69 6e 20 77 68 69 63 68 20 74 68 65 20 73 6f 75 72 63 65 20 6e ecial.case.in.which.the.source.n
a880 6f 64 65 20 73 61 74 69 73 66 69 65 73 20 74 68 65 5c 6e 20 20 20 20 23 20 74 65 72 6d 69 6e 61 ode.satisfies.the\n....#.termina
a8a0 74 69 6f 6e 20 63 6f 6e 64 69 74 69 6f 6e 2e 5c 6e 20 20 20 20 69 66 20 63 6f 6e 64 69 74 69 6f tion.condition.\n....if.conditio
a8c0 6e 28 73 6f 75 72 63 65 29 3a 5c 6e 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 73 6f 75 72 63 n(source):\n........return.sourc
a8e0 65 5c 6e 20 20 20 20 23 20 54 68 65 20 6c 61 72 67 65 73 74 20 70 6f 73 73 69 62 6c 65 20 76 61 e\n....#.The.largest.possible.va
a900 6c 75 65 20 6f 66 20 60 69 60 20 69 6e 20 74 68 69 73 20 72 61 6e 67 65 20 79 69 65 6c 64 73 20 lue.of.`i`.in.this.range.yields.
a920 61 20 77 69 64 74 68 20 61 74 5c 6e 20 20 20 20 23 20 6c 65 61 73 74 20 74 68 65 20 6e 75 6d 62 a.width.at\n....#.least.the.numb
a940 65 72 20 6f 66 20 6e 6f 64 65 73 20 69 6e 20 74 68 65 20 67 72 61 70 68 2c 20 73 6f 20 74 68 65 er.of.nodes.in.the.graph,.so.the
a960 20 66 69 6e 61 6c 20 69 6e 76 6f 63 61 74 69 6f 6e 20 6f 66 5c 6e 20 20 20 20 23 20 60 62 66 73 .final.invocation.of\n....#.`bfs
a980 5f 62 65 61 6d 5f 65 64 67 65 73 60 20 69 73 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 61 20 _beam_edges`.is.equivalent.to.a.
a9a0 70 6c 61 69 6e 20 6f 6c 64 20 62 72 65 61 64 74 68 2d 66 69 72 73 74 5c 6e 20 20 20 20 23 20 73 plain.old.breadth-first\n....#.s
a9c0 65 61 72 63 68 2e 20 54 68 65 72 65 66 6f 72 65 2c 20 61 6c 6c 20 6e 6f 64 65 73 20 77 69 6c 6c earch..Therefore,.all.nodes.will
a9e0 20 65 76 65 6e 74 75 61 6c 6c 79 20 62 65 20 76 69 73 69 74 65 64 2e 5c 6e 20 20 20 20 6c 6f 67 .eventually.be.visited.\n....log
aa00 5f 6d 20 3d 20 6d 61 74 68 2e 63 65 69 6c 28 6d 61 74 68 2e 6c 6f 67 32 28 6c 65 6e 28 47 29 29 _m.=.math.ceil(math.log2(len(G))
aa20 29 5c 6e 20 20 20 20 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 65 28 6c 6f 67 5f 6d 29 3a 5c 6e 20 )\n....for.i.in.range(log_m):\n.
aa40 20 20 20 20 20 20 20 77 69 64 74 68 20 3d 20 69 6e 69 74 69 61 6c 5f 77 69 64 74 68 20 2a 20 70 .......width.=.initial_width.*.p
aa60 6f 77 28 32 2c 20 69 29 5c 6e 20 20 20 20 20 20 20 20 23 20 53 69 6e 63 65 20 77 65 20 61 72 65 ow(2,.i)\n........#.Since.we.are
aa80 20 61 6c 77 61 79 73 20 73 74 61 72 74 69 6e 67 20 66 72 6f 6d 20 74 68 65 20 73 61 6d 65 20 73 .always.starting.from.the.same.s
aaa0 6f 75 72 63 65 20 6e 6f 64 65 2c 20 74 68 69 73 5c 6e 20 20 20 20 20 20 20 20 23 20 73 65 61 72 ource.node,.this\n........#.sear
aac0 63 68 20 6d 61 79 20 76 69 73 69 74 20 74 68 65 20 73 61 6d 65 20 6e 6f 64 65 73 20 6d 61 6e 79 ch.may.visit.the.same.nodes.many
aae0 20 74 69 6d 65 73 20 28 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 74 68 65 5c 6e 20 20 20 20 20 20 .times.(depending.on.the\n......
ab00 20 20 23 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 60 76 61 6c 75 65 ..#.implementation.of.the.`value
ab20 60 20 66 75 6e 63 74 69 6f 6e 29 2e 5c 6e 20 20 20 20 20 20 20 20 66 6f 72 20 75 2c 20 76 20 69 `.function).\n........for.u,.v.i
ab40 6e 20 6e 78 2e 62 66 73 5f 62 65 61 6d 5f 65 64 67 65 73 28 47 2c 20 73 6f 75 72 63 65 2c 20 76 n.nx.bfs_beam_edges(G,.source,.v
ab60 61 6c 75 65 2c 20 77 69 64 74 68 29 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 63 6f alue,.width):\n............if.co
ab80 6e 64 69 74 69 6f 6e 28 76 29 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 ndition(v):\n................ret
aba0 75 72 6e 20 76 5c 6e 20 20 20 20 23 20 41 74 20 74 68 69 73 20 70 6f 69 6e 74 2c 20 73 69 6e 63 urn.v\n....#.At.this.point,.sinc
abc0 65 20 61 6c 6c 20 6e 6f 64 65 73 20 68 61 76 65 20 62 65 65 6e 20 76 69 73 69 74 65 64 2c 20 77 e.all.nodes.have.been.visited,.w
abe0 65 20 6b 6e 6f 77 20 74 68 61 74 5c 6e 20 20 20 20 23 20 6e 6f 6e 65 20 6f 66 20 74 68 65 20 6e e.know.that\n....#.none.of.the.n
ac00 6f 64 65 73 20 73 61 74 69 73 66 69 65 64 20 74 68 65 20 74 65 72 6d 69 6e 61 74 69 6f 6e 20 63 odes.satisfied.the.termination.c
ac20 6f 6e 64 69 74 69 6f 6e 2e 5c 6e 20 20 20 20 72 61 69 73 65 20 6e 78 2e 4e 6f 64 65 4e 6f 74 46 ondition.\n....raise.nx.NodeNotF
ac40 6f 75 6e 64 28 5c 22 6e 6f 20 6e 6f 64 65 20 73 61 74 69 73 66 69 65 64 20 74 68 65 20 74 65 72 ound(\"no.node.satisfied.the.ter
ac60 6d 69 6e 61 74 69 6f 6e 20 63 6f 6e 64 69 74 69 6f 6e 5c 22 29 22 0a 20 20 20 20 20 20 5d 0a 20 mination.condition\")".......]..
ac80 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":."
aca0 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":.{},
acc0 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 23 20 53 ......."source":.[........."##.S
ace0 65 61 72 63 68 20 66 6f 72 20 61 20 6e 6f 64 65 20 77 69 74 68 20 68 69 67 68 20 63 65 6e 74 72 earch.for.a.node.with.high.centr
ad00 61 6c 69 74 79 2e 5c 6e 5c 6e 57 65 20 67 65 6e 65 72 61 74 65 20 61 20 72 61 6e 64 6f 6d 20 67 ality.\n\nWe.generate.a.random.g
ad20 72 61 70 68 2c 20 63 6f 6d 70 75 74 65 20 74 68 65 20 63 65 6e 74 72 61 6c 69 74 79 20 6f 66 20 raph,.compute.the.centrality.of.
ad40 65 61 63 68 20 6e 6f 64 65 2c 20 74 68 65 6e 20 70 65 72 66 6f 72 6d 5c 6e 74 68 65 20 70 72 6f each.node,.then.perform\nthe.pro
ad60 67 72 65 73 73 69 76 65 20 77 69 64 65 6e 69 6e 67 20 73 65 61 72 63 68 20 69 6e 20 6f 72 64 65 gressive.widening.search.in.orde
ad80 72 20 74 6f 20 66 69 6e 64 20 61 20 6e 6f 64 65 20 6f 66 20 68 69 67 68 20 63 65 6e 74 72 61 6c r.to.find.a.node.of.high.central
ada0 69 74 79 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 ity.\n\n".......].....},.....{..
adc0 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",.......
ade0 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,......."
ae00 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"
ae20 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"
ae40 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":.[.........
ae60 22 23 20 53 65 74 20 61 20 73 65 65 64 20 66 6f 72 20 72 61 6e 64 6f 6d 20 6e 75 6d 62 65 72 20 "#.Set.a.seed.for.random.number.
ae80 67 65 6e 65 72 61 74 69 6f 6e 20 73 6f 20 74 68 65 20 65 78 61 6d 70 6c 65 20 69 73 20 72 65 70 generation.so.the.example.is.rep
aea0 72 6f 64 75 63 69 62 6c 65 5c 6e 73 65 65 64 20 3d 20 38 39 5c 6e 5c 6e 47 20 3d 20 6e 78 2e 67 roducible\nseed.=.89\n\nG.=.nx.g
aec0 6e 70 5f 72 61 6e 64 6f 6d 5f 67 72 61 70 68 28 31 30 30 2c 20 30 2e 35 2c 20 73 65 65 64 3d 73 np_random_graph(100,.0.5,.seed=s
aee0 65 65 64 29 5c 6e 63 65 6e 74 72 61 6c 69 74 79 20 3d 20 6e 78 2e 65 69 67 65 6e 76 65 63 74 6f eed)\ncentrality.=.nx.eigenvecto
af00 72 5f 63 65 6e 74 72 61 6c 69 74 79 28 47 29 5c 6e 61 76 67 5f 63 65 6e 74 72 61 6c 69 74 79 20 r_centrality(G)\navg_centrality.
af20 3d 20 73 75 6d 28 63 65 6e 74 72 61 6c 69 74 79 2e 76 61 6c 75 65 73 28 29 29 20 2f 20 6c 65 6e =.sum(centrality.values())./.len
af40 28 47 29 5c 6e 5c 6e 5c 6e 64 65 66 20 68 61 73 5f 68 69 67 68 5f 63 65 6e 74 72 61 6c 69 74 79 (G)\n\n\ndef.has_high_centrality
af60 28 76 29 3a 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 63 65 6e 74 72 61 6c 69 74 79 5b 76 5d 20 3e (v):\n....return.centrality[v].>
af80 3d 20 61 76 67 5f 63 65 6e 74 72 61 6c 69 74 79 5c 6e 5c 6e 5c 6e 73 6f 75 72 63 65 20 3d 20 30 =.avg_centrality\n\n\nsource.=.0
afa0 5c 6e 76 61 6c 75 65 20 3d 20 63 65 6e 74 72 61 6c 69 74 79 2e 67 65 74 5c 6e 63 6f 6e 64 69 74 \nvalue.=.centrality.get\ncondit
afc0 69 6f 6e 20 3d 20 68 61 73 5f 68 69 67 68 5f 63 65 6e 74 72 61 6c 69 74 79 5c 6e 5c 6e 66 6f 75 ion.=.has_high_centrality\n\nfou
afe0 6e 64 5f 6e 6f 64 65 20 3d 20 70 72 6f 67 72 65 73 73 69 76 65 5f 77 69 64 65 6e 69 6e 67 5f 73 nd_node.=.progressive_widening_s
b000 65 61 72 63 68 28 47 2c 20 73 6f 75 72 63 65 2c 20 76 61 6c 75 65 2c 20 63 6f 6e 64 69 74 69 6f earch(G,.source,.value,.conditio
b020 6e 29 5c 6e 63 20 3d 20 63 65 6e 74 72 61 6c 69 74 79 5b 66 6f 75 6e 64 5f 6e 6f 64 65 5d 5c 6e n)\nc.=.centrality[found_node]\n
b040 70 72 69 6e 74 28 66 5c 22 66 6f 75 6e 64 20 6e 6f 64 65 20 7b 66 6f 75 6e 64 5f 6e 6f 64 65 7d print(f\"found.node.{found_node}
b060 20 77 69 74 68 20 63 65 6e 74 72 61 6c 69 74 79 20 7b 63 7d 5c 22 29 5c 6e 5c 6e 5c 6e 23 20 44 .with.centrality.{c}\")\n\n\n#.D
b080 72 61 77 20 67 72 61 70 68 5c 6e 70 6f 73 20 3d 20 6e 78 2e 73 70 72 69 6e 67 5f 6c 61 79 6f 75 raw.graph\npos.=.nx.spring_layou
b0a0 74 28 47 2c 20 73 65 65 64 3d 73 65 65 64 29 5c 6e 6f 70 74 69 6f 6e 73 20 3d 20 7b 5c 6e 20 20 t(G,.seed=seed)\noptions.=.{\n..
b0c0 20 20 5c 22 6e 6f 64 65 5f 63 6f 6c 6f 72 5c 22 3a 20 5c 22 62 6c 75 65 5c 22 2c 5c 6e 20 20 20 ..\"node_color\":.\"blue\",\n...
b0e0 20 5c 22 6e 6f 64 65 5f 73 69 7a 65 5c 22 3a 20 32 30 2c 5c 6e 20 20 20 20 5c 22 65 64 67 65 5f .\"node_size\":.20,\n....\"edge_
b100 63 6f 6c 6f 72 5c 22 3a 20 5c 22 67 72 65 79 5c 22 2c 5c 6e 20 20 20 20 5c 22 6c 69 6e 65 77 69 color\":.\"grey\",\n....\"linewi
b120 64 74 68 73 5c 22 3a 20 30 2c 5c 6e 20 20 20 20 5c 22 77 69 64 74 68 5c 22 3a 20 30 2e 31 2c 5c dths\":.0,\n....\"width\":.0.1,\
b140 6e 7d 5c 6e 6e 78 2e 64 72 61 77 28 47 2c 20 70 6f 73 2c 20 2a 2a 6f 70 74 69 6f 6e 73 29 5c 6e n}\nnx.draw(G,.pos,.**options)\n
b160 23 20 44 72 61 77 20 6e 6f 64 65 20 77 69 74 68 20 68 69 67 68 20 63 65 6e 74 72 61 6c 69 74 79 #.Draw.node.with.high.centrality
b180 20 61 73 20 6c 61 72 67 65 20 61 6e 64 20 72 65 64 5c 6e 6e 78 2e 64 72 61 77 5f 6e 65 74 77 6f .as.large.and.red\nnx.draw_netwo
b1a0 72 6b 78 5f 6e 6f 64 65 73 28 47 2c 20 70 6f 73 2c 20 6e 6f 64 65 6c 69 73 74 3d 5b 66 6f 75 6e rkx_nodes(G,.pos,.nodelist=[foun
b1c0 64 5f 6e 6f 64 65 5d 2c 20 6e 6f 64 65 5f 73 69 7a 65 3d 31 30 30 2c 20 6e 6f 64 65 5f 63 6f 6c d_node],.node_size=100,.node_col
b1e0 6f 72 3d 5c 22 72 5c 22 29 5c 6e 70 6c 74 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 or=\"r\")\nplt.show()".......]..
b200 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
b220 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
b240 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"
b260 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
b280 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":.
b2a0 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":.{....
b2c0 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",.........
b2e0 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
b300 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
b320 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
b340 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
b360 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
b380 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",.......
b3a0 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 39 2e 31 36 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 "version":."3.9.16".....}...},..
b3c0 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
b3e0 72 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 1b 0f 5a 56 87 c5 0c b0 57 22 00 00 57 22 00 r":.0.}PK..........ZV....W"..W".
b400 00 1f 00 00 00 61 6c 67 6f 72 69 74 68 6d 73 2f 70 6c 6f 74 5f 73 75 62 67 72 61 70 68 73 2e 69 .....algorithms/plot_subgraphs.i
b420 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 22 pynb{..."cells":.[.....{......."
b440 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
b460 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
b480 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
b4a0 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":.[],.
b4c0 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 70 ......"source":.[........."%matp
b4e0 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 20 lotlib.inline".......].....},...
b500 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
b520 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":.{},......."
b540 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 53 75 62 67 72 61 70 68 source":.[........."\n#.Subgraph
b560 73 5c 6e 45 78 61 6d 70 6c 65 20 6f 66 20 70 61 72 74 69 74 69 6f 6e 69 6e 67 20 61 20 64 69 72 s\nExample.of.partitioning.a.dir
b580 65 63 74 65 64 20 67 72 61 70 68 20 77 69 74 68 20 6e 6f 64 65 73 20 6c 61 62 65 6c 65 64 20 61 ected.graph.with.nodes.labeled.a
b5a0 73 5c 6e 73 75 70 70 6f 72 74 65 64 20 61 6e 64 20 75 6e 73 75 70 70 6f 72 74 65 64 20 6e 6f 64 s\nsupported.and.unsupported.nod
b5c0 65 73 20 69 6e 74 6f 20 61 20 6c 69 73 74 20 6f 66 20 73 75 62 67 72 61 70 68 73 5c 6e 74 68 61 es.into.a.list.of.subgraphs\ntha
b5e0 74 20 63 6f 6e 74 61 69 6e 20 6f 6e 6c 79 20 65 6e 74 69 72 65 6c 79 20 73 75 70 70 6f 72 74 65 t.contain.only.entirely.supporte
b600 64 20 6f 72 20 65 6e 74 69 72 65 6c 79 20 75 6e 73 75 70 70 6f 72 74 65 64 20 6e 6f 64 65 73 2e d.or.entirely.unsupported.nodes.
b620 5c 6e 41 64 6f 70 74 65 64 20 66 72 6f 6d 20 5c 6e 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e \nAdopted.from.\nhttps://github.
b640 63 6f 6d 2f 6c 6f 62 70 63 67 2f 70 79 74 68 6f 6e 5f 65 78 61 6d 70 6c 65 73 2f 62 6c 6f 62 2f com/lobpcg/python_examples/blob/
b660 6d 61 73 74 65 72 2f 6e 65 74 77 6f 72 6b 78 5f 65 78 61 6d 70 6c 65 2e 70 79 5c 6e 22 0a 20 20 master/networkx_example.py\n"...
b680 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
b6a0 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
b6c0 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":.{
b6e0 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.....
b700 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":.[],.......
b720 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 72 74 20 6e 65 74 77 "source":.[........."import.netw
b740 6f 72 6b 78 20 61 73 20 6e 78 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 orkx.as.nx\nimport.matplotlib.py
b760 70 6c 6f 74 20 61 73 20 70 6c 74 5c 6e 5c 6e 5c 6e 64 65 66 20 67 72 61 70 68 5f 70 61 72 74 69 plot.as.plt\n\n\ndef.graph_parti
b780 74 69 6f 6e 69 6e 67 28 47 2c 20 70 6c 6f 74 74 69 6e 67 3d 54 72 75 65 29 3a 5c 6e 20 20 20 20 tioning(G,.plotting=True):\n....
b7a0 5c 22 5c 22 5c 22 50 61 72 74 69 74 69 6f 6e 20 61 20 64 69 72 65 63 74 65 64 20 67 72 61 70 68 \"\"\"Partition.a.directed.graph
b7c0 20 69 6e 74 6f 20 61 20 6c 69 73 74 20 6f 66 20 73 75 62 67 72 61 70 68 73 20 74 68 61 74 20 63 .into.a.list.of.subgraphs.that.c
b7e0 6f 6e 74 61 69 6e 5c 6e 20 20 20 20 6f 6e 6c 79 20 65 6e 74 69 72 65 6c 79 20 73 75 70 70 6f 72 ontain\n....only.entirely.suppor
b800 74 65 64 20 6f 72 20 65 6e 74 69 72 65 6c 79 20 75 6e 73 75 70 70 6f 72 74 65 64 20 6e 6f 64 65 ted.or.entirely.unsupported.node
b820 73 2e 5c 6e 20 20 20 20 5c 22 5c 22 5c 22 5c 6e 20 20 20 20 23 20 43 61 74 65 67 6f 72 69 7a 65 s.\n....\"\"\"\n....#.Categorize
b840 20 6e 6f 64 65 73 20 62 79 20 74 68 65 69 72 20 6e 6f 64 65 5f 74 79 70 65 20 61 74 74 72 69 62 .nodes.by.their.node_type.attrib
b860 75 74 65 5c 6e 20 20 20 20 73 75 70 70 6f 72 74 65 64 5f 6e 6f 64 65 73 20 3d 20 7b 6e 20 66 6f ute\n....supported_nodes.=.{n.fo
b880 72 20 6e 2c 20 64 20 69 6e 20 47 2e 6e 6f 64 65 73 28 64 61 74 61 3d 5c 22 6e 6f 64 65 5f 74 79 r.n,.d.in.G.nodes(data=\"node_ty
b8a0 70 65 5c 22 29 20 69 66 20 64 20 3d 3d 20 5c 22 73 75 70 70 6f 72 74 65 64 5c 22 7d 5c 6e 20 20 pe\").if.d.==.\"supported\"}\n..
b8c0 20 20 75 6e 73 75 70 70 6f 72 74 65 64 5f 6e 6f 64 65 73 20 3d 20 7b 6e 20 66 6f 72 20 6e 2c 20 ..unsupported_nodes.=.{n.for.n,.
b8e0 64 20 69 6e 20 47 2e 6e 6f 64 65 73 28 64 61 74 61 3d 5c 22 6e 6f 64 65 5f 74 79 70 65 5c 22 29 d.in.G.nodes(data=\"node_type\")
b900 20 69 66 20 64 20 3d 3d 20 5c 22 75 6e 73 75 70 70 6f 72 74 65 64 5c 22 7d 5c 6e 5c 6e 20 20 20 .if.d.==.\"unsupported\"}\n\n...
b920 20 23 20 4d 61 6b 65 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 67 72 61 70 68 2e 5c 6e 20 20 .#.Make.a.copy.of.the.graph.\n..
b940 20 20 48 20 3d 20 47 2e 63 6f 70 79 28 29 5c 6e 20 20 20 20 23 20 52 65 6d 6f 76 65 20 61 6c 6c ..H.=.G.copy()\n....#.Remove.all
b960 20 65 64 67 65 73 20 63 6f 6e 6e 65 63 74 69 6e 67 20 73 75 70 70 6f 72 74 65 64 20 61 6e 64 20 .edges.connecting.supported.and.
b980 75 6e 73 75 70 70 6f 72 74 65 64 20 6e 6f 64 65 73 2e 5c 6e 20 20 20 20 48 2e 72 65 6d 6f 76 65 unsupported.nodes.\n....H.remove
b9a0 5f 65 64 67 65 73 5f 66 72 6f 6d 28 5c 6e 20 20 20 20 20 20 20 20 28 6e 2c 20 6e 62 72 2c 20 64 _edges_from(\n........(n,.nbr,.d
b9c0 29 5c 6e 20 20 20 20 20 20 20 20 66 6f 72 20 6e 2c 20 6e 62 72 73 20 69 6e 20 47 2e 61 64 6a 2e )\n........for.n,.nbrs.in.G.adj.
b9e0 69 74 65 6d 73 28 29 5c 6e 20 20 20 20 20 20 20 20 69 66 20 6e 20 69 6e 20 73 75 70 70 6f 72 74 items()\n........if.n.in.support
ba00 65 64 5f 6e 6f 64 65 73 5c 6e 20 20 20 20 20 20 20 20 66 6f 72 20 6e 62 72 2c 20 64 20 69 6e 20 ed_nodes\n........for.nbr,.d.in.
ba20 6e 62 72 73 2e 69 74 65 6d 73 28 29 5c 6e 20 20 20 20 20 20 20 20 69 66 20 6e 62 72 20 69 6e 20 nbrs.items()\n........if.nbr.in.
ba40 75 6e 73 75 70 70 6f 72 74 65 64 5f 6e 6f 64 65 73 5c 6e 20 20 20 20 29 5c 6e 20 20 20 20 48 2e unsupported_nodes\n....)\n....H.
ba60 72 65 6d 6f 76 65 5f 65 64 67 65 73 5f 66 72 6f 6d 28 5c 6e 20 20 20 20 20 20 20 20 28 6e 2c 20 remove_edges_from(\n........(n,.
ba80 6e 62 72 2c 20 64 29 5c 6e 20 20 20 20 20 20 20 20 66 6f 72 20 6e 2c 20 6e 62 72 73 20 69 6e 20 nbr,.d)\n........for.n,.nbrs.in.
baa0 47 2e 61 64 6a 2e 69 74 65 6d 73 28 29 5c 6e 20 20 20 20 20 20 20 20 69 66 20 6e 20 69 6e 20 75 G.adj.items()\n........if.n.in.u
bac0 6e 73 75 70 70 6f 72 74 65 64 5f 6e 6f 64 65 73 5c 6e 20 20 20 20 20 20 20 20 66 6f 72 20 6e 62 nsupported_nodes\n........for.nb
bae0 72 2c 20 64 20 69 6e 20 6e 62 72 73 2e 69 74 65 6d 73 28 29 5c 6e 20 20 20 20 20 20 20 20 69 66 r,.d.in.nbrs.items()\n........if
bb00 20 6e 62 72 20 69 6e 20 73 75 70 70 6f 72 74 65 64 5f 6e 6f 64 65 73 5c 6e 20 20 20 20 29 5c 6e .nbr.in.supported_nodes\n....)\n
bb20 5c 6e 20 20 20 20 23 20 43 6f 6c 6c 65 63 74 20 61 6c 6c 20 72 65 6d 6f 76 65 64 20 65 64 67 65 \n....#.Collect.all.removed.edge
bb40 73 20 66 6f 72 20 72 65 63 6f 6e 73 74 72 75 63 74 69 6f 6e 2e 5c 6e 20 20 20 20 47 5f 6d 69 6e s.for.reconstruction.\n....G_min
bb60 75 73 5f 48 20 3d 20 6e 78 2e 44 69 47 72 61 70 68 28 29 5c 6e 20 20 20 20 47 5f 6d 69 6e 75 73 us_H.=.nx.DiGraph()\n....G_minus
bb80 5f 48 2e 61 64 64 5f 65 64 67 65 73 5f 66 72 6f 6d 28 73 65 74 28 47 2e 65 64 67 65 73 29 20 2d _H.add_edges_from(set(G.edges).-
bba0 20 73 65 74 28 48 2e 65 64 67 65 73 29 29 5c 6e 5c 6e 20 20 20 20 69 66 20 70 6c 6f 74 74 69 6e .set(H.edges))\n\n....if.plottin
bbc0 67 3a 5c 6e 20 20 20 20 20 20 20 20 23 20 50 6c 6f 74 20 74 68 65 20 73 74 72 69 70 70 65 64 20 g:\n........#.Plot.the.stripped.
bbe0 67 72 61 70 68 20 77 69 74 68 20 74 68 65 20 65 64 67 65 73 20 72 65 6d 6f 76 65 64 2e 5c 6e 20 graph.with.the.edges.removed.\n.
bc00 20 20 20 20 20 20 20 5f 6e 6f 64 65 5f 63 6f 6c 6f 72 73 20 3d 20 5b 63 20 66 6f 72 20 5f 2c 20 ......._node_colors.=.[c.for._,.
bc20 63 20 69 6e 20 48 2e 6e 6f 64 65 73 28 64 61 74 61 3d 5c 22 6e 6f 64 65 5f 63 6f 6c 6f 72 5c 22 c.in.H.nodes(data=\"node_color\"
bc40 29 5d 5c 6e 20 20 20 20 20 20 20 20 5f 70 6f 73 20 3d 20 6e 78 2e 73 70 72 69 6e 67 5f 6c 61 79 )]\n........_pos.=.nx.spring_lay
bc60 6f 75 74 28 48 29 5c 6e 20 20 20 20 20 20 20 20 70 6c 74 2e 66 69 67 75 72 65 28 66 69 67 73 69 out(H)\n........plt.figure(figsi
bc80 7a 65 3d 28 38 2c 20 38 29 29 5c 6e 20 20 20 20 20 20 20 20 6e 78 2e 64 72 61 77 5f 6e 65 74 77 ze=(8,.8))\n........nx.draw_netw
bca0 6f 72 6b 78 5f 65 64 67 65 73 28 48 2c 20 5f 70 6f 73 2c 20 61 6c 70 68 61 3d 30 2e 33 2c 20 65 orkx_edges(H,._pos,.alpha=0.3,.e
bcc0 64 67 65 5f 63 6f 6c 6f 72 3d 5c 22 6b 5c 22 29 5c 6e 20 20 20 20 20 20 20 20 6e 78 2e 64 72 61 dge_color=\"k\")\n........nx.dra
bce0 77 5f 6e 65 74 77 6f 72 6b 78 5f 6e 6f 64 65 73 28 48 2c 20 5f 70 6f 73 2c 20 6e 6f 64 65 5f 63 w_networkx_nodes(H,._pos,.node_c
bd00 6f 6c 6f 72 3d 5f 6e 6f 64 65 5f 63 6f 6c 6f 72 73 29 5c 6e 20 20 20 20 20 20 20 20 6e 78 2e 64 olor=_node_colors)\n........nx.d
bd20 72 61 77 5f 6e 65 74 77 6f 72 6b 78 5f 6c 61 62 65 6c 73 28 48 2c 20 5f 70 6f 73 2c 20 66 6f 6e raw_networkx_labels(H,._pos,.fon
bd40 74 5f 73 69 7a 65 3d 31 34 29 5c 6e 20 20 20 20 20 20 20 20 70 6c 74 2e 61 78 69 73 28 5c 22 6f t_size=14)\n........plt.axis(\"o
bd60 66 66 5c 22 29 5c 6e 20 20 20 20 20 20 20 20 70 6c 74 2e 74 69 74 6c 65 28 5c 22 54 68 65 20 73 ff\")\n........plt.title(\"The.s
bd80 74 72 69 70 70 65 64 20 67 72 61 70 68 20 77 69 74 68 20 74 68 65 20 65 64 67 65 73 20 72 65 6d tripped.graph.with.the.edges.rem
bda0 6f 76 65 64 2e 5c 22 29 5c 6e 20 20 20 20 20 20 20 20 70 6c 74 2e 73 68 6f 77 28 29 5c 6e 20 20 oved.\")\n........plt.show()\n..
bdc0 20 20 20 20 20 20 23 20 50 6c 6f 74 20 74 68 65 20 74 68 65 20 65 64 67 65 73 20 72 65 6d 6f 76 ......#.Plot.the.the.edges.remov
bde0 65 64 2e 5c 6e 20 20 20 20 20 20 20 20 5f 70 6f 73 20 3d 20 6e 78 2e 73 70 72 69 6e 67 5f 6c 61 ed.\n........_pos.=.nx.spring_la
be00 79 6f 75 74 28 47 5f 6d 69 6e 75 73 5f 48 29 5c 6e 20 20 20 20 20 20 20 20 70 6c 74 2e 66 69 67 yout(G_minus_H)\n........plt.fig
be20 75 72 65 28 66 69 67 73 69 7a 65 3d 28 38 2c 20 38 29 29 5c 6e 20 20 20 20 20 20 20 20 6e 63 6c ure(figsize=(8,.8))\n........ncl
be40 20 3d 20 5b 47 2e 6e 6f 64 65 73 5b 6e 5d 5b 5c 22 6e 6f 64 65 5f 63 6f 6c 6f 72 5c 22 5d 20 66 .=.[G.nodes[n][\"node_color\"].f
be60 6f 72 20 6e 20 69 6e 20 47 5f 6d 69 6e 75 73 5f 48 2e 6e 6f 64 65 73 5d 5c 6e 20 20 20 20 20 20 or.n.in.G_minus_H.nodes]\n......
be80 20 20 6e 78 2e 64 72 61 77 5f 6e 65 74 77 6f 72 6b 78 5f 65 64 67 65 73 28 47 5f 6d 69 6e 75 73 ..nx.draw_networkx_edges(G_minus
bea0 5f 48 2c 20 5f 70 6f 73 2c 20 61 6c 70 68 61 3d 30 2e 33 2c 20 65 64 67 65 5f 63 6f 6c 6f 72 3d _H,._pos,.alpha=0.3,.edge_color=
bec0 5c 22 6b 5c 22 29 5c 6e 20 20 20 20 20 20 20 20 6e 78 2e 64 72 61 77 5f 6e 65 74 77 6f 72 6b 78 \"k\")\n........nx.draw_networkx
bee0 5f 6e 6f 64 65 73 28 47 5f 6d 69 6e 75 73 5f 48 2c 20 5f 70 6f 73 2c 20 6e 6f 64 65 5f 63 6f 6c _nodes(G_minus_H,._pos,.node_col
bf00 6f 72 3d 6e 63 6c 29 5c 6e 20 20 20 20 20 20 20 20 6e 78 2e 64 72 61 77 5f 6e 65 74 77 6f 72 6b or=ncl)\n........nx.draw_network
bf20 78 5f 6c 61 62 65 6c 73 28 47 5f 6d 69 6e 75 73 5f 48 2c 20 5f 70 6f 73 2c 20 66 6f 6e 74 5f 73 x_labels(G_minus_H,._pos,.font_s
bf40 69 7a 65 3d 31 34 29 5c 6e 20 20 20 20 20 20 20 20 70 6c 74 2e 61 78 69 73 28 5c 22 6f 66 66 5c ize=14)\n........plt.axis(\"off\
bf60 22 29 5c 6e 20 20 20 20 20 20 20 20 70 6c 74 2e 74 69 74 6c 65 28 5c 22 54 68 65 20 72 65 6d 6f ")\n........plt.title(\"The.remo
bf80 76 65 64 20 65 64 67 65 73 2e 5c 22 29 5c 6e 20 20 20 20 20 20 20 20 70 6c 74 2e 73 68 6f 77 28 ved.edges.\")\n........plt.show(
bfa0 29 5c 6e 5c 6e 20 20 20 20 23 20 46 69 6e 64 20 74 68 65 20 63 6f 6e 6e 65 63 74 65 64 20 63 6f )\n\n....#.Find.the.connected.co
bfc0 6d 70 6f 6e 65 6e 74 73 20 69 6e 20 74 68 65 20 73 74 72 69 70 70 65 64 20 75 6e 64 69 72 65 63 mponents.in.the.stripped.undirec
bfe0 74 65 64 20 67 72 61 70 68 2e 5c 6e 20 20 20 20 23 20 41 6e 64 20 75 73 65 20 74 68 65 20 73 65 ted.graph.\n....#.And.use.the.se
c000 74 73 2c 20 73 70 65 63 69 66 79 69 6e 67 20 74 68 65 20 63 6f 6d 70 6f 6e 65 6e 74 73 2c 20 74 ts,.specifying.the.components,.t
c020 6f 20 70 61 72 74 69 74 69 6f 6e 5c 6e 20 20 20 20 23 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 o.partition\n....#.the.original.
c040 64 69 72 65 63 74 65 64 20 67 72 61 70 68 20 69 6e 74 6f 20 61 20 6c 69 73 74 20 6f 66 20 64 69 directed.graph.into.a.list.of.di
c060 72 65 63 74 65 64 20 73 75 62 67 72 61 70 68 73 5c 6e 20 20 20 20 23 20 74 68 61 74 20 63 6f 6e rected.subgraphs\n....#.that.con
c080 74 61 69 6e 20 6f 6e 6c 79 20 65 6e 74 69 72 65 6c 79 20 73 75 70 70 6f 72 74 65 64 20 6f 72 20 tain.only.entirely.supported.or.
c0a0 65 6e 74 69 72 65 6c 79 20 75 6e 73 75 70 70 6f 72 74 65 64 20 6e 6f 64 65 73 2e 5c 6e 20 20 20 entirely.unsupported.nodes.\n...
c0c0 20 73 75 62 67 72 61 70 68 73 20 3d 20 5b 5c 6e 20 20 20 20 20 20 20 20 48 2e 73 75 62 67 72 61 .subgraphs.=.[\n........H.subgra
c0e0 70 68 28 63 29 2e 63 6f 70 79 28 29 20 66 6f 72 20 63 20 69 6e 20 6e 78 2e 63 6f 6e 6e 65 63 74 ph(c).copy().for.c.in.nx.connect
c100 65 64 5f 63 6f 6d 70 6f 6e 65 6e 74 73 28 48 2e 74 6f 5f 75 6e 64 69 72 65 63 74 65 64 28 29 29 ed_components(H.to_undirected())
c120 5c 6e 20 20 20 20 5d 5c 6e 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 73 75 62 67 72 61 70 68 73 2c \n....]\n\n....return.subgraphs,
c140 20 47 5f 6d 69 6e 75 73 5f 48 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b .G_minus_H".......].....},.....{
c160 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",.
c180 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
c1a0 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 23 20 43 72 65 61 74 65 20 61 6e 20 65 78 rce":.[........."##.Create.an.ex
c1c0 61 6d 70 6c 65 20 64 69 72 65 63 74 65 64 20 67 72 61 70 68 2e 5c 6e 5c 6e 54 68 69 73 20 64 69 ample.directed.graph.\n\nThis.di
c1e0 72 65 63 74 65 64 20 67 72 61 70 68 20 68 61 73 20 6f 6e 65 20 69 6e 70 75 74 20 6e 6f 64 65 20 rected.graph.has.one.input.node.
c200 6c 61 62 65 6c 65 64 20 60 69 6e 60 20 61 6e 64 20 70 6c 6f 74 74 65 64 20 69 6e 20 62 6c 75 65 labeled.`in`.and.plotted.in.blue
c220 20 63 6f 6c 6f 72 5c 6e 61 6e 64 20 6f 6e 65 20 6f 75 74 70 75 74 20 6e 6f 64 65 20 6c 61 62 65 .color\nand.one.output.node.labe
c240 6c 65 64 20 60 6f 75 74 60 20 61 6e 64 20 70 6c 6f 74 74 65 64 20 69 6e 20 6d 61 67 65 6e 74 61 led.`out`.and.plotted.in.magenta
c260 20 63 6f 6c 6f 72 2e 5c 6e 54 68 65 20 6f 74 68 65 72 20 73 69 78 20 6e 6f 64 65 73 20 61 72 65 .color.\nThe.other.six.nodes.are
c280 20 63 6c 61 73 73 69 66 69 65 64 20 61 73 20 66 6f 75 72 20 60 73 75 70 70 6f 72 74 65 64 60 20 .classified.as.four.`supported`.
c2a0 70 6c 6f 74 74 65 64 20 69 6e 20 67 72 65 65 6e 20 63 6f 6c 6f 72 5c 6e 61 6e 64 20 74 77 6f 20 plotted.in.green.color\nand.two.
c2c0 60 75 6e 73 75 70 70 6f 72 74 65 64 60 20 70 6c 6f 74 74 65 64 20 69 6e 20 72 65 64 20 63 6f 6c `unsupported`.plotted.in.red.col
c2e0 6f 72 2e 20 54 68 65 20 67 6f 61 6c 20 69 73 20 63 6f 6d 70 75 74 69 6e 67 20 61 20 6c 69 73 74 or..The.goal.is.computing.a.list
c300 5c 6e 6f 66 20 73 75 62 67 72 61 70 68 73 20 74 68 61 74 20 63 6f 6e 74 61 69 6e 20 6f 6e 6c 79 \nof.subgraphs.that.contain.only
c320 20 65 6e 74 69 72 65 6c 79 20 60 73 75 70 70 6f 72 74 65 64 60 20 6f 72 20 60 75 6e 73 75 70 70 .entirely.`supported`.or.`unsupp
c340 6f 72 74 65 64 60 20 6e 6f 64 65 73 2e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d orted`.nodes.\n\n".......].....}
c360 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
c380 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
c3a0 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
c3c0 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.......},.......
c3e0 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":.[
c400 0a 20 20 20 20 20 20 20 20 22 47 5f 65 78 20 3d 20 6e 78 2e 44 69 47 72 61 70 68 28 29 5c 6e 47 ........."G_ex.=.nx.DiGraph()\nG
c420 5f 65 78 2e 61 64 64 5f 6e 6f 64 65 73 5f 66 72 6f 6d 28 5b 5c 22 49 6e 5c 22 5d 2c 20 6e 6f 64 _ex.add_nodes_from([\"In\"],.nod
c440 65 5f 74 79 70 65 3d 5c 22 69 6e 70 75 74 5c 22 2c 20 6e 6f 64 65 5f 63 6f 6c 6f 72 3d 5c 22 62 e_type=\"input\",.node_color=\"b
c460 5c 22 29 5c 6e 47 5f 65 78 2e 61 64 64 5f 6e 6f 64 65 73 5f 66 72 6f 6d 28 5b 5c 22 41 5c 22 2c \")\nG_ex.add_nodes_from([\"A\",
c480 20 5c 22 43 5c 22 2c 20 5c 22 45 5c 22 2c 20 5c 22 46 5c 22 5d 2c 20 6e 6f 64 65 5f 74 79 70 65 .\"C\",.\"E\",.\"F\"],.node_type
c4a0 3d 5c 22 73 75 70 70 6f 72 74 65 64 5c 22 2c 20 6e 6f 64 65 5f 63 6f 6c 6f 72 3d 5c 22 67 5c 22 =\"supported\",.node_color=\"g\"
c4c0 29 5c 6e 47 5f 65 78 2e 61 64 64 5f 6e 6f 64 65 73 5f 66 72 6f 6d 28 5b 5c 22 42 5c 22 2c 20 5c )\nG_ex.add_nodes_from([\"B\",.\
c4e0 22 44 5c 22 5d 2c 20 6e 6f 64 65 5f 74 79 70 65 3d 5c 22 75 6e 73 75 70 70 6f 72 74 65 64 5c 22 "D\"],.node_type=\"unsupported\"
c500 2c 20 6e 6f 64 65 5f 63 6f 6c 6f 72 3d 5c 22 72 5c 22 29 5c 6e 47 5f 65 78 2e 61 64 64 5f 6e 6f ,.node_color=\"r\")\nG_ex.add_no
c520 64 65 73 5f 66 72 6f 6d 28 5b 5c 22 4f 75 74 5c 22 5d 2c 20 6e 6f 64 65 5f 74 79 70 65 3d 5c 22 des_from([\"Out\"],.node_type=\"
c540 6f 75 74 70 75 74 5c 22 2c 20 6e 6f 64 65 5f 63 6f 6c 6f 72 3d 5c 22 6d 5c 22 29 5c 6e 47 5f 65 output\",.node_color=\"m\")\nG_e
c560 78 2e 61 64 64 5f 65 64 67 65 73 5f 66 72 6f 6d 28 5c 6e 20 20 20 20 5b 5c 6e 20 20 20 20 20 20 x.add_edges_from(\n....[\n......
c580 20 20 28 5c 22 49 6e 5c 22 2c 20 5c 22 41 5c 22 29 2c 5c 6e 20 20 20 20 20 20 20 20 28 5c 22 41 ..(\"In\",.\"A\"),\n........(\"A
c5a0 5c 22 2c 20 5c 22 42 5c 22 29 2c 5c 6e 20 20 20 20 20 20 20 20 28 5c 22 42 5c 22 2c 20 5c 22 43 \",.\"B\"),\n........(\"B\",.\"C
c5c0 5c 22 29 2c 5c 6e 20 20 20 20 20 20 20 20 28 5c 22 42 5c 22 2c 20 5c 22 44 5c 22 29 2c 5c 6e 20 \"),\n........(\"B\",.\"D\"),\n.
c5e0 20 20 20 20 20 20 20 28 5c 22 44 5c 22 2c 20 5c 22 45 5c 22 29 2c 5c 6e 20 20 20 20 20 20 20 20 .......(\"D\",.\"E\"),\n........
c600 28 5c 22 43 5c 22 2c 20 5c 22 46 5c 22 29 2c 5c 6e 20 20 20 20 20 20 20 20 28 5c 22 45 5c 22 2c (\"C\",.\"F\"),\n........(\"E\",
c620 20 5c 22 46 5c 22 29 2c 5c 6e 20 20 20 20 20 20 20 20 28 5c 22 46 5c 22 2c 20 5c 22 4f 75 74 5c .\"F\"),\n........(\"F\",.\"Out\
c640 22 29 2c 5c 6e 20 20 20 20 5d 5c 6e 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 "),\n....]\n)".......].....},...
c660 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
c680 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":.{},......."
c6a0 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 23 20 50 6c 6f 74 20 74 68 65 20 source":.[........."##.Plot.the.
c6c0 6f 72 69 67 69 6e 61 6c 20 67 72 61 70 68 2e 5c 6e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 original.graph.\n\n\n".......]..
c6e0 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":."
c700 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":.
c720 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":.{.......
c740 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.......},...
c760 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
c780 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 6e 6f 64 65 5f 63 6f 6c 6f 72 5f 6c 69 73 74 20 3d 20 ":.[........."node_color_list.=.
c7a0 5b 6e 63 20 66 6f 72 20 5f 2c 20 6e 63 20 69 6e 20 47 5f 65 78 2e 6e 6f 64 65 73 28 64 61 74 61 [nc.for._,.nc.in.G_ex.nodes(data
c7c0 3d 5c 22 6e 6f 64 65 5f 63 6f 6c 6f 72 5c 22 29 5d 5c 6e 70 6f 73 20 3d 20 6e 78 2e 73 70 65 63 =\"node_color\")]\npos.=.nx.spec
c7e0 74 72 61 6c 5f 6c 61 79 6f 75 74 28 47 5f 65 78 29 5c 6e 70 6c 74 2e 66 69 67 75 72 65 28 66 69 tral_layout(G_ex)\nplt.figure(fi
c800 67 73 69 7a 65 3d 28 38 2c 20 38 29 29 5c 6e 6e 78 2e 64 72 61 77 5f 6e 65 74 77 6f 72 6b 78 5f gsize=(8,.8))\nnx.draw_networkx_
c820 65 64 67 65 73 28 47 5f 65 78 2c 20 70 6f 73 2c 20 61 6c 70 68 61 3d 30 2e 33 2c 20 65 64 67 65 edges(G_ex,.pos,.alpha=0.3,.edge
c840 5f 63 6f 6c 6f 72 3d 5c 22 6b 5c 22 29 5c 6e 6e 78 2e 64 72 61 77 5f 6e 65 74 77 6f 72 6b 78 5f _color=\"k\")\nnx.draw_networkx_
c860 6e 6f 64 65 73 28 47 5f 65 78 2c 20 70 6f 73 2c 20 61 6c 70 68 61 3d 30 2e 38 2c 20 6e 6f 64 65 nodes(G_ex,.pos,.alpha=0.8,.node
c880 5f 63 6f 6c 6f 72 3d 6e 6f 64 65 5f 63 6f 6c 6f 72 5f 6c 69 73 74 29 5c 6e 6e 78 2e 64 72 61 77 _color=node_color_list)\nnx.draw
c8a0 5f 6e 65 74 77 6f 72 6b 78 5f 6c 61 62 65 6c 73 28 47 5f 65 78 2c 20 70 6f 73 2c 20 66 6f 6e 74 _networkx_labels(G_ex,.pos,.font
c8c0 5f 73 69 7a 65 3d 31 34 29 5c 6e 70 6c 74 2e 61 78 69 73 28 5c 22 6f 66 66 5c 22 29 5c 6e 70 6c _size=14)\nplt.axis(\"off\")\npl
c8e0 74 2e 74 69 74 6c 65 28 5c 22 54 68 65 20 6f 72 69 67 69 6e 61 6c 20 67 72 61 70 68 2e 5c 22 29 t.title(\"The.original.graph.\")
c900 5c 6e 70 6c 74 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 \nplt.show()".......].....},....
c920 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"
c940 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
c960 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 23 20 43 61 6c 63 75 6c 61 74 65 20 ource":.[........."##.Calculate.
c980 74 68 65 20 73 75 62 67 72 61 70 68 73 20 77 69 74 68 20 70 6c 6f 74 74 69 6e 67 20 61 6c 6c 20 the.subgraphs.with.plotting.all.
c9a0 72 65 73 75 6c 74 73 20 6f 66 20 69 6e 74 65 6d 65 64 69 61 74 65 20 73 74 65 70 73 2e 5c 6e 5c results.of.intemediate.steps.\n\
c9c0 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".......].....},.....{.......
c9e0 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
ca00 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
ca20 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
ca40 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":.[],
ca60 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 73 75 62 67 ......."source":.[........."subg
ca80 72 61 70 68 73 5f 6f 66 5f 47 5f 65 78 2c 20 72 65 6d 6f 76 65 64 5f 65 64 67 65 73 20 3d 20 67 raphs_of_G_ex,.removed_edges.=.g
caa0 72 61 70 68 5f 70 61 72 74 69 74 69 6f 6e 69 6e 67 28 47 5f 65 78 2c 20 70 6c 6f 74 74 69 6e 67 raph_partitioning(G_ex,.plotting
cac0 3d 54 72 75 65 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 =True)".......].....},.....{....
cae0 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",.....
cb00 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"
cb20 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 23 20 50 6c 6f 74 20 74 68 65 20 72 65 73 75 6c 74 73 :.[........."##.Plot.the.results
cb40 3a 20 65 76 65 72 79 20 73 75 62 67 72 61 70 68 20 69 6e 20 74 68 65 20 6c 69 73 74 2e 5c 6e 5c :.every.subgraph.in.the.list.\n\
cb60 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".......].....},.....{.......
cb80 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
cba0 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
cbc0 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
cbe0 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":.[],
cc00 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 6f 72 20 ......."source":.[........."for.
cc20 73 75 62 67 72 61 70 68 20 69 6e 20 73 75 62 67 72 61 70 68 73 5f 6f 66 5f 47 5f 65 78 3a 5c 6e subgraph.in.subgraphs_of_G_ex:\n
cc40 20 20 20 20 5f 70 6f 73 20 3d 20 6e 78 2e 73 70 72 69 6e 67 5f 6c 61 79 6f 75 74 28 73 75 62 67 ...._pos.=.nx.spring_layout(subg
cc60 72 61 70 68 29 5c 6e 20 20 20 20 70 6c 74 2e 66 69 67 75 72 65 28 66 69 67 73 69 7a 65 3d 28 38 raph)\n....plt.figure(figsize=(8
cc80 2c 20 38 29 29 5c 6e 20 20 20 20 6e 78 2e 64 72 61 77 5f 6e 65 74 77 6f 72 6b 78 5f 65 64 67 65 ,.8))\n....nx.draw_networkx_edge
cca0 73 28 73 75 62 67 72 61 70 68 2c 20 5f 70 6f 73 2c 20 61 6c 70 68 61 3d 30 2e 33 2c 20 65 64 67 s(subgraph,._pos,.alpha=0.3,.edg
ccc0 65 5f 63 6f 6c 6f 72 3d 5c 22 6b 5c 22 29 5c 6e 20 20 20 20 6e 6f 64 65 5f 63 6f 6c 6f 72 5f 6c e_color=\"k\")\n....node_color_l
cce0 69 73 74 5f 63 20 3d 20 5b 6e 63 20 66 6f 72 20 5f 2c 20 6e 63 20 69 6e 20 73 75 62 67 72 61 70 ist_c.=.[nc.for._,.nc.in.subgrap
cd00 68 2e 6e 6f 64 65 73 28 64 61 74 61 3d 5c 22 6e 6f 64 65 5f 63 6f 6c 6f 72 5c 22 29 5d 5c 6e 20 h.nodes(data=\"node_color\")]\n.
cd20 20 20 20 6e 78 2e 64 72 61 77 5f 6e 65 74 77 6f 72 6b 78 5f 6e 6f 64 65 73 28 73 75 62 67 72 61 ...nx.draw_networkx_nodes(subgra
cd40 70 68 2c 20 5f 70 6f 73 2c 20 6e 6f 64 65 5f 63 6f 6c 6f 72 3d 6e 6f 64 65 5f 63 6f 6c 6f 72 5f ph,._pos,.node_color=node_color_
cd60 6c 69 73 74 5f 63 29 5c 6e 20 20 20 20 6e 78 2e 64 72 61 77 5f 6e 65 74 77 6f 72 6b 78 5f 6c 61 list_c)\n....nx.draw_networkx_la
cd80 62 65 6c 73 28 73 75 62 67 72 61 70 68 2c 20 5f 70 6f 73 2c 20 66 6f 6e 74 5f 73 69 7a 65 3d 31 bels(subgraph,._pos,.font_size=1
cda0 34 29 5c 6e 20 20 20 20 70 6c 74 2e 61 78 69 73 28 5c 22 6f 66 66 5c 22 29 5c 6e 20 20 20 20 70 4)\n....plt.axis(\"off\")\n....p
cdc0 6c 74 2e 74 69 74 6c 65 28 5c 22 4f 6e 65 20 6f 66 20 74 68 65 20 73 75 62 67 72 61 70 68 73 2e lt.title(\"One.of.the.subgraphs.
cde0 5c 22 29 5c 6e 20 20 20 20 70 6c 74 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 \")\n....plt.show()".......]....
ce00 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
ce20 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":.{},..
ce40 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 23 20 50 75 74 ....."source":.[........."##.Put
ce60 20 74 68 65 20 67 72 61 70 68 20 62 61 63 6b 20 66 72 6f 6d 20 74 68 65 20 6c 69 73 74 20 6f 66 .the.graph.back.from.the.list.of
ce80 20 73 75 62 67 72 61 70 68 73 5c 6e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c .subgraphs\n\n\n".......].....},
cea0 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"
cec0 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,
cee0 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
cf00 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.......},......."
cf20 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":.[.
cf40 20 20 20 20 20 20 20 20 22 47 5f 65 78 5f 72 20 3d 20 6e 78 2e 44 69 47 72 61 70 68 28 29 5c 6e ........"G_ex_r.=.nx.DiGraph()\n
cf60 23 20 43 6f 6d 70 6f 73 69 6e 67 20 61 6c 6c 20 73 75 62 67 72 61 70 68 73 2e 5c 6e 66 6f 72 20 #.Composing.all.subgraphs.\nfor.
cf80 73 75 62 67 72 61 70 68 20 69 6e 20 73 75 62 67 72 61 70 68 73 5f 6f 66 5f 47 5f 65 78 3a 5c 6e subgraph.in.subgraphs_of_G_ex:\n
cfa0 20 20 20 20 47 5f 65 78 5f 72 20 3d 20 6e 78 2e 63 6f 6d 70 6f 73 65 28 47 5f 65 78 5f 72 2c 20 ....G_ex_r.=.nx.compose(G_ex_r,.
cfc0 73 75 62 67 72 61 70 68 29 5c 6e 23 20 41 64 64 69 6e 67 20 74 68 65 20 70 72 65 76 69 6f 75 73 subgraph)\n#.Adding.the.previous
cfe0 6c 79 20 73 74 6f 72 65 64 20 65 64 67 65 73 2e 5c 6e 47 5f 65 78 5f 72 2e 61 64 64 5f 65 64 67 ly.stored.edges.\nG_ex_r.add_edg
d000 65 73 5f 66 72 6f 6d 28 72 65 6d 6f 76 65 64 5f 65 64 67 65 73 2e 65 64 67 65 73 28 29 29 22 0a es_from(removed_edges.edges())".
d020 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
d040 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
d060 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":.[.....
d080 20 20 20 20 22 23 23 20 43 68 65 63 6b 20 74 68 61 74 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 ...."##.Check.that.the.original.
d0a0 67 72 61 70 68 20 61 6e 64 20 74 68 65 20 72 65 63 6f 6e 73 74 72 75 63 74 65 64 20 67 72 61 70 graph.and.the.reconstructed.grap
d0c0 68 73 20 61 72 65 20 69 73 6f 6d 6f 72 70 68 69 63 2e 5c 6e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 hs.are.isomorphic.\n\n\n".......
d0e0 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"
d100 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
d120 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":.{....
d140 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.......},
d160 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
d180 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 61 73 73 65 72 74 20 6e 78 2e 69 73 5f 69 73 rce":.[........."assert.nx.is_is
d1a0 6f 6d 6f 72 70 68 69 63 28 47 5f 65 78 2c 20 47 5f 65 78 5f 72 29 22 0a 20 20 20 20 20 20 5d 0a omorphic(G_ex,.G_ex_r)".......].
d1c0 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":.
d1e0 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":.{}
d200 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 23 20 ,......."source":.[........."##.
d220 50 6c 6f 74 20 74 68 65 20 72 65 63 6f 6e 73 74 72 75 63 74 65 64 20 67 72 61 70 68 2e 5c 6e 5c Plot.the.reconstructed.graph.\n\
d240 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".......].....},.....{.......
d260 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
d280 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
d2a0 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
d2c0 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":.[],
d2e0 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 6f 64 65 ......."source":.[........."node
d300 5f 63 6f 6c 6f 72 5f 6c 69 73 74 20 3d 20 5b 6e 63 20 66 6f 72 20 5f 2c 20 6e 63 20 69 6e 20 47 _color_list.=.[nc.for._,.nc.in.G
d320 5f 65 78 5f 72 2e 6e 6f 64 65 73 28 64 61 74 61 3d 5c 22 6e 6f 64 65 5f 63 6f 6c 6f 72 5c 22 29 _ex_r.nodes(data=\"node_color\")
d340 5d 5c 6e 70 6f 73 20 3d 20 6e 78 2e 73 70 65 63 74 72 61 6c 5f 6c 61 79 6f 75 74 28 47 5f 65 78 ]\npos.=.nx.spectral_layout(G_ex
d360 5f 72 29 5c 6e 70 6c 74 2e 66 69 67 75 72 65 28 66 69 67 73 69 7a 65 3d 28 38 2c 20 38 29 29 5c _r)\nplt.figure(figsize=(8,.8))\
d380 6e 6e 78 2e 64 72 61 77 5f 6e 65 74 77 6f 72 6b 78 5f 65 64 67 65 73 28 47 5f 65 78 5f 72 2c 20 nnx.draw_networkx_edges(G_ex_r,.
d3a0 70 6f 73 2c 20 61 6c 70 68 61 3d 30 2e 33 2c 20 65 64 67 65 5f 63 6f 6c 6f 72 3d 5c 22 6b 5c 22 pos,.alpha=0.3,.edge_color=\"k\"
d3c0 29 5c 6e 6e 78 2e 64 72 61 77 5f 6e 65 74 77 6f 72 6b 78 5f 6e 6f 64 65 73 28 47 5f 65 78 5f 72 )\nnx.draw_networkx_nodes(G_ex_r
d3e0 2c 20 70 6f 73 2c 20 61 6c 70 68 61 3d 30 2e 38 2c 20 6e 6f 64 65 5f 63 6f 6c 6f 72 3d 6e 6f 64 ,.pos,.alpha=0.8,.node_color=nod
d400 65 5f 63 6f 6c 6f 72 5f 6c 69 73 74 29 5c 6e 6e 78 2e 64 72 61 77 5f 6e 65 74 77 6f 72 6b 78 5f e_color_list)\nnx.draw_networkx_
d420 6c 61 62 65 6c 73 28 47 5f 65 78 5f 72 2c 20 70 6f 73 2c 20 66 6f 6e 74 5f 73 69 7a 65 3d 31 34 labels(G_ex_r,.pos,.font_size=14
d440 29 5c 6e 70 6c 74 2e 61 78 69 73 28 5c 22 6f 66 66 5c 22 29 5c 6e 70 6c 74 2e 74 69 74 6c 65 28 )\nplt.axis(\"off\")\nplt.title(
d460 5c 22 54 68 65 20 72 65 63 6f 6e 73 74 72 75 63 74 65 64 20 67 72 61 70 68 2e 5c 22 29 5c 6e 70 \"The.reconstructed.graph.\")\np
d480 6c 74 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 lt.show()".......].....}...],...
d4a0 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":.
d4c0 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.
d4e0 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",.
d500 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".....},..
d520 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
d540 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":
d560 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
d580 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"
d5a0 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
d5c0 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
d5e0 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":.
d600 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"
d620 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":."
d640 33 2e 39 2e 31 36 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.9.16".....}...},..."nbformat":
d660 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...
d680 00 00 00 00 00 1a 0f 5a 56 44 02 60 05 ea 07 00 00 ea 07 00 00 19 00 00 00 61 6c 67 6f 72 69 74 .......ZVD.`.............algorit
d6a0 68 6d 73 2f 70 6c 6f 74 5f 72 63 6d 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 22 3a 20 5b hms/plot_rcm.ipynb{..."cells":.[
d6c0 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"
d6e0 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,
d700 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
d720 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.......},......."
d740 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":.[.
d760 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"....
d780 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
d7a0 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
d7c0 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":.[........
d7e0 20 22 5c 6e 23 20 52 65 76 65 72 73 65 20 43 75 74 68 69 6c 6c 2d 2d 4d 63 4b 65 65 5c 6e 5c 6e ."\n#.Reverse.Cuthill--McKee\n\n
d800 43 75 74 68 69 6c 6c 2d 4d 63 4b 65 65 20 6f 72 64 65 72 69 6e 67 20 6f 66 20 6d 61 74 72 69 63 Cuthill-McKee.ordering.of.matric
d820 65 73 5c 6e 5c 6e 54 68 65 20 72 65 76 65 72 73 65 20 43 75 74 68 69 6c 6c 2d 2d 4d 63 4b 65 65 es\n\nThe.reverse.Cuthill--McKee
d840 20 61 6c 67 6f 72 69 74 68 6d 20 67 69 76 65 73 20 61 20 73 70 61 72 73 65 20 6d 61 74 72 69 78 .algorithm.gives.a.sparse.matrix
d860 20 6f 72 64 65 72 69 6e 67 20 74 68 61 74 5c 6e 72 65 64 75 63 65 73 20 74 68 65 20 6d 61 74 72 .ordering.that\nreduces.the.matr
d880 69 78 20 62 61 6e 64 77 69 64 74 68 2e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a ix.bandwidth.\n".......].....},.
d8a0 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",
d8c0 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,.
d8e0 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
d900 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
d920 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":.[..
d940 20 20 20 20 20 20 20 22 69 6d 70 6f 72 74 20 6e 75 6d 70 79 20 61 73 20 6e 70 5c 6e 69 6d 70 6f ......."import.numpy.as.np\nimpo
d960 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 70 6c 6f 74 20 61 73 20 70 6c 74 5c 6e 69 6d 70 rt.matplotlib.pyplot.as.plt\nimp
d980 6f 72 74 20 73 65 61 62 6f 72 6e 20 61 73 20 73 6e 73 5c 6e 69 6d 70 6f 72 74 20 6e 65 74 77 6f ort.seaborn.as.sns\nimport.netwo
d9a0 72 6b 78 20 61 73 20 6e 78 5c 6e 5c 6e 5c 6e 23 20 62 75 69 6c 64 20 6c 6f 77 2d 62 61 6e 64 77 rkx.as.nx\n\n\n#.build.low-bandw
d9c0 69 64 74 68 20 6d 61 74 72 69 78 5c 6e 47 20 3d 20 6e 78 2e 67 72 69 64 5f 32 64 5f 67 72 61 70 idth.matrix\nG.=.nx.grid_2d_grap
d9e0 68 28 33 2c 20 33 29 5c 6e 72 63 6d 20 3d 20 6c 69 73 74 28 6e 78 2e 75 74 69 6c 73 2e 72 65 76 h(3,.3)\nrcm.=.list(nx.utils.rev
da00 65 72 73 65 5f 63 75 74 68 69 6c 6c 5f 6d 63 6b 65 65 5f 6f 72 64 65 72 69 6e 67 28 47 29 29 5c erse_cuthill_mckee_ordering(G))\
da20 6e 70 72 69 6e 74 28 5c 22 6f 72 64 65 72 69 6e 67 5c 22 2c 20 72 63 6d 29 5c 6e 5c 6e 70 72 69 nprint(\"ordering\",.rcm)\n\npri
da40 6e 74 28 5c 22 75 6e 6f 72 64 65 72 65 64 20 4c 61 70 6c 61 63 69 61 6e 20 6d 61 74 72 69 78 5c nt(\"unordered.Laplacian.matrix\
da60 22 29 5c 6e 41 20 3d 20 6e 78 2e 6c 61 70 6c 61 63 69 61 6e 5f 6d 61 74 72 69 78 28 47 29 5c 6e ")\nA.=.nx.laplacian_matrix(G)\n
da80 78 2c 20 79 20 3d 20 6e 70 2e 6e 6f 6e 7a 65 72 6f 28 41 29 5c 6e 23 20 70 72 69 6e 74 28 66 5c x,.y.=.np.nonzero(A)\n#.print(f\
daa0 22 6c 6f 77 65 72 20 62 61 6e 64 77 69 64 74 68 3a 20 7b 28 79 20 2d 20 78 29 2e 6d 61 78 28 29 "lower.bandwidth:.{(y.-.x).max()
dac0 7d 5c 22 29 5c 6e 23 20 70 72 69 6e 74 28 66 5c 22 75 70 70 65 72 20 62 61 6e 64 77 69 64 74 68 }\")\n#.print(f\"upper.bandwidth
dae0 3a 20 7b 28 78 20 2d 20 79 29 2e 6d 61 78 28 29 7d 5c 22 29 5c 6e 70 72 69 6e 74 28 66 5c 22 62 :.{(x.-.y).max()}\")\nprint(f\"b
db00 61 6e 64 77 69 64 74 68 3a 20 7b 28 79 20 2d 20 78 29 2e 6d 61 78 28 29 20 2b 20 28 78 20 2d 20 andwidth:.{(y.-.x).max().+.(x.-.
db20 79 29 2e 6d 61 78 28 29 20 2b 20 31 7d 5c 22 29 5c 6e 70 72 69 6e 74 28 41 29 5c 6e 5c 6e 42 20 y).max().+.1}\")\nprint(A)\n\nB.
db40 3d 20 6e 78 2e 6c 61 70 6c 61 63 69 61 6e 5f 6d 61 74 72 69 78 28 47 2c 20 6e 6f 64 65 6c 69 73 =.nx.laplacian_matrix(G,.nodelis
db60 74 3d 72 63 6d 29 5c 6e 70 72 69 6e 74 28 5c 22 6c 6f 77 2d 62 61 6e 64 77 69 64 74 68 20 4c 61 t=rcm)\nprint(\"low-bandwidth.La
db80 70 6c 61 63 69 61 6e 20 6d 61 74 72 69 78 5c 22 29 5c 6e 78 2c 20 79 20 3d 20 6e 70 2e 6e 6f 6e placian.matrix\")\nx,.y.=.np.non
dba0 7a 65 72 6f 28 42 29 5c 6e 23 20 70 72 69 6e 74 28 66 5c 22 6c 6f 77 65 72 20 62 61 6e 64 77 69 zero(B)\n#.print(f\"lower.bandwi
dbc0 64 74 68 3a 20 7b 28 79 20 2d 20 78 29 2e 6d 61 78 28 29 7d 5c 22 29 5c 6e 23 20 70 72 69 6e 74 dth:.{(y.-.x).max()}\")\n#.print
dbe0 28 66 5c 22 75 70 70 65 72 20 62 61 6e 64 77 69 64 74 68 3a 20 7b 28 78 20 2d 20 79 29 2e 6d 61 (f\"upper.bandwidth:.{(x.-.y).ma
dc00 78 28 29 7d 5c 22 29 5c 6e 70 72 69 6e 74 28 66 5c 22 62 61 6e 64 77 69 64 74 68 3a 20 7b 28 79 x()}\")\nprint(f\"bandwidth:.{(y
dc20 20 2d 20 78 29 2e 6d 61 78 28 29 20 2b 20 28 78 20 2d 20 79 29 2e 6d 61 78 28 29 20 2b 20 31 7d .-.x).max().+.(x.-.y).max().+.1}
dc40 5c 22 29 5c 6e 70 72 69 6e 74 28 42 29 5c 6e 5c 6e 73 6e 73 2e 68 65 61 74 6d 61 70 28 42 2e 74 \")\nprint(B)\n\nsns.heatmap(B.t
dc60 6f 64 65 6e 73 65 28 29 2c 20 63 62 61 72 3d 46 61 6c 73 65 2c 20 73 71 75 61 72 65 3d 54 72 75 odense(),.cbar=False,.square=Tru
dc80 65 2c 20 6c 69 6e 65 77 69 64 74 68 73 3d 30 2e 35 2c 20 61 6e 6e 6f 74 3d 54 72 75 65 29 5c 6e e,.linewidths=0.5,.annot=True)\n
dca0 70 6c 74 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 plt.show()".......].....}...],..
dcc0 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":
dce0 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
dd00 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",
dd20 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".....},.
dd40 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
dd60 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"
dd80 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":.
dda0 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
ddc0 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
dde0 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
de00 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":
de20 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
de40 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":.
de60 22 33 2e 39 2e 31 36 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 "3.9.16".....}...},..."nbformat"
de80 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 0a 7d 50 4b 03 04 :.4,..."nbformat_minor":.0.}PK..
dea0 14 00 00 00 00 00 03 0f 5a 56 23 7d c2 d9 29 08 00 00 29 08 00 00 1b 00 00 00 62 61 73 69 63 2f ........ZV#}..)...).......basic/
dec0 70 6c 6f 74 5f 70 72 6f 70 65 72 74 69 65 73 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 22 plot_properties.ipynb{..."cells"
dee0 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
df00 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
df20 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":.{.........
df40 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.......},.....
df60 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":
df80 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".
dfa0 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
dfc0 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
dfe0 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":.[.....
e000 20 20 20 20 22 5c 6e 23 20 50 72 6f 70 65 72 74 69 65 73 5c 6e 5c 6e 43 6f 6d 70 75 74 65 20 73 ...."\n#.Properties\n\nCompute.s
e020 6f 6d 65 20 6e 65 74 77 6f 72 6b 20 70 72 6f 70 65 72 74 69 65 73 20 66 6f 72 20 74 68 65 20 6c ome.network.properties.for.the.l
e040 6f 6c 6c 69 70 6f 70 20 67 72 61 70 68 2e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c ollipop.graph.\n".......].....},
e060 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"
e080 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,
e0a0 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
e0c0 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.......},......."
e0e0 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":.[.
e100 20 20 20 20 20 20 20 20 22 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 70 6c 6f ........"import.matplotlib.pyplo
e120 74 20 61 73 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 t.as.plt\nimport.networkx.as.nx\
e140 6e 5c 6e 47 20 3d 20 6e 78 2e 6c 6f 6c 6c 69 70 6f 70 5f 67 72 61 70 68 28 34 2c 20 36 29 5c 6e n\nG.=.nx.lollipop_graph(4,.6)\n
e160 5c 6e 70 61 74 68 6c 65 6e 67 74 68 73 20 3d 20 5b 5d 5c 6e 5c 6e 70 72 69 6e 74 28 5c 22 73 6f \npathlengths.=.[]\n\nprint(\"so
e180 75 72 63 65 20 76 65 72 74 65 78 20 7b 74 61 72 67 65 74 3a 6c 65 6e 67 74 68 2c 20 7d 5c 22 29 urce.vertex.{target:length,.}\")
e1a0 5c 6e 66 6f 72 20 76 20 69 6e 20 47 2e 6e 6f 64 65 73 28 29 3a 5c 6e 20 20 20 20 73 70 6c 20 3d \nfor.v.in.G.nodes():\n....spl.=
e1c0 20 64 69 63 74 28 6e 78 2e 73 69 6e 67 6c 65 5f 73 6f 75 72 63 65 5f 73 68 6f 72 74 65 73 74 5f .dict(nx.single_source_shortest_
e1e0 70 61 74 68 5f 6c 65 6e 67 74 68 28 47 2c 20 76 29 29 5c 6e 20 20 20 20 70 72 69 6e 74 28 66 5c path_length(G,.v))\n....print(f\
e200 22 7b 76 7d 20 7b 73 70 6c 7d 20 5c 22 29 5c 6e 20 20 20 20 66 6f 72 20 70 20 69 6e 20 73 70 6c "{v}.{spl}.\")\n....for.p.in.spl
e220 3a 5c 6e 20 20 20 20 20 20 20 20 70 61 74 68 6c 65 6e 67 74 68 73 2e 61 70 70 65 6e 64 28 73 70 :\n........pathlengths.append(sp
e240 6c 5b 70 5d 29 5c 6e 5c 6e 70 72 69 6e 74 28 29 5c 6e 70 72 69 6e 74 28 66 5c 22 61 76 65 72 61 l[p])\n\nprint()\nprint(f\"avera
e260 67 65 20 73 68 6f 72 74 65 73 74 20 70 61 74 68 20 6c 65 6e 67 74 68 20 7b 73 75 6d 28 70 61 74 ge.shortest.path.length.{sum(pat
e280 68 6c 65 6e 67 74 68 73 29 20 2f 20 6c 65 6e 28 70 61 74 68 6c 65 6e 67 74 68 73 29 7d 5c 22 29 hlengths)./.len(pathlengths)}\")
e2a0 5c 6e 5c 6e 23 20 68 69 73 74 6f 67 72 61 6d 20 6f 66 20 70 61 74 68 20 6c 65 6e 67 74 68 73 5c \n\n#.histogram.of.path.lengths\
e2c0 6e 64 69 73 74 20 3d 20 7b 7d 5c 6e 66 6f 72 20 70 20 69 6e 20 70 61 74 68 6c 65 6e 67 74 68 73 ndist.=.{}\nfor.p.in.pathlengths
e2e0 3a 5c 6e 20 20 20 20 69 66 20 70 20 69 6e 20 64 69 73 74 3a 5c 6e 20 20 20 20 20 20 20 20 64 69 :\n....if.p.in.dist:\n........di
e300 73 74 5b 70 5d 20 2b 3d 20 31 5c 6e 20 20 20 20 65 6c 73 65 3a 5c 6e 20 20 20 20 20 20 20 20 64 st[p].+=.1\n....else:\n........d
e320 69 73 74 5b 70 5d 20 3d 20 31 5c 6e 5c 6e 70 72 69 6e 74 28 29 5c 6e 70 72 69 6e 74 28 5c 22 6c ist[p].=.1\n\nprint()\nprint(\"l
e340 65 6e 67 74 68 20 23 70 61 74 68 73 5c 22 29 5c 6e 76 65 72 74 73 20 3d 20 64 69 73 74 2e 6b 65 ength.#paths\")\nverts.=.dist.ke
e360 79 73 28 29 5c 6e 66 6f 72 20 64 20 69 6e 20 73 6f 72 74 65 64 28 76 65 72 74 73 29 3a 5c 6e 20 ys()\nfor.d.in.sorted(verts):\n.
e380 20 20 20 70 72 69 6e 74 28 66 5c 22 7b 64 7d 20 7b 64 69 73 74 5b 64 5d 7d 5c 22 29 5c 6e 5c 6e ...print(f\"{d}.{dist[d]}\")\n\n
e3a0 70 72 69 6e 74 28 66 5c 22 72 61 64 69 75 73 3a 20 7b 6e 78 2e 72 61 64 69 75 73 28 47 29 7d 5c print(f\"radius:.{nx.radius(G)}\
e3c0 22 29 5c 6e 70 72 69 6e 74 28 66 5c 22 64 69 61 6d 65 74 65 72 3a 20 7b 6e 78 2e 64 69 61 6d 65 ")\nprint(f\"diameter:.{nx.diame
e3e0 74 65 72 28 47 29 7d 5c 22 29 5c 6e 70 72 69 6e 74 28 66 5c 22 65 63 63 65 6e 74 72 69 63 69 74 ter(G)}\")\nprint(f\"eccentricit
e400 79 3a 20 7b 6e 78 2e 65 63 63 65 6e 74 72 69 63 69 74 79 28 47 29 7d 5c 22 29 5c 6e 70 72 69 6e y:.{nx.eccentricity(G)}\")\nprin
e420 74 28 66 5c 22 63 65 6e 74 65 72 3a 20 7b 6e 78 2e 63 65 6e 74 65 72 28 47 29 7d 5c 22 29 5c 6e t(f\"center:.{nx.center(G)}\")\n
e440 70 72 69 6e 74 28 66 5c 22 70 65 72 69 70 68 65 72 79 3a 20 7b 6e 78 2e 70 65 72 69 70 68 65 72 print(f\"periphery:.{nx.peripher
e460 79 28 47 29 7d 5c 22 29 5c 6e 70 72 69 6e 74 28 66 5c 22 64 65 6e 73 69 74 79 3a 20 7b 6e 78 2e y(G)}\")\nprint(f\"density:.{nx.
e480 64 65 6e 73 69 74 79 28 47 29 7d 5c 22 29 5c 6e 5c 6e 70 6f 73 20 3d 20 6e 78 2e 73 70 72 69 6e density(G)}\")\n\npos.=.nx.sprin
e4a0 67 5f 6c 61 79 6f 75 74 28 47 2c 20 73 65 65 64 3d 33 30 36 38 29 20 20 23 20 53 65 65 64 20 6c g_layout(G,.seed=3068)..#.Seed.l
e4c0 61 79 6f 75 74 20 66 6f 72 20 72 65 70 72 6f 64 75 63 69 62 69 6c 69 74 79 5c 6e 6e 78 2e 64 72 ayout.for.reproducibility\nnx.dr
e4e0 61 77 28 47 2c 20 70 6f 73 3d 70 6f 73 2c 20 77 69 74 68 5f 6c 61 62 65 6c 73 3d 54 72 75 65 29 aw(G,.pos=pos,.with_labels=True)
e500 5c 6e 70 6c 74 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 \nplt.show()".......].....}...],
e520 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 6c 73 70 65 63 ..."metadata":.{....."kernelspec
e540 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 22 50 79 74 68 ":.{......."display_name":."Pyth
e560 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 79 74 68 6f 6e on.3",......."language":."python
e580 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 20 20 20 20 7d ",......."name":."python3".....}
e5a0 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 20 20 20 20 22 ,....."language_info":.{......."
e5c0 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 20 22 6e 61 6d codemirror_mode":.{........."nam
e5e0 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 73 69 6f 6e 22 e":."ipython",........."version"
e600 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 74 65 6e 73 69 :.3.......},......."file_extensi
e620 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 22 3a 20 22 74 on":.".py",......."mimetype":."t
e640 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 3a 20 22 70 79 ext/x-python",......."name":."py
e660 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 6f 72 74 65 72 thon",......."nbconvert_exporter
e680 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 73 5f 6c 65 78 ":."python",......."pygments_lex
e6a0 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 73 69 6f 6e 22 er":."ipython3",......."version"
e6c0 3a 20 22 33 2e 39 2e 31 36 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 :."3.9.16".....}...},..."nbforma
e6e0 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 0a 7d 50 4b t":.4,..."nbformat_minor":.0.}PK
e700 03 04 14 00 00 00 00 00 03 0f 5a 56 5a b1 7f 6a ce 05 00 00 ce 05 00 00 1b 00 00 00 62 61 73 69 ..........ZVZ..j............basi
e720 63 2f 70 6c 6f 74 5f 72 65 61 64 5f 77 72 69 74 65 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c c/plot_read_write.ipynb{..."cell
e740 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 20 22 s":.[.....{......."cell_type":."
e760 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":.
e780 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":.{.......
e7a0 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.......},...
e7c0 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
e7e0 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 6e 65 ":.[........."%matplotlib.inline
e800 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
e820 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
e840 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":.[...
e860 20 20 20 20 20 20 22 5c 6e 23 20 52 65 61 64 20 61 6e 64 20 77 72 69 74 65 20 67 72 61 70 68 73 ......"\n#.Read.and.write.graphs
e880 2e 5c 6e 5c 6e 52 65 61 64 20 61 6e 64 20 77 72 69 74 65 20 67 72 61 70 68 73 2e 5c 6e 22 0a 20 .\n\nRead.and.write.graphs.\n"..
e8a0 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_
e8c0 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_
e8e0 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":.
e900 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....
e920 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":.[],......
e940 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 72 74 20 6d 61 74 ."source":.[........."import.mat
e960 70 6c 6f 74 6c 69 62 2e 70 79 70 6c 6f 74 20 61 73 20 70 6c 74 5c 6e 69 6d 70 6f 72 74 20 6e 65 plotlib.pyplot.as.plt\nimport.ne
e980 74 77 6f 72 6b 78 20 61 73 20 6e 78 5c 6e 5c 6e 47 20 3d 20 6e 78 2e 67 72 69 64 5f 32 64 5f 67 tworkx.as.nx\n\nG.=.nx.grid_2d_g
e9a0 72 61 70 68 28 35 2c 20 35 29 20 20 23 20 35 78 35 20 67 72 69 64 5c 6e 5c 6e 23 20 70 72 69 6e raph(5,.5)..#.5x5.grid\n\n#.prin
e9c0 74 20 74 68 65 20 61 64 6a 61 63 65 6e 63 79 20 6c 69 73 74 5c 6e 66 6f 72 20 6c 69 6e 65 20 69 t.the.adjacency.list\nfor.line.i
e9e0 6e 20 6e 78 2e 67 65 6e 65 72 61 74 65 5f 61 64 6a 6c 69 73 74 28 47 29 3a 5c 6e 20 20 20 20 70 n.nx.generate_adjlist(G):\n....p
ea00 72 69 6e 74 28 6c 69 6e 65 29 5c 6e 23 20 77 72 69 74 65 20 65 64 67 65 6c 69 73 74 20 74 6f 20 rint(line)\n#.write.edgelist.to.
ea20 67 72 69 64 2e 65 64 67 65 6c 69 73 74 5c 6e 6e 78 2e 77 72 69 74 65 5f 65 64 67 65 6c 69 73 74 grid.edgelist\nnx.write_edgelist
ea40 28 47 2c 20 70 61 74 68 3d 5c 22 67 72 69 64 2e 65 64 67 65 6c 69 73 74 5c 22 2c 20 64 65 6c 69 (G,.path=\"grid.edgelist\",.deli
ea60 6d 69 74 65 72 3d 5c 22 3a 5c 22 29 5c 6e 23 20 72 65 61 64 20 65 64 67 65 6c 69 73 74 20 66 72 miter=\":\")\n#.read.edgelist.fr
ea80 6f 6d 20 67 72 69 64 2e 65 64 67 65 6c 69 73 74 5c 6e 48 20 3d 20 6e 78 2e 72 65 61 64 5f 65 64 om.grid.edgelist\nH.=.nx.read_ed
eaa0 67 65 6c 69 73 74 28 70 61 74 68 3d 5c 22 67 72 69 64 2e 65 64 67 65 6c 69 73 74 5c 22 2c 20 64 gelist(path=\"grid.edgelist\",.d
eac0 65 6c 69 6d 69 74 65 72 3d 5c 22 3a 5c 22 29 5c 6e 5c 6e 70 6f 73 20 3d 20 6e 78 2e 73 70 72 69 elimiter=\":\")\n\npos.=.nx.spri
eae0 6e 67 5f 6c 61 79 6f 75 74 28 48 2c 20 73 65 65 64 3d 32 30 30 29 5c 6e 6e 78 2e 64 72 61 77 28 ng_layout(H,.seed=200)\nnx.draw(
eb00 48 2c 20 70 6f 73 29 5c 6e 70 6c 74 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 H,.pos)\nplt.show()".......]....
eb20 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 72 .}...],..."metadata":.{....."ker
eb40 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 22 nelspec":.{......."display_name"
eb60 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 20 :."Python.3",......."language":.
eb80 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 33 "python",......."name":."python3
eba0 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 0a ".....},....."language_info":.{.
ebc0 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 20 ......"codemirror_mode":.{......
ebe0 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 76 ..."name":."ipython",........."v
ec00 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 5f ersion":.3.......},......."file_
ec20 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 79 extension":.".py",......."mimety
ec40 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 6d pe":."text/x-python",......."nam
ec60 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 65 e":."python",......."nbconvert_e
ec80 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 65 xporter":."python",......."pygme
eca0 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 76 nts_lexer":."ipython3",......."v
ecc0 65 72 73 69 6f 6e 22 3a 20 22 33 2e 39 2e 31 36 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 ersion":."3.9.16".....}...},..."
ece0 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"
ed00 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 03 0f 5a 56 00 53 23 ce f1 09 00 00 f1 09 00 00 1d :.0.}PK..........ZV.S#..........
ed20 00 00 00 62 61 73 69 63 2f 70 6c 6f 74 5f 73 69 6d 70 6c 65 5f 67 72 61 70 68 2e 69 70 79 6e 62 ...basic/plot_simple_graph.ipynb
ed40 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
ed60 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
ed80 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":
eda0 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...
edc0 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":.[],.....
ede0 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
ee00 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".......].....},.....{.
ee20 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",..
ee40 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
ee60 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 53 69 6d 70 6c 65 20 67 72 61 70 68 ce":.[........."\n#.Simple.graph
ee80 5c 6e 5c 6e 44 72 61 77 20 73 69 6d 70 6c 65 20 67 72 61 70 68 20 77 69 74 68 20 6d 61 6e 75 61 \n\nDraw.simple.graph.with.manua
eea0 6c 20 6c 61 79 6f 75 74 2e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 l.layout.\n".......].....},.....
eec0 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",....
eee0 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,.....
ef00 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
ef20 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
ef40 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":.[......
ef60 20 20 20 22 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 6f 72 ..."import.networkx.as.nx\nimpor
ef80 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 70 6c 6f 74 20 61 73 20 70 6c 74 5c 6e 5c 6e 47 20 t.matplotlib.pyplot.as.plt\n\nG.
efa0 3d 20 6e 78 2e 47 72 61 70 68 28 29 5c 6e 47 2e 61 64 64 5f 65 64 67 65 28 31 2c 20 32 29 5c 6e =.nx.Graph()\nG.add_edge(1,.2)\n
efc0 47 2e 61 64 64 5f 65 64 67 65 28 31 2c 20 33 29 5c 6e 47 2e 61 64 64 5f 65 64 67 65 28 31 2c 20 G.add_edge(1,.3)\nG.add_edge(1,.
efe0 35 29 5c 6e 47 2e 61 64 64 5f 65 64 67 65 28 32 2c 20 33 29 5c 6e 47 2e 61 64 64 5f 65 64 67 65 5)\nG.add_edge(2,.3)\nG.add_edge
f000 28 33 2c 20 34 29 5c 6e 47 2e 61 64 64 5f 65 64 67 65 28 34 2c 20 35 29 5c 6e 5c 6e 23 20 65 78 (3,.4)\nG.add_edge(4,.5)\n\n#.ex
f020 70 6c 69 63 69 74 6c 79 20 73 65 74 20 70 6f 73 69 74 69 6f 6e 73 5c 6e 70 6f 73 20 3d 20 7b 31 plicitly.set.positions\npos.=.{1
f040 3a 20 28 30 2c 20 30 29 2c 20 32 3a 20 28 2d 31 2c 20 30 2e 33 29 2c 20 33 3a 20 28 32 2c 20 30 :.(0,.0),.2:.(-1,.0.3),.3:.(2,.0
f060 2e 31 37 29 2c 20 34 3a 20 28 34 2c 20 30 2e 32 35 35 29 2c 20 35 3a 20 28 35 2c 20 30 2e 30 33 .17),.4:.(4,.0.255),.5:.(5,.0.03
f080 29 7d 5c 6e 5c 6e 6f 70 74 69 6f 6e 73 20 3d 20 7b 5c 6e 20 20 20 20 5c 22 66 6f 6e 74 5f 73 69 )}\n\noptions.=.{\n....\"font_si
f0a0 7a 65 5c 22 3a 20 33 36 2c 5c 6e 20 20 20 20 5c 22 6e 6f 64 65 5f 73 69 7a 65 5c 22 3a 20 33 30 ze\":.36,\n....\"node_size\":.30
f0c0 30 30 2c 5c 6e 20 20 20 20 5c 22 6e 6f 64 65 5f 63 6f 6c 6f 72 5c 22 3a 20 5c 22 77 68 69 74 65 00,\n....\"node_color\":.\"white
f0e0 5c 22 2c 5c 6e 20 20 20 20 5c 22 65 64 67 65 63 6f 6c 6f 72 73 5c 22 3a 20 5c 22 62 6c 61 63 6b \",\n....\"edgecolors\":.\"black
f100 5c 22 2c 5c 6e 20 20 20 20 5c 22 6c 69 6e 65 77 69 64 74 68 73 5c 22 3a 20 35 2c 5c 6e 20 20 20 \",\n....\"linewidths\":.5,\n...
f120 20 5c 22 77 69 64 74 68 5c 22 3a 20 35 2c 5c 6e 7d 5c 6e 6e 78 2e 64 72 61 77 5f 6e 65 74 77 6f .\"width\":.5,\n}\nnx.draw_netwo
f140 72 6b 78 28 47 2c 20 70 6f 73 2c 20 2a 2a 6f 70 74 69 6f 6e 73 29 5c 6e 5c 6e 23 20 53 65 74 20 rkx(G,.pos,.**options)\n\n#.Set.
f160 6d 61 72 67 69 6e 73 20 66 6f 72 20 74 68 65 20 61 78 65 73 20 73 6f 20 74 68 61 74 20 6e 6f 64 margins.for.the.axes.so.that.nod
f180 65 73 20 61 72 65 6e 27 74 20 63 6c 69 70 70 65 64 5c 6e 61 78 20 3d 20 70 6c 74 2e 67 63 61 28 es.aren't.clipped\nax.=.plt.gca(
f1a0 29 5c 6e 61 78 2e 6d 61 72 67 69 6e 73 28 30 2e 32 30 29 5c 6e 70 6c 74 2e 61 78 69 73 28 5c 22 )\nax.margins(0.20)\nplt.axis(\"
f1c0 6f 66 66 5c 22 29 5c 6e 70 6c 74 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 off\")\nplt.show()".......].....
f1e0 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
f200 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":.{},...
f220 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 41 20 64 69 72 65 63 ...."source":.[........."A.direc
f240 74 65 64 20 67 72 61 70 68 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 ted.graph\n\n".......].....},...
f260 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",..
f280 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,...
f2a0 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
f2c0 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
f2e0 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":.[....
f300 20 20 20 20 20 22 47 20 3d 20 6e 78 2e 44 69 47 72 61 70 68 28 5b 28 30 2c 20 33 29 2c 20 28 31 ....."G.=.nx.DiGraph([(0,.3),.(1
f320 2c 20 33 29 2c 20 28 32 2c 20 34 29 2c 20 28 33 2c 20 35 29 2c 20 28 33 2c 20 36 29 2c 20 28 34 ,.3),.(2,.4),.(3,.5),.(3,.6),.(4
f340 2c 20 36 29 2c 20 28 35 2c 20 36 29 5d 29 5c 6e 5c 6e 23 20 67 72 6f 75 70 20 6e 6f 64 65 73 20 ,.6),.(5,.6)])\n\n#.group.nodes.
f360 62 79 20 63 6f 6c 75 6d 6e 5c 6e 6c 65 66 74 5f 6e 6f 64 65 73 20 3d 20 5b 30 2c 20 31 2c 20 32 by.column\nleft_nodes.=.[0,.1,.2
f380 5d 5c 6e 6d 69 64 64 6c 65 5f 6e 6f 64 65 73 20 3d 20 5b 33 2c 20 34 5d 5c 6e 72 69 67 68 74 5f ]\nmiddle_nodes.=.[3,.4]\nright_
f3a0 6e 6f 64 65 73 20 3d 20 5b 35 2c 20 36 5d 5c 6e 5c 6e 23 20 73 65 74 20 74 68 65 20 70 6f 73 69 nodes.=.[5,.6]\n\n#.set.the.posi
f3c0 74 69 6f 6e 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 63 6f 6c 75 6d 6e 20 28 78 2d 63 6f 6f 72 tion.according.to.column.(x-coor
f3e0 64 29 5c 6e 70 6f 73 20 3d 20 7b 6e 3a 20 28 30 2c 20 69 29 20 66 6f 72 20 69 2c 20 6e 20 69 6e d)\npos.=.{n:.(0,.i).for.i,.n.in
f400 20 65 6e 75 6d 65 72 61 74 65 28 6c 65 66 74 5f 6e 6f 64 65 73 29 7d 5c 6e 70 6f 73 2e 75 70 64 .enumerate(left_nodes)}\npos.upd
f420 61 74 65 28 7b 6e 3a 20 28 31 2c 20 69 20 2b 20 30 2e 35 29 20 66 6f 72 20 69 2c 20 6e 20 69 6e ate({n:.(1,.i.+.0.5).for.i,.n.in
f440 20 65 6e 75 6d 65 72 61 74 65 28 6d 69 64 64 6c 65 5f 6e 6f 64 65 73 29 7d 29 5c 6e 70 6f 73 2e .enumerate(middle_nodes)})\npos.
f460 75 70 64 61 74 65 28 7b 6e 3a 20 28 32 2c 20 69 20 2b 20 30 2e 35 29 20 66 6f 72 20 69 2c 20 6e update({n:.(2,.i.+.0.5).for.i,.n
f480 20 69 6e 20 65 6e 75 6d 65 72 61 74 65 28 72 69 67 68 74 5f 6e 6f 64 65 73 29 7d 29 5c 6e 5c 6e .in.enumerate(right_nodes)})\n\n
f4a0 6e 78 2e 64 72 61 77 5f 6e 65 74 77 6f 72 6b 78 28 47 2c 20 70 6f 73 2c 20 2a 2a 6f 70 74 69 6f nx.draw_networkx(G,.pos,.**optio
f4c0 6e 73 29 5c 6e 5c 6e 23 20 53 65 74 20 6d 61 72 67 69 6e 73 20 66 6f 72 20 74 68 65 20 61 78 65 ns)\n\n#.Set.margins.for.the.axe
f4e0 73 20 73 6f 20 74 68 61 74 20 6e 6f 64 65 73 20 61 72 65 6e 27 74 20 63 6c 69 70 70 65 64 5c 6e s.so.that.nodes.aren't.clipped\n
f500 61 78 20 3d 20 70 6c 74 2e 67 63 61 28 29 5c 6e 61 78 2e 6d 61 72 67 69 6e 73 28 30 2e 32 30 29 ax.=.plt.gca()\nax.margins(0.20)
f520 5c 6e 70 6c 74 2e 61 78 69 73 28 5c 22 6f 66 66 5c 22 29 5c 6e 70 6c 74 2e 73 68 6f 77 28 29 22 \nplt.axis(\"off\")\nplt.show()"
f540 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 22 .......].....}...],..."metadata"
f560 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 64 :.{....."kernelspec":.{......."d
f580 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 20 isplay_name":."Python.3",.......
f5a0 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 6d "language":."python",......."nam
f5c0 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 61 e":."python3".....},....."langua
f5e0 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 6f ge_info":.{......."codemirror_mo
f600 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 22 de":.{........."name":."ipython"
f620 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 0a ,........."version":.3.......},.
f640 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 20 ......"file_extension":.".py",..
f660 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 22 ....."mimetype":."text/x-python"
f680 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 20 ,......."name":."python",.......
f6a0 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 0a "nbconvert_exporter":."python",.
f6c0 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 6e ......"pygments_lexer":."ipython
f6e0 33 22 2c 0a 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 39 2e 31 36 22 0a 20 20 3",......."version":."3.9.16"...
f700 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
f720 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 07 0f 5a 56 70 ormat_minor":.0.}PK..........ZVp
f740 95 23 55 69 08 00 00 69 08 00 00 21 00 00 00 64 72 61 77 69 6e 67 2f 70 6c 6f 74 5f 77 65 69 67 .#Ui...i...!...drawing/plot_weig
f760 68 74 65 64 5f 67 72 61 70 68 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 22 3a 20 5b 0a 20 hted_graph.ipynb{..."cells":.[..
f780 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",.
f7a0 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,..
f7c0 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
f7e0 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
f800 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":.[...
f820 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"......
f840 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
f860 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":
f880 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":.[........."
f8a0 5c 6e 23 20 57 65 69 67 68 74 65 64 20 47 72 61 70 68 5c 6e 5c 6e 41 6e 20 65 78 61 6d 70 6c 65 \n#.Weighted.Graph\n\nAn.example
f8c0 20 75 73 69 6e 67 20 47 72 61 70 68 20 61 73 20 61 20 77 65 69 67 68 74 65 64 20 6e 65 74 77 6f .using.Graph.as.a.weighted.netwo
f8e0 72 6b 2e 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 rk.\n".......].....},.....{.....
f900 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
f920 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
f940 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
f960 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":.[
f980 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 69 6d ],......."source":.[........."im
f9a0 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 20 70 6c 74 5c 6e 69 port.matplotlib.pyplot.as.plt\ni
f9c0 6d 70 6f 72 74 20 6e 65 74 77 6f 72 6b 78 20 61 73 20 6e 78 5c 6e 5c 6e 47 20 3d 20 6e 78 2e 47 mport.networkx.as.nx\n\nG.=.nx.G
f9e0 72 61 70 68 28 29 5c 6e 5c 6e 47 2e 61 64 64 5f 65 64 67 65 28 5c 22 61 5c 22 2c 20 5c 22 62 5c raph()\n\nG.add_edge(\"a\",.\"b\
fa00 22 2c 20 77 65 69 67 68 74 3d 30 2e 36 29 5c 6e 47 2e 61 64 64 5f 65 64 67 65 28 5c 22 61 5c 22 ",.weight=0.6)\nG.add_edge(\"a\"
fa20 2c 20 5c 22 63 5c 22 2c 20 77 65 69 67 68 74 3d 30 2e 32 29 5c 6e 47 2e 61 64 64 5f 65 64 67 65 ,.\"c\",.weight=0.2)\nG.add_edge
fa40 28 5c 22 63 5c 22 2c 20 5c 22 64 5c 22 2c 20 77 65 69 67 68 74 3d 30 2e 31 29 5c 6e 47 2e 61 64 (\"c\",.\"d\",.weight=0.1)\nG.ad
fa60 64 5f 65 64 67 65 28 5c 22 63 5c 22 2c 20 5c 22 65 5c 22 2c 20 77 65 69 67 68 74 3d 30 2e 37 29 d_edge(\"c\",.\"e\",.weight=0.7)
fa80 5c 6e 47 2e 61 64 64 5f 65 64 67 65 28 5c 22 63 5c 22 2c 20 5c 22 66 5c 22 2c 20 77 65 69 67 68 \nG.add_edge(\"c\",.\"f\",.weigh
faa0 74 3d 30 2e 39 29 5c 6e 47 2e 61 64 64 5f 65 64 67 65 28 5c 22 61 5c 22 2c 20 5c 22 64 5c 22 2c t=0.9)\nG.add_edge(\"a\",.\"d\",
fac0 20 77 65 69 67 68 74 3d 30 2e 33 29 5c 6e 5c 6e 65 6c 61 72 67 65 20 3d 20 5b 28 75 2c 20 76 29 .weight=0.3)\n\nelarge.=.[(u,.v)
fae0 20 66 6f 72 20 28 75 2c 20 76 2c 20 64 29 20 69 6e 20 47 2e 65 64 67 65 73 28 64 61 74 61 3d 54 .for.(u,.v,.d).in.G.edges(data=T
fb00 72 75 65 29 20 69 66 20 64 5b 5c 22 77 65 69 67 68 74 5c 22 5d 20 3e 20 30 2e 35 5d 5c 6e 65 73 rue).if.d[\"weight\"].>.0.5]\nes
fb20 6d 61 6c 6c 20 3d 20 5b 28 75 2c 20 76 29 20 66 6f 72 20 28 75 2c 20 76 2c 20 64 29 20 69 6e 20 mall.=.[(u,.v).for.(u,.v,.d).in.
fb40 47 2e 65 64 67 65 73 28 64 61 74 61 3d 54 72 75 65 29 20 69 66 20 64 5b 5c 22 77 65 69 67 68 74 G.edges(data=True).if.d[\"weight
fb60 5c 22 5d 20 3c 3d 20 30 2e 35 5d 5c 6e 5c 6e 70 6f 73 20 3d 20 6e 78 2e 73 70 72 69 6e 67 5f 6c \"].<=.0.5]\n\npos.=.nx.spring_l
fb80 61 79 6f 75 74 28 47 2c 20 73 65 65 64 3d 37 29 20 20 23 20 70 6f 73 69 74 69 6f 6e 73 20 66 6f ayout(G,.seed=7)..#.positions.fo
fba0 72 20 61 6c 6c 20 6e 6f 64 65 73 20 2d 20 73 65 65 64 20 66 6f 72 20 72 65 70 72 6f 64 75 63 69 r.all.nodes.-.seed.for.reproduci
fbc0 62 69 6c 69 74 79 5c 6e 5c 6e 23 20 6e 6f 64 65 73 5c 6e 6e 78 2e 64 72 61 77 5f 6e 65 74 77 6f bility\n\n#.nodes\nnx.draw_netwo
fbe0 72 6b 78 5f 6e 6f 64 65 73 28 47 2c 20 70 6f 73 2c 20 6e 6f 64 65 5f 73 69 7a 65 3d 37 30 30 29 rkx_nodes(G,.pos,.node_size=700)
fc00 5c 6e 5c 6e 23 20 65 64 67 65 73 5c 6e 6e 78 2e 64 72 61 77 5f 6e 65 74 77 6f 72 6b 78 5f 65 64 \n\n#.edges\nnx.draw_networkx_ed
fc20 67 65 73 28 47 2c 20 70 6f 73 2c 20 65 64 67 65 6c 69 73 74 3d 65 6c 61 72 67 65 2c 20 77 69 64 ges(G,.pos,.edgelist=elarge,.wid
fc40 74 68 3d 36 29 5c 6e 6e 78 2e 64 72 61 77 5f 6e 65 74 77 6f 72 6b 78 5f 65 64 67 65 73 28 5c 6e th=6)\nnx.draw_networkx_edges(\n
fc60 20 20 20 20 47 2c 20 70 6f 73 2c 20 65 64 67 65 6c 69 73 74 3d 65 73 6d 61 6c 6c 2c 20 77 69 64 ....G,.pos,.edgelist=esmall,.wid
fc80 74 68 3d 36 2c 20 61 6c 70 68 61 3d 30 2e 35 2c 20 65 64 67 65 5f 63 6f 6c 6f 72 3d 5c 22 62 5c th=6,.alpha=0.5,.edge_color=\"b\
fca0 22 2c 20 73 74 79 6c 65 3d 5c 22 64 61 73 68 65 64 5c 22 5c 6e 29 5c 6e 5c 6e 23 20 6e 6f 64 65 ",.style=\"dashed\"\n)\n\n#.node
fcc0 20 6c 61 62 65 6c 73 5c 6e 6e 78 2e 64 72 61 77 5f 6e 65 74 77 6f 72 6b 78 5f 6c 61 62 65 6c 73 .labels\nnx.draw_networkx_labels
fce0 28 47 2c 20 70 6f 73 2c 20 66 6f 6e 74 5f 73 69 7a 65 3d 32 30 2c 20 66 6f 6e 74 5f 66 61 6d 69 (G,.pos,.font_size=20,.font_fami
fd00 6c 79 3d 5c 22 73 61 6e 73 2d 73 65 72 69 66 5c 22 29 5c 6e 23 20 65 64 67 65 20 77 65 69 67 68 ly=\"sans-serif\")\n#.edge.weigh
fd20 74 20 6c 61 62 65 6c 73 5c 6e 65 64 67 65 5f 6c 61 62 65 6c 73 20 3d 20 6e 78 2e 67 65 74 5f 65 t.labels\nedge_labels.=.nx.get_e
fd40 64 67 65 5f 61 74 74 72 69 62 75 74 65 73 28 47 2c 20 5c 22 77 65 69 67 68 74 5c 22 29 5c 6e 6e dge_attributes(G,.\"weight\")\nn
fd60 78 2e 64 72 61 77 5f 6e 65 74 77 6f 72 6b 78 5f 65 64 67 65 5f 6c 61 62 65 6c 73 28 47 2c 20 70 x.draw_networkx_edge_labels(G,.p
fd80 6f 73 2c 20 65 64 67 65 5f 6c 61 62 65 6c 73 29 5c 6e 5c 6e 61 78 20 3d 20 70 6c 74 2e 67 63 61 os,.edge_labels)\n\nax.=.plt.gca
fda0 28 29 5c 6e 61 78 2e 6d 61 72 67 69 6e 73 28 30 2e 30 38 29 5c 6e 70 6c 74 2e 61 78 69 73 28 5c ()\nax.margins(0.08)\nplt.axis(\
fdc0 22 6f 66 66 5c 22 29 5c 6e 70 6c 74 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 5c 6e 70 6c 74 "off\")\nplt.tight_layout()\nplt
fde0 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
fe00 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":.{.
fe20 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"
fe40 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",...
fe60 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".....},....
fe80 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
fea0 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":."
fec0 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..
fee0 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":.
ff00 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
ff20 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"
ff40 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
ff60 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":.
ff80 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.
ffa0 39 2e 31 36 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 9.16".....}...},..."nbformat":.4
ffc0 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 00 ,..."nbformat_minor":.0.}PK.....
ffe0 00 00 00 06 0f 5a 56 c6 d0 9c ba c3 04 00 00 c3 04 00 00 1e 00 00 00 64 72 61 77 69 6e 67 2f 70 .....ZV................drawing/p
10000 6c 6f 74 5f 73 69 6d 70 6c 65 5f 70 61 74 68 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 22 lot_simple_path.ipynb{..."cells"
10020 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
10040 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
10060 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":.{.........
10080 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.......},.....
100a0 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":
100c0 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".
100e0 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
10100 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
10120 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":.[.....
10140 20 20 20 20 22 5c 6e 23 20 53 69 6d 70 6c 65 20 50 61 74 68 5c 6e 5c 6e 44 72 61 77 20 61 20 67 ...."\n#.Simple.Path\n\nDraw.a.g
10160 72 61 70 68 20 77 69 74 68 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 5c 6e 22 0a 20 20 20 20 20 20 5d raph.with.matplotlib.\n".......]
10180 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":
101a0 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"
101c0 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":.{.....
101e0 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.......},.
10200 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
10220 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 ce":.[........."import.matplotli
10240 62 2e 70 79 70 6c 6f 74 20 61 73 20 70 6c 74 5c 6e 69 6d 70 6f 72 74 20 6e 65 74 77 6f 72 6b 78 b.pyplot.as.plt\nimport.networkx
10260 20 61 73 20 6e 78 5c 6e 5c 6e 47 20 3d 20 6e 78 2e 70 61 74 68 5f 67 72 61 70 68 28 38 29 5c 6e .as.nx\n\nG.=.nx.path_graph(8)\n
10280 70 6f 73 20 3d 20 6e 78 2e 73 70 72 69 6e 67 5f 6c 61 79 6f 75 74 28 47 2c 20 73 65 65 64 3d 34 pos.=.nx.spring_layout(G,.seed=4
102a0 37 29 20 20 23 20 53 65 65 64 20 6c 61 79 6f 75 74 20 66 6f 72 20 72 65 70 72 6f 64 75 63 69 62 7)..#.Seed.layout.for.reproducib
102c0 69 6c 69 74 79 5c 6e 6e 78 2e 64 72 61 77 28 47 2c 20 70 6f 73 3d 70 6f 73 29 5c 6e 70 6c 74 2e ility\nnx.draw(G,.pos=pos)\nplt.
102e0 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 65 show()".......].....}...],..."me
10300 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 20 tadata":.{....."kernelspec":.{..
10320 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 2c ....."display_name":."Python.3",
10340 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 20 ......."language":."python",....
10360 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 20 ..."name":."python3".....},.....
10380 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 69 "language_info":.{......."codemi
103a0 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 69 rror_mode":.{........."name":."i
103c0 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 20 python",........."version":.3...
103e0 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 22 ....},......."file_extension":."
10400 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 2d .py",......."mimetype":."text/x-
10420 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 2c python",......."name":."python",
10440 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 79 ......."nbconvert_exporter":."py
10460 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 22 thon",......."pygments_lexer":."
10480 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 39 ipython3",......."version":."3.9
104a0 2e 31 36 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 .16".....}...},..."nbformat":.4,
104c0 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......
104e0 00 00 04 0f 5a 56 f1 b3 3b 79 85 0c 00 00 85 0c 00 00 24 00 00 00 64 72 61 77 69 6e 67 2f 70 6c ....ZV..;y........$...drawing/pl
10500 6f 74 5f 63 75 73 74 6f 6d 5f 6e 6f 64 65 5f 69 63 6f 6e 73 2e 69 70 79 6e 62 7b 0a 20 20 22 63 ot_custom_node_icons.ipynb{..."c
10520 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"
10540 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
10560 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":.{....
10580 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.......},
105a0 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
105c0 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
105e0 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".......].....},.....{.......
10600 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",......."
10620 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":.[
10640 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 43 75 73 74 6f 6d 20 6e 6f 64 65 20 69 63 6f 6e 73 5c ........."\n#.Custom.node.icons\
10660 6e 5c 6e 45 78 61 6d 70 6c 65 20 6f 66 20 75 73 69 6e 67 20 63 75 73 74 6f 6d 20 69 63 6f 6e 73 n\nExample.of.using.custom.icons
10680 20 74 6f 20 72 65 70 72 65 73 65 6e 74 20 6e 6f 64 65 73 20 77 69 74 68 20 6d 61 74 70 6c 6f 74 .to.represent.nodes.with.matplot
106a0 6c 69 62 2e 5c 6e 5c 6e 49 6d 61 67 65 73 20 66 6f 72 20 6e 6f 64 65 20 69 63 6f 6e 73 20 63 6f lib.\n\nImages.for.node.icons.co
106c0 75 72 74 65 73 79 20 6f 66 20 77 77 77 2e 6d 61 74 65 72 69 61 6c 75 69 2e 63 6f 5c 6e 22 0a 20 urtesy.of.www.materialui.co\n"..
106e0 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_
10700 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_
10720 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":.
10740 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....
10760 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":.[],......
10780 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 72 74 20 6d 61 74 ."source":.[........."import.mat
107a0 70 6c 6f 74 6c 69 62 2e 70 79 70 6c 6f 74 20 61 73 20 70 6c 74 5c 6e 69 6d 70 6f 72 74 20 6e 65 plotlib.pyplot.as.plt\nimport.ne
107c0 74 77 6f 72 6b 78 20 61 73 20 6e 78 5c 6e 69 6d 70 6f 72 74 20 50 49 4c 5c 6e 5c 6e 23 20 49 6d tworkx.as.nx\nimport.PIL\n\n#.Im
107e0 61 67 65 20 55 52 4c 73 20 66 6f 72 20 67 72 61 70 68 20 6e 6f 64 65 73 5c 6e 69 63 6f 6e 73 20 age.URLs.for.graph.nodes\nicons.
10800 3d 20 7b 5c 6e 20 20 20 20 5c 22 72 6f 75 74 65 72 5c 22 3a 20 5c 22 69 63 6f 6e 73 2f 72 6f 75 =.{\n....\"router\":.\"icons/rou
10820 74 65 72 5f 62 6c 61 63 6b 5f 31 34 34 78 31 34 34 2e 70 6e 67 5c 22 2c 5c 6e 20 20 20 20 5c 22 ter_black_144x144.png\",\n....\"
10840 73 77 69 74 63 68 5c 22 3a 20 5c 22 69 63 6f 6e 73 2f 73 77 69 74 63 68 5f 62 6c 61 63 6b 5f 31 switch\":.\"icons/switch_black_1
10860 34 34 78 31 34 34 2e 70 6e 67 5c 22 2c 5c 6e 20 20 20 20 5c 22 50 43 5c 22 3a 20 5c 22 69 63 6f 44x144.png\",\n....\"PC\":.\"ico
10880 6e 73 2f 63 6f 6d 70 75 74 65 72 5f 62 6c 61 63 6b 5f 31 34 34 78 31 34 34 2e 70 6e 67 5c 22 2c ns/computer_black_144x144.png\",
108a0 5c 6e 7d 5c 6e 5c 6e 23 20 4c 6f 61 64 20 69 6d 61 67 65 73 5c 6e 69 6d 61 67 65 73 20 3d 20 7b \n}\n\n#.Load.images\nimages.=.{
108c0 6b 3a 20 50 49 4c 2e 49 6d 61 67 65 2e 6f 70 65 6e 28 66 6e 61 6d 65 29 20 66 6f 72 20 6b 2c 20 k:.PIL.Image.open(fname).for.k,.
108e0 66 6e 61 6d 65 20 69 6e 20 69 63 6f 6e 73 2e 69 74 65 6d 73 28 29 7d 5c 6e 5c 6e 23 20 47 65 6e fname.in.icons.items()}\n\n#.Gen
10900 65 72 61 74 65 20 74 68 65 20 63 6f 6d 70 75 74 65 72 20 6e 65 74 77 6f 72 6b 20 67 72 61 70 68 erate.the.computer.network.graph
10920 5c 6e 47 20 3d 20 6e 78 2e 47 72 61 70 68 28 29 5c 6e 5c 6e 47 2e 61 64 64 5f 6e 6f 64 65 28 5c \nG.=.nx.Graph()\n\nG.add_node(\
10940 22 72 6f 75 74 65 72 5c 22 2c 20 69 6d 61 67 65 3d 69 6d 61 67 65 73 5b 5c 22 72 6f 75 74 65 72 "router\",.image=images[\"router
10960 5c 22 5d 29 5c 6e 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 65 28 31 2c 20 34 29 3a 5c 6e 20 20 20 \"])\nfor.i.in.range(1,.4):\n...
10980 20 47 2e 61 64 64 5f 6e 6f 64 65 28 66 5c 22 73 77 69 74 63 68 5f 7b 69 7d 5c 22 2c 20 69 6d 61 .G.add_node(f\"switch_{i}\",.ima
109a0 67 65 3d 69 6d 61 67 65 73 5b 5c 22 73 77 69 74 63 68 5c 22 5d 29 5c 6e 20 20 20 20 66 6f 72 20 ge=images[\"switch\"])\n....for.
109c0 6a 20 69 6e 20 72 61 6e 67 65 28 31 2c 20 34 29 3a 5c 6e 20 20 20 20 20 20 20 20 47 2e 61 64 64 j.in.range(1,.4):\n........G.add
109e0 5f 6e 6f 64 65 28 5c 22 50 43 5f 5c 22 20 2b 20 73 74 72 28 69 29 20 2b 20 5c 22 5f 5c 22 20 2b _node(\"PC_\".+.str(i).+.\"_\".+
10a00 20 73 74 72 28 6a 29 2c 20 69 6d 61 67 65 3d 69 6d 61 67 65 73 5b 5c 22 50 43 5c 22 5d 29 5c 6e .str(j),.image=images[\"PC\"])\n
10a20 5c 6e 47 2e 61 64 64 5f 65 64 67 65 28 5c 22 72 6f 75 74 65 72 5c 22 2c 20 5c 22 73 77 69 74 63 \nG.add_edge(\"router\",.\"switc
10a40 68 5f 31 5c 22 29 5c 6e 47 2e 61 64 64 5f 65 64 67 65 28 5c 22 72 6f 75 74 65 72 5c 22 2c 20 5c h_1\")\nG.add_edge(\"router\",.\
10a60 22 73 77 69 74 63 68 5f 32 5c 22 29 5c 6e 47 2e 61 64 64 5f 65 64 67 65 28 5c 22 72 6f 75 74 65 "switch_2\")\nG.add_edge(\"route
10a80 72 5c 22 2c 20 5c 22 73 77 69 74 63 68 5f 33 5c 22 29 5c 6e 66 6f 72 20 75 20 69 6e 20 72 61 6e r\",.\"switch_3\")\nfor.u.in.ran
10aa0 67 65 28 31 2c 20 34 29 3a 5c 6e 20 20 20 20 66 6f 72 20 76 20 69 6e 20 72 61 6e 67 65 28 31 2c ge(1,.4):\n....for.v.in.range(1,
10ac0 20 34 29 3a 5c 6e 20 20 20 20 20 20 20 20 47 2e 61 64 64 5f 65 64 67 65 28 5c 22 73 77 69 74 63 .4):\n........G.add_edge(\"switc
10ae0 68 5f 5c 22 20 2b 20 73 74 72 28 75 29 2c 20 5c 22 50 43 5f 5c 22 20 2b 20 73 74 72 28 75 29 20 h_\".+.str(u),.\"PC_\".+.str(u).
10b00 2b 20 5c 22 5f 5c 22 20 2b 20 73 74 72 28 76 29 29 5c 6e 5c 6e 23 20 47 65 74 20 61 20 72 65 70 +.\"_\".+.str(v))\n\n#.Get.a.rep
10b20 72 6f 64 75 63 69 62 6c 65 20 6c 61 79 6f 75 74 20 61 6e 64 20 63 72 65 61 74 65 20 66 69 67 75 roducible.layout.and.create.figu
10b40 72 65 5c 6e 70 6f 73 20 3d 20 6e 78 2e 73 70 72 69 6e 67 5f 6c 61 79 6f 75 74 28 47 2c 20 73 65 re\npos.=.nx.spring_layout(G,.se
10b60 65 64 3d 31 37 33 34 32 38 39 32 33 30 29 5c 6e 66 69 67 2c 20 61 78 20 3d 20 70 6c 74 2e 73 75 ed=1734289230)\nfig,.ax.=.plt.su
10b80 62 70 6c 6f 74 73 28 29 5c 6e 5c 6e 23 20 4e 6f 74 65 3a 20 74 68 65 20 6d 69 6e 5f 73 6f 75 72 bplots()\n\n#.Note:.the.min_sour
10ba0 63 65 2f 74 61 72 67 65 74 5f 6d 61 72 67 69 6e 20 6b 77 61 72 67 73 20 6f 6e 6c 79 20 77 6f 72 ce/target_margin.kwargs.only.wor
10bc0 6b 20 77 69 74 68 20 46 61 6e 63 79 41 72 72 6f 77 50 61 74 63 68 20 6f 62 6a 65 63 74 73 2e 5c k.with.FancyArrowPatch.objects.\
10be0 6e 23 20 46 6f 72 63 65 20 74 68 65 20 75 73 65 20 6f 66 20 46 61 6e 63 79 41 72 72 6f 77 50 61 n#.Force.the.use.of.FancyArrowPa
10c00 74 63 68 20 66 6f 72 20 65 64 67 65 20 64 72 61 77 69 6e 67 20 62 79 20 73 65 74 74 69 6e 67 20 tch.for.edge.drawing.by.setting.
10c20 60 61 72 72 6f 77 73 3d 54 72 75 65 60 2c 5c 6e 23 20 62 75 74 20 73 75 70 70 72 65 73 73 20 61 `arrows=True`,\n#.but.suppress.a
10c40 72 72 6f 77 68 65 61 64 73 20 77 69 74 68 20 60 61 72 72 6f 77 73 74 79 6c 65 3d 5c 22 2d 5c 22 rrowheads.with.`arrowstyle=\"-\"
10c60 60 5c 6e 6e 78 2e 64 72 61 77 5f 6e 65 74 77 6f 72 6b 78 5f 65 64 67 65 73 28 5c 6e 20 20 20 20 `\nnx.draw_networkx_edges(\n....
10c80 47 2c 5c 6e 20 20 20 20 70 6f 73 3d 70 6f 73 2c 5c 6e 20 20 20 20 61 78 3d 61 78 2c 5c 6e 20 20 G,\n....pos=pos,\n....ax=ax,\n..
10ca0 20 20 61 72 72 6f 77 73 3d 54 72 75 65 2c 5c 6e 20 20 20 20 61 72 72 6f 77 73 74 79 6c 65 3d 5c ..arrows=True,\n....arrowstyle=\
10cc0 22 2d 5c 22 2c 5c 6e 20 20 20 20 6d 69 6e 5f 73 6f 75 72 63 65 5f 6d 61 72 67 69 6e 3d 31 35 2c "-\",\n....min_source_margin=15,
10ce0 5c 6e 20 20 20 20 6d 69 6e 5f 74 61 72 67 65 74 5f 6d 61 72 67 69 6e 3d 31 35 2c 5c 6e 29 5c 6e \n....min_target_margin=15,\n)\n
10d00 5c 6e 23 20 54 72 61 6e 73 66 6f 72 6d 20 66 72 6f 6d 20 64 61 74 61 20 63 6f 6f 72 64 69 6e 61 \n#.Transform.from.data.coordina
10d20 74 65 73 20 28 73 63 61 6c 65 64 20 62 65 74 77 65 65 6e 20 78 6c 69 6d 20 61 6e 64 20 79 6c 69 tes.(scaled.between.xlim.and.yli
10d40 6d 29 20 74 6f 20 64 69 73 70 6c 61 79 20 63 6f 6f 72 64 69 6e 61 74 65 73 5c 6e 74 72 5f 66 69 m).to.display.coordinates\ntr_fi
10d60 67 75 72 65 20 3d 20 61 78 2e 74 72 61 6e 73 44 61 74 61 2e 74 72 61 6e 73 66 6f 72 6d 5c 6e 23 gure.=.ax.transData.transform\n#
10d80 20 54 72 61 6e 73 66 6f 72 6d 20 66 72 6f 6d 20 64 69 73 70 6c 61 79 20 74 6f 20 66 69 67 75 72 .Transform.from.display.to.figur
10da0 65 20 63 6f 6f 72 64 69 6e 61 74 65 73 5c 6e 74 72 5f 61 78 65 73 20 3d 20 66 69 67 2e 74 72 61 e.coordinates\ntr_axes.=.fig.tra
10dc0 6e 73 46 69 67 75 72 65 2e 69 6e 76 65 72 74 65 64 28 29 2e 74 72 61 6e 73 66 6f 72 6d 5c 6e 5c nsFigure.inverted().transform\n\
10de0 6e 23 20 53 65 6c 65 63 74 20 74 68 65 20 73 69 7a 65 20 6f 66 20 74 68 65 20 69 6d 61 67 65 20 n#.Select.the.size.of.the.image.
10e00 28 72 65 6c 61 74 69 76 65 20 74 6f 20 74 68 65 20 58 20 61 78 69 73 29 5c 6e 69 63 6f 6e 5f 73 (relative.to.the.X.axis)\nicon_s
10e20 69 7a 65 20 3d 20 28 61 78 2e 67 65 74 5f 78 6c 69 6d 28 29 5b 31 5d 20 2d 20 61 78 2e 67 65 74 ize.=.(ax.get_xlim()[1].-.ax.get
10e40 5f 78 6c 69 6d 28 29 5b 30 5d 29 20 2a 20 30 2e 30 32 35 5c 6e 69 63 6f 6e 5f 63 65 6e 74 65 72 _xlim()[0]).*.0.025\nicon_center
10e60 20 3d 20 69 63 6f 6e 5f 73 69 7a 65 20 2f 20 32 2e 30 5c 6e 5c 6e 23 20 41 64 64 20 74 68 65 20 .=.icon_size./.2.0\n\n#.Add.the.
10e80 72 65 73 70 65 63 74 69 76 65 20 69 6d 61 67 65 20 74 6f 20 65 61 63 68 20 6e 6f 64 65 5c 6e 66 respective.image.to.each.node\nf
10ea0 6f 72 20 6e 20 69 6e 20 47 2e 6e 6f 64 65 73 3a 5c 6e 20 20 20 20 78 66 2c 20 79 66 20 3d 20 74 or.n.in.G.nodes:\n....xf,.yf.=.t
10ec0 72 5f 66 69 67 75 72 65 28 70 6f 73 5b 6e 5d 29 5c 6e 20 20 20 20 78 61 2c 20 79 61 20 3d 20 74 r_figure(pos[n])\n....xa,.ya.=.t
10ee0 72 5f 61 78 65 73 28 28 78 66 2c 20 79 66 29 29 5c 6e 20 20 20 20 23 20 67 65 74 20 6f 76 65 72 r_axes((xf,.yf))\n....#.get.over
10f00 6c 61 70 70 65 64 20 61 78 65 73 20 61 6e 64 20 70 6c 6f 74 20 69 63 6f 6e 5c 6e 20 20 20 20 61 lapped.axes.and.plot.icon\n....a
10f20 20 3d 20 70 6c 74 2e 61 78 65 73 28 5b 78 61 20 2d 20 69 63 6f 6e 5f 63 65 6e 74 65 72 2c 20 79 .=.plt.axes([xa.-.icon_center,.y
10f40 61 20 2d 20 69 63 6f 6e 5f 63 65 6e 74 65 72 2c 20 69 63 6f 6e 5f 73 69 7a 65 2c 20 69 63 6f 6e a.-.icon_center,.icon_size,.icon
10f60 5f 73 69 7a 65 5d 29 5c 6e 20 20 20 20 61 2e 69 6d 73 68 6f 77 28 47 2e 6e 6f 64 65 73 5b 6e 5d _size])\n....a.imshow(G.nodes[n]
10f80 5b 5c 22 69 6d 61 67 65 5c 22 5d 29 5c 6e 20 20 20 20 61 2e 61 78 69 73 28 5c 22 6f 66 66 5c 22 [\"image\"])\n....a.axis(\"off\"
10fa0 29 5c 6e 70 6c 74 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 )\nplt.show()".......].....}...]
10fc0 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 6c 73 70 65 ,..."metadata":.{....."kernelspe
10fe0 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 22 50 79 74 c":.{......."display_name":."Pyt
11000 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 79 74 68 6f hon.3",......."language":."pytho
11020 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 20 20 20 20 n",......."name":."python3".....
11040 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 20 20 20 20 },....."language_info":.{.......
11060 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 20 22 6e 61 "codemirror_mode":.{........."na
11080 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 73 69 6f 6e me":."ipython",........."version
110a0 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 74 65 6e 73 ":.3.......},......."file_extens
110c0 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 22 3a 20 22 ion":.".py",......."mimetype":."
110e0 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 3a 20 22 70 text/x-python",......."name":."p
11100 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 6f 72 74 65 ython",......."nbconvert_exporte
11120 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 73 5f 6c 65 r":."python",......."pygments_le
11140 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 73 69 6f 6e xer":."ipython3",......."version
11160 22 3a 20 22 33 2e 39 2e 31 36 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 6e 62 66 6f 72 6d ":."3.9.16".....}...},..."nbform
11180 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 0a 7d 50 at":.4,..."nbformat_minor":.0.}P
111a0 4b 03 04 14 00 00 00 00 00 04 0f 5a 56 f5 4d d4 8c 3e 08 00 00 3e 08 00 00 1b 00 00 00 64 72 61 K..........ZV.M..>...>.......dra
111c0 77 69 6e 67 2f 70 6c 6f 74 5f 64 69 72 65 63 74 65 64 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c wing/plot_directed.ipynb{..."cel
111e0 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 20 ls":.[.....{......."cell_type":.
11200 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":
11220 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":.{......
11240 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.......},..
11260 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
11280 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 6e e":.[........."%matplotlib.inlin
112a0 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 63 e".......].....},.....{......."c
112c0 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
112e0 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":.[..
11300 20 20 20 20 20 20 20 22 5c 6e 23 20 44 69 72 65 63 74 65 64 20 47 72 61 70 68 5c 6e 5c 6e 44 72 ......."\n#.Directed.Graph\n\nDr
11320 61 77 20 61 20 67 72 61 70 68 20 77 69 74 68 20 64 69 72 65 63 74 65 64 20 65 64 67 65 73 20 75 aw.a.graph.with.directed.edges.u
11340 73 69 6e 67 20 61 20 63 6f 6c 6f 72 6d 61 70 20 61 6e 64 20 64 69 66 66 65 72 65 6e 74 20 6e 6f sing.a.colormap.and.different.no
11360 64 65 20 73 69 7a 65 73 2e 5c 6e 5c 6e 45 64 67 65 73 20 68 61 76 65 20 64 69 66 66 65 72 65 6e de.sizes.\n\nEdges.have.differen
11380 74 20 63 6f 6c 6f 72 73 20 61 6e 64 20 61 6c 70 68 61 73 20 28 6f 70 61 63 69 74 79 29 2e 20 44 t.colors.and.alphas.(opacity)..D
113a0 72 61 77 6e 20 75 73 69 6e 67 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 5c 6e 22 0a 20 20 20 20 20 20 rawn.using.matplotlib.\n".......
113c0 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"
113e0 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
11400 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":.{....
11420 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.......},
11440 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
11460 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c rce":.[........."import.matplotl
11480 69 62 20 61 73 20 6d 70 6c 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 70 ib.as.mpl\nimport.matplotlib.pyp
114a0 6c 6f 74 20 61 73 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 lot.as.plt\nimport.networkx.as.n
114c0 78 5c 6e 5c 6e 73 65 65 64 20 3d 20 31 33 36 34 38 20 20 23 20 53 65 65 64 20 72 61 6e 64 6f 6d x\n\nseed.=.13648..#.Seed.random
114e0 20 6e 75 6d 62 65 72 20 67 65 6e 65 72 61 74 6f 72 73 20 66 6f 72 20 72 65 70 72 6f 64 75 63 69 .number.generators.for.reproduci
11500 62 69 6c 69 74 79 5c 6e 47 20 3d 20 6e 78 2e 72 61 6e 64 6f 6d 5f 6b 5f 6f 75 74 5f 67 72 61 70 bility\nG.=.nx.random_k_out_grap
11520 68 28 31 30 2c 20 33 2c 20 30 2e 35 2c 20 73 65 65 64 3d 73 65 65 64 29 5c 6e 70 6f 73 20 3d 20 h(10,.3,.0.5,.seed=seed)\npos.=.
11540 6e 78 2e 73 70 72 69 6e 67 5f 6c 61 79 6f 75 74 28 47 2c 20 73 65 65 64 3d 73 65 65 64 29 5c 6e nx.spring_layout(G,.seed=seed)\n
11560 5c 6e 6e 6f 64 65 5f 73 69 7a 65 73 20 3d 20 5b 33 20 2b 20 31 30 20 2a 20 69 20 66 6f 72 20 69 \nnode_sizes.=.[3.+.10.*.i.for.i
11580 20 69 6e 20 72 61 6e 67 65 28 6c 65 6e 28 47 29 29 5d 5c 6e 4d 20 3d 20 47 2e 6e 75 6d 62 65 72 .in.range(len(G))]\nM.=.G.number
115a0 5f 6f 66 5f 65 64 67 65 73 28 29 5c 6e 65 64 67 65 5f 63 6f 6c 6f 72 73 20 3d 20 72 61 6e 67 65 _of_edges()\nedge_colors.=.range
115c0 28 32 2c 20 4d 20 2b 20 32 29 5c 6e 65 64 67 65 5f 61 6c 70 68 61 73 20 3d 20 5b 28 35 20 2b 20 (2,.M.+.2)\nedge_alphas.=.[(5.+.
115e0 69 29 20 2f 20 28 4d 20 2b 20 34 29 20 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 65 28 4d 29 5d 5c i)./.(M.+.4).for.i.in.range(M)]\
11600 6e 63 6d 61 70 20 3d 20 70 6c 74 2e 63 6d 2e 70 6c 61 73 6d 61 5c 6e 5c 6e 6e 6f 64 65 73 20 3d ncmap.=.plt.cm.plasma\n\nnodes.=
11620 20 6e 78 2e 64 72 61 77 5f 6e 65 74 77 6f 72 6b 78 5f 6e 6f 64 65 73 28 47 2c 20 70 6f 73 2c 20 .nx.draw_networkx_nodes(G,.pos,.
11640 6e 6f 64 65 5f 73 69 7a 65 3d 6e 6f 64 65 5f 73 69 7a 65 73 2c 20 6e 6f 64 65 5f 63 6f 6c 6f 72 node_size=node_sizes,.node_color
11660 3d 5c 22 69 6e 64 69 67 6f 5c 22 29 5c 6e 65 64 67 65 73 20 3d 20 6e 78 2e 64 72 61 77 5f 6e 65 =\"indigo\")\nedges.=.nx.draw_ne
11680 74 77 6f 72 6b 78 5f 65 64 67 65 73 28 5c 6e 20 20 20 20 47 2c 5c 6e 20 20 20 20 70 6f 73 2c 5c tworkx_edges(\n....G,\n....pos,\
116a0 6e 20 20 20 20 6e 6f 64 65 5f 73 69 7a 65 3d 6e 6f 64 65 5f 73 69 7a 65 73 2c 5c 6e 20 20 20 20 n....node_size=node_sizes,\n....
116c0 61 72 72 6f 77 73 74 79 6c 65 3d 5c 22 2d 3e 5c 22 2c 5c 6e 20 20 20 20 61 72 72 6f 77 73 69 7a arrowstyle=\"->\",\n....arrowsiz
116e0 65 3d 31 30 2c 5c 6e 20 20 20 20 65 64 67 65 5f 63 6f 6c 6f 72 3d 65 64 67 65 5f 63 6f 6c 6f 72 e=10,\n....edge_color=edge_color
11700 73 2c 5c 6e 20 20 20 20 65 64 67 65 5f 63 6d 61 70 3d 63 6d 61 70 2c 5c 6e 20 20 20 20 77 69 64 s,\n....edge_cmap=cmap,\n....wid
11720 74 68 3d 32 2c 5c 6e 29 5c 6e 23 20 73 65 74 20 61 6c 70 68 61 20 76 61 6c 75 65 20 66 6f 72 20 th=2,\n)\n#.set.alpha.value.for.
11740 65 61 63 68 20 65 64 67 65 5c 6e 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 65 28 4d 29 3a 5c 6e 20 each.edge\nfor.i.in.range(M):\n.
11760 20 20 20 65 64 67 65 73 5b 69 5d 2e 73 65 74 5f 61 6c 70 68 61 28 65 64 67 65 5f 61 6c 70 68 61 ...edges[i].set_alpha(edge_alpha
11780 73 5b 69 5d 29 5c 6e 5c 6e 70 63 20 3d 20 6d 70 6c 2e 63 6f 6c 6c 65 63 74 69 6f 6e 73 2e 50 61 s[i])\n\npc.=.mpl.collections.Pa
117a0 74 63 68 43 6f 6c 6c 65 63 74 69 6f 6e 28 65 64 67 65 73 2c 20 63 6d 61 70 3d 63 6d 61 70 29 5c tchCollection(edges,.cmap=cmap)\
117c0 6e 70 63 2e 73 65 74 5f 61 72 72 61 79 28 65 64 67 65 5f 63 6f 6c 6f 72 73 29 5c 6e 5c 6e 61 78 npc.set_array(edge_colors)\n\nax
117e0 20 3d 20 70 6c 74 2e 67 63 61 28 29 5c 6e 61 78 2e 73 65 74 5f 61 78 69 73 5f 6f 66 66 28 29 5c .=.plt.gca()\nax.set_axis_off()\
11800 6e 70 6c 74 2e 63 6f 6c 6f 72 62 61 72 28 70 63 2c 20 61 78 3d 61 78 29 5c 6e 70 6c 74 2e 73 68 nplt.colorbar(pc,.ax=ax)\nplt.sh
11820 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 61 ow()".......].....}...],..."meta
11840 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 20 data":.{....."kernelspec":.{....
11860 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 20 ..."display_name":."Python.3",..
11880 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 20 ....."language":."python",......
118a0 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 6c ."name":."python3".....},....."l
118c0 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 72 anguage_info":.{......."codemirr
118e0 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 79 or_mode":.{........."name":."ipy
11900 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 20 thon",........."version":.3.....
11920 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 70 ..},......."file_extension":.".p
11940 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 79 y",......."mimetype":."text/x-py
11960 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 20 thon",......."name":."python",..
11980 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 68 ....."nbconvert_exporter":."pyth
119a0 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 70 on",......."pygments_lexer":."ip
119c0 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 39 2e 31 ython3",......."version":."3.9.1
119e0 36 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 6".....}...},..."nbformat":.4,..
11a00 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........
11a20 06 0f 5a 56 9b 1b 04 36 ec 08 00 00 ec 08 00 00 16 00 00 00 64 72 61 77 69 6e 67 2f 70 6c 6f 74 ..ZV...6............drawing/plot
11a40 5f 74 73 70 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 _tsp.ipynb{..."cells":.[.....{..
11a60 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",.......
11a80 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,......."
11aa0 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"
11ac0 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"
11ae0 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":.[.........
11b00 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 20 20 20 "%matplotlib.inline".......]....
11b20 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
11b40 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":.{},..
11b60 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 20 54 72 ....."source":.[........."\n#.Tr
11b80 61 76 65 6c 69 6e 67 20 53 61 6c 65 73 6d 61 6e 20 50 72 6f 62 6c 65 6d 5c 6e 5c 6e 54 68 69 73 aveling.Salesman.Problem\n\nThis
11ba0 20 69 73 20 61 6e 20 65 78 61 6d 70 6c 65 20 6f 66 20 61 20 64 72 61 77 69 6e 67 20 73 6f 6c 75 .is.an.example.of.a.drawing.solu
11bc0 74 69 6f 6e 20 6f 66 20 74 68 65 20 74 72 61 76 65 6c 69 6e 67 20 73 61 6c 65 73 6d 61 6e 20 70 tion.of.the.traveling.salesman.p
11be0 72 6f 62 6c 65 6d 5c 6e 5c 6e 54 68 65 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 75 73 65 64 20 74 roblem\n\nThe.function.is.used.t
11c00 6f 20 70 72 6f 64 75 63 65 20 74 68 65 20 73 6f 6c 75 74 69 6f 6e 20 69 73 20 63 68 72 69 73 74 o.produce.the.solution.is.christ
11c20 6f 66 69 64 65 73 2c 5c 6e 77 68 65 72 65 20 67 69 76 65 6e 20 61 20 73 65 74 20 6f 66 20 6e 6f ofides,\nwhere.given.a.set.of.no
11c40 64 65 73 2c 20 69 74 20 63 61 6c 63 75 6c 61 74 65 73 20 74 68 65 20 72 6f 75 74 65 20 6f 66 20 des,.it.calculates.the.route.of.
11c60 74 68 65 20 6e 6f 64 65 73 5c 6e 74 68 61 74 20 74 68 65 20 74 72 61 76 65 6c 65 72 20 68 61 73 the.nodes\nthat.the.traveler.has
11c80 20 74 6f 20 66 6f 6c 6c 6f 77 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 6d 69 6e 69 6d 69 7a 65 20 .to.follow.in.order.to.minimize.
11ca0 74 68 65 20 74 6f 74 61 6c 20 63 6f 73 74 2e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d the.total.cost.\n".......].....}
11cc0 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
11ce0 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
11d00 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
11d20 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.......},.......
11d40 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":.[
11d60 0a 20 20 20 20 20 20 20 20 22 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 70 6c ........."import.matplotlib.pypl
11d80 6f 74 20 61 73 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 ot.as.plt\nimport.networkx.as.nx
11da0 5c 6e 69 6d 70 6f 72 74 20 6e 65 74 77 6f 72 6b 78 2e 61 6c 67 6f 72 69 74 68 6d 73 2e 61 70 70 \nimport.networkx.algorithms.app
11dc0 72 6f 78 69 6d 61 74 69 6f 6e 20 61 73 20 6e 78 5f 61 70 70 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 roximation.as.nx_app\nimport.mat
11de0 68 5c 6e 5c 6e 47 20 3d 20 6e 78 2e 72 61 6e 64 6f 6d 5f 67 65 6f 6d 65 74 72 69 63 5f 67 72 61 h\n\nG.=.nx.random_geometric_gra
11e00 70 68 28 32 30 2c 20 72 61 64 69 75 73 3d 30 2e 34 2c 20 73 65 65 64 3d 33 29 5c 6e 70 6f 73 20 ph(20,.radius=0.4,.seed=3)\npos.
11e20 3d 20 6e 78 2e 67 65 74 5f 6e 6f 64 65 5f 61 74 74 72 69 62 75 74 65 73 28 47 2c 20 5c 22 70 6f =.nx.get_node_attributes(G,.\"po
11e40 73 5c 22 29 5c 6e 5c 6e 23 20 44 65 70 6f 74 20 73 68 6f 75 6c 64 20 62 65 20 61 74 20 28 30 2c s\")\n\n#.Depot.should.be.at.(0,
11e60 30 29 5c 6e 70 6f 73 5b 30 5d 20 3d 20 28 30 2e 35 2c 20 30 2e 35 29 5c 6e 5c 6e 48 20 3d 20 47 0)\npos[0].=.(0.5,.0.5)\n\nH.=.G
11e80 2e 63 6f 70 79 28 29 5c 6e 5c 6e 5c 6e 23 20 43 61 6c 63 75 6c 61 74 69 6e 67 20 74 68 65 20 64 .copy()\n\n\n#.Calculating.the.d
11ea0 69 73 74 61 6e 63 65 73 20 62 65 74 77 65 65 6e 20 74 68 65 20 6e 6f 64 65 73 20 61 73 20 65 64 istances.between.the.nodes.as.ed
11ec0 67 65 27 73 20 77 65 69 67 68 74 2e 5c 6e 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 65 28 6c 65 6e ge's.weight.\nfor.i.in.range(len
11ee0 28 70 6f 73 29 29 3a 5c 6e 20 20 20 20 66 6f 72 20 6a 20 69 6e 20 72 61 6e 67 65 28 69 20 2b 20 (pos)):\n....for.j.in.range(i.+.
11f00 31 2c 20 6c 65 6e 28 70 6f 73 29 29 3a 5c 6e 20 20 20 20 20 20 20 20 64 69 73 74 20 3d 20 6d 61 1,.len(pos)):\n........dist.=.ma
11f20 74 68 2e 68 79 70 6f 74 28 70 6f 73 5b 69 5d 5b 30 5d 20 2d 20 70 6f 73 5b 6a 5d 5b 30 5d 2c 20 th.hypot(pos[i][0].-.pos[j][0],.
11f40 70 6f 73 5b 69 5d 5b 31 5d 20 2d 20 70 6f 73 5b 6a 5d 5b 31 5d 29 5c 6e 20 20 20 20 20 20 20 20 pos[i][1].-.pos[j][1])\n........
11f60 64 69 73 74 20 3d 20 64 69 73 74 5c 6e 20 20 20 20 20 20 20 20 47 2e 61 64 64 5f 65 64 67 65 28 dist.=.dist\n........G.add_edge(
11f80 69 2c 20 6a 2c 20 77 65 69 67 68 74 3d 64 69 73 74 29 5c 6e 5c 6e 63 79 63 6c 65 20 3d 20 6e 78 i,.j,.weight=dist)\n\ncycle.=.nx
11fa0 5f 61 70 70 2e 63 68 72 69 73 74 6f 66 69 64 65 73 28 47 2c 20 77 65 69 67 68 74 3d 5c 22 77 65 _app.christofides(G,.weight=\"we
11fc0 69 67 68 74 5c 22 29 5c 6e 65 64 67 65 5f 6c 69 73 74 20 3d 20 6c 69 73 74 28 6e 78 2e 75 74 69 ight\")\nedge_list.=.list(nx.uti
11fe0 6c 73 2e 70 61 69 72 77 69 73 65 28 63 79 63 6c 65 29 29 5c 6e 5c 6e 23 20 44 72 61 77 20 63 6c ls.pairwise(cycle))\n\n#.Draw.cl
12000 6f 73 65 73 74 20 65 64 67 65 73 20 6f 6e 20 65 61 63 68 20 6e 6f 64 65 20 6f 6e 6c 79 5c 6e 6e osest.edges.on.each.node.only\nn
12020 78 2e 64 72 61 77 5f 6e 65 74 77 6f 72 6b 78 5f 65 64 67 65 73 28 48 2c 20 70 6f 73 2c 20 65 64 x.draw_networkx_edges(H,.pos,.ed
12040 67 65 5f 63 6f 6c 6f 72 3d 5c 22 62 6c 75 65 5c 22 2c 20 77 69 64 74 68 3d 30 2e 35 29 5c 6e 5c ge_color=\"blue\",.width=0.5)\n\
12060 6e 23 20 44 72 61 77 20 74 68 65 20 72 6f 75 74 65 5c 6e 6e 78 2e 64 72 61 77 5f 6e 65 74 77 6f n#.Draw.the.route\nnx.draw_netwo
12080 72 6b 78 28 5c 6e 20 20 20 20 47 2c 5c 6e 20 20 20 20 70 6f 73 2c 5c 6e 20 20 20 20 77 69 74 68 rkx(\n....G,\n....pos,\n....with
120a0 5f 6c 61 62 65 6c 73 3d 54 72 75 65 2c 5c 6e 20 20 20 20 65 64 67 65 6c 69 73 74 3d 65 64 67 65 _labels=True,\n....edgelist=edge
120c0 5f 6c 69 73 74 2c 5c 6e 20 20 20 20 65 64 67 65 5f 63 6f 6c 6f 72 3d 5c 22 72 65 64 5c 22 2c 5c _list,\n....edge_color=\"red\",\
120e0 6e 20 20 20 20 6e 6f 64 65 5f 73 69 7a 65 3d 32 30 30 2c 5c 6e 20 20 20 20 77 69 64 74 68 3d 33 n....node_size=200,\n....width=3
12100 2c 5c 6e 29 5c 6e 5c 6e 70 72 69 6e 74 28 5c 22 54 68 65 20 72 6f 75 74 65 20 6f 66 20 74 68 65 ,\n)\n\nprint(\"The.route.of.the
12120 20 74 72 61 76 65 6c 6c 65 72 20 69 73 3a 5c 22 2c 20 63 79 63 6c 65 29 5c 6e 70 6c 74 2e 73 68 .traveller.is:\",.cycle)\nplt.sh
12140 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 61 ow()".......].....}...],..."meta
12160 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 20 data":.{....."kernelspec":.{....
12180 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 20 ..."display_name":."Python.3",..
121a0 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 20 ....."language":."python",......
121c0 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 6c ."name":."python3".....},....."l
121e0 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 72 anguage_info":.{......."codemirr
12200 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 79 or_mode":.{........."name":."ipy
12220 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 20 thon",........."version":.3.....
12240 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 70 ..},......."file_extension":.".p
12260 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 79 y",......."mimetype":."text/x-py
12280 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 20 thon",......."name":."python",..
122a0 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 68 ....."nbconvert_exporter":."pyth
122c0 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 70 on",......."pygments_lexer":."ip
122e0 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 39 2e 31 ython3",......."version":."3.9.1
12300 36 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 6".....}...},..."nbformat":.4,..
12320 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........
12340 05 0f 5a 56 a4 e4 67 29 e6 08 00 00 e6 08 00 00 24 00 00 00 64 72 61 77 69 6e 67 2f 70 6c 6f 74 ..ZV..g)........$...drawing/plot
12360 5f 6c 61 62 65 6c 73 5f 61 6e 64 5f 63 6f 6c 6f 72 73 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c _labels_and_colors.ipynb{..."cel
12380 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 20 ls":.[.....{......."cell_type":.
123a0 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":
123c0 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":.{......
123e0 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.......},..
12400 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
12420 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 6e e":.[........."%matplotlib.inlin
12440 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 63 e".......].....},.....{......."c
12460 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
12480 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":.[..
124a0 20 20 20 20 20 20 20 22 5c 6e 23 20 4c 61 62 65 6c 73 20 41 6e 64 20 43 6f 6c 6f 72 73 5c 6e 5c ......."\n#.Labels.And.Colors\n\
124c0 6e 55 73 65 20 60 6e 6f 64 65 6c 69 73 74 60 20 61 6e 64 20 60 65 64 67 65 6c 69 73 74 60 20 74 nUse.`nodelist`.and.`edgelist`.t
124e0 6f 20 61 70 70 6c 79 20 63 75 73 74 6f 6d 20 63 6f 6c 6f 72 69 6e 67 20 61 6e 64 20 6c 61 62 65 o.apply.custom.coloring.and.labe
12500 6c 73 20 74 6f 20 76 61 72 69 6f 75 73 5c 6e 63 6f 6d 70 6f 6e 65 6e 74 73 20 6f 66 20 61 20 67 ls.to.various\ncomponents.of.a.g
12520 72 61 70 68 2e 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 raph.\n".......].....},.....{...
12540 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",......."
12560 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
12580 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":
125a0 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":
125c0 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":.[........."
125e0 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 20 70 6c 74 5c import.matplotlib.pyplot.as.plt\
12600 6e 69 6d 70 6f 72 74 20 6e 65 74 77 6f 72 6b 78 20 61 73 20 6e 78 5c 6e 5c 6e 47 20 3d 20 6e 78 nimport.networkx.as.nx\n\nG.=.nx
12620 2e 63 75 62 69 63 61 6c 5f 67 72 61 70 68 28 29 5c 6e 70 6f 73 20 3d 20 6e 78 2e 73 70 72 69 6e .cubical_graph()\npos.=.nx.sprin
12640 67 5f 6c 61 79 6f 75 74 28 47 2c 20 73 65 65 64 3d 33 31 31 33 37 39 34 36 35 32 29 20 20 23 20 g_layout(G,.seed=3113794652)..#.
12660 70 6f 73 69 74 69 6f 6e 73 20 66 6f 72 20 61 6c 6c 20 6e 6f 64 65 73 5c 6e 5c 6e 23 20 6e 6f 64 positions.for.all.nodes\n\n#.nod
12680 65 73 5c 6e 6f 70 74 69 6f 6e 73 20 3d 20 7b 5c 22 65 64 67 65 63 6f 6c 6f 72 73 5c 22 3a 20 5c es\noptions.=.{\"edgecolors\":.\
126a0 22 74 61 62 3a 67 72 61 79 5c 22 2c 20 5c 22 6e 6f 64 65 5f 73 69 7a 65 5c 22 3a 20 38 30 30 2c "tab:gray\",.\"node_size\":.800,
126c0 20 5c 22 61 6c 70 68 61 5c 22 3a 20 30 2e 39 7d 5c 6e 6e 78 2e 64 72 61 77 5f 6e 65 74 77 6f 72 .\"alpha\":.0.9}\nnx.draw_networ
126e0 6b 78 5f 6e 6f 64 65 73 28 47 2c 20 70 6f 73 2c 20 6e 6f 64 65 6c 69 73 74 3d 5b 30 2c 20 31 2c kx_nodes(G,.pos,.nodelist=[0,.1,
12700 20 32 2c 20 33 5d 2c 20 6e 6f 64 65 5f 63 6f 6c 6f 72 3d 5c 22 74 61 62 3a 72 65 64 5c 22 2c 20 .2,.3],.node_color=\"tab:red\",.
12720 2a 2a 6f 70 74 69 6f 6e 73 29 5c 6e 6e 78 2e 64 72 61 77 5f 6e 65 74 77 6f 72 6b 78 5f 6e 6f 64 **options)\nnx.draw_networkx_nod
12740 65 73 28 47 2c 20 70 6f 73 2c 20 6e 6f 64 65 6c 69 73 74 3d 5b 34 2c 20 35 2c 20 36 2c 20 37 5d es(G,.pos,.nodelist=[4,.5,.6,.7]
12760 2c 20 6e 6f 64 65 5f 63 6f 6c 6f 72 3d 5c 22 74 61 62 3a 62 6c 75 65 5c 22 2c 20 2a 2a 6f 70 74 ,.node_color=\"tab:blue\",.**opt
12780 69 6f 6e 73 29 5c 6e 5c 6e 23 20 65 64 67 65 73 5c 6e 6e 78 2e 64 72 61 77 5f 6e 65 74 77 6f 72 ions)\n\n#.edges\nnx.draw_networ
127a0 6b 78 5f 65 64 67 65 73 28 47 2c 20 70 6f 73 2c 20 77 69 64 74 68 3d 31 2e 30 2c 20 61 6c 70 68 kx_edges(G,.pos,.width=1.0,.alph
127c0 61 3d 30 2e 35 29 5c 6e 6e 78 2e 64 72 61 77 5f 6e 65 74 77 6f 72 6b 78 5f 65 64 67 65 73 28 5c a=0.5)\nnx.draw_networkx_edges(\
127e0 6e 20 20 20 20 47 2c 5c 6e 20 20 20 20 70 6f 73 2c 5c 6e 20 20 20 20 65 64 67 65 6c 69 73 74 3d n....G,\n....pos,\n....edgelist=
12800 5b 28 30 2c 20 31 29 2c 20 28 31 2c 20 32 29 2c 20 28 32 2c 20 33 29 2c 20 28 33 2c 20 30 29 5d [(0,.1),.(1,.2),.(2,.3),.(3,.0)]
12820 2c 5c 6e 20 20 20 20 77 69 64 74 68 3d 38 2c 5c 6e 20 20 20 20 61 6c 70 68 61 3d 30 2e 35 2c 5c ,\n....width=8,\n....alpha=0.5,\
12840 6e 20 20 20 20 65 64 67 65 5f 63 6f 6c 6f 72 3d 5c 22 74 61 62 3a 72 65 64 5c 22 2c 5c 6e 29 5c n....edge_color=\"tab:red\",\n)\
12860 6e 6e 78 2e 64 72 61 77 5f 6e 65 74 77 6f 72 6b 78 5f 65 64 67 65 73 28 5c 6e 20 20 20 20 47 2c nnx.draw_networkx_edges(\n....G,
12880 5c 6e 20 20 20 20 70 6f 73 2c 5c 6e 20 20 20 20 65 64 67 65 6c 69 73 74 3d 5b 28 34 2c 20 35 29 \n....pos,\n....edgelist=[(4,.5)
128a0 2c 20 28 35 2c 20 36 29 2c 20 28 36 2c 20 37 29 2c 20 28 37 2c 20 34 29 5d 2c 5c 6e 20 20 20 20 ,.(5,.6),.(6,.7),.(7,.4)],\n....
128c0 77 69 64 74 68 3d 38 2c 5c 6e 20 20 20 20 61 6c 70 68 61 3d 30 2e 35 2c 5c 6e 20 20 20 20 65 64 width=8,\n....alpha=0.5,\n....ed
128e0 67 65 5f 63 6f 6c 6f 72 3d 5c 22 74 61 62 3a 62 6c 75 65 5c 22 2c 5c 6e 29 5c 6e 5c 6e 5c 6e 23 ge_color=\"tab:blue\",\n)\n\n\n#
12900 20 73 6f 6d 65 20 6d 61 74 68 20 6c 61 62 65 6c 73 5c 6e 6c 61 62 65 6c 73 20 3d 20 7b 7d 5c 6e .some.math.labels\nlabels.=.{}\n
12920 6c 61 62 65 6c 73 5b 30 5d 20 3d 20 72 5c 22 24 61 24 5c 22 5c 6e 6c 61 62 65 6c 73 5b 31 5d 20 labels[0].=.r\"$a$\"\nlabels[1].
12940 3d 20 72 5c 22 24 62 24 5c 22 5c 6e 6c 61 62 65 6c 73 5b 32 5d 20 3d 20 72 5c 22 24 63 24 5c 22 =.r\"$b$\"\nlabels[2].=.r\"$c$\"
12960 5c 6e 6c 61 62 65 6c 73 5b 33 5d 20 3d 20 72 5c 22 24 64 24 5c 22 5c 6e 6c 61 62 65 6c 73 5b 34 \nlabels[3].=.r\"$d$\"\nlabels[4
12980 5d 20 3d 20 72 5c 22 24 5c 5c 61 6c 70 68 61 24 5c 22 5c 6e 6c 61 62 65 6c 73 5b 35 5d 20 3d 20 ].=.r\"$\\alpha$\"\nlabels[5].=.
129a0 72 5c 22 24 5c 5c 62 65 74 61 24 5c 22 5c 6e 6c 61 62 65 6c 73 5b 36 5d 20 3d 20 72 5c 22 24 5c r\"$\\beta$\"\nlabels[6].=.r\"$\
129c0 5c 67 61 6d 6d 61 24 5c 22 5c 6e 6c 61 62 65 6c 73 5b 37 5d 20 3d 20 72 5c 22 24 5c 5c 64 65 6c \gamma$\"\nlabels[7].=.r\"$\\del
129e0 74 61 24 5c 22 5c 6e 6e 78 2e 64 72 61 77 5f 6e 65 74 77 6f 72 6b 78 5f 6c 61 62 65 6c 73 28 47 ta$\"\nnx.draw_networkx_labels(G
12a00 2c 20 70 6f 73 2c 20 6c 61 62 65 6c 73 2c 20 66 6f 6e 74 5f 73 69 7a 65 3d 32 32 2c 20 66 6f 6e ,.pos,.labels,.font_size=22,.fon
12a20 74 5f 63 6f 6c 6f 72 3d 5c 22 77 68 69 74 65 73 6d 6f 6b 65 5c 22 29 5c 6e 5c 6e 70 6c 74 2e 74 t_color=\"whitesmoke\")\n\nplt.t
12a40 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 5c 6e 70 6c 74 2e 61 78 69 73 28 5c 22 6f 66 66 5c 22 29 ight_layout()\nplt.axis(\"off\")
12a60 5c 6e 70 6c 74 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 \nplt.show()".......].....}...],
12a80 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 6c 73 70 65 63 ..."metadata":.{....."kernelspec
12aa0 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 22 50 79 74 68 ":.{......."display_name":."Pyth
12ac0 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 79 74 68 6f 6e on.3",......."language":."python
12ae0 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 20 20 20 20 7d ",......."name":."python3".....}
12b00 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 20 20 20 20 22 ,....."language_info":.{......."
12b20 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 20 22 6e 61 6d codemirror_mode":.{........."nam
12b40 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 73 69 6f 6e 22 e":."ipython",........."version"
12b60 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 74 65 6e 73 69 :.3.......},......."file_extensi
12b80 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 22 3a 20 22 74 on":.".py",......."mimetype":."t
12ba0 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 3a 20 22 70 79 ext/x-python",......."name":."py
12bc0 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 6f 72 74 65 72 thon",......."nbconvert_exporter
12be0 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 73 5f 6c 65 78 ":."python",......."pygments_lex
12c00 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 73 69 6f 6e 22 er":."ipython3",......."version"
12c20 3a 20 22 33 2e 39 2e 31 36 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 :."3.9.16".....}...},..."nbforma
12c40 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 0a 7d 50 4b t":.4,..."nbformat_minor":.0.}PK
12c60 03 04 14 00 00 00 00 00 05 0f 5a 56 69 e5 02 9d fb 05 00 00 fb 05 00 00 1e 00 00 00 64 72 61 77 ..........ZVi...............draw
12c80 69 6e 67 2f 70 6c 6f 74 5f 65 69 67 65 6e 76 61 6c 75 65 73 2e 69 70 79 6e 62 7b 0a 20 20 22 63 ing/plot_eigenvalues.ipynb{..."c
12ca0 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"
12cc0 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
12ce0 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":.{....
12d00 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.......},
12d20 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
12d40 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
12d60 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".......].....},.....{.......
12d80 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",......."
12da0 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":.[
12dc0 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 45 69 67 65 6e 76 61 6c 75 65 73 5c 6e 5c 6e 43 72 65 ........."\n#.Eigenvalues\n\nCre
12de0 61 74 65 20 61 6e 20 47 7b 6e 2c 6d 7d 20 72 61 6e 64 6f 6d 20 67 72 61 70 68 20 61 6e 64 20 63 ate.an.G{n,m}.random.graph.and.c
12e00 6f 6d 70 75 74 65 20 74 68 65 20 65 69 67 65 6e 76 61 6c 75 65 73 2e 5c 6e 22 0a 20 20 20 20 20 ompute.the.eigenvalues.\n"......
12e20 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
12e40 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
12e60 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":.{...
12e80 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.......}
12ea0 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
12ec0 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 urce":.[........."import.matplot
12ee0 6c 69 62 2e 70 79 70 6c 6f 74 20 61 73 20 70 6c 74 5c 6e 69 6d 70 6f 72 74 20 6e 65 74 77 6f 72 lib.pyplot.as.plt\nimport.networ
12f00 6b 78 20 61 73 20 6e 78 5c 6e 69 6d 70 6f 72 74 20 6e 75 6d 70 79 2e 6c 69 6e 61 6c 67 5c 6e 5c kx.as.nx\nimport.numpy.linalg\n\
12f20 6e 6e 20 3d 20 31 30 30 30 20 20 23 20 31 30 30 30 20 6e 6f 64 65 73 5c 6e 6d 20 3d 20 35 30 30 nn.=.1000..#.1000.nodes\nm.=.500
12f40 30 20 20 23 20 35 30 30 30 20 65 64 67 65 73 5c 6e 47 20 3d 20 6e 78 2e 67 6e 6d 5f 72 61 6e 64 0..#.5000.edges\nG.=.nx.gnm_rand
12f60 6f 6d 5f 67 72 61 70 68 28 6e 2c 20 6d 2c 20 73 65 65 64 3d 35 30 34 30 29 20 20 23 20 53 65 65 om_graph(n,.m,.seed=5040)..#.See
12f80 64 20 66 6f 72 20 72 65 70 72 6f 64 75 63 69 62 69 6c 69 74 79 5c 6e 5c 6e 4c 20 3d 20 6e 78 2e d.for.reproducibility\n\nL.=.nx.
12fa0 6e 6f 72 6d 61 6c 69 7a 65 64 5f 6c 61 70 6c 61 63 69 61 6e 5f 6d 61 74 72 69 78 28 47 29 5c 6e normalized_laplacian_matrix(G)\n
12fc0 65 20 3d 20 6e 75 6d 70 79 2e 6c 69 6e 61 6c 67 2e 65 69 67 76 61 6c 73 28 4c 2e 74 6f 61 72 72 e.=.numpy.linalg.eigvals(L.toarr
12fe0 61 79 28 29 29 5c 6e 70 72 69 6e 74 28 5c 22 4c 61 72 67 65 73 74 20 65 69 67 65 6e 76 61 6c 75 ay())\nprint(\"Largest.eigenvalu
13000 65 3a 5c 22 2c 20 6d 61 78 28 65 29 29 5c 6e 70 72 69 6e 74 28 5c 22 53 6d 61 6c 6c 65 73 74 20 e:\",.max(e))\nprint(\"Smallest.
13020 65 69 67 65 6e 76 61 6c 75 65 3a 5c 22 2c 20 6d 69 6e 28 65 29 29 5c 6e 70 6c 74 2e 68 69 73 74 eigenvalue:\",.min(e))\nplt.hist
13040 28 65 2c 20 62 69 6e 73 3d 31 30 30 29 20 20 23 20 68 69 73 74 6f 67 72 61 6d 20 77 69 74 68 20 (e,.bins=100)..#.histogram.with.
13060 31 30 30 20 62 69 6e 73 5c 6e 70 6c 74 2e 78 6c 69 6d 28 30 2c 20 32 29 20 20 23 20 65 69 67 65 100.bins\nplt.xlim(0,.2)..#.eige
13080 6e 76 61 6c 75 65 73 20 62 65 74 77 65 65 6e 20 30 20 61 6e 64 20 32 5c 6e 70 6c 74 2e 73 68 6f nvalues.between.0.and.2\nplt.sho
130a0 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
130c0 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":.{.....
130e0 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",...
13100 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",.......
13120 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
13140 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
13160 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
13180 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......
131a0 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
131c0 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
131e0 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",...
13200 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
13220 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
13240 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 39 2e 31 36 thon3",......."version":."3.9.16
13260 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 20 ".....}...},..."nbformat":.4,...
13280 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 06 "nbformat_minor":.0.}PK.........
132a0 0f 5a 56 f2 19 c2 f5 21 0a 00 00 21 0a 00 00 20 00 00 00 64 72 61 77 69 6e 67 2f 70 6c 6f 74 5f .ZV....!...!.......drawing/plot_
132c0 73 70 65 63 74 72 61 6c 5f 67 72 69 64 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 22 3a 20 spectral_grid.ipynb{..."cells":.
132e0 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 64 65 [.....{......."cell_type":."code
13300 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
13320 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
13340 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.......},.......
13360 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":.[
13380 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 20 20 ........."%matplotlib.inline"...
133a0 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
133c0 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
133e0 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":.[.......
13400 20 20 22 5c 6e 23 20 53 70 65 63 74 72 61 6c 20 45 6d 62 65 64 64 69 6e 67 5c 6e 5c 6e 54 68 65 .."\n#.Spectral.Embedding\n\nThe
13420 20 73 70 65 63 74 72 61 6c 20 6c 61 79 6f 75 74 20 70 6f 73 69 74 69 6f 6e 73 20 74 68 65 20 6e .spectral.layout.positions.the.n
13440 6f 64 65 73 20 6f 66 20 74 68 65 20 67 72 61 70 68 20 62 61 73 65 64 20 6f 6e 20 74 68 65 5c 6e odes.of.the.graph.based.on.the\n
13460 65 69 67 65 6e 76 65 63 74 6f 72 73 20 6f 66 20 74 68 65 20 67 72 61 70 68 20 4c 61 70 6c 61 63 eigenvectors.of.the.graph.Laplac
13480 69 61 6e 20 24 4c 20 3d 20 44 20 2d 20 41 24 2c 20 77 68 65 72 65 20 24 41 24 20 69 73 20 74 68 ian.$L.=.D.-.A$,.where.$A$.is.th
134a0 65 5c 6e 61 64 6a 61 63 65 6e 63 79 20 6d 61 74 72 69 78 20 61 6e 64 20 24 44 24 20 69 73 20 74 e\nadjacency.matrix.and.$D$.is.t
134c0 68 65 20 64 65 67 72 65 65 20 6d 61 74 72 69 78 20 6f 66 20 74 68 65 20 67 72 61 70 68 2e 5c 6e he.degree.matrix.of.the.graph.\n
134e0 42 79 20 64 65 66 61 75 6c 74 2c 20 74 68 65 20 73 70 65 63 74 72 61 6c 20 6c 61 79 6f 75 74 20 By.default,.the.spectral.layout.
13500 77 69 6c 6c 20 65 6d 62 65 64 20 74 68 65 20 67 72 61 70 68 20 69 6e 20 74 77 6f 5c 6e 64 69 6d will.embed.the.graph.in.two\ndim
13520 65 6e 73 69 6f 6e 73 20 28 79 6f 75 20 63 61 6e 20 65 6d 62 65 64 20 79 6f 75 72 20 67 72 61 70 ensions.(you.can.embed.your.grap
13540 68 20 69 6e 20 6f 74 68 65 72 20 64 69 6d 65 6e 73 69 6f 6e 73 20 75 73 69 6e 67 20 74 68 65 5c h.in.other.dimensions.using.the\
13560 6e 60 60 64 69 6d 60 60 20 61 72 67 75 6d 65 6e 74 20 74 6f 20 65 69 74 68 65 72 20 3a 66 75 6e n``dim``.argument.to.either.:fun
13580 63 3a 60 7e 64 72 61 77 69 6e 67 2e 6e 78 5f 70 79 6c 61 62 2e 64 72 61 77 5f 73 70 65 63 74 72 c:`~drawing.nx_pylab.draw_spectr
135a0 61 6c 60 20 6f 72 5c 6e 3a 66 75 6e 63 3a 60 7e 64 72 61 77 69 6e 67 2e 6c 61 79 6f 75 74 2e 73 al`.or\n:func:`~drawing.layout.s
135c0 70 65 63 74 72 61 6c 5f 6c 61 79 6f 75 74 60 29 2e 5c 6e 5c 6e 57 68 65 6e 20 74 68 65 20 65 64 pectral_layout`).\n\nWhen.the.ed
135e0 67 65 73 20 6f 66 20 74 68 65 20 67 72 61 70 68 20 72 65 70 72 65 73 65 6e 74 20 73 69 6d 69 6c ges.of.the.graph.represent.simil
13600 61 72 69 74 79 20 62 65 74 77 65 65 6e 20 74 68 65 20 69 6e 63 69 64 65 6e 74 5c 6e 6e 6f 64 65 arity.between.the.incident\nnode
13620 73 2c 20 74 68 65 20 73 70 65 63 74 72 61 6c 20 65 6d 62 65 64 64 69 6e 67 20 77 69 6c 6c 20 70 s,.the.spectral.embedding.will.p
13640 6c 61 63 65 20 68 69 67 68 6c 79 20 73 69 6d 69 6c 61 72 20 6e 6f 64 65 73 20 63 6c 6f 73 65 72 lace.highly.similar.nodes.closer
13660 5c 6e 74 6f 20 6f 6e 65 20 61 6e 6f 74 68 65 72 20 74 68 61 6e 20 6e 6f 64 65 73 20 77 68 69 63 \nto.one.another.than.nodes.whic
13680 68 20 61 72 65 20 6c 65 73 73 20 73 69 6d 69 6c 61 72 2e 5c 6e 5c 6e 54 68 69 73 20 69 73 20 70 h.are.less.similar.\n\nThis.is.p
136a0 61 72 74 69 63 75 6c 61 72 6c 79 20 73 74 72 69 6b 69 6e 67 20 77 68 65 6e 20 79 6f 75 20 73 70 articularly.striking.when.you.sp
136c0 65 63 74 72 61 6c 6c 79 20 65 6d 62 65 64 20 61 20 67 72 69 64 5c 6e 67 72 61 70 68 2e 20 20 49 ectrally.embed.a.grid\ngraph...I
136e0 6e 20 74 68 65 20 66 75 6c 6c 20 67 72 69 64 20 67 72 61 70 68 2c 20 74 68 65 20 6e 6f 64 65 73 n.the.full.grid.graph,.the.nodes
13700 20 69 6e 20 74 68 65 20 63 65 6e 74 65 72 20 6f 66 20 74 68 65 5c 6e 67 72 61 70 68 20 61 72 65 .in.the.center.of.the\ngraph.are
13720 20 70 75 6c 6c 65 64 20 61 70 61 72 74 20 6d 6f 72 65 20 74 68 61 6e 20 6e 6f 64 65 73 20 6f 6e .pulled.apart.more.than.nodes.on
13740 20 74 68 65 20 70 65 72 69 70 68 65 72 79 2e 5c 6e 41 73 20 79 6f 75 20 72 65 6d 6f 76 65 20 69 .the.periphery.\nAs.you.remove.i
13760 6e 74 65 72 6e 61 6c 20 6e 6f 64 65 73 2c 20 74 68 69 73 20 65 66 66 65 63 74 20 69 6e 63 72 65 nternal.nodes,.this.effect.incre
13780 61 73 65 73 2e 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 ases.\n".......].....},.....{...
137a0 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",......."
137c0 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
137e0 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":
13800 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":
13820 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":.[........."
13840 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 20 70 6c 74 5c import.matplotlib.pyplot.as.plt\
13860 6e 69 6d 70 6f 72 74 20 6e 65 74 77 6f 72 6b 78 20 61 73 20 6e 78 5c 6e 5c 6e 5c 6e 6f 70 74 69 nimport.networkx.as.nx\n\n\nopti
13880 6f 6e 73 20 3d 20 7b 5c 22 6e 6f 64 65 5f 63 6f 6c 6f 72 5c 22 3a 20 5c 22 43 30 5c 22 2c 20 5c ons.=.{\"node_color\":.\"C0\",.\
138a0 22 6e 6f 64 65 5f 73 69 7a 65 5c 22 3a 20 31 30 30 7d 5c 6e 5c 6e 47 20 3d 20 6e 78 2e 67 72 69 "node_size\":.100}\n\nG.=.nx.gri
138c0 64 5f 32 64 5f 67 72 61 70 68 28 36 2c 20 36 29 5c 6e 70 6c 74 2e 73 75 62 70 6c 6f 74 28 33 33 d_2d_graph(6,.6)\nplt.subplot(33
138e0 32 29 5c 6e 6e 78 2e 64 72 61 77 5f 73 70 65 63 74 72 61 6c 28 47 2c 20 2a 2a 6f 70 74 69 6f 6e 2)\nnx.draw_spectral(G,.**option
13900 73 29 5c 6e 5c 6e 47 2e 72 65 6d 6f 76 65 5f 65 64 67 65 28 28 32 2c 20 32 29 2c 20 28 32 2c 20 s)\n\nG.remove_edge((2,.2),.(2,.
13920 33 29 29 5c 6e 70 6c 74 2e 73 75 62 70 6c 6f 74 28 33 33 34 29 5c 6e 6e 78 2e 64 72 61 77 5f 73 3))\nplt.subplot(334)\nnx.draw_s
13940 70 65 63 74 72 61 6c 28 47 2c 20 2a 2a 6f 70 74 69 6f 6e 73 29 5c 6e 5c 6e 47 2e 72 65 6d 6f 76 pectral(G,.**options)\n\nG.remov
13960 65 5f 65 64 67 65 28 28 33 2c 20 32 29 2c 20 28 33 2c 20 33 29 29 5c 6e 70 6c 74 2e 73 75 62 70 e_edge((3,.2),.(3,.3))\nplt.subp
13980 6c 6f 74 28 33 33 35 29 5c 6e 6e 78 2e 64 72 61 77 5f 73 70 65 63 74 72 61 6c 28 47 2c 20 2a 2a lot(335)\nnx.draw_spectral(G,.**
139a0 6f 70 74 69 6f 6e 73 29 5c 6e 5c 6e 47 2e 72 65 6d 6f 76 65 5f 65 64 67 65 28 28 32 2c 20 32 29 options)\n\nG.remove_edge((2,.2)
139c0 2c 20 28 33 2c 20 32 29 29 5c 6e 70 6c 74 2e 73 75 62 70 6c 6f 74 28 33 33 36 29 5c 6e 6e 78 2e ,.(3,.2))\nplt.subplot(336)\nnx.
139e0 64 72 61 77 5f 73 70 65 63 74 72 61 6c 28 47 2c 20 2a 2a 6f 70 74 69 6f 6e 73 29 5c 6e 5c 6e 47 draw_spectral(G,.**options)\n\nG
13a00 2e 72 65 6d 6f 76 65 5f 65 64 67 65 28 28 32 2c 20 33 29 2c 20 28 33 2c 20 33 29 29 5c 6e 70 6c .remove_edge((2,.3),.(3,.3))\npl
13a20 74 2e 73 75 62 70 6c 6f 74 28 33 33 37 29 5c 6e 6e 78 2e 64 72 61 77 5f 73 70 65 63 74 72 61 6c t.subplot(337)\nnx.draw_spectral
13a40 28 47 2c 20 2a 2a 6f 70 74 69 6f 6e 73 29 5c 6e 5c 6e 47 2e 72 65 6d 6f 76 65 5f 65 64 67 65 28 (G,.**options)\n\nG.remove_edge(
13a60 28 31 2c 20 32 29 2c 20 28 31 2c 20 33 29 29 5c 6e 70 6c 74 2e 73 75 62 70 6c 6f 74 28 33 33 38 (1,.2),.(1,.3))\nplt.subplot(338
13a80 29 5c 6e 6e 78 2e 64 72 61 77 5f 73 70 65 63 74 72 61 6c 28 47 2c 20 2a 2a 6f 70 74 69 6f 6e 73 )\nnx.draw_spectral(G,.**options
13aa0 29 5c 6e 5c 6e 47 2e 72 65 6d 6f 76 65 5f 65 64 67 65 28 28 34 2c 20 32 29 2c 20 28 34 2c 20 33 )\n\nG.remove_edge((4,.2),.(4,.3
13ac0 29 29 5c 6e 70 6c 74 2e 73 75 62 70 6c 6f 74 28 33 33 39 29 5c 6e 6e 78 2e 64 72 61 77 5f 73 70 ))\nplt.subplot(339)\nnx.draw_sp
13ae0 65 63 74 72 61 6c 28 47 2c 20 2a 2a 6f 70 74 69 6f 6e 73 29 5c 6e 5c 6e 70 6c 74 2e 73 68 6f 77 ectral(G,.**options)\n\nplt.show
13b00 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
13b20 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":.{......
13b40 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",....
13b60 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",......."
13b80 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
13ba0 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
13bc0 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
13be0 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.......
13c00 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"
13c20 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
13c40 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",....
13c60 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
13c80 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
13ca0 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 39 2e 31 36 22 hon3",......."version":."3.9.16"
13cc0 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,..."
13ce0 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 06 0f nbformat_minor":.0.}PK..........
13d00 5a 56 7f 13 a7 e2 82 0c 00 00 82 0c 00 00 23 00 00 00 64 72 61 77 69 6e 67 2f 70 6c 6f 74 5f 72 ZV............#...drawing/plot_r
13d20 61 69 6e 62 6f 77 5f 63 6f 6c 6f 72 69 6e 67 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 22 ainbow_coloring.ipynb{..."cells"
13d40 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
13d60 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
13d80 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":.{.........
13da0 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.......},.....
13dc0 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":
13de0 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".
13e00 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
13e20 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
13e40 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":.[.....
13e60 20 20 20 20 22 5c 6e 23 20 52 61 69 6e 62 6f 77 20 43 6f 6c 6f 72 69 6e 67 5c 6e 5c 6e 47 65 6e ...."\n#.Rainbow.Coloring\n\nGen
13e80 65 72 61 74 65 20 61 20 63 6f 6d 70 6c 65 74 65 20 67 72 61 70 68 20 77 69 74 68 20 31 33 20 6e erate.a.complete.graph.with.13.n
13ea0 6f 64 65 73 20 69 6e 20 61 20 63 69 72 63 75 6c 61 72 20 6c 61 79 6f 75 74 20 77 69 74 68 20 74 odes.in.a.circular.layout.with.t
13ec0 68 65 5c 6e 65 64 67 65 73 20 63 6f 6c 6f 72 65 64 20 62 79 20 6e 6f 64 65 20 64 69 73 74 61 6e he\nedges.colored.by.node.distan
13ee0 63 65 2e 20 54 68 65 20 6e 6f 64 65 20 64 69 73 74 61 6e 63 65 20 69 73 20 67 69 76 65 6e 20 62 ce..The.node.distance.is.given.b
13f00 79 20 74 68 65 20 6d 69 6e 69 6d 75 6d 5c 6e 6e 75 6d 62 65 72 20 6f 66 20 6e 6f 64 65 73 20 74 y.the.minimum\nnumber.of.nodes.t
13f20 72 61 76 65 72 73 65 64 20 61 6c 6f 6e 67 20 61 6e 20 61 72 63 20 62 65 74 77 65 65 6e 20 61 6e raversed.along.an.arc.between.an
13f40 79 20 74 77 6f 20 6e 6f 64 65 73 20 6f 6e 20 74 68 65 20 63 69 72 63 6c 65 2e 5c 6e 5c 6e 53 75 y.two.nodes.on.the.circle.\n\nSu
13f60 63 68 20 67 72 61 70 68 73 20 61 72 65 20 74 68 65 20 73 75 62 6a 65 63 74 20 6f 66 20 52 69 6e ch.graphs.are.the.subject.of.Rin
13f80 67 65 6c 27 73 20 63 6f 6e 6a 65 63 74 75 72 65 2c 20 77 68 69 63 68 20 73 74 61 74 65 73 3a 20 gel's.conjecture,.which.states:.
13fa0 61 6e 79 20 63 6f 6d 70 6c 65 74 65 5c 6e 67 72 61 70 68 20 77 69 74 68 20 60 60 32 6e 20 2b 20 any.complete\ngraph.with.``2n.+.
13fc0 31 60 60 20 6e 6f 64 65 73 20 63 61 6e 20 62 65 20 74 69 6c 65 64 20 62 79 20 61 6e 79 20 74 72 1``.nodes.can.be.tiled.by.any.tr
13fe0 65 65 20 77 69 74 68 20 60 60 6e 20 2b 20 31 60 60 20 6e 6f 64 65 73 5c 6e 28 69 2e 65 2e 20 63 ee.with.``n.+.1``.nodes\n(i.e..c
14000 6f 70 69 65 73 20 6f 66 20 74 68 65 20 74 72 65 65 20 63 61 6e 20 62 65 20 70 6c 61 63 65 64 20 opies.of.the.tree.can.be.placed.
14020 6f 76 65 72 20 74 68 65 20 63 6f 6d 70 6c 65 74 65 20 67 72 61 70 68 20 73 75 63 68 20 74 68 61 over.the.complete.graph.such.tha
14040 74 20 65 61 63 68 5c 6e 65 64 67 65 20 69 6e 20 74 68 65 20 63 6f 6d 70 6c 65 74 65 20 67 72 61 t.each\nedge.in.the.complete.gra
14060 70 68 20 69 73 20 63 6f 76 65 72 65 64 20 65 78 61 63 74 6c 79 20 6f 6e 63 65 29 2e 20 54 68 65 ph.is.covered.exactly.once)..The
14080 20 65 64 67 65 20 63 6f 6c 6f 72 69 6e 67 20 69 73 5c 6e 68 65 6c 70 66 75 6c 20 69 6e 20 64 65 .edge.coloring.is\nhelpful.in.de
140a0 74 65 72 6d 69 6e 69 6e 67 20 68 6f 77 20 74 6f 20 70 6c 61 63 65 20 74 68 65 20 74 72 65 65 20 termining.how.to.place.the.tree.
140c0 63 6f 70 69 65 73 2e 5c 6e 5c 6e 23 23 20 52 65 66 65 72 65 6e 63 65 73 5c 6e 68 74 74 70 73 3a copies.\n\n##.References\nhttps:
140e0 2f 2f 77 77 77 2e 71 75 61 6e 74 61 6d 61 67 61 7a 69 6e 65 2e 6f 72 67 2f 6d 61 74 68 65 6d 61 //www.quantamagazine.org/mathema
14100 74 69 63 69 61 6e 73 2d 70 72 6f 76 65 2d 72 69 6e 67 65 6c 73 2d 67 72 61 70 68 2d 74 68 65 6f ticians-prove-ringels-graph-theo
14120 72 79 2d 63 6f 6e 6a 65 63 74 75 72 65 2d 32 30 32 30 30 32 31 39 2f 5c 6e 22 0a 20 20 20 20 20 ry-conjecture-20200219/\n"......
14140 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
14160 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
14180 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":.{...
141a0 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.......}
141c0 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
141e0 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 urce":.[........."import.matplot
14200 6c 69 62 2e 70 79 70 6c 6f 74 20 61 73 20 70 6c 74 5c 6e 69 6d 70 6f 72 74 20 6e 65 74 77 6f 72 lib.pyplot.as.plt\nimport.networ
14220 6b 78 20 61 73 20 6e 78 5c 6e 5c 6e 23 20 41 20 72 61 69 6e 62 6f 77 20 63 6f 6c 6f 72 20 6d 61 kx.as.nx\n\n#.A.rainbow.color.ma
14240 70 70 69 6e 67 20 75 73 69 6e 67 20 6d 61 74 70 6c 6f 74 6c 69 62 27 73 20 74 61 62 6c 65 61 75 pping.using.matplotlib's.tableau
14260 20 63 6f 6c 6f 72 73 5c 6e 6e 6f 64 65 5f 64 69 73 74 5f 74 6f 5f 63 6f 6c 6f 72 20 3d 20 7b 5c .colors\nnode_dist_to_color.=.{\
14280 6e 20 20 20 20 31 3a 20 5c 22 74 61 62 3a 72 65 64 5c 22 2c 5c 6e 20 20 20 20 32 3a 20 5c 22 74 n....1:.\"tab:red\",\n....2:.\"t
142a0 61 62 3a 6f 72 61 6e 67 65 5c 22 2c 5c 6e 20 20 20 20 33 3a 20 5c 22 74 61 62 3a 6f 6c 69 76 65 ab:orange\",\n....3:.\"tab:olive
142c0 5c 22 2c 5c 6e 20 20 20 20 34 3a 20 5c 22 74 61 62 3a 67 72 65 65 6e 5c 22 2c 5c 6e 20 20 20 20 \",\n....4:.\"tab:green\",\n....
142e0 35 3a 20 5c 22 74 61 62 3a 62 6c 75 65 5c 22 2c 5c 6e 20 20 20 20 36 3a 20 5c 22 74 61 62 3a 70 5:.\"tab:blue\",\n....6:.\"tab:p
14300 75 72 70 6c 65 5c 22 2c 5c 6e 7d 5c 6e 5c 6e 23 20 43 72 65 61 74 65 20 61 20 63 6f 6d 70 6c 65 urple\",\n}\n\n#.Create.a.comple
14320 74 65 20 67 72 61 70 68 20 77 69 74 68 20 61 6e 20 6f 64 64 20 6e 75 6d 62 65 72 20 6f 66 20 6e te.graph.with.an.odd.number.of.n
14340 6f 64 65 73 5c 6e 6e 6e 6f 64 65 73 20 3d 20 31 33 5c 6e 47 20 3d 20 6e 78 2e 63 6f 6d 70 6c 65 odes\nnnodes.=.13\nG.=.nx.comple
14360 74 65 5f 67 72 61 70 68 28 6e 6e 6f 64 65 73 29 5c 6e 5c 6e 23 20 41 20 67 72 61 70 68 20 77 69 te_graph(nnodes)\n\n#.A.graph.wi
14380 74 68 20 28 32 6e 20 2b 20 31 29 20 6e 6f 64 65 73 20 72 65 71 75 69 72 65 73 20 6e 20 63 6f 6c th.(2n.+.1).nodes.requires.n.col
143a0 6f 72 73 20 66 6f 72 20 74 68 65 20 65 64 67 65 73 5c 6e 6e 20 3d 20 28 6e 6e 6f 64 65 73 20 2d ors.for.the.edges\nn.=.(nnodes.-
143c0 20 31 29 20 2f 2f 20 32 5c 6e 6e 64 69 73 74 5f 69 74 65 72 20 3d 20 6c 69 73 74 28 72 61 6e 67 .1).//.2\nndist_iter.=.list(rang
143e0 65 28 31 2c 20 6e 20 2b 20 31 29 29 5c 6e 5c 6e 23 20 54 61 6b 65 20 61 64 76 61 6e 74 61 67 65 e(1,.n.+.1))\n\n#.Take.advantage
14400 20 6f 66 20 63 69 72 63 75 6c 61 72 20 73 79 6d 6d 65 74 72 79 20 69 6e 20 64 65 74 65 72 6d 69 .of.circular.symmetry.in.determi
14420 6e 69 6e 67 20 6e 6f 64 65 20 64 69 73 74 61 6e 63 65 73 5c 6e 6e 64 69 73 74 5f 69 74 65 72 20 ning.node.distances\nndist_iter.
14440 2b 3d 20 6e 64 69 73 74 5f 69 74 65 72 5b 3a 3a 2d 31 5d 5c 6e 5c 6e 5c 6e 64 65 66 20 63 79 63 +=.ndist_iter[::-1]\n\n\ndef.cyc
14460 6c 65 28 6e 6c 69 73 74 2c 20 6e 29 3a 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 6e 6c 69 73 74 5b le(nlist,.n):\n....return.nlist[
14480 2d 6e 3a 5d 20 2b 20 6e 6c 69 73 74 5b 3a 2d 6e 5d 5c 6e 5c 6e 5c 6e 23 20 52 6f 74 61 74 65 20 -n:].+.nlist[:-n]\n\n\n#.Rotate.
144a0 6e 6f 64 65 73 20 61 72 6f 75 6e 64 20 74 68 65 20 63 69 72 63 6c 65 20 61 6e 64 20 61 73 73 69 nodes.around.the.circle.and.assi
144c0 67 6e 20 63 6f 6c 6f 72 73 20 66 6f 72 20 65 61 63 68 20 65 64 67 65 20 62 61 73 65 64 20 6f 6e gn.colors.for.each.edge.based.on
144e0 5c 6e 23 20 6e 6f 64 65 20 64 69 73 74 61 6e 63 65 5c 6e 6e 6f 64 65 73 20 3d 20 6c 69 73 74 28 \n#.node.distance\nnodes.=.list(
14500 47 2e 6e 6f 64 65 73 28 29 29 5c 6e 66 6f 72 20 69 2c 20 6e 64 20 69 6e 20 65 6e 75 6d 65 72 61 G.nodes())\nfor.i,.nd.in.enumera
14520 74 65 28 6e 64 69 73 74 5f 69 74 65 72 29 3a 5c 6e 20 20 20 20 66 6f 72 20 75 2c 20 76 20 69 6e te(ndist_iter):\n....for.u,.v.in
14540 20 7a 69 70 28 6e 6f 64 65 73 2c 20 63 79 63 6c 65 28 6e 6f 64 65 73 2c 20 69 20 2b 20 31 29 29 .zip(nodes,.cycle(nodes,.i.+.1))
14560 3a 5c 6e 20 20 20 20 20 20 20 20 47 5b 75 5d 5b 76 5d 5b 5c 22 63 6f 6c 6f 72 5c 22 5d 20 3d 20 :\n........G[u][v][\"color\"].=.
14580 6e 6f 64 65 5f 64 69 73 74 5f 74 6f 5f 63 6f 6c 6f 72 5b 6e 64 5d 5c 6e 5c 6e 70 6f 73 20 3d 20 node_dist_to_color[nd]\n\npos.=.
145a0 6e 78 2e 63 69 72 63 75 6c 61 72 5f 6c 61 79 6f 75 74 28 47 29 5c 6e 23 20 43 72 65 61 74 65 20 nx.circular_layout(G)\n#.Create.
145c0 61 20 66 69 67 75 72 65 20 77 69 74 68 20 31 3a 31 20 61 73 70 65 63 74 20 72 61 74 69 6f 20 74 a.figure.with.1:1.aspect.ratio.t
145e0 6f 20 70 72 65 73 65 72 76 65 20 74 68 65 20 63 69 72 63 6c 65 2e 5c 6e 66 69 67 2c 20 61 78 20 o.preserve.the.circle.\nfig,.ax.
14600 3d 20 70 6c 74 2e 73 75 62 70 6c 6f 74 73 28 66 69 67 73 69 7a 65 3d 28 38 2c 20 38 29 29 5c 6e =.plt.subplots(figsize=(8,.8))\n
14620 6e 6f 64 65 5f 6f 70 74 73 20 3d 20 7b 5c 22 6e 6f 64 65 5f 73 69 7a 65 5c 22 3a 20 35 30 30 2c node_opts.=.{\"node_size\":.500,
14640 20 5c 22 6e 6f 64 65 5f 63 6f 6c 6f 72 5c 22 3a 20 5c 22 77 5c 22 2c 20 5c 22 65 64 67 65 63 6f .\"node_color\":.\"w\",.\"edgeco
14660 6c 6f 72 73 5c 22 3a 20 5c 22 6b 5c 22 2c 20 5c 22 6c 69 6e 65 77 69 64 74 68 73 5c 22 3a 20 32 lors\":.\"k\",.\"linewidths\":.2
14680 2e 30 7d 5c 6e 6e 78 2e 64 72 61 77 5f 6e 65 74 77 6f 72 6b 78 5f 6e 6f 64 65 73 28 47 2c 20 70 .0}\nnx.draw_networkx_nodes(G,.p
146a0 6f 73 2c 20 2a 2a 6e 6f 64 65 5f 6f 70 74 73 29 5c 6e 6e 78 2e 64 72 61 77 5f 6e 65 74 77 6f 72 os,.**node_opts)\nnx.draw_networ
146c0 6b 78 5f 6c 61 62 65 6c 73 28 47 2c 20 70 6f 73 2c 20 66 6f 6e 74 5f 73 69 7a 65 3d 31 34 29 5c kx_labels(G,.pos,.font_size=14)\
146e0 6e 23 20 45 78 74 72 61 63 74 20 63 6f 6c 6f 72 20 66 72 6f 6d 20 65 64 67 65 20 64 61 74 61 5c n#.Extract.color.from.edge.data\
14700 6e 65 64 67 65 5f 63 6f 6c 6f 72 73 20 3d 20 5b 65 64 67 65 64 61 74 61 5b 5c 22 63 6f 6c 6f 72 nedge_colors.=.[edgedata[\"color
14720 5c 22 5d 20 66 6f 72 20 5f 2c 20 5f 2c 20 65 64 67 65 64 61 74 61 20 69 6e 20 47 2e 65 64 67 65 \"].for._,._,.edgedata.in.G.edge
14740 73 28 64 61 74 61 3d 54 72 75 65 29 5d 5c 6e 6e 78 2e 64 72 61 77 5f 6e 65 74 77 6f 72 6b 78 5f s(data=True)]\nnx.draw_networkx_
14760 65 64 67 65 73 28 47 2c 20 70 6f 73 2c 20 77 69 64 74 68 3d 32 2e 30 2c 20 65 64 67 65 5f 63 6f edges(G,.pos,.width=2.0,.edge_co
14780 6c 6f 72 3d 65 64 67 65 5f 63 6f 6c 6f 72 73 29 5c 6e 5c 6e 61 78 2e 73 65 74 5f 61 78 69 73 5f lor=edge_colors)\n\nax.set_axis_
147a0 6f 66 66 28 29 5c 6e 66 69 67 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 5c 6e 70 6c 74 2e 73 off()\nfig.tight_layout()\nplt.s
147c0 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
147e0 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":.{...
14800 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",.
14820 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",.....
14840 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".....},....."
14860 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
14880 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
148a0 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....
148c0 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":.".
148e0 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
14900 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",.
14920 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
14940 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
14960 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 39 2e python3",......."version":."3.9.
14980 31 36 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 16".....}...},..."nbformat":.4,.
149a0 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 00 .."nbformat_minor":.0.}PK.......
149c0 00 05 0f 5a 56 7e 2f 63 f2 13 08 00 00 13 08 00 00 1d 00 00 00 64 72 61 77 69 6e 67 2f 70 6c 6f ...ZV~/c.............drawing/plo
149e0 74 5f 66 6f 75 72 5f 67 72 69 64 73 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 22 3a 20 5b t_four_grids.ipynb{..."cells":.[
14a00 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"
14a20 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,
14a40 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
14a60 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.......},......."
14a80 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":.[.
14aa0 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"....
14ac0 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
14ae0 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
14b00 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":.[........
14b20 20 22 5c 6e 23 20 46 6f 75 72 20 47 72 69 64 73 5c 6e 5c 6e 44 72 61 77 20 61 20 34 78 34 20 67 ."\n#.Four.Grids\n\nDraw.a.4x4.g
14b40 72 61 70 68 20 77 69 74 68 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 5c 6e 5c 6e 54 68 69 73 20 65 78 raph.with.matplotlib.\n\nThis.ex
14b60 61 6d 70 6c 65 20 69 6c 6c 75 73 74 72 61 74 65 73 20 74 68 65 20 75 73 65 20 6f 66 20 6b 65 79 ample.illustrates.the.use.of.key
14b80 77 6f 72 64 20 61 72 67 75 6d 65 6e 74 73 20 74 6f 20 60 6e 65 74 77 6f 72 6b 78 2e 64 72 61 77 word.arguments.to.`networkx.draw
14ba0 60 20 74 6f 5c 6e 63 75 73 74 6f 6d 69 7a 65 20 74 68 65 20 76 69 73 75 61 6c 69 7a 61 74 69 6f `.to\ncustomize.the.visualizatio
14bc0 6e 20 6f 66 20 61 20 73 69 6d 70 6c 65 20 47 72 61 70 68 20 63 6f 6d 70 72 69 73 69 6e 67 20 61 n.of.a.simple.Graph.comprising.a
14be0 20 34 78 34 20 67 72 69 64 2e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 .4x4.grid.\n".......].....},....
14c00 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",...
14c20 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,....
14c40 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
14c60 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
14c80 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":.[.....
14ca0 20 20 20 20 22 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 ...."import.matplotlib.pyplot.as
14cc0 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 5c 6e 47 .plt\nimport.networkx.as.nx\n\nG
14ce0 20 3d 20 6e 78 2e 67 72 69 64 5f 32 64 5f 67 72 61 70 68 28 34 2c 20 34 29 20 20 23 20 34 78 34 .=.nx.grid_2d_graph(4,.4)..#.4x4
14d00 20 67 72 69 64 5c 6e 5c 6e 70 6f 73 20 3d 20 6e 78 2e 73 70 72 69 6e 67 5f 6c 61 79 6f 75 74 28 .grid\n\npos.=.nx.spring_layout(
14d20 47 2c 20 69 74 65 72 61 74 69 6f 6e 73 3d 31 30 30 2c 20 73 65 65 64 3d 33 39 37 37 35 29 5c 6e G,.iterations=100,.seed=39775)\n
14d40 5c 6e 23 20 43 72 65 61 74 65 20 61 20 32 78 32 20 73 75 62 70 6c 6f 74 5c 6e 66 69 67 2c 20 61 \n#.Create.a.2x2.subplot\nfig,.a
14d60 6c 6c 5f 61 78 65 73 20 3d 20 70 6c 74 2e 73 75 62 70 6c 6f 74 73 28 32 2c 20 32 29 5c 6e 61 78 ll_axes.=.plt.subplots(2,.2)\nax
14d80 20 3d 20 61 6c 6c 5f 61 78 65 73 2e 66 6c 61 74 5c 6e 5c 6e 6e 78 2e 64 72 61 77 28 47 2c 20 70 .=.all_axes.flat\n\nnx.draw(G,.p
14da0 6f 73 2c 20 61 78 3d 61 78 5b 30 5d 2c 20 66 6f 6e 74 5f 73 69 7a 65 3d 38 29 5c 6e 6e 78 2e 64 os,.ax=ax[0],.font_size=8)\nnx.d
14dc0 72 61 77 28 47 2c 20 70 6f 73 2c 20 61 78 3d 61 78 5b 31 5d 2c 20 6e 6f 64 65 5f 73 69 7a 65 3d raw(G,.pos,.ax=ax[1],.node_size=
14de0 30 2c 20 77 69 74 68 5f 6c 61 62 65 6c 73 3d 46 61 6c 73 65 29 5c 6e 6e 78 2e 64 72 61 77 28 5c 0,.with_labels=False)\nnx.draw(\
14e00 6e 20 20 20 20 47 2c 5c 6e 20 20 20 20 70 6f 73 2c 5c 6e 20 20 20 20 61 78 3d 61 78 5b 32 5d 2c n....G,\n....pos,\n....ax=ax[2],
14e20 5c 6e 20 20 20 20 6e 6f 64 65 5f 63 6f 6c 6f 72 3d 5c 22 74 61 62 3a 67 72 65 65 6e 5c 22 2c 5c \n....node_color=\"tab:green\",\
14e40 6e 20 20 20 20 65 64 67 65 63 6f 6c 6f 72 73 3d 5c 22 74 61 62 3a 67 72 61 79 5c 22 2c 20 20 23 n....edgecolors=\"tab:gray\",..#
14e60 20 4e 6f 64 65 20 73 75 72 66 61 63 65 20 63 6f 6c 6f 72 5c 6e 20 20 20 20 65 64 67 65 5f 63 6f .Node.surface.color\n....edge_co
14e80 6c 6f 72 3d 5c 22 74 61 62 3a 67 72 61 79 5c 22 2c 20 20 23 20 43 6f 6c 6f 72 20 6f 66 20 67 72 lor=\"tab:gray\",..#.Color.of.gr
14ea0 61 70 68 20 65 64 67 65 73 5c 6e 20 20 20 20 6e 6f 64 65 5f 73 69 7a 65 3d 32 35 30 2c 5c 6e 20 aph.edges\n....node_size=250,\n.
14ec0 20 20 20 77 69 74 68 5f 6c 61 62 65 6c 73 3d 46 61 6c 73 65 2c 5c 6e 20 20 20 20 77 69 64 74 68 ...with_labels=False,\n....width
14ee0 3d 36 2c 5c 6e 29 5c 6e 48 20 3d 20 47 2e 74 6f 5f 64 69 72 65 63 74 65 64 28 29 5c 6e 6e 78 2e =6,\n)\nH.=.G.to_directed()\nnx.
14f00 64 72 61 77 28 5c 6e 20 20 20 20 48 2c 5c 6e 20 20 20 20 70 6f 73 2c 5c 6e 20 20 20 20 61 78 3d draw(\n....H,\n....pos,\n....ax=
14f20 61 78 5b 33 5d 2c 5c 6e 20 20 20 20 6e 6f 64 65 5f 63 6f 6c 6f 72 3d 5c 22 74 61 62 3a 6f 72 61 ax[3],\n....node_color=\"tab:ora
14f40 6e 67 65 5c 22 2c 5c 6e 20 20 20 20 6e 6f 64 65 5f 73 69 7a 65 3d 32 30 2c 5c 6e 20 20 20 20 77 nge\",\n....node_size=20,\n....w
14f60 69 74 68 5f 6c 61 62 65 6c 73 3d 46 61 6c 73 65 2c 5c 6e 20 20 20 20 61 72 72 6f 77 73 69 7a 65 ith_labels=False,\n....arrowsize
14f80 3d 31 30 2c 5c 6e 20 20 20 20 77 69 64 74 68 3d 32 2c 5c 6e 29 5c 6e 5c 6e 23 20 53 65 74 20 6d =10,\n....width=2,\n)\n\n#.Set.m
14fa0 61 72 67 69 6e 73 20 66 6f 72 20 74 68 65 20 61 78 65 73 20 73 6f 20 74 68 61 74 20 6e 6f 64 65 argins.for.the.axes.so.that.node
14fc0 73 20 61 72 65 6e 27 74 20 63 6c 69 70 70 65 64 5c 6e 66 6f 72 20 61 20 69 6e 20 61 78 3a 5c 6e s.aren't.clipped\nfor.a.in.ax:\n
14fe0 20 20 20 20 61 2e 6d 61 72 67 69 6e 73 28 30 2e 31 30 29 5c 6e 66 69 67 2e 74 69 67 68 74 5f 6c ....a.margins(0.10)\nfig.tight_l
15000 61 79 6f 75 74 28 29 5c 6e 70 6c 74 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 ayout()\nplt.show()".......]....
15020 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 72 .}...],..."metadata":.{....."ker
15040 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 22 nelspec":.{......."display_name"
15060 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 20 :."Python.3",......."language":.
15080 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 33 "python",......."name":."python3
150a0 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 0a ".....},....."language_info":.{.
150c0 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 20 ......"codemirror_mode":.{......
150e0 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 76 ..."name":."ipython",........."v
15100 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 5f ersion":.3.......},......."file_
15120 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 79 extension":.".py",......."mimety
15140 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 6d pe":."text/x-python",......."nam
15160 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 65 e":."python",......."nbconvert_e
15180 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 65 xporter":."python",......."pygme
151a0 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 76 nts_lexer":."ipython3",......."v
151c0 65 72 73 69 6f 6e 22 3a 20 22 33 2e 39 2e 31 36 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 ersion":."3.9.16".....}...},..."
151e0 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"
15200 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 05 0f 5a 56 d9 98 95 da 76 14 00 00 76 14 00 00 1e :.0.}PK..........ZV....v...v....
15220 00 00 00 64 72 61 77 69 6e 67 2f 70 6c 6f 74 5f 6b 6e 75 74 68 5f 6d 69 6c 65 73 2e 69 70 79 6e ...drawing/plot_knuth_miles.ipyn
15240 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
15260 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
15280 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"
152a0 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..
152c0 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":.[],....
152e0 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
15300 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".......].....},.....{
15320 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",.
15340 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
15360 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 4b 6e 75 74 68 20 4d 69 6c 65 73 rce":.[........."\n#.Knuth.Miles
15380 5c 6e 5c 6e 60 6d 69 6c 65 73 5f 67 72 61 70 68 28 29 60 20 72 65 74 75 72 6e 73 20 61 6e 20 75 \n\n`miles_graph()`.returns.an.u
153a0 6e 64 69 72 65 63 74 65 64 20 67 72 61 70 68 20 6f 76 65 72 20 31 32 38 20 55 53 20 63 69 74 69 ndirected.graph.over.128.US.citi
153c0 65 73 2e 20 54 68 65 5c 6e 63 69 74 69 65 73 20 65 61 63 68 20 68 61 76 65 20 6c 6f 63 61 74 69 es..The\ncities.each.have.locati
153e0 6f 6e 20 61 6e 64 20 70 6f 70 75 6c 61 74 69 6f 6e 20 64 61 74 61 2e 20 20 54 68 65 20 65 64 67 on.and.population.data...The.edg
15400 65 73 20 61 72 65 20 6c 61 62 65 6c 65 64 20 77 69 74 68 20 74 68 65 5c 6e 64 69 73 74 61 6e 63 es.are.labeled.with.the\ndistanc
15420 65 20 62 65 74 77 65 65 6e 20 74 68 65 20 74 77 6f 20 63 69 74 69 65 73 2e 5c 6e 5c 6e 54 68 69 e.between.the.two.cities.\n\nThi
15440 73 20 65 78 61 6d 70 6c 65 20 69 73 20 64 65 73 63 72 69 62 65 64 20 69 6e 20 53 65 63 74 69 6f s.example.is.described.in.Sectio
15460 6e 20 31 2e 31 20 6f 66 5c 6e 5c 6e 20 20 20 20 44 6f 6e 61 6c 64 20 45 2e 20 4b 6e 75 74 68 2c n.1.1.of\n\n....Donald.E..Knuth,
15480 20 5c 22 54 68 65 20 53 74 61 6e 66 6f 72 64 20 47 72 61 70 68 42 61 73 65 3a 20 41 20 50 6c 61 .\"The.Stanford.GraphBase:.A.Pla
154a0 74 66 6f 72 6d 20 66 6f 72 20 43 6f 6d 62 69 6e 61 74 6f 72 69 61 6c 5c 6e 20 20 20 20 43 6f 6d tform.for.Combinatorial\n....Com
154c0 70 75 74 69 6e 67 5c 22 2c 20 41 43 4d 20 50 72 65 73 73 2c 20 4e 65 77 20 59 6f 72 6b 2c 20 31 puting\",.ACM.Press,.New.York,.1
154e0 39 39 33 2e 5c 6e 20 20 20 20 68 74 74 70 3a 2f 2f 77 77 77 2d 63 73 2d 66 61 63 75 6c 74 79 2e 993.\n....http://www-cs-faculty.
15500 73 74 61 6e 66 6f 72 64 2e 65 64 75 2f 7e 6b 6e 75 74 68 2f 73 67 62 2e 68 74 6d 6c 5c 6e 5c 6e stanford.edu/~knuth/sgb.html\n\n
15520 54 68 65 20 64 61 74 61 20 66 69 6c 65 20 63 61 6e 20 62 65 20 66 6f 75 6e 64 20 61 74 3a 5c 6e The.data.file.can.be.found.at:\n
15540 5c 6e 2d 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6e 65 74 77 6f 72 6b 78 2f \n-.https://github.com/networkx/
15560 6e 65 74 77 6f 72 6b 78 2f 62 6c 6f 62 2f 6d 61 69 6e 2f 65 78 61 6d 70 6c 65 73 2f 64 72 61 77 networkx/blob/main/examples/draw
15580 69 6e 67 2f 6b 6e 75 74 68 5f 6d 69 6c 65 73 2e 74 78 74 2e 67 7a 5c 6e 22 0a 20 20 20 20 20 20 ing/knuth_miles.txt.gz\n".......
155a0 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"
155c0 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
155e0 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":.{....
15600 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.......},
15620 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
15640 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 69 6d 70 6f 72 74 20 67 7a 69 70 5c 6e 69 6d rce":.[........."import.gzip\nim
15660 70 6f 72 74 20 72 65 5c 6e 5c 6e 23 20 49 67 6e 6f 72 65 20 61 6e 79 20 77 61 72 6e 69 6e 67 73 port.re\n\n#.Ignore.any.warnings
15680 20 72 65 6c 61 74 65 64 20 74 6f 20 64 6f 77 6e 6c 6f 61 64 69 6e 67 20 73 68 70 66 69 6c 65 73 .related.to.downloading.shpfiles
156a0 20 77 69 74 68 20 63 61 72 74 6f 70 79 5c 6e 69 6d 70 6f 72 74 20 77 61 72 6e 69 6e 67 73 5c 6e .with.cartopy\nimport.warnings\n
156c0 5c 6e 77 61 72 6e 69 6e 67 73 2e 73 69 6d 70 6c 65 66 69 6c 74 65 72 28 5c 22 69 67 6e 6f 72 65 \nwarnings.simplefilter(\"ignore
156e0 5c 22 29 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 \")\n\nimport.numpy.as.np\nimpor
15700 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 70 6c 6f 74 20 61 73 20 70 6c 74 5c 6e 69 6d 70 6f t.matplotlib.pyplot.as.plt\nimpo
15720 72 74 20 6e 65 74 77 6f 72 6b 78 20 61 73 20 6e 78 5c 6e 5c 6e 5c 6e 64 65 66 20 6d 69 6c 65 73 rt.networkx.as.nx\n\n\ndef.miles
15740 5f 67 72 61 70 68 28 29 3a 5c 6e 20 20 20 20 5c 22 5c 22 5c 22 52 65 74 75 72 6e 20 74 68 65 20 _graph():\n....\"\"\"Return.the.
15760 63 69 74 65 73 20 65 78 61 6d 70 6c 65 20 67 72 61 70 68 20 69 6e 20 6d 69 6c 65 73 5f 64 61 74 cites.example.graph.in.miles_dat
15780 2e 74 78 74 5c 6e 20 20 20 20 66 72 6f 6d 20 74 68 65 20 53 74 61 6e 66 6f 72 64 20 47 72 61 70 .txt\n....from.the.Stanford.Grap
157a0 68 42 61 73 65 2e 5c 6e 20 20 20 20 5c 22 5c 22 5c 22 5c 6e 20 20 20 20 23 20 6f 70 65 6e 20 66 hBase.\n....\"\"\"\n....#.open.f
157c0 69 6c 65 20 6d 69 6c 65 73 5f 64 61 74 2e 74 78 74 2e 67 7a 20 28 6f 72 20 6d 69 6c 65 73 5f 64 ile.miles_dat.txt.gz.(or.miles_d
157e0 61 74 2e 74 78 74 29 5c 6e 5c 6e 20 20 20 20 66 68 20 3d 20 67 7a 69 70 2e 6f 70 65 6e 28 5c 22 at.txt)\n\n....fh.=.gzip.open(\"
15800 6b 6e 75 74 68 5f 6d 69 6c 65 73 2e 74 78 74 2e 67 7a 5c 22 2c 20 5c 22 72 5c 22 29 5c 6e 5c 6e knuth_miles.txt.gz\",.\"r\")\n\n
15820 20 20 20 20 47 20 3d 20 6e 78 2e 47 72 61 70 68 28 29 5c 6e 20 20 20 20 47 2e 70 6f 73 69 74 69 ....G.=.nx.Graph()\n....G.positi
15840 6f 6e 20 3d 20 7b 7d 5c 6e 20 20 20 20 47 2e 70 6f 70 75 6c 61 74 69 6f 6e 20 3d 20 7b 7d 5c 6e on.=.{}\n....G.population.=.{}\n
15860 5c 6e 20 20 20 20 63 69 74 69 65 73 20 3d 20 5b 5d 5c 6e 20 20 20 20 66 6f 72 20 6c 69 6e 65 20 \n....cities.=.[]\n....for.line.
15880 69 6e 20 66 68 2e 72 65 61 64 6c 69 6e 65 73 28 29 3a 5c 6e 20 20 20 20 20 20 20 20 6c 69 6e 65 in.fh.readlines():\n........line
158a0 20 3d 20 6c 69 6e 65 2e 64 65 63 6f 64 65 28 29 5c 6e 20 20 20 20 20 20 20 20 69 66 20 6c 69 6e .=.line.decode()\n........if.lin
158c0 65 2e 73 74 61 72 74 73 77 69 74 68 28 5c 22 2a 5c 22 29 3a 20 20 23 20 73 6b 69 70 20 63 6f 6d e.startswith(\"*\"):..#.skip.com
158e0 6d 65 6e 74 73 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 5c 6e 5c 6e 20 ments\n............continue\n\n.
15900 20 20 20 20 20 20 20 6e 75 6d 66 69 6e 64 20 3d 20 72 65 2e 63 6f 6d 70 69 6c 65 28 72 5c 22 5e .......numfind.=.re.compile(r\"^
15920 5c 5c 64 2b 5c 22 29 5c 6e 5c 6e 20 20 20 20 20 20 20 20 69 66 20 6e 75 6d 66 69 6e 64 2e 6d 61 \\d+\")\n\n........if.numfind.ma
15940 74 63 68 28 6c 69 6e 65 29 3a 20 20 23 20 74 68 69 73 20 6c 69 6e 65 20 69 73 20 64 69 73 74 61 tch(line):..#.this.line.is.dista
15960 6e 63 65 73 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 64 69 73 74 20 3d 20 6c 69 6e 65 2e 73 70 nces\n............dist.=.line.sp
15980 6c 69 74 28 29 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 64 20 69 6e 20 64 69 73 74 lit()\n............for.d.in.dist
159a0 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 47 2e 61 64 64 5f 65 64 67 65 28 63 69 :\n................G.add_edge(ci
159c0 74 79 2c 20 63 69 74 69 65 73 5b 69 5d 2c 20 77 65 69 67 68 74 3d 69 6e 74 28 64 29 29 5c 6e 20 ty,.cities[i],.weight=int(d))\n.
159e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 20 3d 20 69 20 2b 20 31 5c 6e 20 20 20 20 20 20 ...............i.=.i.+.1\n......
15a00 20 20 65 6c 73 65 3a 20 20 23 20 74 68 69 73 20 6c 69 6e 65 20 69 73 20 61 20 63 69 74 79 2c 20 ..else:..#.this.line.is.a.city,.
15a20 70 6f 73 69 74 69 6f 6e 2c 20 70 6f 70 75 6c 61 74 69 6f 6e 5c 6e 20 20 20 20 20 20 20 20 20 20 position,.population\n..........
15a40 20 20 69 20 3d 20 31 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 28 63 69 74 79 2c 20 63 6f 6f 72 ..i.=.1\n............(city,.coor
15a60 64 70 6f 70 29 20 3d 20 6c 69 6e 65 2e 73 70 6c 69 74 28 5c 22 5b 5c 22 29 5c 6e 20 20 20 20 20 dpop).=.line.split(\"[\")\n.....
15a80 20 20 20 20 20 20 20 63 69 74 69 65 73 2e 69 6e 73 65 72 74 28 30 2c 20 63 69 74 79 29 5c 6e 20 .......cities.insert(0,.city)\n.
15aa0 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6f 72 64 2c 20 70 6f 70 29 20 3d 20 63 6f 6f 72 64 70 ...........(coord,.pop).=.coordp
15ac0 6f 70 2e 73 70 6c 69 74 28 5c 22 5d 5c 22 29 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 28 79 2c op.split(\"]\")\n............(y,
15ae0 20 78 29 20 3d 20 63 6f 6f 72 64 2e 73 70 6c 69 74 28 5c 22 2c 5c 22 29 5c 6e 5c 6e 20 20 20 20 .x).=.coord.split(\",\")\n\n....
15b00 20 20 20 20 20 20 20 20 47 2e 61 64 64 5f 6e 6f 64 65 28 63 69 74 79 29 5c 6e 20 20 20 20 20 20 ........G.add_node(city)\n......
15b20 20 20 20 20 20 20 23 20 61 73 73 69 67 6e 20 70 6f 73 69 74 69 6f 6e 20 2d 20 43 6f 6e 76 65 72 ......#.assign.position.-.Conver
15b40 74 20 73 74 72 69 6e 67 20 74 6f 20 6c 61 74 2f 6c 6f 6e 67 5c 6e 20 20 20 20 20 20 20 20 20 20 t.string.to.lat/long\n..........
15b60 20 20 47 2e 70 6f 73 69 74 69 6f 6e 5b 63 69 74 79 5d 20 3d 20 28 2d 66 6c 6f 61 74 28 78 29 20 ..G.position[city].=.(-float(x).
15b80 2f 20 31 30 30 2c 20 66 6c 6f 61 74 28 79 29 20 2f 20 31 30 30 29 5c 6e 20 20 20 20 20 20 20 20 /.100,.float(y)./.100)\n........
15ba0 20 20 20 20 47 2e 70 6f 70 75 6c 61 74 69 6f 6e 5b 63 69 74 79 5d 20 3d 20 66 6c 6f 61 74 28 70 ....G.population[city].=.float(p
15bc0 6f 70 29 20 2f 20 31 30 30 30 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 47 5c 6e 5c 6e 5c 6e 47 20 op)./.1000\n....return.G\n\n\nG.
15be0 3d 20 6d 69 6c 65 73 5f 67 72 61 70 68 28 29 5c 6e 5c 6e 70 72 69 6e 74 28 5c 22 4c 6f 61 64 65 =.miles_graph()\n\nprint(\"Loade
15c00 64 20 6d 69 6c 65 73 5f 64 61 74 2e 74 78 74 20 63 6f 6e 74 61 69 6e 69 6e 67 20 31 32 38 20 63 d.miles_dat.txt.containing.128.c
15c20 69 74 69 65 73 2e 5c 22 29 5c 6e 70 72 69 6e 74 28 47 29 5c 6e 5c 6e 23 20 6d 61 6b 65 20 6e 65 ities.\")\nprint(G)\n\n#.make.ne
15c40 77 20 67 72 61 70 68 20 6f 66 20 63 69 74 65 73 2c 20 65 64 67 65 20 69 66 20 6c 65 73 73 20 74 w.graph.of.cites,.edge.if.less.t
15c60 68 65 6e 20 33 30 30 20 6d 69 6c 65 73 20 62 65 74 77 65 65 6e 20 74 68 65 6d 5c 6e 48 20 3d 20 hen.300.miles.between.them\nH.=.
15c80 6e 78 2e 47 72 61 70 68 28 29 5c 6e 66 6f 72 20 76 20 69 6e 20 47 3a 5c 6e 20 20 20 20 48 2e 61 nx.Graph()\nfor.v.in.G:\n....H.a
15ca0 64 64 5f 6e 6f 64 65 28 76 29 5c 6e 66 6f 72 20 75 2c 20 76 2c 20 64 20 69 6e 20 47 2e 65 64 67 dd_node(v)\nfor.u,.v,.d.in.G.edg
15cc0 65 73 28 64 61 74 61 3d 54 72 75 65 29 3a 5c 6e 20 20 20 20 69 66 20 64 5b 5c 22 77 65 69 67 68 es(data=True):\n....if.d[\"weigh
15ce0 74 5c 22 5d 20 3c 20 33 30 30 3a 5c 6e 20 20 20 20 20 20 20 20 48 2e 61 64 64 5f 65 64 67 65 28 t\"].<.300:\n........H.add_edge(
15d00 75 2c 20 76 29 5c 6e 5c 6e 23 20 64 72 61 77 20 77 69 74 68 20 6d 61 74 70 6c 6f 74 6c 69 62 2f u,.v)\n\n#.draw.with.matplotlib/
15d20 70 79 6c 61 62 5c 6e 66 69 67 20 3d 20 70 6c 74 2e 66 69 67 75 72 65 28 66 69 67 73 69 7a 65 3d pylab\nfig.=.plt.figure(figsize=
15d40 28 38 2c 20 36 29 29 5c 6e 5c 6e 23 20 6e 6f 64 65 73 20 63 6f 6c 6f 72 65 64 20 62 79 20 64 65 (8,.6))\n\n#.nodes.colored.by.de
15d60 67 72 65 65 20 73 69 7a 65 64 20 62 79 20 70 6f 70 75 6c 61 74 69 6f 6e 5c 6e 6e 6f 64 65 5f 63 gree.sized.by.population\nnode_c
15d80 6f 6c 6f 72 20 3d 20 5b 66 6c 6f 61 74 28 48 2e 64 65 67 72 65 65 28 76 29 29 20 66 6f 72 20 76 olor.=.[float(H.degree(v)).for.v
15da0 20 69 6e 20 48 5d 5c 6e 5c 6e 23 20 55 73 65 20 63 61 72 74 6f 70 79 20 74 6f 20 70 72 6f 76 69 .in.H]\n\n#.Use.cartopy.to.provi
15dc0 64 65 20 61 20 62 61 63 6b 64 72 6f 70 20 66 6f 72 20 74 68 65 20 76 69 73 75 61 6c 69 7a 61 74 de.a.backdrop.for.the.visualizat
15de0 69 6f 6e 5c 6e 74 72 79 3a 5c 6e 20 20 20 20 69 6d 70 6f 72 74 20 63 61 72 74 6f 70 79 2e 63 72 ion\ntry:\n....import.cartopy.cr
15e00 73 20 61 73 20 63 63 72 73 5c 6e 20 20 20 20 69 6d 70 6f 72 74 20 63 61 72 74 6f 70 79 2e 69 6f s.as.ccrs\n....import.cartopy.io
15e20 2e 73 68 61 70 65 72 65 61 64 65 72 20 61 73 20 73 68 70 72 65 61 64 65 72 5c 6e 5c 6e 20 20 20 .shapereader.as.shpreader\n\n...
15e40 20 61 78 20 3d 20 66 69 67 2e 61 64 64 5f 61 78 65 73 28 5b 30 2c 20 30 2c 20 31 2c 20 31 5d 2c .ax.=.fig.add_axes([0,.0,.1,.1],
15e60 20 70 72 6f 6a 65 63 74 69 6f 6e 3d 63 63 72 73 2e 4c 61 6d 62 65 72 74 43 6f 6e 66 6f 72 6d 61 .projection=ccrs.LambertConforma
15e80 6c 28 29 2c 20 66 72 61 6d 65 6f 6e 3d 46 61 6c 73 65 29 5c 6e 20 20 20 20 61 78 2e 73 65 74 5f l(),.frameon=False)\n....ax.set_
15ea0 65 78 74 65 6e 74 28 5b 2d 31 32 35 2c 20 2d 36 36 2e 35 2c 20 32 30 2c 20 35 30 5d 2c 20 63 63 extent([-125,.-66.5,.20,.50],.cc
15ec0 72 73 2e 47 65 6f 64 65 74 69 63 28 29 29 5c 6e 20 20 20 20 23 20 41 64 64 20 6d 61 70 20 6f 66 rs.Geodetic())\n....#.Add.map.of
15ee0 20 63 6f 75 6e 74 72 69 65 73 20 26 20 55 53 20 73 74 61 74 65 73 20 61 73 20 61 20 62 61 63 6b .countries.&.US.states.as.a.back
15f00 64 72 6f 70 5c 6e 20 20 20 20 66 6f 72 20 73 68 61 70 65 6e 61 6d 65 20 69 6e 20 28 5c 22 61 64 drop\n....for.shapename.in.(\"ad
15f20 6d 69 6e 5f 31 5f 73 74 61 74 65 73 5f 70 72 6f 76 69 6e 63 65 73 5f 6c 61 6b 65 73 5f 73 68 70 min_1_states_provinces_lakes_shp
15f40 5c 22 2c 20 5c 22 61 64 6d 69 6e 5f 30 5f 63 6f 75 6e 74 72 69 65 73 5c 22 29 3a 5c 6e 20 20 20 \",.\"admin_0_countries\"):\n...
15f60 20 20 20 20 20 73 68 70 20 3d 20 73 68 70 72 65 61 64 65 72 2e 6e 61 74 75 72 61 6c 5f 65 61 72 .....shp.=.shpreader.natural_ear
15f80 74 68 28 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 72 65 73 6f 6c 75 74 69 6f 6e 3d 5c 22 31 31 th(\n............resolution=\"11
15fa0 30 6d 5c 22 2c 20 63 61 74 65 67 6f 72 79 3d 5c 22 63 75 6c 74 75 72 61 6c 5c 22 2c 20 6e 61 6d 0m\",.category=\"cultural\",.nam
15fc0 65 3d 73 68 61 70 65 6e 61 6d 65 5c 6e 20 20 20 20 20 20 20 20 29 5c 6e 20 20 20 20 20 20 20 20 e=shapename\n........)\n........
15fe0 61 78 2e 61 64 64 5f 67 65 6f 6d 65 74 72 69 65 73 28 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 ax.add_geometries(\n............
16000 73 68 70 72 65 61 64 65 72 2e 52 65 61 64 65 72 28 73 68 70 29 2e 67 65 6f 6d 65 74 72 69 65 73 shpreader.Reader(shp).geometries
16020 28 29 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 63 63 72 73 2e 50 6c 61 74 65 43 61 72 72 65 (),\n............ccrs.PlateCarre
16040 65 28 29 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 66 61 63 65 63 6f 6c 6f 72 3d 5c 22 6e 6f e(),\n............facecolor=\"no
16060 6e 65 5c 22 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 65 64 67 65 63 6f 6c 6f 72 3d 5c 22 6b ne\",\n............edgecolor=\"k
16080 5c 22 2c 5c 6e 20 20 20 20 20 20 20 20 29 5c 6e 20 20 20 20 23 20 4e 4f 54 45 3a 20 57 68 65 6e \",\n........)\n....#.NOTE:.When
160a0 20 75 73 69 6e 67 20 63 61 72 74 6f 70 79 2c 20 75 73 65 20 6d 61 74 70 6c 6f 74 6c 69 62 20 64 .using.cartopy,.use.matplotlib.d
160c0 69 72 65 63 74 6c 79 20 72 61 74 68 65 72 20 74 68 61 6e 20 6e 78 2e 64 72 61 77 5c 6e 20 20 20 irectly.rather.than.nx.draw\n...
160e0 20 23 20 74 6f 20 74 61 6b 65 20 61 64 76 61 6e 74 61 67 65 20 6f 66 20 74 68 65 20 63 61 72 74 .#.to.take.advantage.of.the.cart
16100 6f 70 79 20 74 72 61 6e 73 66 6f 72 6d 73 5c 6e 20 20 20 20 61 78 2e 73 63 61 74 74 65 72 28 5c opy.transforms\n....ax.scatter(\
16120 6e 20 20 20 20 20 20 20 20 2a 6e 70 2e 61 72 72 61 79 28 6c 69 73 74 28 47 2e 70 6f 73 69 74 69 n........*np.array(list(G.positi
16140 6f 6e 2e 76 61 6c 75 65 73 28 29 29 29 2e 54 2c 5c 6e 20 20 20 20 20 20 20 20 73 3d 5b 47 2e 70 on.values())).T,\n........s=[G.p
16160 6f 70 75 6c 61 74 69 6f 6e 5b 76 5d 20 66 6f 72 20 76 20 69 6e 20 48 5d 2c 5c 6e 20 20 20 20 20 opulation[v].for.v.in.H],\n.....
16180 20 20 20 63 3d 6e 6f 64 65 5f 63 6f 6c 6f 72 2c 5c 6e 20 20 20 20 20 20 20 20 74 72 61 6e 73 66 ...c=node_color,\n........transf
161a0 6f 72 6d 3d 63 63 72 73 2e 50 6c 61 74 65 43 61 72 72 65 65 28 29 2c 5c 6e 20 20 20 20 20 20 20 orm=ccrs.PlateCarree(),\n.......
161c0 20 7a 6f 72 64 65 72 3d 31 30 30 20 20 23 20 45 6e 73 75 72 65 20 6e 6f 64 65 73 20 6c 69 65 20 .zorder=100..#.Ensure.nodes.lie.
161e0 6f 6e 20 74 6f 70 20 6f 66 20 65 64 67 65 73 2f 73 74 61 74 65 20 6c 69 6e 65 73 5c 6e 20 20 20 on.top.of.edges/state.lines\n...
16200 20 29 5c 6e 20 20 20 20 23 20 50 6c 6f 74 20 65 64 67 65 73 20 62 65 74 77 65 65 6e 20 74 68 65 .)\n....#.Plot.edges.between.the
16220 20 63 69 74 69 65 73 5c 6e 20 20 20 20 66 6f 72 20 65 64 67 65 20 69 6e 20 48 2e 65 64 67 65 73 .cities\n....for.edge.in.H.edges
16240 28 29 3a 5c 6e 20 20 20 20 20 20 20 20 65 64 67 65 5f 63 6f 6f 72 64 73 20 3d 20 6e 70 2e 61 72 ():\n........edge_coords.=.np.ar
16260 72 61 79 28 5b 47 2e 70 6f 73 69 74 69 6f 6e 5b 76 5d 20 66 6f 72 20 76 20 69 6e 20 65 64 67 65 ray([G.position[v].for.v.in.edge
16280 5d 29 5c 6e 20 20 20 20 20 20 20 20 61 78 2e 70 6c 6f 74 28 5c 6e 20 20 20 20 20 20 20 20 20 20 ])\n........ax.plot(\n..........
162a0 20 20 65 64 67 65 5f 63 6f 6f 72 64 73 5b 3a 2c 20 30 5d 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 ..edge_coords[:,.0],\n..........
162c0 20 20 65 64 67 65 5f 63 6f 6f 72 64 73 5b 3a 2c 20 31 5d 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 ..edge_coords[:,.1],\n..........
162e0 20 20 74 72 61 6e 73 66 6f 72 6d 3d 63 63 72 73 2e 50 6c 61 74 65 43 61 72 72 65 65 28 29 2c 5c ..transform=ccrs.PlateCarree(),\
16300 6e 20 20 20 20 20 20 20 20 20 20 20 20 6c 69 6e 65 77 69 64 74 68 3d 30 2e 37 35 2c 5c 6e 20 20 n............linewidth=0.75,\n..
16320 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6f 72 3d 5c 22 6b 5c 22 2c 5c 6e 20 20 20 20 20 20 20 20 ..........color=\"k\",\n........
16340 29 5c 6e 5c 6e 65 78 63 65 70 74 20 49 6d 70 6f 72 74 45 72 72 6f 72 3a 5c 6e 20 20 20 20 23 20 )\n\nexcept.ImportError:\n....#.
16360 49 66 20 63 61 72 74 6f 70 79 20 69 73 20 75 6e 61 76 61 69 6c 61 62 6c 65 2c 20 74 68 65 20 62 If.cartopy.is.unavailable,.the.b
16380 61 63 6b 64 72 6f 70 20 66 6f 72 20 74 68 65 20 70 6c 6f 74 20 77 69 6c 6c 20 62 65 20 62 6c 61 ackdrop.for.the.plot.will.be.bla
163a0 6e 6b 3b 5c 6e 20 20 20 20 23 20 74 68 6f 75 67 68 20 79 6f 75 20 73 68 6f 75 6c 64 20 73 74 69 nk;\n....#.though.you.should.sti
163c0 6c 6c 20 62 65 20 61 62 6c 65 20 74 6f 20 64 69 73 63 65 72 6e 20 74 68 65 20 67 65 6e 65 72 61 ll.be.able.to.discern.the.genera
163e0 6c 20 73 68 61 70 65 20 6f 66 20 74 68 65 20 55 53 5c 6e 20 20 20 20 23 20 66 72 6f 6d 20 67 72 l.shape.of.the.US\n....#.from.gr
16400 61 70 68 20 6e 6f 64 65 73 20 61 6e 64 20 65 64 67 65 73 21 5c 6e 20 20 20 20 6e 78 2e 64 72 61 aph.nodes.and.edges!\n....nx.dra
16420 77 28 5c 6e 20 20 20 20 20 20 20 20 48 2c 5c 6e 20 20 20 20 20 20 20 20 47 2e 70 6f 73 69 74 69 w(\n........H,\n........G.positi
16440 6f 6e 2c 5c 6e 20 20 20 20 20 20 20 20 6e 6f 64 65 5f 73 69 7a 65 3d 5b 47 2e 70 6f 70 75 6c 61 on,\n........node_size=[G.popula
16460 74 69 6f 6e 5b 76 5d 20 66 6f 72 20 76 20 69 6e 20 48 5d 2c 5c 6e 20 20 20 20 20 20 20 20 6e 6f tion[v].for.v.in.H],\n........no
16480 64 65 5f 63 6f 6c 6f 72 3d 6e 6f 64 65 5f 63 6f 6c 6f 72 2c 5c 6e 20 20 20 20 20 20 20 20 77 69 de_color=node_color,\n........wi
164a0 74 68 5f 6c 61 62 65 6c 73 3d 46 61 6c 73 65 2c 5c 6e 20 20 20 20 29 5c 6e 5c 6e 70 6c 74 2e 73 th_labels=False,\n....)\n\nplt.s
164c0 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
164e0 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":.{...
16500 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",.
16520 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",.....
16540 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".....},....."
16560 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
16580 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
165a0 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....
165c0 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":.".
165e0 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
16600 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",.
16620 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
16640 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
16660 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 39 2e python3",......."version":."3.9.
16680 31 36 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 16".....}...},..."nbformat":.4,.
166a0 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 00 .."nbformat_minor":.0.}PK.......
166c0 00 04 0f 5a 56 85 ca 0e 59 a6 16 00 00 a6 16 00 00 20 00 00 00 64 72 61 77 69 6e 67 2f 70 6c 6f ...ZV...Y............drawing/plo
166e0 74 5f 63 68 65 73 73 5f 6d 61 73 74 65 72 73 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 22 t_chess_masters.ipynb{..."cells"
16700 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
16720 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
16740 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":.{.........
16760 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.......},.....
16780 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":
167a0 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".
167c0 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
167e0 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
16800 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":.[.....
16820 20 20 20 20 22 5c 6e 23 20 43 68 65 73 73 20 4d 61 73 74 65 72 73 5c 6e 5c 6e 41 6e 20 65 78 61 ...."\n#.Chess.Masters\n\nAn.exa
16840 6d 70 6c 65 20 6f 66 20 74 68 65 20 4d 75 6c 74 69 44 69 47 72 61 70 68 20 63 6c 61 73 73 2e 5c mple.of.the.MultiDiGraph.class.\
16860 6e 5c 6e 54 68 65 20 66 75 6e 63 74 69 6f 6e 20 60 63 68 65 73 73 5f 70 67 6e 5f 67 72 61 70 68 n\nThe.function.`chess_pgn_graph
16880 60 20 72 65 61 64 73 20 61 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 6f 66 20 63 68 65 73 73 20 6d 61 `.reads.a.collection.of.chess.ma
168a0 74 63 68 65 73 20 73 74 6f 72 65 64 20 69 6e 5c 6e 74 68 65 20 73 70 65 63 69 66 69 65 64 20 50 tches.stored.in\nthe.specified.P
168c0 47 4e 20 66 69 6c 65 20 28 50 47 4e 20 3d 5c 22 50 6f 72 74 61 62 6c 65 20 47 61 6d 65 20 4e 6f GN.file.(PGN.=\"Portable.Game.No
168e0 74 61 74 69 6f 6e 5c 22 29 2e 20 20 48 65 72 65 20 74 68 65 20 28 63 6f 6d 70 72 65 73 73 65 64 tation\")...Here.the.(compressed
16900 29 5c 6e 64 65 66 61 75 6c 74 20 66 69 6c 65 3a 3a 5c 6e 5c 6e 20 20 20 20 63 68 65 73 73 5f 6d )\ndefault.file::\n\n....chess_m
16920 61 73 74 65 72 73 5f 57 43 43 2e 70 67 6e 2e 62 7a 32 5c 6e 5c 6e 63 6f 6e 74 61 69 6e 73 20 61 asters_WCC.pgn.bz2\n\ncontains.a
16940 6c 6c 20 36 38 35 20 57 6f 72 6c 64 20 43 68 65 73 73 20 43 68 61 6d 70 69 6f 6e 73 68 69 70 20 ll.685.World.Chess.Championship.
16960 6d 61 74 63 68 65 73 20 66 72 6f 6d 20 31 38 38 36 2d 2d 31 39 38 35 2e 5c 6e 28 64 61 74 61 20 matches.from.1886--1985.\n(data.
16980 66 72 6f 6d 20 68 74 74 70 3a 2f 2f 63 68 65 73 73 70 72 6f 62 6c 65 6d 2e 6d 79 2d 66 72 65 65 from.http://chessproblem.my-free
169a0 2d 67 61 6d 65 73 2e 63 6f 6d 2f 63 68 65 73 73 2f 67 61 6d 65 73 2f 44 6f 77 6e 6c 6f 61 64 2d -games.com/chess/games/Download-
169c0 50 47 4e 2e 70 68 70 29 5c 6e 5c 6e 54 68 65 20 60 63 68 65 73 73 5f 70 67 6e 5f 67 72 61 70 68 PGN.php)\n\nThe.`chess_pgn_graph
169e0 28 29 60 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 61 20 60 4d 75 6c 74 69 44 69 47 ()`.function.returns.a.`MultiDiG
16a00 72 61 70 68 60 20 77 69 74 68 20 6d 75 6c 74 69 70 6c 65 20 65 64 67 65 73 2e 5c 6e 45 61 63 68 raph`.with.multiple.edges.\nEach
16a20 20 6e 6f 64 65 20 69 73 20 74 68 65 20 6c 61 73 74 20 6e 61 6d 65 20 6f 66 20 61 20 63 68 65 73 .node.is.the.last.name.of.a.ches
16a40 73 20 6d 61 73 74 65 72 2e 20 45 61 63 68 20 65 64 67 65 20 69 73 20 64 69 72 65 63 74 65 64 20 s.master..Each.edge.is.directed.
16a60 66 72 6f 6d 20 77 68 69 74 65 5c 6e 74 6f 20 62 6c 61 63 6b 20 61 6e 64 20 63 6f 6e 74 61 69 6e from.white\nto.black.and.contain
16a80 73 20 73 65 6c 65 63 74 65 64 20 67 61 6d 65 20 69 6e 66 6f 2e 5c 6e 5c 6e 54 68 65 20 6b 65 79 s.selected.game.info.\n\nThe.key
16aa0 20 73 74 61 74 65 6d 65 6e 74 20 69 6e 20 60 63 68 65 73 73 5f 70 67 6e 5f 67 72 61 70 68 60 20 .statement.in.`chess_pgn_graph`.
16ac0 62 65 6c 6f 77 20 69 73 3a 3a 5c 6e 5c 6e 20 20 20 20 47 2e 61 64 64 5f 65 64 67 65 28 77 68 69 below.is::\n\n....G.add_edge(whi
16ae0 74 65 2c 20 62 6c 61 63 6b 2c 20 67 61 6d 65 5f 69 6e 66 6f 29 5c 6e 5c 6e 77 68 65 72 65 20 60 te,.black,.game_info)\n\nwhere.`
16b00 67 61 6d 65 5f 69 6e 66 6f 60 20 69 73 20 61 20 60 64 69 63 74 60 20 64 65 73 63 72 69 62 69 6e game_info`.is.a.`dict`.describin
16b20 67 20 65 61 63 68 20 67 61 6d 65 2e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 g.each.game.\n".......].....},..
16b40 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",.
16b60 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,..
16b80 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
16ba0 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
16bc0 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":.[...
16be0 20 20 20 20 20 20 22 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 ......"import.matplotlib.pyplot.
16c00 61 73 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 5c as.plt\nimport.networkx.as.nx\n\
16c20 6e 23 20 74 61 67 20 6e 61 6d 65 73 20 73 70 65 63 69 66 79 69 6e 67 20 77 68 61 74 20 67 61 6d n#.tag.names.specifying.what.gam
16c40 65 20 69 6e 66 6f 20 73 68 6f 75 6c 64 20 62 65 5c 6e 23 20 73 74 6f 72 65 64 20 69 6e 20 74 68 e.info.should.be\n#.stored.in.th
16c60 65 20 64 69 63 74 20 6f 6e 20 65 61 63 68 20 64 69 67 72 61 70 68 20 65 64 67 65 5c 6e 67 61 6d e.dict.on.each.digraph.edge\ngam
16c80 65 5f 64 65 74 61 69 6c 73 20 3d 20 5b 5c 22 45 76 65 6e 74 5c 22 2c 20 5c 22 44 61 74 65 5c 22 e_details.=.[\"Event\",.\"Date\"
16ca0 2c 20 5c 22 52 65 73 75 6c 74 5c 22 2c 20 5c 22 45 43 4f 5c 22 2c 20 5c 22 53 69 74 65 5c 22 5d ,.\"Result\",.\"ECO\",.\"Site\"]
16cc0 5c 6e 5c 6e 5c 6e 64 65 66 20 63 68 65 73 73 5f 70 67 6e 5f 67 72 61 70 68 28 70 67 6e 5f 66 69 \n\n\ndef.chess_pgn_graph(pgn_fi
16ce0 6c 65 3d 5c 22 63 68 65 73 73 5f 6d 61 73 74 65 72 73 5f 57 43 43 2e 70 67 6e 2e 62 7a 32 5c 22 le=\"chess_masters_WCC.pgn.bz2\"
16d00 29 3a 5c 6e 20 20 20 20 5c 22 5c 22 5c 22 52 65 61 64 20 63 68 65 73 73 20 67 61 6d 65 73 20 69 ):\n....\"\"\"Read.chess.games.i
16d20 6e 20 70 67 6e 20 66 6f 72 6d 61 74 20 69 6e 20 70 67 6e 5f 66 69 6c 65 2e 5c 6e 5c 6e 20 20 20 n.pgn.format.in.pgn_file.\n\n...
16d40 20 46 69 6c 65 6e 61 6d 65 73 20 65 6e 64 69 6e 67 20 69 6e 20 2e 62 7a 32 20 77 69 6c 6c 20 62 .Filenames.ending.in..bz2.will.b
16d60 65 20 75 6e 63 6f 6d 70 72 65 73 73 65 64 2e 5c 6e 5c 6e 20 20 20 20 52 65 74 75 72 6e 20 74 68 e.uncompressed.\n\n....Return.th
16d80 65 20 4d 75 6c 74 69 44 69 47 72 61 70 68 20 6f 66 20 70 6c 61 79 65 72 73 20 63 6f 6e 6e 65 63 e.MultiDiGraph.of.players.connec
16da0 74 65 64 20 62 79 20 61 20 63 68 65 73 73 20 67 61 6d 65 2e 5c 6e 20 20 20 20 45 64 67 65 73 20 ted.by.a.chess.game.\n....Edges.
16dc0 63 6f 6e 74 61 69 6e 20 67 61 6d 65 20 64 61 74 61 20 69 6e 20 61 20 64 69 63 74 2e 5c 6e 5c 6e contain.game.data.in.a.dict.\n\n
16de0 20 20 20 20 5c 22 5c 22 5c 22 5c 6e 20 20 20 20 69 6d 70 6f 72 74 20 62 7a 32 5c 6e 5c 6e 20 20 ....\"\"\"\n....import.bz2\n\n..
16e00 20 20 47 20 3d 20 6e 78 2e 4d 75 6c 74 69 44 69 47 72 61 70 68 28 29 5c 6e 20 20 20 20 67 61 6d ..G.=.nx.MultiDiGraph()\n....gam
16e20 65 20 3d 20 7b 7d 5c 6e 20 20 20 20 77 69 74 68 20 62 7a 32 2e 42 5a 32 46 69 6c 65 28 70 67 6e e.=.{}\n....with.bz2.BZ2File(pgn
16e40 5f 66 69 6c 65 29 20 61 73 20 64 61 74 61 66 69 6c 65 3a 5c 6e 20 20 20 20 20 20 20 20 6c 69 6e _file).as.datafile:\n........lin
16e60 65 73 20 3d 20 5b 6c 69 6e 65 2e 64 65 63 6f 64 65 28 29 2e 72 73 74 72 69 70 28 5c 22 5c 5c 72 es.=.[line.decode().rstrip(\"\\r
16e80 5c 5c 6e 5c 22 29 20 66 6f 72 20 6c 69 6e 65 20 69 6e 20 64 61 74 61 66 69 6c 65 5d 5c 6e 20 20 \\n\").for.line.in.datafile]\n..
16ea0 20 20 66 6f 72 20 6c 69 6e 65 20 69 6e 20 6c 69 6e 65 73 3a 5c 6e 20 20 20 20 20 20 20 20 69 66 ..for.line.in.lines:\n........if
16ec0 20 6c 69 6e 65 2e 73 74 61 72 74 73 77 69 74 68 28 5c 22 5b 5c 22 29 3a 5c 6e 20 20 20 20 20 20 .line.startswith(\"[\"):\n......
16ee0 20 20 20 20 20 20 74 61 67 2c 20 76 61 6c 75 65 20 3d 20 6c 69 6e 65 5b 31 3a 2d 31 5d 2e 73 70 ......tag,.value.=.line[1:-1].sp
16f00 6c 69 74 28 5c 22 20 5c 22 2c 20 31 29 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 67 61 6d 65 5b lit(\".\",.1)\n............game[
16f20 73 74 72 28 74 61 67 29 5d 20 3d 20 76 61 6c 75 65 2e 73 74 72 69 70 28 27 5c 22 27 29 5c 6e 20 str(tag)].=.value.strip('\"')\n.
16f40 20 20 20 20 20 20 20 65 6c 73 65 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 23 20 65 6d 70 74 .......else:\n............#.empt
16f60 79 20 6c 69 6e 65 20 61 66 74 65 72 20 74 61 67 20 73 65 74 20 69 6e 64 69 63 61 74 65 73 5c 6e y.line.after.tag.set.indicates\n
16f80 20 20 20 20 20 20 20 20 20 20 20 20 23 20 77 65 20 66 69 6e 69 73 68 65 64 20 72 65 61 64 69 6e ............#.we.finished.readin
16fa0 67 20 67 61 6d 65 20 69 6e 66 6f 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 67 61 6d 65 g.game.info\n............if.game
16fc0 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 68 69 74 65 20 3d 20 67 61 6d 65 2e :\n................white.=.game.
16fe0 70 6f 70 28 5c 22 57 68 69 74 65 5c 22 29 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 pop(\"White\")\n................
17000 62 6c 61 63 6b 20 3d 20 67 61 6d 65 2e 70 6f 70 28 5c 22 42 6c 61 63 6b 5c 22 29 5c 6e 20 20 20 black.=.game.pop(\"Black\")\n...
17020 20 20 20 20 20 20 20 20 20 20 20 20 20 47 2e 61 64 64 5f 65 64 67 65 28 77 68 69 74 65 2c 20 62 .............G.add_edge(white,.b
17040 6c 61 63 6b 2c 20 2a 2a 67 61 6d 65 29 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 lack,.**game)\n................g
17060 61 6d 65 20 3d 20 7b 7d 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 47 5c 6e 5c 6e 5c 6e 47 20 3d 20 ame.=.{}\n....return.G\n\n\nG.=.
17080 63 68 65 73 73 5f 70 67 6e 5f 67 72 61 70 68 28 29 5c 6e 5c 6e 70 72 69 6e 74 28 5c 6e 20 20 20 chess_pgn_graph()\n\nprint(\n...
170a0 20 66 5c 22 4c 6f 61 64 65 64 20 7b 47 2e 6e 75 6d 62 65 72 5f 6f 66 5f 65 64 67 65 73 28 29 7d .f\"Loaded.{G.number_of_edges()}
170c0 20 63 68 65 73 73 20 67 61 6d 65 73 20 62 65 74 77 65 65 6e 20 7b 47 2e 6e 75 6d 62 65 72 5f 6f .chess.games.between.{G.number_o
170e0 66 5f 6e 6f 64 65 73 28 29 7d 20 70 6c 61 79 65 72 73 5c 5c 6e 5c 22 5c 6e 29 5c 6e 5c 6e 23 20 f_nodes()}.players\\n\"\n)\n\n#.
17100 69 64 65 6e 74 69 66 79 20 63 6f 6e 6e 65 63 74 65 64 20 63 6f 6d 70 6f 6e 65 6e 74 73 20 6f 66 identify.connected.components.of
17120 20 74 68 65 20 75 6e 64 69 72 65 63 74 65 64 20 76 65 72 73 69 6f 6e 5c 6e 48 20 3d 20 47 2e 74 .the.undirected.version\nH.=.G.t
17140 6f 5f 75 6e 64 69 72 65 63 74 65 64 28 29 5c 6e 47 63 63 20 3d 20 5b 48 2e 73 75 62 67 72 61 70 o_undirected()\nGcc.=.[H.subgrap
17160 68 28 63 29 20 66 6f 72 20 63 20 69 6e 20 6e 78 2e 63 6f 6e 6e 65 63 74 65 64 5f 63 6f 6d 70 6f h(c).for.c.in.nx.connected_compo
17180 6e 65 6e 74 73 28 48 29 5d 5c 6e 69 66 20 6c 65 6e 28 47 63 63 29 20 3e 20 31 3a 5c 6e 20 20 20 nents(H)]\nif.len(Gcc).>.1:\n...
171a0 20 70 72 69 6e 74 28 66 5c 22 4e 6f 74 65 20 74 68 65 20 64 69 73 63 6f 6e 6e 65 63 74 65 64 20 .print(f\"Note.the.disconnected.
171c0 63 6f 6d 70 6f 6e 65 6e 74 20 63 6f 6e 73 69 73 74 69 6e 67 20 6f 66 3a 5c 5c 6e 7b 47 63 63 5b component.consisting.of:\\n{Gcc[
171e0 31 5d 2e 6e 6f 64 65 73 28 29 7d 5c 22 29 5c 6e 5c 6e 23 20 66 69 6e 64 20 61 6c 6c 20 67 61 6d 1].nodes()}\")\n\n#.find.all.gam
17200 65 73 20 77 69 74 68 20 42 39 37 20 6f 70 65 6e 69 6e 67 20 28 61 73 20 64 65 73 63 72 69 62 65 es.with.B97.opening.(as.describe
17220 64 20 69 6e 20 45 43 4f 29 5c 6e 6f 70 65 6e 69 6e 67 73 20 3d 20 7b 67 61 6d 65 5f 69 6e 66 6f d.in.ECO)\nopenings.=.{game_info
17240 5b 5c 22 45 43 4f 5c 22 5d 20 66 6f 72 20 28 77 68 69 74 65 2c 20 62 6c 61 63 6b 2c 20 67 61 6d [\"ECO\"].for.(white,.black,.gam
17260 65 5f 69 6e 66 6f 29 20 69 6e 20 47 2e 65 64 67 65 73 28 64 61 74 61 3d 54 72 75 65 29 7d 5c 6e e_info).in.G.edges(data=True)}\n
17280 70 72 69 6e 74 28 66 5c 22 5c 5c 6e 46 72 6f 6d 20 61 20 74 6f 74 61 6c 20 6f 66 20 7b 6c 65 6e print(f\"\\nFrom.a.total.of.{len
172a0 28 6f 70 65 6e 69 6e 67 73 29 7d 20 64 69 66 66 65 72 65 6e 74 20 6f 70 65 6e 69 6e 67 73 2c 5c (openings)}.different.openings,\
172c0 22 29 5c 6e 70 72 69 6e 74 28 5c 22 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 67 61 6d 65 73 20 ")\nprint(\"the.following.games.
172e0 75 73 65 64 20 74 68 65 20 53 69 63 69 6c 69 61 6e 20 6f 70 65 6e 69 6e 67 5c 22 29 5c 6e 70 72 used.the.Sicilian.opening\")\npr
17300 69 6e 74 28 27 77 69 74 68 20 74 68 65 20 4e 61 6a 64 6f 72 66 66 20 37 2e 2e 2e 51 62 36 20 5c int('with.the.Najdorff.7...Qb6.\
17320 22 50 6f 69 73 6f 6e 65 64 20 50 61 77 6e 5c 22 20 76 61 72 69 61 74 69 6f 6e 2e 5c 5c 6e 27 29 "Poisoned.Pawn\".variation.\\n')
17340 5c 6e 5c 6e 66 6f 72 20 77 68 69 74 65 2c 20 62 6c 61 63 6b 2c 20 67 61 6d 65 5f 69 6e 66 6f 20 \n\nfor.white,.black,.game_info.
17360 69 6e 20 47 2e 65 64 67 65 73 28 64 61 74 61 3d 54 72 75 65 29 3a 5c 6e 20 20 20 20 69 66 20 67 in.G.edges(data=True):\n....if.g
17380 61 6d 65 5f 69 6e 66 6f 5b 5c 22 45 43 4f 5c 22 5d 20 3d 3d 20 5c 22 42 39 37 5c 22 3a 5c 6e 20 ame_info[\"ECO\"].==.\"B97\":\n.
173a0 20 20 20 20 20 20 20 73 75 6d 6d 61 72 79 20 3d 20 66 5c 22 7b 77 68 69 74 65 7d 20 76 73 20 7b .......summary.=.f\"{white}.vs.{
173c0 62 6c 61 63 6b 7d 5c 5c 6e 5c 22 5c 6e 20 20 20 20 20 20 20 20 66 6f 72 20 6b 2c 20 76 20 69 6e black}\\n\"\n........for.k,.v.in
173e0 20 67 61 6d 65 5f 69 6e 66 6f 2e 69 74 65 6d 73 28 29 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 .game_info.items():\n...........
17400 20 73 75 6d 6d 61 72 79 20 2b 3d 20 66 5c 22 20 20 20 7b 6b 7d 3a 20 7b 76 7d 5c 5c 6e 5c 22 5c .summary.+=.f\"...{k}:.{v}\\n\"\
17420 6e 20 20 20 20 20 20 20 20 73 75 6d 6d 61 72 79 20 2b 3d 20 5c 22 5c 5c 6e 5c 22 5c 6e 20 20 20 n........summary.+=.\"\\n\"\n...
17440 20 20 20 20 20 70 72 69 6e 74 28 73 75 6d 6d 61 72 79 29 5c 6e 5c 6e 23 20 6d 61 6b 65 20 6e 65 .....print(summary)\n\n#.make.ne
17460 77 20 75 6e 64 69 72 65 63 74 65 64 20 67 72 61 70 68 20 48 20 77 69 74 68 6f 75 74 20 6d 75 6c w.undirected.graph.H.without.mul
17480 74 69 2d 65 64 67 65 73 5c 6e 48 20 3d 20 6e 78 2e 47 72 61 70 68 28 47 29 5c 6e 5c 6e 23 20 65 ti-edges\nH.=.nx.Graph(G)\n\n#.e
174a0 64 67 65 20 77 69 64 74 68 20 69 73 20 70 72 6f 70 6f 72 74 69 6f 6e 61 6c 20 6e 75 6d 62 65 72 dge.width.is.proportional.number
174c0 20 6f 66 20 67 61 6d 65 73 20 70 6c 61 79 65 64 5c 6e 65 64 67 65 77 69 64 74 68 20 3d 20 5b 6c .of.games.played\nedgewidth.=.[l
174e0 65 6e 28 47 2e 67 65 74 5f 65 64 67 65 5f 64 61 74 61 28 75 2c 20 76 29 29 20 66 6f 72 20 75 2c en(G.get_edge_data(u,.v)).for.u,
17500 20 76 20 69 6e 20 48 2e 65 64 67 65 73 28 29 5d 5c 6e 5c 6e 23 20 6e 6f 64 65 20 73 69 7a 65 20 .v.in.H.edges()]\n\n#.node.size.
17520 69 73 20 70 72 6f 70 6f 72 74 69 6f 6e 61 6c 20 74 6f 20 6e 75 6d 62 65 72 20 6f 66 20 67 61 6d is.proportional.to.number.of.gam
17540 65 73 20 77 6f 6e 5c 6e 77 69 6e 73 20 3d 20 64 69 63 74 2e 66 72 6f 6d 6b 65 79 73 28 47 2e 6e es.won\nwins.=.dict.fromkeys(G.n
17560 6f 64 65 73 28 29 2c 20 30 2e 30 29 5c 6e 66 6f 72 20 75 2c 20 76 2c 20 64 20 69 6e 20 47 2e 65 odes(),.0.0)\nfor.u,.v,.d.in.G.e
17580 64 67 65 73 28 64 61 74 61 3d 54 72 75 65 29 3a 5c 6e 20 20 20 20 72 20 3d 20 64 5b 5c 22 52 65 dges(data=True):\n....r.=.d[\"Re
175a0 73 75 6c 74 5c 22 5d 2e 73 70 6c 69 74 28 5c 22 2d 5c 22 29 5c 6e 20 20 20 20 69 66 20 72 5b 30 sult\"].split(\"-\")\n....if.r[0
175c0 5d 20 3d 3d 20 5c 22 31 5c 22 3a 5c 6e 20 20 20 20 20 20 20 20 77 69 6e 73 5b 75 5d 20 2b 3d 20 ].==.\"1\":\n........wins[u].+=.
175e0 31 2e 30 5c 6e 20 20 20 20 65 6c 69 66 20 72 5b 30 5d 20 3d 3d 20 5c 22 31 2f 32 5c 22 3a 5c 6e 1.0\n....elif.r[0].==.\"1/2\":\n
17600 20 20 20 20 20 20 20 20 77 69 6e 73 5b 75 5d 20 2b 3d 20 30 2e 35 5c 6e 20 20 20 20 20 20 20 20 ........wins[u].+=.0.5\n........
17620 77 69 6e 73 5b 76 5d 20 2b 3d 20 30 2e 35 5c 6e 20 20 20 20 65 6c 73 65 3a 5c 6e 20 20 20 20 20 wins[v].+=.0.5\n....else:\n.....
17640 20 20 20 77 69 6e 73 5b 76 5d 20 2b 3d 20 31 2e 30 5c 6e 6e 6f 64 65 73 69 7a 65 20 3d 20 5b 77 ...wins[v].+=.1.0\nnodesize.=.[w
17660 69 6e 73 5b 76 5d 20 2a 20 35 30 20 66 6f 72 20 76 20 69 6e 20 48 5d 5c 6e 5c 6e 23 20 47 65 6e ins[v].*.50.for.v.in.H]\n\n#.Gen
17680 65 72 61 74 65 20 6c 61 79 6f 75 74 20 66 6f 72 20 76 69 73 75 61 6c 69 7a 61 74 69 6f 6e 5c 6e erate.layout.for.visualization\n
176a0 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 48 29 5c pos.=.nx.kamada_kawai_layout(H)\
176c0 6e 23 20 4d 61 6e 75 61 6c 20 74 77 65 61 6b 69 6e 67 20 74 6f 20 6c 69 6d 69 74 20 6e 6f 64 65 n#.Manual.tweaking.to.limit.node
176e0 20 6c 61 62 65 6c 20 6f 76 65 72 6c 61 70 20 69 6e 20 74 68 65 20 76 69 73 75 61 6c 69 7a 61 74 .label.overlap.in.the.visualizat
17700 69 6f 6e 5c 6e 70 6f 73 5b 5c 22 52 65 73 68 65 76 73 6b 79 2c 20 53 61 6d 75 65 6c 20 48 5c 22 ion\npos[\"Reshevsky,.Samuel.H\"
17720 5d 20 2b 3d 20 28 30 2e 30 35 2c 20 2d 30 2e 31 30 29 5c 6e 70 6f 73 5b 5c 22 42 6f 74 76 69 6e ].+=.(0.05,.-0.10)\npos[\"Botvin
17740 6e 69 6b 2c 20 4d 69 6b 68 61 69 6c 20 4d 5c 22 5d 20 2b 3d 20 28 30 2e 30 33 2c 20 2d 30 2e 30 nik,.Mikhail.M\"].+=.(0.03,.-0.0
17760 36 29 5c 6e 70 6f 73 5b 5c 22 53 6d 79 73 6c 6f 76 2c 20 56 61 73 73 69 6c 79 20 56 5c 22 5d 20 6)\npos[\"Smyslov,.Vassily.V\"].
17780 2b 3d 20 28 30 2e 30 35 2c 20 2d 30 2e 30 33 29 5c 6e 5c 6e 66 69 67 2c 20 61 78 20 3d 20 70 6c +=.(0.05,.-0.03)\n\nfig,.ax.=.pl
177a0 74 2e 73 75 62 70 6c 6f 74 73 28 66 69 67 73 69 7a 65 3d 28 31 32 2c 20 31 32 29 29 5c 6e 23 20 t.subplots(figsize=(12,.12))\n#.
177c0 56 69 73 75 61 6c 69 7a 65 20 67 72 61 70 68 20 63 6f 6d 70 6f 6e 65 6e 74 73 5c 6e 6e 78 2e 64 Visualize.graph.components\nnx.d
177e0 72 61 77 5f 6e 65 74 77 6f 72 6b 78 5f 65 64 67 65 73 28 48 2c 20 70 6f 73 2c 20 61 6c 70 68 61 raw_networkx_edges(H,.pos,.alpha
17800 3d 30 2e 33 2c 20 77 69 64 74 68 3d 65 64 67 65 77 69 64 74 68 2c 20 65 64 67 65 5f 63 6f 6c 6f =0.3,.width=edgewidth,.edge_colo
17820 72 3d 5c 22 6d 5c 22 29 5c 6e 6e 78 2e 64 72 61 77 5f 6e 65 74 77 6f 72 6b 78 5f 6e 6f 64 65 73 r=\"m\")\nnx.draw_networkx_nodes
17840 28 48 2c 20 70 6f 73 2c 20 6e 6f 64 65 5f 73 69 7a 65 3d 6e 6f 64 65 73 69 7a 65 2c 20 6e 6f 64 (H,.pos,.node_size=nodesize,.nod
17860 65 5f 63 6f 6c 6f 72 3d 5c 22 23 32 31 30 30 37 30 5c 22 2c 20 61 6c 70 68 61 3d 30 2e 39 29 5c e_color=\"#210070\",.alpha=0.9)\
17880 6e 6c 61 62 65 6c 5f 6f 70 74 69 6f 6e 73 20 3d 20 7b 5c 22 65 63 5c 22 3a 20 5c 22 6b 5c 22 2c nlabel_options.=.{\"ec\":.\"k\",
178a0 20 5c 22 66 63 5c 22 3a 20 5c 22 77 68 69 74 65 5c 22 2c 20 5c 22 61 6c 70 68 61 5c 22 3a 20 30 .\"fc\":.\"white\",.\"alpha\":.0
178c0 2e 37 7d 5c 6e 6e 78 2e 64 72 61 77 5f 6e 65 74 77 6f 72 6b 78 5f 6c 61 62 65 6c 73 28 48 2c 20 .7}\nnx.draw_networkx_labels(H,.
178e0 70 6f 73 2c 20 66 6f 6e 74 5f 73 69 7a 65 3d 31 34 2c 20 62 62 6f 78 3d 6c 61 62 65 6c 5f 6f 70 pos,.font_size=14,.bbox=label_op
17900 74 69 6f 6e 73 29 5c 6e 5c 6e 23 20 54 69 74 6c 65 2f 6c 65 67 65 6e 64 5c 6e 66 6f 6e 74 20 3d tions)\n\n#.Title/legend\nfont.=
17920 20 7b 5c 22 66 6f 6e 74 6e 61 6d 65 5c 22 3a 20 5c 22 48 65 6c 76 65 74 69 63 61 5c 22 2c 20 5c .{\"fontname\":.\"Helvetica\",.\
17940 22 63 6f 6c 6f 72 5c 22 3a 20 5c 22 6b 5c 22 2c 20 5c 22 66 6f 6e 74 77 65 69 67 68 74 5c 22 3a "color\":.\"k\",.\"fontweight\":
17960 20 5c 22 62 6f 6c 64 5c 22 2c 20 5c 22 66 6f 6e 74 73 69 7a 65 5c 22 3a 20 31 34 7d 5c 6e 61 78 .\"bold\",.\"fontsize\":.14}\nax
17980 2e 73 65 74 5f 74 69 74 6c 65 28 5c 22 57 6f 72 6c 64 20 43 68 65 73 73 20 43 68 61 6d 70 69 6f .set_title(\"World.Chess.Champio
179a0 6e 73 68 69 70 20 47 61 6d 65 73 3a 20 31 38 38 36 20 2d 20 31 39 38 35 5c 22 2c 20 66 6f 6e 74 nship.Games:.1886.-.1985\",.font
179c0 29 5c 6e 23 20 43 68 61 6e 67 65 20 66 6f 6e 74 20 63 6f 6c 6f 72 20 66 6f 72 20 6c 65 67 65 6e )\n#.Change.font.color.for.legen
179e0 64 5c 6e 66 6f 6e 74 5b 5c 22 63 6f 6c 6f 72 5c 22 5d 20 3d 20 5c 22 72 5c 22 5c 6e 5c 6e 61 78 d\nfont[\"color\"].=.\"r\"\n\nax
17a00 2e 74 65 78 74 28 5c 6e 20 20 20 20 30 2e 38 30 2c 5c 6e 20 20 20 20 30 2e 31 30 2c 5c 6e 20 20 .text(\n....0.80,\n....0.10,\n..
17a20 20 20 5c 22 65 64 67 65 20 77 69 64 74 68 20 3d 20 23 20 67 61 6d 65 73 20 70 6c 61 79 65 64 5c ..\"edge.width.=.#.games.played\
17a40 22 2c 5c 6e 20 20 20 20 68 6f 72 69 7a 6f 6e 74 61 6c 61 6c 69 67 6e 6d 65 6e 74 3d 5c 22 63 65 ",\n....horizontalalignment=\"ce
17a60 6e 74 65 72 5c 22 2c 5c 6e 20 20 20 20 74 72 61 6e 73 66 6f 72 6d 3d 61 78 2e 74 72 61 6e 73 41 nter\",\n....transform=ax.transA
17a80 78 65 73 2c 5c 6e 20 20 20 20 66 6f 6e 74 64 69 63 74 3d 66 6f 6e 74 2c 5c 6e 29 5c 6e 61 78 2e xes,\n....fontdict=font,\n)\nax.
17aa0 74 65 78 74 28 5c 6e 20 20 20 20 30 2e 38 30 2c 5c 6e 20 20 20 20 30 2e 30 36 2c 5c 6e 20 20 20 text(\n....0.80,\n....0.06,\n...
17ac0 20 5c 22 6e 6f 64 65 20 73 69 7a 65 20 3d 20 23 20 67 61 6d 65 73 20 77 6f 6e 5c 22 2c 5c 6e 20 .\"node.size.=.#.games.won\",\n.
17ae0 20 20 20 68 6f 72 69 7a 6f 6e 74 61 6c 61 6c 69 67 6e 6d 65 6e 74 3d 5c 22 63 65 6e 74 65 72 5c ...horizontalalignment=\"center\
17b00 22 2c 5c 6e 20 20 20 20 74 72 61 6e 73 66 6f 72 6d 3d 61 78 2e 74 72 61 6e 73 41 78 65 73 2c 5c ",\n....transform=ax.transAxes,\
17b20 6e 20 20 20 20 66 6f 6e 74 64 69 63 74 3d 66 6f 6e 74 2c 5c 6e 29 5c 6e 5c 6e 23 20 52 65 73 69 n....fontdict=font,\n)\n\n#.Resi
17b40 7a 65 20 66 69 67 75 72 65 20 66 6f 72 20 6c 61 62 65 6c 20 72 65 61 64 61 62 69 6c 69 74 79 5c ze.figure.for.label.readability\
17b60 6e 61 78 2e 6d 61 72 67 69 6e 73 28 30 2e 31 2c 20 30 2e 30 35 29 5c 6e 66 69 67 2e 74 69 67 68 nax.margins(0.1,.0.05)\nfig.tigh
17b80 74 5f 6c 61 79 6f 75 74 28 29 5c 6e 70 6c 74 2e 61 78 69 73 28 5c 22 6f 66 66 5c 22 29 5c 6e 70 t_layout()\nplt.axis(\"off\")\np
17ba0 6c 74 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 lt.show()".......].....}...],...
17bc0 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":.
17be0 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.
17c00 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",.
17c20 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".....},..
17c40 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
17c60 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":
17c80 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
17ca0 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"
17cc0 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
17ce0 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
17d00 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":.
17d20 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"
17d40 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":."
17d60 33 2e 39 2e 31 36 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.9.16".....}...},..."nbformat":
17d80 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...
17da0 00 00 00 00 00 05 0f 5a 56 05 31 f7 34 e2 04 00 00 e2 04 00 00 20 00 00 00 64 72 61 77 69 6e 67 .......ZV.1.4............drawing
17dc0 2f 70 6c 6f 74 5f 6e 6f 64 65 5f 63 6f 6c 6f 72 6d 61 70 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 /plot_node_colormap.ipynb{..."ce
17de0 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":
17e00 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"
17e20 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":.{.....
17e40 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.......},.
17e60 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
17e80 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
17ea0 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".......].....},.....{......."
17ec0 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
17ee0 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":.[.
17f00 20 20 20 20 20 20 20 20 22 5c 6e 23 20 4e 6f 64 65 20 43 6f 6c 6f 72 6d 61 70 5c 6e 5c 6e 44 72 ........"\n#.Node.Colormap\n\nDr
17f20 61 77 20 61 20 67 72 61 70 68 20 77 69 74 68 20 6d 61 74 70 6c 6f 74 6c 69 62 2c 20 63 6f 6c 6f aw.a.graph.with.matplotlib,.colo
17f40 72 20 62 79 20 64 65 67 72 65 65 2e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 r.by.degree.\n".......].....},..
17f60 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",.
17f80 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,..
17fa0 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
17fc0 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
17fe0 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":.[...
18000 20 20 20 20 20 20 22 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 ......"import.matplotlib.pyplot.
18020 61 73 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 5c as.plt\nimport.networkx.as.nx\n\
18040 6e 47 20 3d 20 6e 78 2e 63 79 63 6c 65 5f 67 72 61 70 68 28 32 34 29 5c 6e 70 6f 73 20 3d 20 6e nG.=.nx.cycle_graph(24)\npos.=.n
18060 78 2e 63 69 72 63 75 6c 61 72 5f 6c 61 79 6f 75 74 28 47 29 5c 6e 6e 78 2e 64 72 61 77 28 47 2c x.circular_layout(G)\nnx.draw(G,
18080 20 70 6f 73 2c 20 6e 6f 64 65 5f 63 6f 6c 6f 72 3d 72 61 6e 67 65 28 32 34 29 2c 20 6e 6f 64 65 .pos,.node_color=range(24),.node
180a0 5f 73 69 7a 65 3d 38 30 30 2c 20 63 6d 61 70 3d 70 6c 74 2e 63 6d 2e 42 6c 75 65 73 29 5c 6e 70 _size=800,.cmap=plt.cm.Blues)\np
180c0 6c 74 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 lt.show()".......].....}...],...
180e0 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":.
18100 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.
18120 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",.
18140 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".....},..
18160 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
18180 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":
181a0 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
181c0 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"
181e0 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
18200 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
18220 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":.
18240 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"
18260 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":."
18280 33 2e 39 2e 31 36 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.9.16".....}...},..."nbformat":
182a0 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...
182c0 00 00 00 00 00 03 0f 5a 56 8c fd 15 db 26 06 00 00 26 06 00 00 1e 00 00 00 64 72 61 77 69 6e 67 .......ZV....&...&.......drawing
182e0 2f 70 6c 6f 74 5f 63 65 6e 74 65 72 5f 6e 6f 64 65 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c /plot_center_node.ipynb{..."cell
18300 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 20 22 s":.[.....{......."cell_type":."
18320 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":.
18340 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":.{.......
18360 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.......},...
18380 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
183a0 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 6e 65 ":.[........."%matplotlib.inline
183c0 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
183e0 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
18400 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":.[...
18420 20 20 20 20 20 20 22 5c 6e 23 20 43 75 73 74 6f 6d 20 4e 6f 64 65 20 50 6f 73 69 74 69 6f 6e 5c ......"\n#.Custom.Node.Position\
18440 6e 5c 6e 44 72 61 77 20 61 20 67 72 61 70 68 20 77 69 74 68 20 6e 6f 64 65 28 73 29 20 6c 6f 63 n\nDraw.a.graph.with.node(s).loc
18460 61 74 65 64 20 61 74 20 75 73 65 72 2d 64 65 66 69 6e 65 64 20 70 6f 73 69 74 69 6f 6e 73 2e 5c ated.at.user-defined.positions.\
18480 6e 5c 6e 57 68 65 6e 20 61 20 70 6f 73 69 74 69 6f 6e 20 69 73 20 73 65 74 20 62 79 20 74 68 65 n\nWhen.a.position.is.set.by.the
184a0 20 75 73 65 72 2c 20 74 68 65 20 6f 74 68 65 72 20 6e 6f 64 65 73 20 63 61 6e 20 73 74 69 6c 6c .user,.the.other.nodes.can.still
184c0 20 62 65 20 6e 65 61 74 6c 79 20 6f 72 67 61 6e 69 73 65 64 20 69 6e 20 61 20 6c 61 79 6f 75 74 .be.neatly.organised.in.a.layout
184e0 2e 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".......].....},.....{.......
18500 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
18520 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
18540 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
18560 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":.[],
18580 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
185a0 72 74 20 6e 65 74 77 6f 72 6b 78 20 61 73 20 6e 78 5c 6e 69 6d 70 6f 72 74 20 6e 75 6d 70 79 20 rt.networkx.as.nx\nimport.numpy.
185c0 61 73 20 6e 70 5c 6e 5c 6e 47 20 3d 20 6e 78 2e 70 61 74 68 5f 67 72 61 70 68 28 32 30 29 20 20 as.np\n\nG.=.nx.path_graph(20)..
185e0 23 20 41 6e 20 65 78 61 6d 70 6c 65 20 67 72 61 70 68 5c 6e 63 65 6e 74 65 72 5f 6e 6f 64 65 20 #.An.example.graph\ncenter_node.
18600 3d 20 35 20 20 23 20 4f 72 20 61 6e 79 20 6f 74 68 65 72 20 6e 6f 64 65 20 74 6f 20 62 65 20 69 =.5..#.Or.any.other.node.to.be.i
18620 6e 20 74 68 65 20 63 65 6e 74 65 72 5c 6e 65 64 67 65 5f 6e 6f 64 65 73 20 3d 20 73 65 74 28 47 n.the.center\nedge_nodes.=.set(G
18640 29 20 2d 20 7b 63 65 6e 74 65 72 5f 6e 6f 64 65 7d 5c 6e 23 20 45 6e 73 75 72 65 73 20 74 68 65 ).-.{center_node}\n#.Ensures.the
18660 20 6e 6f 64 65 73 20 61 72 6f 75 6e 64 20 74 68 65 20 63 69 72 63 6c 65 20 61 72 65 20 65 76 65 .nodes.around.the.circle.are.eve
18680 6e 6c 79 20 64 69 73 74 72 69 62 75 74 65 64 5c 6e 70 6f 73 20 3d 20 6e 78 2e 63 69 72 63 75 6c nly.distributed\npos.=.nx.circul
186a0 61 72 5f 6c 61 79 6f 75 74 28 47 2e 73 75 62 67 72 61 70 68 28 65 64 67 65 5f 6e 6f 64 65 73 29 ar_layout(G.subgraph(edge_nodes)
186c0 29 5c 6e 70 6f 73 5b 63 65 6e 74 65 72 5f 6e 6f 64 65 5d 20 3d 20 6e 70 2e 61 72 72 61 79 28 5b )\npos[center_node].=.np.array([
186e0 30 2c 20 30 5d 29 20 20 23 20 6d 61 6e 75 61 6c 6c 79 20 73 70 65 63 69 66 79 20 6e 6f 64 65 20 0,.0])..#.manually.specify.node.
18700 70 6f 73 69 74 69 6f 6e 5c 6e 6e 78 2e 64 72 61 77 28 47 2c 20 70 6f 73 2c 20 77 69 74 68 5f 6c position\nnx.draw(G,.pos,.with_l
18720 61 62 65 6c 73 3d 54 72 75 65 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 0a 20 20 5d 2c 0a abels=True)".......].....}...],.
18740 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 6c 73 70 65 63 22 .."metadata":.{....."kernelspec"
18760 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 22 50 79 74 68 6f :.{......."display_name":."Pytho
18780 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 79 74 68 6f 6e 22 n.3",......."language":."python"
187a0 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 20 20 20 20 7d 2c ,......."name":."python3".....},
187c0 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 20 20 20 20 22 63 ....."language_info":.{......."c
187e0 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 20 22 6e 61 6d 65 odemirror_mode":.{........."name
18800 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 73 69 6f 6e 22 3a ":."ipython",........."version":
18820 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 74 65 6e 73 69 6f .3.......},......."file_extensio
18840 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 22 3a 20 22 74 65 n":.".py",......."mimetype":."te
18860 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 3a 20 22 70 79 74 xt/x-python",......."name":."pyt
18880 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 6f 72 74 65 72 22 hon",......."nbconvert_exporter"
188a0 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 73 5f 6c 65 78 65 :."python",......."pygments_lexe
188c0 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 73 69 6f 6e 22 3a r":."ipython3",......."version":
188e0 20 22 33 2e 39 2e 31 36 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 ."3.9.16".....}...},..."nbformat
18900 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 0a 7d 50 4b 03 ":.4,..."nbformat_minor":.0.}PK.
18920 04 14 00 00 00 00 00 06 0f 5a 56 c9 52 3c 1d 7b 07 00 00 7b 07 00 00 29 00 00 00 64 72 61 77 69 .........ZV.R<.{...{...)...drawi
18940 6e 67 2f 70 6c 6f 74 5f 72 61 6e 64 6f 6d 5f 67 65 6f 6d 65 74 72 69 63 5f 67 72 61 70 68 2e 69 ng/plot_random_geometric_graph.i
18960 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 22 pynb{..."cells":.[.....{......."
18980 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
189a0 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
189c0 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
189e0 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":.[],.
18a00 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 70 ......"source":.[........."%matp
18a20 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 20 lotlib.inline".......].....},...
18a40 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
18a60 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":.{},......."
18a80 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 52 61 6e 64 6f 6d 20 47 source":.[........."\n#.Random.G
18aa0 65 6f 6d 65 74 72 69 63 20 47 72 61 70 68 5c 6e 5c 6e 45 78 61 6d 70 6c 65 5c 6e 22 0a 20 20 20 eometric.Graph\n\nExample\n"....
18ac0 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
18ae0 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
18b00 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":.{.
18b20 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......
18b40 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":.[],......."
18b60 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 69 6d 70 6f 72 74 20 6d 61 74 70 6c source":.[........."import.matpl
18b80 6f 74 6c 69 62 2e 70 79 70 6c 6f 74 20 61 73 20 70 6c 74 5c 6e 69 6d 70 6f 72 74 20 6e 65 74 77 otlib.pyplot.as.plt\nimport.netw
18ba0 6f 72 6b 78 20 61 73 20 6e 78 5c 6e 5c 6e 23 20 55 73 65 20 73 65 65 64 20 77 68 65 6e 20 63 72 orkx.as.nx\n\n#.Use.seed.when.cr
18bc0 65 61 74 69 6e 67 20 74 68 65 20 67 72 61 70 68 20 66 6f 72 20 72 65 70 72 6f 64 75 63 69 62 69 eating.the.graph.for.reproducibi
18be0 6c 69 74 79 5c 6e 47 20 3d 20 6e 78 2e 72 61 6e 64 6f 6d 5f 67 65 6f 6d 65 74 72 69 63 5f 67 72 lity\nG.=.nx.random_geometric_gr
18c00 61 70 68 28 32 30 30 2c 20 30 2e 31 32 35 2c 20 73 65 65 64 3d 38 39 36 38 30 33 29 5c 6e 23 20 aph(200,.0.125,.seed=896803)\n#.
18c20 70 6f 73 69 74 69 6f 6e 20 69 73 20 73 74 6f 72 65 64 20 61 73 20 6e 6f 64 65 20 61 74 74 72 69 position.is.stored.as.node.attri
18c40 62 75 74 65 20 64 61 74 61 20 66 6f 72 20 72 61 6e 64 6f 6d 5f 67 65 6f 6d 65 74 72 69 63 5f 67 bute.data.for.random_geometric_g
18c60 72 61 70 68 5c 6e 70 6f 73 20 3d 20 6e 78 2e 67 65 74 5f 6e 6f 64 65 5f 61 74 74 72 69 62 75 74 raph\npos.=.nx.get_node_attribut
18c80 65 73 28 47 2c 20 5c 22 70 6f 73 5c 22 29 5c 6e 5c 6e 23 20 66 69 6e 64 20 6e 6f 64 65 20 6e 65 es(G,.\"pos\")\n\n#.find.node.ne
18ca0 61 72 20 63 65 6e 74 65 72 20 28 30 2e 35 2c 30 2e 35 29 5c 6e 64 6d 69 6e 20 3d 20 31 5c 6e 6e ar.center.(0.5,0.5)\ndmin.=.1\nn
18cc0 63 65 6e 74 65 72 20 3d 20 30 5c 6e 66 6f 72 20 6e 20 69 6e 20 70 6f 73 3a 5c 6e 20 20 20 20 78 center.=.0\nfor.n.in.pos:\n....x
18ce0 2c 20 79 20 3d 20 70 6f 73 5b 6e 5d 5c 6e 20 20 20 20 64 20 3d 20 28 78 20 2d 20 30 2e 35 29 20 ,.y.=.pos[n]\n....d.=.(x.-.0.5).
18d00 2a 2a 20 32 20 2b 20 28 79 20 2d 20 30 2e 35 29 20 2a 2a 20 32 5c 6e 20 20 20 20 69 66 20 64 20 **.2.+.(y.-.0.5).**.2\n....if.d.
18d20 3c 20 64 6d 69 6e 3a 5c 6e 20 20 20 20 20 20 20 20 6e 63 65 6e 74 65 72 20 3d 20 6e 5c 6e 20 20 <.dmin:\n........ncenter.=.n\n..
18d40 20 20 20 20 20 20 64 6d 69 6e 20 3d 20 64 5c 6e 5c 6e 23 20 63 6f 6c 6f 72 20 62 79 20 70 61 74 ......dmin.=.d\n\n#.color.by.pat
18d60 68 20 6c 65 6e 67 74 68 20 66 72 6f 6d 20 6e 6f 64 65 20 6e 65 61 72 20 63 65 6e 74 65 72 5c 6e h.length.from.node.near.center\n
18d80 70 20 3d 20 64 69 63 74 28 6e 78 2e 73 69 6e 67 6c 65 5f 73 6f 75 72 63 65 5f 73 68 6f 72 74 65 p.=.dict(nx.single_source_shorte
18da0 73 74 5f 70 61 74 68 5f 6c 65 6e 67 74 68 28 47 2c 20 6e 63 65 6e 74 65 72 29 29 5c 6e 5c 6e 70 st_path_length(G,.ncenter))\n\np
18dc0 6c 74 2e 66 69 67 75 72 65 28 66 69 67 73 69 7a 65 3d 28 38 2c 20 38 29 29 5c 6e 6e 78 2e 64 72 lt.figure(figsize=(8,.8))\nnx.dr
18de0 61 77 5f 6e 65 74 77 6f 72 6b 78 5f 65 64 67 65 73 28 47 2c 20 70 6f 73 2c 20 61 6c 70 68 61 3d aw_networkx_edges(G,.pos,.alpha=
18e00 30 2e 34 29 5c 6e 6e 78 2e 64 72 61 77 5f 6e 65 74 77 6f 72 6b 78 5f 6e 6f 64 65 73 28 5c 6e 20 0.4)\nnx.draw_networkx_nodes(\n.
18e20 20 20 20 47 2c 5c 6e 20 20 20 20 70 6f 73 2c 5c 6e 20 20 20 20 6e 6f 64 65 6c 69 73 74 3d 6c 69 ...G,\n....pos,\n....nodelist=li
18e40 73 74 28 70 2e 6b 65 79 73 28 29 29 2c 5c 6e 20 20 20 20 6e 6f 64 65 5f 73 69 7a 65 3d 38 30 2c st(p.keys()),\n....node_size=80,
18e60 5c 6e 20 20 20 20 6e 6f 64 65 5f 63 6f 6c 6f 72 3d 6c 69 73 74 28 70 2e 76 61 6c 75 65 73 28 29 \n....node_color=list(p.values()
18e80 29 2c 5c 6e 20 20 20 20 63 6d 61 70 3d 70 6c 74 2e 63 6d 2e 52 65 64 73 5f 72 2c 5c 6e 29 5c 6e ),\n....cmap=plt.cm.Reds_r,\n)\n
18ea0 5c 6e 70 6c 74 2e 78 6c 69 6d 28 2d 30 2e 30 35 2c 20 31 2e 30 35 29 5c 6e 70 6c 74 2e 79 6c 69 \nplt.xlim(-0.05,.1.05)\nplt.yli
18ec0 6d 28 2d 30 2e 30 35 2c 20 31 2e 30 35 29 5c 6e 70 6c 74 2e 61 78 69 73 28 5c 22 6f 66 66 5c 22 m(-0.05,.1.05)\nplt.axis(\"off\"
18ee0 29 5c 6e 70 6c 74 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 )\nplt.show()".......].....}...]
18f00 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 6c 73 70 65 ,..."metadata":.{....."kernelspe
18f20 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 22 50 79 74 c":.{......."display_name":."Pyt
18f40 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 79 74 68 6f hon.3",......."language":."pytho
18f60 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 20 20 20 20 n",......."name":."python3".....
18f80 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 20 20 20 20 },....."language_info":.{.......
18fa0 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 20 22 6e 61 "codemirror_mode":.{........."na
18fc0 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 73 69 6f 6e me":."ipython",........."version
18fe0 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 74 65 6e 73 ":.3.......},......."file_extens
19000 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 22 3a 20 22 ion":.".py",......."mimetype":."
19020 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 3a 20 22 70 text/x-python",......."name":."p
19040 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 6f 72 74 65 ython",......."nbconvert_exporte
19060 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 73 5f 6c 65 r":."python",......."pygments_le
19080 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 73 69 6f 6e xer":."ipython3",......."version
190a0 22 3a 20 22 33 2e 39 2e 31 36 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 6e 62 66 6f 72 6d ":."3.9.16".....}...},..."nbform
190c0 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 0a 7d 50 at":.4,..."nbformat_minor":.0.}P
190e0 4b 03 04 14 00 00 00 00 00 07 0f 5a 56 37 fd b7 79 b5 0b 00 00 b5 0b 00 00 1d 00 00 00 64 72 61 K..........ZV7..y............dra
19100 77 69 6e 67 2f 70 6c 6f 74 5f 75 6e 69 78 5f 65 6d 61 69 6c 2e 69 70 79 6e 62 7b 0a 20 20 22 63 wing/plot_unix_email.ipynb{..."c
19120 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"
19140 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
19160 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":.{....
19180 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.......},
191a0 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
191c0 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
191e0 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".......].....},.....{.......
19200 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",......."
19220 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":.[
19240 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 55 6e 69 78 20 45 6d 61 69 6c 5c 6e 5c 6e 43 72 65 61 ........."\n#.Unix.Email\n\nCrea
19260 74 65 20 61 20 64 69 72 65 63 74 65 64 20 67 72 61 70 68 2c 20 61 6c 6c 6f 77 69 6e 67 20 6d 75 te.a.directed.graph,.allowing.mu
19280 6c 74 69 70 6c 65 20 65 64 67 65 73 20 61 6e 64 20 73 65 6c 66 20 6c 6f 6f 70 73 2c 20 66 72 6f ltiple.edges.and.self.loops,.fro
192a0 6d 20 61 20 75 6e 69 78 5c 6e 6d 61 69 6c 62 6f 78 2e 20 20 54 68 65 20 6e 6f 64 65 73 20 61 72 m.a.unix\nmailbox...The.nodes.ar
192c0 65 20 65 6d 61 69 6c 20 61 64 64 72 65 73 73 65 73 20 77 69 74 68 20 6c 69 6e 6b 73 20 74 68 61 e.email.addresses.with.links.tha
192e0 74 20 70 6f 69 6e 74 20 66 72 6f 6d 20 74 68 65 20 73 65 6e 64 65 72 5c 6e 74 6f 20 74 68 65 20 t.point.from.the.sender\nto.the.
19300 72 65 63 65 69 76 65 72 73 2e 20 20 54 68 65 20 65 64 67 65 20 64 61 74 61 20 69 73 20 61 20 50 receivers...The.edge.data.is.a.P
19320 79 74 68 6f 6e 20 65 6d 61 69 6c 2e 4d 65 73 73 61 67 65 20 6f 62 6a 65 63 74 20 77 68 69 63 68 ython.email.Message.object.which
19340 5c 6e 63 6f 6e 74 61 69 6e 73 20 61 6c 6c 20 6f 66 20 74 68 65 20 65 6d 61 69 6c 20 6d 65 73 73 \ncontains.all.of.the.email.mess
19360 61 67 65 20 64 61 74 61 2e 5c 6e 5c 6e 54 68 69 73 20 65 78 61 6d 70 6c 65 20 73 68 6f 77 73 20 age.data.\n\nThis.example.shows.
19380 74 68 65 20 70 6f 77 65 72 20 6f 66 20 60 44 69 47 72 61 70 68 60 20 74 6f 20 68 6f 6c 64 20 65 the.power.of.`DiGraph`.to.hold.e
193a0 64 67 65 20 64 61 74 61 20 6f 66 20 61 72 62 69 74 72 61 72 79 20 50 79 74 68 6f 6e 5c 6e 6f 62 dge.data.of.arbitrary.Python\nob
193c0 6a 65 63 74 73 20 28 69 6e 20 74 68 69 73 20 63 61 73 65 20 61 20 6c 69 73 74 20 6f 66 20 65 6d jects.(in.this.case.a.list.of.em
193e0 61 69 6c 20 6d 65 73 73 61 67 65 73 29 2e 5c 6e 5c 6e 5c 6e 54 68 65 20 73 61 6d 70 6c 65 20 75 ail.messages).\n\n\nThe.sample.u
19400 6e 69 78 20 65 6d 61 69 6c 20 6d 61 69 6c 62 6f 78 20 63 61 6c 6c 65 64 20 5c 22 75 6e 69 78 5f nix.email.mailbox.called.\"unix_
19420 65 6d 61 69 6c 2e 6d 62 6f 78 5c 22 20 6d 61 79 20 62 65 20 66 6f 75 6e 64 20 68 65 72 65 3a 5c email.mbox\".may.be.found.here:\
19440 6e 5c 6e 2d 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6e 65 74 77 6f 72 6b 78 n\n-.https://github.com/networkx
19460 2f 6e 65 74 77 6f 72 6b 78 2f 62 6c 6f 62 2f 6d 61 69 6e 2f 65 78 61 6d 70 6c 65 73 2f 64 72 61 /networkx/blob/main/examples/dra
19480 77 69 6e 67 2f 75 6e 69 78 5f 65 6d 61 69 6c 2e 6d 62 6f 78 5c 6e 22 0a 20 20 20 20 20 20 5d 0a wing/unix_email.mbox\n".......].
194a0 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":.
194c0 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":
194e0 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":.{......
19500 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.......},..
19520 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
19540 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 66 72 6f 6d 20 65 6d 61 69 6c 2e 75 74 69 6c 73 20 e":.[........."from.email.utils.
19560 69 6d 70 6f 72 74 20 67 65 74 61 64 64 72 65 73 73 65 73 2c 20 70 61 72 73 65 61 64 64 72 5c 6e import.getaddresses,.parseaddr\n
19580 69 6d 70 6f 72 74 20 6d 61 69 6c 62 6f 78 5c 6e 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 import.mailbox\n\nimport.matplot
195a0 6c 69 62 2e 70 79 70 6c 6f 74 20 61 73 20 70 6c 74 5c 6e 69 6d 70 6f 72 74 20 6e 65 74 77 6f 72 lib.pyplot.as.plt\nimport.networ
195c0 6b 78 20 61 73 20 6e 78 5c 6e 5c 6e 23 20 75 6e 69 78 20 6d 61 69 6c 62 6f 78 20 72 65 63 69 70 kx.as.nx\n\n#.unix.mailbox.recip
195e0 65 5c 6e 23 20 73 65 65 20 68 74 74 70 73 3a 2f 2f 64 6f 63 73 2e 70 79 74 68 6f 6e 2e 6f 72 67 e\n#.see.https://docs.python.org
19600 2f 33 2f 6c 69 62 72 61 72 79 2f 6d 61 69 6c 62 6f 78 2e 68 74 6d 6c 5c 6e 5c 6e 5c 6e 64 65 66 /3/library/mailbox.html\n\n\ndef
19620 20 6d 62 6f 78 5f 67 72 61 70 68 28 29 3a 5c 6e 20 20 20 20 6d 62 6f 78 20 3d 20 6d 61 69 6c 62 .mbox_graph():\n....mbox.=.mailb
19640 6f 78 2e 6d 62 6f 78 28 5c 22 75 6e 69 78 5f 65 6d 61 69 6c 2e 6d 62 6f 78 5c 22 29 20 20 23 20 ox.mbox(\"unix_email.mbox\")..#.
19660 70 61 72 73 65 20 75 6e 69 78 20 6d 61 69 6c 62 6f 78 5c 6e 5c 6e 20 20 20 20 47 20 3d 20 6e 78 parse.unix.mailbox\n\n....G.=.nx
19680 2e 4d 75 6c 74 69 44 69 47 72 61 70 68 28 29 20 20 23 20 63 72 65 61 74 65 20 65 6d 70 74 79 20 .MultiDiGraph()..#.create.empty.
196a0 67 72 61 70 68 5c 6e 5c 6e 20 20 20 20 23 20 70 61 72 73 65 20 65 61 63 68 20 6d 65 73 73 61 67 graph\n\n....#.parse.each.messag
196c0 65 73 20 61 6e 64 20 62 75 69 6c 64 20 67 72 61 70 68 5c 6e 20 20 20 20 66 6f 72 20 6d 73 67 20 es.and.build.graph\n....for.msg.
196e0 69 6e 20 6d 62 6f 78 3a 20 20 23 20 6d 73 67 20 69 73 20 70 79 74 68 6f 6e 20 65 6d 61 69 6c 2e in.mbox:..#.msg.is.python.email.
19700 4d 65 73 73 61 67 65 2e 4d 65 73 73 61 67 65 20 6f 62 6a 65 63 74 5c 6e 20 20 20 20 20 20 20 20 Message.Message.object\n........
19720 28 73 6f 75 72 63 65 5f 6e 61 6d 65 2c 20 73 6f 75 72 63 65 5f 61 64 64 72 29 20 3d 20 70 61 72 (source_name,.source_addr).=.par
19740 73 65 61 64 64 72 28 6d 73 67 5b 5c 22 46 72 6f 6d 5c 22 5d 29 20 20 23 20 73 65 6e 64 65 72 5c seaddr(msg[\"From\"])..#.sender\
19760 6e 20 20 20 20 20 20 20 20 23 20 67 65 74 20 61 6c 6c 20 72 65 63 69 70 69 65 6e 74 73 5c 6e 20 n........#.get.all.recipients\n.
19780 20 20 20 20 20 20 20 23 20 73 65 65 20 68 74 74 70 73 3a 2f 2f 64 6f 63 73 2e 70 79 74 68 6f 6e .......#.see.https://docs.python
197a0 2e 6f 72 67 2f 33 2f 6c 69 62 72 61 72 79 2f 65 6d 61 69 6c 2e 68 74 6d 6c 5c 6e 20 20 20 20 20 .org/3/library/email.html\n.....
197c0 20 20 20 74 6f 73 20 3d 20 6d 73 67 2e 67 65 74 5f 61 6c 6c 28 5c 22 74 6f 5c 22 2c 20 5b 5d 29 ...tos.=.msg.get_all(\"to\",.[])
197e0 5c 6e 20 20 20 20 20 20 20 20 63 63 73 20 3d 20 6d 73 67 2e 67 65 74 5f 61 6c 6c 28 5c 22 63 63 \n........ccs.=.msg.get_all(\"cc
19800 5c 22 2c 20 5b 5d 29 5c 6e 20 20 20 20 20 20 20 20 72 65 73 65 6e 74 5f 74 6f 73 20 3d 20 6d 73 \",.[])\n........resent_tos.=.ms
19820 67 2e 67 65 74 5f 61 6c 6c 28 5c 22 72 65 73 65 6e 74 2d 74 6f 5c 22 2c 20 5b 5d 29 5c 6e 20 20 g.get_all(\"resent-to\",.[])\n..
19840 20 20 20 20 20 20 72 65 73 65 6e 74 5f 63 63 73 20 3d 20 6d 73 67 2e 67 65 74 5f 61 6c 6c 28 5c ......resent_ccs.=.msg.get_all(\
19860 22 72 65 73 65 6e 74 2d 63 63 5c 22 2c 20 5b 5d 29 5c 6e 20 20 20 20 20 20 20 20 61 6c 6c 5f 72 "resent-cc\",.[])\n........all_r
19880 65 63 69 70 69 65 6e 74 73 20 3d 20 67 65 74 61 64 64 72 65 73 73 65 73 28 74 6f 73 20 2b 20 63 ecipients.=.getaddresses(tos.+.c
198a0 63 73 20 2b 20 72 65 73 65 6e 74 5f 74 6f 73 20 2b 20 72 65 73 65 6e 74 5f 63 63 73 29 5c 6e 20 cs.+.resent_tos.+.resent_ccs)\n.
198c0 20 20 20 20 20 20 20 23 20 6e 6f 77 20 61 64 64 20 74 68 65 20 65 64 67 65 73 20 66 6f 72 20 74 .......#.now.add.the.edges.for.t
198e0 68 69 73 20 6d 61 69 6c 20 6d 65 73 73 61 67 65 5c 6e 20 20 20 20 20 20 20 20 66 6f 72 20 74 61 his.mail.message\n........for.ta
19900 72 67 65 74 5f 6e 61 6d 65 2c 20 74 61 72 67 65 74 5f 61 64 64 72 20 69 6e 20 61 6c 6c 5f 72 65 rget_name,.target_addr.in.all_re
19920 63 69 70 69 65 6e 74 73 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 47 2e 61 64 64 5f 65 64 67 cipients:\n............G.add_edg
19940 65 28 73 6f 75 72 63 65 5f 61 64 64 72 2c 20 74 61 72 67 65 74 5f 61 64 64 72 2c 20 6d 65 73 73 e(source_addr,.target_addr,.mess
19960 61 67 65 3d 6d 73 67 29 5c 6e 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 47 5c 6e 5c 6e 5c 6e 47 20 age=msg)\n\n....return.G\n\n\nG.
19980 3d 20 6d 62 6f 78 5f 67 72 61 70 68 28 29 5c 6e 5c 6e 23 20 70 72 69 6e 74 20 65 64 67 65 73 20 =.mbox_graph()\n\n#.print.edges.
199a0 77 69 74 68 20 6d 65 73 73 61 67 65 20 73 75 62 6a 65 63 74 5c 6e 66 6f 72 20 75 2c 20 76 2c 20 with.message.subject\nfor.u,.v,.
199c0 64 20 69 6e 20 47 2e 65 64 67 65 73 28 64 61 74 61 3d 54 72 75 65 29 3a 5c 6e 20 20 20 20 70 72 d.in.G.edges(data=True):\n....pr
199e0 69 6e 74 28 66 5c 22 46 72 6f 6d 3a 20 7b 75 7d 20 54 6f 3a 20 7b 76 7d 20 53 75 62 6a 65 63 74 int(f\"From:.{u}.To:.{v}.Subject
19a00 3a 20 7b 64 5b 27 6d 65 73 73 61 67 65 27 5d 5b 27 53 75 62 6a 65 63 74 27 5d 7d 5c 22 29 5c 6e :.{d['message']['Subject']}\")\n
19a20 5c 6e 70 6f 73 20 3d 20 6e 78 2e 73 70 72 69 6e 67 5f 6c 61 79 6f 75 74 28 47 2c 20 69 74 65 72 \npos.=.nx.spring_layout(G,.iter
19a40 61 74 69 6f 6e 73 3d 31 30 2c 20 73 65 65 64 3d 32 32 37 29 5c 6e 6e 78 2e 64 72 61 77 28 47 2c ations=10,.seed=227)\nnx.draw(G,
19a60 20 70 6f 73 2c 20 6e 6f 64 65 5f 73 69 7a 65 3d 30 2c 20 61 6c 70 68 61 3d 30 2e 34 2c 20 65 64 .pos,.node_size=0,.alpha=0.4,.ed
19a80 67 65 5f 63 6f 6c 6f 72 3d 5c 22 72 5c 22 2c 20 66 6f 6e 74 5f 73 69 7a 65 3d 31 36 2c 20 77 69 ge_color=\"r\",.font_size=16,.wi
19aa0 74 68 5f 6c 61 62 65 6c 73 3d 54 72 75 65 29 5c 6e 61 78 20 3d 20 70 6c 74 2e 67 63 61 28 29 5c th_labels=True)\nax.=.plt.gca()\
19ac0 6e 61 78 2e 6d 61 72 67 69 6e 73 28 30 2e 30 38 29 5c 6e 70 6c 74 2e 73 68 6f 77 28 29 22 0a 20 nax.margins(0.08)\nplt.show()"..
19ae0 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":.
19b00 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
19b20 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
19b40 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"
19b60 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
19b80 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
19ba0 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",.
19bc0 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.......},...
19be0 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",....
19c00 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",.
19c20 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
19c40 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",...
19c60 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"
19c80 2c 0a 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 39 2e 31 36 22 0a 20 20 20 20 ,......."version":."3.9.16".....
19ca0 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 6f 72 }...},..."nbformat":.4,..."nbfor
19cc0 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 05 0f 5a 56 b3 9c f2 mat_minor":.0.}PK..........ZV...
19ce0 e6 6a 06 00 00 6a 06 00 00 24 00 00 00 64 72 61 77 69 6e 67 2f 70 6c 6f 74 5f 68 6f 75 73 65 5f .j...j...$...drawing/plot_house_
19d00 77 69 74 68 5f 63 6f 6c 6f 72 73 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 22 3a 20 5b 0a with_colors.ipynb{..."cells":.[.
19d20 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",
19d40 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,.
19d60 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
19d80 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
19da0 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":.[..
19dc0 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 20 ......."%matplotlib.inline".....
19de0 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
19e00 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"
19e20 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":.[.........
19e40 22 5c 6e 23 20 48 6f 75 73 65 20 57 69 74 68 20 43 6f 6c 6f 72 73 5c 6e 5c 6e 44 72 61 77 20 61 "\n#.House.With.Colors\n\nDraw.a
19e60 20 67 72 61 70 68 20 77 69 74 68 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 5c 6e 22 0a 20 20 20 20 20 .graph.with.matplotlib.\n"......
19e80 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
19ea0 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
19ec0 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":.{...
19ee0 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.......}
19f00 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
19f20 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 urce":.[........."import.matplot
19f40 6c 69 62 2e 70 79 70 6c 6f 74 20 61 73 20 70 6c 74 5c 6e 69 6d 70 6f 72 74 20 6e 65 74 77 6f 72 lib.pyplot.as.plt\nimport.networ
19f60 6b 78 20 61 73 20 6e 78 5c 6e 5c 6e 47 20 3d 20 6e 78 2e 68 6f 75 73 65 5f 67 72 61 70 68 28 29 kx.as.nx\n\nG.=.nx.house_graph()
19f80 5c 6e 23 20 65 78 70 6c 69 63 69 74 6c 79 20 73 65 74 20 70 6f 73 69 74 69 6f 6e 73 5c 6e 70 6f \n#.explicitly.set.positions\npo
19fa0 73 20 3d 20 7b 30 3a 20 28 30 2c 20 30 29 2c 20 31 3a 20 28 31 2c 20 30 29 2c 20 32 3a 20 28 30 s.=.{0:.(0,.0),.1:.(1,.0),.2:.(0
19fc0 2c 20 31 29 2c 20 33 3a 20 28 31 2c 20 31 29 2c 20 34 3a 20 28 30 2e 35 2c 20 32 2e 30 29 7d 5c ,.1),.3:.(1,.1),.4:.(0.5,.2.0)}\
19fe0 6e 5c 6e 23 20 50 6c 6f 74 20 6e 6f 64 65 73 20 77 69 74 68 20 64 69 66 66 65 72 65 6e 74 20 70 n\n#.Plot.nodes.with.different.p
1a000 72 6f 70 65 72 74 69 65 73 20 66 6f 72 20 74 68 65 20 5c 22 77 61 6c 6c 5c 22 20 61 6e 64 20 5c roperties.for.the.\"wall\".and.\
1a020 22 72 6f 6f 66 5c 22 20 6e 6f 64 65 73 5c 6e 6e 78 2e 64 72 61 77 5f 6e 65 74 77 6f 72 6b 78 5f "roof\".nodes\nnx.draw_networkx_
1a040 6e 6f 64 65 73 28 5c 6e 20 20 20 20 47 2c 20 70 6f 73 2c 20 6e 6f 64 65 5f 73 69 7a 65 3d 33 30 nodes(\n....G,.pos,.node_size=30
1a060 30 30 2c 20 6e 6f 64 65 6c 69 73 74 3d 5b 30 2c 20 31 2c 20 32 2c 20 33 5d 2c 20 6e 6f 64 65 5f 00,.nodelist=[0,.1,.2,.3],.node_
1a080 63 6f 6c 6f 72 3d 5c 22 74 61 62 3a 62 6c 75 65 5c 22 5c 6e 29 5c 6e 6e 78 2e 64 72 61 77 5f 6e color=\"tab:blue\"\n)\nnx.draw_n
1a0a0 65 74 77 6f 72 6b 78 5f 6e 6f 64 65 73 28 47 2c 20 70 6f 73 2c 20 6e 6f 64 65 5f 73 69 7a 65 3d etworkx_nodes(G,.pos,.node_size=
1a0c0 32 30 30 30 2c 20 6e 6f 64 65 6c 69 73 74 3d 5b 34 5d 2c 20 6e 6f 64 65 5f 63 6f 6c 6f 72 3d 5c 2000,.nodelist=[4],.node_color=\
1a0e0 22 74 61 62 3a 6f 72 61 6e 67 65 5c 22 29 5c 6e 6e 78 2e 64 72 61 77 5f 6e 65 74 77 6f 72 6b 78 "tab:orange\")\nnx.draw_networkx
1a100 5f 65 64 67 65 73 28 47 2c 20 70 6f 73 2c 20 61 6c 70 68 61 3d 30 2e 35 2c 20 77 69 64 74 68 3d _edges(G,.pos,.alpha=0.5,.width=
1a120 36 29 5c 6e 23 20 43 75 73 74 6f 6d 69 7a 65 20 61 78 65 73 5c 6e 61 78 20 3d 20 70 6c 74 2e 67 6)\n#.Customize.axes\nax.=.plt.g
1a140 63 61 28 29 5c 6e 61 78 2e 6d 61 72 67 69 6e 73 28 30 2e 31 31 29 5c 6e 70 6c 74 2e 74 69 67 68 ca()\nax.margins(0.11)\nplt.tigh
1a160 74 5f 6c 61 79 6f 75 74 28 29 5c 6e 70 6c 74 2e 61 78 69 73 28 5c 22 6f 66 66 5c 22 29 5c 6e 70 t_layout()\nplt.axis(\"off\")\np
1a180 6c 74 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 lt.show()".......].....}...],...
1a1a0 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":.
1a1c0 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.
1a1e0 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",.
1a200 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".....},..
1a220 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
1a240 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":
1a260 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
1a280 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"
1a2a0 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
1a2c0 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
1a2e0 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":.
1a300 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"
1a320 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":."
1a340 33 2e 39 2e 31 36 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.9.16".....}...},..."nbformat":
1a360 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...
1a380 00 00 00 00 00 04 0f 5a 56 72 1b 90 7d 0b 0a 00 00 0b 0a 00 00 19 00 00 00 64 72 61 77 69 6e 67 .......ZVr..}............drawing
1a3a0 2f 70 6c 6f 74 5f 64 65 67 72 65 65 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 22 3a 20 5b /plot_degree.ipynb{..."cells":.[
1a3c0 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"
1a3e0 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,
1a400 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
1a420 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.......},......."
1a440 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":.[.
1a460 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"....
1a480 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
1a4a0 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
1a4c0 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":.[........
1a4e0 20 22 5c 6e 23 20 44 65 67 72 65 65 20 41 6e 61 6c 79 73 69 73 5c 6e 5c 6e 54 68 69 73 20 65 78 ."\n#.Degree.Analysis\n\nThis.ex
1a500 61 6d 70 6c 65 20 73 68 6f 77 73 20 73 65 76 65 72 61 6c 20 77 61 79 73 20 74 6f 20 76 69 73 75 ample.shows.several.ways.to.visu
1a520 61 6c 69 7a 65 20 74 68 65 20 64 69 73 74 72 69 62 75 74 69 6f 6e 20 6f 66 20 74 68 65 20 64 65 alize.the.distribution.of.the.de
1a540 67 72 65 65 20 6f 66 5c 6e 6e 6f 64 65 73 20 77 69 74 68 20 74 77 6f 20 63 6f 6d 6d 6f 6e 20 74 gree.of\nnodes.with.two.common.t
1a560 65 63 68 6e 69 71 75 65 73 3a 20 61 20 2a 64 65 67 72 65 65 2d 72 61 6e 6b 20 70 6c 6f 74 2a 20 echniques:.a.*degree-rank.plot*.
1a580 61 6e 64 20 61 5c 6e 2a 64 65 67 72 65 65 20 68 69 73 74 6f 67 72 61 6d 2a 2e 5c 6e 5c 6e 49 6e and.a\n*degree.histogram*.\n\nIn
1a5a0 20 74 68 69 73 20 65 78 61 6d 70 6c 65 2c 20 61 20 72 61 6e 64 6f 6d 20 47 72 61 70 68 20 69 73 .this.example,.a.random.Graph.is
1a5c0 20 67 65 6e 65 72 61 74 65 64 20 77 69 74 68 20 31 30 30 20 6e 6f 64 65 73 2e 20 54 68 65 20 64 .generated.with.100.nodes..The.d
1a5e0 65 67 72 65 65 20 6f 66 5c 6e 65 61 63 68 20 6e 6f 64 65 20 69 73 20 64 65 74 65 72 6d 69 6e 65 egree.of\neach.node.is.determine
1a600 64 2c 20 61 6e 64 20 61 20 66 69 67 75 72 65 20 69 73 20 67 65 6e 65 72 61 74 65 64 20 73 68 6f d,.and.a.figure.is.generated.sho
1a620 77 69 6e 67 20 74 68 72 65 65 20 74 68 69 6e 67 73 3a 5c 6e 31 2e 20 54 68 65 20 73 75 62 67 72 wing.three.things:\n1..The.subgr
1a640 61 70 68 20 6f 66 20 63 6f 6e 6e 65 63 74 65 64 20 63 6f 6d 70 6f 6e 65 6e 74 73 5c 6e 32 2e 20 aph.of.connected.components\n2..
1a660 54 68 65 20 64 65 67 72 65 65 2d 72 61 6e 6b 20 70 6c 6f 74 20 66 6f 72 20 74 68 65 20 47 72 61 The.degree-rank.plot.for.the.Gra
1a680 70 68 2c 20 61 6e 64 5c 6e 33 2e 20 54 68 65 20 64 65 67 72 65 65 20 68 69 73 74 6f 67 72 61 6d ph,.and\n3..The.degree.histogram
1a6a0 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".......].....},.....{......."
1a6c0 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
1a6e0 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
1a700 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
1a720 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":.[],.
1a740 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 72 ......"source":.[........."impor
1a760 74 20 6e 65 74 77 6f 72 6b 78 20 61 73 20 6e 78 5c 6e 69 6d 70 6f 72 74 20 6e 75 6d 70 79 20 61 t.networkx.as.nx\nimport.numpy.a
1a780 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 70 6c 6f 74 20 61 s.np\nimport.matplotlib.pyplot.a
1a7a0 73 20 70 6c 74 5c 6e 5c 6e 47 20 3d 20 6e 78 2e 67 6e 70 5f 72 61 6e 64 6f 6d 5f 67 72 61 70 68 s.plt\n\nG.=.nx.gnp_random_graph
1a7c0 28 31 30 30 2c 20 30 2e 30 32 2c 20 73 65 65 64 3d 31 30 33 37 34 31 39 36 29 5c 6e 5c 6e 64 65 (100,.0.02,.seed=10374196)\n\nde
1a7e0 67 72 65 65 5f 73 65 71 75 65 6e 63 65 20 3d 20 73 6f 72 74 65 64 28 28 64 20 66 6f 72 20 6e 2c gree_sequence.=.sorted((d.for.n,
1a800 20 64 20 69 6e 20 47 2e 64 65 67 72 65 65 28 29 29 2c 20 72 65 76 65 72 73 65 3d 54 72 75 65 29 .d.in.G.degree()),.reverse=True)
1a820 5c 6e 64 6d 61 78 20 3d 20 6d 61 78 28 64 65 67 72 65 65 5f 73 65 71 75 65 6e 63 65 29 5c 6e 5c \ndmax.=.max(degree_sequence)\n\
1a840 6e 66 69 67 20 3d 20 70 6c 74 2e 66 69 67 75 72 65 28 5c 22 44 65 67 72 65 65 20 6f 66 20 61 20 nfig.=.plt.figure(\"Degree.of.a.
1a860 72 61 6e 64 6f 6d 20 67 72 61 70 68 5c 22 2c 20 66 69 67 73 69 7a 65 3d 28 38 2c 20 38 29 29 5c random.graph\",.figsize=(8,.8))\
1a880 6e 23 20 43 72 65 61 74 65 20 61 20 67 72 69 64 73 70 65 63 20 66 6f 72 20 61 64 64 69 6e 67 20 n#.Create.a.gridspec.for.adding.
1a8a0 73 75 62 70 6c 6f 74 73 20 6f 66 20 64 69 66 66 65 72 65 6e 74 20 73 69 7a 65 73 5c 6e 61 78 67 subplots.of.different.sizes\naxg
1a8c0 72 69 64 20 3d 20 66 69 67 2e 61 64 64 5f 67 72 69 64 73 70 65 63 28 35 2c 20 34 29 5c 6e 5c 6e rid.=.fig.add_gridspec(5,.4)\n\n
1a8e0 61 78 30 20 3d 20 66 69 67 2e 61 64 64 5f 73 75 62 70 6c 6f 74 28 61 78 67 72 69 64 5b 30 3a 33 ax0.=.fig.add_subplot(axgrid[0:3
1a900 2c 20 3a 5d 29 5c 6e 47 63 63 20 3d 20 47 2e 73 75 62 67 72 61 70 68 28 73 6f 72 74 65 64 28 6e ,.:])\nGcc.=.G.subgraph(sorted(n
1a920 78 2e 63 6f 6e 6e 65 63 74 65 64 5f 63 6f 6d 70 6f 6e 65 6e 74 73 28 47 29 2c 20 6b 65 79 3d 6c x.connected_components(G),.key=l
1a940 65 6e 2c 20 72 65 76 65 72 73 65 3d 54 72 75 65 29 5b 30 5d 29 5c 6e 70 6f 73 20 3d 20 6e 78 2e en,.reverse=True)[0])\npos.=.nx.
1a960 73 70 72 69 6e 67 5f 6c 61 79 6f 75 74 28 47 63 63 2c 20 73 65 65 64 3d 31 30 33 39 36 39 35 33 spring_layout(Gcc,.seed=10396953
1a980 29 5c 6e 6e 78 2e 64 72 61 77 5f 6e 65 74 77 6f 72 6b 78 5f 6e 6f 64 65 73 28 47 63 63 2c 20 70 )\nnx.draw_networkx_nodes(Gcc,.p
1a9a0 6f 73 2c 20 61 78 3d 61 78 30 2c 20 6e 6f 64 65 5f 73 69 7a 65 3d 32 30 29 5c 6e 6e 78 2e 64 72 os,.ax=ax0,.node_size=20)\nnx.dr
1a9c0 61 77 5f 6e 65 74 77 6f 72 6b 78 5f 65 64 67 65 73 28 47 63 63 2c 20 70 6f 73 2c 20 61 78 3d 61 aw_networkx_edges(Gcc,.pos,.ax=a
1a9e0 78 30 2c 20 61 6c 70 68 61 3d 30 2e 34 29 5c 6e 61 78 30 2e 73 65 74 5f 74 69 74 6c 65 28 5c 22 x0,.alpha=0.4)\nax0.set_title(\"
1aa00 43 6f 6e 6e 65 63 74 65 64 20 63 6f 6d 70 6f 6e 65 6e 74 73 20 6f 66 20 47 5c 22 29 5c 6e 61 78 Connected.components.of.G\")\nax
1aa20 30 2e 73 65 74 5f 61 78 69 73 5f 6f 66 66 28 29 5c 6e 5c 6e 61 78 31 20 3d 20 66 69 67 2e 61 64 0.set_axis_off()\n\nax1.=.fig.ad
1aa40 64 5f 73 75 62 70 6c 6f 74 28 61 78 67 72 69 64 5b 33 3a 2c 20 3a 32 5d 29 5c 6e 61 78 31 2e 70 d_subplot(axgrid[3:,.:2])\nax1.p
1aa60 6c 6f 74 28 64 65 67 72 65 65 5f 73 65 71 75 65 6e 63 65 2c 20 5c 22 62 2d 5c 22 2c 20 6d 61 72 lot(degree_sequence,.\"b-\",.mar
1aa80 6b 65 72 3d 5c 22 6f 5c 22 29 5c 6e 61 78 31 2e 73 65 74 5f 74 69 74 6c 65 28 5c 22 44 65 67 72 ker=\"o\")\nax1.set_title(\"Degr
1aaa0 65 65 20 52 61 6e 6b 20 50 6c 6f 74 5c 22 29 5c 6e 61 78 31 2e 73 65 74 5f 79 6c 61 62 65 6c 28 ee.Rank.Plot\")\nax1.set_ylabel(
1aac0 5c 22 44 65 67 72 65 65 5c 22 29 5c 6e 61 78 31 2e 73 65 74 5f 78 6c 61 62 65 6c 28 5c 22 52 61 \"Degree\")\nax1.set_xlabel(\"Ra
1aae0 6e 6b 5c 22 29 5c 6e 5c 6e 61 78 32 20 3d 20 66 69 67 2e 61 64 64 5f 73 75 62 70 6c 6f 74 28 61 nk\")\n\nax2.=.fig.add_subplot(a
1ab00 78 67 72 69 64 5b 33 3a 2c 20 32 3a 5d 29 5c 6e 61 78 32 2e 62 61 72 28 2a 6e 70 2e 75 6e 69 71 xgrid[3:,.2:])\nax2.bar(*np.uniq
1ab20 75 65 28 64 65 67 72 65 65 5f 73 65 71 75 65 6e 63 65 2c 20 72 65 74 75 72 6e 5f 63 6f 75 6e 74 ue(degree_sequence,.return_count
1ab40 73 3d 54 72 75 65 29 29 5c 6e 61 78 32 2e 73 65 74 5f 74 69 74 6c 65 28 5c 22 44 65 67 72 65 65 s=True))\nax2.set_title(\"Degree
1ab60 20 68 69 73 74 6f 67 72 61 6d 5c 22 29 5c 6e 61 78 32 2e 73 65 74 5f 78 6c 61 62 65 6c 28 5c 22 .histogram\")\nax2.set_xlabel(\"
1ab80 44 65 67 72 65 65 5c 22 29 5c 6e 61 78 32 2e 73 65 74 5f 79 6c 61 62 65 6c 28 5c 22 23 20 6f 66 Degree\")\nax2.set_ylabel(\"#.of
1aba0 20 4e 6f 64 65 73 5c 22 29 5c 6e 5c 6e 66 69 67 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 5c .Nodes\")\n\nfig.tight_layout()\
1abc0 6e 70 6c 74 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 nplt.show()".......].....}...],.
1abe0 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 6c 73 70 65 63 22 .."metadata":.{....."kernelspec"
1ac00 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 22 50 79 74 68 6f :.{......."display_name":."Pytho
1ac20 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 79 74 68 6f 6e 22 n.3",......."language":."python"
1ac40 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 20 20 20 20 7d 2c ,......."name":."python3".....},
1ac60 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 20 20 20 20 22 63 ....."language_info":.{......."c
1ac80 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 20 22 6e 61 6d 65 odemirror_mode":.{........."name
1aca0 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 73 69 6f 6e 22 3a ":."ipython",........."version":
1acc0 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 74 65 6e 73 69 6f .3.......},......."file_extensio
1ace0 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 22 3a 20 22 74 65 n":.".py",......."mimetype":."te
1ad00 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 3a 20 22 70 79 74 xt/x-python",......."name":."pyt
1ad20 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 6f 72 74 65 72 22 hon",......."nbconvert_exporter"
1ad40 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 73 5f 6c 65 78 65 :."python",......."pygments_lexe
1ad60 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 73 69 6f 6e 22 3a r":."ipython3",......."version":
1ad80 20 22 33 2e 39 2e 31 36 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 6e 62 66 6f 72 6d 61 74 ."3.9.16".....}...},..."nbformat
1ada0 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 0a 7d 50 4b 03 ":.4,..."nbformat_minor":.0.}PK.
1adc0 04 14 00 00 00 00 00 04 0f 5a 56 66 68 42 52 8f 05 00 00 8f 05 00 00 20 00 00 00 64 72 61 77 69 .........ZVfhBR............drawi
1ade0 6e 67 2f 70 6c 6f 74 5f 65 64 67 65 5f 63 6f 6c 6f 72 6d 61 70 2e 69 70 79 6e 62 7b 0a 20 20 22 ng/plot_edge_colormap.ipynb{..."
1ae00 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 74 79 70 65 cells":.[.....{......."cell_type
1ae20 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
1ae40 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":.{...
1ae60 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.......}
1ae80 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
1aea0 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 62 20 69 6e urce":.[........."%matplotlib.in
1aec0 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 20 20 20 20 line".......].....},.....{......
1aee0 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",.......
1af00 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":.
1af20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 45 64 67 65 20 43 6f 6c 6f 72 6d 61 70 5c 6e 5c 6e [........."\n#.Edge.Colormap\n\n
1af40 44 72 61 77 20 61 20 67 72 61 70 68 20 77 69 74 68 20 6d 61 74 70 6c 6f 74 6c 69 62 2c 20 63 6f Draw.a.graph.with.matplotlib,.co
1af60 6c 6f 72 20 65 64 67 65 73 2e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 lor.edges.\n".......].....},....
1af80 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",...
1afa0 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,....
1afc0 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
1afe0 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
1b000 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":.[.....
1b020 20 20 20 20 22 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 ...."import.matplotlib.pyplot.as
1b040 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 5c 6e 47 .plt\nimport.networkx.as.nx\n\nG
1b060 20 3d 20 6e 78 2e 73 74 61 72 5f 67 72 61 70 68 28 32 30 29 5c 6e 70 6f 73 20 3d 20 6e 78 2e 73 .=.nx.star_graph(20)\npos.=.nx.s
1b080 70 72 69 6e 67 5f 6c 61 79 6f 75 74 28 47 2c 20 73 65 65 64 3d 36 33 29 20 20 23 20 53 65 65 64 pring_layout(G,.seed=63)..#.Seed
1b0a0 20 6c 61 79 6f 75 74 20 66 6f 72 20 72 65 70 72 6f 64 75 63 69 62 69 6c 69 74 79 5c 6e 63 6f 6c .layout.for.reproducibility\ncol
1b0c0 6f 72 73 20 3d 20 72 61 6e 67 65 28 32 30 29 5c 6e 6f 70 74 69 6f 6e 73 20 3d 20 7b 5c 6e 20 20 ors.=.range(20)\noptions.=.{\n..
1b0e0 20 20 5c 22 6e 6f 64 65 5f 63 6f 6c 6f 72 5c 22 3a 20 5c 22 23 41 30 43 42 45 32 5c 22 2c 5c 6e ..\"node_color\":.\"#A0CBE2\",\n
1b100 20 20 20 20 5c 22 65 64 67 65 5f 63 6f 6c 6f 72 5c 22 3a 20 63 6f 6c 6f 72 73 2c 5c 6e 20 20 20 ....\"edge_color\":.colors,\n...
1b120 20 5c 22 77 69 64 74 68 5c 22 3a 20 34 2c 5c 6e 20 20 20 20 5c 22 65 64 67 65 5f 63 6d 61 70 5c .\"width\":.4,\n....\"edge_cmap\
1b140 22 3a 20 70 6c 74 2e 63 6d 2e 42 6c 75 65 73 2c 5c 6e 20 20 20 20 5c 22 77 69 74 68 5f 6c 61 62 ":.plt.cm.Blues,\n....\"with_lab
1b160 65 6c 73 5c 22 3a 20 46 61 6c 73 65 2c 5c 6e 7d 5c 6e 6e 78 2e 64 72 61 77 28 47 2c 20 70 6f 73 els\":.False,\n}\nnx.draw(G,.pos
1b180 2c 20 2a 2a 6f 70 74 69 6f 6e 73 29 5c 6e 70 6c 74 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 ,.**options)\nplt.show()".......
1b1a0 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":.{....
1b1c0 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_
1b1e0 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
1b200 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
1b220 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
1b240 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":.{.
1b260 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",......
1b280 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.......},......."
1b2a0 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
1b2c0 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",......
1b2e0 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
1b300 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",......."
1b320 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",....
1b340 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 39 2e 31 36 22 0a 20 20 20 20 7d 0a 20 20 7d ..."version":."3.9.16".....}...}
1b360 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 6d ,..."nbformat":.4,..."nbformat_m
1b380 69 6e 6f 72 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 05 0f 5a 56 9d eb 3d 24 c7 07 00 00 inor":.0.}PK..........ZV..=$....
1b3a0 c7 07 00 00 25 00 00 00 64 72 61 77 69 6e 67 2f 70 6c 6f 74 5f 6d 75 6c 74 69 70 61 72 74 69 74 ....%...drawing/plot_multipartit
1b3c0 65 5f 67 72 61 70 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 e_graph.ipynb{..."cells":.[.....
1b3e0 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",....
1b400 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,.....
1b420 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
1b440 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
1b460 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":.[......
1b480 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".......].
1b4a0 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":.
1b4c0 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":.{}
1b4e0 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#
1b500 20 4d 75 6c 74 69 70 61 72 74 69 74 65 20 4c 61 79 6f 75 74 5c 6e 22 0a 20 20 20 20 20 20 5d 0a .Multipartite.Layout\n".......].
1b520 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":.
1b540 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":
1b560 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":.{......
1b580 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.......},..
1b5a0 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
1b5c0 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 69 6d 70 6f 72 74 20 69 74 65 72 74 6f 6f 6c 73 5c e":.[........."import.itertools\
1b5e0 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 20 70 6c 74 nimport.matplotlib.pyplot.as.plt
1b600 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 5c 6e 73 75 62 73 65 \nimport.networkx.as.nx\n\nsubse
1b620 74 5f 73 69 7a 65 73 20 3d 20 5b 35 2c 20 35 2c 20 34 2c 20 33 2c 20 32 2c 20 34 2c 20 34 2c 20 t_sizes.=.[5,.5,.4,.3,.2,.4,.4,.
1b640 33 5d 5c 6e 73 75 62 73 65 74 5f 63 6f 6c 6f 72 20 3d 20 5b 5c 6e 20 20 20 20 5c 22 67 6f 6c 64 3]\nsubset_color.=.[\n....\"gold
1b660 5c 22 2c 5c 6e 20 20 20 20 5c 22 76 69 6f 6c 65 74 5c 22 2c 5c 6e 20 20 20 20 5c 22 76 69 6f 6c \",\n....\"violet\",\n....\"viol
1b680 65 74 5c 22 2c 5c 6e 20 20 20 20 5c 22 76 69 6f 6c 65 74 5c 22 2c 5c 6e 20 20 20 20 5c 22 76 69 et\",\n....\"violet\",\n....\"vi
1b6a0 6f 6c 65 74 5c 22 2c 5c 6e 20 20 20 20 5c 22 6c 69 6d 65 67 72 65 65 6e 5c 22 2c 5c 6e 20 20 20 olet\",\n....\"limegreen\",\n...
1b6c0 20 5c 22 6c 69 6d 65 67 72 65 65 6e 5c 22 2c 5c 6e 20 20 20 20 5c 22 64 61 72 6b 6f 72 61 6e 67 .\"limegreen\",\n....\"darkorang
1b6e0 65 5c 22 2c 5c 6e 5d 5c 6e 5c 6e 5c 6e 64 65 66 20 6d 75 6c 74 69 6c 61 79 65 72 65 64 5f 67 72 e\",\n]\n\n\ndef.multilayered_gr
1b700 61 70 68 28 2a 73 75 62 73 65 74 5f 73 69 7a 65 73 29 3a 5c 6e 20 20 20 20 65 78 74 65 6e 74 73 aph(*subset_sizes):\n....extents
1b720 20 3d 20 6e 78 2e 75 74 69 6c 73 2e 70 61 69 72 77 69 73 65 28 69 74 65 72 74 6f 6f 6c 73 2e 61 .=.nx.utils.pairwise(itertools.a
1b740 63 63 75 6d 75 6c 61 74 65 28 28 30 2c 29 20 2b 20 73 75 62 73 65 74 5f 73 69 7a 65 73 29 29 5c ccumulate((0,).+.subset_sizes))\
1b760 6e 20 20 20 20 6c 61 79 65 72 73 20 3d 20 5b 72 61 6e 67 65 28 73 74 61 72 74 2c 20 65 6e 64 29 n....layers.=.[range(start,.end)
1b780 20 66 6f 72 20 73 74 61 72 74 2c 20 65 6e 64 20 69 6e 20 65 78 74 65 6e 74 73 5d 5c 6e 20 20 20 .for.start,.end.in.extents]\n...
1b7a0 20 47 20 3d 20 6e 78 2e 47 72 61 70 68 28 29 5c 6e 20 20 20 20 66 6f 72 20 69 2c 20 6c 61 79 65 .G.=.nx.Graph()\n....for.i,.laye
1b7c0 72 20 69 6e 20 65 6e 75 6d 65 72 61 74 65 28 6c 61 79 65 72 73 29 3a 5c 6e 20 20 20 20 20 20 20 r.in.enumerate(layers):\n.......
1b7e0 20 47 2e 61 64 64 5f 6e 6f 64 65 73 5f 66 72 6f 6d 28 6c 61 79 65 72 2c 20 6c 61 79 65 72 3d 69 .G.add_nodes_from(layer,.layer=i
1b800 29 5c 6e 20 20 20 20 66 6f 72 20 6c 61 79 65 72 31 2c 20 6c 61 79 65 72 32 20 69 6e 20 6e 78 2e )\n....for.layer1,.layer2.in.nx.
1b820 75 74 69 6c 73 2e 70 61 69 72 77 69 73 65 28 6c 61 79 65 72 73 29 3a 5c 6e 20 20 20 20 20 20 20 utils.pairwise(layers):\n.......
1b840 20 47 2e 61 64 64 5f 65 64 67 65 73 5f 66 72 6f 6d 28 69 74 65 72 74 6f 6f 6c 73 2e 70 72 6f 64 .G.add_edges_from(itertools.prod
1b860 75 63 74 28 6c 61 79 65 72 31 2c 20 6c 61 79 65 72 32 29 29 5c 6e 20 20 20 20 72 65 74 75 72 6e uct(layer1,.layer2))\n....return
1b880 20 47 5c 6e 5c 6e 5c 6e 47 20 3d 20 6d 75 6c 74 69 6c 61 79 65 72 65 64 5f 67 72 61 70 68 28 2a .G\n\n\nG.=.multilayered_graph(*
1b8a0 73 75 62 73 65 74 5f 73 69 7a 65 73 29 5c 6e 63 6f 6c 6f 72 20 3d 20 5b 73 75 62 73 65 74 5f 63 subset_sizes)\ncolor.=.[subset_c
1b8c0 6f 6c 6f 72 5b 64 61 74 61 5b 5c 22 6c 61 79 65 72 5c 22 5d 5d 20 66 6f 72 20 76 2c 20 64 61 74 olor[data[\"layer\"]].for.v,.dat
1b8e0 61 20 69 6e 20 47 2e 6e 6f 64 65 73 28 64 61 74 61 3d 54 72 75 65 29 5d 5c 6e 70 6f 73 20 3d 20 a.in.G.nodes(data=True)]\npos.=.
1b900 6e 78 2e 6d 75 6c 74 69 70 61 72 74 69 74 65 5f 6c 61 79 6f 75 74 28 47 2c 20 73 75 62 73 65 74 nx.multipartite_layout(G,.subset
1b920 5f 6b 65 79 3d 5c 22 6c 61 79 65 72 5c 22 29 5c 6e 70 6c 74 2e 66 69 67 75 72 65 28 66 69 67 73 _key=\"layer\")\nplt.figure(figs
1b940 69 7a 65 3d 28 38 2c 20 38 29 29 5c 6e 6e 78 2e 64 72 61 77 28 47 2c 20 70 6f 73 2c 20 6e 6f 64 ize=(8,.8))\nnx.draw(G,.pos,.nod
1b960 65 5f 63 6f 6c 6f 72 3d 63 6f 6c 6f 72 2c 20 77 69 74 68 5f 6c 61 62 65 6c 73 3d 46 61 6c 73 65 e_color=color,.with_labels=False
1b980 29 5c 6e 70 6c 74 2e 61 78 69 73 28 5c 22 65 71 75 61 6c 5c 22 29 5c 6e 70 6c 74 2e 73 68 6f 77 )\nplt.axis(\"equal\")\nplt.show
1b9a0 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
1b9c0 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":.{......
1b9e0 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",....
1ba00 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",......."
1ba20 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
1ba40 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
1ba60 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
1ba80 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.......
1baa0 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"
1bac0 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
1bae0 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",....
1bb00 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
1bb20 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
1bb40 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 39 2e 31 36 22 hon3",......."version":."3.9.16"
1bb60 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,..."
1bb80 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 04 0f nbformat_minor":.0.}PK..........
1bba0 5a 56 d1 83 2e 77 78 07 00 00 78 07 00 00 1c 00 00 00 64 72 61 77 69 6e 67 2f 70 6c 6f 74 5f 65 ZV...wx...x.......drawing/plot_e
1bbc0 67 6f 5f 67 72 61 70 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 go_graph.ipynb{..."cells":.[....
1bbe0 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",...
1bc00 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,....
1bc20 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
1bc40 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
1bc60 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":.[.....
1bc80 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".......]
1bca0 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":
1bcc0 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":.{
1bce0 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
1bd00 23 20 45 67 6f 20 47 72 61 70 68 5c 6e 5c 6e 45 78 61 6d 70 6c 65 20 75 73 69 6e 67 20 74 68 65 #.Ego.Graph\n\nExample.using.the
1bd20 20 4e 65 74 77 6f 72 6b 58 20 65 67 6f 5f 67 72 61 70 68 28 29 20 66 75 6e 63 74 69 6f 6e 20 74 .NetworkX.ego_graph().function.t
1bd40 6f 20 72 65 74 75 72 6e 20 74 68 65 20 6d 61 69 6e 20 65 67 6f 6e 65 74 20 6f 66 5c 6e 74 68 65 o.return.the.main.egonet.of\nthe
1bd60 20 6c 61 72 67 65 73 74 20 68 75 62 20 69 6e 20 61 20 42 61 72 61 62 5c 75 30 30 65 31 73 69 2d .largest.hub.in.a.Barab\u00e1si-
1bd80 41 6c 62 65 72 74 20 6e 65 74 77 6f 72 6b 2e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d Albert.network.\n".......].....}
1bda0 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
1bdc0 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
1bde0 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
1be00 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.......},.......
1be20 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":.[
1be40 0a 20 20 20 20 20 20 20 20 22 66 72 6f 6d 20 6f 70 65 72 61 74 6f 72 20 69 6d 70 6f 72 74 20 69 ........."from.operator.import.i
1be60 74 65 6d 67 65 74 74 65 72 5c 6e 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 temgetter\n\nimport.matplotlib.p
1be80 79 70 6c 6f 74 20 61 73 20 70 6c 74 5c 6e 69 6d 70 6f 72 74 20 6e 65 74 77 6f 72 6b 78 20 61 73 yplot.as.plt\nimport.networkx.as
1bea0 20 6e 78 5c 6e 5c 6e 23 20 43 72 65 61 74 65 20 61 20 42 41 20 6d 6f 64 65 6c 20 67 72 61 70 68 .nx\n\n#.Create.a.BA.model.graph
1bec0 20 2d 20 75 73 65 20 73 65 65 64 20 66 6f 72 20 72 65 70 72 6f 64 75 63 69 62 69 6c 69 74 79 5c .-.use.seed.for.reproducibility\
1bee0 6e 6e 20 3d 20 31 30 30 30 5c 6e 6d 20 3d 20 32 5c 6e 73 65 65 64 20 3d 20 32 30 35 33 32 5c 6e nn.=.1000\nm.=.2\nseed.=.20532\n
1bf00 47 20 3d 20 6e 78 2e 62 61 72 61 62 61 73 69 5f 61 6c 62 65 72 74 5f 67 72 61 70 68 28 6e 2c 20 G.=.nx.barabasi_albert_graph(n,.
1bf20 6d 2c 20 73 65 65 64 3d 73 65 65 64 29 5c 6e 5c 6e 23 20 66 69 6e 64 20 6e 6f 64 65 20 77 69 74 m,.seed=seed)\n\n#.find.node.wit
1bf40 68 20 6c 61 72 67 65 73 74 20 64 65 67 72 65 65 5c 6e 6e 6f 64 65 5f 61 6e 64 5f 64 65 67 72 65 h.largest.degree\nnode_and_degre
1bf60 65 20 3d 20 47 2e 64 65 67 72 65 65 28 29 5c 6e 28 6c 61 72 67 65 73 74 5f 68 75 62 2c 20 64 65 e.=.G.degree()\n(largest_hub,.de
1bf80 67 72 65 65 29 20 3d 20 73 6f 72 74 65 64 28 6e 6f 64 65 5f 61 6e 64 5f 64 65 67 72 65 65 2c 20 gree).=.sorted(node_and_degree,.
1bfa0 6b 65 79 3d 69 74 65 6d 67 65 74 74 65 72 28 31 29 29 5b 2d 31 5d 5c 6e 5c 6e 23 20 43 72 65 61 key=itemgetter(1))[-1]\n\n#.Crea
1bfc0 74 65 20 65 67 6f 20 67 72 61 70 68 20 6f 66 20 6d 61 69 6e 20 68 75 62 5c 6e 68 75 62 5f 65 67 te.ego.graph.of.main.hub\nhub_eg
1bfe0 6f 20 3d 20 6e 78 2e 65 67 6f 5f 67 72 61 70 68 28 47 2c 20 6c 61 72 67 65 73 74 5f 68 75 62 29 o.=.nx.ego_graph(G,.largest_hub)
1c000 5c 6e 5c 6e 23 20 44 72 61 77 20 67 72 61 70 68 5c 6e 70 6f 73 20 3d 20 6e 78 2e 73 70 72 69 6e \n\n#.Draw.graph\npos.=.nx.sprin
1c020 67 5f 6c 61 79 6f 75 74 28 68 75 62 5f 65 67 6f 2c 20 73 65 65 64 3d 73 65 65 64 29 20 20 23 20 g_layout(hub_ego,.seed=seed)..#.
1c040 53 65 65 64 20 6c 61 79 6f 75 74 20 66 6f 72 20 72 65 70 72 6f 64 75 63 69 62 69 6c 69 74 79 5c Seed.layout.for.reproducibility\
1c060 6e 6e 78 2e 64 72 61 77 28 68 75 62 5f 65 67 6f 2c 20 70 6f 73 2c 20 6e 6f 64 65 5f 63 6f 6c 6f nnx.draw(hub_ego,.pos,.node_colo
1c080 72 3d 5c 22 62 5c 22 2c 20 6e 6f 64 65 5f 73 69 7a 65 3d 35 30 2c 20 77 69 74 68 5f 6c 61 62 65 r=\"b\",.node_size=50,.with_labe
1c0a0 6c 73 3d 46 61 6c 73 65 29 5c 6e 5c 6e 23 20 44 72 61 77 20 65 67 6f 20 61 73 20 6c 61 72 67 65 ls=False)\n\n#.Draw.ego.as.large
1c0c0 20 61 6e 64 20 72 65 64 5c 6e 6f 70 74 69 6f 6e 73 20 3d 20 7b 5c 22 6e 6f 64 65 5f 73 69 7a 65 .and.red\noptions.=.{\"node_size
1c0e0 5c 22 3a 20 33 30 30 2c 20 5c 22 6e 6f 64 65 5f 63 6f 6c 6f 72 5c 22 3a 20 5c 22 72 5c 22 7d 5c \":.300,.\"node_color\":.\"r\"}\
1c100 6e 6e 78 2e 64 72 61 77 5f 6e 65 74 77 6f 72 6b 78 5f 6e 6f 64 65 73 28 68 75 62 5f 65 67 6f 2c nnx.draw_networkx_nodes(hub_ego,
1c120 20 70 6f 73 2c 20 6e 6f 64 65 6c 69 73 74 3d 5b 6c 61 72 67 65 73 74 5f 68 75 62 5d 2c 20 2a 2a .pos,.nodelist=[largest_hub],.**
1c140 6f 70 74 69 6f 6e 73 29 5c 6e 70 6c 74 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 options)\nplt.show()".......]...
1c160 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
1c180 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
1c1a0 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":
1c1c0 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
1c1e0 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":.{
1c200 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":.{.....
1c220 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",........."
1c240 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
1c260 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
1c280 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
1c2a0 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_
1c2c0 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
1c2e0 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",......."
1c300 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 39 2e 31 36 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 version":."3.9.16".....}...},...
1c320 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
1c340 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 06 0f 5a 56 3a d9 a0 7f cb 06 00 00 cb 06 00 00 ":.0.}PK..........ZV:...........
1c360 1c 00 00 00 64 72 61 77 69 6e 67 2f 70 6c 6f 74 5f 73 65 6c 66 6c 6f 6f 70 73 2e 69 70 79 6e 62 ....drawing/plot_selfloops.ipynb
1c380 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
1c3a0 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
1c3c0 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":
1c3e0 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...
1c400 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":.[],.....
1c420 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
1c440 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".......].....},.....{.
1c460 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",..
1c480 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
1c4a0 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 53 65 6c 66 2d 6c 6f 6f 70 73 5c 6e ce":.[........."\n#.Self-loops\n
1c4c0 5c 6e 41 20 73 65 6c 66 2d 6c 6f 6f 70 20 69 73 20 61 6e 20 65 64 67 65 20 74 68 61 74 20 6f 72 \nA.self-loop.is.an.edge.that.or
1c4e0 69 67 69 6e 61 74 65 73 20 66 72 6f 6d 20 61 6e 64 20 74 65 72 6d 69 6e 61 74 65 73 20 74 68 65 iginates.from.and.terminates.the
1c500 20 73 61 6d 65 20 6e 6f 64 65 2e 5c 6e 54 68 69 73 20 65 78 61 6d 70 6c 65 20 73 68 6f 77 73 20 .same.node.\nThis.example.shows.
1c520 68 6f 77 20 74 6f 20 64 72 61 77 20 73 65 6c 66 2d 6c 6f 6f 70 73 20 77 69 74 68 20 60 6e 78 5f how.to.draw.self-loops.with.`nx_
1c540 70 79 6c 61 62 60 2e 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 pylab`.\n".......].....},.....{.
1c560 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",......
1c580 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,.......
1c5a0 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
1c5c0 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
1c5e0 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":.[........
1c600 20 22 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 6f 72 74 20 ."import.networkx.as.nx\nimport.
1c620 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 70 6c 6f 74 20 61 73 20 70 6c 74 5c 6e 5c 6e 23 20 43 72 matplotlib.pyplot.as.plt\n\n#.Cr
1c640 65 61 74 65 20 61 20 67 72 61 70 68 20 61 6e 64 20 61 64 64 20 61 20 73 65 6c 66 2d 6c 6f 6f 70 eate.a.graph.and.add.a.self-loop
1c660 20 74 6f 20 6e 6f 64 65 20 30 5c 6e 47 20 3d 20 6e 78 2e 63 6f 6d 70 6c 65 74 65 5f 67 72 61 70 .to.node.0\nG.=.nx.complete_grap
1c680 68 28 33 2c 20 63 72 65 61 74 65 5f 75 73 69 6e 67 3d 6e 78 2e 44 69 47 72 61 70 68 29 5c 6e 47 h(3,.create_using=nx.DiGraph)\nG
1c6a0 2e 61 64 64 5f 65 64 67 65 28 30 2c 20 30 29 5c 6e 70 6f 73 20 3d 20 6e 78 2e 63 69 72 63 75 6c .add_edge(0,.0)\npos.=.nx.circul
1c6c0 61 72 5f 6c 61 79 6f 75 74 28 47 29 5c 6e 5c 6e 23 20 41 73 20 6f 66 20 76 65 72 73 69 6f 6e 20 ar_layout(G)\n\n#.As.of.version.
1c6e0 32 2e 36 2c 20 73 65 6c 66 2d 6c 6f 6f 70 73 20 61 72 65 20 64 72 61 77 6e 20 62 79 20 64 65 66 2.6,.self-loops.are.drawn.by.def
1c700 61 75 6c 74 20 77 69 74 68 20 74 68 65 20 73 61 6d 65 20 73 74 79 6c 69 6e 67 20 61 73 5c 6e 23 ault.with.the.same.styling.as\n#
1c720 20 6f 74 68 65 72 20 65 64 67 65 73 5c 6e 6e 78 2e 64 72 61 77 28 47 2c 20 70 6f 73 2c 20 77 69 .other.edges\nnx.draw(G,.pos,.wi
1c740 74 68 5f 6c 61 62 65 6c 73 3d 54 72 75 65 29 5c 6e 5c 6e 23 20 41 64 64 20 73 65 6c 66 2d 6c 6f th_labels=True)\n\n#.Add.self-lo
1c760 6f 70 73 20 74 6f 20 74 68 65 20 72 65 6d 61 69 6e 69 6e 67 20 6e 6f 64 65 73 5c 6e 65 64 67 65 ops.to.the.remaining.nodes\nedge
1c780 6c 69 73 74 20 3d 20 5b 28 31 2c 20 31 29 2c 20 28 32 2c 20 32 29 5d 5c 6e 47 2e 61 64 64 5f 65 list.=.[(1,.1),.(2,.2)]\nG.add_e
1c7a0 64 67 65 73 5f 66 72 6f 6d 28 65 64 67 65 6c 69 73 74 29 5c 6e 5c 6e 23 20 44 72 61 77 20 74 68 dges_from(edgelist)\n\n#.Draw.th
1c7c0 65 20 6e 65 77 6c 79 20 61 64 64 65 64 20 73 65 6c 66 2d 6c 6f 6f 70 73 20 77 69 74 68 20 64 69 e.newly.added.self-loops.with.di
1c7e0 66 66 65 72 65 6e 74 20 66 6f 72 6d 61 74 74 69 6e 67 5c 6e 6e 78 2e 64 72 61 77 5f 6e 65 74 77 fferent.formatting\nnx.draw_netw
1c800 6f 72 6b 78 5f 65 64 67 65 73 28 47 2c 20 70 6f 73 2c 20 65 64 67 65 6c 69 73 74 3d 65 64 67 65 orkx_edges(G,.pos,.edgelist=edge
1c820 6c 69 73 74 2c 20 61 72 72 6f 77 73 74 79 6c 65 3d 5c 22 3c 7c 2d 5c 22 2c 20 73 74 79 6c 65 3d list,.arrowstyle=\"<|-\",.style=
1c840 5c 22 64 61 73 68 65 64 5c 22 29 5c 6e 5c 6e 70 6c 74 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 \"dashed\")\n\nplt.show()"......
1c860 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 20 .].....}...],..."metadata":.{...
1c880 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 79 .."kernelspec":.{......."display
1c8a0 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 75 _name":."Python.3",......."langu
1c8c0 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 70 age":."python",......."name":."p
1c8e0 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 66 ython3".....},....."language_inf
1c900 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 7b o":.{......."codemirror_mode":.{
1c920 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 20 ........."name":."ipython",.....
1c940 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 20 ...."version":.3.......},.......
1c960 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 22 "file_extension":.".py",......."
1c980 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 20 mimetype":."text/x-python",.....
1c9a0 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 6e .."name":."python",......."nbcon
1c9c0 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 20 vert_exporter":."python",.......
1c9e0 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 20 "pygments_lexer":."ipython3",...
1ca00 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 39 2e 31 36 22 0a 20 20 20 20 7d 0a 20 20 ...."version":."3.9.16".....}...
1ca20 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_
1ca40 6d 69 6e 6f 72 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 06 0f 5a 56 c2 ac 67 54 d3 08 00 minor":.0.}PK..........ZV..gT...
1ca60 00 d3 08 00 00 1a 00 00 00 64 72 61 77 69 6e 67 2f 70 6c 6f 74 5f 73 61 6d 70 73 6f 6e 2e 69 70 .........drawing/plot_sampson.ip
1ca80 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 22 63 ynb{..."cells":.[.....{......."c
1caa0 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
1cac0 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
1cae0 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
1cb00 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":.[],..
1cb20 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 70 6c ....."source":.[........."%matpl
1cb40 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 20 20 otlib.inline".......].....},....
1cb60 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"
1cb80 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
1cba0 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 53 61 6d 70 73 6f 6e 5c 6e ource":.[........."\n#.Sampson\n
1cbc0 5c 6e 53 61 6d 70 73 6f 6e 27 73 20 6d 6f 6e 61 73 74 65 72 79 20 64 61 74 61 2e 5c 6e 5c 6e 53 \nSampson's.monastery.data.\n\nS
1cbe0 68 6f 77 73 20 68 6f 77 20 74 6f 20 72 65 61 64 20 64 61 74 61 20 66 72 6f 6d 20 61 20 7a 69 70 hows.how.to.read.data.from.a.zip
1cc00 20 66 69 6c 65 20 61 6e 64 20 70 6c 6f 74 20 6d 75 6c 74 69 70 6c 65 20 66 72 61 6d 65 73 2e 5c .file.and.plot.multiple.frames.\
1cc20 6e 5c 6e 54 68 65 20 64 61 74 61 20 66 69 6c 65 20 63 61 6e 20 62 65 20 66 6f 75 6e 64 20 61 74 n\nThe.data.file.can.be.found.at
1cc40 3a 5c 6e 5c 6e 2d 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6e 65 74 77 6f 72 :\n\n-.https://github.com/networ
1cc60 6b 78 2f 6e 65 74 77 6f 72 6b 78 2f 62 6c 6f 62 2f 6d 61 69 6e 2f 65 78 61 6d 70 6c 65 73 2f 64 kx/networkx/blob/main/examples/d
1cc80 72 61 77 69 6e 67 2f 73 61 6d 70 73 6f 6e 5f 64 61 74 61 2e 7a 69 70 5c 6e 22 0a 20 20 20 20 20 rawing/sampson_data.zip\n"......
1cca0 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
1ccc0 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
1cce0 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":.{...
1cd00 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.......}
1cd20 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
1cd40 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 69 6d 70 6f 72 74 20 7a 69 70 66 69 6c 65 urce":.[........."import.zipfile
1cd60 5c 6e 66 72 6f 6d 20 69 6f 20 69 6d 70 6f 72 74 20 42 79 74 65 73 49 4f 20 61 73 20 53 74 72 69 \nfrom.io.import.BytesIO.as.Stri
1cd80 6e 67 49 4f 5c 6e 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 ngIO\n\nimport.matplotlib.pyplot
1cda0 20 61 73 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 .as.plt\nimport.networkx.as.nx\n
1cdc0 5c 6e 77 69 74 68 20 7a 69 70 66 69 6c 65 2e 5a 69 70 46 69 6c 65 28 5c 22 73 61 6d 70 73 6f 6e \nwith.zipfile.ZipFile(\"sampson
1cde0 5f 64 61 74 61 2e 7a 69 70 5c 22 29 20 61 73 20 7a 66 3a 5c 6e 20 20 20 20 65 31 20 3d 20 53 74 _data.zip\").as.zf:\n....e1.=.St
1ce00 72 69 6e 67 49 4f 28 7a 66 2e 72 65 61 64 28 5c 22 73 61 6d 70 6c 69 6b 65 31 2e 74 78 74 5c 22 ringIO(zf.read(\"samplike1.txt\"
1ce20 29 29 5c 6e 20 20 20 20 65 32 20 3d 20 53 74 72 69 6e 67 49 4f 28 7a 66 2e 72 65 61 64 28 5c 22 ))\n....e2.=.StringIO(zf.read(\"
1ce40 73 61 6d 70 6c 69 6b 65 32 2e 74 78 74 5c 22 29 29 5c 6e 20 20 20 20 65 33 20 3d 20 53 74 72 69 samplike2.txt\"))\n....e3.=.Stri
1ce60 6e 67 49 4f 28 7a 66 2e 72 65 61 64 28 5c 22 73 61 6d 70 6c 69 6b 65 33 2e 74 78 74 5c 22 29 29 ngIO(zf.read(\"samplike3.txt\"))
1ce80 5c 6e 5c 6e 47 31 20 3d 20 6e 78 2e 72 65 61 64 5f 65 64 67 65 6c 69 73 74 28 65 31 2c 20 64 65 \n\nG1.=.nx.read_edgelist(e1,.de
1cea0 6c 69 6d 69 74 65 72 3d 5c 22 5c 5c 74 5c 22 29 5c 6e 47 32 20 3d 20 6e 78 2e 72 65 61 64 5f 65 limiter=\"\\t\")\nG2.=.nx.read_e
1cec0 64 67 65 6c 69 73 74 28 65 32 2c 20 64 65 6c 69 6d 69 74 65 72 3d 5c 22 5c 5c 74 5c 22 29 5c 6e dgelist(e2,.delimiter=\"\\t\")\n
1cee0 47 33 20 3d 20 6e 78 2e 72 65 61 64 5f 65 64 67 65 6c 69 73 74 28 65 33 2c 20 64 65 6c 69 6d 69 G3.=.nx.read_edgelist(e3,.delimi
1cf00 74 65 72 3d 5c 22 5c 5c 74 5c 22 29 5c 6e 70 6f 73 20 3d 20 6e 78 2e 73 70 72 69 6e 67 5f 6c 61 ter=\"\\t\")\npos.=.nx.spring_la
1cf20 79 6f 75 74 28 47 33 2c 20 69 74 65 72 61 74 69 6f 6e 73 3d 31 30 30 2c 20 73 65 65 64 3d 31 37 yout(G3,.iterations=100,.seed=17
1cf40 33 29 5c 6e 70 6c 74 2e 63 6c 66 28 29 5c 6e 5c 6e 70 6c 74 2e 73 75 62 70 6c 6f 74 28 32 32 31 3)\nplt.clf()\n\nplt.subplot(221
1cf60 29 5c 6e 70 6c 74 2e 74 69 74 6c 65 28 5c 22 73 61 6d 70 6c 69 6b 65 31 5c 22 29 5c 6e 6e 78 2e )\nplt.title(\"samplike1\")\nnx.
1cf80 64 72 61 77 28 47 31 2c 20 70 6f 73 2c 20 6e 6f 64 65 5f 73 69 7a 65 3d 35 30 2c 20 77 69 74 68 draw(G1,.pos,.node_size=50,.with
1cfa0 5f 6c 61 62 65 6c 73 3d 46 61 6c 73 65 29 5c 6e 70 6c 74 2e 73 75 62 70 6c 6f 74 28 32 32 32 29 _labels=False)\nplt.subplot(222)
1cfc0 5c 6e 70 6c 74 2e 74 69 74 6c 65 28 5c 22 73 61 6d 70 6c 69 6b 65 32 5c 22 29 5c 6e 6e 78 2e 64 \nplt.title(\"samplike2\")\nnx.d
1cfe0 72 61 77 28 47 32 2c 20 70 6f 73 2c 20 6e 6f 64 65 5f 73 69 7a 65 3d 35 30 2c 20 77 69 74 68 5f raw(G2,.pos,.node_size=50,.with_
1d000 6c 61 62 65 6c 73 3d 46 61 6c 73 65 29 5c 6e 70 6c 74 2e 73 75 62 70 6c 6f 74 28 32 32 33 29 5c labels=False)\nplt.subplot(223)\
1d020 6e 70 6c 74 2e 74 69 74 6c 65 28 5c 22 73 61 6d 70 6c 69 6b 65 33 5c 22 29 5c 6e 6e 78 2e 64 72 nplt.title(\"samplike3\")\nnx.dr
1d040 61 77 28 47 33 2c 20 70 6f 73 2c 20 6e 6f 64 65 5f 73 69 7a 65 3d 35 30 2c 20 77 69 74 68 5f 6c aw(G3,.pos,.node_size=50,.with_l
1d060 61 62 65 6c 73 3d 46 61 6c 73 65 29 5c 6e 70 6c 74 2e 73 75 62 70 6c 6f 74 28 32 32 34 29 5c 6e abels=False)\nplt.subplot(224)\n
1d080 70 6c 74 2e 74 69 74 6c 65 28 5c 22 73 61 6d 70 6c 69 6b 65 31 2c 32 2c 33 5c 22 29 5c 6e 6e 78 plt.title(\"samplike1,2,3\")\nnx
1d0a0 2e 64 72 61 77 28 47 33 2c 20 70 6f 73 2c 20 65 64 67 65 6c 69 73 74 3d 6c 69 73 74 28 47 33 2e .draw(G3,.pos,.edgelist=list(G3.
1d0c0 65 64 67 65 73 28 29 29 2c 20 6e 6f 64 65 5f 73 69 7a 65 3d 35 30 2c 20 77 69 74 68 5f 6c 61 62 edges()),.node_size=50,.with_lab
1d0e0 65 6c 73 3d 46 61 6c 73 65 29 5c 6e 6e 78 2e 64 72 61 77 5f 6e 65 74 77 6f 72 6b 78 5f 65 64 67 els=False)\nnx.draw_networkx_edg
1d100 65 73 28 47 31 2c 20 70 6f 73 2c 20 61 6c 70 68 61 3d 30 2e 32 35 29 5c 6e 6e 78 2e 64 72 61 77 es(G1,.pos,.alpha=0.25)\nnx.draw
1d120 5f 6e 65 74 77 6f 72 6b 78 5f 65 64 67 65 73 28 47 32 2c 20 70 6f 73 2c 20 61 6c 70 68 61 3d 30 _networkx_edges(G2,.pos,.alpha=0
1d140 2e 32 35 29 5c 6e 70 6c 74 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 5c 6e 70 6c 74 2e 73 68 .25)\nplt.tight_layout()\nplt.sh
1d160 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 61 ow()".......].....}...],..."meta
1d180 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 20 data":.{....."kernelspec":.{....
1d1a0 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 20 ..."display_name":."Python.3",..
1d1c0 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 20 ....."language":."python",......
1d1e0 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 6c ."name":."python3".....},....."l
1d200 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 72 anguage_info":.{......."codemirr
1d220 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 79 or_mode":.{........."name":."ipy
1d240 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 20 thon",........."version":.3.....
1d260 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 70 ..},......."file_extension":.".p
1d280 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 79 y",......."mimetype":."text/x-py
1d2a0 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 20 thon",......."name":."python",..
1d2c0 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 68 ....."nbconvert_exporter":."pyth
1d2e0 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 70 on",......."pygments_lexer":."ip
1d300 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 39 2e 31 ython3",......."version":."3.9.1
1d320 36 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 6".....}...},..."nbformat":.4,..
1d340 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........
1d360 1b 0f 5a 56 80 de 93 2b ce 07 00 00 ce 07 00 00 1f 00 00 00 65 78 74 65 72 6e 61 6c 2f 6a 61 76 ..ZV...+............external/jav
1d380 61 73 63 72 69 70 74 5f 66 6f 72 63 65 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 22 3a 20 ascript_force.ipynb{..."cells":.
1d3a0 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 64 65 [.....{......."cell_type":."code
1d3c0 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
1d3e0 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
1d400 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.......},.......
1d420 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":.[
1d440 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 20 20 ........."%matplotlib.inline"...
1d460 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
1d480 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
1d4a0 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":.[.......
1d4c0 20 20 22 5c 6e 23 20 4a 61 76 61 73 63 72 69 70 74 5c 6e 5c 6e 45 78 61 6d 70 6c 65 20 6f 66 20 .."\n#.Javascript\n\nExample.of.
1d4e0 77 72 69 74 69 6e 67 20 4a 53 4f 4e 20 66 6f 72 6d 61 74 20 67 72 61 70 68 20 64 61 74 61 20 61 writing.JSON.format.graph.data.a
1d500 6e 64 20 75 73 69 6e 67 20 74 68 65 20 44 33 20 4a 61 76 61 73 63 72 69 70 74 20 6c 69 62 72 61 nd.using.the.D3.Javascript.libra
1d520 72 79 5c 6e 74 6f 20 70 72 6f 64 75 63 65 20 61 6e 20 48 54 4d 4c 2f 4a 61 76 61 73 63 72 69 70 ry\nto.produce.an.HTML/Javascrip
1d540 74 20 64 72 61 77 69 6e 67 2e 5c 6e 5c 6e 59 6f 75 20 77 69 6c 6c 20 6e 65 65 64 20 74 6f 20 64 t.drawing.\n\nYou.will.need.to.d
1d560 6f 77 6e 6c 6f 61 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 64 69 72 65 63 74 6f 72 79 3a ownload.the.following.directory:
1d580 5c 6e 5c 6e 2d 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6e 65 74 77 6f 72 6b \n\n-.https://github.com/network
1d5a0 78 2f 6e 65 74 77 6f 72 6b 78 2f 74 72 65 65 2f 6d 61 69 6e 2f 65 78 61 6d 70 6c 65 73 2f 65 78 x/networkx/tree/main/examples/ex
1d5c0 74 65 72 6e 61 6c 2f 66 6f 72 63 65 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 ternal/force\n".......].....},..
1d5e0 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",.
1d600 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,..
1d620 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
1d640 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
1d660 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":.[...
1d680 20 20 20 20 20 20 22 69 6d 70 6f 72 74 20 6a 73 6f 6e 5c 6e 5c 6e 69 6d 70 6f 72 74 20 66 6c 61 ......"import.json\n\nimport.fla
1d6a0 73 6b 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 5c 6e 47 20 3d sk\nimport.networkx.as.nx\n\nG.=
1d6c0 20 6e 78 2e 62 61 72 62 65 6c 6c 5f 67 72 61 70 68 28 36 2c 20 33 29 5c 6e 23 20 74 68 69 73 20 .nx.barbell_graph(6,.3)\n#.this.
1d6e0 64 33 20 65 78 61 6d 70 6c 65 20 75 73 65 73 20 74 68 65 20 6e 61 6d 65 20 61 74 74 72 69 62 75 d3.example.uses.the.name.attribu
1d700 74 65 20 66 6f 72 20 74 68 65 20 6d 6f 75 73 65 2d 68 6f 76 65 72 20 76 61 6c 75 65 2c 5c 6e 23 te.for.the.mouse-hover.value,\n#
1d720 20 73 6f 20 61 64 64 20 61 20 6e 61 6d 65 20 74 6f 20 65 61 63 68 20 6e 6f 64 65 5c 6e 66 6f 72 .so.add.a.name.to.each.node\nfor
1d740 20 6e 20 69 6e 20 47 3a 5c 6e 20 20 20 20 47 2e 6e 6f 64 65 73 5b 6e 5d 5b 5c 22 6e 61 6d 65 5c .n.in.G:\n....G.nodes[n][\"name\
1d760 22 5d 20 3d 20 6e 5c 6e 23 20 77 72 69 74 65 20 6a 73 6f 6e 20 66 6f 72 6d 61 74 74 65 64 20 64 "].=.n\n#.write.json.formatted.d
1d780 61 74 61 5c 6e 64 20 3d 20 6e 78 2e 6a 73 6f 6e 5f 67 72 61 70 68 2e 6e 6f 64 65 5f 6c 69 6e 6b ata\nd.=.nx.json_graph.node_link
1d7a0 5f 64 61 74 61 28 47 29 20 20 23 20 6e 6f 64 65 2d 6c 69 6e 6b 20 66 6f 72 6d 61 74 20 74 6f 20 _data(G)..#.node-link.format.to.
1d7c0 73 65 72 69 61 6c 69 7a 65 5c 6e 23 20 77 72 69 74 65 20 6a 73 6f 6e 5c 6e 6a 73 6f 6e 2e 64 75 serialize\n#.write.json\njson.du
1d7e0 6d 70 28 64 2c 20 6f 70 65 6e 28 5c 22 66 6f 72 63 65 2f 66 6f 72 63 65 2e 6a 73 6f 6e 5c 22 2c mp(d,.open(\"force/force.json\",
1d800 20 5c 22 77 5c 22 29 29 5c 6e 70 72 69 6e 74 28 5c 22 57 72 6f 74 65 20 6e 6f 64 65 2d 6c 69 6e .\"w\"))\nprint(\"Wrote.node-lin
1d820 6b 20 4a 53 4f 4e 20 64 61 74 61 20 74 6f 20 66 6f 72 63 65 2f 66 6f 72 63 65 2e 6a 73 6f 6e 5c k.JSON.data.to.force/force.json\
1d840 22 29 5c 6e 5c 6e 23 20 53 65 72 76 65 20 74 68 65 20 66 69 6c 65 20 6f 76 65 72 20 68 74 74 70 ")\n\n#.Serve.the.file.over.http
1d860 20 74 6f 20 61 6c 6c 6f 77 20 66 6f 72 20 63 72 6f 73 73 20 6f 72 69 67 69 6e 20 72 65 71 75 65 .to.allow.for.cross.origin.reque
1d880 73 74 73 5c 6e 61 70 70 20 3d 20 66 6c 61 73 6b 2e 46 6c 61 73 6b 28 5f 5f 6e 61 6d 65 5f 5f 2c sts\napp.=.flask.Flask(__name__,
1d8a0 20 73 74 61 74 69 63 5f 66 6f 6c 64 65 72 3d 5c 22 66 6f 72 63 65 5c 22 29 5c 6e 5c 6e 5c 6e 40 .static_folder=\"force\")\n\n\n@
1d8c0 61 70 70 2e 72 6f 75 74 65 28 5c 22 2f 5c 22 29 5c 6e 64 65 66 20 73 74 61 74 69 63 5f 70 72 6f app.route(\"/\")\ndef.static_pro
1d8e0 78 79 28 29 3a 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 61 70 70 2e 73 65 6e 64 5f 73 74 61 74 69 xy():\n....return.app.send_stati
1d900 63 5f 66 69 6c 65 28 5c 22 66 6f 72 63 65 2e 68 74 6d 6c 5c 22 29 5c 6e 5c 6e 5c 6e 70 72 69 6e c_file(\"force.html\")\n\n\nprin
1d920 74 28 5c 22 5c 5c 6e 47 6f 20 74 6f 20 68 74 74 70 3a 2f 2f 6c 6f 63 61 6c 68 6f 73 74 3a 38 30 t(\"\\nGo.to.http://localhost:80
1d940 30 30 20 74 6f 20 73 65 65 20 74 68 65 20 65 78 61 6d 70 6c 65 5c 5c 6e 5c 22 29 5c 6e 61 70 70 00.to.see.the.example\\n\")\napp
1d960 2e 72 75 6e 28 70 6f 72 74 3d 38 30 30 30 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 0a 20 .run(port=8000)".......].....}..
1d980 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 6c 73 .],..."metadata":.{....."kernels
1d9a0 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 22 50 pec":.{......."display_name":."P
1d9c0 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 79 74 ython.3",......."language":."pyt
1d9e0 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 20 20 hon",......."name":."python3"...
1da00 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 20 20 ..},....."language_info":.{.....
1da20 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 20 22 .."codemirror_mode":.{........."
1da40 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 73 69 name":."ipython",........."versi
1da60 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 74 65 on":.3.......},......."file_exte
1da80 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 22 3a nsion":.".py",......."mimetype":
1daa0 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 3a 20 ."text/x-python",......."name":.
1dac0 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 6f 72 "python",......."nbconvert_expor
1dae0 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 73 5f ter":."python",......."pygments_
1db00 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 73 69 lexer":."ipython3",......."versi
1db20 6f 6e 22 3a 20 22 33 2e 39 2e 31 36 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 6e 62 66 6f on":."3.9.16".....}...},..."nbfo
1db40 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 0a rmat":.4,..."nbformat_minor":.0.
1db60 7d 50 4b 03 04 14 00 00 00 00 00 1b 0f 5a 56 cf 24 a4 1a 17 0a 00 00 17 0a 00 00 1a 00 00 00 65 }PK..........ZV.$..............e
1db80 78 74 65 72 6e 61 6c 2f 70 6c 6f 74 5f 69 67 72 61 70 68 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 xternal/plot_igraph.ipynb{..."ce
1dba0 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":
1dbc0 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"
1dbe0 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":.{.....
1dc00 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.......},.
1dc20 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
1dc40 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
1dc60 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".......].....},.....{......."
1dc80 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
1dca0 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":.[.
1dcc0 20 20 20 20 20 20 20 20 22 5c 6e 23 20 69 67 72 61 70 68 5c 6e 5c 6e 69 67 72 61 70 68 20 28 68 ........"\n#.igraph\n\nigraph.(h
1dce0 74 74 70 73 3a 2f 2f 69 67 72 61 70 68 2e 6f 72 67 2f 29 20 69 73 20 61 20 70 6f 70 75 6c 61 72 ttps://igraph.org/).is.a.popular
1dd00 20 6e 65 74 77 6f 72 6b 20 61 6e 61 6c 79 73 69 73 20 70 61 63 6b 61 67 65 20 74 68 61 74 5c 6e .network.analysis.package.that\n
1dd20 70 72 6f 76 69 64 65 73 20 28 61 6d 6f 6e 67 20 6d 61 6e 79 20 6f 74 68 65 72 20 74 68 69 6e 67 provides.(among.many.other.thing
1dd40 73 29 20 66 75 6e 63 74 69 6f 6e 73 20 74 6f 20 63 6f 6e 76 65 72 74 20 74 6f 2f 66 72 6f 6d 20 s).functions.to.convert.to/from.
1dd60 4e 65 74 77 6f 72 6b 58 2e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 NetworkX.\n".......].....},.....
1dd80 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",....
1dda0 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,.....
1ddc0 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
1dde0 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
1de00 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":.[......
1de20 20 20 20 22 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 20 ..."import.matplotlib.pyplot.as.
1de40 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 6f plt\nimport.networkx.as.nx\nimpo
1de60 72 74 20 69 67 72 61 70 68 20 61 73 20 69 67 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a rt.igraph.as.ig".......].....},.
1de80 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
1dea0 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":.{},......
1dec0 20 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 23 23 20 4e 65 74 77 6f 72 6b ."source":.[........."##.Network
1dee0 58 20 74 6f 20 69 67 72 61 70 68 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a X.to.igraph\n\n".......].....},.
1df00 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",
1df20 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,.
1df40 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
1df60 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
1df80 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":.[..
1dfa0 20 20 20 20 20 20 20 22 47 20 3d 20 6e 78 2e 64 65 6e 73 65 5f 67 6e 6d 5f 72 61 6e 64 6f 6d 5f ......."G.=.nx.dense_gnm_random_
1dfc0 67 72 61 70 68 28 33 30 2c 20 34 30 2c 20 73 65 65 64 3d 34 32 29 5c 6e 5c 6e 23 20 6c 61 72 67 graph(30,.40,.seed=42)\n\n#.larg
1dfe0 65 73 74 20 63 6f 6e 6e 65 63 74 65 64 20 63 6f 6d 70 6f 6e 65 6e 74 5c 6e 63 6f 6d 70 6f 6e 65 est.connected.component\ncompone
1e000 6e 74 73 20 3d 20 6e 78 2e 63 6f 6e 6e 65 63 74 65 64 5f 63 6f 6d 70 6f 6e 65 6e 74 73 28 47 29 nts.=.nx.connected_components(G)
1e020 5c 6e 6c 61 72 67 65 73 74 5f 63 6f 6d 70 6f 6e 65 6e 74 20 3d 20 6d 61 78 28 63 6f 6d 70 6f 6e \nlargest_component.=.max(compon
1e040 65 6e 74 73 2c 20 6b 65 79 3d 6c 65 6e 29 5c 6e 48 20 3d 20 47 2e 73 75 62 67 72 61 70 68 28 6c ents,.key=len)\nH.=.G.subgraph(l
1e060 61 72 67 65 73 74 5f 63 6f 6d 70 6f 6e 65 6e 74 29 5c 6e 5c 6e 23 20 63 6f 6e 76 65 72 74 20 74 argest_component)\n\n#.convert.t
1e080 6f 20 69 67 72 61 70 68 5c 6e 68 20 3d 20 69 67 2e 47 72 61 70 68 2e 66 72 6f 6d 5f 6e 65 74 77 o.igraph\nh.=.ig.Graph.from_netw
1e0a0 6f 72 6b 78 28 48 29 5c 6e 5c 6e 5c 6e 23 20 50 6c 6f 74 20 74 68 65 20 73 61 6d 65 20 6e 65 74 orkx(H)\n\n\n#.Plot.the.same.net
1e0c0 77 6f 72 6b 20 77 69 74 68 20 4e 65 74 77 6f 72 6b 58 20 61 6e 64 20 69 67 72 61 70 68 5c 6e 66 work.with.NetworkX.and.igraph\nf
1e0e0 69 67 2c 20 28 61 78 30 2c 20 61 78 31 29 20 3d 20 70 6c 74 2e 73 75 62 70 6c 6f 74 73 28 6e 72 ig,.(ax0,.ax1).=.plt.subplots(nr
1e100 6f 77 73 3d 31 2c 20 6e 63 6f 6c 73 3d 32 2c 20 66 69 67 73 69 7a 65 3d 28 31 32 2c 20 36 29 29 ows=1,.ncols=2,.figsize=(12,.6))
1e120 5c 6e 5c 6e 23 20 4e 65 74 77 6f 72 6b 58 20 64 72 61 77 5c 6e 61 78 30 2e 73 65 74 5f 74 69 74 \n\n#.NetworkX.draw\nax0.set_tit
1e140 6c 65 28 5c 22 50 6c 6f 74 20 77 69 74 68 20 4e 65 74 77 6f 72 6b 58 20 64 72 61 77 5c 22 29 5c le(\"Plot.with.NetworkX.draw\")\
1e160 6e 6e 78 2e 64 72 61 77 5f 6b 61 6d 61 64 61 5f 6b 61 77 61 69 28 48 2c 20 6e 6f 64 65 5f 73 69 nnx.draw_kamada_kawai(H,.node_si
1e180 7a 65 3d 35 30 2c 20 61 78 3d 61 78 30 29 5c 6e 5c 6e 23 20 69 67 72 61 70 68 20 64 72 61 77 5c ze=50,.ax=ax0)\n\n#.igraph.draw\
1e1a0 6e 61 78 31 2e 73 65 74 5f 74 69 74 6c 65 28 5c 22 50 6c 6f 74 20 77 69 74 68 20 69 67 72 61 70 nax1.set_title(\"Plot.with.igrap
1e1c0 68 20 70 6c 6f 74 5c 22 29 5c 6e 6c 61 79 6f 75 74 20 3d 20 68 2e 6c 61 79 6f 75 74 5f 6b 61 6d h.plot\")\nlayout.=.h.layout_kam
1e1e0 61 64 61 5f 6b 61 77 61 69 28 29 5c 6e 69 67 2e 70 6c 6f 74 28 68 2c 20 6c 61 79 6f 75 74 3d 6c ada_kawai()\nig.plot(h,.layout=l
1e200 61 79 6f 75 74 2c 20 74 61 72 67 65 74 3d 61 78 31 29 5c 6e 70 6c 74 2e 61 78 69 73 28 5c 22 6f ayout,.target=ax1)\nplt.axis(\"o
1e220 66 66 5c 22 29 5c 6e 70 6c 74 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d ff\")\nplt.show()".......].....}
1e240 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
1e260 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":.{},....
1e280 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 23 20 69 67 72 61 70 ..."source":.[........."##.igrap
1e2a0 68 20 74 6f 20 4e 65 74 77 6f 72 6b 58 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d h.to.NetworkX\n\n".......].....}
1e2c0 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
1e2e0 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
1e300 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
1e320 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.......},.......
1e340 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":.[
1e360 0a 20 20 20 20 20 20 20 20 22 67 20 3d 20 69 67 2e 47 72 61 70 68 2e 47 52 47 28 33 30 2c 20 30 ........."g.=.ig.Graph.GRG(30,.0
1e380 2e 32 29 5c 6e 47 20 3d 20 67 2e 74 6f 5f 6e 65 74 77 6f 72 6b 78 28 29 5c 6e 6e 78 2e 64 72 61 .2)\nG.=.g.to_networkx()\nnx.dra
1e3a0 77 28 47 2c 20 6e 6f 64 65 5f 73 69 7a 65 3d 35 30 29 5c 6e 70 6c 74 2e 73 68 6f 77 28 29 22 0a w(G,.node_size=50)\nplt.show()".
1e3c0 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 22 3a ......].....}...],..."metadata":
1e3e0 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
1e400 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 20 22 splay_name":."Python.3",......."
1e420 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 6d 65 language":."python",......."name
1e440 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 61 67 ":."python3".....},....."languag
1e460 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 6f 64 e_info":.{......."codemirror_mod
1e480 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 22 2c e":.{........."name":."ipython",
1e4a0 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 0a 20 ........."version":.3.......},..
1e4c0 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 20 20 ....."file_extension":.".py",...
1e4e0 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 22 2c ...."mimetype":."text/x-python",
1e500 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 20 22 ......."name":."python",......."
1e520 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 0a 20 nbconvert_exporter":."python",..
1e540 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 6e 33 ....."pygments_lexer":."ipython3
1e560 22 2c 0a 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 39 2e 31 36 22 0a 20 20 20 ",......."version":."3.9.16"....
1e580 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 6f .}...},..."nbformat":.4,..."nbfo
1e5a0 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 22 0f 5a 56 16 d9 rmat_minor":.0.}PK........".ZV..
1e5c0 4d 54 64 0b 00 00 64 0b 00 00 1b 00 00 00 67 65 6f 73 70 61 74 69 61 6c 2f 70 6c 6f 74 5f 6f 73 MTd...d.......geospatial/plot_os
1e5e0 6d 6e 78 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 mnx.ipynb{..."cells":.[.....{...
1e600 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",......."
1e620 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
1e640 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":
1e660 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":
1e680 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":.[........."
1e6a0 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".......].....
1e6c0 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
1e6e0 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":.{},...
1e700 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 70 65 ...."source":.[........."\n#.Ope
1e720 6e 53 74 72 65 65 74 4d 61 70 20 77 69 74 68 20 4f 53 4d 6e 78 5c 6e 5c 6e 54 68 69 73 20 65 78 nStreetMap.with.OSMnx\n\nThis.ex
1e740 61 6d 70 6c 65 20 73 68 6f 77 73 20 68 6f 77 20 74 6f 20 75 73 65 20 4f 53 4d 6e 78 20 74 6f 20 ample.shows.how.to.use.OSMnx.to.
1e760 64 6f 77 6e 6c 6f 61 64 20 61 6e 64 20 6d 6f 64 65 6c 20 61 20 73 74 72 65 65 74 20 6e 65 74 77 download.and.model.a.street.netw
1e780 6f 72 6b 5c 6e 66 72 6f 6d 20 4f 70 65 6e 53 74 72 65 65 74 4d 61 70 2c 20 76 69 73 75 61 6c 69 ork\nfrom.OpenStreetMap,.visuali
1e7a0 7a 65 20 63 65 6e 74 72 61 6c 69 74 79 2c 20 61 6e 64 20 73 61 76 65 20 74 68 65 20 67 72 61 70 ze.centrality,.and.save.the.grap
1e7c0 68 20 61 73 20 61 20 73 68 61 70 65 66 69 6c 65 2c 5c 6e 61 20 47 65 6f 50 61 63 6b 61 67 65 2c h.as.a.shapefile,\na.GeoPackage,
1e7e0 20 6f 72 20 47 72 61 70 68 4d 4c 2e 5c 6e 5c 6e 4f 53 4d 6e 78 20 69 73 20 61 20 50 79 74 68 6f .or.GraphML.\n\nOSMnx.is.a.Pytho
1e800 6e 20 70 61 63 6b 61 67 65 20 74 6f 20 72 65 74 72 69 65 76 65 2c 20 6d 6f 64 65 6c 2c 20 61 6e n.package.to.retrieve,.model,.an
1e820 61 6c 79 7a 65 2c 20 61 6e 64 20 76 69 73 75 61 6c 69 7a 65 5c 6e 4f 70 65 6e 53 74 72 65 65 74 alyze,.and.visualize\nOpenStreet
1e840 4d 61 70 20 73 74 72 65 65 74 20 6e 65 74 77 6f 72 6b 73 20 61 73 20 4e 65 74 77 6f 72 6b 58 20 Map.street.networks.as.NetworkX.
1e860 4d 75 6c 74 69 44 69 47 72 61 70 68 20 6f 62 6a 65 63 74 73 2e 20 49 74 20 63 61 6e 20 61 6c 73 MultiDiGraph.objects..It.can.als
1e880 6f 5c 6e 72 65 74 72 69 65 76 65 20 61 6e 79 20 6f 74 68 65 72 20 73 70 61 74 69 61 6c 20 64 61 o\nretrieve.any.other.spatial.da
1e8a0 74 61 20 66 72 6f 6d 20 4f 53 4d 20 61 73 20 67 65 6f 70 61 6e 64 61 73 20 47 65 6f 44 61 74 61 ta.from.OSM.as.geopandas.GeoData
1e8c0 46 72 61 6d 65 73 2e 20 53 65 65 5c 6e 68 74 74 70 73 3a 2f 2f 6f 73 6d 6e 78 2e 72 65 61 64 74 Frames..See\nhttps://osmnx.readt
1e8e0 68 65 64 6f 63 73 2e 69 6f 2f 20 66 6f 72 20 4f 53 4d 6e 78 20 64 6f 63 75 6d 65 6e 74 61 74 69 hedocs.io/.for.OSMnx.documentati
1e900 6f 6e 20 61 6e 64 20 75 73 61 67 65 2e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a on.and.usage.\n".......].....},.
1e920 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",
1e940 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,.
1e960 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
1e980 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
1e9a0 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":.[..
1e9c0 20 20 20 20 20 20 20 22 69 6d 70 6f 72 74 20 6e 65 74 77 6f 72 6b 78 20 61 73 20 6e 78 5c 6e 69 ......."import.networkx.as.nx\ni
1e9e0 6d 70 6f 72 74 20 6f 73 6d 6e 78 20 61 73 20 6f 78 5c 6e 5c 6e 6f 78 2e 63 6f 6e 66 69 67 28 75 mport.osmnx.as.ox\n\nox.config(u
1ea00 73 65 5f 63 61 63 68 65 3d 54 72 75 65 2c 20 6c 6f 67 5f 63 6f 6e 73 6f 6c 65 3d 54 72 75 65 29 se_cache=True,.log_console=True)
1ea20 5c 6e 5c 6e 23 20 64 6f 77 6e 6c 6f 61 64 20 73 74 72 65 65 74 20 6e 65 74 77 6f 72 6b 20 64 61 \n\n#.download.street.network.da
1ea40 74 61 20 66 72 6f 6d 20 4f 53 4d 20 61 6e 64 20 63 6f 6e 73 74 72 75 63 74 20 61 20 4d 75 6c 74 ta.from.OSM.and.construct.a.Mult
1ea60 69 44 69 47 72 61 70 68 20 6d 6f 64 65 6c 5c 6e 47 20 3d 20 6f 78 2e 67 72 61 70 68 5f 66 72 6f iDiGraph.model\nG.=.ox.graph_fro
1ea80 6d 5f 70 6f 69 6e 74 28 28 33 37 2e 37 39 2c 20 2d 31 32 32 2e 34 31 29 2c 20 64 69 73 74 3d 37 m_point((37.79,.-122.41),.dist=7
1eaa0 35 30 2c 20 6e 65 74 77 6f 72 6b 5f 74 79 70 65 3d 5c 22 64 72 69 76 65 5c 22 29 5c 6e 5c 6e 23 50,.network_type=\"drive\")\n\n#
1eac0 20 69 6d 70 75 74 65 20 65 64 67 65 20 28 64 72 69 76 69 6e 67 29 20 73 70 65 65 64 73 20 61 6e .impute.edge.(driving).speeds.an
1eae0 64 20 63 61 6c 63 75 6c 61 74 65 20 65 64 67 65 20 74 72 61 76 65 72 73 61 6c 20 74 69 6d 65 73 d.calculate.edge.traversal.times
1eb00 5c 6e 47 20 3d 20 6f 78 2e 61 64 64 5f 65 64 67 65 5f 73 70 65 65 64 73 28 47 29 5c 6e 47 20 3d \nG.=.ox.add_edge_speeds(G)\nG.=
1eb20 20 6f 78 2e 61 64 64 5f 65 64 67 65 5f 74 72 61 76 65 6c 5f 74 69 6d 65 73 28 47 29 5c 6e 5c 6e .ox.add_edge_travel_times(G)\n\n
1eb40 23 20 79 6f 75 20 63 61 6e 20 63 6f 6e 76 65 72 74 20 4d 75 6c 74 69 44 69 47 72 61 70 68 20 74 #.you.can.convert.MultiDiGraph.t
1eb60 6f 2f 66 72 6f 6d 20 67 65 6f 70 61 6e 64 61 73 20 47 65 6f 44 61 74 61 46 72 61 6d 65 73 5c 6e o/from.geopandas.GeoDataFrames\n
1eb80 67 64 66 5f 6e 6f 64 65 73 2c 20 67 64 66 5f 65 64 67 65 73 20 3d 20 6f 78 2e 67 72 61 70 68 5f gdf_nodes,.gdf_edges.=.ox.graph_
1eba0 74 6f 5f 67 64 66 73 28 47 29 5c 6e 47 20 3d 20 6f 78 2e 67 72 61 70 68 5f 66 72 6f 6d 5f 67 64 to_gdfs(G)\nG.=.ox.graph_from_gd
1ebc0 66 73 28 67 64 66 5f 6e 6f 64 65 73 2c 20 67 64 66 5f 65 64 67 65 73 2c 20 67 72 61 70 68 5f 61 fs(gdf_nodes,.gdf_edges,.graph_a
1ebe0 74 74 72 73 3d 47 2e 67 72 61 70 68 29 5c 6e 5c 6e 23 20 63 6f 6e 76 65 72 74 20 4d 75 6c 74 69 ttrs=G.graph)\n\n#.convert.Multi
1ec00 44 69 47 72 61 70 68 20 74 6f 20 44 69 47 72 61 70 68 20 74 6f 20 75 73 65 20 6e 78 2e 62 65 74 DiGraph.to.DiGraph.to.use.nx.bet
1ec20 77 65 65 6e 6e 65 73 73 5f 63 65 6e 74 72 61 6c 69 74 79 20 66 75 6e 63 74 69 6f 6e 5c 6e 23 20 weenness_centrality.function\n#.
1ec40 63 68 6f 6f 73 65 20 62 65 74 77 65 65 6e 20 70 61 72 61 6c 6c 65 6c 20 65 64 67 65 73 20 62 79 choose.between.parallel.edges.by
1ec60 20 6d 69 6e 69 6d 69 7a 69 6e 67 20 74 72 61 76 65 6c 5f 74 69 6d 65 20 61 74 74 72 69 62 75 74 .minimizing.travel_time.attribut
1ec80 65 20 76 61 6c 75 65 5c 6e 44 20 3d 20 6f 78 2e 75 74 69 6c 73 5f 67 72 61 70 68 2e 67 65 74 5f e.value\nD.=.ox.utils_graph.get_
1eca0 64 69 67 72 61 70 68 28 47 2c 20 77 65 69 67 68 74 3d 5c 22 74 72 61 76 65 6c 5f 74 69 6d 65 5c digraph(G,.weight=\"travel_time\
1ecc0 22 29 5c 6e 5c 6e 23 20 63 61 6c 63 75 6c 61 74 65 20 6e 6f 64 65 20 62 65 74 77 65 65 6e 6e 65 ")\n\n#.calculate.node.betweenne
1ece0 73 73 20 63 65 6e 74 72 61 6c 69 74 79 2c 20 77 65 69 67 68 74 65 64 20 62 79 20 74 72 61 76 65 ss.centrality,.weighted.by.trave
1ed00 6c 20 74 69 6d 65 5c 6e 62 63 20 3d 20 6e 78 2e 62 65 74 77 65 65 6e 6e 65 73 73 5f 63 65 6e 74 l.time\nbc.=.nx.betweenness_cent
1ed20 72 61 6c 69 74 79 28 44 2c 20 77 65 69 67 68 74 3d 5c 22 74 72 61 76 65 6c 5f 74 69 6d 65 5c 22 rality(D,.weight=\"travel_time\"
1ed40 2c 20 6e 6f 72 6d 61 6c 69 7a 65 64 3d 54 72 75 65 29 5c 6e 6e 78 2e 73 65 74 5f 6e 6f 64 65 5f ,.normalized=True)\nnx.set_node_
1ed60 61 74 74 72 69 62 75 74 65 73 28 47 2c 20 76 61 6c 75 65 73 3d 62 63 2c 20 6e 61 6d 65 3d 5c 22 attributes(G,.values=bc,.name=\"
1ed80 62 63 5c 22 29 5c 6e 5c 6e 23 20 70 6c 6f 74 20 74 68 65 20 67 72 61 70 68 2c 20 63 6f 6c 6f 72 bc\")\n\n#.plot.the.graph,.color
1eda0 69 6e 67 20 6e 6f 64 65 73 20 62 79 20 62 65 74 77 65 65 6e 6e 65 73 73 20 63 65 6e 74 72 61 6c ing.nodes.by.betweenness.central
1edc0 69 74 79 5c 6e 6e 63 20 3d 20 6f 78 2e 70 6c 6f 74 2e 67 65 74 5f 6e 6f 64 65 5f 63 6f 6c 6f 72 ity\nnc.=.ox.plot.get_node_color
1ede0 73 5f 62 79 5f 61 74 74 72 28 47 2c 20 5c 22 62 63 5c 22 2c 20 63 6d 61 70 3d 5c 22 70 6c 61 73 s_by_attr(G,.\"bc\",.cmap=\"plas
1ee00 6d 61 5c 22 29 5c 6e 66 69 67 2c 20 61 78 20 3d 20 6f 78 2e 70 6c 6f 74 5f 67 72 61 70 68 28 5c ma\")\nfig,.ax.=.ox.plot_graph(\
1ee20 6e 20 20 20 20 47 2c 20 62 67 63 6f 6c 6f 72 3d 5c 22 6b 5c 22 2c 20 6e 6f 64 65 5f 63 6f 6c 6f n....G,.bgcolor=\"k\",.node_colo
1ee40 72 3d 6e 63 2c 20 6e 6f 64 65 5f 73 69 7a 65 3d 35 30 2c 20 65 64 67 65 5f 6c 69 6e 65 77 69 64 r=nc,.node_size=50,.edge_linewid
1ee60 74 68 3d 32 2c 20 65 64 67 65 5f 63 6f 6c 6f 72 3d 5c 22 23 33 33 33 33 33 33 5c 22 5c 6e 29 5c th=2,.edge_color=\"#333333\"\n)\
1ee80 6e 5c 6e 23 20 73 61 76 65 20 67 72 61 70 68 20 74 6f 20 73 68 61 70 65 66 69 6c 65 2c 20 67 65 n\n#.save.graph.to.shapefile,.ge
1eea0 6f 70 61 63 6b 61 67 65 2c 20 6f 72 20 67 72 61 70 68 6d 6c 5c 6e 6f 78 2e 73 61 76 65 5f 67 72 opackage,.or.graphml\nox.save_gr
1eec0 61 70 68 5f 73 68 61 70 65 66 69 6c 65 28 47 2c 20 66 69 6c 65 70 61 74 68 3d 5c 22 2e 2f 67 72 aph_shapefile(G,.filepath=\"./gr
1eee0 61 70 68 5f 73 68 61 70 65 66 69 6c 65 2f 5c 22 29 5c 6e 6f 78 2e 73 61 76 65 5f 67 72 61 70 68 aph_shapefile/\")\nox.save_graph
1ef00 5f 67 65 6f 70 61 63 6b 61 67 65 28 47 2c 20 66 69 6c 65 70 61 74 68 3d 5c 22 2e 2f 67 72 61 70 _geopackage(G,.filepath=\"./grap
1ef20 68 2e 67 70 6b 67 5c 22 29 5c 6e 6f 78 2e 73 61 76 65 5f 67 72 61 70 68 6d 6c 28 47 2c 20 66 69 h.gpkg\")\nox.save_graphml(G,.fi
1ef40 6c 65 70 61 74 68 3d 5c 22 2e 2f 67 72 61 70 68 2e 67 72 61 70 68 6d 6c 5c 22 29 22 0a 20 20 20 lepath=\"./graph.graphml\")"....
1ef60 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":.{.
1ef80 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
1efa0 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
1efc0 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":.
1efe0 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
1f000 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":
1f020 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",...
1f040 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.......},.....
1f060 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",......
1f080 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",...
1f0a0 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
1f0c0 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",.....
1f0e0 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",.
1f100 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 39 2e 31 36 22 0a 20 20 20 20 7d 0a ......"version":."3.9.16".....}.
1f120 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
1f140 74 5f 6d 69 6e 6f 72 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 20 0f 5a 56 8c 41 6d d7 d1 t_minor":.0.}PK..........ZV.Am..
1f160 19 00 00 d1 19 00 00 1b 00 00 00 67 65 6f 73 70 61 74 69 61 6c 2f 70 6c 6f 74 5f 6c 69 6e 65 73 ...........geospatial/plot_lines
1f180 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":.[.....{......
1f1a0 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
1f1c0 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
1f1e0 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
1f200 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":.[]
1f220 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
1f240 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".......].....},.
1f260 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
1f280 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":.{},......
1f2a0 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 47 72 61 70 68 73 ."source":.[........."\n#.Graphs
1f2c0 20 66 72 6f 6d 20 61 20 73 65 74 20 6f 66 20 6c 69 6e 65 73 5c 6e 5c 6e 54 68 69 73 20 65 78 61 .from.a.set.of.lines\n\nThis.exa
1f2e0 6d 70 6c 65 20 73 68 6f 77 73 20 68 6f 77 20 74 6f 20 62 75 69 6c 64 20 61 20 67 72 61 70 68 20 mple.shows.how.to.build.a.graph.
1f300 66 72 6f 6d 20 61 20 73 65 74 20 6f 66 20 67 65 6f 67 72 61 70 68 69 63 20 6c 69 6e 65 73 5c 6e from.a.set.of.geographic.lines\n
1f320 28 73 6f 6d 65 74 69 6d 65 73 20 63 61 6c 6c 65 64 20 5c 22 6c 69 6e 65 73 74 72 69 6e 67 73 5c (sometimes.called.\"linestrings\
1f340 22 29 20 75 73 69 6e 67 20 47 65 6f 50 61 6e 64 61 73 2c 20 6d 6f 6d 65 70 79 20 61 6e 64 20 61 ").using.GeoPandas,.momepy.and.a
1f360 6c 74 65 72 6e 61 74 69 76 65 6c 79 5c 6e 50 79 53 41 4c 2e 20 57 65 27 6c 6c 20 70 6c 6f 74 20 lternatively\nPySAL..We'll.plot.
1f380 73 6f 6d 65 20 72 69 76 65 72 73 20 61 6e 64 20 73 74 72 65 65 74 73 2c 20 61 73 20 77 65 6c 6c some.rivers.and.streets,.as.well
1f3a0 20 61 73 20 74 68 65 69 72 20 67 72 61 70 68 73 20 66 6f 72 6d 65 64 5c 6e 66 72 6f 6d 20 74 68 .as.their.graphs.formed\nfrom.th
1f3c0 65 20 73 65 67 6d 65 6e 74 73 2e 5c 6e 5c 6e 54 68 65 72 65 20 61 72 65 20 67 65 6e 65 72 61 6c e.segments.\n\nThere.are.general
1f3e0 6c 79 20 74 77 6f 20 77 61 79 73 20 6f 66 20 63 72 65 61 74 69 6e 67 20 67 72 61 70 68 20 6f 62 ly.two.ways.of.creating.graph.ob
1f400 6a 65 63 74 20 66 72 6f 6d 20 6c 69 6e 65 20 67 65 6f 6d 65 74 72 79 2e 5c 6e 4c 65 74 27 73 20 ject.from.line.geometry.\nLet's.
1f420 75 73 65 20 61 6e 20 65 78 61 6d 70 6c 65 20 6f 66 20 73 74 72 65 65 74 20 6e 65 74 77 6f 72 6b use.an.example.of.street.network
1f440 20 74 6f 20 69 6c 6c 75 73 74 72 61 74 65 20 62 6f 74 68 3a 5c 6e 5c 6e 54 68 65 20 66 69 72 73 .to.illustrate.both:\n\nThe.firs
1f460 74 20 77 61 79 20 69 73 20 61 20 73 6f 2d 63 61 6c 6c 65 64 20 70 72 69 6d 61 6c 20 61 70 70 72 t.way.is.a.so-called.primal.appr
1f480 6f 61 63 68 2c 20 77 68 65 72 65 20 65 61 63 68 20 69 6e 74 65 72 73 65 63 74 69 6f 6e 20 69 73 oach,.where.each.intersection.is
1f4a0 5c 6e 61 20 6e 6f 64 65 20 61 6e 64 20 65 61 63 68 20 6c 69 6e 65 73 74 72 69 6e 67 20 73 65 67 \na.node.and.each.linestring.seg
1f4c0 6d 65 6e 74 20 63 6f 6e 6e 65 63 74 69 6e 67 20 74 77 6f 20 69 6e 74 65 72 73 65 63 74 69 6f 6e ment.connecting.two.intersection
1f4e0 73 20 69 73 20 61 6e 20 65 64 67 65 2e 5c 6e 5c 6e 54 68 65 20 73 65 63 6f 6e 64 20 77 61 79 20 s.is.an.edge.\n\nThe.second.way.
1f500 69 73 20 73 6f 2d 63 61 6c 6c 65 64 20 64 75 61 6c 20 61 70 70 72 6f 61 63 68 2c 20 77 68 65 72 is.so-called.dual.approach,.wher
1f520 65 20 65 61 63 68 20 6c 69 6e 65 20 69 73 20 61 20 6e 6f 64 65 20 61 6e 64 5c 6e 69 6e 74 65 72 e.each.line.is.a.node.and\ninter
1f540 73 65 63 74 69 6f 6e 20 74 6f 70 6f 6c 6f 67 79 20 69 73 20 74 75 72 6e 65 64 20 69 6e 74 6f 20 section.topology.is.turned.into.
1f560 65 64 67 65 73 2e 20 4f 6e 65 20 6f 66 20 74 68 65 20 6f 70 74 69 6f 6e 73 20 68 6f 77 20 74 68 edges..One.of.the.options.how.th
1f580 69 73 20 69 73 5c 6e 75 73 65 64 20 66 6f 72 20 73 74 72 65 65 74 20 6e 65 74 77 6f 72 6b 20 61 is.is\nused.for.street.network.a
1f5a0 6e 61 6c 79 73 69 73 20 69 73 20 61 6e 20 61 6e 67 75 6c 61 72 20 61 6e 61 6c 79 73 69 73 2c 20 nalysis.is.an.angular.analysis,.
1f5c0 77 68 65 72 65 20 79 6f 75 72 20 72 6f 75 74 69 6e 67 5c 6e 69 73 20 77 65 69 67 68 74 65 64 20 where.your.routing\nis.weighted.
1f5e0 76 69 61 20 61 6e 67 6c 65 73 20 62 65 74 77 65 65 6e 20 73 74 72 65 65 74 20 73 65 67 6d 65 6e via.angles.between.street.segmen
1f600 74 73 20 6f 6e 20 69 6e 74 65 72 73 65 63 74 69 6f 6e 73 2e 5c 6e 5c 6e 57 65 20 77 69 6c 6c 20 ts.on.intersections.\n\nWe.will.
1f620 75 73 65 20 47 65 6f 50 61 6e 64 61 73 20 74 6f 20 72 65 61 64 20 73 70 61 74 69 61 6c 20 64 61 use.GeoPandas.to.read.spatial.da
1f640 74 61 20 61 6e 64 20 6d 6f 6d 65 70 79 20 74 6f 20 67 65 6e 65 72 61 74 65 20 66 69 72 73 74 5c ta.and.momepy.to.generate.first\
1f660 6e 70 72 69 6d 61 6c 20 67 72 61 70 68 20 61 6e 64 20 74 68 65 6e 20 64 75 61 6c 20 67 72 61 70 nprimal.graph.and.then.dual.grap
1f680 68 2e 20 46 75 72 74 68 65 72 6d 6f 72 65 2c 20 77 65 20 77 69 6c 6c 20 75 73 65 20 50 79 53 41 h..Furthermore,.we.will.use.PySA
1f6a0 4c 20 74 6f 5c 6e 69 6c 6c 75 73 74 72 61 74 65 20 61 6e 20 61 6c 74 65 72 6e 61 74 69 76 65 20 L.to\nillustrate.an.alternative.
1f6c0 77 61 79 20 6f 66 20 63 72 65 61 74 69 6e 67 20 72 61 77 20 64 75 61 6c 20 67 72 61 70 68 2e 5c way.of.creating.raw.dual.graph.\
1f6e0 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
1f700 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
1f720 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
1f740 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
1f760 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":.[],..
1f780 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 72 74 ....."source":.[........."import
1f7a0 20 67 65 6f 70 61 6e 64 61 73 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 .geopandas\nimport.matplotlib.py
1f7c0 70 6c 6f 74 20 61 73 20 70 6c 74 5c 6e 69 6d 70 6f 72 74 20 6d 6f 6d 65 70 79 5c 6e 69 6d 70 6f plot.as.plt\nimport.momepy\nimpo
1f7e0 72 74 20 6e 65 74 77 6f 72 6b 78 20 61 73 20 6e 78 5c 6e 66 72 6f 6d 20 63 6f 6e 74 65 78 74 69 rt.networkx.as.nx\nfrom.contexti
1f800 6c 79 20 69 6d 70 6f 72 74 20 61 64 64 5f 62 61 73 65 6d 61 70 5c 6e 66 72 6f 6d 20 6c 69 62 70 ly.import.add_basemap\nfrom.libp
1f820 79 73 61 6c 20 69 6d 70 6f 72 74 20 77 65 69 67 68 74 73 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 ysal.import.weights".......]....
1f840 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
1f860 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":.{},..
1f880 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 52 65 61 64 20 69 ....."source":.[........."Read.i
1f8a0 6e 20 65 78 61 6d 70 6c 65 20 72 69 76 65 72 20 67 65 6f 6d 65 74 72 79 20 66 72 6f 6d 20 47 65 n.example.river.geometry.from.Ge
1f8c0 6f 4a 53 4f 4e 2e 20 53 6f 75 72 63 65 20 6f 66 20 65 78 61 6d 70 6c 65 20 64 61 74 61 3a 5c 6e oJSON..Source.of.example.data:\n
1f8e0 68 74 74 70 73 3a 2f 2f 64 6f 69 2e 6f 72 67 2f 31 30 2e 33 33 39 30 2f 64 61 74 61 35 30 31 30 https://doi.org/10.3390/data5010
1f900 30 30 38 20 28 4e 69 63 6f 6c 61 73 20 43 61 64 69 65 75 78 29 5c 6e 5c 6e 22 0a 20 20 20 20 20 008.(Nicolas.Cadieux)\n\n"......
1f920 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
1f940 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
1f960 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":.{...
1f980 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.......}
1f9a0 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
1f9c0 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 72 69 76 65 72 73 20 3d 20 67 65 6f 70 61 urce":.[........."rivers.=.geopa
1f9e0 6e 64 61 73 2e 72 65 61 64 5f 66 69 6c 65 28 5c 22 72 69 76 65 72 73 2e 67 65 6f 6a 73 6f 6e 5c ndas.read_file(\"rivers.geojson\
1fa00 22 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 ")".......].....},.....{......."
1fa20 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
1fa40 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":.[.
1fa60 20 20 20 20 20 20 20 20 22 43 6f 6e 73 74 72 75 63 74 20 74 68 65 20 70 72 69 6d 61 6c 20 67 72 ........"Construct.the.primal.gr
1fa80 61 70 68 2e 20 6d 6f 6d 65 70 79 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 70 72 65 73 65 72 aph..momepy.automatically.preser
1faa0 76 65 73 20 61 6c 6c 20 61 74 74 72 69 62 75 74 65 73 5c 6e 66 72 6f 6d 20 47 65 6f 44 61 74 61 ves.all.attributes\nfrom.GeoData
1fac0 46 72 61 6d 65 20 61 6e 64 20 73 74 6f 72 65 73 20 74 68 65 6e 20 61 73 20 65 64 67 65 20 61 74 Frame.and.stores.then.as.edge.at
1fae0 74 72 69 62 75 74 65 73 2e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 tributes.\n\n".......].....},...
1fb00 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",..
1fb20 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,...
1fb40 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
1fb60 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
1fb80 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":.[....
1fba0 20 20 20 20 20 22 47 20 3d 20 6d 6f 6d 65 70 79 2e 67 64 66 5f 74 6f 5f 6e 78 28 72 69 76 65 72 ....."G.=.momepy.gdf_to_nx(river
1fbc0 73 2c 20 61 70 70 72 6f 61 63 68 3d 5c 22 70 72 69 6d 61 6c 5c 22 29 22 0a 20 20 20 20 20 20 5d s,.approach=\"primal\")".......]
1fbe0 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":
1fc00 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":.{
1fc20 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 45 61 },......."source":.[........."Ea
1fc40 63 68 20 6e 6f 64 65 20 69 73 20 65 6e 63 6f 64 65 64 20 62 79 20 69 74 73 20 63 6f 6f 72 64 69 ch.node.is.encoded.by.its.coordi
1fc60 6e 61 74 65 73 2c 20 77 68 69 63 68 20 61 6c 6c 6f 77 73 20 75 73 20 74 6f 20 75 73 65 20 74 68 nates,.which.allows.us.to.use.th
1fc80 65 6d 5c 6e 69 6e 20 70 6c 6f 74 74 69 6e 67 2e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 em\nin.plotting.\n\n".......]...
1fca0 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
1fcc0 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
1fce0 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":.{........
1fd00 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.......},....
1fd20 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"
1fd40 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 70 6f 73 69 74 69 6f 6e 73 20 3d 20 7b 6e 3a 20 5b 6e 5b :.[........."positions.=.{n:.[n[
1fd60 30 5d 2c 20 6e 5b 31 5d 5d 20 66 6f 72 20 6e 20 69 6e 20 6c 69 73 74 28 47 2e 6e 6f 64 65 73 29 0],.n[1]].for.n.in.list(G.nodes)
1fd80 7d 5c 6e 5c 6e 23 20 50 6c 6f 74 5c 6e 66 2c 20 61 78 20 3d 20 70 6c 74 2e 73 75 62 70 6c 6f 74 }\n\n#.Plot\nf,.ax.=.plt.subplot
1fda0 73 28 31 2c 20 32 2c 20 66 69 67 73 69 7a 65 3d 28 31 32 2c 20 36 29 2c 20 73 68 61 72 65 78 3d s(1,.2,.figsize=(12,.6),.sharex=
1fdc0 54 72 75 65 2c 20 73 68 61 72 65 79 3d 54 72 75 65 29 5c 6e 72 69 76 65 72 73 2e 70 6c 6f 74 28 True,.sharey=True)\nrivers.plot(
1fde0 63 6f 6c 6f 72 3d 5c 22 6b 5c 22 2c 20 61 78 3d 61 78 5b 30 5d 29 5c 6e 66 6f 72 20 69 2c 20 66 color=\"k\",.ax=ax[0])\nfor.i,.f
1fe00 61 63 65 74 20 69 6e 20 65 6e 75 6d 65 72 61 74 65 28 61 78 29 3a 5c 6e 20 20 20 20 66 61 63 65 acet.in.enumerate(ax):\n....face
1fe20 74 2e 73 65 74 5f 74 69 74 6c 65 28 28 5c 22 52 69 76 65 72 73 5c 22 2c 20 5c 22 47 72 61 70 68 t.set_title((\"Rivers\",.\"Graph
1fe40 5c 22 29 5b 69 5d 29 5c 6e 20 20 20 20 66 61 63 65 74 2e 61 78 69 73 28 5c 22 6f 66 66 5c 22 29 \")[i])\n....facet.axis(\"off\")
1fe60 5c 6e 6e 78 2e 64 72 61 77 28 47 2c 20 70 6f 73 69 74 69 6f 6e 73 2c 20 61 78 3d 61 78 5b 31 5d \nnx.draw(G,.positions,.ax=ax[1]
1fe80 2c 20 6e 6f 64 65 5f 73 69 7a 65 3d 35 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 ,.node_size=5)".......].....},..
1fea0 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
1fec0 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":.{},.......
1fee0 22 73 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 4f 6e 63 65 20 77 65 20 66 69 6e "source":.[........."Once.we.fin
1ff00 69 73 68 20 67 72 61 70 68 2d 62 61 73 65 64 20 61 6e 61 6c 79 73 69 73 2c 20 77 65 20 63 61 6e ish.graph-based.analysis,.we.can
1ff20 20 63 6f 6e 76 65 72 74 20 67 72 61 70 68 20 62 61 63 6b 5c 6e 74 6f 20 47 65 6f 44 61 74 61 46 .convert.graph.back\nto.GeoDataF
1ff40 72 61 6d 65 73 2e 20 6d 6f 6d 65 70 79 20 63 61 6e 20 72 65 74 75 72 6e 20 6e 6f 64 65 73 20 61 rames..momepy.can.return.nodes.a
1ff60 73 20 70 6f 69 6e 74 20 67 65 6f 6d 65 74 72 79 2c 5c 6e 65 64 67 65 73 20 61 73 20 6f 72 69 67 s.point.geometry,\nedges.as.orig
1ff80 69 6e 61 6c 20 6c 69 6e 65 20 67 65 6f 6d 65 74 72 79 20 61 6e 64 20 57 20 6f 62 6a 65 63 74 2c inal.line.geometry.and.W.object,
1ffa0 20 77 68 69 63 68 20 69 73 20 50 79 53 41 4c 5c 6e 73 70 61 74 69 61 6c 20 77 65 69 67 68 74 73 .which.is.PySAL\nspatial.weights
1ffc0 20 6d 61 74 72 69 78 20 65 6e 63 6f 64 69 6e 67 20 6f 72 69 67 69 6e 61 6c 20 67 72 61 70 68 20 .matrix.encoding.original.graph.
1ffe0 73 6f 20 77 65 20 63 61 6e 20 75 73 65 5c 6e 69 74 20 77 69 74 68 20 6e 6f 64 65 20 47 65 6f 44 so.we.can.use\nit.with.node.GeoD
20000 61 74 61 46 72 61 6d 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 ataFrame.\n\n".......].....},...
20020 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",..
20040 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,...
20060 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
20080 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
200a0 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":.[....
200c0 20 20 20 20 20 22 6e 6f 64 65 73 2c 20 65 64 67 65 73 2c 20 57 20 3d 20 6d 6f 6d 65 70 79 2e 6e ....."nodes,.edges,.W.=.momepy.n
200e0 78 5f 74 6f 5f 67 64 66 28 47 2c 20 73 70 61 74 69 61 6c 5f 77 65 69 67 68 74 73 3d 54 72 75 65 x_to_gdf(G,.spatial_weights=True
20100 29 5c 6e 5c 6e 5c 6e 23 20 52 65 61 64 20 69 6e 20 65 78 61 6d 70 6c 65 20 73 74 72 65 65 74 20 )\n\n\n#.Read.in.example.street.
20120 6e 65 74 77 6f 72 6b 20 66 72 6f 6d 20 47 65 6f 50 61 63 6b 61 67 65 5c 6e 73 74 72 65 65 74 73 network.from.GeoPackage\nstreets
20140 20 3d 20 67 65 6f 70 61 6e 64 61 73 2e 72 65 61 64 5f 66 69 6c 65 28 6d 6f 6d 65 70 79 2e 64 61 .=.geopandas.read_file(momepy.da
20160 74 61 73 65 74 73 2e 67 65 74 5f 70 61 74 68 28 5c 22 62 75 62 65 6e 65 63 5c 22 29 2c 20 6c 61 tasets.get_path(\"bubenec\"),.la
20180 79 65 72 3d 5c 22 73 74 72 65 65 74 73 5c 22 29 5c 6e 5c 6e 23 20 43 6f 6e 73 74 72 75 63 74 20 yer=\"streets\")\n\n#.Construct.
201a0 74 68 65 20 70 72 69 6d 61 6c 20 67 72 61 70 68 5c 6e 47 5f 70 72 69 6d 61 6c 20 3d 20 6d 6f 6d the.primal.graph\nG_primal.=.mom
201c0 65 70 79 2e 67 64 66 5f 74 6f 5f 6e 78 28 73 74 72 65 65 74 73 2c 20 61 70 70 72 6f 61 63 68 3d epy.gdf_to_nx(streets,.approach=
201e0 5c 22 70 72 69 6d 61 6c 5c 22 29 5c 6e 5c 6e 23 20 50 6c 6f 74 5c 6e 66 2c 20 61 78 20 3d 20 70 \"primal\")\n\n#.Plot\nf,.ax.=.p
20200 6c 74 2e 73 75 62 70 6c 6f 74 73 28 31 2c 20 32 2c 20 66 69 67 73 69 7a 65 3d 28 31 32 2c 20 36 lt.subplots(1,.2,.figsize=(12,.6
20220 29 2c 20 73 68 61 72 65 78 3d 54 72 75 65 2c 20 73 68 61 72 65 79 3d 54 72 75 65 29 5c 6e 73 74 ),.sharex=True,.sharey=True)\nst
20240 72 65 65 74 73 2e 70 6c 6f 74 28 63 6f 6c 6f 72 3d 5c 22 6b 5c 22 2c 20 61 78 3d 61 78 5b 30 5d reets.plot(color=\"k\",.ax=ax[0]
20260 29 5c 6e 66 6f 72 20 69 2c 20 66 61 63 65 74 20 69 6e 20 65 6e 75 6d 65 72 61 74 65 28 61 78 29 )\nfor.i,.facet.in.enumerate(ax)
20280 3a 5c 6e 20 20 20 20 66 61 63 65 74 2e 73 65 74 5f 74 69 74 6c 65 28 28 5c 22 53 74 72 65 65 74 :\n....facet.set_title((\"Street
202a0 73 5c 22 2c 20 5c 22 47 72 61 70 68 5c 22 29 5b 69 5d 29 5c 6e 20 20 20 20 66 61 63 65 74 2e 61 s\",.\"Graph\")[i])\n....facet.a
202c0 78 69 73 28 5c 22 6f 66 66 5c 22 29 5c 6e 20 20 20 20 61 64 64 5f 62 61 73 65 6d 61 70 28 66 61 xis(\"off\")\n....add_basemap(fa
202e0 63 65 74 29 5c 6e 6e 78 2e 64 72 61 77 28 5c 6e 20 20 20 20 47 5f 70 72 69 6d 61 6c 2c 20 7b 6e cet)\nnx.draw(\n....G_primal,.{n
20300 3a 20 5b 6e 5b 30 5d 2c 20 6e 5b 31 5d 5d 20 66 6f 72 20 6e 20 69 6e 20 6c 69 73 74 28 47 5f 70 :.[n[0],.n[1]].for.n.in.list(G_p
20320 72 69 6d 61 6c 2e 6e 6f 64 65 73 29 7d 2c 20 61 78 3d 61 78 5b 31 5d 2c 20 6e 6f 64 65 5f 73 69 rimal.nodes)},.ax=ax[1],.node_si
20340 7a 65 3d 35 30 5c 6e 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 ze=50\n)".......].....},.....{..
20360 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",...
20380 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
203a0 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 43 6f 6e 73 74 72 75 63 74 20 74 68 65 20 64 75 61 e":.[........."Construct.the.dua
203c0 6c 20 67 72 61 70 68 2e 20 6d 6f 6d 65 70 79 20 77 69 6c 6c 20 73 74 6f 72 65 20 72 6f 77 20 61 l.graph..momepy.will.store.row.a
203e0 74 74 72 69 62 75 74 65 73 20 61 73 20 6e 6f 64 65 20 61 74 74 72 69 62 75 74 65 73 20 61 6e 64 ttributes.as.node.attributes.and
20400 5c 6e 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 6d 65 61 73 75 72 65 73 20 61 6e 67 6c 65 20 62 \nautomatically.measures.angle.b
20420 65 74 77 65 65 6e 20 6c 69 6e 65 73 2e 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d etween.lines.\n\n".......].....}
20440 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
20460 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
20480 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
204a0 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.......},.......
204c0 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":.[
204e0 0a 20 20 20 20 20 20 20 20 22 47 5f 64 75 61 6c 20 3d 20 6d 6f 6d 65 70 79 2e 67 64 66 5f 74 6f ........."G_dual.=.momepy.gdf_to
20500 5f 6e 78 28 73 74 72 65 65 74 73 2c 20 61 70 70 72 6f 61 63 68 3d 5c 22 64 75 61 6c 5c 22 29 5c _nx(streets,.approach=\"dual\")\
20520 6e 5c 6e 23 20 50 6c 6f 74 5c 6e 66 2c 20 61 78 20 3d 20 70 6c 74 2e 73 75 62 70 6c 6f 74 73 28 n\n#.Plot\nf,.ax.=.plt.subplots(
20540 31 2c 20 32 2c 20 66 69 67 73 69 7a 65 3d 28 31 32 2c 20 36 29 2c 20 73 68 61 72 65 78 3d 54 72 1,.2,.figsize=(12,.6),.sharex=Tr
20560 75 65 2c 20 73 68 61 72 65 79 3d 54 72 75 65 29 5c 6e 73 74 72 65 65 74 73 2e 70 6c 6f 74 28 63 ue,.sharey=True)\nstreets.plot(c
20580 6f 6c 6f 72 3d 5c 22 6b 5c 22 2c 20 61 78 3d 61 78 5b 30 5d 29 5c 6e 66 6f 72 20 69 2c 20 66 61 olor=\"k\",.ax=ax[0])\nfor.i,.fa
205a0 63 65 74 20 69 6e 20 65 6e 75 6d 65 72 61 74 65 28 61 78 29 3a 5c 6e 20 20 20 20 66 61 63 65 74 cet.in.enumerate(ax):\n....facet
205c0 2e 73 65 74 5f 74 69 74 6c 65 28 28 5c 22 53 74 72 65 65 74 73 5c 22 2c 20 5c 22 47 72 61 70 68 .set_title((\"Streets\",.\"Graph
205e0 5c 22 29 5b 69 5d 29 5c 6e 20 20 20 20 66 61 63 65 74 2e 61 78 69 73 28 5c 22 6f 66 66 5c 22 29 \")[i])\n....facet.axis(\"off\")
20600 5c 6e 20 20 20 20 61 64 64 5f 62 61 73 65 6d 61 70 28 66 61 63 65 74 29 5c 6e 6e 78 2e 64 72 61 \n....add_basemap(facet)\nnx.dra
20620 77 28 47 5f 64 75 61 6c 2c 20 7b 6e 3a 20 5b 6e 5b 30 5d 2c 20 6e 5b 31 5d 5d 20 66 6f 72 20 6e w(G_dual,.{n:.[n[0],.n[1]].for.n
20640 20 69 6e 20 6c 69 73 74 28 47 5f 64 75 61 6c 2e 6e 6f 64 65 73 29 7d 2c 20 61 78 3d 61 78 5b 31 .in.list(G_dual.nodes)},.ax=ax[1
20660 5d 2c 20 6e 6f 64 65 5f 73 69 7a 65 3d 35 30 29 5c 6e 70 6c 74 2e 73 68 6f 77 28 29 5c 6e 5c 6e ],.node_size=50)\nplt.show()\n\n
20680 23 20 43 6f 6e 76 65 72 74 20 64 75 61 6c 20 67 72 61 70 68 20 62 61 63 6b 20 74 6f 20 47 65 6f #.Convert.dual.graph.back.to.Geo
206a0 44 61 74 61 46 72 61 6d 65 2e 20 52 65 74 75 72 6e 73 20 6f 6e 6c 79 20 6f 72 69 67 69 6e 61 6c DataFrame..Returns.only.original
206c0 20 6c 69 6e 65 20 67 65 6f 6d 65 74 72 79 2e 5c 6e 6c 69 6e 65 73 20 3d 20 6d 6f 6d 65 70 79 2e .line.geometry.\nlines.=.momepy.
206e0 6e 78 5f 74 6f 5f 67 64 66 28 47 5f 64 75 61 6c 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d nx_to_gdf(G_dual)".......].....}
20700 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
20720 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":.{},....
20740 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 20 63 61 6e 20 61 ..."source":.[........."We.can.a
20760 6c 73 6f 20 63 6f 6e 73 74 72 75 63 74 20 74 68 65 20 64 75 61 6c 20 67 72 61 70 68 20 75 73 69 lso.construct.the.dual.graph.usi
20780 6e 67 20 50 79 53 41 4c 2e 20 4e 6f 74 65 20 74 68 61 74 20 69 74 20 6f 6e 6c 79 20 65 6e 63 6f ng.PySAL..Note.that.it.only.enco
207a0 64 65 73 5c 6e 72 65 6c 61 74 69 6f 6e 73 68 69 70 20 62 65 74 77 65 65 6e 20 67 65 6f 6d 65 74 des\nrelationship.between.geomet
207c0 72 69 65 73 20 61 6e 64 20 64 6f 20 6e 6f 74 20 61 6e 79 20 73 74 6f 72 65 20 61 74 74 72 69 62 ries.and.do.not.any.store.attrib
207e0 75 74 65 73 2e 20 48 6f 77 65 76 65 72 2c 20 69 74 20 69 73 5c 6e 73 69 67 6e 69 66 69 63 61 6e utes..However,.it.is\nsignifican
20800 74 6c 79 20 66 61 73 74 65 72 20 74 68 61 6e 20 6d 6f 6d 65 70 79 2e 67 64 66 5f 74 6f 5f 6e 78 tly.faster.than.momepy.gdf_to_nx
20820 28 29 2e 5c 6e 43 72 65 61 74 65 20 50 79 53 41 4c 20 77 65 69 67 68 74 73 20 28 67 72 61 70 68 ().\nCreate.PySAL.weights.(graph
20840 29 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 ).\n\n".......].....},.....{....
20860 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
20880 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
208a0 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":.
208c0 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":.
208e0 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 57 [],......."source":.[........."W
20900 20 3d 20 77 65 69 67 68 74 73 2e 51 75 65 65 6e 2e 66 72 6f 6d 5f 64 61 74 61 66 72 61 6d 65 28 .=.weights.Queen.from_dataframe(
20920 73 74 72 65 65 74 73 29 5c 6e 5c 6e 23 20 43 6f 6e 76 65 72 74 20 74 68 65 20 67 72 61 70 68 20 streets)\n\n#.Convert.the.graph.
20940 74 6f 20 6e 65 74 77 6f 72 6b 78 5c 6e 47 5f 64 75 61 6c 20 3d 20 57 2e 74 6f 5f 6e 65 74 77 6f to.networkx\nG_dual.=.W.to_netwo
20960 72 6b 78 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 rkx()".......].....}...],..."met
20980 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":.{...
209a0 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",.
209c0 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",.....
209e0 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".....},....."
20a00 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
20a20 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
20a40 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....
20a60 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":.".
20a80 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
20aa0 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",.
20ac0 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
20ae0 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
20b00 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 39 2e python3",......."version":."3.9.
20b20 31 36 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 16".....}...},..."nbformat":.4,.
20b40 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 00 .."nbformat_minor":.0.}PK.......
20b60 00 24 0f 5a 56 40 58 82 1c c1 0c 00 00 c1 0c 00 00 1e 00 00 00 67 65 6f 73 70 61 74 69 61 6c 2f .$.ZV@X..............geospatial/
20b80 70 6c 6f 74 5f 70 6f 6c 79 67 6f 6e 73 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 22 3a 20 plot_polygons.ipynb{..."cells":.
20ba0 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 64 65 [.....{......."cell_type":."code
20bc0 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
20be0 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
20c00 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.......},.......
20c20 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":.[
20c40 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 20 20 ........."%matplotlib.inline"...
20c60 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
20c80 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
20ca0 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":.[.......
20cc0 20 20 22 5c 6e 23 20 47 72 61 70 68 73 20 66 72 6f 6d 20 50 6f 6c 79 67 6f 6e 73 5c 6e 5c 6e 54 .."\n#.Graphs.from.Polygons\n\nT
20ce0 68 69 73 20 65 78 61 6d 70 6c 65 20 73 68 6f 77 73 20 68 6f 77 20 74 6f 20 62 75 69 6c 64 20 61 his.example.shows.how.to.build.a
20d00 20 67 72 61 70 68 20 66 72 6f 6d 20 61 20 73 65 74 20 6f 66 20 70 6f 6c 79 67 6f 6e 73 5c 6e 75 .graph.from.a.set.of.polygons\nu
20d20 73 69 6e 67 20 50 79 53 41 4c 20 61 6e 64 20 67 65 6f 70 61 6e 64 61 73 2e 20 57 65 27 6c 6c 20 sing.PySAL.and.geopandas..We'll.
20d40 66 6f 63 75 73 20 6f 6e 20 74 68 65 20 51 75 65 65 6e 20 63 6f 6e 74 69 67 75 69 74 79 20 5c 6e focus.on.the.Queen.contiguity.\n
20d60 67 72 61 70 68 2c 20 62 75 74 20 63 6f 6e 73 74 72 75 63 74 6f 72 73 20 61 72 65 20 61 6c 73 6f graph,.but.constructors.are.also
20d80 20 70 72 6f 76 69 64 65 64 20 66 6f 72 20 52 6f 6f 6b 20 63 6f 6e 74 69 67 75 69 74 79 2c 20 5c .provided.for.Rook.contiguity,.\
20da0 6e 61 73 20 77 65 6c 6c 20 61 73 20 6f 74 68 65 72 20 6b 69 6e 64 73 20 6f 66 20 67 72 61 70 68 nas.well.as.other.kinds.of.graph
20dc0 73 20 66 72 6f 6d 20 74 68 65 20 70 6f 6c 79 67 6f 6e 20 63 65 6e 74 72 6f 69 64 73 2e 20 5c 6e s.from.the.polygon.centroids..\n
20de0 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
20e00 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
20e20 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
20e40 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.
20e60 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":.[],...
20e80 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 72 6f 6d 20 6c 69 ...."source":.[........."from.li
20ea0 62 70 79 73 61 6c 20 69 6d 70 6f 72 74 20 77 65 69 67 68 74 73 5c 6e 69 6d 70 6f 72 74 20 6d 61 bpysal.import.weights\nimport.ma
20ec0 74 70 6c 6f 74 6c 69 62 2e 70 79 70 6c 6f 74 20 61 73 20 70 6c 74 5c 6e 69 6d 70 6f 72 74 20 6e tplotlib.pyplot.as.plt\nimport.n
20ee0 65 74 77 6f 72 6b 78 20 61 73 20 6e 78 5c 6e 69 6d 70 6f 72 74 20 67 65 6f 70 61 6e 64 61 73 5c etworkx.as.nx\nimport.geopandas\
20f00 6e 69 6d 70 6f 72 74 20 6e 75 6d 70 79 20 61 73 20 6e 70 5c 6e 5c 6e 23 20 72 65 61 64 20 69 6e nimport.numpy.as.np\n\n#.read.in
20f20 20 65 78 61 6d 70 6c 65 20 64 61 74 61 20 66 72 6f 6d 20 67 65 6f 6a 73 6f 6e 2e 20 47 65 6f 4a .example.data.from.geojson..GeoJ
20f40 53 4f 4e 20 69 73 20 61 20 66 69 6c 65 20 66 6f 72 6d 61 74 5c 6e 23 20 66 6f 72 20 65 6e 63 6f SON.is.a.file.format\n#.for.enco
20f60 64 69 6e 67 20 67 65 6f 67 72 61 70 68 69 63 20 64 61 74 61 20 62 61 73 65 64 20 6f 6e 20 4a 53 ding.geographic.data.based.on.JS
20f80 4f 4e 2e 20 49 74 20 69 73 20 75 73 65 66 75 6c 20 66 6f 72 5c 6e 23 20 70 72 65 73 65 6e 74 69 ON..It.is.useful.for\n#.presenti
20fa0 6e 67 20 67 65 6f 67 72 61 70 68 69 63 20 64 61 74 61 20 6f 6e 20 74 68 65 20 77 65 62 2c 20 61 ng.geographic.data.on.the.web,.a
20fc0 6e 64 20 69 73 20 69 6e 63 72 65 61 73 69 6e 67 6c 79 5c 6e 23 20 75 73 65 64 20 61 73 20 61 20 nd.is.increasingly\n#.used.as.a.
20fe0 66 69 6c 65 20 66 6f 72 6d 61 74 20 66 6f 72 20 67 65 6f 67 72 61 70 68 69 63 20 64 61 74 61 2e file.format.for.geographic.data.
21000 5c 6e 66 69 6c 65 70 61 74 68 20 3d 20 5c 22 6e 75 74 73 31 2e 67 65 6f 6a 73 6f 6e 5c 22 5c 6e \nfilepath.=.\"nuts1.geojson\"\n
21020 65 75 72 6f 70 65 61 6e 5f 72 65 67 69 6f 6e 73 20 3d 20 67 65 6f 70 61 6e 64 61 73 2e 72 65 61 european_regions.=.geopandas.rea
21040 64 5f 66 69 6c 65 28 66 69 6c 65 70 61 74 68 29 5c 6e 5c 6e 23 20 65 78 74 72 61 63 74 20 74 68 d_file(filepath)\n\n#.extract.th
21060 65 20 63 65 6e 74 72 6f 69 64 73 20 66 6f 72 20 63 6f 6e 6e 65 63 74 69 6e 67 20 74 68 65 20 72 e.centroids.for.connecting.the.r
21080 65 67 69 6f 6e 73 2c 20 77 68 69 63 68 20 69 73 5c 6e 23 20 74 68 65 20 61 76 65 72 61 67 65 20 egions,.which.is\n#.the.average.
210a0 6f 66 20 74 68 65 20 63 6f 6f 72 64 69 6e 61 74 65 73 20 74 68 61 74 20 64 65 66 69 6e 65 20 74 of.the.coordinates.that.define.t
210c0 68 65 20 70 6f 6c 79 67 6f 6e 27 73 20 62 6f 75 6e 64 61 72 79 5c 6e 63 65 6e 74 72 6f 69 64 73 he.polygon's.boundary\ncentroids
210e0 20 3d 20 6e 70 2e 63 6f 6c 75 6d 6e 5f 73 74 61 63 6b 28 28 65 75 72 6f 70 65 61 6e 5f 72 65 67 .=.np.column_stack((european_reg
21100 69 6f 6e 73 2e 63 65 6e 74 72 6f 69 64 2e 78 2c 20 65 75 72 6f 70 65 61 6e 5f 72 65 67 69 6f 6e ions.centroid.x,.european_region
21120 73 2e 63 65 6e 74 72 6f 69 64 2e 79 29 29 5c 6e 5c 6e 23 20 63 6f 6e 73 74 72 75 63 74 20 74 68 s.centroid.y))\n\n#.construct.th
21140 65 20 5c 22 51 75 65 65 6e 5c 22 20 61 64 6a 61 63 65 6e 63 79 20 67 72 61 70 68 2e 20 49 6e 20 e.\"Queen\".adjacency.graph..In.
21160 67 65 6f 67 72 61 70 68 69 63 61 6c 20 61 70 70 6c 69 63 61 74 69 6f 6e 73 2c 5c 6e 23 20 74 68 geographical.applications,\n#.th
21180 65 20 5c 22 51 75 65 65 6e 5c 22 20 61 64 6a 61 63 65 6e 63 79 20 67 72 61 70 68 20 63 6f 6e 73 e.\"Queen\".adjacency.graph.cons
211a0 69 64 65 72 73 20 74 77 6f 20 70 6f 6c 79 67 6f 6e 73 20 61 73 20 63 6f 6e 6e 65 63 74 65 64 20 iders.two.polygons.as.connected.
211c0 69 66 5c 6e 23 20 74 68 65 79 20 73 68 61 72 65 20 61 20 73 69 6e 67 6c 65 20 70 6f 69 6e 74 20 if\n#.they.share.a.single.point.
211e0 6f 6e 20 74 68 65 69 72 20 62 6f 75 6e 64 61 72 79 2e 20 54 68 69 73 20 69 73 20 61 6e 20 61 6e on.their.boundary..This.is.an.an
21200 61 6c 6f 67 75 65 20 74 6f 5c 6e 23 20 74 68 65 20 5c 22 4d 6f 6f 72 65 5c 22 20 6e 65 69 67 68 alogue.to\n#.the.\"Moore\".neigh
21220 62 6f 72 68 6f 6f 64 20 6e 69 6e 65 20 73 75 72 72 6f 75 6e 64 69 6e 67 20 63 65 6c 6c 73 20 69 borhood.nine.surrounding.cells.i
21240 6e 20 61 20 72 65 67 75 6c 61 72 20 67 72 69 64 2e 5c 6e 71 75 65 65 6e 20 3d 20 77 65 69 67 68 n.a.regular.grid.\nqueen.=.weigh
21260 74 73 2e 51 75 65 65 6e 2e 66 72 6f 6d 5f 64 61 74 61 66 72 61 6d 65 28 65 75 72 6f 70 65 61 6e ts.Queen.from_dataframe(european
21280 5f 72 65 67 69 6f 6e 73 29 5c 6e 5c 6e 23 20 54 68 65 6e 2c 20 77 65 20 63 61 6e 20 63 6f 6e 76 _regions)\n\n#.Then,.we.can.conv
212a0 65 72 74 20 74 68 65 20 67 72 61 70 68 20 74 6f 20 6e 65 74 77 6f 72 6b 78 20 6f 62 6a 65 63 74 ert.the.graph.to.networkx.object
212c0 20 75 73 69 6e 67 20 74 68 65 5c 6e 23 20 2e 74 6f 5f 6e 65 74 77 6f 72 6b 78 28 29 20 6d 65 74 .using.the\n#..to_networkx().met
212e0 68 6f 64 2e 5c 6e 67 72 61 70 68 20 3d 20 71 75 65 65 6e 2e 74 6f 5f 6e 65 74 77 6f 72 6b 78 28 hod.\ngraph.=.queen.to_networkx(
21300 29 5c 6e 5c 6e 23 20 54 6f 20 70 6c 6f 74 20 77 69 74 68 20 6e 65 74 77 6f 72 6b 78 2c 20 77 65 )\n\n#.To.plot.with.networkx,.we
21320 20 6e 65 65 64 20 74 6f 20 6d 65 72 67 65 20 74 68 65 20 6e 6f 64 65 73 20 62 61 63 6b 20 74 6f .need.to.merge.the.nodes.back.to
21340 5c 6e 23 20 74 68 65 69 72 20 70 6f 73 69 74 69 6f 6e 73 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 \n#.their.positions.in.order.to.
21360 70 6c 6f 74 20 69 6e 20 6e 65 74 77 6f 72 6b 78 5c 6e 70 6f 73 69 74 69 6f 6e 73 20 3d 20 64 69 plot.in.networkx\npositions.=.di
21380 63 74 28 7a 69 70 28 67 72 61 70 68 2e 6e 6f 64 65 73 2c 20 63 65 6e 74 72 6f 69 64 73 29 29 5c ct(zip(graph.nodes,.centroids))\
213a0 6e 5c 6e 23 20 70 6c 6f 74 20 77 69 74 68 20 61 20 6e 69 63 65 20 62 61 73 65 6d 61 70 5c 6e 61 n\n#.plot.with.a.nice.basemap\na
213c0 78 20 3d 20 65 75 72 6f 70 65 61 6e 5f 72 65 67 69 6f 6e 73 2e 70 6c 6f 74 28 6c 69 6e 65 77 69 x.=.european_regions.plot(linewi
213e0 64 74 68 3d 31 2c 20 65 64 67 65 63 6f 6c 6f 72 3d 5c 22 67 72 65 79 5c 22 2c 20 66 61 63 65 63 dth=1,.edgecolor=\"grey\",.facec
21400 6f 6c 6f 72 3d 5c 22 6c 69 67 68 74 62 6c 75 65 5c 22 29 5c 6e 61 78 2e 61 78 69 73 28 5b 2d 31 olor=\"lightblue\")\nax.axis([-1
21420 32 2c 20 34 35 2c 20 33 33 2c 20 36 36 5d 29 5c 6e 61 78 2e 61 78 69 73 28 5c 22 6f 66 66 5c 22 2,.45,.33,.66])\nax.axis(\"off\"
21440 29 5c 6e 6e 78 2e 64 72 61 77 28 67 72 61 70 68 2c 20 70 6f 73 69 74 69 6f 6e 73 2c 20 61 78 3d )\nnx.draw(graph,.positions,.ax=
21460 61 78 2c 20 6e 6f 64 65 5f 73 69 7a 65 3d 35 2c 20 6e 6f 64 65 5f 63 6f 6c 6f 72 3d 5c 22 72 5c ax,.node_size=5,.node_color=\"r\
21480 22 29 5c 6e 70 6c 74 2e 73 68 6f 77 28 29 5c 6e 5c 6e 23 20 41 6e 20 61 6c 74 65 72 6e 61 74 69 ")\nplt.show()\n\n#.An.alternati
214a0 76 65 20 6d 65 74 68 6f 64 20 74 6f 20 63 6f 6e 73 74 72 75 63 74 20 67 72 61 70 68 73 20 66 72 ve.method.to.construct.graphs.fr
214c0 6f 6d 20 70 6f 6c 79 67 6f 6e 73 20 6d 61 79 20 75 73 65 5c 6e 23 20 70 79 67 65 6f 73 2e 20 54 om.polygons.may.use\n#.pygeos..T
214e0 68 69 73 20 70 61 63 6b 61 67 65 20 69 73 20 61 20 68 69 67 68 2d 70 65 72 66 6f 72 6d 61 6e 63 his.package.is.a.high-performanc
21500 65 20 69 6e 74 65 72 66 61 63 65 20 74 6f 20 74 68 65 20 47 45 4f 53 20 43 5c 6e 23 20 6c 69 62 e.interface.to.the.GEOS.C\n#.lib
21520 72 61 72 79 2c 20 75 73 65 64 20 69 6e 20 63 6f 6d 70 75 74 69 6e 67 20 67 65 6f 67 72 61 70 68 rary,.used.in.computing.geograph
21540 69 63 61 6c 20 72 65 6c 61 74 69 6f 6e 73 68 69 70 73 2e 20 54 68 65 73 65 20 6c 65 74 20 75 73 ical.relationships..These.let.us
21560 5c 6e 23 20 64 65 73 63 72 69 62 65 20 74 68 65 20 72 65 6c 61 74 69 6f 6e 73 68 69 70 73 20 62 \n#.describe.the.relationships.b
21580 65 74 77 65 65 6e 20 5c 22 70 6f 69 6e 74 20 73 65 74 73 2c 5c 22 20 6c 69 6b 65 20 70 6f 6c 79 etween.\"point.sets,\".like.poly
215a0 67 6f 6e 73 20 77 68 65 74 68 65 72 5c 6e 23 20 6f 72 20 6e 6f 74 20 61 20 6c 69 6e 65 20 5c 22 gons.whether\n#.or.not.a.line.\"
215c0 63 72 6f 73 73 65 73 5c 22 20 61 20 70 6f 6c 79 67 6f 6e 2c 20 6f 72 20 77 68 65 74 68 65 72 20 crosses\".a.polygon,.or.whether.
215e0 74 77 6f 20 70 6f 6c 79 67 6f 6e 73 20 5c 22 74 6f 75 63 68 2e 5c 22 5c 6e 23 20 54 68 65 73 65 two.polygons.\"touch.\"\n#.These
21600 20 72 65 6c 61 74 69 6f 6e 73 68 69 70 73 2c 20 63 61 6c 6c 65 64 20 5c 22 70 72 65 64 69 63 61 .relationships,.called.\"predica
21620 74 65 73 5c 22 2c 20 61 72 65 20 65 78 74 65 6e 73 69 76 65 2c 20 61 6e 64 20 61 72 65 20 64 6f tes\",.are.extensive,.and.are.do
21640 63 75 6d 65 6e 74 65 64 5c 6e 23 20 62 79 20 74 68 65 20 70 79 67 65 6f 73 20 70 61 63 6b 61 67 cumented\n#.by.the.pygeos.packag
21660 65 2e 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 e.".......].....}...],..."metada
21680 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":.{......
216a0 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",....
216c0 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",......."
216e0 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
21700 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
21720 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
21740 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.......
21760 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"
21780 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
217a0 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",....
217c0 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
217e0 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
21800 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 39 2e 31 36 22 hon3",......."version":."3.9.16"
21820 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,..."
21840 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 1d 0f nbformat_minor":.0.}PK..........
21860 5a 56 56 ea ae 92 e4 0f 00 00 e4 0f 00 00 1e 00 00 00 67 65 6f 73 70 61 74 69 61 6c 2f 70 6c 6f ZVV...............geospatial/plo
21880 74 5f 64 65 6c 61 75 6e 61 79 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 22 3a 20 5b 0a 20 t_delaunay.ipynb{..."cells":.[..
218a0 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",.
218c0 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,..
218e0 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
21900 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
21920 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":.[...
21940 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"......
21960 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
21980 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":
219a0 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":.[........."
219c0 5c 6e 23 20 44 65 6c 61 75 6e 61 79 20 67 72 61 70 68 73 20 66 72 6f 6d 20 67 65 6f 67 72 61 70 \n#.Delaunay.graphs.from.geograp
219e0 68 69 63 20 70 6f 69 6e 74 73 5c 6e 5c 6e 54 68 69 73 20 65 78 61 6d 70 6c 65 20 73 68 6f 77 73 hic.points\n\nThis.example.shows
21a00 20 68 6f 77 20 74 6f 20 62 75 69 6c 64 20 61 20 64 65 6c 61 75 6e 61 79 20 67 72 61 70 68 20 28 .how.to.build.a.delaunay.graph.(
21a20 70 6c 75 73 20 69 74 73 20 64 75 61 6c 2c 5c 6e 74 68 65 20 73 65 74 20 6f 66 20 56 6f 72 6f 6e plus.its.dual,\nthe.set.of.Voron
21a40 6f 69 20 70 6f 6c 79 67 6f 6e 73 29 20 66 72 6f 6d 20 61 20 73 65 74 20 6f 66 20 70 6f 69 6e 74 oi.polygons).from.a.set.of.point
21a60 73 2e 5c 6e 46 6f 72 20 74 68 69 73 2c 20 77 65 20 77 69 6c 6c 20 75 73 65 20 74 68 65 20 73 65 s.\nFor.this,.we.will.use.the.se
21a80 74 20 6f 66 20 63 68 6f 6c 65 72 61 20 63 61 73 65 73 20 61 74 20 74 68 65 20 42 72 6f 61 64 20 t.of.cholera.cases.at.the.Broad.
21aa0 53 74 72 65 65 74 20 50 75 6d 70 2c 20 5c 6e 72 65 63 6f 72 64 65 64 20 62 79 20 4a 6f 68 6e 20 Street.Pump,.\nrecorded.by.John.
21ac0 53 6e 6f 77 20 69 6e 20 31 38 35 33 2e 20 54 68 65 20 6d 65 74 68 6f 64 73 20 73 68 6f 77 6e 20 Snow.in.1853..The.methods.shown.
21ae0 68 65 72 65 20 63 61 6e 20 61 6c 73 6f 20 77 6f 72 6b 20 5c 6e 64 69 72 65 63 74 6c 79 20 77 69 here.can.also.work.\ndirectly.wi
21b00 74 68 20 70 6f 6c 79 67 6f 6e 61 6c 20 64 61 74 61 20 75 73 69 6e 67 20 74 68 65 69 72 20 63 65 th.polygonal.data.using.their.ce
21b20 6e 74 72 6f 69 64 73 20 61 73 20 72 65 70 72 65 73 65 6e 74 61 74 69 76 65 20 70 6f 69 6e 74 73 ntroids.as.representative.points
21b40 2e 20 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".......].....},.....{......
21b60 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
21b80 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
21ba0 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
21bc0 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":.[]
21be0 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 72 6f ,......."source":.[........."fro
21c00 6d 20 6c 69 62 70 79 73 61 6c 20 69 6d 70 6f 72 74 20 77 65 69 67 68 74 73 2c 20 65 78 61 6d 70 m.libpysal.import.weights,.examp
21c20 6c 65 73 5c 6e 66 72 6f 6d 20 6c 69 62 70 79 73 61 6c 2e 63 67 20 69 6d 70 6f 72 74 20 76 6f 72 les\nfrom.libpysal.cg.import.vor
21c40 6f 6e 6f 69 5f 66 72 61 6d 65 73 5c 6e 66 72 6f 6d 20 63 6f 6e 74 65 78 74 69 6c 79 20 69 6d 70 onoi_frames\nfrom.contextily.imp
21c60 6f 72 74 20 61 64 64 5f 62 61 73 65 6d 61 70 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c ort.add_basemap\nimport.matplotl
21c80 69 62 2e 70 79 70 6c 6f 74 20 61 73 20 70 6c 74 5c 6e 69 6d 70 6f 72 74 20 6e 65 74 77 6f 72 6b ib.pyplot.as.plt\nimport.network
21ca0 78 20 61 73 20 6e 78 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 x.as.nx\nimport.numpy.as.np\nimp
21cc0 6f 72 74 20 67 65 6f 70 61 6e 64 61 73 5c 6e 5c 6e 23 20 72 65 61 64 20 69 6e 20 65 78 61 6d 70 ort.geopandas\n\n#.read.in.examp
21ce0 6c 65 20 64 61 74 61 20 66 72 6f 6d 20 61 20 67 65 6f 70 61 63 6b 61 67 65 20 66 69 6c 65 2e 20 le.data.from.a.geopackage.file..
21d00 47 65 6f 70 61 63 6b 61 67 65 73 5c 6e 23 20 61 72 65 20 61 20 66 6f 72 6d 61 74 20 66 6f 72 20 Geopackages\n#.are.a.format.for.
21d20 73 74 6f 72 69 6e 67 20 67 65 6f 67 72 61 70 68 69 63 20 64 61 74 61 20 74 68 61 74 20 69 73 20 storing.geographic.data.that.is.
21d40 62 61 63 6b 65 64 5c 6e 23 20 62 79 20 73 71 6c 69 74 65 2e 20 67 65 6f 70 61 6e 64 61 73 20 72 backed\n#.by.sqlite..geopandas.r
21d60 65 61 64 73 20 64 61 74 61 20 72 65 6c 79 69 6e 67 20 6f 6e 20 74 68 65 20 66 69 6f 6e 61 20 70 eads.data.relying.on.the.fiona.p
21d80 61 63 6b 61 67 65 2c 5c 6e 23 20 70 72 6f 76 69 64 69 6e 67 20 61 20 68 69 67 68 2d 6c 65 76 65 ackage,\n#.providing.a.high-leve
21da0 6c 20 70 61 6e 64 61 73 2d 73 74 79 6c 65 20 69 6e 74 65 72 66 61 63 65 20 74 6f 20 67 65 6f 67 l.pandas-style.interface.to.geog
21dc0 72 61 70 68 69 63 20 64 61 74 61 2e 5c 6e 23 20 4d 61 6e 79 20 64 69 66 66 65 72 65 6e 74 20 6b raphic.data.\n#.Many.different.k
21de0 69 6e 64 73 20 6f 66 20 67 65 6f 67 72 61 70 68 69 63 20 64 61 74 61 20 66 6f 72 6d 61 74 73 20 inds.of.geographic.data.formats.
21e00 63 61 6e 20 62 65 20 72 65 61 64 20 62 79 20 67 65 6f 70 61 6e 64 61 73 2e 5c 6e 63 61 73 65 73 can.be.read.by.geopandas.\ncases
21e20 20 3d 20 67 65 6f 70 61 6e 64 61 73 2e 72 65 61 64 5f 66 69 6c 65 28 5c 22 63 68 6f 6c 65 72 61 .=.geopandas.read_file(\"cholera
21e40 5f 63 61 73 65 73 2e 67 70 6b 67 5c 22 29 5c 6e 5c 6e 23 20 49 6e 20 6f 72 64 65 72 20 66 6f 72 _cases.gpkg\")\n\n#.In.order.for
21e60 20 6e 65 74 77 6f 72 6b 78 20 74 6f 20 70 6c 6f 74 20 74 68 65 20 6e 6f 64 65 73 20 6f 66 20 6f .networkx.to.plot.the.nodes.of.o
21e80 75 72 20 67 72 61 70 68 20 63 6f 72 72 65 63 74 6c 79 2c 20 77 65 5c 6e 23 20 6e 65 65 64 20 74 ur.graph.correctly,.we\n#.need.t
21ea0 6f 20 63 6f 6e 73 74 72 75 63 74 20 74 68 65 20 61 72 72 61 79 20 6f 66 20 63 6f 6f 72 64 69 6e o.construct.the.array.of.coordin
21ec0 61 74 65 73 20 66 6f 72 20 65 61 63 68 20 70 6f 69 6e 74 20 69 6e 20 6f 75 72 20 64 61 74 61 73 ates.for.each.point.in.our.datas
21ee0 65 74 2e 5c 6e 23 20 54 6f 20 67 65 74 20 74 68 69 73 20 61 73 20 61 20 6e 75 6d 70 79 20 61 72 et.\n#.To.get.this.as.a.numpy.ar
21f00 72 61 79 2c 20 77 65 20 65 78 74 72 61 63 74 20 74 68 65 20 78 20 61 6e 64 20 79 20 63 6f 6f 72 ray,.we.extract.the.x.and.y.coor
21f20 64 69 6e 61 74 65 73 20 66 72 6f 6d 20 74 68 65 5c 6e 23 20 67 65 6f 6d 65 74 72 79 20 63 6f 6c dinates.from.the\n#.geometry.col
21f40 75 6d 6e 2e 5c 6e 63 6f 6f 72 64 69 6e 61 74 65 73 20 3d 20 6e 70 2e 63 6f 6c 75 6d 6e 5f 73 74 umn.\ncoordinates.=.np.column_st
21f60 61 63 6b 28 28 63 61 73 65 73 2e 67 65 6f 6d 65 74 72 79 2e 78 2c 20 63 61 73 65 73 2e 67 65 6f ack((cases.geometry.x,.cases.geo
21f80 6d 65 74 72 79 2e 79 29 29 5c 6e 5c 6e 23 20 57 68 69 6c 65 20 77 65 20 63 6f 75 6c 64 20 73 69 metry.y))\n\n#.While.we.could.si
21fa0 6d 70 6c 79 20 70 72 65 73 65 6e 74 20 74 68 65 20 44 65 6c 61 75 6e 61 79 20 67 72 61 70 68 20 mply.present.the.Delaunay.graph.
21fc0 64 69 72 65 63 74 6c 79 2c 20 69 74 20 69 73 20 75 73 65 66 75 6c 20 74 6f 5c 6e 23 20 76 69 73 directly,.it.is.useful.to\n#.vis
21fe0 75 61 6c 69 7a 65 20 74 68 65 20 44 65 6c 61 75 6e 61 79 20 67 72 61 70 68 20 61 6c 6f 6e 67 73 ualize.the.Delaunay.graph.alongs
22000 69 64 65 20 74 68 65 20 56 6f 72 6f 6e 6f 69 20 64 69 61 67 72 61 6d 2e 20 54 68 69 73 20 69 73 ide.the.Voronoi.diagram..This.is
22020 20 62 65 63 61 75 73 65 5c 6e 23 20 74 68 65 20 74 77 6f 20 61 72 65 20 69 6e 74 72 69 6e 73 69 .because\n#.the.two.are.intrinsi
22040 63 61 6c 6c 79 20 6c 69 6e 6b 65 64 3a 20 74 68 65 20 61 64 6a 61 63 65 6e 63 79 20 67 72 61 70 cally.linked:.the.adjacency.grap
22060 68 20 6f 66 20 74 68 65 20 56 6f 72 6f 6e 6f 69 20 64 69 61 67 72 61 6d 5c 6e 23 20 69 73 20 74 h.of.the.Voronoi.diagram\n#.is.t
22080 68 65 20 44 65 6c 61 75 6e 61 79 20 67 72 61 70 68 20 66 6f 72 20 74 68 65 20 73 65 74 20 6f 66 he.Delaunay.graph.for.the.set.of
220a0 20 67 65 6e 65 72 61 74 6f 72 20 70 6f 69 6e 74 73 21 20 50 75 74 20 73 69 6d 70 6c 79 2c 20 74 .generator.points!.Put.simply,.t
220c0 68 69 73 20 6d 65 61 6e 73 5c 6e 23 20 77 65 20 63 61 6e 20 62 75 69 6c 64 20 74 68 65 20 56 6f his.means\n#.we.can.build.the.Vo
220e0 72 6f 6e 6f 69 20 64 69 61 67 72 61 6d 20 28 72 65 6c 79 69 6e 67 20 6f 6e 20 73 63 69 70 79 2e ronoi.diagram.(relying.on.scipy.
22100 73 70 61 74 69 61 6c 20 66 6f 72 20 74 68 65 20 75 6e 64 65 72 6c 79 69 6e 67 5c 6e 23 20 63 6f spatial.for.the.underlying\n#.co
22120 6d 70 75 74 61 74 69 6f 6e 73 29 2c 20 61 6e 64 20 74 68 65 6e 20 63 6f 6e 76 65 72 74 20 74 68 mputations),.and.then.convert.th
22140 65 73 65 20 70 6f 6c 79 67 6f 6e 73 20 71 75 69 63 6b 6c 79 20 69 6e 74 6f 20 74 68 65 20 44 65 ese.polygons.quickly.into.the.De
22160 6c 61 75 6e 61 79 20 67 72 61 70 68 2e 5c 6e 23 20 42 65 20 63 61 72 65 66 75 6c 2c 20 74 68 6f launay.graph.\n#.Be.careful,.tho
22180 75 67 68 3b 20 6f 75 72 20 61 6c 67 6f 72 69 74 68 6d 2c 20 62 79 20 64 65 66 61 75 6c 74 2c 20 ugh;.our.algorithm,.by.default,.
221a0 77 69 6c 6c 20 63 6c 69 70 20 74 68 65 20 76 6f 72 6f 6e 6f 69 20 64 69 61 67 72 61 6d 20 74 6f will.clip.the.voronoi.diagram.to
221c0 5c 6e 23 20 74 68 65 20 62 6f 75 6e 64 69 6e 67 20 62 6f 78 20 6f 66 20 74 68 65 20 70 6f 69 6e \n#.the.bounding.box.of.the.poin
221e0 74 20 70 61 74 74 65 72 6e 2e 20 54 68 69 73 20 69 73 20 63 6f 6e 74 72 6f 6c 6c 65 64 20 62 79 t.pattern..This.is.controlled.by
22200 20 74 68 65 20 5c 22 63 6c 69 70 5c 22 20 61 72 67 75 6d 65 6e 74 2e 5c 6e 63 65 6c 6c 73 2c 20 .the.\"clip\".argument.\ncells,.
22220 67 65 6e 65 72 61 74 6f 72 73 20 3d 20 76 6f 72 6f 6e 6f 69 5f 66 72 61 6d 65 73 28 63 6f 6f 72 generators.=.voronoi_frames(coor
22240 64 69 6e 61 74 65 73 2c 20 63 6c 69 70 3d 5c 22 63 6f 6e 76 65 78 20 68 75 6c 6c 5c 22 29 5c 6e dinates,.clip=\"convex.hull\")\n
22260 5c 6e 23 20 57 69 74 68 20 74 68 65 20 76 6f 72 6f 6e 6f 69 20 70 6f 6c 79 67 6f 6e 73 2c 20 77 \n#.With.the.voronoi.polygons,.w
22280 65 20 63 61 6e 20 63 6f 6e 73 74 72 75 63 74 20 74 68 65 20 61 64 6a 61 63 65 6e 63 79 20 67 72 e.can.construct.the.adjacency.gr
222a0 61 70 68 20 62 65 74 77 65 65 6e 20 74 68 65 6d 20 75 73 69 6e 67 5c 6e 23 20 5c 22 52 6f 6f 6b aph.between.them.using\n#.\"Rook
222c0 5c 22 20 63 6f 6e 74 69 67 75 69 74 79 2e 20 54 68 69 73 20 72 65 70 72 65 73 65 6e 74 73 20 76 \".contiguity..This.represents.v
222e0 6f 72 6f 6e 6f 69 20 63 65 6c 6c 73 20 61 73 20 62 65 69 6e 67 20 61 64 6a 61 63 65 6e 74 20 69 oronoi.cells.as.being.adjacent.i
22300 66 20 74 68 65 79 20 73 68 61 72 65 5c 6e 23 20 61 6e 20 65 64 67 65 2f 66 61 63 65 2e 20 54 68 f.they.share\n#.an.edge/face..Th
22320 69 73 20 69 73 20 61 6e 20 61 6e 61 6c 6f 67 75 65 20 74 6f 20 74 68 65 20 5c 22 76 6f 6e 20 4e is.is.an.analogue.to.the.\"von.N
22340 65 75 6d 61 6e 5c 22 20 6e 65 69 67 68 62 6f 72 68 6f 6f 64 2c 20 6f 72 20 74 68 65 20 34 20 63 euman\".neighborhood,.or.the.4.c
22360 61 72 64 69 6e 61 6c 5c 6e 23 20 6e 65 69 67 68 62 6f 72 73 20 69 6e 20 61 20 72 65 67 75 6c 61 ardinal\n#.neighbors.in.a.regula
22380 72 20 67 72 69 64 2e 20 54 68 65 20 6e 61 6d 65 20 63 6f 6d 65 73 20 66 72 6f 6d 20 74 68 65 20 r.grid..The.name.comes.from.the.
223a0 64 69 72 65 63 74 69 6f 6e 73 20 61 20 52 6f 6f 6b 20 70 69 65 63 65 20 63 61 6e 20 6d 6f 76 65 directions.a.Rook.piece.can.move
223c0 5c 6e 23 20 6f 6e 20 61 20 63 68 65 73 73 62 6f 61 72 64 2e 5c 6e 64 65 6c 61 75 6e 61 79 20 3d \n#.on.a.chessboard.\ndelaunay.=
223e0 20 77 65 69 67 68 74 73 2e 52 6f 6f 6b 2e 66 72 6f 6d 5f 64 61 74 61 66 72 61 6d 65 28 63 65 6c .weights.Rook.from_dataframe(cel
22400 6c 73 29 5c 6e 5c 6e 23 20 4f 6e 63 65 20 74 68 65 20 67 72 61 70 68 20 69 73 20 62 75 69 6c 74 ls)\n\n#.Once.the.graph.is.built
22420 2c 20 77 65 20 63 61 6e 20 63 6f 6e 76 65 72 74 20 74 68 65 20 67 72 61 70 68 73 20 74 6f 20 6e ,.we.can.convert.the.graphs.to.n
22440 65 74 77 6f 72 6b 78 20 6f 62 6a 65 63 74 73 20 75 73 69 6e 67 20 74 68 65 5c 6e 23 20 72 65 6c etworkx.objects.using.the\n#.rel
22460 65 76 61 6e 74 20 6d 65 74 68 6f 64 2e 5c 6e 64 65 6c 61 75 6e 61 79 5f 67 72 61 70 68 20 3d 20 evant.method.\ndelaunay_graph.=.
22480 64 65 6c 61 75 6e 61 79 2e 74 6f 5f 6e 65 74 77 6f 72 6b 78 28 29 5c 6e 5c 6e 23 20 54 6f 20 70 delaunay.to_networkx()\n\n#.To.p
224a0 6c 6f 74 20 77 69 74 68 20 6e 65 74 77 6f 72 6b 78 2c 20 77 65 20 6e 65 65 64 20 74 6f 20 6d 65 lot.with.networkx,.we.need.to.me
224c0 72 67 65 20 74 68 65 20 6e 6f 64 65 73 20 62 61 63 6b 20 74 6f 5c 6e 23 20 74 68 65 69 72 20 70 rge.the.nodes.back.to\n#.their.p
224e0 6f 73 69 74 69 6f 6e 73 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 70 6c 6f 74 20 69 6e 20 6e 65 74 ositions.in.order.to.plot.in.net
22500 77 6f 72 6b 78 5c 6e 70 6f 73 69 74 69 6f 6e 73 20 3d 20 64 69 63 74 28 7a 69 70 28 64 65 6c 61 workx\npositions.=.dict(zip(dela
22520 75 6e 61 79 5f 67 72 61 70 68 2e 6e 6f 64 65 73 2c 20 63 6f 6f 72 64 69 6e 61 74 65 73 29 29 5c unay_graph.nodes,.coordinates))\
22540 6e 5c 6e 23 20 4e 6f 77 2c 20 77 65 20 63 61 6e 20 70 6c 6f 74 20 77 69 74 68 20 61 20 6e 69 63 n\n#.Now,.we.can.plot.with.a.nic
22560 65 20 62 61 73 65 6d 61 70 2e 5c 6e 61 78 20 3d 20 63 65 6c 6c 73 2e 70 6c 6f 74 28 66 61 63 65 e.basemap.\nax.=.cells.plot(face
22580 63 6f 6c 6f 72 3d 5c 22 6c 69 67 68 74 62 6c 75 65 5c 22 2c 20 61 6c 70 68 61 3d 30 2e 35 30 2c color=\"lightblue\",.alpha=0.50,
225a0 20 65 64 67 65 63 6f 6c 6f 72 3d 5c 22 63 6f 72 6e 73 69 6c 6b 5c 22 2c 20 6c 69 6e 65 77 69 64 .edgecolor=\"cornsilk\",.linewid
225c0 74 68 3d 32 29 5c 6e 61 64 64 5f 62 61 73 65 6d 61 70 28 61 78 29 5c 6e 61 78 2e 61 78 69 73 28 th=2)\nadd_basemap(ax)\nax.axis(
225e0 5c 22 6f 66 66 5c 22 29 5c 6e 6e 78 2e 64 72 61 77 28 5c 6e 20 20 20 20 64 65 6c 61 75 6e 61 79 \"off\")\nnx.draw(\n....delaunay
22600 5f 67 72 61 70 68 2c 5c 6e 20 20 20 20 70 6f 73 69 74 69 6f 6e 73 2c 5c 6e 20 20 20 20 61 78 3d _graph,\n....positions,\n....ax=
22620 61 78 2c 5c 6e 20 20 20 20 6e 6f 64 65 5f 73 69 7a 65 3d 32 2c 5c 6e 20 20 20 20 6e 6f 64 65 5f ax,\n....node_size=2,\n....node_
22640 63 6f 6c 6f 72 3d 5c 22 6b 5c 22 2c 5c 6e 20 20 20 20 65 64 67 65 5f 63 6f 6c 6f 72 3d 5c 22 6b color=\"k\",\n....edge_color=\"k
22660 5c 22 2c 5c 6e 20 20 20 20 61 6c 70 68 61 3d 30 2e 38 2c 5c 6e 29 5c 6e 70 6c 74 2e 73 68 6f 77 \",\n....alpha=0.8,\n)\nplt.show
22680 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
226a0 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":.{......
226c0 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",....
226e0 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",......."
22700 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
22720 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
22740 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
22760 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.......
22780 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"
227a0 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
227c0 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",....
227e0 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
22800 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
22820 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 39 2e 31 36 22 hon3",......."version":."3.9.16"
22840 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,..."
22860 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 24 0f nbformat_minor":.0.}PK........$.
22880 5a 56 3d 49 ba 83 97 0c 00 00 97 0c 00 00 1c 00 00 00 67 65 6f 73 70 61 74 69 61 6c 2f 70 6c 6f ZV=I..............geospatial/plo
228a0 74 5f 70 6f 69 6e 74 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 t_points.ipynb{..."cells":.[....
228c0 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",...
228e0 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,....
22900 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
22920 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
22940 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":.[.....
22960 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".......]
22980 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":
229a0 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":.{
229c0 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
229e0 23 20 47 72 61 70 68 73 20 66 72 6f 6d 20 67 65 6f 67 72 61 70 68 69 63 20 70 6f 69 6e 74 73 5c #.Graphs.from.geographic.points\
22a00 6e 5c 6e 54 68 69 73 20 65 78 61 6d 70 6c 65 20 73 68 6f 77 73 20 68 6f 77 20 74 6f 20 62 75 69 n\nThis.example.shows.how.to.bui
22a20 6c 64 20 61 20 67 72 61 70 68 20 66 72 6f 6d 20 61 20 73 65 74 20 6f 66 20 70 6f 69 6e 74 73 5c ld.a.graph.from.a.set.of.points\
22a40 6e 75 73 69 6e 67 20 50 79 53 41 4c 20 61 6e 64 20 67 65 6f 70 61 6e 64 61 73 2e 20 49 6e 20 74 nusing.PySAL.and.geopandas..In.t
22a60 68 69 73 20 65 78 61 6d 70 6c 65 2c 20 77 65 27 6c 6c 20 75 73 65 20 74 68 65 20 66 61 6d 6f 75 his.example,.we'll.use.the.famou
22a80 73 5c 6e 73 65 74 20 6f 66 20 63 68 6f 6c 65 72 61 20 63 61 73 65 73 20 61 74 20 74 68 65 20 42 s\nset.of.cholera.cases.at.the.B
22aa0 72 6f 61 64 20 53 74 72 65 65 74 20 50 75 6d 70 2c 20 72 65 63 6f 72 64 65 64 20 62 79 20 4a 6f road.Street.Pump,.recorded.by.Jo
22ac0 68 6e 20 53 6e 6f 77 20 69 6e 20 31 38 35 33 2e 5c 6e 54 68 65 20 6d 65 74 68 6f 64 73 20 73 68 hn.Snow.in.1853.\nThe.methods.sh
22ae0 6f 77 6e 20 68 65 72 65 20 63 61 6e 20 61 6c 73 6f 20 77 6f 72 6b 20 64 69 72 65 63 74 6c 79 20 own.here.can.also.work.directly.
22b00 77 69 74 68 20 70 6f 6c 79 67 6f 6e 61 6c 20 64 61 74 61 20 75 73 69 6e 67 20 74 68 65 69 72 5c with.polygonal.data.using.their\
22b20 6e 63 65 6e 74 72 6f 69 64 73 20 61 73 20 72 65 70 72 65 73 65 6e 74 61 74 69 76 65 20 70 6f 69 ncentroids.as.representative.poi
22b40 6e 74 73 2e 20 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 nts..\n".......].....},.....{...
22b60 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",......."
22b80 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
22ba0 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":
22bc0 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":
22be0 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":.[........."
22c00 66 72 6f 6d 20 6c 69 62 70 79 73 61 6c 20 69 6d 70 6f 72 74 20 77 65 69 67 68 74 73 2c 20 65 78 from.libpysal.import.weights,.ex
22c20 61 6d 70 6c 65 73 5c 6e 66 72 6f 6d 20 63 6f 6e 74 65 78 74 69 6c 79 20 69 6d 70 6f 72 74 20 61 amples\nfrom.contextily.import.a
22c40 64 64 5f 62 61 73 65 6d 61 70 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 dd_basemap\nimport.matplotlib.py
22c60 70 6c 6f 74 20 61 73 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 plot.as.plt\nimport.networkx.as.
22c80 6e 78 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 67 nx\nimport.numpy.as.np\nimport.g
22ca0 65 6f 70 61 6e 64 61 73 5c 6e 5c 6e 23 20 72 65 61 64 20 69 6e 20 65 78 61 6d 70 6c 65 20 64 61 eopandas\n\n#.read.in.example.da
22cc0 74 61 20 66 72 6f 6d 20 61 20 67 65 6f 70 61 63 6b 61 67 65 20 66 69 6c 65 2e 20 47 65 6f 70 61 ta.from.a.geopackage.file..Geopa
22ce0 63 6b 61 67 65 73 5c 6e 23 20 61 72 65 20 61 20 66 6f 72 6d 61 74 20 66 6f 72 20 73 74 6f 72 69 ckages\n#.are.a.format.for.stori
22d00 6e 67 20 67 65 6f 67 72 61 70 68 69 63 20 64 61 74 61 20 74 68 61 74 20 69 73 20 62 61 63 6b 65 ng.geographic.data.that.is.backe
22d20 64 5c 6e 23 20 62 79 20 73 71 6c 69 74 65 2e 20 67 65 6f 70 61 6e 64 61 73 20 72 65 61 64 73 20 d\n#.by.sqlite..geopandas.reads.
22d40 64 61 74 61 20 72 65 6c 79 69 6e 67 20 6f 6e 20 74 68 65 20 66 69 6f 6e 61 20 70 61 63 6b 61 67 data.relying.on.the.fiona.packag
22d60 65 2c 5c 6e 23 20 70 72 6f 76 69 64 69 6e 67 20 61 20 68 69 67 68 2d 6c 65 76 65 6c 20 70 61 6e e,\n#.providing.a.high-level.pan
22d80 64 61 73 2d 73 74 79 6c 65 20 69 6e 74 65 72 66 61 63 65 20 74 6f 20 67 65 6f 67 72 61 70 68 69 das-style.interface.to.geographi
22da0 63 20 64 61 74 61 2e 5c 6e 63 61 73 65 73 20 3d 20 67 65 6f 70 61 6e 64 61 73 2e 72 65 61 64 5f c.data.\ncases.=.geopandas.read_
22dc0 66 69 6c 65 28 5c 22 63 68 6f 6c 65 72 61 5f 63 61 73 65 73 2e 67 70 6b 67 5c 22 29 5c 6e 5c 6e file(\"cholera_cases.gpkg\")\n\n
22de0 23 20 63 6f 6e 73 74 72 75 63 74 20 74 68 65 20 61 72 72 61 79 20 6f 66 20 63 6f 6f 72 64 69 6e #.construct.the.array.of.coordin
22e00 61 74 65 73 20 66 6f 72 20 74 68 65 20 63 65 6e 74 72 6f 69 64 5c 6e 63 6f 6f 72 64 69 6e 61 74 ates.for.the.centroid\ncoordinat
22e20 65 73 20 3d 20 6e 70 2e 63 6f 6c 75 6d 6e 5f 73 74 61 63 6b 28 28 63 61 73 65 73 2e 67 65 6f 6d es.=.np.column_stack((cases.geom
22e40 65 74 72 79 2e 78 2c 20 63 61 73 65 73 2e 67 65 6f 6d 65 74 72 79 2e 79 29 29 5c 6e 5c 6e 23 20 etry.x,.cases.geometry.y))\n\n#.
22e60 63 6f 6e 73 74 72 75 63 74 20 74 77 6f 20 64 69 66 66 65 72 65 6e 74 20 6b 69 6e 64 73 20 6f 66 construct.two.different.kinds.of
22e80 20 67 72 61 70 68 73 3a 5c 6e 5c 6e 23 23 20 33 2d 6e 65 61 72 65 73 74 20 6e 65 69 67 68 62 6f .graphs:\n\n##.3-nearest.neighbo
22ea0 72 20 67 72 61 70 68 2c 20 6d 65 61 6e 69 6e 67 20 74 68 61 74 20 70 6f 69 6e 74 73 20 61 72 65 r.graph,.meaning.that.points.are
22ec0 20 63 6f 6e 6e 65 63 74 65 64 5c 6e 23 23 20 74 6f 20 74 68 65 20 74 68 72 65 65 20 63 6c 6f 73 .connected\n##.to.the.three.clos
22ee0 65 73 74 20 6f 74 68 65 72 20 70 6f 69 6e 74 73 2e 20 54 68 69 73 20 6d 65 61 6e 73 20 65 76 65 est.other.points..This.means.eve
22f00 72 79 20 70 6f 69 6e 74 5c 6e 23 23 20 77 69 6c 6c 20 68 61 76 65 20 65 78 61 63 74 6c 79 20 74 ry.point\n##.will.have.exactly.t
22f20 68 72 65 65 20 6e 65 69 67 68 62 6f 72 73 2e 5c 6e 6b 6e 6e 33 20 3d 20 77 65 69 67 68 74 73 2e hree.neighbors.\nknn3.=.weights.
22f40 4b 4e 4e 2e 66 72 6f 6d 5f 64 61 74 61 66 72 61 6d 65 28 63 61 73 65 73 2c 20 6b 3d 33 29 5c 6e KNN.from_dataframe(cases,.k=3)\n
22f60 5c 6e 23 23 20 54 68 65 20 35 30 2d 6d 65 74 65 72 20 64 69 73 74 61 6e 63 65 20 62 61 6e 64 20 \n##.The.50-meter.distance.band.
22f80 67 72 61 70 68 20 77 69 6c 6c 20 63 6f 6e 6e 65 63 74 20 61 6c 6c 20 70 61 69 72 73 20 6f 66 20 graph.will.connect.all.pairs.of.
22fa0 70 6f 69 6e 74 73 5c 6e 23 23 20 74 68 61 74 20 61 72 65 20 77 69 74 68 69 6e 20 35 30 20 6d 65 points\n##.that.are.within.50.me
22fc0 74 65 72 73 20 66 72 6f 6d 20 6f 6e 65 20 61 6e 6f 74 68 65 72 2e 20 54 68 69 73 20 6d 65 61 6e ters.from.one.another..This.mean
22fe0 73 20 74 68 61 74 20 70 6f 69 6e 74 73 5c 6e 23 23 20 6d 61 79 20 68 61 76 65 20 64 69 66 66 65 s.that.points\n##.may.have.diffe
23000 72 65 6e 74 20 6e 75 6d 62 65 72 73 20 6f 66 20 6e 65 69 67 68 62 6f 72 73 2e 5c 6e 64 69 73 74 rent.numbers.of.neighbors.\ndist
23020 20 3d 20 77 65 69 67 68 74 73 2e 44 69 73 74 61 6e 63 65 42 61 6e 64 2e 66 72 6f 6d 5f 61 72 72 .=.weights.DistanceBand.from_arr
23040 61 79 28 63 6f 6f 72 64 69 6e 61 74 65 73 2c 20 74 68 72 65 73 68 6f 6c 64 3d 35 30 29 5c 6e 5c ay(coordinates,.threshold=50)\n\
23060 6e 23 20 54 68 65 6e 2c 20 77 65 20 63 61 6e 20 63 6f 6e 76 65 72 74 20 74 68 65 20 67 72 61 70 n#.Then,.we.can.convert.the.grap
23080 68 20 74 6f 20 6e 65 74 77 6f 72 6b 78 20 6f 62 6a 65 63 74 20 75 73 69 6e 67 20 74 68 65 5c 6e h.to.networkx.object.using.the\n
230a0 23 20 2e 74 6f 5f 6e 65 74 77 6f 72 6b 78 28 29 20 6d 65 74 68 6f 64 2e 5c 6e 6b 6e 6e 5f 67 72 #..to_networkx().method.\nknn_gr
230c0 61 70 68 20 3d 20 6b 6e 6e 33 2e 74 6f 5f 6e 65 74 77 6f 72 6b 78 28 29 5c 6e 64 69 73 74 5f 67 aph.=.knn3.to_networkx()\ndist_g
230e0 72 61 70 68 20 3d 20 64 69 73 74 2e 74 6f 5f 6e 65 74 77 6f 72 6b 78 28 29 5c 6e 5c 6e 23 20 54 raph.=.dist.to_networkx()\n\n#.T
23100 6f 20 70 6c 6f 74 20 77 69 74 68 20 6e 65 74 77 6f 72 6b 78 2c 20 77 65 20 6e 65 65 64 20 74 6f o.plot.with.networkx,.we.need.to
23120 20 6d 65 72 67 65 20 74 68 65 20 6e 6f 64 65 73 20 62 61 63 6b 20 74 6f 5c 6e 23 20 74 68 65 69 .merge.the.nodes.back.to\n#.thei
23140 72 20 70 6f 73 69 74 69 6f 6e 73 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 70 6c 6f 74 20 69 6e 20 r.positions.in.order.to.plot.in.
23160 6e 65 74 77 6f 72 6b 78 5c 6e 70 6f 73 69 74 69 6f 6e 73 20 3d 20 64 69 63 74 28 7a 69 70 28 6b networkx\npositions.=.dict(zip(k
23180 6e 6e 5f 67 72 61 70 68 2e 6e 6f 64 65 73 2c 20 63 6f 6f 72 64 69 6e 61 74 65 73 29 29 5c 6e 5c nn_graph.nodes,.coordinates))\n\
231a0 6e 23 20 70 6c 6f 74 20 77 69 74 68 20 61 20 6e 69 63 65 20 62 61 73 65 6d 61 70 5c 6e 66 2c 20 n#.plot.with.a.nice.basemap\nf,.
231c0 61 78 20 3d 20 70 6c 74 2e 73 75 62 70 6c 6f 74 73 28 31 2c 20 32 2c 20 66 69 67 73 69 7a 65 3d ax.=.plt.subplots(1,.2,.figsize=
231e0 28 38 2c 20 34 29 29 5c 6e 66 6f 72 20 69 2c 20 66 61 63 65 74 20 69 6e 20 65 6e 75 6d 65 72 61 (8,.4))\nfor.i,.facet.in.enumera
23200 74 65 28 61 78 29 3a 5c 6e 20 20 20 20 63 61 73 65 73 2e 70 6c 6f 74 28 6d 61 72 6b 65 72 3d 5c te(ax):\n....cases.plot(marker=\
23220 22 2e 5c 22 2c 20 63 6f 6c 6f 72 3d 5c 22 6f 72 61 6e 67 65 72 65 64 5c 22 2c 20 61 78 3d 66 61 ".\",.color=\"orangered\",.ax=fa
23240 63 65 74 29 5c 6e 20 20 20 20 61 64 64 5f 62 61 73 65 6d 61 70 28 66 61 63 65 74 29 5c 6e 20 20 cet)\n....add_basemap(facet)\n..
23260 20 20 66 61 63 65 74 2e 73 65 74 5f 74 69 74 6c 65 28 28 5c 22 4b 4e 4e 2d 33 5c 22 2c 20 5c 22 ..facet.set_title((\"KNN-3\",.\"
23280 35 30 2d 6d 65 74 65 72 20 44 69 73 74 61 6e 63 65 20 42 61 6e 64 5c 22 29 5b 69 5d 29 5c 6e 20 50-meter.Distance.Band\")[i])\n.
232a0 20 20 20 66 61 63 65 74 2e 61 78 69 73 28 5c 22 6f 66 66 5c 22 29 5c 6e 6e 78 2e 64 72 61 77 28 ...facet.axis(\"off\")\nnx.draw(
232c0 6b 6e 6e 5f 67 72 61 70 68 2c 20 70 6f 73 69 74 69 6f 6e 73 2c 20 61 78 3d 61 78 5b 30 5d 2c 20 knn_graph,.positions,.ax=ax[0],.
232e0 6e 6f 64 65 5f 73 69 7a 65 3d 35 2c 20 6e 6f 64 65 5f 63 6f 6c 6f 72 3d 5c 22 62 5c 22 29 5c 6e node_size=5,.node_color=\"b\")\n
23300 6e 78 2e 64 72 61 77 28 64 69 73 74 5f 67 72 61 70 68 2c 20 70 6f 73 69 74 69 6f 6e 73 2c 20 61 nx.draw(dist_graph,.positions,.a
23320 78 3d 61 78 5b 31 5d 2c 20 6e 6f 64 65 5f 73 69 7a 65 3d 35 2c 20 6e 6f 64 65 5f 63 6f 6c 6f 72 x=ax[1],.node_size=5,.node_color
23340 3d 5c 22 62 5c 22 29 5c 6e 70 6c 74 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 =\"b\")\nplt.show()".......]....
23360 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 72 .}...],..."metadata":.{....."ker
23380 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 22 nelspec":.{......."display_name"
233a0 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 20 :."Python.3",......."language":.
233c0 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 33 "python",......."name":."python3
233e0 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 0a ".....},....."language_info":.{.
23400 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 20 ......"codemirror_mode":.{......
23420 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 76 ..."name":."ipython",........."v
23440 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 5f ersion":.3.......},......."file_
23460 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 79 extension":.".py",......."mimety
23480 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 6d pe":."text/x-python",......."nam
234a0 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 65 e":."python",......."nbconvert_e
234c0 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 65 xporter":."python",......."pygme
234e0 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 76 nts_lexer":."ipython3",......."v
23500 65 72 73 69 6f 6e 22 3a 20 22 33 2e 39 2e 31 36 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 ersion":."3.9.16".....}...},..."
23520 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"
23540 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 0b 0f 5a 56 db a4 c4 17 94 0c 00 00 94 0c 00 00 16 :.0.}PK..........ZV.............
23560 00 00 00 67 72 61 70 68 2f 70 6c 6f 74 5f 72 6f 67 65 74 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 ...graph/plot_roget.ipynb{..."ce
23580 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":
235a0 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"
235c0 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":.{.....
235e0 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.......},.
23600 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
23620 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
23640 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".......].....},.....{......."
23660 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
23680 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":.[.
236a0 20 20 20 20 20 20 20 20 22 5c 6e 23 20 52 6f 67 65 74 5c 6e 5c 6e 42 75 69 6c 64 20 61 20 64 69 ........"\n#.Roget\n\nBuild.a.di
236c0 72 65 63 74 65 64 20 67 72 61 70 68 20 6f 66 20 31 30 32 32 20 63 61 74 65 67 6f 72 69 65 73 20 rected.graph.of.1022.categories.
236e0 61 6e 64 20 35 30 37 35 20 63 72 6f 73 73 2d 72 65 66 65 72 65 6e 63 65 73 20 61 73 20 64 65 66 and.5075.cross-references.as.def
23700 69 6e 65 64 5c 6e 69 6e 20 74 68 65 20 31 38 37 39 20 76 65 72 73 69 6f 6e 20 6f 66 20 52 6f 67 ined\nin.the.1879.version.of.Rog
23720 65 74 27 73 20 54 68 65 73 61 75 72 75 73 2e 20 54 68 69 73 20 65 78 61 6d 70 6c 65 20 69 73 20 et's.Thesaurus..This.example.is.
23740 64 65 73 63 72 69 62 65 64 20 69 6e 20 53 65 63 74 69 6f 6e 5c 6e 31 2e 32 20 6f 66 5c 6e 5c 6e described.in.Section\n1.2.of\n\n
23760 20 20 20 20 44 6f 6e 61 6c 64 20 45 2e 20 4b 6e 75 74 68 2c 20 5c 22 54 68 65 20 53 74 61 6e 66 ....Donald.E..Knuth,.\"The.Stanf
23780 6f 72 64 20 47 72 61 70 68 42 61 73 65 3a 20 41 20 50 6c 61 74 66 6f 72 6d 20 66 6f 72 20 43 6f ord.GraphBase:.A.Platform.for.Co
237a0 6d 62 69 6e 61 74 6f 72 69 61 6c 5c 6e 20 20 20 20 43 6f 6d 70 75 74 69 6e 67 5c 22 2c 20 41 43 mbinatorial\n....Computing\",.AC
237c0 4d 20 50 72 65 73 73 2c 20 4e 65 77 20 59 6f 72 6b 2c 20 31 39 39 33 2e 5c 6e 20 20 20 20 68 74 M.Press,.New.York,.1993.\n....ht
237e0 74 70 3a 2f 2f 77 77 77 2d 63 73 2d 66 61 63 75 6c 74 79 2e 73 74 61 6e 66 6f 72 64 2e 65 64 75 tp://www-cs-faculty.stanford.edu
23800 2f 7e 6b 6e 75 74 68 2f 73 67 62 2e 68 74 6d 6c 5c 6e 5c 6e 4e 6f 74 65 20 74 68 61 74 20 6f 6e /~knuth/sgb.html\n\nNote.that.on
23820 65 20 6f 66 20 74 68 65 20 35 30 37 35 20 63 72 6f 73 73 20 72 65 66 65 72 65 6e 63 65 73 20 69 e.of.the.5075.cross.references.i
23840 73 20 61 20 73 65 6c 66 20 6c 6f 6f 70 20 79 65 74 20 69 74 20 69 73 20 69 6e 63 6c 75 64 65 64 s.a.self.loop.yet.it.is.included
23860 20 69 6e 5c 6e 74 68 65 20 67 72 61 70 68 20 62 75 69 6c 74 20 68 65 72 65 20 62 65 63 61 75 73 .in\nthe.graph.built.here.becaus
23880 65 20 74 68 65 20 73 74 61 6e 64 61 72 64 20 6e 65 74 77 6f 72 6b 78 20 60 44 69 47 72 61 70 68 e.the.standard.networkx.`DiGraph
238a0 60 20 63 6c 61 73 73 20 61 6c 6c 6f 77 73 20 73 65 6c 66 5c 6e 6c 6f 6f 70 73 2e 20 20 28 63 66 `.class.allows.self\nloops...(cf
238c0 2e 20 34 30 30 70 75 6e 67 65 6e 63 79 3a 34 30 30 20 34 30 31 20 34 30 33 20 34 30 35 29 2e 5c ..400pungency:400.401.403.405).\
238e0 6e 5c 6e 54 68 65 20 64 61 74 61 20 66 69 6c 65 20 63 61 6e 20 62 65 20 66 6f 75 6e 64 20 61 74 n\nThe.data.file.can.be.found.at
23900 3a 5c 6e 5c 6e 2d 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6e 65 74 77 6f 72 :\n\n-.https://github.com/networ
23920 6b 78 2f 6e 65 74 77 6f 72 6b 78 2f 62 6c 6f 62 2f 6d 61 69 6e 2f 65 78 61 6d 70 6c 65 73 2f 67 kx/networkx/blob/main/examples/g
23940 72 61 70 68 2f 72 6f 67 65 74 5f 64 61 74 2e 74 78 74 2e 67 7a 5c 6e 22 0a 20 20 20 20 20 20 5d raph/roget_dat.txt.gz\n".......]
23960 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":
23980 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"
239a0 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":.{.....
239c0 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.......},.
239e0 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
23a00 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 69 6d 70 6f 72 74 20 67 7a 69 70 5c 6e 69 6d 70 ce":.[........."import.gzip\nimp
23a20 6f 72 74 20 72 65 5c 6e 69 6d 70 6f 72 74 20 73 79 73 5c 6e 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 ort.re\nimport.sys\n\nimport.mat
23a40 70 6c 6f 74 6c 69 62 2e 70 79 70 6c 6f 74 20 61 73 20 70 6c 74 5c 6e 69 6d 70 6f 72 74 20 6e 65 plotlib.pyplot.as.plt\nimport.ne
23a60 74 77 6f 72 6b 78 20 61 73 20 6e 78 5c 6e 5c 6e 5c 6e 64 65 66 20 72 6f 67 65 74 5f 67 72 61 70 tworkx.as.nx\n\n\ndef.roget_grap
23a80 68 28 29 3a 5c 6e 20 20 20 20 5c 22 5c 22 5c 22 52 65 74 75 72 6e 20 74 68 65 20 74 68 65 73 61 h():\n....\"\"\"Return.the.thesa
23aa0 75 72 75 73 20 67 72 61 70 68 20 66 72 6f 6d 20 74 68 65 20 72 6f 67 65 74 2e 64 61 74 20 65 78 urus.graph.from.the.roget.dat.ex
23ac0 61 6d 70 6c 65 20 69 6e 5c 6e 20 20 20 20 74 68 65 20 53 74 61 6e 66 6f 72 64 20 47 72 61 70 68 ample.in\n....the.Stanford.Graph
23ae0 20 42 61 73 65 2e 5c 6e 20 20 20 20 5c 22 5c 22 5c 22 5c 6e 20 20 20 20 23 20 6f 70 65 6e 20 66 .Base.\n....\"\"\"\n....#.open.f
23b00 69 6c 65 20 72 6f 67 65 74 5f 64 61 74 2e 74 78 74 2e 67 7a 5c 6e 20 20 20 20 66 68 20 3d 20 67 ile.roget_dat.txt.gz\n....fh.=.g
23b20 7a 69 70 2e 6f 70 65 6e 28 5c 22 72 6f 67 65 74 5f 64 61 74 2e 74 78 74 2e 67 7a 5c 22 2c 20 5c zip.open(\"roget_dat.txt.gz\",.\
23b40 22 72 5c 22 29 5c 6e 5c 6e 20 20 20 20 47 20 3d 20 6e 78 2e 44 69 47 72 61 70 68 28 29 5c 6e 5c "r\")\n\n....G.=.nx.DiGraph()\n\
23b60 6e 20 20 20 20 66 6f 72 20 6c 69 6e 65 20 69 6e 20 66 68 2e 72 65 61 64 6c 69 6e 65 73 28 29 3a n....for.line.in.fh.readlines():
23b80 5c 6e 20 20 20 20 20 20 20 20 6c 69 6e 65 20 3d 20 6c 69 6e 65 2e 64 65 63 6f 64 65 28 29 5c 6e \n........line.=.line.decode()\n
23ba0 20 20 20 20 20 20 20 20 69 66 20 6c 69 6e 65 2e 73 74 61 72 74 73 77 69 74 68 28 5c 22 2a 5c 22 ........if.line.startswith(\"*\"
23bc0 29 3a 20 20 23 20 73 6b 69 70 20 63 6f 6d 6d 65 6e 74 73 5c 6e 20 20 20 20 20 20 20 20 20 20 20 ):..#.skip.comments\n...........
23be0 20 63 6f 6e 74 69 6e 75 65 5c 6e 20 20 20 20 20 20 20 20 69 66 20 6c 69 6e 65 2e 73 74 61 72 74 .continue\n........if.line.start
23c00 73 77 69 74 68 28 5c 22 20 5c 22 29 3a 20 20 23 20 74 68 69 73 20 69 73 20 61 20 63 6f 6e 74 69 swith(\".\"):..#.this.is.a.conti
23c20 6e 75 61 74 69 6f 6e 20 6c 69 6e 65 2c 20 61 70 70 65 6e 64 5c 6e 20 20 20 20 20 20 20 20 20 20 nuation.line,.append\n..........
23c40 20 20 6c 69 6e 65 20 3d 20 6f 6c 64 6c 69 6e 65 20 2b 20 6c 69 6e 65 5c 6e 20 20 20 20 20 20 20 ..line.=.oldline.+.line\n.......
23c60 20 69 66 20 6c 69 6e 65 2e 65 6e 64 73 77 69 74 68 28 5c 22 5c 5c 5c 5c 5c 5c 6e 5c 22 29 3a 20 .if.line.endswith(\"\\\\\\n\"):.
23c80 20 23 20 63 6f 6e 74 69 6e 75 61 74 69 6f 6e 20 6c 69 6e 65 2c 20 62 75 66 66 65 72 2c 20 67 6f .#.continuation.line,.buffer,.go
23ca0 74 6f 20 6e 65 78 74 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 6f 6c 64 6c 69 6e 65 20 3d 20 6c to.next\n............oldline.=.l
23cc0 69 6e 65 2e 73 74 72 69 70 28 5c 22 5c 5c 5c 5c 5c 5c 6e 5c 22 29 5c 6e 20 20 20 20 20 20 20 20 ine.strip(\"\\\\\\n\")\n........
23ce0 20 20 20 20 63 6f 6e 74 69 6e 75 65 5c 6e 5c 6e 20 20 20 20 20 20 20 20 28 68 65 61 64 6e 61 6d ....continue\n\n........(headnam
23d00 65 2c 20 74 61 69 6c 73 29 20 3d 20 6c 69 6e 65 2e 73 70 6c 69 74 28 5c 22 3a 5c 22 29 5c 6e 5c e,.tails).=.line.split(\":\")\n\
23d20 6e 20 20 20 20 20 20 20 20 23 20 68 65 61 64 5c 6e 20 20 20 20 20 20 20 20 6e 75 6d 66 69 6e 64 n........#.head\n........numfind
23d40 20 3d 20 72 65 2e 63 6f 6d 70 69 6c 65 28 72 5c 22 5e 5c 5c 64 2b 5c 22 29 20 20 23 20 72 65 20 .=.re.compile(r\"^\\d+\")..#.re.
23d60 74 6f 20 66 69 6e 64 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 74 68 69 73 20 77 6f 72 64 5c to.find.the.number.of.this.word\
23d80 6e 20 20 20 20 20 20 20 20 68 65 61 64 20 3d 20 6e 75 6d 66 69 6e 64 2e 66 69 6e 64 61 6c 6c 28 n........head.=.numfind.findall(
23da0 68 65 61 64 6e 61 6d 65 29 5b 30 5d 20 20 23 20 67 65 74 20 74 68 65 20 6e 75 6d 62 65 72 5c 6e headname)[0]..#.get.the.number\n
23dc0 5c 6e 20 20 20 20 20 20 20 20 47 2e 61 64 64 5f 6e 6f 64 65 28 68 65 61 64 29 5c 6e 5c 6e 20 20 \n........G.add_node(head)\n\n..
23de0 20 20 20 20 20 20 66 6f 72 20 74 61 69 6c 20 69 6e 20 74 61 69 6c 73 2e 73 70 6c 69 74 28 29 3a ......for.tail.in.tails.split():
23e00 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 68 65 61 64 20 3d 3d 20 74 61 69 6c 3a 5c 6e \n............if.head.==.tail:\n
23e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 69 6e 74 28 5c 22 73 6b 69 70 70 69 6e 67 ................print(\"skipping
23e40 20 73 65 6c 66 20 6c 6f 6f 70 5c 22 2c 20 68 65 61 64 2c 20 74 61 69 6c 2c 20 66 69 6c 65 3d 73 .self.loop\",.head,.tail,.file=s
23e60 79 73 2e 73 74 64 65 72 72 29 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 47 2e 61 64 64 5f 65 64 ys.stderr)\n............G.add_ed
23e80 67 65 28 68 65 61 64 2c 20 74 61 69 6c 29 5c 6e 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 47 5c 6e ge(head,.tail)\n\n....return.G\n
23ea0 5c 6e 5c 6e 47 20 3d 20 72 6f 67 65 74 5f 67 72 61 70 68 28 29 5c 6e 70 72 69 6e 74 28 5c 22 4c \n\nG.=.roget_graph()\nprint(\"L
23ec0 6f 61 64 65 64 20 72 6f 67 65 74 5f 64 61 74 2e 74 78 74 20 63 6f 6e 74 61 69 6e 69 6e 67 20 31 oaded.roget_dat.txt.containing.1
23ee0 30 32 32 20 63 61 74 65 67 6f 72 69 65 73 2e 5c 22 29 5c 6e 70 72 69 6e 74 28 47 29 5c 6e 55 47 022.categories.\")\nprint(G)\nUG
23f00 20 3d 20 47 2e 74 6f 5f 75 6e 64 69 72 65 63 74 65 64 28 29 5c 6e 70 72 69 6e 74 28 6e 78 2e 6e .=.G.to_undirected()\nprint(nx.n
23f20 75 6d 62 65 72 5f 63 6f 6e 6e 65 63 74 65 64 5f 63 6f 6d 70 6f 6e 65 6e 74 73 28 55 47 29 2c 20 umber_connected_components(UG),.
23f40 5c 22 63 6f 6e 6e 65 63 74 65 64 20 63 6f 6d 70 6f 6e 65 6e 74 73 5c 22 29 5c 6e 5c 6e 6f 70 74 \"connected.components\")\n\nopt
23f60 69 6f 6e 73 20 3d 20 7b 5c 6e 20 20 20 20 5c 22 6e 6f 64 65 5f 63 6f 6c 6f 72 5c 22 3a 20 5c 22 ions.=.{\n....\"node_color\":.\"
23f80 62 6c 61 63 6b 5c 22 2c 5c 6e 20 20 20 20 5c 22 6e 6f 64 65 5f 73 69 7a 65 5c 22 3a 20 31 2c 5c black\",\n....\"node_size\":.1,\
23fa0 6e 20 20 20 20 5c 22 65 64 67 65 5f 63 6f 6c 6f 72 5c 22 3a 20 5c 22 67 72 61 79 5c 22 2c 5c 6e n....\"edge_color\":.\"gray\",\n
23fc0 20 20 20 20 5c 22 6c 69 6e 65 77 69 64 74 68 73 5c 22 3a 20 30 2c 5c 6e 20 20 20 20 5c 22 77 69 ....\"linewidths\":.0,\n....\"wi
23fe0 64 74 68 5c 22 3a 20 30 2e 31 2c 5c 6e 7d 5c 6e 6e 78 2e 64 72 61 77 5f 63 69 72 63 75 6c 61 72 dth\":.0.1,\n}\nnx.draw_circular
24000 28 55 47 2c 20 2a 2a 6f 70 74 69 6f 6e 73 29 5c 6e 70 6c 74 2e 73 68 6f 77 28 29 22 0a 20 20 20 (UG,.**options)\nplt.show()"....
24020 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":.{.
24040 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
24060 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
24080 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":.
240a0 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
240c0 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":
240e0 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",...
24100 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.......},.....
24120 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",......
24140 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",...
24160 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
24180 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",.....
241a0 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",.
241c0 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 39 2e 31 36 22 0a 20 20 20 20 7d 0a ......"version":."3.9.16".....}.
241e0 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
24200 74 5f 6d 69 6e 6f 72 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 0c 0f 5a 56 83 58 4c 00 ae t_minor":.0.}PK..........ZV.XL..
24220 0e 00 00 ae 0e 00 00 16 00 00 00 67 72 61 70 68 2f 70 6c 6f 74 5f 77 6f 72 64 73 2e 69 70 79 6e ...........graph/plot_words.ipyn
24240 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
24260 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
24280 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"
242a0 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..
242c0 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":.[],....
242e0 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
24300 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".......].....},.....{
24320 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",.
24340 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
24360 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 57 6f 72 64 73 2f 4c 61 64 64 65 rce":.[........."\n#.Words/Ladde
24380 72 20 47 72 61 70 68 5c 6e 5c 6e 47 65 6e 65 72 61 74 65 20 20 61 6e 20 75 6e 64 69 72 65 63 74 r.Graph\n\nGenerate..an.undirect
243a0 65 64 20 67 72 61 70 68 20 6f 76 65 72 20 74 68 65 20 35 37 35 37 20 35 2d 6c 65 74 74 65 72 20 ed.graph.over.the.5757.5-letter.
243c0 77 6f 72 64 73 20 69 6e 20 74 68 65 20 64 61 74 61 66 69 6c 65 5c 6e 60 77 6f 72 64 73 5f 64 61 words.in.the.datafile\n`words_da
243e0 74 2e 74 78 74 2e 67 7a 60 2e 20 20 54 77 6f 20 77 6f 72 64 73 20 61 72 65 20 63 6f 6e 6e 65 63 t.txt.gz`...Two.words.are.connec
24400 74 65 64 20 62 79 20 61 6e 20 65 64 67 65 20 69 66 20 74 68 65 79 20 64 69 66 66 65 72 20 69 6e ted.by.an.edge.if.they.differ.in
24420 20 6f 6e 65 5c 6e 6c 65 74 74 65 72 2c 20 72 65 73 75 6c 74 69 6e 67 20 69 6e 20 31 34 2c 31 33 .one\nletter,.resulting.in.14,13
24440 35 20 65 64 67 65 73 2e 20 54 68 69 73 20 65 78 61 6d 70 6c 65 20 69 73 20 64 65 73 63 72 69 62 5.edges..This.example.is.describ
24460 65 64 20 69 6e 20 53 65 63 74 69 6f 6e 20 31 2e 31 20 6f 66 5c 6e 5c 6e 20 20 20 20 44 6f 6e 61 ed.in.Section.1.1.of\n\n....Dona
24480 6c 64 20 45 2e 20 4b 6e 75 74 68 2c 20 5c 22 54 68 65 20 53 74 61 6e 66 6f 72 64 20 47 72 61 70 ld.E..Knuth,.\"The.Stanford.Grap
244a0 68 42 61 73 65 3a 20 41 20 50 6c 61 74 66 6f 72 6d 20 66 6f 72 20 43 6f 6d 62 69 6e 61 74 6f 72 hBase:.A.Platform.for.Combinator
244c0 69 61 6c 5c 6e 20 20 20 20 43 6f 6d 70 75 74 69 6e 67 5c 22 2c 20 41 43 4d 20 50 72 65 73 73 2c ial\n....Computing\",.ACM.Press,
244e0 20 4e 65 77 20 59 6f 72 6b 2c 20 31 39 39 33 2e 5c 6e 20 20 20 20 68 74 74 70 3a 2f 2f 77 77 77 .New.York,.1993.\n....http://www
24500 2d 63 73 2d 66 61 63 75 6c 74 79 2e 73 74 61 6e 66 6f 72 64 2e 65 64 75 2f 7e 6b 6e 75 74 68 2f -cs-faculty.stanford.edu/~knuth/
24520 73 67 62 2e 68 74 6d 6c 5c 6e 5c 6e 54 68 65 20 64 61 74 61 20 66 69 6c 65 20 63 61 6e 20 62 65 sgb.html\n\nThe.data.file.can.be
24540 20 66 6f 75 6e 64 20 61 74 3a 5c 6e 5c 6e 2d 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 .found.at:\n\n-.https://github.c
24560 6f 6d 2f 6e 65 74 77 6f 72 6b 78 2f 6e 65 74 77 6f 72 6b 78 2f 62 6c 6f 62 2f 6d 61 69 6e 2f 65 om/networkx/networkx/blob/main/e
24580 78 61 6d 70 6c 65 73 2f 67 72 61 70 68 2f 77 6f 72 64 73 5f 64 61 74 2e 74 78 74 2e 67 7a 5c 6e xamples/graph/words_dat.txt.gz\n
245a0 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
245c0 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
245e0 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
24600 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.
24620 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":.[],...
24640 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 72 74 20 ...."source":.[........."import.
24660 67 7a 69 70 5c 6e 66 72 6f 6d 20 73 74 72 69 6e 67 20 69 6d 70 6f 72 74 20 61 73 63 69 69 5f 6c gzip\nfrom.string.import.ascii_l
24680 6f 77 65 72 63 61 73 65 20 61 73 20 6c 6f 77 65 72 63 61 73 65 5c 6e 5c 6e 69 6d 70 6f 72 74 20 owercase.as.lowercase\n\nimport.
246a0 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 70 6c 6f 74 20 61 73 20 70 6c 74 5c 6e 69 6d 70 6f 72 74 matplotlib.pyplot.as.plt\nimport
246c0 20 6e 65 74 77 6f 72 6b 78 20 61 73 20 6e 78 5c 6e 5c 6e 5c 6e 64 65 66 20 67 65 6e 65 72 61 74 .networkx.as.nx\n\n\ndef.generat
246e0 65 5f 67 72 61 70 68 28 77 6f 72 64 73 29 3a 5c 6e 20 20 20 20 47 20 3d 20 6e 78 2e 47 72 61 70 e_graph(words):\n....G.=.nx.Grap
24700 68 28 6e 61 6d 65 3d 5c 22 77 6f 72 64 73 5c 22 29 5c 6e 20 20 20 20 6c 6f 6f 6b 75 70 20 3d 20 h(name=\"words\")\n....lookup.=.
24720 7b 63 3a 20 6c 6f 77 65 72 63 61 73 65 2e 69 6e 64 65 78 28 63 29 20 66 6f 72 20 63 20 69 6e 20 {c:.lowercase.index(c).for.c.in.
24740 6c 6f 77 65 72 63 61 73 65 7d 5c 6e 5c 6e 20 20 20 20 64 65 66 20 65 64 69 74 5f 64 69 73 74 61 lowercase}\n\n....def.edit_dista
24760 6e 63 65 5f 6f 6e 65 28 77 6f 72 64 29 3a 5c 6e 20 20 20 20 20 20 20 20 66 6f 72 20 69 20 69 6e nce_one(word):\n........for.i.in
24780 20 72 61 6e 67 65 28 6c 65 6e 28 77 6f 72 64 29 29 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 .range(len(word)):\n............
247a0 6c 65 66 74 2c 20 63 2c 20 72 69 67 68 74 20 3d 20 77 6f 72 64 5b 30 3a 69 5d 2c 20 77 6f 72 64 left,.c,.right.=.word[0:i],.word
247c0 5b 69 5d 2c 20 77 6f 72 64 5b 69 20 2b 20 31 20 3a 5d 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 [i],.word[i.+.1.:]\n............
247e0 6a 20 3d 20 6c 6f 6f 6b 75 70 5b 63 5d 20 20 23 20 6c 6f 77 65 72 63 61 73 65 2e 69 6e 64 65 78 j.=.lookup[c]..#.lowercase.index
24800 28 63 29 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 63 63 20 69 6e 20 6c 6f 77 65 72 (c)\n............for.cc.in.lower
24820 63 61 73 65 5b 6a 20 2b 20 31 20 3a 5d 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 case[j.+.1.:]:\n................
24840 79 69 65 6c 64 20 6c 65 66 74 20 2b 20 63 63 20 2b 20 72 69 67 68 74 5c 6e 5c 6e 20 20 20 20 63 yield.left.+.cc.+.right\n\n....c
24860 61 6e 64 67 65 6e 20 3d 20 28 5c 6e 20 20 20 20 20 20 20 20 28 77 6f 72 64 2c 20 63 61 6e 64 29 andgen.=.(\n........(word,.cand)
24880 5c 6e 20 20 20 20 20 20 20 20 66 6f 72 20 77 6f 72 64 20 69 6e 20 73 6f 72 74 65 64 28 77 6f 72 \n........for.word.in.sorted(wor
248a0 64 73 29 5c 6e 20 20 20 20 20 20 20 20 66 6f 72 20 63 61 6e 64 20 69 6e 20 65 64 69 74 5f 64 69 ds)\n........for.cand.in.edit_di
248c0 73 74 61 6e 63 65 5f 6f 6e 65 28 77 6f 72 64 29 5c 6e 20 20 20 20 20 20 20 20 69 66 20 63 61 6e stance_one(word)\n........if.can
248e0 64 20 69 6e 20 77 6f 72 64 73 5c 6e 20 20 20 20 29 5c 6e 20 20 20 20 47 2e 61 64 64 5f 6e 6f 64 d.in.words\n....)\n....G.add_nod
24900 65 73 5f 66 72 6f 6d 28 77 6f 72 64 73 29 5c 6e 20 20 20 20 66 6f 72 20 77 6f 72 64 2c 20 63 61 es_from(words)\n....for.word,.ca
24920 6e 64 20 69 6e 20 63 61 6e 64 67 65 6e 3a 5c 6e 20 20 20 20 20 20 20 20 47 2e 61 64 64 5f 65 64 nd.in.candgen:\n........G.add_ed
24940 67 65 28 77 6f 72 64 2c 20 63 61 6e 64 29 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 47 5c 6e 5c 6e ge(word,.cand)\n....return.G\n\n
24960 5c 6e 64 65 66 20 77 6f 72 64 73 5f 67 72 61 70 68 28 29 3a 5c 6e 20 20 20 20 5c 22 5c 22 5c 22 \ndef.words_graph():\n....\"\"\"
24980 52 65 74 75 72 6e 20 74 68 65 20 77 6f 72 64 73 20 65 78 61 6d 70 6c 65 20 67 72 61 70 68 20 66 Return.the.words.example.graph.f
249a0 72 6f 6d 20 74 68 65 20 53 74 61 6e 66 6f 72 64 20 47 72 61 70 68 42 61 73 65 5c 22 5c 22 5c 22 rom.the.Stanford.GraphBase\"\"\"
249c0 5c 6e 20 20 20 20 66 68 20 3d 20 67 7a 69 70 2e 6f 70 65 6e 28 5c 22 77 6f 72 64 73 5f 64 61 74 \n....fh.=.gzip.open(\"words_dat
249e0 2e 74 78 74 2e 67 7a 5c 22 2c 20 5c 22 72 5c 22 29 5c 6e 20 20 20 20 77 6f 72 64 73 20 3d 20 73 .txt.gz\",.\"r\")\n....words.=.s
24a00 65 74 28 29 5c 6e 20 20 20 20 66 6f 72 20 6c 69 6e 65 20 69 6e 20 66 68 2e 72 65 61 64 6c 69 6e et()\n....for.line.in.fh.readlin
24a20 65 73 28 29 3a 5c 6e 20 20 20 20 20 20 20 20 6c 69 6e 65 20 3d 20 6c 69 6e 65 2e 64 65 63 6f 64 es():\n........line.=.line.decod
24a40 65 28 29 5c 6e 20 20 20 20 20 20 20 20 69 66 20 6c 69 6e 65 2e 73 74 61 72 74 73 77 69 74 68 28 e()\n........if.line.startswith(
24a60 5c 22 2a 5c 22 29 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 5c 6e 20 \"*\"):\n............continue\n.
24a80 20 20 20 20 20 20 20 77 20 3d 20 73 74 72 28 6c 69 6e 65 5b 30 3a 35 5d 29 5c 6e 20 20 20 20 20 .......w.=.str(line[0:5])\n.....
24aa0 20 20 20 77 6f 72 64 73 2e 61 64 64 28 77 29 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 67 65 6e 65 ...words.add(w)\n....return.gene
24ac0 72 61 74 65 5f 67 72 61 70 68 28 77 6f 72 64 73 29 5c 6e 5c 6e 5c 6e 47 20 3d 20 77 6f 72 64 73 rate_graph(words)\n\n\nG.=.words
24ae0 5f 67 72 61 70 68 28 29 5c 6e 70 72 69 6e 74 28 5c 22 4c 6f 61 64 65 64 20 77 6f 72 64 73 5f 64 _graph()\nprint(\"Loaded.words_d
24b00 61 74 2e 74 78 74 20 63 6f 6e 74 61 69 6e 69 6e 67 20 35 37 35 37 20 66 69 76 65 2d 6c 65 74 74 at.txt.containing.5757.five-lett
24b20 65 72 20 45 6e 67 6c 69 73 68 20 77 6f 72 64 73 2e 5c 22 29 5c 6e 70 72 69 6e 74 28 5c 22 54 77 er.English.words.\")\nprint(\"Tw
24b40 6f 20 77 6f 72 64 73 20 61 72 65 20 63 6f 6e 6e 65 63 74 65 64 20 69 66 20 74 68 65 79 20 64 69 o.words.are.connected.if.they.di
24b60 66 66 65 72 20 69 6e 20 6f 6e 65 20 6c 65 74 74 65 72 2e 5c 22 29 5c 6e 70 72 69 6e 74 28 47 29 ffer.in.one.letter.\")\nprint(G)
24b80 5c 6e 70 72 69 6e 74 28 66 5c 22 7b 6e 78 2e 6e 75 6d 62 65 72 5f 63 6f 6e 6e 65 63 74 65 64 5f \nprint(f\"{nx.number_connected_
24ba0 63 6f 6d 70 6f 6e 65 6e 74 73 28 47 29 7d 20 63 6f 6e 6e 65 63 74 65 64 20 63 6f 6d 70 6f 6e 65 components(G)}.connected.compone
24bc0 6e 74 73 5c 22 29 5c 6e 5c 6e 66 6f 72 20 73 6f 75 72 63 65 2c 20 74 61 72 67 65 74 20 69 6e 20 nts\")\n\nfor.source,.target.in.
24be0 5b 28 5c 22 63 68 61 6f 73 5c 22 2c 20 5c 22 6f 72 64 65 72 5c 22 29 2c 20 28 5c 22 6e 6f 64 65 [(\"chaos\",.\"order\"),.(\"node
24c00 73 5c 22 2c 20 5c 22 67 72 61 70 68 5c 22 29 2c 20 28 5c 22 70 6f 75 6e 64 5c 22 2c 20 5c 22 6d s\",.\"graph\"),.(\"pound\",.\"m
24c20 61 72 6b 73 5c 22 29 5d 3a 5c 6e 20 20 20 20 70 72 69 6e 74 28 66 5c 22 53 68 6f 72 74 65 73 74 arks\")]:\n....print(f\"Shortest
24c40 20 70 61 74 68 20 62 65 74 77 65 65 6e 20 7b 73 6f 75 72 63 65 7d 20 61 6e 64 20 7b 74 61 72 67 .path.between.{source}.and.{targ
24c60 65 74 7d 20 69 73 5c 22 29 5c 6e 20 20 20 20 74 72 79 3a 5c 6e 20 20 20 20 20 20 20 20 73 68 6f et}.is\")\n....try:\n........sho
24c80 72 74 65 73 74 5f 70 61 74 68 20 3d 20 6e 78 2e 73 68 6f 72 74 65 73 74 5f 70 61 74 68 28 47 2c rtest_path.=.nx.shortest_path(G,
24ca0 20 73 6f 75 72 63 65 2c 20 74 61 72 67 65 74 29 5c 6e 20 20 20 20 20 20 20 20 66 6f 72 20 6e 20 .source,.target)\n........for.n.
24cc0 69 6e 20 73 68 6f 72 74 65 73 74 5f 70 61 74 68 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 70 in.shortest_path:\n............p
24ce0 72 69 6e 74 28 6e 29 5c 6e 20 20 20 20 65 78 63 65 70 74 20 6e 78 2e 4e 65 74 77 6f 72 6b 58 4e rint(n)\n....except.nx.NetworkXN
24d00 6f 50 61 74 68 3a 5c 6e 20 20 20 20 20 20 20 20 70 72 69 6e 74 28 5c 22 4e 6f 6e 65 5c 22 29 5c oPath:\n........print(\"None\")\
24d20 6e 5c 6e 5c 6e 23 20 64 72 61 77 20 61 20 73 75 62 73 65 74 20 6f 66 20 74 68 65 20 67 72 61 70 n\n\n#.draw.a.subset.of.the.grap
24d40 68 5c 6e 62 6f 75 6e 64 61 72 79 20 3d 20 6c 69 73 74 28 6e 78 2e 6e 6f 64 65 5f 62 6f 75 6e 64 h\nboundary.=.list(nx.node_bound
24d60 61 72 79 28 47 2c 20 73 68 6f 72 74 65 73 74 5f 70 61 74 68 29 29 5c 6e 47 2e 61 64 64 5f 6e 6f ary(G,.shortest_path))\nG.add_no
24d80 64 65 73 5f 66 72 6f 6d 28 73 68 6f 72 74 65 73 74 5f 70 61 74 68 2c 20 63 6f 6c 6f 72 3d 5c 22 des_from(shortest_path,.color=\"
24da0 72 65 64 5c 22 29 5c 6e 47 2e 61 64 64 5f 6e 6f 64 65 73 5f 66 72 6f 6d 28 62 6f 75 6e 64 61 72 red\")\nG.add_nodes_from(boundar
24dc0 79 2c 20 63 6f 6c 6f 72 3d 5c 22 62 6c 75 65 5c 22 29 5c 6e 48 20 3d 20 47 2e 73 75 62 67 72 61 y,.color=\"blue\")\nH.=.G.subgra
24de0 70 68 28 73 68 6f 72 74 65 73 74 5f 70 61 74 68 20 2b 20 62 6f 75 6e 64 61 72 79 29 5c 6e 63 6f ph(shortest_path.+.boundary)\nco
24e00 6c 6f 72 73 20 3d 20 6e 78 2e 67 65 74 5f 6e 6f 64 65 5f 61 74 74 72 69 62 75 74 65 73 28 48 2c lors.=.nx.get_node_attributes(H,
24e20 20 5c 22 63 6f 6c 6f 72 5c 22 29 5c 6e 6f 70 74 69 6f 6e 73 20 3d 20 7b 5c 22 6e 6f 64 65 5f 73 .\"color\")\noptions.=.{\"node_s
24e40 69 7a 65 5c 22 3a 20 31 35 30 30 2c 20 5c 22 61 6c 70 68 61 5c 22 3a 20 30 2e 33 2c 20 5c 22 6e ize\":.1500,.\"alpha\":.0.3,.\"n
24e60 6f 64 65 5f 63 6f 6c 6f 72 5c 22 3a 20 63 6f 6c 6f 72 73 2e 76 61 6c 75 65 73 28 29 7d 5c 6e 70 ode_color\":.colors.values()}\np
24e80 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 48 29 5c 6e os.=.nx.kamada_kawai_layout(H)\n
24ea0 6e 78 2e 64 72 61 77 28 48 2c 20 70 6f 73 2c 20 2a 2a 6f 70 74 69 6f 6e 73 29 5c 6e 6e 78 2e 64 nx.draw(H,.pos,.**options)\nnx.d
24ec0 72 61 77 5f 6e 65 74 77 6f 72 6b 78 5f 6c 61 62 65 6c 73 28 48 2c 20 70 6f 73 2c 20 66 6f 6e 74 raw_networkx_labels(H,.pos,.font
24ee0 5f 77 65 69 67 68 74 3d 5c 22 62 6f 6c 64 5c 22 29 5c 6e 70 6c 74 2e 73 68 6f 77 28 29 22 0a 20 _weight=\"bold\")\nplt.show()"..
24f00 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":.
24f20 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
24f40 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
24f60 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"
24f80 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
24fa0 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
24fc0 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",.
24fe0 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.......},...
25000 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",....
25020 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",.
25040 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
25060 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",...
25080 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"
250a0 2c 0a 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 39 2e 31 36 22 0a 20 20 20 20 ,......."version":."3.9.16".....
250c0 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 6f 72 }...},..."nbformat":.4,..."nbfor
250e0 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 0a 0f 5a 56 e0 6d fd mat_minor":.0.}PK..........ZV.m.
25100 99 3a 07 00 00 3a 07 00 00 1c 00 00 00 67 72 61 70 68 2f 70 6c 6f 74 5f 65 72 64 6f 73 5f 72 65 .:...:.......graph/plot_erdos_re
25120 6e 79 69 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 nyi.ipynb{..."cells":.[.....{...
25140 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",......."
25160 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
25180 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":
251a0 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":
251c0 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":.[........."
251e0 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".......].....
25200 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
25220 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":.{},...
25240 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 45 72 64 ...."source":.[........."\n#.Erd
25260 6f 73 20 52 65 6e 79 69 5c 6e 5c 6e 43 72 65 61 74 65 20 61 6e 20 47 7b 6e 2c 6d 7d 20 72 61 6e os.Renyi\n\nCreate.an.G{n,m}.ran
25280 64 6f 6d 20 67 72 61 70 68 20 77 69 74 68 20 6e 20 6e 6f 64 65 73 20 61 6e 64 20 6d 20 65 64 67 dom.graph.with.n.nodes.and.m.edg
252a0 65 73 5c 6e 61 6e 64 20 72 65 70 6f 72 74 20 73 6f 6d 65 20 70 72 6f 70 65 72 74 69 65 73 2e 5c es\nand.report.some.properties.\
252c0 6e 5c 6e 54 68 69 73 20 67 72 61 70 68 20 69 73 20 73 6f 6d 65 74 69 6d 65 73 20 63 61 6c 6c 65 n\nThis.graph.is.sometimes.calle
252e0 64 20 74 68 65 20 45 72 64 5c 75 30 31 35 31 73 2d 52 5c 75 30 30 65 39 6e 79 69 20 67 72 61 70 d.the.Erd\u0151s-R\u00e9nyi.grap
25300 68 5c 6e 62 75 74 20 69 73 20 64 69 66 66 65 72 65 6e 74 20 66 72 6f 6d 20 47 7b 6e 2c 70 7d 20 h\nbut.is.different.from.G{n,p}.
25320 6f 72 20 62 69 6e 6f 6d 69 61 6c 5f 67 72 61 70 68 20 77 68 69 63 68 20 69 73 20 61 6c 73 6f 5c or.binomial_graph.which.is.also\
25340 6e 73 6f 6d 65 74 69 6d 65 73 20 63 61 6c 6c 65 64 20 74 68 65 20 45 72 64 5c 75 30 31 35 31 73 nsometimes.called.the.Erd\u0151s
25360 2d 52 5c 75 30 30 65 39 6e 79 69 20 67 72 61 70 68 2e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 -R\u00e9nyi.graph.\n".......]...
25380 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
253a0 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
253c0 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":.{........
253e0 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.......},....
25400 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"
25420 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 :.[........."import.matplotlib.p
25440 79 70 6c 6f 74 20 61 73 20 70 6c 74 5c 6e 69 6d 70 6f 72 74 20 6e 65 74 77 6f 72 6b 78 20 61 73 yplot.as.plt\nimport.networkx.as
25460 20 6e 78 5c 6e 5c 6e 6e 20 3d 20 31 30 20 20 23 20 31 30 20 6e 6f 64 65 73 5c 6e 6d 20 3d 20 32 .nx\n\nn.=.10..#.10.nodes\nm.=.2
25480 30 20 20 23 20 32 30 20 65 64 67 65 73 5c 6e 73 65 65 64 20 3d 20 32 30 31 36 30 20 20 23 20 73 0..#.20.edges\nseed.=.20160..#.s
254a0 65 65 64 20 72 61 6e 64 6f 6d 20 6e 75 6d 62 65 72 20 67 65 6e 65 72 61 74 6f 72 73 20 66 6f 72 eed.random.number.generators.for
254c0 20 72 65 70 72 6f 64 75 63 69 62 69 6c 69 74 79 5c 6e 5c 6e 23 20 55 73 65 20 73 65 65 64 20 66 .reproducibility\n\n#.Use.seed.f
254e0 6f 72 20 72 65 70 72 6f 64 75 63 69 62 69 6c 69 74 79 5c 6e 47 20 3d 20 6e 78 2e 67 6e 6d 5f 72 or.reproducibility\nG.=.nx.gnm_r
25500 61 6e 64 6f 6d 5f 67 72 61 70 68 28 6e 2c 20 6d 2c 20 73 65 65 64 3d 73 65 65 64 29 5c 6e 5c 6e andom_graph(n,.m,.seed=seed)\n\n
25520 23 20 73 6f 6d 65 20 70 72 6f 70 65 72 74 69 65 73 5c 6e 70 72 69 6e 74 28 5c 22 6e 6f 64 65 20 #.some.properties\nprint(\"node.
25540 64 65 67 72 65 65 20 63 6c 75 73 74 65 72 69 6e 67 5c 22 29 5c 6e 66 6f 72 20 76 20 69 6e 20 6e degree.clustering\")\nfor.v.in.n
25560 78 2e 6e 6f 64 65 73 28 47 29 3a 5c 6e 20 20 20 20 70 72 69 6e 74 28 66 5c 22 7b 76 7d 20 7b 6e x.nodes(G):\n....print(f\"{v}.{n
25580 78 2e 64 65 67 72 65 65 28 47 2c 20 76 29 7d 20 7b 6e 78 2e 63 6c 75 73 74 65 72 69 6e 67 28 47 x.degree(G,.v)}.{nx.clustering(G
255a0 2c 20 76 29 7d 5c 22 29 5c 6e 5c 6e 70 72 69 6e 74 28 29 5c 6e 70 72 69 6e 74 28 5c 22 74 68 65 ,.v)}\")\n\nprint()\nprint(\"the
255c0 20 61 64 6a 61 63 65 6e 63 79 20 6c 69 73 74 5c 22 29 5c 6e 66 6f 72 20 6c 69 6e 65 20 69 6e 20 .adjacency.list\")\nfor.line.in.
255e0 6e 78 2e 67 65 6e 65 72 61 74 65 5f 61 64 6a 6c 69 73 74 28 47 29 3a 5c 6e 20 20 20 20 70 72 69 nx.generate_adjlist(G):\n....pri
25600 6e 74 28 6c 69 6e 65 29 5c 6e 5c 6e 70 6f 73 20 3d 20 6e 78 2e 73 70 72 69 6e 67 5f 6c 61 79 6f nt(line)\n\npos.=.nx.spring_layo
25620 75 74 28 47 2c 20 73 65 65 64 3d 73 65 65 64 29 20 20 23 20 53 65 65 64 20 66 6f 72 20 72 65 70 ut(G,.seed=seed)..#.Seed.for.rep
25640 72 6f 64 75 63 69 62 6c 65 20 6c 61 79 6f 75 74 5c 6e 6e 78 2e 64 72 61 77 28 47 2c 20 70 6f 73 roducible.layout\nnx.draw(G,.pos
25660 3d 70 6f 73 29 5c 6e 70 6c 74 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d =pos)\nplt.show()".......].....}
25680 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
256a0 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":.
256c0 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
256e0 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".
25700 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":.{...
25720 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":.{........
25740 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
25760 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
25780 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
257a0 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"
257c0 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
257e0 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
25800 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
25820 73 69 6f 6e 22 3a 20 22 33 2e 39 2e 31 36 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 6e 62 sion":."3.9.16".....}...},..."nb
25840 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 3a 20 format":.4,..."nbformat_minor":.
25860 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 0b 0f 5a 56 91 cd 41 02 0a 10 00 00 0a 10 00 00 1b 00 00 0.}PK..........ZV..A............
25880 00 67 72 61 70 68 2f 70 6c 6f 74 5f 6d 6f 72 73 65 5f 74 72 69 65 2e 69 70 79 6e 62 7b 0a 20 20 .graph/plot_morse_trie.ipynb{...
258a0 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 74 79 70 "cells":.[.....{......."cell_typ
258c0 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
258e0 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":.{..
25900 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.......
25920 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
25940 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 62 20 69 ource":.[........."%matplotlib.i
25960 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 20 20 20 nline".......].....},.....{.....
25980 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",......
259a0 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":
259c0 20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 4d 6f 72 73 65 20 54 72 69 65 5c 6e 5c 6e 41 20 .[........."\n#.Morse.Trie\n\nA.
259e0 70 72 65 66 69 78 20 74 72 65 65 20 28 61 6b 61 20 61 20 5c 22 74 72 69 65 5c 22 29 20 72 65 70 prefix.tree.(aka.a.\"trie\").rep
25a00 72 65 73 65 6e 74 69 6e 67 20 74 68 65 20 4d 6f 72 73 65 20 65 6e 63 6f 64 69 6e 67 20 6f 66 20 resenting.the.Morse.encoding.of.
25a20 74 68 65 20 61 6c 70 68 61 62 65 74 2e 5c 6e 41 20 6c 65 74 74 65 72 20 63 61 6e 20 62 65 20 65 the.alphabet.\nA.letter.can.be.e
25a40 6e 63 6f 64 65 64 20 62 79 20 74 72 61 63 69 6e 67 20 74 68 65 20 70 61 74 68 20 66 72 6f 6d 20 ncoded.by.tracing.the.path.from.
25a60 74 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 6e 6f 64 65 20 69 6e 20 74 68 65 5c 6e 74 the.corresponding.node.in.the\nt
25a80 72 65 65 20 74 6f 20 74 68 65 20 72 6f 6f 74 20 6e 6f 64 65 2c 20 72 65 76 65 72 73 69 6e 67 20 ree.to.the.root.node,.reversing.
25aa0 74 68 65 20 6f 72 64 65 72 20 6f 66 20 74 68 65 20 73 79 6d 62 6f 6c 73 20 65 6e 63 6f 75 6e 74 the.order.of.the.symbols.encount
25ac0 65 72 65 64 20 61 6c 6f 6e 67 5c 6e 74 68 65 20 70 61 74 68 2e 5c 6e 22 0a 20 20 20 20 20 20 5d ered.along\nthe.path.\n".......]
25ae0 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":
25b00 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"
25b20 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":.{.....
25b40 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.......},.
25b60 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
25b80 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 69 6d 70 6f 72 74 20 6e 65 74 77 6f 72 6b 78 20 ce":.[........."import.networkx.
25ba0 61 73 20 6e 78 5c 6e 5c 6e 23 20 55 6e 69 63 6f 64 65 20 63 68 61 72 61 63 74 65 72 73 20 74 6f as.nx\n\n#.Unicode.characters.to
25bc0 20 72 65 70 72 65 73 65 6e 74 20 74 68 65 20 64 6f 74 73 2f 64 61 73 68 65 73 20 28 6f 72 20 64 .represent.the.dots/dashes.(or.d
25be0 69 74 73 2f 64 61 68 73 29 20 6f 66 20 4d 6f 72 73 65 20 63 6f 64 65 5c 6e 64 6f 74 20 3d 20 5c its/dahs).of.Morse.code\ndot.=.\
25c00 22 5c 75 32 30 32 32 5c 22 5c 6e 64 61 73 68 20 3d 20 5c 22 5c 75 32 30 31 34 5c 22 5c 6e 5c 6e "\u2022\"\ndash.=.\"\u2014\"\n\n
25c20 23 20 53 74 61 72 74 20 77 69 74 68 20 74 68 65 20 64 69 72 65 63 74 20 6d 61 70 70 69 6e 67 20 #.Start.with.the.direct.mapping.
25c40 6f 66 20 6c 65 74 74 65 72 20 2d 3e 20 63 6f 64 65 5c 6e 6d 6f 72 73 65 5f 64 69 72 65 63 74 5f of.letter.->.code\nmorse_direct_
25c60 6d 61 70 70 69 6e 67 20 3d 20 7b 5c 6e 20 20 20 20 5c 22 61 5c 22 3a 20 64 6f 74 20 2b 20 64 61 mapping.=.{\n....\"a\":.dot.+.da
25c80 73 68 2c 5c 6e 20 20 20 20 5c 22 62 5c 22 3a 20 64 61 73 68 20 2b 20 64 6f 74 20 2a 20 33 2c 5c sh,\n....\"b\":.dash.+.dot.*.3,\
25ca0 6e 20 20 20 20 5c 22 63 5c 22 3a 20 64 61 73 68 20 2b 20 64 6f 74 20 2b 20 64 61 73 68 20 2b 20 n....\"c\":.dash.+.dot.+.dash.+.
25cc0 64 6f 74 2c 5c 6e 20 20 20 20 5c 22 64 5c 22 3a 20 64 61 73 68 20 2b 20 64 6f 74 20 2a 20 32 2c dot,\n....\"d\":.dash.+.dot.*.2,
25ce0 5c 6e 20 20 20 20 5c 22 65 5c 22 3a 20 64 6f 74 2c 5c 6e 20 20 20 20 5c 22 66 5c 22 3a 20 64 6f \n....\"e\":.dot,\n....\"f\":.do
25d00 74 20 2a 20 32 20 2b 20 64 61 73 68 20 2b 20 64 6f 74 2c 5c 6e 20 20 20 20 5c 22 67 5c 22 3a 20 t.*.2.+.dash.+.dot,\n....\"g\":.
25d20 64 61 73 68 20 2a 20 32 20 2b 20 64 6f 74 2c 5c 6e 20 20 20 20 5c 22 68 5c 22 3a 20 64 6f 74 20 dash.*.2.+.dot,\n....\"h\":.dot.
25d40 2a 20 34 2c 5c 6e 20 20 20 20 5c 22 69 5c 22 3a 20 64 6f 74 20 2a 20 32 2c 5c 6e 20 20 20 20 5c *.4,\n....\"i\":.dot.*.2,\n....\
25d60 22 6a 5c 22 3a 20 64 6f 74 20 2b 20 64 61 73 68 20 2a 20 33 2c 5c 6e 20 20 20 20 5c 22 6b 5c 22 "j\":.dot.+.dash.*.3,\n....\"k\"
25d80 3a 20 64 61 73 68 20 2b 20 64 6f 74 20 2b 20 64 61 73 68 2c 5c 6e 20 20 20 20 5c 22 6c 5c 22 3a :.dash.+.dot.+.dash,\n....\"l\":
25da0 20 64 6f 74 20 2b 20 64 61 73 68 20 2b 20 64 6f 74 20 2a 20 32 2c 5c 6e 20 20 20 20 5c 22 6d 5c .dot.+.dash.+.dot.*.2,\n....\"m\
25dc0 22 3a 20 64 61 73 68 20 2a 20 32 2c 5c 6e 20 20 20 20 5c 22 6e 5c 22 3a 20 64 61 73 68 20 2b 20 ":.dash.*.2,\n....\"n\":.dash.+.
25de0 64 6f 74 2c 5c 6e 20 20 20 20 5c 22 6f 5c 22 3a 20 64 61 73 68 20 2a 20 33 2c 5c 6e 20 20 20 20 dot,\n....\"o\":.dash.*.3,\n....
25e00 5c 22 70 5c 22 3a 20 64 6f 74 20 2b 20 64 61 73 68 20 2a 20 32 20 2b 20 64 6f 74 2c 5c 6e 20 20 \"p\":.dot.+.dash.*.2.+.dot,\n..
25e20 20 20 5c 22 71 5c 22 3a 20 64 61 73 68 20 2a 20 32 20 2b 20 64 6f 74 20 2b 20 64 61 73 68 2c 5c ..\"q\":.dash.*.2.+.dot.+.dash,\
25e40 6e 20 20 20 20 5c 22 72 5c 22 3a 20 64 6f 74 20 2b 20 64 61 73 68 20 2b 20 64 6f 74 2c 5c 6e 20 n....\"r\":.dot.+.dash.+.dot,\n.
25e60 20 20 20 5c 22 73 5c 22 3a 20 64 6f 74 20 2a 20 33 2c 5c 6e 20 20 20 20 5c 22 74 5c 22 3a 20 64 ...\"s\":.dot.*.3,\n....\"t\":.d
25e80 61 73 68 2c 5c 6e 20 20 20 20 5c 22 75 5c 22 3a 20 64 6f 74 20 2a 20 32 20 2b 20 64 61 73 68 2c ash,\n....\"u\":.dot.*.2.+.dash,
25ea0 5c 6e 20 20 20 20 5c 22 76 5c 22 3a 20 64 6f 74 20 2a 20 33 20 2b 20 64 61 73 68 2c 5c 6e 20 20 \n....\"v\":.dot.*.3.+.dash,\n..
25ec0 20 20 5c 22 77 5c 22 3a 20 64 6f 74 20 2b 20 64 61 73 68 20 2a 20 32 2c 5c 6e 20 20 20 20 5c 22 ..\"w\":.dot.+.dash.*.2,\n....\"
25ee0 78 5c 22 3a 20 64 61 73 68 20 2b 20 64 6f 74 20 2a 20 32 20 2b 20 64 61 73 68 2c 5c 6e 20 20 20 x\":.dash.+.dot.*.2.+.dash,\n...
25f00 20 5c 22 79 5c 22 3a 20 64 61 73 68 20 2b 20 64 6f 74 20 2b 20 64 61 73 68 20 2a 20 32 2c 5c 6e .\"y\":.dash.+.dot.+.dash.*.2,\n
25f20 20 20 20 20 5c 22 7a 5c 22 3a 20 64 61 73 68 20 2a 20 32 20 2b 20 64 6f 74 20 2a 20 32 2c 5c 6e ....\"z\":.dash.*.2.+.dot.*.2,\n
25f40 7d 5c 6e 5c 6e 23 23 23 20 4d 61 6e 75 61 6c 6c 79 20 63 6f 6e 73 74 72 75 63 74 20 74 68 65 20 }\n\n###.Manually.construct.the.
25f60 70 72 65 66 69 78 20 74 72 65 65 20 66 72 6f 6d 20 74 68 69 73 20 6d 61 70 70 69 6e 67 5c 6e 5c prefix.tree.from.this.mapping\n\
25f80 6e 23 20 53 6f 6d 65 20 70 72 65 70 72 6f 63 65 73 73 69 6e 67 3a 20 73 6f 72 74 20 74 68 65 20 n#.Some.preprocessing:.sort.the.
25fa0 6f 72 69 67 69 6e 61 6c 20 6d 61 70 70 69 6e 67 20 62 79 20 63 6f 64 65 20 6c 65 6e 67 74 68 20 original.mapping.by.code.length.
25fc0 61 6e 64 20 63 68 61 72 61 63 74 65 72 5c 6e 23 20 76 61 6c 75 65 5c 6e 6d 6f 72 73 65 5f 6d 61 and.character\n#.value\nmorse_ma
25fe0 70 70 69 6e 67 5f 73 6f 72 74 65 64 20 3d 20 64 69 63 74 28 5c 6e 20 20 20 20 73 6f 72 74 65 64 pping_sorted.=.dict(\n....sorted
26000 28 6d 6f 72 73 65 5f 64 69 72 65 63 74 5f 6d 61 70 70 69 6e 67 2e 69 74 65 6d 73 28 29 2c 20 6b (morse_direct_mapping.items(),.k
26020 65 79 3d 6c 61 6d 62 64 61 20 69 74 65 6d 3a 20 28 6c 65 6e 28 69 74 65 6d 5b 31 5d 29 2c 20 69 ey=lambda.item:.(len(item[1]),.i
26040 74 65 6d 5b 31 5d 29 29 5c 6e 29 5c 6e 5c 6e 23 20 4d 6f 72 65 20 70 72 65 70 72 6f 63 65 73 73 tem[1]))\n)\n\n#.More.preprocess
26060 69 6e 67 3a 20 63 72 65 61 74 65 20 74 68 65 20 72 65 76 65 72 73 65 20 6d 61 70 70 69 6e 67 20 ing:.create.the.reverse.mapping.
26080 74 6f 20 73 69 6d 70 6c 69 66 79 20 6c 6f 6f 6b 75 70 5c 6e 72 65 76 65 72 73 65 5f 6d 61 70 70 to.simplify.lookup\nreverse_mapp
260a0 69 6e 67 20 3d 20 7b 76 3a 20 6b 20 66 6f 72 20 6b 2c 20 76 20 69 6e 20 6d 6f 72 73 65 5f 64 69 ing.=.{v:.k.for.k,.v.in.morse_di
260c0 72 65 63 74 5f 6d 61 70 70 69 6e 67 2e 69 74 65 6d 73 28 29 7d 5c 6e 72 65 76 65 72 73 65 5f 6d rect_mapping.items()}\nreverse_m
260e0 61 70 70 69 6e 67 5b 5c 22 5c 22 5d 20 3d 20 5c 22 5c 22 20 20 23 20 52 65 70 72 65 73 65 6e 74 apping[\"\"].=.\"\"..#.Represent
26100 20 74 68 65 20 5c 22 72 6f 6f 74 5c 22 20 6e 6f 64 65 20 77 69 74 68 20 61 6e 20 65 6d 70 74 79 .the.\"root\".node.with.an.empty
26120 20 73 74 72 69 6e 67 5c 6e 5c 6e 23 20 43 6f 6e 73 74 72 75 63 74 20 74 68 65 20 70 72 65 66 69 .string\n\n#.Construct.the.prefi
26140 78 20 74 72 65 65 20 66 72 6f 6d 20 74 68 65 20 73 6f 72 74 65 64 20 6d 61 70 70 69 6e 67 5c 6e x.tree.from.the.sorted.mapping\n
26160 47 20 3d 20 6e 78 2e 44 69 47 72 61 70 68 28 29 5c 6e 66 6f 72 20 6e 6f 64 65 2c 20 63 68 61 72 G.=.nx.DiGraph()\nfor.node,.char
26180 20 69 6e 20 6d 6f 72 73 65 5f 6d 61 70 70 69 6e 67 5f 73 6f 72 74 65 64 2e 69 74 65 6d 73 28 29 .in.morse_mapping_sorted.items()
261a0 3a 5c 6e 20 20 20 20 70 72 65 64 20 3d 20 63 68 61 72 5b 3a 2d 31 5d 5c 6e 20 20 20 20 23 20 53 :\n....pred.=.char[:-1]\n....#.S
261c0 74 6f 72 65 20 74 68 65 20 64 6f 74 2f 64 61 73 68 20 72 65 6c 61 74 69 6e 67 20 74 68 65 20 74 tore.the.dot/dash.relating.the.t
261e0 77 6f 20 6c 65 74 74 65 72 73 20 61 73 20 61 6e 20 65 64 67 65 20 61 74 74 72 69 62 75 74 65 20 wo.letters.as.an.edge.attribute.
26200 5c 22 63 68 61 72 5c 22 5c 6e 20 20 20 20 47 2e 61 64 64 5f 65 64 67 65 28 72 65 76 65 72 73 65 \"char\"\n....G.add_edge(reverse
26220 5f 6d 61 70 70 69 6e 67 5b 70 72 65 64 5d 2c 20 6e 6f 64 65 2c 20 63 68 61 72 3d 63 68 61 72 5b _mapping[pred],.node,.char=char[
26240 2d 31 5d 29 5c 6e 5c 6e 23 20 46 6f 72 20 76 69 73 75 61 6c 69 7a 61 74 69 6f 6e 20 70 75 72 70 -1])\n\n#.For.visualization.purp
26260 6f 73 65 73 2c 20 6c 61 79 6f 75 74 20 74 68 65 20 6e 6f 64 65 73 20 69 6e 20 74 6f 70 6f 6c 6f oses,.layout.the.nodes.in.topolo
26280 67 69 63 61 6c 20 6f 72 64 65 72 5c 6e 66 6f 72 20 69 2c 20 6c 61 79 65 72 20 69 6e 20 65 6e 75 gical.order\nfor.i,.layer.in.enu
262a0 6d 65 72 61 74 65 28 6e 78 2e 74 6f 70 6f 6c 6f 67 69 63 61 6c 5f 67 65 6e 65 72 61 74 69 6f 6e merate(nx.topological_generation
262c0 73 28 47 29 29 3a 5c 6e 20 20 20 20 66 6f 72 20 6e 20 69 6e 20 6c 61 79 65 72 3a 5c 6e 20 20 20 s(G)):\n....for.n.in.layer:\n...
262e0 20 20 20 20 20 47 2e 6e 6f 64 65 73 5b 6e 5d 5b 5c 22 6c 61 79 65 72 5c 22 5d 20 3d 20 69 5c 6e .....G.nodes[n][\"layer\"].=.i\n
26300 70 6f 73 20 3d 20 6e 78 2e 6d 75 6c 74 69 70 61 72 74 69 74 65 5f 6c 61 79 6f 75 74 28 47 2c 20 pos.=.nx.multipartite_layout(G,.
26320 73 75 62 73 65 74 5f 6b 65 79 3d 5c 22 6c 61 79 65 72 5c 22 2c 20 61 6c 69 67 6e 3d 5c 22 68 6f subset_key=\"layer\",.align=\"ho
26340 72 69 7a 6f 6e 74 61 6c 5c 22 29 5c 6e 23 20 46 6c 69 70 20 74 68 65 20 6c 61 79 6f 75 74 20 73 rizontal\")\n#.Flip.the.layout.s
26360 6f 20 74 68 65 20 72 6f 6f 74 20 6e 6f 64 65 20 69 73 20 6f 6e 20 74 6f 70 5c 6e 66 6f 72 20 6b o.the.root.node.is.on.top\nfor.k
26380 20 69 6e 20 70 6f 73 3a 5c 6e 20 20 20 20 70 6f 73 5b 6b 5d 5b 2d 31 5d 20 2a 3d 20 2d 31 5c 6e .in.pos:\n....pos[k][-1].*=.-1\n
263a0 5c 6e 23 20 56 69 73 75 61 6c 69 7a 65 20 74 68 65 20 74 72 69 65 5c 6e 6e 78 2e 64 72 61 77 28 \n#.Visualize.the.trie\nnx.draw(
263c0 47 2c 20 70 6f 73 3d 70 6f 73 2c 20 77 69 74 68 5f 6c 61 62 65 6c 73 3d 54 72 75 65 29 5c 6e 65 G,.pos=pos,.with_labels=True)\ne
263e0 6c 61 62 65 6c 73 20 3d 20 7b 28 75 2c 20 76 29 3a 20 6c 20 66 6f 72 20 75 2c 20 76 2c 20 6c 20 labels.=.{(u,.v):.l.for.u,.v,.l.
26400 69 6e 20 47 2e 65 64 67 65 73 28 64 61 74 61 3d 5c 22 63 68 61 72 5c 22 29 7d 5c 6e 6e 78 2e 64 in.G.edges(data=\"char\")}\nnx.d
26420 72 61 77 5f 6e 65 74 77 6f 72 6b 78 5f 65 64 67 65 5f 6c 61 62 65 6c 73 28 47 2c 20 70 6f 73 2c raw_networkx_edge_labels(G,.pos,
26440 20 65 64 67 65 5f 6c 61 62 65 6c 73 3d 65 6c 61 62 65 6c 73 29 5c 6e 5c 6e 5c 6e 23 20 41 20 6c .edge_labels=elabels)\n\n\n#.A.l
26460 65 74 74 65 72 20 63 61 6e 20 62 65 20 65 6e 63 6f 64 65 64 20 62 79 20 66 6f 6c 6c 6f 77 69 6e etter.can.be.encoded.by.followin
26480 67 20 74 68 65 20 70 61 74 68 20 66 72 6f 6d 20 74 68 65 20 67 69 76 65 6e 20 6c 65 74 74 65 72 g.the.path.from.the.given.letter
264a0 20 28 6e 6f 64 65 29 20 74 6f 5c 6e 23 20 74 68 65 20 72 6f 6f 74 20 6e 6f 64 65 5c 6e 64 65 66 .(node).to\n#.the.root.node\ndef
264c0 20 6d 6f 72 73 65 5f 65 6e 63 6f 64 65 28 6c 65 74 74 65 72 29 3a 5c 6e 20 20 20 20 70 72 65 64 .morse_encode(letter):\n....pred
264e0 20 3d 20 6e 65 78 74 28 47 2e 70 72 65 64 65 63 65 73 73 6f 72 73 28 6c 65 74 74 65 72 29 29 20 .=.next(G.predecessors(letter)).
26500 20 23 20 45 61 63 68 20 6c 65 74 74 65 72 20 68 61 73 20 6f 6e 6c 79 20 31 20 70 72 65 64 65 63 .#.Each.letter.has.only.1.predec
26520 65 73 73 6f 72 5c 6e 20 20 20 20 73 79 6d 62 6f 6c 20 3d 20 47 5b 70 72 65 64 5d 5b 6c 65 74 74 essor\n....symbol.=.G[pred][lett
26540 65 72 5d 5b 5c 22 63 68 61 72 5c 22 5d 5c 6e 20 20 20 20 69 66 20 70 72 65 64 20 21 3d 20 5c 22 er][\"char\"]\n....if.pred.!=.\"
26560 5c 22 3a 5c 6e 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6d 6f 72 73 65 5f 65 6e 63 6f 64 65 \":\n........return.morse_encode
26580 28 70 72 65 64 29 20 2b 20 73 79 6d 62 6f 6c 20 20 23 20 54 72 61 76 65 72 73 69 6e 67 20 74 68 (pred).+.symbol..#.Traversing.th
265a0 65 20 74 72 69 65 20 69 6e 20 72 65 76 65 72 73 65 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 73 79 e.trie.in.reverse\n....return.sy
265c0 6d 62 6f 6c 5c 6e 5c 6e 5c 6e 23 20 56 65 72 69 66 79 20 74 68 61 74 20 74 68 65 20 74 72 69 65 mbol\n\n\n#.Verify.that.the.trie
265e0 20 65 6e 63 6f 64 69 6e 67 20 69 73 20 63 6f 72 72 65 63 74 5c 6e 69 6d 70 6f 72 74 20 73 74 72 .encoding.is.correct\nimport.str
26600 69 6e 67 5c 6e 5c 6e 66 6f 72 20 6c 65 74 74 65 72 20 69 6e 20 73 74 72 69 6e 67 2e 61 73 63 69 ing\n\nfor.letter.in.string.asci
26620 69 5f 6c 6f 77 65 72 63 61 73 65 3a 5c 6e 20 20 20 20 61 73 73 65 72 74 20 6d 6f 72 73 65 5f 65 i_lowercase:\n....assert.morse_e
26640 6e 63 6f 64 65 28 6c 65 74 74 65 72 29 20 3d 3d 20 6d 6f 72 73 65 5f 64 69 72 65 63 74 5f 6d 61 ncode(letter).==.morse_direct_ma
26660 70 70 69 6e 67 5b 6c 65 74 74 65 72 5d 5c 6e 5c 6e 70 72 69 6e 74 28 5c 22 20 5c 22 2e 6a 6f 69 pping[letter]\n\nprint(\".\".joi
26680 6e 28 5b 6d 6f 72 73 65 5f 65 6e 63 6f 64 65 28 6c 74 72 29 20 66 6f 72 20 6c 74 72 20 69 6e 20 n([morse_encode(ltr).for.ltr.in.
266a0 5c 22 69 6c 6f 76 65 6e 65 74 77 6f 72 6b 78 5c 22 5d 29 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 \"ilovenetworkx\"]))".......]...
266c0 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
266e0 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
26700 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":
26720 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
26740 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":.{
26760 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":.{.....
26780 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",........."
267a0 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
267c0 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
267e0 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
26800 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_
26820 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
26840 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",......."
26860 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 39 2e 31 36 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 version":."3.9.16".....}...},...
26880 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
268a0 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 0a 0f 5a 56 b2 14 29 75 e6 07 00 00 e6 07 00 00 ":.0.}PK..........ZV..)u........
268c0 1b 00 00 00 67 72 61 70 68 2f 70 6c 6f 74 5f 64 61 67 5f 6c 61 79 6f 75 74 2e 69 70 79 6e 62 7b ....graph/plot_dag_layout.ipynb{
268e0 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_
26900 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_
26920 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":.
26940 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....
26960 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":.[],......
26980 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
269a0 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".......].....},.....{..
269c0 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",...
269e0 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
26a00 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 44 41 47 20 2d 20 54 6f 70 6f 6c 6f 67 e":.[........."\n#.DAG.-.Topolog
26a20 69 63 61 6c 20 4c 61 79 6f 75 74 5c 6e 5c 6e 54 68 69 73 20 65 78 61 6d 70 6c 65 20 63 6f 6d 62 ical.Layout\n\nThis.example.comb
26a40 69 6e 65 73 20 74 68 65 20 60 74 6f 70 6f 6c 6f 67 69 63 61 6c 5f 67 65 6e 65 72 61 74 69 6f 6e ines.the.`topological_generation
26a60 73 60 20 67 65 6e 65 72 61 74 6f 72 20 77 69 74 68 5c 6e 60 6d 75 6c 74 69 70 61 72 74 69 74 65 s`.generator.with\n`multipartite
26a80 5f 6c 61 79 6f 75 74 60 20 74 6f 20 73 68 6f 77 20 68 6f 77 20 74 6f 20 76 69 73 75 61 6c 69 7a _layout`.to.show.how.to.visualiz
26aa0 65 20 61 20 44 41 47 20 69 6e 20 74 6f 70 6f 6c 6f 67 69 63 61 6c 6c 79 2d 73 6f 72 74 65 64 5c e.a.DAG.in.topologically-sorted\
26ac0 6e 6f 72 64 65 72 2e 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 norder.\n".......].....},.....{.
26ae0 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",......
26b00 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,.......
26b20 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
26b40 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
26b60 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":.[........
26b80 20 22 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 6f 72 74 20 ."import.networkx.as.nx\nimport.
26ba0 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 70 6c 6f 74 20 61 73 20 70 6c 74 5c 6e 5c 6e 5c 6e 47 20 matplotlib.pyplot.as.plt\n\n\nG.
26bc0 3d 20 6e 78 2e 44 69 47 72 61 70 68 28 5c 6e 20 20 20 20 5b 5c 6e 20 20 20 20 20 20 20 20 28 5c =.nx.DiGraph(\n....[\n........(\
26be0 22 66 5c 22 2c 20 5c 22 61 5c 22 29 2c 5c 6e 20 20 20 20 20 20 20 20 28 5c 22 61 5c 22 2c 20 5c "f\",.\"a\"),\n........(\"a\",.\
26c00 22 62 5c 22 29 2c 5c 6e 20 20 20 20 20 20 20 20 28 5c 22 61 5c 22 2c 20 5c 22 65 5c 22 29 2c 5c "b\"),\n........(\"a\",.\"e\"),\
26c20 6e 20 20 20 20 20 20 20 20 28 5c 22 62 5c 22 2c 20 5c 22 63 5c 22 29 2c 5c 6e 20 20 20 20 20 20 n........(\"b\",.\"c\"),\n......
26c40 20 20 28 5c 22 62 5c 22 2c 20 5c 22 64 5c 22 29 2c 5c 6e 20 20 20 20 20 20 20 20 28 5c 22 64 5c ..(\"b\",.\"d\"),\n........(\"d\
26c60 22 2c 20 5c 22 65 5c 22 29 2c 5c 6e 20 20 20 20 20 20 20 20 28 5c 22 66 5c 22 2c 20 5c 22 63 5c ",.\"e\"),\n........(\"f\",.\"c\
26c80 22 29 2c 5c 6e 20 20 20 20 20 20 20 20 28 5c 22 66 5c 22 2c 20 5c 22 67 5c 22 29 2c 5c 6e 20 20 "),\n........(\"f\",.\"g\"),\n..
26ca0 20 20 20 20 20 20 28 5c 22 68 5c 22 2c 20 5c 22 66 5c 22 29 2c 5c 6e 20 20 20 20 5d 5c 6e 29 5c ......(\"h\",.\"f\"),\n....]\n)\
26cc0 6e 5c 6e 66 6f 72 20 6c 61 79 65 72 2c 20 6e 6f 64 65 73 20 69 6e 20 65 6e 75 6d 65 72 61 74 65 n\nfor.layer,.nodes.in.enumerate
26ce0 28 6e 78 2e 74 6f 70 6f 6c 6f 67 69 63 61 6c 5f 67 65 6e 65 72 61 74 69 6f 6e 73 28 47 29 29 3a (nx.topological_generations(G)):
26d00 5c 6e 20 20 20 20 23 20 60 6d 75 6c 74 69 70 61 72 74 69 74 65 5f 6c 61 79 6f 75 74 60 20 65 78 \n....#.`multipartite_layout`.ex
26d20 70 65 63 74 73 20 74 68 65 20 6c 61 79 65 72 20 61 73 20 61 20 6e 6f 64 65 20 61 74 74 72 69 62 pects.the.layer.as.a.node.attrib
26d40 75 74 65 2c 20 73 6f 20 61 64 64 20 74 68 65 5c 6e 20 20 20 20 23 20 6e 75 6d 65 72 69 63 20 6c ute,.so.add.the\n....#.numeric.l
26d60 61 79 65 72 20 76 61 6c 75 65 20 61 73 20 61 20 6e 6f 64 65 20 61 74 74 72 69 62 75 74 65 5c 6e ayer.value.as.a.node.attribute\n
26d80 20 20 20 20 66 6f 72 20 6e 6f 64 65 20 69 6e 20 6e 6f 64 65 73 3a 5c 6e 20 20 20 20 20 20 20 20 ....for.node.in.nodes:\n........
26da0 47 2e 6e 6f 64 65 73 5b 6e 6f 64 65 5d 5b 5c 22 6c 61 79 65 72 5c 22 5d 20 3d 20 6c 61 79 65 72 G.nodes[node][\"layer\"].=.layer
26dc0 5c 6e 5c 6e 23 20 43 6f 6d 70 75 74 65 20 74 68 65 20 6d 75 6c 74 69 70 61 72 74 69 74 65 5f 6c \n\n#.Compute.the.multipartite_l
26de0 61 79 6f 75 74 20 75 73 69 6e 67 20 74 68 65 20 5c 22 6c 61 79 65 72 5c 22 20 6e 6f 64 65 20 61 ayout.using.the.\"layer\".node.a
26e00 74 74 72 69 62 75 74 65 5c 6e 70 6f 73 20 3d 20 6e 78 2e 6d 75 6c 74 69 70 61 72 74 69 74 65 5f ttribute\npos.=.nx.multipartite_
26e20 6c 61 79 6f 75 74 28 47 2c 20 73 75 62 73 65 74 5f 6b 65 79 3d 5c 22 6c 61 79 65 72 5c 22 29 5c layout(G,.subset_key=\"layer\")\
26e40 6e 5c 6e 66 69 67 2c 20 61 78 20 3d 20 70 6c 74 2e 73 75 62 70 6c 6f 74 73 28 29 5c 6e 6e 78 2e n\nfig,.ax.=.plt.subplots()\nnx.
26e60 64 72 61 77 5f 6e 65 74 77 6f 72 6b 78 28 47 2c 20 70 6f 73 3d 70 6f 73 2c 20 61 78 3d 61 78 29 draw_networkx(G,.pos=pos,.ax=ax)
26e80 5c 6e 61 78 2e 73 65 74 5f 74 69 74 6c 65 28 5c 22 44 41 47 20 6c 61 79 6f 75 74 20 69 6e 20 74 \nax.set_title(\"DAG.layout.in.t
26ea0 6f 70 6f 6c 6f 67 69 63 61 6c 20 6f 72 64 65 72 5c 22 29 5c 6e 66 69 67 2e 74 69 67 68 74 5f 6c opological.order\")\nfig.tight_l
26ec0 61 79 6f 75 74 28 29 5c 6e 70 6c 74 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 ayout()\nplt.show()".......]....
26ee0 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 72 .}...],..."metadata":.{....."ker
26f00 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 22 nelspec":.{......."display_name"
26f20 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 20 :."Python.3",......."language":.
26f40 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 33 "python",......."name":."python3
26f60 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 0a ".....},....."language_info":.{.
26f80 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 20 ......"codemirror_mode":.{......
26fa0 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 76 ..."name":."ipython",........."v
26fc0 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 5f ersion":.3.......},......."file_
26fe0 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 79 extension":.".py",......."mimety
27000 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 6d pe":."text/x-python",......."nam
27020 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 65 e":."python",......."nbconvert_e
27040 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 65 xporter":."python",......."pygme
27060 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 76 nts_lexer":."ipython3",......."v
27080 65 72 73 69 6f 6e 22 3a 20 22 33 2e 39 2e 31 36 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 ersion":."3.9.16".....}...},..."
270a0 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"
270c0 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 0a 0f 5a 56 eb 03 69 37 05 07 00 00 05 07 00 00 20 :.0.}PK..........ZV..i7.........
270e0 00 00 00 67 72 61 70 68 2f 70 6c 6f 74 5f 64 65 67 72 65 65 5f 73 65 71 75 65 6e 63 65 2e 69 70 ...graph/plot_degree_sequence.ip
27100 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 22 63 ynb{..."cells":.[.....{......."c
27120 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
27140 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
27160 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
27180 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":.[],..
271a0 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 70 6c ....."source":.[........."%matpl
271c0 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 20 20 otlib.inline".......].....},....
271e0 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"
27200 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
27220 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 44 65 67 72 65 65 20 53 65 ource":.[........."\n#.Degree.Se
27240 71 75 65 6e 63 65 5c 6e 5c 6e 52 61 6e 64 6f 6d 20 67 72 61 70 68 20 66 72 6f 6d 20 67 69 76 65 quence\n\nRandom.graph.from.give
27260 6e 20 64 65 67 72 65 65 20 73 65 71 75 65 6e 63 65 2e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 n.degree.sequence.\n".......]...
27280 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
272a0 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
272c0 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":.{........
272e0 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.......},....
27300 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"
27320 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 :.[........."import.matplotlib.p
27340 79 70 6c 6f 74 20 61 73 20 70 6c 74 5c 6e 69 6d 70 6f 72 74 20 6e 65 74 77 6f 72 6b 78 20 61 73 yplot.as.plt\nimport.networkx.as
27360 20 6e 78 5c 6e 5c 6e 23 20 53 70 65 63 69 66 79 20 73 65 65 64 20 66 6f 72 20 72 65 70 72 6f 64 .nx\n\n#.Specify.seed.for.reprod
27380 75 63 69 62 69 6c 69 74 79 5c 6e 73 65 65 64 20 3d 20 36 36 38 32 37 33 5c 6e 5c 6e 7a 20 3d 20 ucibility\nseed.=.668273\n\nz.=.
273a0 5b 35 2c 20 33 2c 20 33 2c 20 33 2c 20 33 2c 20 32 2c 20 32 2c 20 32 2c 20 31 2c 20 31 2c 20 31 [5,.3,.3,.3,.3,.2,.2,.2,.1,.1,.1
273c0 5d 5c 6e 70 72 69 6e 74 28 6e 78 2e 69 73 5f 67 72 61 70 68 69 63 61 6c 28 7a 29 29 5c 6e 5c 6e ]\nprint(nx.is_graphical(z))\n\n
273e0 70 72 69 6e 74 28 5c 22 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 6d 6f 64 65 6c 5c 22 29 5c 6e print(\"Configuration.model\")\n
27400 47 20 3d 20 6e 78 2e 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 5f 6d 6f 64 65 6c 28 5c 6e 20 20 20 G.=.nx.configuration_model(\n...
27420 20 7a 2c 20 73 65 65 64 3d 73 65 65 64 5c 6e 29 20 20 23 20 63 6f 6e 66 69 67 75 72 61 74 69 6f .z,.seed=seed\n)..#.configuratio
27440 6e 20 6d 6f 64 65 6c 2c 20 73 65 65 64 20 66 6f 72 20 72 65 70 72 6f 64 75 63 69 62 69 6c 69 74 n.model,.seed.for.reproducibilit
27460 79 5c 6e 64 65 67 72 65 65 5f 73 65 71 75 65 6e 63 65 20 3d 20 5b 64 20 66 6f 72 20 6e 2c 20 64 y\ndegree_sequence.=.[d.for.n,.d
27480 20 69 6e 20 47 2e 64 65 67 72 65 65 28 29 5d 20 20 23 20 64 65 67 72 65 65 20 73 65 71 75 65 6e .in.G.degree()]..#.degree.sequen
274a0 63 65 5c 6e 70 72 69 6e 74 28 66 5c 22 44 65 67 72 65 65 20 73 65 71 75 65 6e 63 65 20 7b 64 65 ce\nprint(f\"Degree.sequence.{de
274c0 67 72 65 65 5f 73 65 71 75 65 6e 63 65 7d 5c 22 29 5c 6e 70 72 69 6e 74 28 5c 22 44 65 67 72 65 gree_sequence}\")\nprint(\"Degre
274e0 65 20 68 69 73 74 6f 67 72 61 6d 5c 22 29 5c 6e 68 69 73 74 20 3d 20 7b 7d 5c 6e 66 6f 72 20 64 e.histogram\")\nhist.=.{}\nfor.d
27500 20 69 6e 20 64 65 67 72 65 65 5f 73 65 71 75 65 6e 63 65 3a 5c 6e 20 20 20 20 69 66 20 64 20 69 .in.degree_sequence:\n....if.d.i
27520 6e 20 68 69 73 74 3a 5c 6e 20 20 20 20 20 20 20 20 68 69 73 74 5b 64 5d 20 2b 3d 20 31 5c 6e 20 n.hist:\n........hist[d].+=.1\n.
27540 20 20 20 65 6c 73 65 3a 5c 6e 20 20 20 20 20 20 20 20 68 69 73 74 5b 64 5d 20 3d 20 31 5c 6e 70 ...else:\n........hist[d].=.1\np
27560 72 69 6e 74 28 5c 22 64 65 67 72 65 65 20 23 6e 6f 64 65 73 5c 22 29 5c 6e 66 6f 72 20 64 20 69 rint(\"degree.#nodes\")\nfor.d.i
27580 6e 20 68 69 73 74 3a 5c 6e 20 20 20 20 70 72 69 6e 74 28 66 5c 22 7b 64 3a 34 7d 20 7b 68 69 73 n.hist:\n....print(f\"{d:4}.{his
275a0 74 5b 64 5d 3a 36 7d 5c 22 29 5c 6e 5c 6e 70 6f 73 20 3d 20 6e 78 2e 73 70 72 69 6e 67 5f 6c 61 t[d]:6}\")\n\npos.=.nx.spring_la
275c0 79 6f 75 74 28 47 2c 20 73 65 65 64 3d 73 65 65 64 29 20 20 23 20 53 65 65 64 20 6c 61 79 6f 75 yout(G,.seed=seed)..#.Seed.layou
275e0 74 20 66 6f 72 20 72 65 70 72 6f 64 75 63 69 62 69 6c 69 74 79 5c 6e 6e 78 2e 64 72 61 77 28 47 t.for.reproducibility\nnx.draw(G
27600 2c 20 70 6f 73 3d 70 6f 73 29 5c 6e 70 6c 74 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a ,.pos=pos)\nplt.show()".......].
27620 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":.{....."
27640 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
27660 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
27680 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
276a0 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":
276c0 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":.{...
276e0 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",........
27700 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
27720 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
27740 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",......."
27760 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
27780 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
277a0 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",......
277c0 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 39 2e 31 36 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a ."version":."3.9.16".....}...},.
277e0 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 6e .."nbformat":.4,..."nbformat_min
27800 6f 72 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 0b 0f 5a 56 70 bb 76 32 93 08 00 00 93 08 or":.0.}PK..........ZVp.v2......
27820 00 00 19 00 00 00 67 72 61 70 68 2f 70 6c 6f 74 5f 66 6f 6f 74 62 61 6c 6c 2e 69 70 79 6e 62 7b ......graph/plot_football.ipynb{
27840 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_
27860 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_
27880 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":.
278a0 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....
278c0 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":.[],......
278e0 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
27900 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".......].....},.....{..
27920 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",...
27940 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
27960 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 46 6f 6f 74 62 61 6c 6c 5c 6e 5c 6e 4c e":.[........."\n#.Football\n\nL
27980 6f 61 64 20 66 6f 6f 74 62 61 6c 6c 20 6e 65 74 77 6f 72 6b 20 69 6e 20 47 4d 4c 20 66 6f 72 6d oad.football.network.in.GML.form
279a0 61 74 20 61 6e 64 20 63 6f 6d 70 75 74 65 20 73 6f 6d 65 20 6e 65 74 77 6f 72 6b 20 73 74 61 74 at.and.compute.some.network.stat
279c0 69 73 74 63 73 2e 5c 6e 5c 6e 53 68 6f 77 73 20 68 6f 77 20 74 6f 20 64 6f 77 6e 6c 6f 61 64 20 istcs.\n\nShows.how.to.download.
279e0 47 4d 4c 20 67 72 61 70 68 20 69 6e 20 61 20 7a 69 70 70 65 64 20 66 69 6c 65 2c 20 75 6e 70 61 GML.graph.in.a.zipped.file,.unpa
27a00 63 6b 20 69 74 2c 20 61 6e 64 20 6c 6f 61 64 5c 6e 69 6e 74 6f 20 61 20 4e 65 74 77 6f 72 6b 58 ck.it,.and.load\ninto.a.NetworkX
27a20 20 67 72 61 70 68 2e 5c 6e 5c 6e 52 65 71 75 69 72 65 73 20 49 6e 74 65 72 6e 65 74 20 63 6f 6e .graph.\n\nRequires.Internet.con
27a40 6e 65 63 74 69 6f 6e 20 74 6f 20 64 6f 77 6e 6c 6f 61 64 20 74 68 65 20 55 52 4c 5c 6e 68 74 74 nection.to.download.the.URL\nhtt
27a60 70 3a 2f 2f 77 77 77 2d 70 65 72 73 6f 6e 61 6c 2e 75 6d 69 63 68 2e 65 64 75 2f 7e 6d 65 6a 6e p://www-personal.umich.edu/~mejn
27a80 2f 6e 65 74 64 61 74 61 2f 66 6f 6f 74 62 61 6c 6c 2e 7a 69 70 5c 6e 22 0a 20 20 20 20 20 20 5d /netdata/football.zip\n".......]
27aa0 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":
27ac0 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"
27ae0 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":.{.....
27b00 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.......},.
27b20 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
27b40 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 69 6d 70 6f 72 74 20 75 72 6c 6c 69 62 2e 72 65 ce":.[........."import.urllib.re
27b60 71 75 65 73 74 5c 6e 69 6d 70 6f 72 74 20 69 6f 5c 6e 69 6d 70 6f 72 74 20 7a 69 70 66 69 6c 65 quest\nimport.io\nimport.zipfile
27b80 5c 6e 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 20 \n\nimport.matplotlib.pyplot.as.
27ba0 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 5c 6e 75 72 plt\nimport.networkx.as.nx\n\nur
27bc0 6c 20 3d 20 5c 22 68 74 74 70 3a 2f 2f 77 77 77 2d 70 65 72 73 6f 6e 61 6c 2e 75 6d 69 63 68 2e l.=.\"http://www-personal.umich.
27be0 65 64 75 2f 7e 6d 65 6a 6e 2f 6e 65 74 64 61 74 61 2f 66 6f 6f 74 62 61 6c 6c 2e 7a 69 70 5c 22 edu/~mejn/netdata/football.zip\"
27c00 5c 6e 5c 6e 73 6f 63 6b 20 3d 20 75 72 6c 6c 69 62 2e 72 65 71 75 65 73 74 2e 75 72 6c 6f 70 65 \n\nsock.=.urllib.request.urlope
27c20 6e 28 75 72 6c 29 20 20 23 20 6f 70 65 6e 20 55 52 4c 5c 6e 73 20 3d 20 69 6f 2e 42 79 74 65 73 n(url)..#.open.URL\ns.=.io.Bytes
27c40 49 4f 28 73 6f 63 6b 2e 72 65 61 64 28 29 29 20 20 23 20 72 65 61 64 20 69 6e 74 6f 20 42 79 74 IO(sock.read())..#.read.into.Byt
27c60 65 73 49 4f 20 5c 22 66 69 6c 65 5c 22 5c 6e 73 6f 63 6b 2e 63 6c 6f 73 65 28 29 5c 6e 5c 6e 7a esIO.\"file\"\nsock.close()\n\nz
27c80 66 20 3d 20 7a 69 70 66 69 6c 65 2e 5a 69 70 46 69 6c 65 28 73 29 20 20 23 20 7a 69 70 66 69 6c f.=.zipfile.ZipFile(s)..#.zipfil
27ca0 65 20 6f 62 6a 65 63 74 5c 6e 74 78 74 20 3d 20 7a 66 2e 72 65 61 64 28 5c 22 66 6f 6f 74 62 61 e.object\ntxt.=.zf.read(\"footba
27cc0 6c 6c 2e 74 78 74 5c 22 29 2e 64 65 63 6f 64 65 28 29 20 20 23 20 72 65 61 64 20 69 6e 66 6f 20 ll.txt\").decode()..#.read.info.
27ce0 66 69 6c 65 5c 6e 67 6d 6c 20 3d 20 7a 66 2e 72 65 61 64 28 5c 22 66 6f 6f 74 62 61 6c 6c 2e 67 file\ngml.=.zf.read(\"football.g
27d00 6d 6c 5c 22 29 2e 64 65 63 6f 64 65 28 29 20 20 23 20 72 65 61 64 20 67 6d 6c 20 64 61 74 61 5c ml\").decode()..#.read.gml.data\
27d20 6e 23 20 74 68 72 6f 77 20 61 77 61 79 20 62 6f 67 75 73 20 66 69 72 73 74 20 6c 69 6e 65 20 77 n#.throw.away.bogus.first.line.w
27d40 69 74 68 20 23 20 66 72 6f 6d 20 6d 65 6a 6e 20 66 69 6c 65 73 5c 6e 67 6d 6c 20 3d 20 67 6d 6c ith.#.from.mejn.files\ngml.=.gml
27d60 2e 73 70 6c 69 74 28 5c 22 5c 5c 6e 5c 22 29 5b 31 3a 5d 5c 6e 47 20 3d 20 6e 78 2e 70 61 72 73 .split(\"\\n\")[1:]\nG.=.nx.pars
27d80 65 5f 67 6d 6c 28 67 6d 6c 29 20 20 23 20 70 61 72 73 65 20 67 6d 6c 20 64 61 74 61 5c 6e 5c 6e e_gml(gml)..#.parse.gml.data\n\n
27da0 70 72 69 6e 74 28 74 78 74 29 5c 6e 23 20 70 72 69 6e 74 20 64 65 67 72 65 65 20 66 6f 72 20 65 print(txt)\n#.print.degree.for.e
27dc0 61 63 68 20 74 65 61 6d 20 2d 20 6e 75 6d 62 65 72 20 6f 66 20 67 61 6d 65 73 5c 6e 66 6f 72 20 ach.team.-.number.of.games\nfor.
27de0 6e 2c 20 64 20 69 6e 20 47 2e 64 65 67 72 65 65 28 29 3a 5c 6e 20 20 20 20 70 72 69 6e 74 28 66 n,.d.in.G.degree():\n....print(f
27e00 5c 22 7b 6e 3a 32 30 7d 20 7b 64 3a 32 7d 5c 22 29 5c 6e 5c 6e 6f 70 74 69 6f 6e 73 20 3d 20 7b \"{n:20}.{d:2}\")\n\noptions.=.{
27e20 5c 22 6e 6f 64 65 5f 63 6f 6c 6f 72 5c 22 3a 20 5c 22 62 6c 61 63 6b 5c 22 2c 20 5c 22 6e 6f 64 \"node_color\":.\"black\",.\"nod
27e40 65 5f 73 69 7a 65 5c 22 3a 20 35 30 2c 20 5c 22 6c 69 6e 65 77 69 64 74 68 73 5c 22 3a 20 30 2c e_size\":.50,.\"linewidths\":.0,
27e60 20 5c 22 77 69 64 74 68 5c 22 3a 20 30 2e 31 7d 5c 6e 5c 6e 70 6f 73 20 3d 20 6e 78 2e 73 70 72 .\"width\":.0.1}\n\npos.=.nx.spr
27e80 69 6e 67 5f 6c 61 79 6f 75 74 28 47 2c 20 73 65 65 64 3d 31 39 36 39 29 20 20 23 20 53 65 65 64 ing_layout(G,.seed=1969)..#.Seed
27ea0 20 66 6f 72 20 72 65 70 72 6f 64 75 63 69 62 6c 65 20 6c 61 79 6f 75 74 5c 6e 6e 78 2e 64 72 61 .for.reproducible.layout\nnx.dra
27ec0 77 28 47 2c 20 70 6f 73 2c 20 2a 2a 6f 70 74 69 6f 6e 73 29 5c 6e 70 6c 74 2e 73 68 6f 77 28 29 w(G,.pos,.**options)\nplt.show()
27ee0 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
27f00 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":.{......."
27f20 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",......
27f40 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
27f60 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
27f80 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
27fa0 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
27fc0 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.......},
27fe0 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",.
28000 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
28020 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",......
28040 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",
28060 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
28080 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 39 2e 31 36 22 0a 20 n3",......."version":."3.9.16"..
280a0 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
280c0 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 0c 0f 5a 56 format_minor":.0.}PK..........ZV
280e0 3e 2e d7 6c d4 0b 00 00 d4 0b 00 00 1c 00 00 00 67 72 61 70 68 2f 70 6c 6f 74 5f 74 72 69 61 64 >..l............graph/plot_triad
28100 5f 74 79 70 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 _types.ipynb{..."cells":.[.....{
28120 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",.....
28140 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,......
28160 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
28180 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
281a0 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":.[.......
281c0 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 20 .."%matplotlib.inline".......]..
281e0 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":."
28200 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":.{},
28220 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 20 ......."source":.[........."\n#.
28240 54 72 69 61 64 73 5c 6e 41 63 63 6f 72 64 69 6e 67 20 74 6f 20 74 68 65 20 70 61 70 65 72 20 62 Triads\nAccording.to.the.paper.b
28260 79 20 53 6e 69 6a 64 65 72 73 2c 20 54 2e 20 28 32 30 31 32 29 2e 20 5c 75 32 30 31 63 54 72 61 y.Snijders,.T..(2012)..\u201cTra
28280 6e 73 69 74 69 76 69 74 79 20 61 6e 64 20 74 72 69 61 64 73 2e 5c 75 32 30 31 64 5c 6e 55 6e 69 nsitivity.and.triads.\u201d\nUni
282a0 76 65 72 73 69 74 79 20 6f 66 20 4f 78 66 6f 72 64 2c 20 74 68 65 72 65 20 61 72 65 20 31 36 20 versity.of.Oxford,.there.are.16.
282c0 54 72 69 61 64 20 54 79 70 65 73 20 70 6f 73 73 69 62 6c 65 2e 20 54 68 69 73 20 70 6c 6f 74 20 Triad.Types.possible..This.plot.
282e0 73 68 6f 77 73 5c 6e 74 68 65 20 31 36 20 54 72 69 61 64 20 54 79 70 65 73 20 74 68 61 74 20 63 shows\nthe.16.Triad.Types.that.c
28300 61 6e 20 62 65 20 69 64 65 6e 74 69 66 69 65 64 20 77 69 74 68 69 6e 20 64 69 72 65 63 74 65 64 an.be.identified.within.directed
28320 20 6e 65 74 77 6f 72 6b 73 2e 5c 6e 54 72 69 61 64 69 63 20 72 65 6c 61 74 69 6f 6e 73 68 69 70 .networks.\nTriadic.relationship
28340 73 20 61 72 65 20 65 73 70 65 63 69 61 6c 6c 79 20 75 73 65 66 75 6c 20 77 68 65 6e 20 61 6e 61 s.are.especially.useful.when.ana
28360 6c 79 73 69 6e 67 20 53 6f 63 69 61 6c 20 4e 65 74 77 6f 72 6b 73 2e 5c 6e 54 68 65 20 66 69 72 lysing.Social.Networks.\nThe.fir
28380 73 74 20 74 68 72 65 65 20 64 69 67 69 74 73 20 72 65 66 65 72 20 74 6f 20 74 68 65 20 6e 75 6d st.three.digits.refer.to.the.num
283a0 62 65 72 20 6f 66 20 6d 75 74 75 61 6c 2c 20 61 73 79 6d 6d 65 74 72 69 63 20 61 6e 64 20 6e 75 ber.of.mutual,.asymmetric.and.nu
283c0 6c 6c 5c 6e 64 79 61 64 73 20 28 62 69 64 69 72 65 63 74 69 6f 6e 61 6c 2c 20 75 6e 69 64 69 72 ll\ndyads.(bidirectional,.unidir
283e0 65 63 74 69 6f 6e 20 61 6e 64 20 6e 6f 6e 65 64 67 65 73 29 20 61 6e 64 20 74 68 65 20 6c 65 74 ection.and.nonedges).and.the.let
28400 74 65 72 20 67 69 76 65 73 5c 6e 74 68 65 20 4f 72 69 65 6e 74 61 74 69 6f 6e 20 61 73 20 55 70 ter.gives\nthe.Orientation.as.Up
28420 20 28 55 29 2c 20 44 6f 77 6e 20 28 44 29 20 2c 20 43 79 63 6c 69 63 61 6c 20 28 43 29 20 6f 72 .(U),.Down.(D).,.Cyclical.(C).or
28440 20 54 72 61 6e 73 69 74 69 76 65 20 28 54 29 2e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 .Transitive.(T).\n".......].....
28460 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
28480 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
284a0 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":.{........."
284c0 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.......},......
284e0 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":.
28500 5b 0a 20 20 20 20 20 20 20 20 22 69 6d 70 6f 72 74 20 6e 65 74 77 6f 72 6b 78 20 61 73 20 6e 78 [........."import.networkx.as.nx
28520 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 20 70 6c \nimport.matplotlib.pyplot.as.pl
28540 74 5c 6e 5c 6e 66 69 67 2c 20 61 78 65 73 20 3d 20 70 6c 74 2e 73 75 62 70 6c 6f 74 73 28 34 2c t\n\nfig,.axes.=.plt.subplots(4,
28560 20 34 2c 20 66 69 67 73 69 7a 65 3d 28 31 30 2c 20 31 30 29 29 5c 6e 74 72 69 61 64 73 20 3d 20 .4,.figsize=(10,.10))\ntriads.=.
28580 7b 5c 6e 20 20 20 20 5c 22 30 30 33 5c 22 3a 20 5b 5d 2c 5c 6e 20 20 20 20 5c 22 30 31 32 5c 22 {\n....\"003\":.[],\n....\"012\"
285a0 3a 20 5b 28 31 2c 20 32 29 5d 2c 5c 6e 20 20 20 20 5c 22 31 30 32 5c 22 3a 20 5b 28 31 2c 20 32 :.[(1,.2)],\n....\"102\":.[(1,.2
285c0 29 2c 20 28 32 2c 20 31 29 5d 2c 5c 6e 20 20 20 20 5c 22 30 32 31 44 5c 22 3a 20 5b 28 33 2c 20 ),.(2,.1)],\n....\"021D\":.[(3,.
285e0 31 29 2c 20 28 33 2c 20 32 29 5d 2c 5c 6e 20 20 20 20 5c 22 30 32 31 55 5c 22 3a 20 5b 28 31 2c 1),.(3,.2)],\n....\"021U\":.[(1,
28600 20 33 29 2c 20 28 32 2c 20 33 29 5d 2c 5c 6e 20 20 20 20 5c 22 30 32 31 43 5c 22 3a 20 5b 28 31 .3),.(2,.3)],\n....\"021C\":.[(1
28620 2c 20 33 29 2c 20 28 33 2c 20 32 29 5d 2c 5c 6e 20 20 20 20 5c 22 31 31 31 44 5c 22 3a 20 5b 28 ,.3),.(3,.2)],\n....\"111D\":.[(
28640 31 2c 20 32 29 2c 20 28 32 2c 20 31 29 2c 20 28 33 2c 20 31 29 5d 2c 5c 6e 20 20 20 20 5c 22 31 1,.2),.(2,.1),.(3,.1)],\n....\"1
28660 31 31 55 5c 22 3a 20 5b 28 31 2c 20 32 29 2c 20 28 32 2c 20 31 29 2c 20 28 31 2c 20 33 29 5d 2c 11U\":.[(1,.2),.(2,.1),.(1,.3)],
28680 5c 6e 20 20 20 20 5c 22 30 33 30 54 5c 22 3a 20 5b 28 31 2c 20 32 29 2c 20 28 33 2c 20 32 29 2c \n....\"030T\":.[(1,.2),.(3,.2),
286a0 20 28 31 2c 20 33 29 5d 2c 5c 6e 20 20 20 20 5c 22 30 33 30 43 5c 22 3a 20 5b 28 31 2c 20 33 29 .(1,.3)],\n....\"030C\":.[(1,.3)
286c0 2c 20 28 33 2c 20 32 29 2c 20 28 32 2c 20 31 29 5d 2c 5c 6e 20 20 20 20 5c 22 32 30 31 5c 22 3a ,.(3,.2),.(2,.1)],\n....\"201\":
286e0 20 5b 28 31 2c 20 32 29 2c 20 28 32 2c 20 31 29 2c 20 28 33 2c 20 31 29 2c 20 28 31 2c 20 33 29 .[(1,.2),.(2,.1),.(3,.1),.(1,.3)
28700 5d 2c 5c 6e 20 20 20 20 5c 22 31 32 30 44 5c 22 3a 20 5b 28 31 2c 20 32 29 2c 20 28 32 2c 20 31 ],\n....\"120D\":.[(1,.2),.(2,.1
28720 29 2c 20 28 33 2c 20 31 29 2c 20 28 33 2c 20 32 29 5d 2c 5c 6e 20 20 20 20 5c 22 31 32 30 55 5c ),.(3,.1),.(3,.2)],\n....\"120U\
28740 22 3a 20 5b 28 31 2c 20 32 29 2c 20 28 32 2c 20 31 29 2c 20 28 31 2c 20 33 29 2c 20 28 32 2c 20 ":.[(1,.2),.(2,.1),.(1,.3),.(2,.
28760 33 29 5d 2c 5c 6e 20 20 20 20 5c 22 31 32 30 43 5c 22 3a 20 5b 28 31 2c 20 32 29 2c 20 28 32 2c 3)],\n....\"120C\":.[(1,.2),.(2,
28780 20 31 29 2c 20 28 31 2c 20 33 29 2c 20 28 33 2c 20 32 29 5d 2c 5c 6e 20 20 20 20 5c 22 32 31 30 .1),.(1,.3),.(3,.2)],\n....\"210
287a0 5c 22 3a 20 5b 28 31 2c 20 32 29 2c 20 28 32 2c 20 31 29 2c 20 28 31 2c 20 33 29 2c 20 28 33 2c \":.[(1,.2),.(2,.1),.(1,.3),.(3,
287c0 20 32 29 2c 20 28 32 2c 20 33 29 5d 2c 5c 6e 20 20 20 20 5c 22 33 30 30 5c 22 3a 20 5b 28 31 2c .2),.(2,.3)],\n....\"300\":.[(1,
287e0 20 32 29 2c 20 28 32 2c 20 31 29 2c 20 28 32 2c 20 33 29 2c 20 28 33 2c 20 32 29 2c 20 28 31 2c .2),.(2,.1),.(2,.3),.(3,.2),.(1,
28800 20 33 29 2c 20 28 33 2c 20 31 29 5d 2c 5c 6e 7d 5c 6e 5c 6e 66 6f 72 20 28 74 69 74 6c 65 2c 20 .3),.(3,.1)],\n}\n\nfor.(title,.
28820 74 72 69 61 64 29 2c 20 61 78 20 69 6e 20 7a 69 70 28 74 72 69 61 64 73 2e 69 74 65 6d 73 28 29 triad),.ax.in.zip(triads.items()
28840 2c 20 61 78 65 73 2e 66 6c 61 74 74 65 6e 28 29 29 3a 5c 6e 20 20 20 20 47 20 3d 20 6e 78 2e 44 ,.axes.flatten()):\n....G.=.nx.D
28860 69 47 72 61 70 68 28 29 5c 6e 20 20 20 20 47 2e 61 64 64 5f 6e 6f 64 65 73 5f 66 72 6f 6d 28 5b iGraph()\n....G.add_nodes_from([
28880 31 2c 20 32 2c 20 33 5d 29 5c 6e 20 20 20 20 47 2e 61 64 64 5f 65 64 67 65 73 5f 66 72 6f 6d 28 1,.2,.3])\n....G.add_edges_from(
288a0 74 72 69 61 64 29 5c 6e 20 20 20 20 6e 78 2e 64 72 61 77 5f 6e 65 74 77 6f 72 6b 78 28 5c 6e 20 triad)\n....nx.draw_networkx(\n.
288c0 20 20 20 20 20 20 20 47 2c 5c 6e 20 20 20 20 20 20 20 20 61 78 3d 61 78 2c 5c 6e 20 20 20 20 20 .......G,\n........ax=ax,\n.....
288e0 20 20 20 77 69 74 68 5f 6c 61 62 65 6c 73 3d 46 61 6c 73 65 2c 5c 6e 20 20 20 20 20 20 20 20 6e ...with_labels=False,\n........n
28900 6f 64 65 5f 63 6f 6c 6f 72 3d 5b 5c 22 67 72 65 65 6e 5c 22 5d 2c 5c 6e 20 20 20 20 20 20 20 20 ode_color=[\"green\"],\n........
28920 6e 6f 64 65 5f 73 69 7a 65 3d 32 30 30 2c 5c 6e 20 20 20 20 20 20 20 20 61 72 72 6f 77 73 69 7a node_size=200,\n........arrowsiz
28940 65 3d 32 30 2c 5c 6e 20 20 20 20 20 20 20 20 77 69 64 74 68 3d 32 2c 5c 6e 20 20 20 20 20 20 20 e=20,\n........width=2,\n.......
28960 20 70 6f 73 3d 6e 78 2e 70 6c 61 6e 61 72 5f 6c 61 79 6f 75 74 28 47 29 2c 5c 6e 20 20 20 20 29 .pos=nx.planar_layout(G),\n....)
28980 5c 6e 20 20 20 20 61 78 2e 73 65 74 5f 78 6c 69 6d 28 76 61 6c 20 2a 20 31 2e 32 20 66 6f 72 20 \n....ax.set_xlim(val.*.1.2.for.
289a0 76 61 6c 20 69 6e 20 61 78 2e 67 65 74 5f 78 6c 69 6d 28 29 29 5c 6e 20 20 20 20 61 78 2e 73 65 val.in.ax.get_xlim())\n....ax.se
289c0 74 5f 79 6c 69 6d 28 76 61 6c 20 2a 20 31 2e 32 20 66 6f 72 20 76 61 6c 20 69 6e 20 61 78 2e 67 t_ylim(val.*.1.2.for.val.in.ax.g
289e0 65 74 5f 79 6c 69 6d 28 29 29 5c 6e 20 20 20 20 61 78 2e 74 65 78 74 28 5c 6e 20 20 20 20 20 20 et_ylim())\n....ax.text(\n......
28a00 20 20 30 2c 5c 6e 20 20 20 20 20 20 20 20 30 2c 5c 6e 20 20 20 20 20 20 20 20 74 69 74 6c 65 2c ..0,\n........0,\n........title,
28a20 5c 6e 20 20 20 20 20 20 20 20 66 6f 6e 74 73 69 7a 65 3d 31 35 2c 5c 6e 20 20 20 20 20 20 20 20 \n........fontsize=15,\n........
28a40 66 6f 6e 74 77 65 69 67 68 74 3d 5c 22 65 78 74 72 61 20 62 6f 6c 64 5c 22 2c 5c 6e 20 20 20 20 fontweight=\"extra.bold\",\n....
28a60 20 20 20 20 68 6f 72 69 7a 6f 6e 74 61 6c 61 6c 69 67 6e 6d 65 6e 74 3d 5c 22 63 65 6e 74 65 72 ....horizontalalignment=\"center
28a80 5c 22 2c 5c 6e 20 20 20 20 20 20 20 20 62 62 6f 78 3d 7b 5c 22 62 6f 78 73 74 79 6c 65 5c 22 3a \",\n........bbox={\"boxstyle\":
28aa0 20 5c 22 73 71 75 61 72 65 2c 70 61 64 3d 30 2e 33 5c 22 2c 20 5c 22 66 63 5c 22 3a 20 5c 22 6e .\"square,pad=0.3\",.\"fc\":.\"n
28ac0 6f 6e 65 5c 22 7d 2c 5c 6e 20 20 20 20 29 5c 6e 66 69 67 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 one\"},\n....)\nfig.tight_layout
28ae0 28 29 5c 6e 70 6c 74 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 ()\nplt.show()".......].....}...
28b00 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 6c 73 70 ],..."metadata":.{....."kernelsp
28b20 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 22 50 79 ec":.{......."display_name":."Py
28b40 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 79 74 68 thon.3",......."language":."pyth
28b60 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 20 20 20 on",......."name":."python3"....
28b80 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 20 20 20 .},....."language_info":.{......
28ba0 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 20 22 6e ."codemirror_mode":.{........."n
28bc0 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 73 69 6f ame":."ipython",........."versio
28be0 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 74 65 6e n":.3.......},......."file_exten
28c00 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 22 3a 20 sion":.".py",......."mimetype":.
28c20 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 3a 20 22 "text/x-python",......."name":."
28c40 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 6f 72 74 python",......."nbconvert_export
28c60 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 73 5f 6c er":."python",......."pygments_l
28c80 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 73 69 6f exer":."ipython3",......."versio
28ca0 6e 22 3a 20 22 33 2e 39 2e 31 36 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 6e 62 66 6f 72 n":."3.9.16".....}...},..."nbfor
28cc0 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 0a 7d mat":.4,..."nbformat_minor":.0.}
28ce0 50 4b 03 04 14 00 00 00 00 00 0a 0f 5a 56 b5 d0 ba 3b a7 05 00 00 a7 05 00 00 29 00 00 00 67 72 PK..........ZV...;........)...gr
28d00 61 70 68 2f 70 6c 6f 74 5f 65 78 70 65 63 74 65 64 5f 64 65 67 72 65 65 5f 73 65 71 75 65 6e 63 aph/plot_expected_degree_sequenc
28d20 65 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 e.ipynb{..."cells":.[.....{.....
28d40 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
28d60 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
28d80 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
28da0 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":.[
28dc0 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
28de0 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".......].....},
28e00 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
28e20 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":.{},.....
28e40 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 45 78 70 65 63 .."source":.[........."\n#.Expec
28e60 74 65 64 20 44 65 67 72 65 65 20 53 65 71 75 65 6e 63 65 5c 6e 5c 6e 52 61 6e 64 6f 6d 20 67 72 ted.Degree.Sequence\n\nRandom.gr
28e80 61 70 68 20 66 72 6f 6d 20 67 69 76 65 6e 20 64 65 67 72 65 65 20 73 65 71 75 65 6e 63 65 2e 5c aph.from.given.degree.sequence.\
28ea0 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
28ec0 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
28ee0 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
28f00 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
28f20 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":.[],..
28f40 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 72 74 ....."source":.[........."import
28f60 20 6e 65 74 77 6f 72 6b 78 20 61 73 20 6e 78 5c 6e 5c 6e 23 20 6d 61 6b 65 20 61 20 72 61 6e 64 .networkx.as.nx\n\n#.make.a.rand
28f80 6f 6d 20 67 72 61 70 68 20 6f 66 20 35 30 30 20 6e 6f 64 65 73 20 77 69 74 68 20 65 78 70 65 63 om.graph.of.500.nodes.with.expec
28fa0 74 65 64 20 64 65 67 72 65 65 73 20 6f 66 20 35 30 5c 6e 6e 20 3d 20 35 30 30 20 20 23 20 6e 20 ted.degrees.of.50\nn.=.500..#.n.
28fc0 6e 6f 64 65 73 5c 6e 70 20 3d 20 30 2e 31 5c 6e 77 20 3d 20 5b 70 20 2a 20 6e 20 66 6f 72 20 69 nodes\np.=.0.1\nw.=.[p.*.n.for.i
28fe0 20 69 6e 20 72 61 6e 67 65 28 6e 29 5d 20 20 23 20 77 20 3d 20 70 2a 6e 20 66 6f 72 20 61 6c 6c .in.range(n)]..#.w.=.p*n.for.all
29000 20 6e 6f 64 65 73 5c 6e 47 20 3d 20 6e 78 2e 65 78 70 65 63 74 65 64 5f 64 65 67 72 65 65 5f 67 .nodes\nG.=.nx.expected_degree_g
29020 72 61 70 68 28 77 29 20 20 23 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 6d 6f 64 65 6c 5c 6e raph(w)..#.configuration.model\n
29040 70 72 69 6e 74 28 5c 22 44 65 67 72 65 65 20 68 69 73 74 6f 67 72 61 6d 5c 22 29 5c 6e 70 72 69 print(\"Degree.histogram\")\npri
29060 6e 74 28 5c 22 64 65 67 72 65 65 20 28 23 6e 6f 64 65 73 29 20 2a 2a 2a 2a 5c 22 29 5c 6e 64 68 nt(\"degree.(#nodes).****\")\ndh
29080 20 3d 20 6e 78 2e 64 65 67 72 65 65 5f 68 69 73 74 6f 67 72 61 6d 28 47 29 5c 6e 66 6f 72 20 69 .=.nx.degree_histogram(G)\nfor.i
290a0 2c 20 64 20 69 6e 20 65 6e 75 6d 65 72 61 74 65 28 64 68 29 3a 5c 6e 20 20 20 20 70 72 69 6e 74 ,.d.in.enumerate(dh):\n....print
290c0 28 66 5c 22 7b 69 3a 32 7d 20 28 7b 64 3a 32 7d 29 20 7b 27 2a 27 2a 64 7d 5c 22 29 22 0a 20 20 (f\"{i:2}.({d:2}).{'*'*d}\")"...
290e0 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":.{
29100 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
29120 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
29140 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":
29160 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_
29180 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"
291a0 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",..
291c0 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.......},....
291e0 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",.....
29200 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",..
29220 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
29240 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",....
29260 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",
29280 0a 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 39 2e 31 36 22 0a 20 20 20 20 7d ......."version":."3.9.16".....}
292a0 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
292c0 61 74 5f 6d 69 6e 6f 72 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 0b 0f 5a 56 e0 ab 9b ef at_minor":.0.}PK..........ZV....
292e0 c2 05 00 00 c2 05 00 00 1c 00 00 00 67 72 61 70 68 2f 70 6c 6f 74 5f 6b 61 72 61 74 65 5f 63 6c ............graph/plot_karate_cl
29300 75 62 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 ub.ipynb{..."cells":.[.....{....
29320 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
29340 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
29360 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":.
29380 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":.
293a0 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 25 [],......."source":.[........."%
293c0 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 7d matplotlib.inline".......].....}
293e0 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
29400 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":.{},....
29420 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 4b 61 72 61 ..."source":.[........."\n#.Kara
29440 74 65 20 43 6c 75 62 5c 6e 5c 6e 5a 61 63 68 61 72 79 27 73 20 4b 61 72 61 74 65 20 43 6c 75 62 te.Club\n\nZachary's.Karate.Club
29460 20 67 72 61 70 68 5c 6e 5c 6e 44 61 74 61 20 66 69 6c 65 20 66 72 6f 6d 3a 5c 6e 68 74 74 70 3a .graph\n\nData.file.from:\nhttp:
29480 2f 2f 76 6c 61 64 6f 2e 66 6d 66 2e 75 6e 69 2d 6c 6a 2e 73 69 2f 70 75 62 2f 6e 65 74 77 6f 72 //vlado.fmf.uni-lj.si/pub/networ
294a0 6b 73 2f 64 61 74 61 2f 55 63 69 6e 65 74 2f 55 63 69 44 61 74 61 2e 68 74 6d 5c 6e 5c 6e 5a 61 ks/data/Ucinet/UciData.htm\n\nZa
294c0 63 68 61 72 79 20 57 2e 20 28 31 39 37 37 29 2e 5c 6e 41 6e 20 69 6e 66 6f 72 6d 61 74 69 6f 6e chary.W..(1977).\nAn.information
294e0 20 66 6c 6f 77 20 6d 6f 64 65 6c 20 66 6f 72 20 63 6f 6e 66 6c 69 63 74 20 61 6e 64 20 66 69 73 .flow.model.for.conflict.and.fis
29500 73 69 6f 6e 20 69 6e 20 73 6d 61 6c 6c 20 67 72 6f 75 70 73 2e 5c 6e 4a 6f 75 72 6e 61 6c 20 6f sion.in.small.groups.\nJournal.o
29520 66 20 41 6e 74 68 72 6f 70 6f 6c 6f 67 69 63 61 6c 20 52 65 73 65 61 72 63 68 2c 20 33 33 2c 20 f.Anthropological.Research,.33,.
29540 34 35 32 2d 34 37 33 2e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 452-473.\n".......].....},.....{
29560 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",.....
29580 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,......
295a0 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
295c0 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
295e0 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":.[.......
29600 20 20 22 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 20 70 .."import.matplotlib.pyplot.as.p
29620 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 5c 6e 47 20 3d lt\nimport.networkx.as.nx\n\nG.=
29640 20 6e 78 2e 6b 61 72 61 74 65 5f 63 6c 75 62 5f 67 72 61 70 68 28 29 5c 6e 70 72 69 6e 74 28 5c .nx.karate_club_graph()\nprint(\
29660 22 4e 6f 64 65 20 44 65 67 72 65 65 5c 22 29 5c 6e 66 6f 72 20 76 20 69 6e 20 47 3a 5c 6e 20 20 "Node.Degree\")\nfor.v.in.G:\n..
29680 20 20 70 72 69 6e 74 28 66 5c 22 7b 76 3a 34 7d 20 7b 47 2e 64 65 67 72 65 65 28 76 29 3a 36 7d ..print(f\"{v:4}.{G.degree(v):6}
296a0 5c 22 29 5c 6e 5c 6e 6e 78 2e 64 72 61 77 5f 63 69 72 63 75 6c 61 72 28 47 2c 20 77 69 74 68 5f \")\n\nnx.draw_circular(G,.with_
296c0 6c 61 62 65 6c 73 3d 54 72 75 65 29 5c 6e 70 6c 74 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 labels=True)\nplt.show()".......
296e0 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":.{....
29700 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_
29720 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
29740 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
29760 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
29780 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":.{.
297a0 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",......
297c0 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.......},......."
297e0 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
29800 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",......
29820 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
29840 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",......."
29860 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",....
29880 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 39 2e 31 36 22 0a 20 20 20 20 7d 0a 20 20 7d ..."version":."3.9.16".....}...}
298a0 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 6d ,..."nbformat":.4,..."nbformat_m
298c0 69 6e 6f 72 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 0b 0f 5a 56 6d e4 97 07 a3 0f 00 00 inor":.0.}PK..........ZVm.......
298e0 a3 0f 00 00 2a 00 00 00 67 72 61 70 68 2f 70 6c 6f 74 5f 6e 61 70 6f 6c 65 6f 6e 5f 72 75 73 73 ....*...graph/plot_napoleon_russ
29900 69 61 6e 5f 63 61 6d 70 61 69 67 6e 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 22 3a 20 5b ian_campaign.ipynb{..."cells":.[
29920 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"
29940 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,
29960 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
29980 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.......},......."
299a0 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":.[.
299c0 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"....
299e0 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
29a00 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
29a20 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":.[........
29a40 20 22 5c 6e 23 20 4e 61 70 6f 6c 65 6f 6e 20 52 75 73 73 69 61 6e 20 43 61 6d 70 61 69 67 6e 5c ."\n#.Napoleon.Russian.Campaign\
29a60 6e 5c 6e 4d 69 6e 61 72 64 27 73 20 64 61 74 61 20 66 72 6f 6d 20 4e 61 70 6f 6c 65 6f 6e 27 73 n\nMinard's.data.from.Napoleon's
29a80 20 31 38 31 32 2d 31 38 31 33 20 20 52 75 73 73 69 61 6e 20 43 61 6d 70 61 69 67 6e 2e 5c 6e 68 .1812-1813..Russian.Campaign.\nh
29aa0 74 74 70 73 3a 2f 2f 77 65 62 2e 61 72 63 68 69 76 65 2e 6f 72 67 2f 77 65 62 2f 32 30 30 38 30 ttps://web.archive.org/web/20080
29ac0 31 31 32 30 34 32 36 35 36 2f 68 74 74 70 3a 2f 2f 77 77 77 2e 6d 61 74 68 2e 79 6f 72 6b 75 2e 112042656/http://www.math.yorku.
29ae0 63 61 2f 53 43 53 2f 47 61 6c 6c 65 72 79 2f 6d 69 6e 61 72 64 2f 6d 69 6e 61 72 64 2e 74 78 74 ca/SCS/Gallery/minard/minard.txt
29b00 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".......].....},.....{......."
29b20 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
29b40 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
29b60 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
29b80 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":.[],.
29ba0 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 72 ......"source":.[........."impor
29bc0 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 70 6c 6f 74 20 61 73 20 70 6c 74 5c 6e 69 6d 70 6f t.matplotlib.pyplot.as.plt\nimpo
29be0 72 74 20 6e 65 74 77 6f 72 6b 78 20 61 73 20 6e 78 5c 6e 5c 6e 5c 6e 64 65 66 20 6d 69 6e 61 72 rt.networkx.as.nx\n\n\ndef.minar
29c00 64 5f 67 72 61 70 68 28 29 3a 5c 6e 20 20 20 20 64 61 74 61 31 20 3d 20 5c 22 5c 22 5c 22 5c 5c d_graph():\n....data1.=.\"\"\"\\
29c20 5c 6e 32 34 2e 30 2c 35 34 2e 39 2c 33 34 30 30 30 30 2c 41 2c 31 5c 6e 32 34 2e 35 2c 35 35 2e \n24.0,54.9,340000,A,1\n24.5,55.
29c40 30 2c 33 34 30 30 30 30 2c 41 2c 31 5c 6e 32 35 2e 35 2c 35 34 2e 35 2c 33 34 30 30 30 30 2c 41 0,340000,A,1\n25.5,54.5,340000,A
29c60 2c 31 5c 6e 32 36 2e 30 2c 35 34 2e 37 2c 33 32 30 30 30 30 2c 41 2c 31 5c 6e 32 37 2e 30 2c 35 ,1\n26.0,54.7,320000,A,1\n27.0,5
29c80 34 2e 38 2c 33 30 30 30 30 30 2c 41 2c 31 5c 6e 32 38 2e 30 2c 35 34 2e 39 2c 32 38 30 30 30 30 4.8,300000,A,1\n28.0,54.9,280000
29ca0 2c 41 2c 31 5c 6e 32 38 2e 35 2c 35 35 2e 30 2c 32 34 30 30 30 30 2c 41 2c 31 5c 6e 32 39 2e 30 ,A,1\n28.5,55.0,240000,A,1\n29.0
29cc0 2c 35 35 2e 31 2c 32 31 30 30 30 30 2c 41 2c 31 5c 6e 33 30 2e 30 2c 35 35 2e 32 2c 31 38 30 30 ,55.1,210000,A,1\n30.0,55.2,1800
29ce0 30 30 2c 41 2c 31 5c 6e 33 30 2e 33 2c 35 35 2e 33 2c 31 37 35 30 30 30 2c 41 2c 31 5c 6e 33 32 00,A,1\n30.3,55.3,175000,A,1\n32
29d00 2e 30 2c 35 34 2e 38 2c 31 34 35 30 30 30 2c 41 2c 31 5c 6e 33 33 2e 32 2c 35 34 2e 39 2c 31 34 .0,54.8,145000,A,1\n33.2,54.9,14
29d20 30 30 30 30 2c 41 2c 31 5c 6e 33 34 2e 34 2c 35 35 2e 35 2c 31 32 37 31 30 30 2c 41 2c 31 5c 6e 0000,A,1\n34.4,55.5,127100,A,1\n
29d40 33 35 2e 35 2c 35 35 2e 34 2c 31 30 30 30 30 30 2c 41 2c 31 5c 6e 33 36 2e 30 2c 35 35 2e 35 2c 35.5,55.4,100000,A,1\n36.0,55.5,
29d60 31 30 30 30 30 30 2c 41 2c 31 5c 6e 33 37 2e 36 2c 35 35 2e 38 2c 31 30 30 30 30 30 2c 41 2c 31 100000,A,1\n37.6,55.8,100000,A,1
29d80 5c 6e 33 37 2e 37 2c 35 35 2e 37 2c 31 30 30 30 30 30 2c 52 2c 31 5c 6e 33 37 2e 35 2c 35 35 2e \n37.7,55.7,100000,R,1\n37.5,55.
29da0 37 2c 39 38 30 30 30 2c 52 2c 31 5c 6e 33 37 2e 30 2c 35 35 2e 30 2c 39 37 30 30 30 2c 52 2c 31 7,98000,R,1\n37.0,55.0,97000,R,1
29dc0 5c 6e 33 36 2e 38 2c 35 35 2e 30 2c 39 36 30 30 30 2c 52 2c 31 5c 6e 33 35 2e 34 2c 35 35 2e 33 \n36.8,55.0,96000,R,1\n35.4,55.3
29de0 2c 38 37 30 30 30 2c 52 2c 31 5c 6e 33 34 2e 33 2c 35 35 2e 32 2c 35 35 30 30 30 2c 52 2c 31 5c ,87000,R,1\n34.3,55.2,55000,R,1\
29e00 6e 33 33 2e 33 2c 35 34 2e 38 2c 33 37 30 30 30 2c 52 2c 31 5c 6e 33 32 2e 30 2c 35 34 2e 36 2c n33.3,54.8,37000,R,1\n32.0,54.6,
29e20 32 34 30 30 30 2c 52 2c 31 5c 6e 33 30 2e 34 2c 35 34 2e 34 2c 32 30 30 30 30 2c 52 2c 31 5c 6e 24000,R,1\n30.4,54.4,20000,R,1\n
29e40 32 39 2e 32 2c 35 34 2e 33 2c 32 30 30 30 30 2c 52 2c 31 5c 6e 32 38 2e 35 2c 35 34 2e 32 2c 32 29.2,54.3,20000,R,1\n28.5,54.2,2
29e60 30 30 30 30 2c 52 2c 31 5c 6e 32 38 2e 33 2c 35 34 2e 33 2c 32 30 30 30 30 2c 52 2c 31 5c 6e 32 0000,R,1\n28.3,54.3,20000,R,1\n2
29e80 37 2e 35 2c 35 34 2e 35 2c 32 30 30 30 30 2c 52 2c 31 5c 6e 32 36 2e 38 2c 35 34 2e 33 2c 31 32 7.5,54.5,20000,R,1\n26.8,54.3,12
29ea0 30 30 30 2c 52 2c 31 5c 6e 32 36 2e 34 2c 35 34 2e 34 2c 31 34 30 30 30 2c 52 2c 31 5c 6e 32 35 000,R,1\n26.4,54.4,14000,R,1\n25
29ec0 2e 30 2c 35 34 2e 34 2c 38 30 30 30 2c 52 2c 31 5c 6e 32 34 2e 34 2c 35 34 2e 34 2c 34 30 30 30 .0,54.4,8000,R,1\n24.4,54.4,4000
29ee0 2c 52 2c 31 5c 6e 32 34 2e 32 2c 35 34 2e 34 2c 34 30 30 30 2c 52 2c 31 5c 6e 32 34 2e 31 2c 35 ,R,1\n24.2,54.4,4000,R,1\n24.1,5
29f00 34 2e 34 2c 34 30 30 30 2c 52 2c 31 5c 22 5c 22 5c 22 5c 6e 20 20 20 20 64 61 74 61 32 20 3d 20 4.4,4000,R,1\"\"\"\n....data2.=.
29f20 5c 22 5c 22 5c 22 5c 5c 5c 6e 32 34 2e 30 2c 35 35 2e 31 2c 36 30 30 30 30 2c 41 2c 32 5c 6e 32 \"\"\"\\\n24.0,55.1,60000,A,2\n2
29f40 34 2e 35 2c 35 35 2e 32 2c 36 30 30 30 30 2c 41 2c 32 5c 6e 32 35 2e 35 2c 35 34 2e 37 2c 36 30 4.5,55.2,60000,A,2\n25.5,54.7,60
29f60 30 30 30 2c 41 2c 32 5c 6e 32 36 2e 36 2c 35 35 2e 37 2c 34 30 30 30 30 2c 41 2c 32 5c 6e 32 37 000,A,2\n26.6,55.7,40000,A,2\n27
29f80 2e 34 2c 35 35 2e 36 2c 33 33 30 30 30 2c 41 2c 32 5c 6e 32 38 2e 37 2c 35 35 2e 35 2c 33 33 30 .4,55.6,33000,A,2\n28.7,55.5,330
29fa0 30 30 2c 52 2c 32 5c 6e 32 39 2e 32 2c 35 34 2e 32 2c 33 30 30 30 30 2c 52 2c 32 5c 6e 32 38 2e 00,R,2\n29.2,54.2,30000,R,2\n28.
29fc0 35 2c 35 34 2e 31 2c 33 30 30 30 30 2c 52 2c 32 5c 6e 32 38 2e 33 2c 35 34 2e 32 2c 32 38 30 30 5,54.1,30000,R,2\n28.3,54.2,2800
29fe0 30 2c 52 2c 32 5c 22 5c 22 5c 22 5c 6e 20 20 20 20 64 61 74 61 33 20 3d 20 5c 22 5c 22 5c 22 5c 0,R,2\"\"\"\n....data3.=.\"\"\"\
2a000 5c 5c 6e 32 34 2e 30 2c 35 35 2e 32 2c 32 32 30 30 30 2c 41 2c 33 5c 6e 32 34 2e 35 2c 35 35 2e \\n24.0,55.2,22000,A,3\n24.5,55.
2a020 33 2c 32 32 30 30 30 2c 41 2c 33 5c 6e 32 34 2e 36 2c 35 35 2e 38 2c 36 30 30 30 2c 41 2c 33 5c 3,22000,A,3\n24.6,55.8,6000,A,3\
2a040 6e 32 34 2e 36 2c 35 35 2e 38 2c 36 30 30 30 2c 52 2c 33 5c 6e 32 34 2e 32 2c 35 34 2e 34 2c 36 n24.6,55.8,6000,R,3\n24.2,54.4,6
2a060 30 30 30 2c 52 2c 33 5c 6e 32 34 2e 31 2c 35 34 2e 34 2c 36 30 30 30 2c 52 2c 33 5c 22 5c 22 5c 000,R,3\n24.1,54.4,6000,R,3\"\"\
2a080 22 5c 6e 20 20 20 20 63 69 74 69 65 73 20 3d 20 5c 22 5c 22 5c 22 5c 5c 5c 6e 32 34 2e 30 2c 35 "\n....cities.=.\"\"\"\\\n24.0,5
2a0a0 35 2e 30 2c 4b 6f 77 6e 6f 5c 6e 32 35 2e 33 2c 35 34 2e 37 2c 57 69 6c 6e 61 5c 6e 32 36 2e 34 5.0,Kowno\n25.3,54.7,Wilna\n26.4
2a0c0 2c 35 34 2e 34 2c 53 6d 6f 72 67 6f 6e 69 5c 6e 32 36 2e 38 2c 35 34 2e 33 2c 4d 6f 69 6f 64 65 ,54.4,Smorgoni\n26.8,54.3,Moiode
2a0e0 78 6e 6f 5c 6e 32 37 2e 37 2c 35 35 2e 32 2c 47 6c 6f 75 62 6f 6b 6f 65 5c 6e 32 37 2e 36 2c 35 xno\n27.7,55.2,Gloubokoe\n27.6,5
2a100 33 2e 39 2c 4d 69 6e 73 6b 5c 6e 32 38 2e 35 2c 35 34 2e 33 2c 53 74 75 64 69 65 6e 73 6b 61 5c 3.9,Minsk\n28.5,54.3,Studienska\
2a120 6e 32 38 2e 37 2c 35 35 2e 35 2c 50 6f 6c 6f 74 7a 6b 5c 6e 32 39 2e 32 2c 35 34 2e 34 2c 42 6f n28.7,55.5,Polotzk\n29.2,54.4,Bo
2a140 62 72 5c 6e 33 30 2e 32 2c 35 35 2e 33 2c 57 69 74 65 62 73 6b 5c 6e 33 30 2e 34 2c 35 34 2e 35 br\n30.2,55.3,Witebsk\n30.4,54.5
2a160 2c 4f 72 73 63 68 61 5c 6e 33 30 2e 34 2c 35 33 2e 39 2c 4d 6f 68 69 6c 6f 77 5c 6e 33 32 2e 30 ,Orscha\n30.4,53.9,Mohilow\n32.0
2a180 2c 35 34 2e 38 2c 53 6d 6f 6c 65 6e 73 6b 5c 6e 33 33 2e 32 2c 35 34 2e 39 2c 44 6f 72 6f 67 6f ,54.8,Smolensk\n33.2,54.9,Dorogo
2a1a0 62 6f 75 67 65 5c 6e 33 34 2e 33 2c 35 35 2e 32 2c 57 69 78 6d 61 5c 6e 33 34 2e 34 2c 35 35 2e bouge\n34.3,55.2,Wixma\n34.4,55.
2a1c0 35 2c 43 68 6a 61 74 5c 6e 33 36 2e 30 2c 35 35 2e 35 2c 4d 6f 6a 61 69 73 6b 5c 6e 33 37 2e 36 5,Chjat\n36.0,55.5,Mojaisk\n37.6
2a1e0 2c 35 35 2e 38 2c 4d 6f 73 63 6f 75 5c 6e 33 36 2e 36 2c 35 35 2e 33 2c 54 61 72 61 6e 74 69 6e ,55.8,Moscou\n36.6,55.3,Tarantin
2a200 6f 5c 6e 33 36 2e 35 2c 35 35 2e 30 2c 4d 61 6c 6f 2d 4a 61 72 6f 73 65 77 69 69 5c 22 5c 22 5c o\n36.5,55.0,Malo-Jarosewii\"\"\
2a220 22 5c 6e 5c 6e 20 20 20 20 63 20 3d 20 7b 7d 5c 6e 20 20 20 20 66 6f 72 20 6c 69 6e 65 20 69 6e "\n\n....c.=.{}\n....for.line.in
2a240 20 63 69 74 69 65 73 2e 73 70 6c 69 74 28 5c 22 5c 5c 6e 5c 22 29 3a 5c 6e 20 20 20 20 20 20 20 .cities.split(\"\\n\"):\n.......
2a260 20 78 2c 20 79 2c 20 6e 61 6d 65 20 3d 20 6c 69 6e 65 2e 73 70 6c 69 74 28 5c 22 2c 5c 22 29 5c .x,.y,.name.=.line.split(\",\")\
2a280 6e 20 20 20 20 20 20 20 20 63 5b 6e 61 6d 65 5d 20 3d 20 28 66 6c 6f 61 74 28 78 29 2c 20 66 6c n........c[name].=.(float(x),.fl
2a2a0 6f 61 74 28 79 29 29 5c 6e 5c 6e 20 20 20 20 67 20 3d 20 5b 5d 5c 6e 5c 6e 20 20 20 20 66 6f 72 oat(y))\n\n....g.=.[]\n\n....for
2a2c0 20 64 61 74 61 20 69 6e 20 5b 64 61 74 61 31 2c 20 64 61 74 61 32 2c 20 64 61 74 61 33 5d 3a 5c .data.in.[data1,.data2,.data3]:\
2a2e0 6e 20 20 20 20 20 20 20 20 47 20 3d 20 6e 78 2e 47 72 61 70 68 28 29 5c 6e 20 20 20 20 20 20 20 n........G.=.nx.Graph()\n.......
2a300 20 69 20 3d 20 30 5c 6e 20 20 20 20 20 20 20 20 47 2e 70 6f 73 20 3d 20 7b 7d 20 20 23 20 6c 6f .i.=.0\n........G.pos.=.{}..#.lo
2a320 63 61 74 69 6f 6e 5c 6e 20 20 20 20 20 20 20 20 47 2e 70 6f 70 20 3d 20 7b 7d 20 20 23 20 73 69 cation\n........G.pop.=.{}..#.si
2a340 7a 65 5c 6e 20 20 20 20 20 20 20 20 6c 61 73 74 20 3d 20 4e 6f 6e 65 5c 6e 20 20 20 20 20 20 20 ze\n........last.=.None\n.......
2a360 20 66 6f 72 20 6c 69 6e 65 20 69 6e 20 64 61 74 61 2e 73 70 6c 69 74 28 5c 22 5c 5c 6e 5c 22 29 .for.line.in.data.split(\"\\n\")
2a380 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 78 2c 20 79 2c 20 70 2c 20 72 2c 20 6e 20 3d 20 6c :\n............x,.y,.p,.r,.n.=.l
2a3a0 69 6e 65 2e 73 70 6c 69 74 28 5c 22 2c 5c 22 29 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 47 2e ine.split(\",\")\n............G.
2a3c0 70 6f 73 5b 69 5d 20 3d 20 28 66 6c 6f 61 74 28 78 29 2c 20 66 6c 6f 61 74 28 79 29 29 5c 6e 20 pos[i].=.(float(x),.float(y))\n.
2a3e0 20 20 20 20 20 20 20 20 20 20 20 47 2e 70 6f 70 5b 69 5d 20 3d 20 69 6e 74 28 70 29 5c 6e 20 20 ...........G.pop[i].=.int(p)\n..
2a400 20 20 20 20 20 20 20 20 20 20 69 66 20 6c 61 73 74 20 69 73 20 4e 6f 6e 65 3a 5c 6e 20 20 20 20 ..........if.last.is.None:\n....
2a420 20 20 20 20 20 20 20 20 20 20 20 20 6c 61 73 74 20 3d 20 69 5c 6e 20 20 20 20 20 20 20 20 20 20 ............last.=.i\n..........
2a440 20 20 65 6c 73 65 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 47 2e 61 64 64 5f 65 ..else:\n................G.add_e
2a460 64 67 65 28 69 2c 20 6c 61 73 74 2c 20 2a 2a 7b 72 3a 20 69 6e 74 28 6e 29 7d 29 5c 6e 20 20 20 dge(i,.last,.**{r:.int(n)})\n...
2a480 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 61 73 74 20 3d 20 69 5c 6e 20 20 20 20 20 20 20 20 20 .............last.=.i\n.........
2a4a0 20 20 20 69 20 3d 20 69 20 2b 20 31 5c 6e 20 20 20 20 20 20 20 20 67 2e 61 70 70 65 6e 64 28 47 ...i.=.i.+.1\n........g.append(G
2a4c0 29 5c 6e 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 67 2c 20 63 5c 6e 5c 6e 5c 6e 28 67 2c 20 63 69 )\n\n....return.g,.c\n\n\n(g,.ci
2a4e0 74 79 29 20 3d 20 6d 69 6e 61 72 64 5f 67 72 61 70 68 28 29 5c 6e 5c 6e 70 6c 74 2e 66 69 67 75 ty).=.minard_graph()\n\nplt.figu
2a500 72 65 28 31 2c 20 66 69 67 73 69 7a 65 3d 28 31 31 2c 20 35 29 29 5c 6e 70 6c 74 2e 63 6c 66 28 re(1,.figsize=(11,.5))\nplt.clf(
2a520 29 5c 6e 63 6f 6c 6f 72 73 20 3d 20 5b 5c 22 62 5c 22 2c 20 5c 22 67 5c 22 2c 20 5c 22 72 5c 22 )\ncolors.=.[\"b\",.\"g\",.\"r\"
2a540 5d 5c 6e 66 6f 72 20 47 20 69 6e 20 67 3a 5c 6e 20 20 20 20 63 20 3d 20 63 6f 6c 6f 72 73 2e 70 ]\nfor.G.in.g:\n....c.=.colors.p
2a560 6f 70 28 30 29 5c 6e 20 20 20 20 6e 6f 64 65 5f 73 69 7a 65 20 3d 20 5b 47 2e 70 6f 70 5b 6e 5d op(0)\n....node_size.=.[G.pop[n]
2a580 20 2f 2f 20 33 30 30 20 66 6f 72 20 6e 20 69 6e 20 47 5d 5c 6e 20 20 20 20 6e 78 2e 64 72 61 77 .//.300.for.n.in.G]\n....nx.draw
2a5a0 5f 6e 65 74 77 6f 72 6b 78 5f 65 64 67 65 73 28 47 2c 20 47 2e 70 6f 73 2c 20 65 64 67 65 5f 63 _networkx_edges(G,.G.pos,.edge_c
2a5c0 6f 6c 6f 72 3d 63 2c 20 77 69 64 74 68 3d 34 2c 20 61 6c 70 68 61 3d 30 2e 35 29 5c 6e 20 20 20 olor=c,.width=4,.alpha=0.5)\n...
2a5e0 20 6e 78 2e 64 72 61 77 5f 6e 65 74 77 6f 72 6b 78 5f 6e 6f 64 65 73 28 47 2c 20 47 2e 70 6f 73 .nx.draw_networkx_nodes(G,.G.pos
2a600 2c 20 6e 6f 64 65 5f 73 69 7a 65 3d 6e 6f 64 65 5f 73 69 7a 65 2c 20 6e 6f 64 65 5f 63 6f 6c 6f ,.node_size=node_size,.node_colo
2a620 72 3d 63 2c 20 61 6c 70 68 61 3d 30 2e 35 29 5c 6e 20 20 20 20 6e 78 2e 64 72 61 77 5f 6e 65 74 r=c,.alpha=0.5)\n....nx.draw_net
2a640 77 6f 72 6b 78 5f 6e 6f 64 65 73 28 47 2c 20 47 2e 70 6f 73 2c 20 6e 6f 64 65 5f 73 69 7a 65 3d workx_nodes(G,.G.pos,.node_size=
2a660 35 2c 20 6e 6f 64 65 5f 63 6f 6c 6f 72 3d 5c 22 6b 5c 22 29 5c 6e 5c 6e 66 6f 72 20 63 20 69 6e 5,.node_color=\"k\")\n\nfor.c.in
2a680 20 63 69 74 79 3a 5c 6e 20 20 20 20 78 2c 20 79 20 3d 20 63 69 74 79 5b 63 5d 5c 6e 20 20 20 20 .city:\n....x,.y.=.city[c]\n....
2a6a0 70 6c 74 2e 74 65 78 74 28 78 2c 20 79 20 2b 20 30 2e 31 2c 20 63 29 5c 6e 70 6c 74 2e 73 68 6f plt.text(x,.y.+.0.1,.c)\nplt.sho
2a6c0 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
2a6e0 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":.{.....
2a700 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",...
2a720 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",.......
2a740 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
2a760 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
2a780 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
2a7a0 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......
2a7c0 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
2a7e0 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
2a800 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",...
2a820 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
2a840 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
2a860 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 39 2e 31 36 thon3",......."version":."3.9.16
2a880 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 20 ".....}...},..."nbformat":.4,...
2a8a0 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 0a "nbformat_minor":.0.}PK.........
2a8c0 0f 5a 56 65 16 4d ff c7 07 00 00 c7 07 00 00 20 00 00 00 67 72 61 70 68 76 69 7a 5f 64 72 61 77 .ZVe.M.............graphviz_draw
2a8e0 69 6e 67 2f 70 6c 6f 74 5f 67 72 69 64 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 22 3a 20 ing/plot_grid.ipynb{..."cells":.
2a900 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 64 65 [.....{......."cell_type":."code
2a920 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
2a940 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
2a960 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.......},.......
2a980 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":.[
2a9a0 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 20 20 ........."%matplotlib.inline"...
2a9c0 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
2a9e0 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
2aa00 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":.[.......
2aa20 20 20 22 5c 6e 23 20 32 44 20 47 72 69 64 5c 6e 5c 6e 49 6c 6c 75 73 74 72 61 74 65 20 60 7e 6e .."\n#.2D.Grid\n\nIllustrate.`~n
2aa40 65 74 77 6f 72 6b 78 2e 64 72 61 77 69 6e 67 2e 6e 78 5f 61 67 72 61 70 68 2e 77 72 69 74 65 5f etworkx.drawing.nx_agraph.write_
2aa60 64 6f 74 60 20 69 6e 20 63 6f 6e 6a 75 6e 63 74 69 6f 6e 20 77 69 74 68 20 74 68 65 5c 6e 47 72 dot`.in.conjunction.with.the\nGr
2aa80 61 70 68 76 69 7a 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 69 6e 74 65 72 66 61 63 65 20 74 6f aphviz.command.line.interface.to
2aaa0 20 63 72 65 61 74 65 20 76 69 73 75 61 6c 69 7a 61 74 69 6f 6e 73 2e 5c 6e 22 0a 20 20 20 20 20 .create.visualizations.\n"......
2aac0 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
2aae0 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
2ab00 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":.{...
2ab20 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.......}
2ab40 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
2ab60 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 urce":.[........."import.matplot
2ab80 6c 69 62 2e 70 79 70 6c 6f 74 20 61 73 20 70 6c 74 5c 6e 69 6d 70 6f 72 74 20 6e 65 74 77 6f 72 lib.pyplot.as.plt\nimport.networ
2aba0 6b 78 20 61 73 20 6e 78 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 kx.as.nx".......].....},.....{..
2abc0 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",...
2abe0 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
2ac00 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 57 72 69 74 65 20 61 20 64 6f 74 20 66 69 6c 65 20 e":.[........."Write.a.dot.file.
2ac20 66 72 6f 6d 20 61 20 6e 65 74 77 6f 72 6b 78 20 67 72 61 70 68 20 66 6f 72 20 66 75 72 74 68 65 from.a.networkx.graph.for.furthe
2ac40 72 20 70 72 6f 63 65 73 73 69 6e 67 20 77 69 74 68 20 67 72 61 70 68 76 69 7a 2e 5c 6e 5c 6e 22 r.processing.with.graphviz.\n\n"
2ac60 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
2ac80 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
2aca0 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"
2acc0 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..
2ace0 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":.[],....
2ad00 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 20 3d 20 6e 78 2e 67 ..."source":.[........."G.=.nx.g
2ad20 72 69 64 5f 32 64 5f 67 72 61 70 68 28 35 2c 20 35 29 20 20 23 20 35 78 35 20 67 72 69 64 5c 6e rid_2d_graph(5,.5)..#.5x5.grid\n
2ad40 23 20 54 68 69 73 20 65 78 61 6d 70 6c 65 20 6e 65 65 64 73 20 47 72 61 70 68 76 69 7a 20 61 6e #.This.example.needs.Graphviz.an
2ad60 64 20 50 79 47 72 61 70 68 76 69 7a 5c 6e 6e 78 2e 6e 78 5f 61 67 72 61 70 68 2e 77 72 69 74 65 d.PyGraphviz\nnx.nx_agraph.write
2ad80 5f 64 6f 74 28 47 2c 20 5c 22 67 72 69 64 2e 64 6f 74 5c 22 29 5c 6e 23 20 48 61 76 69 6e 67 20 _dot(G,.\"grid.dot\")\n#.Having.
2ada0 63 72 65 61 74 65 64 20 74 68 65 20 64 6f 74 20 66 69 6c 65 2c 20 67 72 61 70 68 76 69 7a 20 63 created.the.dot.file,.graphviz.c
2adc0 61 6e 20 62 65 20 69 6e 76 6f 6b 65 64 20 76 69 61 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 6c 69 an.be.invoked.via.the.command.li
2ade0 6e 65 5c 6e 23 20 74 6f 20 67 65 6e 65 72 61 74 65 20 61 6e 20 69 6d 61 67 65 20 6f 6e 20 64 69 ne\n#.to.generate.an.image.on.di
2ae00 73 6b 2c 20 65 2e 67 2e 5c 6e 70 72 69 6e 74 28 5c 22 4e 6f 77 20 72 75 6e 3a 20 6e 65 61 74 6f sk,.e.g.\nprint(\"Now.run:.neato
2ae20 20 2d 54 70 73 20 67 72 69 64 2e 64 6f 74 20 3e 67 72 69 64 2e 70 73 5c 22 29 5c 6e 5c 6e 23 20 .-Tps.grid.dot.>grid.ps\")\n\n#.
2ae40 41 6c 74 65 72 6e 61 74 69 76 65 6c 79 2c 20 74 68 65 20 61 6e 64 20 69 6d 61 67 65 20 63 61 6e Alternatively,.the.and.image.can
2ae60 20 62 65 20 63 72 65 61 74 65 64 20 64 69 72 65 63 74 6c 79 20 76 69 61 20 41 47 72 61 70 68 2e .be.created.directly.via.AGraph.
2ae80 64 72 61 77 5c 6e 41 20 3d 20 6e 78 2e 6e 78 5f 61 67 72 61 70 68 2e 74 6f 5f 61 67 72 61 70 68 draw\nA.=.nx.nx_agraph.to_agraph
2aea0 28 47 29 5c 6e 41 2e 64 72 61 77 28 5c 22 35 78 35 2e 70 6e 67 5c 22 2c 20 70 72 6f 67 3d 5c 22 (G)\nA.draw(\"5x5.png\",.prog=\"
2aec0 6e 65 61 74 6f 5c 22 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 neato\")".......].....}...],..."
2aee0 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 7b metadata":.{....."kernelspec":.{
2af00 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 33 ......."display_name":."Python.3
2af20 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 20 ",......."language":."python",..
2af40 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 20 ....."name":."python3".....},...
2af60 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 65 .."language_info":.{......."code
2af80 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 20 mirror_mode":.{........."name":.
2afa0 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 0a "ipython",........."version":.3.
2afc0 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 3a ......},......."file_extension":
2afe0 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 2f .".py",......."mimetype":."text/
2b000 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 6e x-python",......."name":."python
2b020 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 22 ",......."nbconvert_exporter":."
2b040 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 3a python",......."pygments_lexer":
2b060 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 33 ."ipython3",......."version":."3
2b080 2e 39 2e 31 36 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 .9.16".....}...},..."nbformat":.
2b0a0 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....
2b0c0 00 00 00 00 0a 0f 5a 56 02 76 be 7e 44 06 00 00 44 06 00 00 26 00 00 00 67 72 61 70 68 76 69 7a ......ZV.v.~D...D...&...graphviz
2b0e0 5f 64 72 61 77 69 6e 67 2f 70 6c 6f 74 5f 63 6f 6e 76 65 72 73 69 6f 6e 2e 69 70 79 6e 62 7b 0a _drawing/plot_conversion.ipynb{.
2b100 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 74 .."cells":.[.....{......."cell_t
2b120 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
2b140 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":.{
2b160 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.....
2b180 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":.[],.......
2b1a0 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 62 "source":.[........."%matplotlib
2b1c0 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 20 .inline".......].....},.....{...
2b1e0 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",....
2b200 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
2b220 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 43 6f 6e 76 65 72 73 69 6f 6e 5c 6e 5c 6e ":.[........."\n#.Conversion\n\n
2b240 41 6e 20 65 78 61 6d 70 6c 65 20 73 68 6f 77 69 6e 67 20 68 6f 77 20 74 6f 20 75 73 65 20 74 68 An.example.showing.how.to.use.th
2b260 65 20 69 6e 74 65 72 66 61 63 65 20 74 6f 20 74 68 65 20 5c 6e 60 70 79 67 72 61 70 68 76 69 7a e.interface.to.the.\n`pygraphviz
2b280 2e 41 47 72 61 70 68 60 20 63 6c 61 73 73 20 74 6f 20 63 6f 6e 76 65 72 74 20 74 6f 20 61 6e 64 .AGraph`.class.to.convert.to.and
2b2a0 20 66 72 6f 6d 20 67 72 61 70 68 76 69 7a 2e 5c 6e 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d .from.graphviz.\n".......].....}
2b2c0 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
2b2e0 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
2b300 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
2b320 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.......},.......
2b340 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":.[
2b360 0a 20 20 20 20 20 20 20 20 22 69 6d 70 6f 72 74 20 6e 65 74 77 6f 72 6b 78 20 61 73 20 6e 78 5c ........."import.networkx.as.nx\
2b380 6e 5c 6e 47 20 3d 20 6e 78 2e 63 6f 6d 70 6c 65 74 65 5f 67 72 61 70 68 28 35 29 5c 6e 41 20 3d n\nG.=.nx.complete_graph(5)\nA.=
2b3a0 20 6e 78 2e 6e 78 5f 61 67 72 61 70 68 2e 74 6f 5f 61 67 72 61 70 68 28 47 29 20 20 23 20 63 6f .nx.nx_agraph.to_agraph(G)..#.co
2b3c0 6e 76 65 72 74 20 74 6f 20 61 20 67 72 61 70 68 76 69 7a 20 67 72 61 70 68 5c 6e 58 31 20 3d 20 nvert.to.a.graphviz.graph\nX1.=.
2b3e0 6e 78 2e 6e 78 5f 61 67 72 61 70 68 2e 66 72 6f 6d 5f 61 67 72 61 70 68 28 41 29 20 20 23 20 63 nx.nx_agraph.from_agraph(A)..#.c
2b400 6f 6e 76 65 72 74 20 62 61 63 6b 20 74 6f 20 6e 65 74 77 6f 72 6b 78 20 28 62 75 74 20 61 73 20 onvert.back.to.networkx.(but.as.
2b420 47 72 61 70 68 29 5c 6e 58 32 20 3d 20 6e 78 2e 47 72 61 70 68 28 41 29 20 20 23 20 66 61 6e 63 Graph)\nX2.=.nx.Graph(A)..#.fanc
2b440 79 20 77 61 79 20 74 6f 20 64 6f 20 63 6f 6e 76 65 72 73 69 6f 6e 5c 6e 47 31 20 3d 20 6e 78 2e y.way.to.do.conversion\nG1.=.nx.
2b460 47 72 61 70 68 28 58 31 29 20 20 23 20 6e 6f 77 20 6d 61 6b 65 20 69 74 20 61 20 47 72 61 70 68 Graph(X1)..#.now.make.it.a.Graph
2b480 5c 6e 5c 6e 41 2e 77 72 69 74 65 28 5c 22 6b 35 2e 64 6f 74 5c 22 29 20 20 23 20 77 72 69 74 65 \n\nA.write(\"k5.dot\")..#.write
2b4a0 20 74 6f 20 64 6f 74 20 66 69 6c 65 5c 6e 58 33 20 3d 20 6e 78 2e 6e 78 5f 61 67 72 61 70 68 2e .to.dot.file\nX3.=.nx.nx_agraph.
2b4c0 72 65 61 64 5f 64 6f 74 28 5c 22 6b 35 2e 64 6f 74 5c 22 29 20 20 23 20 72 65 61 64 20 66 72 6f read_dot(\"k5.dot\")..#.read.fro
2b4e0 6d 20 64 6f 74 66 69 6c 65 5c 6e 5c 6e 23 20 59 6f 75 20 63 61 6e 20 61 6c 73 6f 20 63 72 65 61 m.dotfile\n\n#.You.can.also.crea
2b500 74 65 20 2e 70 6e 67 20 64 69 72 65 63 74 6c 79 20 77 69 74 68 20 74 68 65 20 41 47 72 61 70 68 te..png.directly.with.the.AGraph
2b520 2e 64 72 61 77 20 6d 65 74 68 6f 64 5c 6e 41 2e 64 72 61 77 28 5c 22 6b 35 2e 70 6e 67 5c 22 2c .draw.method\nA.draw(\"k5.png\",
2b540 20 70 72 6f 67 3d 5c 22 6e 65 61 74 6f 5c 22 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 0a .prog=\"neato\")".......].....}.
2b560 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 6c ..],..."metadata":.{....."kernel
2b580 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 22 spec":.{......."display_name":."
2b5a0 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 79 Python.3",......."language":."py
2b5c0 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 20 thon",......."name":."python3"..
2b5e0 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 20 ...},....."language_info":.{....
2b600 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 20 ..."codemirror_mode":.{.........
2b620 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 73 "name":."ipython",........."vers
2b640 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 74 ion":.3.......},......."file_ext
2b660 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 22 ension":.".py",......."mimetype"
2b680 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 3a :."text/x-python",......."name":
2b6a0 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 6f ."python",......."nbconvert_expo
2b6c0 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 73 rter":."python",......."pygments
2b6e0 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 73 _lexer":."ipython3",......."vers
2b700 69 6f 6e 22 3a 20 22 33 2e 39 2e 31 36 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 20 22 6e 62 66 ion":."3.9.16".....}...},..."nbf
2b720 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
2b740 0a 7d 50 4b 03 04 14 00 00 00 00 00 0a 0f 5a 56 64 5c 18 bc a5 06 00 00 a5 06 00 00 26 00 00 00 .}PK..........ZVd\..........&...
2b760 67 72 61 70 68 76 69 7a 5f 64 72 61 77 69 6e 67 2f 70 6c 6f 74 5f 61 74 74 72 69 62 75 74 65 73 graphviz_drawing/plot_attributes
2b780 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":.[.....{......
2b7a0 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
2b7c0 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
2b7e0 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
2b800 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":.[]
2b820 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
2b840 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".......].....},.
2b860 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
2b880 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":.{},......
2b8a0 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 41 74 74 72 69 62 ."source":.[........."\n#.Attrib
2b8c0 75 74 65 73 5c 6e 5c 6e 45 78 61 6d 70 6c 65 20 69 6c 6c 75 73 74 72 61 74 69 6e 67 20 68 6f 77 utes\n\nExample.illustrating.how
2b8e0 20 61 74 74 72 69 62 75 74 65 73 20 6f 66 20 6e 6f 64 65 73 2c 20 65 64 67 65 73 2c 20 61 6e 64 .attributes.of.nodes,.edges,.and
2b900 20 67 72 61 70 68 73 20 61 72 65 20 68 61 6e 64 6c 65 64 5c 6e 64 75 72 69 6e 67 20 63 6f 6e 76 .graphs.are.handled\nduring.conv
2b920 65 72 73 69 6f 6e 20 74 6f 2f 66 72 6f 6d 20 60 7e 70 79 67 72 61 70 68 76 69 7a 2e 41 47 72 61 ersion.to/from.`~pygraphviz.AGra
2b940 70 68 60 2e 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 ph`.\n".......].....},.....{....
2b960 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
2b980 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
2b9a0 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":.
2b9c0 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":.
2b9e0 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 69 [],......."source":.[........."i
2ba00 6d 70 6f 72 74 20 6e 65 74 77 6f 72 6b 78 20 61 73 20 6e 78 5c 6e 5c 6e 47 20 3d 20 6e 78 2e 47 mport.networkx.as.nx\n\nG.=.nx.G
2ba20 72 61 70 68 28 29 5c 6e 47 2e 61 64 64 5f 65 64 67 65 28 31 2c 20 32 2c 20 63 6f 6c 6f 72 3d 5c raph()\nG.add_edge(1,.2,.color=\
2ba40 22 72 65 64 5c 22 29 5c 6e 47 2e 61 64 64 5f 65 64 67 65 28 32 2c 20 33 2c 20 63 6f 6c 6f 72 3d "red\")\nG.add_edge(2,.3,.color=
2ba60 5c 22 72 65 64 5c 22 29 5c 6e 47 2e 61 64 64 5f 6e 6f 64 65 28 33 29 5c 6e 47 2e 61 64 64 5f 6e \"red\")\nG.add_node(3)\nG.add_n
2ba80 6f 64 65 28 34 29 5c 6e 5c 6e 41 20 3d 20 6e 78 2e 6e 78 5f 61 67 72 61 70 68 2e 74 6f 5f 61 67 ode(4)\n\nA.=.nx.nx_agraph.to_ag
2baa0 72 61 70 68 28 47 29 20 20 23 20 63 6f 6e 76 65 72 74 20 74 6f 20 61 20 67 72 61 70 68 76 69 7a raph(G)..#.convert.to.a.graphviz
2bac0 20 67 72 61 70 68 5c 6e 41 2e 64 72 61 77 28 5c 22 61 74 74 72 69 62 75 74 65 73 2e 70 6e 67 5c .graph\nA.draw(\"attributes.png\
2bae0 22 2c 20 70 72 6f 67 3d 5c 22 6e 65 61 74 6f 5c 22 29 20 20 23 20 44 72 61 77 20 77 69 74 68 20 ",.prog=\"neato\")..#.Draw.with.
2bb00 70 79 67 72 61 70 68 76 69 7a 5c 6e 5c 6e 23 20 63 6f 6e 76 65 72 74 20 62 61 63 6b 20 74 6f 20 pygraphviz\n\n#.convert.back.to.
2bb20 6e 65 74 77 6f 72 6b 78 20 47 72 61 70 68 20 77 69 74 68 20 61 74 74 72 69 62 75 74 65 73 20 6f networkx.Graph.with.attributes.o
2bb40 6e 20 65 64 67 65 73 20 61 6e 64 5c 6e 23 20 64 65 66 61 75 6c 74 20 61 74 74 72 69 62 75 74 65 n.edges.and\n#.default.attribute
2bb60 73 20 61 73 20 64 69 63 74 69 6f 6e 61 72 79 20 64 61 74 61 5c 6e 58 20 3d 20 6e 78 2e 6e 78 5f s.as.dictionary.data\nX.=.nx.nx_
2bb80 61 67 72 61 70 68 2e 66 72 6f 6d 5f 61 67 72 61 70 68 28 41 29 5c 6e 70 72 69 6e 74 28 5c 22 65 agraph.from_agraph(A)\nprint(\"e
2bba0 64 67 65 73 5c 22 29 5c 6e 70 72 69 6e 74 28 6c 69 73 74 28 58 2e 65 64 67 65 73 28 64 61 74 61 dges\")\nprint(list(X.edges(data
2bbc0 3d 54 72 75 65 29 29 29 5c 6e 70 72 69 6e 74 28 5c 22 64 65 66 61 75 6c 74 20 67 72 61 70 68 20 =True)))\nprint(\"default.graph.
2bbe0 61 74 74 72 69 62 75 74 65 73 5c 22 29 5c 6e 70 72 69 6e 74 28 58 2e 67 72 61 70 68 29 5c 6e 70 attributes\")\nprint(X.graph)\np
2bc00 72 69 6e 74 28 5c 22 6e 6f 64 65 20 6e 6f 64 65 20 61 74 74 72 69 62 75 74 65 73 5c 22 29 5c 6e rint(\"node.node.attributes\")\n
2bc20 70 72 69 6e 74 28 58 2e 6e 6f 64 65 73 2e 64 61 74 61 28 54 72 75 65 29 29 22 0a 20 20 20 20 20 print(X.nodes.data(True))"......
2bc40 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 20 .].....}...],..."metadata":.{...
2bc60 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 79 .."kernelspec":.{......."display
2bc80 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 75 _name":."Python.3",......."langu
2bca0 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 70 age":."python",......."name":."p
2bcc0 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 66 ython3".....},....."language_inf
2bce0 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 7b o":.{......."codemirror_mode":.{
2bd00 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 20 ........."name":."ipython",.....
2bd20 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 20 ...."version":.3.......},.......
2bd40 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 22 "file_extension":.".py",......."
2bd60 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 20 mimetype":."text/x-python",.....
2bd80 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 6e .."name":."python",......."nbcon
2bda0 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 20 vert_exporter":."python",.......
2bdc0 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 20 "pygments_lexer":."ipython3",...
2bde0 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 39 2e 31 36 22 0a 20 20 20 20 7d 0a 20 20 ...."version":."3.9.16".....}...
2be00 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_
2be20 6d 69 6e 6f 72 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 0a 0f 5a 56 31 8c 0a d4 4d 06 00 minor":.0.}PK..........ZV1...M..
2be40 00 4d 06 00 00 26 00 00 00 67 72 61 70 68 76 69 7a 5f 64 72 61 77 69 6e 67 2f 70 6c 6f 74 5f 6d .M...&...graphviz_drawing/plot_m
2be60 69 6e 69 5f 61 74 6c 61 73 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 22 3a 20 5b 0a 20 20 ini_atlas.ipynb{..."cells":.[...
2be80 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",..
2bea0 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,...
2bec0 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
2bee0 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
2bf00 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":.[....
2bf20 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".......
2bf40 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"
2bf60 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":.
2bf80 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":.[........."\
2bfa0 6e 23 20 41 74 6c 61 73 5c 6e 5c 6e 41 6e 20 65 78 61 6d 70 6c 65 20 73 68 6f 77 69 6e 67 20 68 n#.Atlas\n\nAn.example.showing.h
2bfc0 6f 77 20 74 6f 20 77 72 69 74 65 20 66 69 72 73 74 20 32 30 20 67 72 61 70 68 73 20 66 72 6f 6d ow.to.write.first.20.graphs.from
2bfe0 20 74 68 65 20 67 72 61 70 68 20 61 74 6c 61 73 20 61 73 5c 6e 67 72 61 70 68 76 69 7a 20 64 6f .the.graph.atlas.as\ngraphviz.do
2c000 74 20 66 69 6c 65 73 20 47 6e 2e 64 6f 74 20 77 68 65 72 65 20 6e 3d 30 2c 31 39 2e 5c 6e 5c 6e t.files.Gn.dot.where.n=0,19.\n\n
2c020 54 4f 44 4f 3a 20 64 6f 65 73 20 6e 78 5f 61 67 72 61 70 68 2e 64 72 61 77 20 73 75 70 70 6f 72 TODO:.does.nx_agraph.draw.suppor
2c040 74 20 6d 75 6c 74 69 70 6c 65 20 67 72 61 70 68 73 20 69 6e 20 6f 6e 65 20 70 6e 67 3f 5c 6e 22 t.multiple.graphs.in.one.png?\n"
2c060 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
2c080 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
2c0a0 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"
2c0c0 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..
2c0e0 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":.[],....
2c100 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 72 74 20 6e ..."source":.[........."import.n
2c120 65 74 77 6f 72 6b 78 20 61 73 20 6e 78 5c 6e 5c 6e 61 74 6c 61 73 20 3d 20 6e 78 2e 67 72 61 70 etworkx.as.nx\n\natlas.=.nx.grap
2c140 68 5f 61 74 6c 61 73 5f 67 28 29 5b 30 3a 32 30 5d 5c 6e 5c 6e 66 6f 72 20 47 20 69 6e 20 61 74 h_atlas_g()[0:20]\n\nfor.G.in.at
2c160 6c 61 73 3a 5c 6e 20 20 20 20 70 72 69 6e 74 28 47 29 5c 6e 20 20 20 20 41 20 3d 20 6e 78 2e 6e las:\n....print(G)\n....A.=.nx.n
2c180 78 5f 61 67 72 61 70 68 2e 74 6f 5f 61 67 72 61 70 68 28 47 29 5c 6e 20 20 20 20 41 2e 67 72 61 x_agraph.to_agraph(G)\n....A.gra
2c1a0 70 68 5f 61 74 74 72 5b 5c 22 6c 61 62 65 6c 5c 22 5d 20 3d 20 47 2e 6e 61 6d 65 5c 6e 20 20 20 ph_attr[\"label\"].=.G.name\n...
2c1c0 20 23 20 73 65 74 20 64 65 66 61 75 6c 74 20 6e 6f 64 65 20 61 74 74 72 69 62 75 74 65 73 5c 6e .#.set.default.node.attributes\n
2c1e0 20 20 20 20 41 2e 6e 6f 64 65 5f 61 74 74 72 5b 5c 22 63 6f 6c 6f 72 5c 22 5d 20 3d 20 5c 22 72 ....A.node_attr[\"color\"].=.\"r
2c200 65 64 5c 22 5c 6e 20 20 20 20 41 2e 6e 6f 64 65 5f 61 74 74 72 5b 5c 22 73 74 79 6c 65 5c 22 5d ed\"\n....A.node_attr[\"style\"]
2c220 20 3d 20 5c 22 66 69 6c 6c 65 64 5c 22 5c 6e 20 20 20 20 41 2e 6e 6f 64 65 5f 61 74 74 72 5b 5c .=.\"filled\"\n....A.node_attr[\
2c240 22 73 68 61 70 65 5c 22 5d 20 3d 20 5c 22 63 69 72 63 6c 65 5c 22 5c 6e 20 20 20 20 41 2e 77 72 "shape\"].=.\"circle\"\n....A.wr
2c260 69 74 65 28 47 2e 6e 61 6d 65 20 2b 20 5c 22 2e 64 6f 74 5c 22 29 5c 6e 5c 6e 23 20 44 72 61 77 ite(G.name.+.\".dot\")\n\n#.Draw
2c280 20 74 68 65 20 32 30 74 68 20 67 72 61 70 68 20 66 72 6f 6d 20 74 68 65 20 61 74 6c 61 73 20 74 .the.20th.graph.from.the.atlas.t
2c2a0 6f 20 70 6e 67 5c 6e 41 2e 64 72 61 77 28 5c 22 41 32 30 2e 70 6e 67 5c 22 2c 20 70 72 6f 67 3d o.png\nA.draw(\"A20.png\",.prog=
2c2c0 5c 22 6e 65 61 74 6f 5c 22 29 22 0a 20 20 20 20 20 20 5d 0a 20 20 20 20 7d 0a 20 20 5d 2c 0a 20 \"neato\")".......].....}...],..
2c2e0 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":
2c300 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
2c320 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",
2c340 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".....},.
2c360 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
2c380 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"
2c3a0 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":.
2c3c0 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
2c3e0 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
2c400 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
2c420 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":
2c440 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
2c460 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":.
2c480 22 33 2e 39 2e 31 36 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 "3.9.16".....}...},..."nbformat"
2c4a0 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 0a 7d 50 4b 03 04 :.4,..."nbformat_minor":.0.}PK..
2c4c0 14 00 00 00 00 00 09 0f 5a 56 26 2c 5e 78 65 08 00 00 65 08 00 00 28 00 00 00 67 72 61 70 68 76 ........ZV&,^xe...e...(...graphv
2c4e0 69 7a 5f 6c 61 79 6f 75 74 2f 70 6c 6f 74 5f 64 65 63 6f 6d 70 6f 73 69 74 69 6f 6e 2e 69 70 79 iz_layout/plot_decomposition.ipy
2c500 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
2c520 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
2c540 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
2c560 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.
2c580 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":.[],...
2c5a0 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
2c5c0 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".......].....},.....
2c5e0 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",
2c600 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
2c620 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 44 65 63 6f 6d 70 6f 73 69 74 urce":.[........."\n#.Decomposit
2c640 69 6f 6e 5c 6e 5c 6e 45 78 61 6d 70 6c 65 20 6f 66 20 63 72 65 61 74 69 6e 67 20 61 20 6a 75 6e ion\n\nExample.of.creating.a.jun
2c660 63 74 69 6f 6e 20 74 72 65 65 20 66 72 6f 6d 20 61 20 64 69 72 65 63 74 65 64 20 67 72 61 70 68 ction.tree.from.a.directed.graph
2c680 2e 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".......].....},.....{.......
2c6a0 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
2c6c0 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
2c6e0 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
2c700 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":.[],
2c720 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
2c740 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 70 6c 6f 74 20 61 73 20 70 6c 74 5c 6e 69 6d 70 rt.matplotlib.pyplot.as.plt\nimp
2c760 6f 72 74 20 6e 65 74 77 6f 72 6b 78 20 61 73 20 6e 78 5c 6e 5c 6e 42 20 3d 20 6e 78 2e 44 69 47 ort.networkx.as.nx\n\nB.=.nx.DiG
2c780 72 61 70 68 28 29 5c 6e 42 2e 61 64 64 5f 6e 6f 64 65 73 5f 66 72 6f 6d 28 5b 5c 22 41 5c 22 2c raph()\nB.add_nodes_from([\"A\",
2c7a0 20 5c 22 42 5c 22 2c 20 5c 22 43 5c 22 2c 20 5c 22 44 5c 22 2c 20 5c 22 45 5c 22 2c 20 5c 22 46 .\"B\",.\"C\",.\"D\",.\"E\",.\"F
2c7c0 5c 22 5d 29 5c 6e 42 2e 61 64 64 5f 65 64 67 65 73 5f 66 72 6f 6d 28 5c 6e 20 20 20 20 5b 28 5c \"])\nB.add_edges_from(\n....[(\
2c7e0 22 41 5c 22 2c 20 5c 22 42 5c 22 29 2c 20 28 5c 22 41 5c 22 2c 20 5c 22 43 5c 22 29 2c 20 28 5c "A\",.\"B\"),.(\"A\",.\"C\"),.(\
2c800 22 42 5c 22 2c 20 5c 22 44 5c 22 29 2c 20 28 5c 22 42 5c 22 2c 20 5c 22 46 5c 22 29 2c 20 28 5c "B\",.\"D\"),.(\"B\",.\"F\"),.(\
2c820 22 43 5c 22 2c 20 5c 22 45 5c 22 29 2c 20 28 5c 22 45 5c 22 2c 20 5c 22 46 5c 22 29 5d 5c 6e 29 "C\",.\"E\"),.(\"E\",.\"F\")]\n)
2c840 5c 6e 5c 6e 6f 70 74 69 6f 6e 73 20 3d 20 7b 5c 22 77 69 74 68 5f 6c 61 62 65 6c 73 5c 22 3a 20 \n\noptions.=.{\"with_labels\":.
2c860 54 72 75 65 2c 20 5c 22 6e 6f 64 65 5f 63 6f 6c 6f 72 5c 22 3a 20 5c 22 77 68 69 74 65 5c 22 2c True,.\"node_color\":.\"white\",
2c880 20 5c 22 65 64 67 65 63 6f 6c 6f 72 73 5c 22 3a 20 5c 22 62 6c 75 65 5c 22 7d 5c 6e 5c 6e 66 69 .\"edgecolors\":.\"blue\"}\n\nfi
2c8a0 67 20 3d 20 70 6c 74 2e 66 69 67 75 72 65 28 66 69 67 73 69 7a 65 3d 28 36 2c 20 39 29 29 5c 6e g.=.plt.figure(figsize=(6,.9))\n
2c8c0 61 78 67 72 69 64 20 3d 20 66 69 67 2e 61 64 64 5f 67 72 69 64 73 70 65 63 28 33 2c 20 32 29 5c axgrid.=.fig.add_gridspec(3,.2)\
2c8e0 6e 5c 6e 61 78 31 20 3d 20 66 69 67 2e 61 64 64 5f 73 75 62 70 6c 6f 74 28 61 78 67 72 69 64 5b n\nax1.=.fig.add_subplot(axgrid[
2c900 30 2c 20 30 5d 29 5c 6e 61 78 31 2e 73 65 74 5f 74 69 74 6c 65 28 5c 22 42 61 79 65 73 69 61 6e 0,.0])\nax1.set_title(\"Bayesian
2c920 20 4e 65 74 77 6f 72 6b 5c 22 29 5c 6e 70 6f 73 20 3d 20 6e 78 2e 6e 78 5f 61 67 72 61 70 68 2e .Network\")\npos.=.nx.nx_agraph.
2c940 67 72 61 70 68 76 69 7a 5f 6c 61 79 6f 75 74 28 42 2c 20 70 72 6f 67 3d 5c 22 6e 65 61 74 6f 5c graphviz_layout(B,.prog=\"neato\
2c960 22 29 5c 6e 6e 78 2e 64 72 61 77 5f 6e 65 74 77 6f 72 6b 78 28 42 2c 20 70 6f 73 3d 70 6f 73 2c ")\nnx.draw_networkx(B,.pos=pos,
2c980 20 2a 2a 6f 70 74 69 6f 6e 73 29 5c 6e 5c 6e 6d 67 20 3d 20 6e 78 2e 6d 6f 72 61 6c 5f 67 72 61 .**options)\n\nmg.=.nx.moral_gra
2c9a0 70 68 28 42 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 61 78 67 ph(B)\nax2.=.fig.add_subplot(axg
2c9c0 72 69 64 5b 30 2c 20 31 5d 2c 20 73 68 61 72 65 78 3d 61 78 31 2c 20 73 68 61 72 65 79 3d 61 78 rid[0,.1],.sharex=ax1,.sharey=ax
2c9e0 31 29 5c 6e 61 78 32 2e 73 65 74 5f 74 69 74 6c 65 28 5c 22 4d 6f 72 61 6c 69 7a 65 64 20 47 72 1)\nax2.set_title(\"Moralized.Gr
2ca00 61 70 68 5c 22 29 5c 6e 6e 78 2e 64 72 61 77 5f 6e 65 74 77 6f 72 6b 78 28 6d 67 2c 20 70 6f 73 aph\")\nnx.draw_networkx(mg,.pos
2ca20 3d 70 6f 73 2c 20 2a 2a 6f 70 74 69 6f 6e 73 29 5c 6e 5c 6e 6a 74 20 3d 20 6e 78 2e 6a 75 6e 63 =pos,.**options)\n\njt.=.nx.junc
2ca40 74 69 6f 6e 5f 74 72 65 65 28 42 29 5c 6e 61 78 33 20 3d 20 66 69 67 2e 61 64 64 5f 73 75 62 70 tion_tree(B)\nax3.=.fig.add_subp
2ca60 6c 6f 74 28 61 78 67 72 69 64 5b 31 3a 2c 20 3a 5d 29 5c 6e 61 78 33 2e 73 65 74 5f 74 69 74 6c lot(axgrid[1:,.:])\nax3.set_titl
2ca80 65 28 5c 22 4a 75 6e 63 74 69 6f 6e 20 54 72 65 65 5c 22 29 5c 6e 61 78 33 2e 6d 61 72 67 69 6e e(\"Junction.Tree\")\nax3.margin
2caa0 73 28 30 2e 31 35 2c 20 30 2e 32 35 29 5c 6e 6e 73 69 7a 65 20 3d 20 5b 32 30 30 30 20 2a 20 6c s(0.15,.0.25)\nnsize.=.[2000.*.l
2cac0 65 6e 28 6e 29 20 66 6f 72 20 6e 20 69 6e 20 6c 69 73 74 28 6a 74 2e 6e 6f 64 65 73 28 29 29 5d en(n).for.n.in.list(jt.nodes())]
2cae0 5c 6e 70 6f 73 20 3d 20 6e 78 2e 6e 78 5f 61 67 72 61 70 68 2e 67 72 61 70 68 76 69 7a 5f 6c 61 \npos.=.nx.nx_agraph.graphviz_la
2cb00 79 6f 75 74 28 6a 74 2c 20 70 72 6f 67 3d 5c 22 6e 65 61 74 6f 5c 22 29 5c 6e 6e 78 2e 64 72 61 yout(jt,.prog=\"neato\")\nnx.dra
2cb20 77 5f 6e 65 74 77 6f 72 6b 78 28 6a 74 2c 20 70 6f 73 3d 70 6f 73 2c 20 6e 6f 64 65 5f 73 69 7a w_networkx(jt,.pos=pos,.node_siz
2cb40 65 3d 6e 73 69 7a 65 2c 20 2a 2a 6f 70 74 69 6f 6e 73 29 5c 6e 5c 6e 70 6c 74 2e 74 69 67 68 74 e=nsize,.**options)\n\nplt.tight
2cb60 5f 6c 61 79 6f 75 74 28 29 5c 6e 70 6c 74 2e 73 68 6f 77 28 29 22 0a 20 20 20 20 20 20 5d 0a 20 _layout()\nplt.show()".......]..
2cb80 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
2cba0 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
2cbc0 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"
2cbe0 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
2cc00 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":.
2cc20 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":.{....
2cc40 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",.........
2cc60 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
2cc80 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
2cca0 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
2ccc0 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
2cce0 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
2cd00 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",.......
2cd20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 39 2e 31 36 22 0a 20 20 20 20 7d 0a 20 20 7d 2c 0a 20 "version":."3.9.16".....}...},..
2cd40 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
2cd60 72 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 09 0f 5a 56 12 cf dc 20 94 09 00 00 94 09 00 r":.0.}PK..........ZV...........
2cd80 00 20 00 00 00 67 72 61 70 68 76 69 7a 5f 6c 61 79 6f 75 74 2f 70 6c 6f 74 5f 61 74 6c 61 73 2e .....graphviz_layout/plot_atlas.
2cda0 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":.[.....{.......
2cdc0 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
2cde0 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
2ce00 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
2ce20 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":.[],
2ce40 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
2ce60 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".......].....},..
2ce80 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
2cea0 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":.{},.......
2cec0 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 41 74 6c 61 73 5c 6e "source":.[........."\n#.Atlas\n
2cee0 5c 6e 41 74 6c 61 73 20 6f 66 20 61 6c 6c 20 63 6f 6e 6e 65 63 74 65 64 20 67 72 61 70 68 73 20 \nAtlas.of.all.connected.graphs.
2cf00 77 69 74 68 20 75 70 20 74 6f 20 36 20 6e 6f 64 65 73 2e 5c 6e 5c 6e 54 68 69 73 20 65 78 61 6d with.up.to.6.nodes.\n\nThis.exam
2cf20 70 6c 65 20 75 73 65 73 20 47 72 61 70 68 76 69 7a 20 76 69 61 20 50 79 47 72 61 70 68 76 69 7a ple.uses.Graphviz.via.PyGraphviz
2cf40 2e 5c 6e 5c 6e 54 68 65 20 69 6d 61 67 65 20 73 68 6f 75 6c 64 20 73 68 6f 77 20 31 34 32 20 67 .\n\nThe.image.should.show.142.g
2cf60 72 61 70 68 73 2e 5c 6e 57 65 20 64 6f 6e 27 74 20 70 6c 6f 74 20 74 68 65 20 65 6d 70 74 79 20 raphs.\nWe.don't.plot.the.empty.
2cf80 67 72 61 70 68 20 6e 6f 72 20 74 68 65 20 73 69 6e 67 6c 65 20 6e 6f 64 65 20 67 72 61 70 68 2e graph.nor.the.single.node.graph.
2cfa0 5c 6e 28 31 34 32 20 69 73 20 74 68 65 20 73 75 6d 20 6f 66 20 76 61 6c 75 65 73 20 32 20 74 6f \n(142.is.the.sum.of.values.2.to
2cfc0 20 6e 3d 36 20 69 6e 20 73 65 71 75 65 6e 63 65 20 6f 65 69 73 2e 6f 72 67 2f 41 30 30 31 33 34 .n=6.in.sequence.oeis.org/A00134
2cfe0 39 29 2e 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 9).\n".......].....},.....{.....
2d000 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
2d020 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
2d040 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
2d060 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":.[
2d080 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 69 6d ],......."source":.[........."im
2d0a0 70 6f 72 74 20 72 61 6e 64 6f 6d 5c 6e 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 port.random\n\nimport.matplotlib
2d0c0 2e 70 79 70 6c 6f 74 20 61 73 20 70 6c 74 5c 6e 69 6d 70 6f 72 74 20 6e 65 74 77 6f 72 6b 78 20 .pyplot.as.plt\nimport.networkx.
2d0e0 61 73 20 6e 78 5c 6e 5c 6e 5c 6e 47 72 61 70 68 4d 61 74 63 68 65 72 20 3d 20 6e 78 2e 69 73 6f as.nx\n\n\nGraphMatcher.=.nx.iso
2d100 6d 6f 72 70 68 69 73 6d 2e 76 66 32 75 73 65 72 66 75 6e 63 2e 47 72 61 70 68 4d 61 74 63 68 65 morphism.vf2userfunc.GraphMatche
2d120 72 5c 6e 5c 6e 5c 6e 64 65 66 20 61 74 6c 61 73 36 28 29 3a 5c 6e 20 20 20 20 5c 22 5c 22 5c 22 r\n\n\ndef.atlas6():\n....\"\"\"
2d140 52 65 74 75 72 6e 20 74 68 65 20 61 74 6c 61 73 20 6f 66 20 61 6c 6c 20 63 6f 6e 6e 65 63 74 65 Return.the.atlas.of.all.connecte
2d160 64 20 67 72 61 70 68 73 20 77 69 74 68 20 61 74 20 6d 6f 73 74 20 36 20 6e 6f 64 65 73 5c 22 5c d.graphs.with.at.most.6.nodes\"\
2d180 22 5c 22 5c 6e 5c 6e 20 20 20 20 41 74 6c 61 73 20 3d 20 6e 78 2e 67 72 61 70 68 5f 61 74 6c 61 "\"\n\n....Atlas.=.nx.graph_atla
2d1a0 73 5f 67 28 29 5b 33 3a 32 30 39 5d 20 20 23 20 30 2c 20 31 2c 20 32 20 3d 3e 20 6e 6f 20 65 64 s_g()[3:209]..#.0,.1,.2.=>.no.ed
2d1c0 67 65 73 2e 20 32 30 38 20 69 73 20 6c 61 73 74 20 36 20 6e 6f 64 65 20 67 72 61 70 68 5c 6e 20 ges..208.is.last.6.node.graph\n.
2d1e0 20 20 20 55 20 3d 20 6e 78 2e 47 72 61 70 68 28 29 20 20 23 20 67 72 61 70 68 20 66 6f 72 20 75 ...U.=.nx.Graph()..#.graph.for.u
2d200 6e 69 6f 6e 20 6f 66 20 61 6c 6c 20 67 72 61 70 68 73 20 69 6e 20 61 74 6c 61 73 5c 6e 20 20 20 nion.of.all.graphs.in.atlas\n...
2d220 20 66 6f 72 20 47 20 69 6e 20 41 74 6c 61 73 3a 5c 6e 20 20 20 20 20 20 20 20 23 20 63 68 65 63 .for.G.in.Atlas:\n........#.chec
2d240 6b 20 69 66 20 63 6f 6e 6e 65 63 74 65 64 5c 6e 20 20 20 20 20 20 20 20 69 66 20 6e 78 2e 6e 75 k.if.connected\n........if.nx.nu
2d260 6d 62 65 72 5f 63 6f 6e 6e 65 63 74 65 64 5f 63 6f 6d 70 6f 6e 65 6e 74 73 28 47 29 20 3d 3d 20 mber_connected_components(G).==.
2d280 31 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 23 20 63 68 65 63 6b 20 69 66 20 69 73 6f 6d 6f 1:\n............#.check.if.isomo
2d2a0 72 70 68 69 63 20 74 6f 20 61 20 70 72 65 76 69 6f 75 73 20 67 72 61 70 68 5c 6e 20 20 20 20 20 rphic.to.a.previous.graph\n.....
2d2c0 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 47 72 61 70 68 4d 61 74 63 68 65 72 28 55 2c 20 47 29 .......if.not.GraphMatcher(U,.G)
2d2e0 2e 73 75 62 67 72 61 70 68 5f 69 73 5f 69 73 6f 6d 6f 72 70 68 69 63 28 29 3a 5c 6e 20 20 20 20 .subgraph_is_isomorphic():\n....
2d300 20 20 20 20 20 20 20 20 20 20 20 20 55 20 3d 20 6e 78 2e 64 69 73 6a 6f 69 6e 74 5f 75 6e 69 6f ............U.=.nx.disjoint_unio
2d320 6e 28 55 2c 20 47 29 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 55 5c 6e 5c 6e 5c 6e 47 20 3d 20 61 n(U,.G)\n....return.U\n\n\nG.=.a
2d340 74 6c 61 73 36 28 29 5c 6e 5c 6e 70 72 69 6e 74 28 47 29 5c 6e 70 72 69 6e 74 28 6e 78 2e 6e 75 tlas6()\n\nprint(G)\nprint(nx.nu
2d360 6d 62 65 72 5f 63 6f 6e 6e 65 63 74 65 64 5f 63 6f 6d 70 6f 6e 65 6e 74 73 28 47 29 2c 20 5c 22 mber_connected_components(G),.\"
2d380 63 6f 6e 6e 65 63 74 65 64 20 63 6f 6d 70 6f 6e 65 6e 74 73 5c 22 29 5c 6e 5c 6e 70 6c 74 2e 66 connected.components\")\n\nplt.f
2d3a0 69 67 75 72 65 28 31 2c 20 66 69 67 73 69 7a 65 3d 28 38 2c 20 38 29 29 5c 6e 23 20 6c 61 79 6f igure(1,.figsize=(8,.8))\n#.layo
2d3c0 75 74 20 67 72 61 70 68 73 20 77 69 74 68 20 70 6f 73 69 74 69 6f 6e 73 20 75 73 69 6e 67 20 67 ut.graphs.with.positions.using.g
2d3e0 72 61 70 68 76 69 7a 20 6e 65 61 74 6f 5c 6e 70 6f 73 20 3d 20 6e 78 2e 6e 78 5f 61 67 72 61 70 raphviz.neato\npos.=.nx.nx_agrap
2d400 68 2e 67 72 61 70 68 76 69 7a 5f 6c 61 79 6f 75 74 28 47 2c 20 70 72 6f 67 3d 5c 22 6e 65 61 74 h.graphviz_layout(G,.prog=\"neat
2d420 6f 5c 22 29 5c 6e 23 20 63 6f 6c 6f 72 20 6e 6f 64 65 73 20 74 68 65 20 73 61 6d 65 20 69 6e 20 o\")\n#.color.nodes.the.same.in.
2d440 65 61 63 68 20 63 6f 6e 6e 65 63 74 65 64 20 73 75 62 67 72 61 70 68 5c 6e 43 20 3d 20 28 47 2e each.connected.subgraph\nC.=.(G.
2d460 73 75 62 67 72 61 70 68 28 63 29 20 66 6f 72 20 63 20 69 6e 20 6e 78 2e 63 6f 6e 6e 65 63 74 65 subgraph(c).for.c.in.nx.connecte
2d480 64 5f 63 6f 6d 70 6f 6e 65 6e 74 73 28 47 29 29 5c 6e 66 6f 72 20 67 20 69 6e 20 43 3a 5c 6e 20 d_components(G))\nfor.g.in.C:\n.
2d4a0 20 20 20 63 20 3d 20 5b 72 61 6e 64 6f 6d 2e 72 61 6e 64 6f 6d 28 29 5d 20 2a 20 6e 78 2e 6e 75 ...c.=.[random.random()].*.nx.nu
2d4c0 6d 62 65 72 5f 6f 66 5f 6e 6f 64 65 73 28 67 29 20 20 23 20 72 61 6e 64 6f 6d 20 63 6f 6c 6f 72 mber_of_nodes(g)..#.random.color
2d4e0 2e 2e 2e 5c 6e 20 20 20 20 6e 78 2e 64 72 61 77 28 67 2c 20 70 6f 73 2c 20 6e 6f 64 65 5f 73 69 ...\n....nx.draw(g,.pos,.node_si
2d500 7a 65 3d 34 30 2c 20 6e 6f 64 65 5f 63 6f 6c 6f 72 3d 63 2c 20 76 6d 69 6e 3d 30 2e 30 2c 20 76 ze=40,.node_color=c,.vmin=0.0,.v
2d520 6d 61 78 3d 31 2e 30 2c 20 77 69 74 68 5f 6c 61 62 65 6c 73 3d 46 61 6c 73 65 29 5c 6e 70 6c 74 max=1.0,.with_labels=False)\nplt
2d540 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
2d560 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":.{.
2d580 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"
2d5a0 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",...
2d5c0 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".....},....
2d5e0 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
2d600 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":."
2d620 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..
2d640 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":.
2d660 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
2d680 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"
2d6a0 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
2d6c0 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":.
2d6e0 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.
2d700 39 2e 31 36 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 9.16".....}...},..."nbformat":.4
2d720 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 00 ,..."nbformat_minor":.0.}PK.....
2d740 00 00 00 0a 0f 5a 56 c2 e1 cb ec ad 0a 00 00 ad 0a 00 00 2a 00 00 00 67 72 61 70 68 76 69 7a 5f .....ZV............*...graphviz_
2d760 6c 61 79 6f 75 74 2f 70 6c 6f 74 5f 67 69 61 6e 74 5f 63 6f 6d 70 6f 6e 65 6e 74 2e 69 70 79 6e layout/plot_giant_component.ipyn
2d780 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
2d7a0 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
2d7c0 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"
2d7e0 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..
2d800 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":.[],....
2d820 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
2d840 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".......].....},.....{
2d860 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",.
2d880 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
2d8a0 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 47 69 61 6e 74 20 43 6f 6d 70 6f rce":.[........."\n#.Giant.Compo
2d8c0 6e 65 6e 74 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 nent\n\nThis.example.illustrates
2d8e0 20 74 68 65 20 73 75 64 64 65 6e 20 61 70 70 65 61 72 61 6e 63 65 20 6f 66 20 61 5c 6e 67 69 61 .the.sudden.appearance.of.a\ngia
2d900 6e 74 20 63 6f 6e 6e 65 63 74 65 64 20 63 6f 6d 70 6f 6e 65 6e 74 20 69 6e 20 61 20 62 69 6e 6f nt.connected.component.in.a.bino
2d920 6d 69 61 6c 20 72 61 6e 64 6f 6d 20 67 72 61 70 68 2e 5c 6e 5c 6e 54 68 69 73 20 65 78 61 6d 70 mial.random.graph.\n\nThis.examp
2d940 6c 65 20 6e 65 65 64 73 20 47 72 61 70 68 76 69 7a 20 61 6e 64 20 50 79 47 72 61 70 68 76 69 7a le.needs.Graphviz.and.PyGraphviz
2d960 2e 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".......].....},.....{.......
2d980 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
2d9a0 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
2d9c0 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
2d9e0 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":.[],
2da00 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
2da20 72 74 20 6d 61 74 68 5c 6e 5c 6e 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 70 rt.math\n\nimport.matplotlib.pyp
2da40 6c 6f 74 20 61 73 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 lot.as.plt\nimport.networkx.as.n
2da60 78 5c 6e 5c 6e 6e 20 3d 20 31 35 30 20 20 23 20 31 35 30 20 6e 6f 64 65 73 5c 6e 23 20 70 20 76 x\n\nn.=.150..#.150.nodes\n#.p.v
2da80 61 6c 75 65 20 61 74 20 77 68 69 63 68 20 67 69 61 6e 74 20 63 6f 6d 70 6f 6e 65 6e 74 20 28 6f alue.at.which.giant.component.(o
2daa0 66 20 73 69 7a 65 20 6c 6f 67 28 6e 29 20 6e 6f 64 65 73 29 20 69 73 20 65 78 70 65 63 74 65 64 f.size.log(n).nodes).is.expected
2dac0 5c 6e 70 5f 67 69 61 6e 74 20 3d 20 31 2e 30 20 2f 20 28 6e 20 2d 20 31 29 5c 6e 23 20 70 20 76 \np_giant.=.1.0./.(n.-.1)\n#.p.v
2dae0 61 6c 75 65 20 61 74 20 77 68 69 63 68 20 67 72 61 70 68 20 69 73 20 65 78 70 65 63 74 65 64 20 alue.at.which.graph.is.expected.
2db00 74 6f 20 62 65 63 6f 6d 65 20 63 6f 6d 70 6c 65 74 65 6c 79 20 63 6f 6e 6e 65 63 74 65 64 5c 6e to.become.completely.connected\n
2db20 70 5f 63 6f 6e 6e 20 3d 20 6d 61 74 68 2e 6c 6f 67 28 6e 29 20 2f 20 6e 5c 6e 5c 6e 23 20 74 68 p_conn.=.math.log(n)./.n\n\n#.th
2db40 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 72 61 6e 67 65 20 6f 66 20 70 20 76 61 6c 75 65 73 20 73 68 e.following.range.of.p.values.sh
2db60 6f 75 6c 64 20 62 65 20 63 6c 6f 73 65 20 74 6f 20 74 68 65 20 74 68 72 65 73 68 6f 6c 64 5c 6e ould.be.close.to.the.threshold\n
2db80 70 76 61 6c 73 20 3d 20 5b 30 2e 30 30 33 2c 20 30 2e 30 30 36 2c 20 30 2e 30 30 38 2c 20 30 2e pvals.=.[0.003,.0.006,.0.008,.0.
2dba0 30 31 35 5d 5c 6e 5c 6e 66 69 67 2c 20 61 78 65 73 20 3d 20 70 6c 74 2e 73 75 62 70 6c 6f 74 73 015]\n\nfig,.axes.=.plt.subplots
2dbc0 28 32 2c 20 32 29 5c 6e 66 6f 72 20 70 2c 20 61 78 2c 20 73 65 65 64 20 69 6e 20 7a 69 70 28 70 (2,.2)\nfor.p,.ax,.seed.in.zip(p
2dbe0 76 61 6c 73 2c 20 61 78 65 73 2e 72 61 76 65 6c 28 29 2c 20 72 61 6e 67 65 28 6c 65 6e 28 70 76 vals,.axes.ravel(),.range(len(pv
2dc00 61 6c 73 29 29 29 3a 5c 6e 20 20 20 20 23 23 23 23 20 67 65 6e 65 72 61 74 65 20 67 72 61 70 68 als))):\n....####.generate.graph
2dc20 20 23 23 23 23 5c 6e 20 20 20 20 47 20 3d 20 6e 78 2e 62 69 6e 6f 6d 69 61 6c 5f 67 72 61 70 68 .####\n....G.=.nx.binomial_graph
2dc40 28 6e 2c 20 70 2c 20 73 65 65 64 3d 73 65 65 64 29 5c 6e 20 20 20 20 23 20 69 64 65 6e 74 69 66 (n,.p,.seed=seed)\n....#.identif
2dc60 79 20 63 6f 6e 6e 65 63 74 65 64 2f 64 69 73 63 6f 6e 6e 65 63 74 65 64 20 6e 6f 64 65 73 5c 6e y.connected/disconnected.nodes\n
2dc80 20 20 20 20 63 6f 6e 6e 65 63 74 65 64 20 3d 20 5b 6e 20 66 6f 72 20 6e 2c 20 64 20 69 6e 20 47 ....connected.=.[n.for.n,.d.in.G
2dca0 2e 64 65 67 72 65 65 28 29 20 69 66 20 64 20 3e 20 30 5d 5c 6e 20 20 20 20 64 69 73 63 6f 6e 6e .degree().if.d.>.0]\n....disconn
2dcc0 65 63 74 65 64 20 3d 20 6c 69 73 74 28 73 65 74 28 47 2e 6e 6f 64 65 73 28 29 29 20 2d 20 73 65 ected.=.list(set(G.nodes()).-.se
2dce0 74 28 63 6f 6e 6e 65 63 74 65 64 29 29 5c 6e 20 20 20 20 23 20 69 64 65 6e 74 69 66 79 20 6c 61 t(connected))\n....#.identify.la
2dd00 72 67 65 73 74 20 63 6f 6e 6e 65 63 74 65 64 20 63 6f 6d 70 6f 6e 65 6e 74 5c 6e 20 20 20 20 47 rgest.connected.component\n....G
2dd20 63 63 20 3d 20 73 6f 72 74 65 64 28 6e 78 2e 63 6f 6e 6e 65 63 74 65 64 5f 63 6f 6d 70 6f 6e 65 cc.=.sorted(nx.connected_compone
2dd40 6e 74 73 28 47 29 2c 20 6b 65 79 3d 6c 65 6e 2c 20 72 65 76 65 72 73 65 3d 54 72 75 65 29 5c 6e nts(G),.key=len,.reverse=True)\n
2dd60 20 20 20 20 47 30 20 3d 20 47 2e 73 75 62 67 72 61 70 68 28 47 63 63 5b 30 5d 29 5c 6e 20 20 20 ....G0.=.G.subgraph(Gcc[0])\n...
2dd80 20 23 23 23 23 20 64 72 61 77 20 67 72 61 70 68 20 23 23 23 23 5c 6e 20 20 20 20 70 6f 73 20 3d .####.draw.graph.####\n....pos.=
2dda0 20 6e 78 2e 6e 78 5f 61 67 72 61 70 68 2e 67 72 61 70 68 76 69 7a 5f 6c 61 79 6f 75 74 28 47 29 .nx.nx_agraph.graphviz_layout(G)
2ddc0 5c 6e 20 20 20 20 61 78 2e 73 65 74 5f 74 69 74 6c 65 28 66 5c 22 70 20 3d 20 7b 70 3a 2e 33 66 \n....ax.set_title(f\"p.=.{p:.3f
2dde0 7d 5c 22 29 5c 6e 20 20 20 20 23 20 64 72 61 77 20 6c 61 72 67 65 73 74 20 63 6f 6e 6e 65 63 74 }\")\n....#.draw.largest.connect
2de00 65 64 20 63 6f 6d 70 6f 6e 65 6e 74 5c 6e 20 20 20 20 6f 70 74 69 6f 6e 73 20 3d 20 7b 5c 22 61 ed.component\n....options.=.{\"a
2de20 78 5c 22 3a 20 61 78 2c 20 5c 22 65 64 67 65 5f 63 6f 6c 6f 72 5c 22 3a 20 5c 22 74 61 62 3a 72 x\":.ax,.\"edge_color\":.\"tab:r
2de40 65 64 5c 22 7d 5c 6e 20 20 20 20 6e 78 2e 64 72 61 77 5f 6e 65 74 77 6f 72 6b 78 5f 65 64 67 65 ed\"}\n....nx.draw_networkx_edge
2de60 73 28 47 30 2c 20 70 6f 73 2c 20 77 69 64 74 68 3d 36 2e 30 2c 20 2a 2a 6f 70 74 69 6f 6e 73 29 s(G0,.pos,.width=6.0,.**options)
2de80 5c 6e 20 20 20 20 23 20 64 72 61 77 20 6f 74 68 65 72 20 63 6f 6e 6e 65 63 74 65 64 20 63 6f 6d \n....#.draw.other.connected.com
2dea0 70 6f 6e 65 6e 74 73 5c 6e 20 20 20 20 66 6f 72 20 47 69 20 69 6e 20 47 63 63 5b 31 3a 5d 3a 5c ponents\n....for.Gi.in.Gcc[1:]:\
2dec0 6e 20 20 20 20 20 20 20 20 69 66 20 6c 65 6e 28 47 69 29 20 3e 20 31 3a 5c 6e 20 20 20 20 20 20 n........if.len(Gi).>.1:\n......
2dee0 20 20 20 20 20 20 6e 78 2e 64 72 61 77 5f 6e 65 74 77 6f 72 6b 78 5f 65 64 67 65 73 28 47 2e 73 ......nx.draw_networkx_edges(G.s
2df00 75 62 67 72 61 70 68 28 47 69 29 2c 20 70 6f 73 2c 20 61 6c 70 68 61 3d 30 2e 33 2c 20 77 69 64 ubgraph(Gi),.pos,.alpha=0.3,.wid
2df20 74 68 3d 35 2e 30 2c 20 2a 2a 6f 70 74 69 6f 6e 73 29 5c 6e 20 20 20 20 23 20 64 72 61 77 20 63 th=5.0,.**options)\n....#.draw.c
2df40 6f 6e 6e 65 63 74 65 64 2f 64 69 73 63 6f 6e 6e 65 63 74 65 64 20 6e 6f 64 65 73 5c 6e 20 20 20 onnected/disconnected.nodes\n...
2df60 20 6f 70 74 69 6f 6e 73 20 3d 20 7b 5c 22 61 78 5c 22 3a 20 61 78 2c 20 5c 22 6e 6f 64 65 5f 73 .options.=.{\"ax\":.ax,.\"node_s
2df80 69 7a 65 5c 22 3a 20 33 30 2c 20 5c 22 65 64 67 65 63 6f 6c 6f 72 73 5c 22 3a 20 5c 22 77 68 69 ize\":.30,.\"edgecolors\":.\"whi
2dfa0 74 65 5c 22 7d 5c 6e 20 20 20 20 6e 78 2e 64 72 61 77 28 47 2c 20 70 6f 73 2c 20 6e 6f 64 65 6c te\"}\n....nx.draw(G,.pos,.nodel
2dfc0 69 73 74 3d 63 6f 6e 6e 65 63 74 65 64 2c 20 2a 2a 6f 70 74 69 6f 6e 73 29 5c 6e 20 20 20 20 6e ist=connected,.**options)\n....n
2dfe0 78 2e 64 72 61 77 28 47 2c 20 70 6f 73 2c 20 6e 6f 64 65 6c 69 73 74 3d 64 69 73 63 6f 6e 6e 65 x.draw(G,.pos,.nodelist=disconne
2e000 63 74 65 64 2c 20 61 6c 70 68 61 3d 30 2e 32 35 2c 20 2a 2a 6f 70 74 69 6f 6e 73 29 5c 6e 66 69 cted,.alpha=0.25,.**options)\nfi
2e020 67 2e 74 69 67 68 74 5f 6c 61 79 6f 75 74 28 29 5c 6e 70 6c 74 2e 73 68 6f 77 28 29 22 0a 20 20 g.tight_layout()\nplt.show()"...
2e040 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":.{
2e060 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
2e080 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
2e0a0 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":
2e0c0 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_
2e0e0 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"
2e100 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",..
2e120 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.......},....
2e140 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",.....
2e160 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",..
2e180 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
2e1a0 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",....
2e1c0 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",
2e1e0 0a 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 22 33 2e 39 2e 31 36 22 0a 20 20 20 20 7d ......."version":."3.9.16".....}
2e200 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
2e220 61 74 5f 6d 69 6e 6f 72 22 3a 20 30 0a 7d 50 4b 03 04 14 00 00 00 00 00 09 0f 5a 56 66 46 b1 6a at_minor":.0.}PK..........ZVfF.j
2e240 42 05 00 00 42 05 00 00 28 00 00 00 67 72 61 70 68 76 69 7a 5f 6c 61 79 6f 75 74 2f 70 6c 6f 74 B...B...(...graphviz_layout/plot
2e260 5f 63 69 72 63 75 6c 61 72 5f 74 72 65 65 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 22 3a _circular_tree.ipynb{..."cells":
2e280 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 64 .[.....{......."cell_type":."cod
2e2a0 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
2e2c0 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":.{........."
2e2e0 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.......},......
2e300 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":.
2e320 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 20 [........."%matplotlib.inline"..
2e340 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_
2e360 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
2e380 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":.[......
2e3a0 20 20 20 22 5c 6e 23 20 43 69 72 63 75 6c 61 72 20 54 72 65 65 5c 6e 5c 6e 54 68 69 73 20 65 78 ..."\n#.Circular.Tree\n\nThis.ex
2e3c0 61 6d 70 6c 65 20 6e 65 65 64 73 20 47 72 61 70 68 76 69 7a 20 61 6e 64 20 50 79 47 72 61 70 68 ample.needs.Graphviz.and.PyGraph
2e3e0 76 69 7a 2e 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 viz.\n".......].....},.....{....
2e400 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
2e420 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
2e440 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":.
2e460 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":.
2e480 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 69 [],......."source":.[........."i
2e4a0 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 20 70 6c 74 5c 6e mport.matplotlib.pyplot.as.plt\n
2e4c0 69 6d 70 6f 72 74 20 6e 65 74 77 6f 72 6b 78 20 61 73 20 6e 78 5c 6e 5c 6e 47 20 3d 20 6e 78 2e import.networkx.as.nx\n\nG.=.nx.
2e4e0 62 61 6c 61 6e 63 65 64 5f 74 72 65 65 28 33 2c 20 35 29 5c 6e 70 6f 73 20 3d 20 6e 78 2e 6e 78 balanced_tree(3,.5)\npos.=.nx.nx
2e500 5f 61 67 72 61 70 68 2e 67 72 61 70 68 76 69 7a 5f 6c 61 79 6f 75 74 28 47 2c 20 70 72 6f 67 3d _agraph.graphviz_layout(G,.prog=
2e520 5c 22 74 77 6f 70 69 5c 22 2c 20 61 72 67 73 3d 5c 22 5c 22 29 5c 6e 70 6c 74 2e 66 69 67 75 72 \"twopi\",.args=\"\")\nplt.figur
2e540 65 28 66 69 67 73 69 7a 65 3d 28 38 2c 20 38 29 29 5c 6e 6e 78 2e 64 72 61 77 28 47 2c 20 70 6f e(figsize=(8,.8))\nnx.draw(G,.po
2e560 73 2c 20 6e 6f 64 65 5f 73 69 7a 65 3d 32 30 2c 20 61 6c 70 68 61 3d 30 2e 35 2c 20 6e 6f 64 65 s,.node_size=20,.alpha=0.5,.node
2e580 5f 63 6f 6c 6f 72 3d 5c 22 62 6c 75 65 5c 22 2c 20 77 69 74 68 5f 6c 61 62 65 6c 73 3d 46 61 6c _color=\"blue\",.with_labels=Fal
2e5a0 73 65 29 5c 6e 70 6c 74 2e 61 78 69 73 28 5c 22 65 71 75 61 6c 5c 22 29 5c 6e 70 6c 74 2e 73 68 se)\nplt.axis(\"equal\")\nplt.sh
2e5c0 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 61 ow()".......].....}...],..."meta
2e5e0 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 20 data":.{....."kernelspec":.{....
2e600 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 20 ..."display_name":."Python.3",..
2e620 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 20 ....."language":."python",......
2e640 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 6c ."name":."python3".....},....."l
2e660 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 72 anguage_info":.{......."codemirr
2e680 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 79 or_mode":.{........."name":."ipy
2e6a0 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 20 thon",........."version":.3.....
2e6c0 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 70 ..},......."file_extension":.".p
2e6e0 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 79 y",......."mimetype":."text/x-py
2e700 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 20 thon",......."name":."python",..
2e720 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 68 ....."nbconvert_exporter":."pyth
2e740 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 70 on",......."pygments_lexer":."ip
2e760 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 39 2e 31 ython3",......."version":."3.9.1
2e780 36 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 6".....}...},..."nbformat":.4,..
2e7a0 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........
2e7c0 0a 0f 5a 56 14 54 0c 4e 19 0a 00 00 19 0a 00 00 26 00 00 00 67 72 61 70 68 76 69 7a 5f 6c 61 79 ..ZV.T.N........&...graphviz_lay
2e7e0 6f 75 74 2f 70 6c 6f 74 5f 6c 61 6e 6c 5f 72 6f 75 74 65 73 2e 69 70 79 6e 62 7b 0a 20 20 22 63 out/plot_lanl_routes.ipynb{..."c
2e800 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"
2e820 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
2e840 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":.{....
2e860 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.......},
2e880 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
2e8a0 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
2e8c0 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".......].....},.....{.......
2e8e0 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",......."
2e900 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":.[
2e920 0a 20 20 20 20 20 20 20 20 22 5c 6e 23 20 4c 61 6e 6c 20 52 6f 75 74 65 73 5c 6e 5c 6e 52 6f 75 ........."\n#.Lanl.Routes\n\nRou
2e940 74 65 73 20 74 6f 20 4c 41 4e 4c 20 66 72 6f 6d 20 31 38 36 20 73 69 74 65 73 20 6f 6e 20 74 68 tes.to.LANL.from.186.sites.on.th
2e960 65 20 49 6e 74 65 72 6e 65 74 2e 5c 6e 5c 6e 54 68 65 20 64 61 74 61 20 66 69 6c 65 20 63 61 6e e.Internet.\n\nThe.data.file.can
2e980 20 62 65 20 66 6f 75 6e 64 20 61 74 3a 5c 6e 5c 6e 2d 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 .be.found.at:\n\n-.https://githu
2e9a0 62 2e 63 6f 6d 2f 6e 65 74 77 6f 72 6b 78 2f 6e 65 74 77 6f 72 6b 78 2f 62 6c 6f 62 2f 6d 61 69 b.com/networkx/networkx/blob/mai
2e9c0 6e 2f 65 78 61 6d 70 6c 65 73 2f 67 72 61 70 68 76 69 7a 5f 6c 61 79 6f 75 74 2f 6c 61 6e 6c 5f n/examples/graphviz_layout/lanl_
2e9e0 72 6f 75 74 65 73 2e 65 64 67 65 6c 69 73 74 5c 6e 5c 6e 54 68 69 73 20 65 78 61 6d 70 6c 65 20 routes.edgelist\n\nThis.example.
2ea00 6e 65 65 64 73 20 47 72 61 70 68 76 69 7a 20 61 6e 64 20 50 79 47 72 61 70 68 76 69 7a 2e 5c 6e needs.Graphviz.and.PyGraphviz.\n
2ea20 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
2ea40 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
2ea60 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
2ea80 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.
2eaa0 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":.[],...
2eac0 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 72 74 20 ...."source":.[........."import.
2eae0 6d 61 74 70 6c 6f 74 6c 69 62 2e 70 79 70 6c 6f 74 20 61 73 20 70 6c 74 5c 6e 69 6d 70 6f 72 74 matplotlib.pyplot.as.plt\nimport
2eb00 20 6e 65 74 77 6f 72 6b 78 20 61 73 20 6e 78 5c 6e 5c 6e 5c 6e 64 65 66 20 6c 61 6e 6c 5f 67 72 .networkx.as.nx\n\n\ndef.lanl_gr
2eb20 61 70 68 28 29 3a 5c 6e 20 20 20 20 5c 22 5c 22 5c 22 52 65 74 75 72 6e 20 74 68 65 20 6c 61 6e aph():\n....\"\"\"Return.the.lan
2eb40 6c 20 69 6e 74 65 72 6e 65 74 20 76 69 65 77 20 67 72 61 70 68 20 66 72 6f 6d 20 6c 61 6e 6c 2e l.internet.view.graph.from.lanl.
2eb60 65 64 67 65 73 5c 22 5c 22 5c 22 5c 6e 20 20 20 20 74 72 79 3a 5c 6e 20 20 20 20 20 20 20 20 66 edges\"\"\"\n....try:\n........f
2eb80 68 20 3d 20 6f 70 65 6e 28 5c 22 6c 61 6e 6c 5f 72 6f 75 74 65 73 2e 65 64 67 65 6c 69 73 74 5c h.=.open(\"lanl_routes.edgelist\
2eba0 22 29 5c 6e 20 20 20 20 65 78 63 65 70 74 20 4f 53 45 72 72 6f 72 3a 5c 6e 20 20 20 20 20 20 20 ")\n....except.OSError:\n.......
2ebc0 20 70 72 69 6e 74 28 5c 22 6c 61 6e 6c 2e 65 64 67 65 73 20 6e 6f 74 20 66 6f 75 6e 64 5c 22 29 .print(\"lanl.edges.not.found\")
2ebe0 5c 6e 20 20 20 20 20 20 20 20 72 61 69 73 65 5c 6e 5c 6e 20 20 20 20 47 20 3d 20 6e 78 2e 47 72 \n........raise\n\n....G.=.nx.Gr
2ec00 61 70 68 28 29 5c 6e 5c 6e 20 20 20 20 74 69 6d 65 20 3d 20 7b 7d 5c 6e 20 20 20 20 74 69 6d 65 aph()\n\n....time.=.{}\n....time
2ec20 5b 30 5d 20 3d 20 30 20 20 23 20 61 73 73 69 67 6e 20 30 20 74 6f 20 63 65 6e 74 65 72 20 6e 6f [0].=.0..#.assign.0.to.center.no
2ec40 64 65 5c 6e 20 20 20 20 66 6f 72 20 6c 69 6e 65 20 69 6e 20 66 68 2e 72 65 61 64 6c 69 6e 65 73 de\n....for.line.in.fh.readlines
2ec60 28 29 3a 5c 6e 20 20 20 20 20 20 20 20 28 68 65 61 64 2c 20 74 61 69 6c 2c 20 72 74 74 29 20 3d ():\n........(head,.tail,.rtt).=
2ec80 20 6c 69 6e 65 2e 73 70 6c 69 74 28 29 5c 6e 20 20 20 20 20 20 20 20 47 2e 61 64 64 5f 65 64 67 .line.split()\n........G.add_edg
2eca0 65 28 69 6e 74 28 68 65 61 64 29 2c 20 69 6e 74 28 74 61 69 6c 29 29 5c 6e 20 20 20 20 20 20 20 e(int(head),.int(tail))\n.......
2ecc0 20 74 69 6d 65 5b 69 6e 74 28 68 65 61 64 29 5d 20 3d 20 66 6c 6f 61 74 28 72 74 74 29 5c 6e 5c .time[int(head)].=.float(rtt)\n\
2ece0 6e 20 20 20 20 23 20 67 65 74 20 6c 61 72 67 65 73 74 20 63 6f 6d 70 6f 6e 65 6e 74 20 61 6e 64 n....#.get.largest.component.and
2ed00 20 61 73 73 69 67 6e 20 70 69 6e 67 20 74 69 6d 65 73 20 74 6f 20 47 30 74 69 6d 65 20 64 69 63 .assign.ping.times.to.G0time.dic
2ed20 74 69 6f 6e 61 72 79 5c 6e 20 20 20 20 47 63 63 20 3d 20 73 6f 72 74 65 64 28 6e 78 2e 63 6f 6e tionary\n....Gcc.=.sorted(nx.con
2ed40 6e 65 63 74 65 64 5f 63 6f 6d 70 6f 6e 65 6e 74 73 28 47 29 2c 20 6b 65 79 3d 6c 65 6e 2c 20 72 nected_components(G),.key=len,.r
2ed60 65 76 65 72 73 65 3d 54 72 75 65 29 5b 30 5d 5c 6e 20 20 20 20 47 30 20 3d 20 47 2e 73 75 62 67 everse=True)[0]\n....G0.=.G.subg
2ed80 72 61 70 68 28 47 63 63 29 5c 6e 20 20 20 20 47 30 2e 72 74 74 20 3d 20 7b 7d 5c 6e 20 20 20 20 raph(Gcc)\n....G0.rtt.=.{}\n....
2eda0 66 6f 72 20 6e 20 69 6e 20 47 30 3a 5c 6e 20 20 20 20 20 20 20 20 47 30 2e 72 74 74 5b 6e 5d 20 for.n.in.G0:\n........G0.rtt[n].
2edc0 3d 20 74 69 6d 65 5b 6e 5d 5c 6e 5c 6e 20 20 20 20 72 65 74 75 72 6e 20 47 30 5c 6e 5c 6e 5c 6e =.time[n]\n\n....return.G0\n\n\n
2ede0 47 20 3d 20 6c 61 6e 6c 5f 67 72 61 70 68 28 29 5c 6e 5c 6e 70 72 69 6e 74 28 47 29 5c 6e 70 72 G.=.lanl_graph()\n\nprint(G)\npr
2ee00 69 6e 74 28 6e 78 2e 6e 75 6d 62 65 72 5f 63 6f 6e 6e 65 63 74 65 64 5f 63 6f 6d 70 6f 6e 65 6e int(nx.number_connected_componen
2ee20 74 73 28 47 29 2c 20 5c 22 63 6f 6e 6e 65 63 74 65 64 20 63 6f 6d 70 6f 6e 65 6e 74 73 5c 22 29 ts(G),.\"connected.components\")
2ee40 5c 6e 5c 6e 70 6c 74 2e 66 69 67 75 72 65 28 66 69 67 73 69 7a 65 3d 28 38 2c 20 38 29 29 5c 6e \n\nplt.figure(figsize=(8,.8))\n
2ee60 23 20 75 73 65 20 67 72 61 70 68 76 69 7a 20 74 6f 20 66 69 6e 64 20 72 61 64 69 61 6c 20 6c 61 #.use.graphviz.to.find.radial.la
2ee80 79 6f 75 74 5c 6e 70 6f 73 20 3d 20 6e 78 2e 6e 78 5f 61 67 72 61 70 68 2e 67 72 61 70 68 76 69 yout\npos.=.nx.nx_agraph.graphvi
2eea0 7a 5f 6c 61 79 6f 75 74 28 47 2c 20 70 72 6f 67 3d 5c 22 74 77 6f 70 69 5c 22 2c 20 72 6f 6f 74 z_layout(G,.prog=\"twopi\",.root
2eec0 3d 30 29 5c 6e 23 20 64 72 61 77 20 6e 6f 64 65 73 2c 20 63 6f 6c 6f 72 69 6e 67 20 62 79 20 72 =0)\n#.draw.nodes,.coloring.by.r
2eee0 74 74 20 70 69 6e 67 20 74 69 6d 65 5c 6e 6f 70 74 69 6f 6e 73 20 3d 20 7b 5c 22 77 69 74 68 5f tt.ping.time\noptions.=.{\"with_
2ef00 6c 61 62 65 6c 73 5c 22 3a 20 46 61 6c 73 65 2c 20 5c 22 61 6c 70 68 61 5c 22 3a 20 30 2e 35 2c labels\":.False,.\"alpha\":.0.5,
2ef20 20 5c 22 6e 6f 64 65 5f 73 69 7a 65 5c 22 3a 20 31 35 7d 5c 6e 6e 78 2e 64 72 61 77 28 47 2c 20 .\"node_size\":.15}\nnx.draw(G,.
2ef40 70 6f 73 2c 20 6e 6f 64 65 5f 63 6f 6c 6f 72 3d 5b 47 2e 72 74 74 5b 76 5d 20 66 6f 72 20 76 20 pos,.node_color=[G.rtt[v].for.v.
2ef60 69 6e 20 47 5d 2c 20 2a 2a 6f 70 74 69 6f 6e 73 29 5c 6e 23 20 61 64 6a 75 73 74 20 74 68 65 20 in.G],.**options)\n#.adjust.the.
2ef80 70 6c 6f 74 20 6c 69 6d 69 74 73 5c 6e 78 6d 61 78 20 3d 20 31 2e 30 32 20 2a 20 6d 61 78 28 78 plot.limits\nxmax.=.1.02.*.max(x
2efa0 78 20 66 6f 72 20 78 78 2c 20 79 79 20 69 6e 20 70 6f 73 2e 76 61 6c 75 65 73 28 29 29 5c 6e 79 x.for.xx,.yy.in.pos.values())\ny
2efc0 6d 61 78 20 3d 20 31 2e 30 32 20 2a 20 6d 61 78 28 79 79 20 66 6f 72 20 78 78 2c 20 79 79 20 69 max.=.1.02.*.max(yy.for.xx,.yy.i
2efe0 6e 20 70 6f 73 2e 76 61 6c 75 65 73 28 29 29 5c 6e 70 6c 74 2e 78 6c 69 6d 28 30 2c 20 78 6d 61 n.pos.values())\nplt.xlim(0,.xma
2f000 78 29 5c 6e 70 6c 74 2e 79 6c 69 6d 28 30 2c 20 79 6d 61 78 29 5c 6e 70 6c 74 2e 73 68 6f 77 28 x)\nplt.ylim(0,.ymax)\nplt.show(
2f020 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
2f040 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":.{.......
2f060 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",.....
2f080 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
2f0a0 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
2f0c0 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_
2f0e0 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
2f100 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.......}
2f120 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",
2f140 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
2f160 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",.....
2f180 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"
2f1a0 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
2f1c0 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 39 2e 31 36 22 0a on3",......."version":."3.9.16".
2f1e0 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
2f200 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 25 0f 5a bformat_minor":.0.}PK........%.Z
2f220 56 66 ee 3d 97 26 1c 00 00 26 1c 00 00 1d 00 00 00 73 75 62 63 6c 61 73 73 2f 70 6c 6f 74 5f 61 Vf.=.&...&.......subclass/plot_a
2f240 6e 74 69 67 72 61 70 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 ntigraph.ipynb{..."cells":.[....
2f260 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",...
2f280 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,....
2f2a0 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
2f2c0 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
2f2e0 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":.[.....
2f300 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".......]
2f320 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":
2f340 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":.{
2f360 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
2f380 23 20 41 6e 74 69 67 72 61 70 68 5c 6e 5c 6e 43 6f 6d 70 6c 65 6d 65 6e 74 20 67 72 61 70 68 20 #.Antigraph\n\nComplement.graph.
2f3a0 63 6c 61 73 73 20 66 6f 72 20 73 6d 61 6c 6c 20 66 6f 6f 74 70 72 69 6e 74 20 77 68 65 6e 20 77 class.for.small.footprint.when.w
2f3c0 6f 72 6b 69 6e 67 20 6f 6e 20 64 65 6e 73 65 20 67 72 61 70 68 73 2e 5c 6e 5c 6e 54 68 69 73 20 orking.on.dense.graphs.\n\nThis.
2f3e0 63 6c 61 73 73 20 61 6c 6c 6f 77 73 20 79 6f 75 20 74 6f 20 61 64 64 20 74 68 65 20 65 64 67 65 class.allows.you.to.add.the.edge
2f400 73 20 74 68 61 74 20 2a 64 6f 20 6e 6f 74 20 65 78 69 73 74 2a 20 69 6e 20 74 68 65 20 64 65 6e s.that.*do.not.exist*.in.the.den
2f420 73 65 5c 6e 67 72 61 70 68 2e 20 48 6f 77 65 76 65 72 2c 20 77 68 65 6e 20 61 70 70 6c 79 69 6e se\ngraph..However,.when.applyin
2f440 67 20 61 6c 67 6f 72 69 74 68 6d 73 20 74 6f 20 74 68 69 73 20 63 6f 6d 70 6c 65 6d 65 6e 74 20 g.algorithms.to.this.complement.
2f460 67 72 61 70 68 20 64 61 74 61 5c 6e 73 74 72 75 63 74 75 72 65 2c 20 69 74 20 62 65 68 61 76 65 graph.data\nstructure,.it.behave
2f480 73 20 61 73 20 69 66 20 69 74 20 77 65 72 65 20 74 68 65 20 64 65 6e 73 65 20 76 65 72 73 69 6f s.as.if.it.were.the.dense.versio
2f4a0 6e 2e 20 53 6f 20 69 74 20 63 61 6e 20 62 65 20 75 73 65 64 5c 6e 64 69 72 65 63 74 6c 79 20 69 n..So.it.can.be.used\ndirectly.i
2f4c0 6e 20 73 65 76 65 72 61 6c 20 4e 65 74 77 6f 72 6b 58 20 61 6c 67 6f 72 69 74 68 6d 73 2e 5c 6e n.several.NetworkX.algorithms.\n
2f4e0 5c 6e 54 68 69 73 20 73 75 62 63 6c 61 73 73 20 68 61 73 20 6f 6e 6c 79 20 62 65 65 6e 20 74 65 \nThis.subclass.has.only.been.te
2f500 73 74 65 64 20 66 6f 72 20 6b 2d 63 6f 72 65 2c 20 63 6f 6e 6e 65 63 74 65 64 5f 63 6f 6d 70 6f sted.for.k-core,.connected_compo
2f520 6e 65 6e 74 73 2c 5c 6e 61 6e 64 20 62 69 63 6f 6e 6e 65 63 74 65 64 5f 63 6f 6d 70 6f 6e 65 6e nents,\nand.biconnected_componen
2f540 74 73 20 61 6c 67 6f 72 69 74 68 6d 73 20 62 75 74 20 6d 69 67 68 74 20 61 6c 73 6f 20 77 6f 72 ts.algorithms.but.might.also.wor
2f560 6b 20 66 6f 72 20 6f 74 68 65 72 5c 6e 61 6c 67 6f 72 69 74 68 6d 73 2e 5c 6e 22 0a 20 20 20 20 k.for.other\nalgorithms.\n".....
2f580 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
2f5a0 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
2f5c0 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":.{..
2f5e0 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.......
2f600 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
2f620 6f 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f ource":.[........."import.matplo
2f640 74 6c 69 62 2e 70 79 70 6c 6f 74 20 61 73 20 70 6c 74 5c 6e 69 6d 70 6f 72 74 20 6e 65 74 77 6f tlib.pyplot.as.plt\nimport.netwo
2f660 72 6b 78 20 61 73 20 6e 78 5c 6e 66 72 6f 6d 20 6e 65 74 77 6f 72 6b 78 20 69 6d 70 6f 72 74 20 rkx.as.nx\nfrom.networkx.import.
2f680 47 72 61 70 68 5c 6e 5c 6e 5c 6e 63 6c 61 73 73 20 41 6e 74 69 47 72 61 70 68 28 47 72 61 70 68 Graph\n\n\nclass.AntiGraph(Graph
2f6a0 29 3a 5c 6e 20 20 20 20 5c 22 5c 22 5c 22 5c 6e 20 20 20 20 43 6c 61 73 73 20 66 6f 72 20 63 6f ):\n....\"\"\"\n....Class.for.co
2f6c0 6d 70 6c 65 6d 65 6e 74 20 67 72 61 70 68 73 2e 5c 6e 5c 6e 20 20 20 20 54 68 65 20 6d 61 69 6e mplement.graphs.\n\n....The.main
2f6e0 20 67 6f 61 6c 20 69 73 20 74 6f 20 62 65 20 61 62 6c 65 20 74 6f 20 77 6f 72 6b 20 77 69 74 68 .goal.is.to.be.able.to.work.with
2f700 20 62 69 67 20 61 6e 64 20 64 65 6e 73 65 20 67 72 61 70 68 73 20 77 69 74 68 5c 6e 20 20 20 20 .big.and.dense.graphs.with\n....
2f720 61 20 6c 6f 77 20 6d 65 6d 6f 72 79 20 66 6f 6f 74 70 72 69 6e 74 2e 5c 6e 5c 6e 20 20 20 20 49 a.low.memory.footprint.\n\n....I
2f740 6e 20 74 68 69 73 20 63 6c 61 73 73 20 79 6f 75 20 61 64 64 20 74 68 65 20 65 64 67 65 73 20 74 n.this.class.you.add.the.edges.t
2f760 68 61 74 20 2a 64 6f 20 6e 6f 74 20 65 78 69 73 74 2a 20 69 6e 20 74 68 65 20 64 65 6e 73 65 20 hat.*do.not.exist*.in.the.dense.
2f780 67 72 61 70 68 2c 5c 6e 20 20 20 20 74 68 65 20 72 65 70 6f 72 74 20 6d 65 74 68 6f 64 73 20 6f graph,\n....the.report.methods.o
2f7a0 66 20 74 68 65 20 63 6c 61 73 73 20 72 65 74 75 72 6e 20 74 68 65 20 6e 65 69 67 68 62 6f 72 73 f.the.class.return.the.neighbors
2f7c0 2c 20 74 68 65 20 65 64 67 65 73 20 61 6e 64 5c 6e 20 20 20 20 74 68 65 20 64 65 67 72 65 65 20 ,.the.edges.and\n....the.degree.
2f7e0 61 73 20 69 66 20 69 74 20 77 61 73 20 74 68 65 20 64 65 6e 73 65 20 67 72 61 70 68 2e 20 54 68 as.if.it.was.the.dense.graph..Th
2f800 75 73 20 69 74 27 73 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 75 73 65 5c 6e 20 20 20 20 61 6e 20 us.it's.possible.to.use\n....an.
2f820 69 6e 73 74 61 6e 63 65 20 6f 66 20 74 68 69 73 20 63 6c 61 73 73 20 77 69 74 68 20 73 6f 6d 65 instance.of.this.class.with.some
2f840 20 6f 66 20 4e 65 74 77 6f 72 6b 58 20 66 75 6e 63 74 69 6f 6e 73 2e 5c 6e 20 20 20 20 5c 22 5c .of.NetworkX.functions.\n....\"\
2f860 22 5c 22 5c 6e 5c 6e 20 20 20 20 61 6c 6c 5f 65 64 67 65 5f 64 69 63 74 20 3d 20 7b 5c 22 77 65 "\"\n\n....all_edge_dict.=.{\"we
2f880 69 67 68 74 5c 22 3a 20 31 7d 5c 6e 5c 6e 20 20 20 20 64 65 66 20 73 69 6e 67 6c 65 5f 65 64 67 ight\":.1}\n\n....def.single_edg
2f8a0 65 5f 64 69 63 74 28 73 65 6c 66 29 3a 5c 6e 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 73 65 e_dict(self):\n........return.se
2f8c0 6c 66 2e 61 6c 6c 5f 65 64 67 65 5f 64 69 63 74 5c 6e 5c 6e 20 20 20 20 65 64 67 65 5f 61 74 74 lf.all_edge_dict\n\n....edge_att
2f8e0 72 5f 64 69 63 74 5f 66 61 63 74 6f 72 79 20 3d 20 73 69 6e 67 6c 65 5f 65 64 67 65 5f 64 69 63 r_dict_factory.=.single_edge_dic
2f900 74 5c 6e 5c 6e 20 20 20 20 64 65 66 20 5f 5f 67 65 74 69 74 65 6d 5f 5f 28 73 65 6c 66 2c 20 6e t\n\n....def.__getitem__(self,.n
2f920 29 3a 5c 6e 20 20 20 20 20 20 20 20 5c 22 5c 22 5c 22 52 65 74 75 72 6e 20 61 20 64 69 63 74 20 ):\n........\"\"\"Return.a.dict.
2f940 6f 66 20 6e 65 69 67 68 62 6f 72 73 20 6f 66 20 6e 6f 64 65 20 6e 20 69 6e 20 74 68 65 20 64 65 of.neighbors.of.node.n.in.the.de
2f960 6e 73 65 20 67 72 61 70 68 2e 5c 6e 5c 6e 20 20 20 20 20 20 20 20 50 61 72 61 6d 65 74 65 72 73 nse.graph.\n\n........Parameters
2f980 5c 6e 20 20 20 20 20 20 20 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 20 20 20 20 20 20 20 20 6e 20 \n........----------\n........n.
2f9a0 3a 20 6e 6f 64 65 5c 6e 20 20 20 20 20 20 20 20 20 20 20 41 20 6e 6f 64 65 20 69 6e 20 74 68 65 :.node\n...........A.node.in.the
2f9c0 20 67 72 61 70 68 2e 5c 6e 5c 6e 20 20 20 20 20 20 20 20 52 65 74 75 72 6e 73 5c 6e 20 20 20 20 .graph.\n\n........Returns\n....
2f9e0 20 20 20 20 2d 2d 2d 2d 2d 2d 2d 5c 6e 20 20 20 20 20 20 20 20 61 64 6a 5f 64 69 63 74 20 3a 20 ....-------\n........adj_dict.:.
2fa00 64 69 63 74 69 6f 6e 61 72 79 5c 6e 20 20 20 20 20 20 20 20 20 20 20 54 68 65 20 61 64 6a 61 63 dictionary\n...........The.adjac
2fa20 65 6e 63 79 20 64 69 63 74 69 6f 6e 61 72 79 20 66 6f 72 20 6e 6f 64 65 73 20 63 6f 6e 6e 65 63 ency.dictionary.for.nodes.connec
2fa40 74 65 64 20 74 6f 20 6e 2e 5c 6e 5c 6e 20 20 20 20 20 20 20 20 5c 22 5c 22 5c 22 5c 6e 20 20 20 ted.to.n.\n\n........\"\"\"\n...
2fa60 20 20 20 20 20 72 65 74 75 72 6e 20 7b 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 6e 6f 64 65 3a .....return.{\n............node:
2fa80 20 73 65 6c 66 2e 61 6c 6c 5f 65 64 67 65 5f 64 69 63 74 20 66 6f 72 20 6e 6f 64 65 20 69 6e 20 .self.all_edge_dict.for.node.in.
2faa0 73 65 74 28 73 65 6c 66 2e 61 64 6a 29 20 2d 20 73 65 74 28 73 65 6c 66 2e 61 64 6a 5b 6e 5d 29 set(self.adj).-.set(self.adj[n])
2fac0 20 2d 20 7b 6e 7d 5c 6e 20 20 20 20 20 20 20 20 7d 5c 6e 5c 6e 20 20 20 20 64 65 66 20 6e 65 69 .-.{n}\n........}\n\n....def.nei
2fae0 67 68 62 6f 72 73 28 73 65 6c 66 2c 20 6e 29 3a 5c 6e 20 20 20 20 20 20 20 20 5c 22 5c 22 5c 22 ghbors(self,.n):\n........\"\"\"
2fb00 52 65 74 75 72 6e 20 61 6e 20 69 74 65 72 61 74 6f 72 20 6f 76 65 72 20 61 6c 6c 20 6e 65 69 67 Return.an.iterator.over.all.neig
2fb20 68 62 6f 72 73 20 6f 66 20 6e 6f 64 65 20 6e 20 69 6e 20 74 68 65 5c 6e 20 20 20 20 20 20 20 20 hbors.of.node.n.in.the\n........
2fb40 64 65 6e 73 65 20 67 72 61 70 68 2e 5c 6e 5c 6e 20 20 20 20 20 20 20 20 5c 22 5c 22 5c 22 5c 6e dense.graph.\n\n........\"\"\"\n
2fb60 20 20 20 20 20 20 20 20 74 72 79 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e ........try:\n............return
2fb80 20 69 74 65 72 28 73 65 74 28 73 65 6c 66 2e 61 64 6a 29 20 2d 20 73 65 74 28 73 65 6c 66 2e 61 .iter(set(self.adj).-.set(self.a
2fba0 64 6a 5b 6e 5d 29 20 2d 20 7b 6e 7d 29 5c 6e 20 20 20 20 20 20 20 20 65 78 63 65 70 74 20 4b 65 dj[n]).-.{n})\n........except.Ke
2fbc0 79 45 72 72 6f 72 20 61 73 20 65 72 72 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 72 61 69 73 yError.as.err:\n............rais
2fbe0 65 20 6e 78 2e 4e 65 74 77 6f 72 6b 58 45 72 72 6f 72 28 66 5c 22 54 68 65 20 6e 6f 64 65 20 7b e.nx.NetworkXError(f\"The.node.{
2fc00 6e 7d 20 69 73 20 6e 6f 74 20 69 6e 20 74 68 65 20 67 72 61 70 68 2e 5c 22 29 20 66 72 6f 6d 20 n}.is.not.in.the.graph.\").from.
2fc20 65 72 72 5c 6e 5c 6e 20 20 20 20 64 65 66 20 64 65 67 72 65 65 28 73 65 6c 66 2c 20 6e 62 75 6e err\n\n....def.degree(self,.nbun
2fc40 63 68 3d 4e 6f 6e 65 2c 20 77 65 69 67 68 74 3d 4e 6f 6e 65 29 3a 5c 6e 20 20 20 20 20 20 20 20 ch=None,.weight=None):\n........
2fc60 5c 22 5c 22 5c 22 52 65 74 75 72 6e 20 61 6e 20 69 74 65 72 61 74 6f 72 20 66 6f 72 20 28 6e 6f \"\"\"Return.an.iterator.for.(no
2fc80 64 65 2c 20 64 65 67 72 65 65 29 20 69 6e 20 74 68 65 20 64 65 6e 73 65 20 67 72 61 70 68 2e 5c de,.degree).in.the.dense.graph.\
2fca0 6e 5c 6e 20 20 20 20 20 20 20 20 54 68 65 20 6e 6f 64 65 20 64 65 67 72 65 65 20 69 73 20 74 68 n\n........The.node.degree.is.th
2fcc0 65 20 6e 75 6d 62 65 72 20 6f 66 20 65 64 67 65 73 20 61 64 6a 61 63 65 6e 74 20 74 6f 20 74 68 e.number.of.edges.adjacent.to.th
2fce0 65 20 6e 6f 64 65 2e 5c 6e 5c 6e 20 20 20 20 20 20 20 20 50 61 72 61 6d 65 74 65 72 73 5c 6e 20 e.node.\n\n........Parameters\n.
2fd00 20 20 20 20 20 20 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 20 20 20 20 20 20 20 20 6e 62 75 6e 63 .......----------\n........nbunc
2fd20 68 20 3a 20 69 74 65 72 61 62 6c 65 20 63 6f 6e 74 61 69 6e 65 72 2c 20 6f 70 74 69 6f 6e 61 6c h.:.iterable.container,.optional
2fd40 20 28 64 65 66 61 75 6c 74 3d 61 6c 6c 20 6e 6f 64 65 73 29 5c 6e 20 20 20 20 20 20 20 20 20 20 .(default=all.nodes)\n..........
2fd60 20 20 41 20 63 6f 6e 74 61 69 6e 65 72 20 6f 66 20 6e 6f 64 65 73 2e 20 20 54 68 65 20 63 6f 6e ..A.container.of.nodes...The.con
2fd80 74 61 69 6e 65 72 20 77 69 6c 6c 20 62 65 20 69 74 65 72 61 74 65 64 5c 6e 20 20 20 20 20 20 20 tainer.will.be.iterated\n.......
2fda0 20 20 20 20 20 74 68 72 6f 75 67 68 20 6f 6e 63 65 2e 5c 6e 5c 6e 20 20 20 20 20 20 20 20 77 65 .....through.once.\n\n........we
2fdc0 69 67 68 74 20 3a 20 73 74 72 69 6e 67 20 6f 72 20 4e 6f 6e 65 2c 20 6f 70 74 69 6f 6e 61 6c 20 ight.:.string.or.None,.optional.
2fde0 28 64 65 66 61 75 6c 74 3d 4e 6f 6e 65 29 5c 6e 20 20 20 20 20 20 20 20 20 20 20 54 68 65 20 65 (default=None)\n...........The.e
2fe00 64 67 65 20 61 74 74 72 69 62 75 74 65 20 74 68 61 74 20 68 6f 6c 64 73 20 74 68 65 20 6e 75 6d dge.attribute.that.holds.the.num
2fe20 65 72 69 63 61 6c 20 76 61 6c 75 65 20 75 73 65 64 5c 6e 20 20 20 20 20 20 20 20 20 20 20 61 73 erical.value.used\n...........as
2fe40 20 61 20 77 65 69 67 68 74 2e 20 20 49 66 20 4e 6f 6e 65 2c 20 74 68 65 6e 20 65 61 63 68 20 65 .a.weight...If.None,.then.each.e
2fe60 64 67 65 20 68 61 73 20 77 65 69 67 68 74 20 31 2e 5c 6e 20 20 20 20 20 20 20 20 20 20 20 54 68 dge.has.weight.1.\n...........Th
2fe80 65 20 64 65 67 72 65 65 20 69 73 20 74 68 65 20 73 75 6d 20 6f 66 20 74 68 65 20 65 64 67 65 20 e.degree.is.the.sum.of.the.edge.
2fea0 77 65 69 67 68 74 73 20 61 64 6a 61 63 65 6e 74 20 74 6f 20 74 68 65 20 6e 6f 64 65 2e 5c 6e 5c weights.adjacent.to.the.node.\n\
2fec0 6e 20 20 20 20 20 20 20 20 52 65 74 75 72 6e 73 5c 6e 20 20 20 20 20 20 20 20 2d 2d 2d 2d 2d 2d n........Returns\n........------
2fee0 2d 5c 6e 20 20 20 20 20 20 20 20 6e 64 5f 69 74 65 72 20 3a 20 69 74 65 72 61 74 6f 72 5c 6e 20 -\n........nd_iter.:.iterator\n.
2ff00 20 20 20 20 20 20 20 20 20 20 20 54 68 65 20 69 74 65 72 61 74 6f 72 20 72 65 74 75 72 6e 73 20 ...........The.iterator.returns.
2ff20 74 77 6f 2d 74 75 70 6c 65 73 20 6f 66 20 28 6e 6f 64 65 2c 20 64 65 67 72 65 65 29 2e 5c 6e 5c two-tuples.of.(node,.degree).\n\
2ff40 6e 20 20 20 20 20 20 20 20 53 65 65 20 41 6c 73 6f 5c 6e 20 20 20 20 20 20 20 20 2d 2d 2d 2d 2d n........See.Also\n........-----
2ff60 2d 2d 2d 5c 6e 20 20 20 20 20 20 20 20 64 65 67 72 65 65 5c 6e 5c 6e 20 20 20 20 20 20 20 20 45 ---\n........degree\n\n........E
2ff80 78 61 6d 70 6c 65 73 5c 6e 20 20 20 20 20 20 20 20 2d 2d 2d 2d 2d 2d 2d 2d 5c 6e 20 20 20 20 20 xamples\n........--------\n.....
2ffa0 20 20 20 3e 3e 3e 20 47 20 3d 20 6e 78 2e 70 61 74 68 5f 67 72 61 70 68 28 34 29 20 20 23 20 6f ...>>>.G.=.nx.path_graph(4)..#.o
2ffc0 72 20 44 69 47 72 61 70 68 2c 20 4d 75 6c 74 69 47 72 61 70 68 2c 20 4d 75 6c 74 69 44 69 47 72 r.DiGraph,.MultiGraph,.MultiDiGr
2ffe0 61 70 68 2c 20 65 74 63 5c 6e 20 20 20 20 20 20 20 20 3e 3e 3e 20 47 2e 64 65 67 72 65 65 28 30 aph,.etc\n........>>>.G.degree(0
30000 29 20 20 23 20 6e 6f 64 65 20 30 20 77 69 74 68 20 64 65 67 72 65 65 20 31 5c 6e 20 20 20 20 20 )..#.node.0.with.degree.1\n.....
30020 20 20 20 31 5c 6e 20 20 20 20 20 20 20 20 3e 3e 3e 20 6c 69 73 74 28 47 2e 64 65 67 72 65 65 28 ...1\n........>>>.list(G.degree(
30040 5b 30 2c 20 31 5d 29 29 5c 6e 20 20 20 20 20 20 20 20 5b 28 30 2c 20 31 29 2c 20 28 31 2c 20 32 [0,.1]))\n........[(0,.1),.(1,.2
30060 29 5d 5c 6e 5c 6e 20 20 20 20 20 20 20 20 5c 22 5c 22 5c 22 5c 6e 20 20 20 20 20 20 20 20 69 66 )]\n\n........\"\"\"\n........if
30080 20 6e 62 75 6e 63 68 20 69 73 20 4e 6f 6e 65 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 6e 6f .nbunch.is.None:\n............no
300a0 64 65 73 5f 6e 62 72 73 20 3d 20 28 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 5c des_nbrs.=.(\n................(\
300c0 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 2c 5c 6e 20 20 20 20 20 20 20 n....................n,\n.......
300e0 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .............{\n................
30100 20 20 20 20 20 20 20 20 76 3a 20 73 65 6c 66 2e 61 6c 6c 5f 65 64 67 65 5f 64 69 63 74 5c 6e 20 ........v:.self.all_edge_dict\n.
30120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 76 20 69 6e 20 .......................for.v.in.
30140 73 65 74 28 73 65 6c 66 2e 61 64 6a 29 20 2d 20 73 65 74 28 73 65 6c 66 2e 61 64 6a 5b 6e 5d 29 set(self.adj).-.set(self.adj[n])
30160 20 2d 20 7b 6e 7d 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 5c 6e .-.{n}\n....................},\n
30180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 29 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 ................)\n.............
301a0 20 20 20 66 6f 72 20 6e 20 69 6e 20 73 65 6c 66 2e 6e 6f 64 65 73 28 29 5c 6e 20 20 20 20 20 20 ...for.n.in.self.nodes()\n......
301c0 20 20 20 20 20 20 29 5c 6e 20 20 20 20 20 20 20 20 65 6c 69 66 20 6e 62 75 6e 63 68 20 69 6e 20 ......)\n........elif.nbunch.in.
301e0 73 65 6c 66 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 6e 62 72 73 20 3d 20 73 65 74 28 73 65 self:\n............nbrs.=.set(se
30200 6c 66 2e 6e 6f 64 65 73 28 29 29 20 2d 20 73 65 74 28 73 65 6c 66 2e 61 64 6a 5b 6e 62 75 6e 63 lf.nodes()).-.set(self.adj[nbunc
30220 68 5d 29 20 2d 20 7b 6e 62 75 6e 63 68 7d 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 h]).-.{nbunch}\n............retu
30240 72 6e 20 6c 65 6e 28 6e 62 72 73 29 5c 6e 20 20 20 20 20 20 20 20 65 6c 73 65 3a 5c 6e 20 20 20 rn.len(nbrs)\n........else:\n...
30260 20 20 20 20 20 20 20 20 20 6e 6f 64 65 73 5f 6e 62 72 73 20 3d 20 28 5c 6e 20 20 20 20 20 20 20 .........nodes_nbrs.=.(\n.......
30280 20 20 20 20 20 20 20 20 20 28 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .........(\n....................
302a0 6e 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 5c 6e 20 20 20 20 20 n,\n....................{\n.....
302c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 3a 20 73 65 6c 66 2e 61 6c 6c 5f 65 ...................v:.self.all_e
302e0 64 67 65 5f 64 69 63 74 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 dge_dict\n......................
30300 20 20 66 6f 72 20 76 20 69 6e 20 73 65 74 28 73 65 6c 66 2e 6e 6f 64 65 73 28 29 29 20 2d 20 73 ..for.v.in.set(self.nodes()).-.s
30320 65 74 28 73 65 6c 66 2e 61 64 6a 5b 6e 5d 29 20 2d 20 7b 6e 7d 5c 6e 20 20 20 20 20 20 20 20 20 et(self.adj[n]).-.{n}\n.........
30340 20 20 20 20 20 20 20 20 20 20 20 7d 2c 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 29 ...........},\n................)
30360 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 6e 20 69 6e 20 73 65 6c 66 2e \n................for.n.in.self.
30380 6e 62 75 6e 63 68 5f 69 74 65 72 28 6e 62 75 6e 63 68 29 5c 6e 20 20 20 20 20 20 20 20 20 20 20 nbunch_iter(nbunch)\n...........
303a0 20 29 5c 6e 5c 6e 20 20 20 20 20 20 20 20 69 66 20 77 65 69 67 68 74 20 69 73 20 4e 6f 6e 65 3a .)\n\n........if.weight.is.None:
303c0 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 28 6e 2c 20 6c 65 6e 28 6e 62 \n............return.((n,.len(nb
303e0 72 73 29 29 20 66 6f 72 20 6e 2c 20 6e 62 72 73 20 69 6e 20 6e 6f 64 65 73 5f 6e 62 72 73 29 5c rs)).for.n,.nbrs.in.nodes_nbrs)\
30400 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 20 20 23 20 41 6e n........else:\n............#.An
30420 74 69 47 72 61 70 68 20 69 73 20 61 20 54 68 69 6e 47 72 61 70 68 20 73 6f 20 61 6c 6c 20 65 64 tiGraph.is.a.ThinGraph.so.all.ed
30440 67 65 73 20 68 61 76 65 20 77 65 69 67 68 74 20 31 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 72 ges.have.weight.1\n............r
30460 65 74 75 72 6e 20 28 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 2c 20 73 75 6d eturn.(\n................(n,.sum
30480 28 28 6e 62 72 73 5b 6e 62 72 5d 2e 67 65 74 28 77 65 69 67 68 74 2c 20 31 29 29 20 66 6f 72 20 ((nbrs[nbr].get(weight,.1)).for.
304a0 6e 62 72 20 69 6e 20 6e 62 72 73 29 29 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 nbr.in.nbrs))\n................f
304c0 6f 72 20 6e 2c 20 6e 62 72 73 20 69 6e 20 6e 6f 64 65 73 5f 6e 62 72 73 5c 6e 20 20 20 20 20 20 or.n,.nbrs.in.nodes_nbrs\n......
304e0 20 20 20 20 20 20 29 5c 6e 5c 6e 20 20 20 20 64 65 66 20 61 64 6a 61 63 65 6e 63 79 28 73 65 6c ......)\n\n....def.adjacency(sel
30500 66 29 3a 5c 6e 20 20 20 20 20 20 20 20 5c 22 5c 22 5c 22 52 65 74 75 72 6e 20 61 6e 20 69 74 65 f):\n........\"\"\"Return.an.ite
30520 72 61 74 6f 72 20 6f 66 20 28 6e 6f 64 65 2c 20 61 64 6a 61 63 65 6e 63 79 20 73 65 74 29 20 74 rator.of.(node,.adjacency.set).t
30540 75 70 6c 65 73 20 66 6f 72 20 61 6c 6c 20 6e 6f 64 65 73 5c 6e 20 20 20 20 20 20 20 20 20 20 20 uples.for.all.nodes\n...........
30560 69 6e 20 74 68 65 20 64 65 6e 73 65 20 67 72 61 70 68 2e 5c 6e 5c 6e 20 20 20 20 20 20 20 20 54 in.the.dense.graph.\n\n........T
30580 68 69 73 20 69 73 20 74 68 65 20 66 61 73 74 65 73 74 20 77 61 79 20 74 6f 20 6c 6f 6f 6b 20 61 his.is.the.fastest.way.to.look.a
305a0 74 20 65 76 65 72 79 20 65 64 67 65 2e 5c 6e 20 20 20 20 20 20 20 20 46 6f 72 20 64 69 72 65 63 t.every.edge.\n........For.direc
305c0 74 65 64 20 67 72 61 70 68 73 2c 20 6f 6e 6c 79 20 6f 75 74 67 6f 69 6e 67 20 61 64 6a 61 63 65 ted.graphs,.only.outgoing.adjace
305e0 6e 63 69 65 73 20 61 72 65 20 69 6e 63 6c 75 64 65 64 2e 5c 6e 5c 6e 20 20 20 20 20 20 20 20 52 ncies.are.included.\n\n........R
30600 65 74 75 72 6e 73 5c 6e 20 20 20 20 20 20 20 20 2d 2d 2d 2d 2d 2d 2d 5c 6e 20 20 20 20 20 20 20 eturns\n........-------\n.......
30620 20 61 64 6a 5f 69 74 65 72 20 3a 20 69 74 65 72 61 74 6f 72 5c 6e 20 20 20 20 20 20 20 20 20 20 .adj_iter.:.iterator\n..........
30640 20 41 6e 20 69 74 65 72 61 74 6f 72 20 6f 66 20 28 6e 6f 64 65 2c 20 61 64 6a 61 63 65 6e 63 79 .An.iterator.of.(node,.adjacency
30660 20 73 65 74 29 20 66 6f 72 20 61 6c 6c 20 6e 6f 64 65 73 20 69 6e 5c 6e 20 20 20 20 20 20 20 20 .set).for.all.nodes.in\n........
30680 20 20 20 74 68 65 20 67 72 61 70 68 2e 5c 6e 20 20 20 20 20 20 20 20 5c 22 5c 22 5c 22 5c 6e 20 ...the.graph.\n........\"\"\"\n.
306a0 20 20 20 20 20 20 20 6e 6f 64 65 73 20 3d 20 73 65 74 28 73 65 6c 66 2e 61 64 6a 29 5c 6e 20 20 .......nodes.=.set(self.adj)\n..
306c0 20 20 20 20 20 20 66 6f 72 20 6e 2c 20 6e 62 72 73 20 69 6e 20 73 65 6c 66 2e 61 64 6a 2e 69 74 ......for.n,.nbrs.in.self.adj.it
306e0 65 6d 73 28 29 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 28 6e 2c 20 6e 6f ems():\n............yield.(n,.no
30700 64 65 73 20 2d 20 73 65 74 28 6e 62 72 73 29 20 2d 20 7b 6e 7d 29 5c 6e 5c 6e 5c 6e 23 20 42 75 des.-.set(nbrs).-.{n})\n\n\n#.Bu
30720 69 6c 64 20 73 65 76 65 72 61 6c 20 70 61 69 72 73 20 6f 66 20 67 72 61 70 68 73 2c 20 61 20 72 ild.several.pairs.of.graphs,.a.r
30740 65 67 75 6c 61 72 20 67 72 61 70 68 5c 6e 23 20 61 6e 64 20 74 68 65 20 41 6e 74 69 47 72 61 70 egular.graph\n#.and.the.AntiGrap
30760 68 20 6f 66 20 69 74 27 73 20 63 6f 6d 70 6c 65 6d 65 6e 74 2c 20 77 68 69 63 68 20 62 65 68 61 h.of.it's.complement,.which.beha
30780 76 65 73 5c 6e 23 20 61 73 20 69 66 20 69 74 20 77 65 72 65 20 74 68 65 20 6f 72 69 67 69 6e 61 ves\n#.as.if.it.were.the.origina
307a0 6c 20 67 72 61 70 68 2e 5c 6e 47 6e 70 20 3d 20 6e 78 2e 67 6e 70 5f 72 61 6e 64 6f 6d 5f 67 72 l.graph.\nGnp.=.nx.gnp_random_gr
307c0 61 70 68 28 32 30 2c 20 30 2e 38 2c 20 73 65 65 64 3d 34 32 29 5c 6e 41 6e 70 20 3d 20 41 6e 74 aph(20,.0.8,.seed=42)\nAnp.=.Ant
307e0 69 47 72 61 70 68 28 6e 78 2e 63 6f 6d 70 6c 65 6d 65 6e 74 28 47 6e 70 29 29 5c 6e 47 64 20 3d iGraph(nx.complement(Gnp))\nGd.=
30800 20 6e 78 2e 64 61 76 69 73 5f 73 6f 75 74 68 65 72 6e 5f 77 6f 6d 65 6e 5f 67 72 61 70 68 28 29 .nx.davis_southern_women_graph()
30820 5c 6e 41 64 20 3d 20 41 6e 74 69 47 72 61 70 68 28 6e 78 2e 63 6f 6d 70 6c 65 6d 65 6e 74 28 47 \nAd.=.AntiGraph(nx.complement(G
30840 64 29 29 5c 6e 47 6b 20 3d 20 6e 78 2e 6b 61 72 61 74 65 5f 63 6c 75 62 5f 67 72 61 70 68 28 29 d))\nGk.=.nx.karate_club_graph()
30860 5c 6e 41 6b 20 3d 20 41 6e 74 69 47 72 61 70 68 28 6e 78 2e 63 6f 6d 70 6c 65 6d 65 6e 74 28 47 \nAk.=.AntiGraph(nx.complement(G
30880 6b 29 29 5c 6e 70 61 69 72 73 20 3d 20 5b 28 47 6e 70 2c 20 41 6e 70 29 2c 20 28 47 64 2c 20 41 k))\npairs.=.[(Gnp,.Anp),.(Gd,.A
308a0 64 29 2c 20 28 47 6b 2c 20 41 6b 29 5d 5c 6e 23 20 74 65 73 74 20 63 6f 6e 6e 65 63 74 65 64 20 d),.(Gk,.Ak)]\n#.test.connected.
308c0 63 6f 6d 70 6f 6e 65 6e 74 73 5c 6e 66 6f 72 20 47 2c 20 41 20 69 6e 20 70 61 69 72 73 3a 5c 6e components\nfor.G,.A.in.pairs:\n
308e0 20 20 20 20 67 63 20 3d 20 5b 73 65 74 28 63 29 20 66 6f 72 20 63 20 69 6e 20 6e 78 2e 63 6f 6e ....gc.=.[set(c).for.c.in.nx.con
30900 6e 65 63 74 65 64 5f 63 6f 6d 70 6f 6e 65 6e 74 73 28 47 29 5d 5c 6e 20 20 20 20 61 63 20 3d 20 nected_components(G)]\n....ac.=.
30920 5b 73 65 74 28 63 29 20 66 6f 72 20 63 20 69 6e 20 6e 78 2e 63 6f 6e 6e 65 63 74 65 64 5f 63 6f [set(c).for.c.in.nx.connected_co
30940 6d 70 6f 6e 65 6e 74 73 28 41 29 5d 5c 6e 20 20 20 20 66 6f 72 20 63 6f 6d 70 20 69 6e 20 61 63 mponents(A)]\n....for.comp.in.ac
30960 3a 5c 6e 20 20 20 20 20 20 20 20 61 73 73 65 72 74 20 63 6f 6d 70 20 69 6e 20 67 63 5c 6e 23 20 :\n........assert.comp.in.gc\n#.
30980 74 65 73 74 20 62 69 63 6f 6e 6e 65 63 74 65 64 20 63 6f 6d 70 6f 6e 65 6e 74 73 5c 6e 66 6f 72 test.biconnected.components\nfor
309a0 20 47 2c 20 41 20 69 6e 20 70 61 69 72 73 3a 5c 6e 20 20 20 20 67 63 20 3d 20 5b 73 65 74 28 63 .G,.A.in.pairs:\n....gc.=.[set(c
309c0 29 20 66 6f 72 20 63 20 69 6e 20 6e 78 2e 62 69 63 6f 6e 6e 65 63 74 65 64 5f 63 6f 6d 70 6f 6e ).for.c.in.nx.biconnected_compon
309e0 65 6e 74 73 28 47 29 5d 5c 6e 20 20 20 20 61 63 20 3d 20 5b 73 65 74 28 63 29 20 66 6f 72 20 63 ents(G)]\n....ac.=.[set(c).for.c
30a00 20 69 6e 20 6e 78 2e 62 69 63 6f 6e 6e 65 63 74 65 64 5f 63 6f 6d 70 6f 6e 65 6e 74 73 28 41 29 .in.nx.biconnected_components(A)
30a20 5d 5c 6e 20 20 20 20 66 6f 72 20 63 6f 6d 70 20 69 6e 20 61 63 3a 5c 6e 20 20 20 20 20 20 20 20 ]\n....for.comp.in.ac:\n........
30a40 61 73 73 65 72 74 20 63 6f 6d 70 20 69 6e 20 67 63 5c 6e 23 20 74 65 73 74 20 64 65 67 72 65 65 assert.comp.in.gc\n#.test.degree
30a60 5c 6e 66 6f 72 20 47 2c 20 41 20 69 6e 20 70 61 69 72 73 3a 5c 6e 20 20 20 20 6e 6f 64 65 20 3d \nfor.G,.A.in.pairs:\n....node.=
30a80 20 6c 69 73 74 28 47 2e 6e 6f 64 65 73 28 29 29 5b 30 5d 5c 6e 20 20 20 20 6e 6f 64 65 73 20 3d .list(G.nodes())[0]\n....nodes.=
30aa0 20 6c 69 73 74 28 47 2e 6e 6f 64 65 73 28 29 29 5b 31 3a 34 5d 5c 6e 20 20 20 20 61 73 73 65 72 .list(G.nodes())[1:4]\n....asser
30ac0 74 20 47 2e 64 65 67 72 65 65 28 6e 6f 64 65 29 20 3d 3d 20 41 2e 64 65 67 72 65 65 28 6e 6f 64 t.G.degree(node).==.A.degree(nod
30ae0 65 29 5c 6e 20 20 20 20 61 73 73 65 72 74 20 73 75 6d 28 64 20 66 6f 72 20 6e 2c 20 64 20 69 6e e)\n....assert.sum(d.for.n,.d.in
30b00 20 47 2e 64 65 67 72 65 65 28 29 29 20 3d 3d 20 73 75 6d 28 64 20 66 6f 72 20 6e 2c 20 64 20 69 .G.degree()).==.sum(d.for.n,.d.i
30b20 6e 20 41 2e 64 65 67 72 65 65 28 29 29 5c 6e 20 20 20 20 23 20 41 6e 74 69 47 72 61 70 68 20 69 n.A.degree())\n....#.AntiGraph.i
30b40 73 20 61 20 54 68 69 6e 47 72 61 70 68 2c 20 73 6f 20 61 6c 6c 20 74 68 65 20 77 65 69 67 68 74 s.a.ThinGraph,.so.all.the.weight
30b60 73 20 61 72 65 20 31 5c 6e 20 20 20 20 61 73 73 65 72 74 20 73 75 6d 28 64 20 66 6f 72 20 6e 2c s.are.1\n....assert.sum(d.for.n,
30b80 20 64 20 69 6e 20 41 2e 64 65 67 72 65 65 28 29 29 20 3d 3d 20 73 75 6d 28 64 20 66 6f 72 20 6e .d.in.A.degree()).==.sum(d.for.n
30ba0 2c 20 64 20 69 6e 20 41 2e 64 65 67 72 65 65 28 77 65 69 67 68 74 3d 5c 22 77 65 69 67 68 74 5c ,.d.in.A.degree(weight=\"weight\
30bc0 22 29 29 5c 6e 20 20 20 20 61 73 73 65 72 74 20 73 75 6d 28 64 20 66 6f 72 20 6e 2c 20 64 20 69 "))\n....assert.sum(d.for.n,.d.i
30be0 6e 20 47 2e 64 65 67 72 65 65 28 6e 6f 64 65 73 29 29 20 3d 3d 20 73 75 6d 28 64 20 66 6f 72 20 n.G.degree(nodes)).==.sum(d.for.
30c00 6e 2c 20 64 20 69 6e 20 41 2e 64 65 67 72 65 65 28 6e 6f 64 65 73 29 29 5c 6e 5c 6e 70 6f 73 20 n,.d.in.A.degree(nodes))\n\npos.
30c20 3d 20 6e 78 2e 73 70 72 69 6e 67 5f 6c 61 79 6f 75 74 28 47 2c 20 73 65 65 64 3d 32 36 38 29 20 =.nx.spring_layout(G,.seed=268).
30c40 20 23 20 53 65 65 64 20 66 6f 72 20 72 65 70 72 6f 64 75 63 69 62 6c 65 20 6c 61 79 6f 75 74 5c .#.Seed.for.reproducible.layout\
30c60 6e 6e 78 2e 64 72 61 77 28 47 6e 70 2c 20 70 6f 73 3d 70 6f 73 29 5c 6e 70 6c 74 2e 73 68 6f 77 nnx.draw(Gnp,.pos=pos)\nplt.show
30c80 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
30ca0 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":.{......
30cc0 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",....
30ce0 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",......."
30d00 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
30d20 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
30d40 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
30d60 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.......
30d80 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"
30da0 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
30dc0 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",....
30de0 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
30e00 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
30e20 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 39 2e 31 36 22 hon3",......."version":."3.9.16"
30e40 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,..."
30e60 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 25 0f nbformat_minor":.0.}PK........%.
30e80 5a 56 e9 ff 03 b9 2c 0d 00 00 2c 0d 00 00 1e 00 00 00 73 75 62 63 6c 61 73 73 2f 70 6c 6f 74 5f ZV....,...,.......subclass/plot_
30ea0 70 72 69 6e 74 67 72 61 70 68 2e 69 70 79 6e 62 7b 0a 20 20 22 63 65 6c 6c 73 22 3a 20 5b 0a 20 printgraph.ipynb{..."cells":.[..
30ec0 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",.
30ee0 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,..
30f00 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
30f20 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
30f40 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":.[...
30f60 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"......
30f80 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
30fa0 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":
30fc0 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":.[........."
30fe0 5c 6e 23 20 50 72 69 6e 74 20 47 72 61 70 68 5c 6e 5c 6e 45 78 61 6d 70 6c 65 20 73 75 62 63 6c \n#.Print.Graph\n\nExample.subcl
31000 61 73 73 20 6f 66 20 74 68 65 20 47 72 61 70 68 20 63 6c 61 73 73 2e 5c 6e 22 0a 20 20 20 20 20 ass.of.the.Graph.class.\n"......
31020 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
31040 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
31060 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":.{...
31080 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.......}
310a0 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
310c0 75 72 63 65 22 3a 20 5b 0a 20 20 20 20 20 20 20 20 22 69 6d 70 6f 72 74 20 6d 61 74 70 6c 6f 74 urce":.[........."import.matplot
310e0 6c 69 62 2e 70 79 70 6c 6f 74 20 61 73 20 70 6c 74 5c 6e 69 6d 70 6f 72 74 20 6e 65 74 77 6f 72 lib.pyplot.as.plt\nimport.networ
31100 6b 78 20 61 73 20 6e 78 5c 6e 66 72 6f 6d 20 6e 65 74 77 6f 72 6b 78 20 69 6d 70 6f 72 74 20 47 kx.as.nx\nfrom.networkx.import.G
31120 72 61 70 68 5c 6e 5c 6e 5c 6e 63 6c 61 73 73 20 50 72 69 6e 74 47 72 61 70 68 28 47 72 61 70 68 raph\n\n\nclass.PrintGraph(Graph
31140 29 3a 5c 6e 20 20 20 20 5c 22 5c 22 5c 22 5c 6e 20 20 20 20 45 78 61 6d 70 6c 65 20 73 75 62 63 ):\n....\"\"\"\n....Example.subc
31160 6c 61 73 73 20 6f 66 20 74 68 65 20 47 72 61 70 68 20 63 6c 61 73 73 2e 5c 6e 5c 6e 20 20 20 20 lass.of.the.Graph.class.\n\n....
31180 50 72 69 6e 74 73 20 61 63 74 69 76 69 74 79 20 6c 6f 67 20 74 6f 20 66 69 6c 65 20 6f 72 20 73 Prints.activity.log.to.file.or.s
311a0 74 61 6e 64 61 72 64 20 6f 75 74 70 75 74 2e 5c 6e 20 20 20 20 5c 22 5c 22 5c 22 5c 6e 5c 6e 20 tandard.output.\n....\"\"\"\n\n.
311c0 20 20 20 64 65 66 20 5f 5f 69 6e 69 74 5f 5f 28 73 65 6c 66 2c 20 64 61 74 61 3d 4e 6f 6e 65 2c ...def.__init__(self,.data=None,
311e0 20 6e 61 6d 65 3d 5c 22 5c 22 2c 20 66 69 6c 65 3d 4e 6f 6e 65 2c 20 2a 2a 61 74 74 72 29 3a 5c .name=\"\",.file=None,.**attr):\
31200 6e 20 20 20 20 20 20 20 20 73 75 70 65 72 28 29 2e 5f 5f 69 6e 69 74 5f 5f 28 64 61 74 61 3d 64 n........super().__init__(data=d
31220 61 74 61 2c 20 6e 61 6d 65 3d 6e 61 6d 65 2c 20 2a 2a 61 74 74 72 29 5c 6e 20 20 20 20 20 20 20 ata,.name=name,.**attr)\n.......
31240 20 69 66 20 66 69 6c 65 20 69 73 20 4e 6f 6e 65 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 69 .if.file.is.None:\n............i
31260 6d 70 6f 72 74 20 73 79 73 5c 6e 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 66 68 mport.sys\n\n............self.fh
31280 20 3d 20 73 79 73 2e 73 74 64 6f 75 74 5c 6e 20 20 20 20 20 20 20 20 65 6c 73 65 3a 5c 6e 20 20 .=.sys.stdout\n........else:\n..
312a0 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 66 68 20 3d 20 6f 70 65 6e 28 66 69 6c 65 2c 20 5c ..........self.fh.=.open(file,.\
312c0 22 77 5c 22 29 5c 6e 5c 6e 20 20 20 20 64 65 66 20 61 64 64 5f 6e 6f 64 65 28 73 65 6c 66 2c 20 "w\")\n\n....def.add_node(self,.
312e0 6e 2c 20 61 74 74 72 5f 64 69 63 74 3d 4e 6f 6e 65 2c 20 2a 2a 61 74 74 72 29 3a 5c 6e 20 20 20 n,.attr_dict=None,.**attr):\n...
31300 20 20 20 20 20 73 75 70 65 72 28 29 2e 61 64 64 5f 6e 6f 64 65 28 6e 2c 20 61 74 74 72 5f 64 69 .....super().add_node(n,.attr_di
31320 63 74 3d 61 74 74 72 5f 64 69 63 74 2c 20 2a 2a 61 74 74 72 29 5c 6e 20 20 20 20 20 20 20 20 73 ct=attr_dict,.**attr)\n........s
31340 65 6c 66 2e 66 68 2e 77 72 69 74 65 28 66 5c 22 41 64 64 20 6e 6f 64 65 3a 20 7b 6e 7d 5c 5c 6e elf.fh.write(f\"Add.node:.{n}\\n
31360 5c 22 29 5c 6e 5c 6e 20 20 20 20 64 65 66 20 61 64 64 5f 6e 6f 64 65 73 5f 66 72 6f 6d 28 73 65 \")\n\n....def.add_nodes_from(se
31380 6c 66 2c 20 6e 6f 64 65 73 2c 20 2a 2a 61 74 74 72 29 3a 5c 6e 20 20 20 20 20 20 20 20 66 6f 72 lf,.nodes,.**attr):\n........for
313a0 20 6e 20 69 6e 20 6e 6f 64 65 73 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 61 .n.in.nodes:\n............self.a
313c0 64 64 5f 6e 6f 64 65 28 6e 2c 20 2a 2a 61 74 74 72 29 5c 6e 5c 6e 20 20 20 20 64 65 66 20 72 65 dd_node(n,.**attr)\n\n....def.re
313e0 6d 6f 76 65 5f 6e 6f 64 65 28 73 65 6c 66 2c 20 6e 29 3a 5c 6e 20 20 20 20 20 20 20 20 73 75 70 move_node(self,.n):\n........sup
31400 65 72 28 29 2e 72 65 6d 6f 76 65 5f 6e 6f 64 65 28 6e 29 5c 6e 20 20 20 20 20 20 20 20 73 65 6c er().remove_node(n)\n........sel
31420 66 2e 66 68 2e 77 72 69 74 65 28 66 5c 22 52 65 6d 6f 76 65 20 6e 6f 64 65 3a 20 7b 6e 7d 5c 5c f.fh.write(f\"Remove.node:.{n}\\
31440 6e 5c 22 29 5c 6e 5c 6e 20 20 20 20 64 65 66 20 72 65 6d 6f 76 65 5f 6e 6f 64 65 73 5f 66 72 6f n\")\n\n....def.remove_nodes_fro
31460 6d 28 73 65 6c 66 2c 20 6e 6f 64 65 73 29 3a 5c 6e 20 20 20 20 20 20 20 20 66 6f 72 20 6e 20 69 m(self,.nodes):\n........for.n.i
31480 6e 20 6e 6f 64 65 73 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 72 65 6d 6f 76 n.nodes:\n............self.remov
314a0 65 5f 6e 6f 64 65 28 6e 29 5c 6e 5c 6e 20 20 20 20 64 65 66 20 61 64 64 5f 65 64 67 65 28 73 65 e_node(n)\n\n....def.add_edge(se
314c0 6c 66 2c 20 75 2c 20 76 2c 20 61 74 74 72 5f 64 69 63 74 3d 4e 6f 6e 65 2c 20 2a 2a 61 74 74 72 lf,.u,.v,.attr_dict=None,.**attr
314e0 29 3a 5c 6e 20 20 20 20 20 20 20 20 73 75 70 65 72 28 29 2e 61 64 64 5f 65 64 67 65 28 75 2c 20 ):\n........super().add_edge(u,.
31500 76 2c 20 61 74 74 72 5f 64 69 63 74 3d 61 74 74 72 5f 64 69 63 74 2c 20 2a 2a 61 74 74 72 29 5c v,.attr_dict=attr_dict,.**attr)\
31520 6e 20 20 20 20 20 20 20 20 73 65 6c 66 2e 66 68 2e 77 72 69 74 65 28 66 5c 22 41 64 64 20 65 64 n........self.fh.write(f\"Add.ed
31540 67 65 3a 20 7b 75 7d 2d 7b 76 7d 5c 5c 6e 5c 22 29 5c 6e 5c 6e 20 20 20 20 64 65 66 20 61 64 64 ge:.{u}-{v}\\n\")\n\n....def.add
31560 5f 65 64 67 65 73 5f 66 72 6f 6d 28 73 65 6c 66 2c 20 65 62 75 6e 63 68 2c 20 61 74 74 72 5f 64 _edges_from(self,.ebunch,.attr_d
31580 69 63 74 3d 4e 6f 6e 65 2c 20 2a 2a 61 74 74 72 29 3a 5c 6e 20 20 20 20 20 20 20 20 66 6f 72 20 ict=None,.**attr):\n........for.
315a0 65 20 69 6e 20 65 62 75 6e 63 68 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 75 2c 20 76 20 3d e.in.ebunch:\n............u,.v.=
315c0 20 65 5b 30 3a 32 5d 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 61 64 64 5f 65 64 .e[0:2]\n............self.add_ed
315e0 67 65 28 75 2c 20 76 2c 20 61 74 74 72 5f 64 69 63 74 3d 61 74 74 72 5f 64 69 63 74 2c 20 2a 2a ge(u,.v,.attr_dict=attr_dict,.**
31600 61 74 74 72 29 5c 6e 5c 6e 20 20 20 20 64 65 66 20 72 65 6d 6f 76 65 5f 65 64 67 65 28 73 65 6c attr)\n\n....def.remove_edge(sel
31620 66 2c 20 75 2c 20 76 29 3a 5c 6e 20 20 20 20 20 20 20 20 73 75 70 65 72 28 29 2e 72 65 6d 6f 76 f,.u,.v):\n........super().remov
31640 65 5f 65 64 67 65 28 75 2c 20 76 29 5c 6e 20 20 20 20 20 20 20 20 73 65 6c 66 2e 66 68 2e 77 72 e_edge(u,.v)\n........self.fh.wr
31660 69 74 65 28 66 5c 22 52 65 6d 6f 76 65 20 65 64 67 65 3a 20 7b 75 7d 2d 7b 76 7d 5c 5c 6e 5c 22 ite(f\"Remove.edge:.{u}-{v}\\n\"
31680 29 5c 6e 5c 6e 20 20 20 20 64 65 66 20 72 65 6d 6f 76 65 5f 65 64 67 65 73 5f 66 72 6f 6d 28 73 )\n\n....def.remove_edges_from(s
316a0 65 6c 66 2c 20 65 62 75 6e 63 68 29 3a 5c 6e 20 20 20 20 20 20 20 20 66 6f 72 20 65 20 69 6e 20 elf,.ebunch):\n........for.e.in.
316c0 65 62 75 6e 63 68 3a 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 75 2c 20 76 20 3d 20 65 5b 30 3a ebunch:\n............u,.v.=.e[0:
316e0 32 5d 5c 6e 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 72 65 6d 6f 76 65 5f 65 64 67 65 2]\n............self.remove_edge
31700 28 75 2c 20 76 29 5c 6e 5c 6e 20 20 20 20 64 65 66 20 63 6c 65 61 72 28 73 65 6c 66 29 3a 5c 6e (u,.v)\n\n....def.clear(self):\n
31720 20 20 20 20 20 20 20 20 73 75 70 65 72 28 29 2e 63 6c 65 61 72 28 29 5c 6e 20 20 20 20 20 20 20 ........super().clear()\n.......
31740 20 73 65 6c 66 2e 66 68 2e 77 72 69 74 65 28 5c 22 43 6c 65 61 72 20 67 72 61 70 68 5c 5c 6e 5c .self.fh.write(\"Clear.graph\\n\
31760 22 29 5c 6e 5c 6e 5c 6e 47 20 3d 20 50 72 69 6e 74 47 72 61 70 68 28 29 5c 6e 47 2e 61 64 64 5f ")\n\n\nG.=.PrintGraph()\nG.add_
31780 6e 6f 64 65 28 5c 22 66 6f 6f 5c 22 29 5c 6e 47 2e 61 64 64 5f 6e 6f 64 65 73 5f 66 72 6f 6d 28 node(\"foo\")\nG.add_nodes_from(
317a0 5c 22 62 61 72 5c 22 2c 20 77 65 69 67 68 74 3d 38 29 5c 6e 47 2e 72 65 6d 6f 76 65 5f 6e 6f 64 \"bar\",.weight=8)\nG.remove_nod
317c0 65 28 5c 22 62 5c 22 29 5c 6e 47 2e 72 65 6d 6f 76 65 5f 6e 6f 64 65 73 5f 66 72 6f 6d 28 5c 22 e(\"b\")\nG.remove_nodes_from(\"
317e0 61 72 5c 22 29 5c 6e 70 72 69 6e 74 28 5c 22 4e 6f 64 65 73 20 69 6e 20 47 3a 20 5c 22 2c 20 47 ar\")\nprint(\"Nodes.in.G:.\",.G
31800 2e 6e 6f 64 65 73 28 64 61 74 61 3d 54 72 75 65 29 29 5c 6e 47 2e 61 64 64 5f 65 64 67 65 28 30 .nodes(data=True))\nG.add_edge(0
31820 2c 20 31 2c 20 77 65 69 67 68 74 3d 31 30 29 5c 6e 70 72 69 6e 74 28 5c 22 45 64 67 65 73 20 69 ,.1,.weight=10)\nprint(\"Edges.i
31840 6e 20 47 3a 20 5c 22 2c 20 47 2e 65 64 67 65 73 28 64 61 74 61 3d 54 72 75 65 29 29 5c 6e 47 2e n.G:.\",.G.edges(data=True))\nG.
31860 72 65 6d 6f 76 65 5f 65 64 67 65 28 30 2c 20 31 29 5c 6e 47 2e 61 64 64 5f 65 64 67 65 73 5f 66 remove_edge(0,.1)\nG.add_edges_f
31880 72 6f 6d 28 7a 69 70 28 72 61 6e 67 65 28 30 2c 20 33 29 2c 20 72 61 6e 67 65 28 31 2c 20 34 29 rom(zip(range(0,.3),.range(1,.4)
318a0 29 2c 20 77 65 69 67 68 74 3d 31 30 29 5c 6e 70 72 69 6e 74 28 5c 22 45 64 67 65 73 20 69 6e 20 ),.weight=10)\nprint(\"Edges.in.
318c0 47 3a 20 5c 22 2c 20 47 2e 65 64 67 65 73 28 64 61 74 61 3d 54 72 75 65 29 29 5c 6e 47 2e 72 65 G:.\",.G.edges(data=True))\nG.re
318e0 6d 6f 76 65 5f 65 64 67 65 73 5f 66 72 6f 6d 28 7a 69 70 28 72 61 6e 67 65 28 30 2c 20 33 29 2c move_edges_from(zip(range(0,.3),
31900 20 72 61 6e 67 65 28 31 2c 20 34 29 29 29 5c 6e 70 72 69 6e 74 28 5c 22 45 64 67 65 73 20 69 6e .range(1,.4)))\nprint(\"Edges.in
31920 20 47 3a 20 5c 22 2c 20 47 2e 65 64 67 65 73 28 64 61 74 61 3d 54 72 75 65 29 29 5c 6e 5c 6e 47 .G:.\",.G.edges(data=True))\n\nG
31940 20 3d 20 50 72 69 6e 74 47 72 61 70 68 28 29 5c 6e 6e 78 2e 61 64 64 5f 70 61 74 68 28 47 2c 20 .=.PrintGraph()\nnx.add_path(G,.
31960 72 61 6e 67 65 28 31 30 29 29 5c 6e 6e 78 2e 61 64 64 5f 73 74 61 72 28 47 2c 20 72 61 6e 67 65 range(10))\nnx.add_star(G,.range
31980 28 39 2c 20 31 33 29 29 5c 6e 70 6f 73 20 3d 20 6e 78 2e 73 70 72 69 6e 67 5f 6c 61 79 6f 75 74 (9,.13))\npos.=.nx.spring_layout
319a0 28 47 2c 20 73 65 65 64 3d 32 32 35 29 20 20 23 20 53 65 65 64 20 66 6f 72 20 72 65 70 72 6f 64 (G,.seed=225)..#.Seed.for.reprod
319c0 75 63 69 62 6c 65 20 6c 61 79 6f 75 74 5c 6e 6e 78 2e 64 72 61 77 28 47 2c 20 70 6f 73 29 5c 6e ucible.layout\nnx.draw(G,.pos)\n
319e0 70 6c 74 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 plt.show()".......].....}...],..
31a00 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":
31a20 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
31a40 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",
31a60 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".....},.
31a80 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
31aa0 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"
31ac0 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":.
31ae0 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
31b00 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
31b20 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
31b40 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":
31b60 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
31b80 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":.
31ba0 22 33 2e 39 2e 31 36 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 "3.9.16".....}...},..."nbformat"
31bc0 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 0a 7d 50 4b 01 02 :.4,..."nbformat_minor":.0.}PK..
31be0 14 03 14 00 00 00 00 00 07 0f 5a 56 15 c1 02 76 92 07 00 00 92 07 00 00 1f 00 00 00 00 00 00 00 ..........ZV...v................
31c00 00 00 00 00 a4 81 00 00 00 00 33 64 5f 64 72 61 77 69 6e 67 2f 6d 61 79 61 76 69 32 5f 73 70 72 ..........3d_drawing/mayavi2_spr
31c20 69 6e 67 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 07 0f 5a 56 91 ea e9 42 6f 08 00 ing.ipynbPK............ZV...Bo..
31c40 00 6f 08 00 00 1b 00 00 00 00 00 00 00 00 00 00 00 a4 81 cf 07 00 00 33 64 5f 64 72 61 77 69 6e .o.....................3d_drawin
31c60 67 2f 70 6c 6f 74 5f 62 61 73 69 63 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 1a 0f g/plot_basic.ipynbPK............
31c80 5a 56 c7 83 85 22 d4 10 00 00 d4 10 00 00 1a 00 00 00 00 00 00 00 00 00 00 00 a4 81 77 10 00 00 ZV..."......................w...
31ca0 61 6c 67 6f 72 69 74 68 6d 73 2f 70 6c 6f 74 5f 73 6e 61 70 2e 69 70 79 6e 62 50 4b 01 02 14 03 algorithms/plot_snap.ipynbPK....
31cc0 14 00 00 00 00 00 0f 0f 5a 56 22 5d fe 28 56 07 00 00 56 07 00 00 2d 00 00 00 00 00 00 00 00 00 ........ZV"].(V...V...-.........
31ce0 00 00 a4 81 83 21 00 00 61 6c 67 6f 72 69 74 68 6d 73 2f 70 6c 6f 74 5f 6d 61 78 69 6d 75 6d 5f .....!..algorithms/plot_maximum_
31d00 69 6e 64 65 70 65 6e 64 65 6e 74 5f 73 65 74 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 independent_set.ipynbPK.........
31d20 00 0f 0f 5a 56 91 d0 1f 75 5d 0d 00 00 5d 0d 00 00 25 00 00 00 00 00 00 00 00 00 00 00 a4 81 24 ...ZV...u]...]...%.............$
31d40 29 00 00 61 6c 67 6f 72 69 74 68 6d 73 2f 70 6c 6f 74 5f 64 65 64 65 6e 73 69 66 69 63 61 74 69 )..algorithms/plot_dedensificati
31d60 6f 6e 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 0f 0f 5a 56 3c 2c ca bb 4b 06 00 00 on.ipynbPK............ZV<,..K...
31d80 4b 06 00 00 2b 00 00 00 00 00 00 00 00 00 00 00 a4 81 c4 36 00 00 61 6c 67 6f 72 69 74 68 6d 73 K...+..............6..algorithms
31da0 2f 70 6c 6f 74 5f 6b 72 61 63 6b 68 61 72 64 74 5f 63 65 6e 74 72 61 6c 69 74 79 2e 69 70 79 6e /plot_krackhardt_centrality.ipyn
31dc0 62 50 4b 01 02 14 03 14 00 00 00 00 00 0f 0f 5a 56 48 2e 50 7d de 1b 00 00 de 1b 00 00 30 00 00 bPK............ZVH.P}........0..
31de0 00 00 00 00 00 00 00 00 00 a4 81 58 3d 00 00 61 6c 67 6f 72 69 74 68 6d 73 2f 70 6c 6f 74 5f 69 ...........X=..algorithms/plot_i
31e00 74 65 72 61 74 65 64 5f 64 79 6e 61 6d 69 63 61 6c 5f 73 79 73 74 65 6d 73 2e 69 70 79 6e 62 50 terated_dynamical_systems.ipynbP
31e20 4b 01 02 14 03 14 00 00 00 00 00 1a 0f 5a 56 7d d4 84 d5 ad 0d 00 00 ad 0d 00 00 2a 00 00 00 00 K............ZV}...........*....
31e40 00 00 00 00 00 00 00 a4 81 84 59 00 00 61 6c 67 6f 72 69 74 68 6d 73 2f 70 6c 6f 74 5f 70 61 72 ..........Y..algorithms/plot_par
31e60 61 6c 6c 65 6c 5f 62 65 74 77 65 65 6e 6e 65 73 73 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 allel_betweenness.ipynbPK.......
31e80 00 00 00 0e 0f 5a 56 b5 c0 c9 88 60 0c 00 00 60 0c 00 00 2c 00 00 00 00 00 00 00 00 00 00 00 a4 .....ZV....`...`...,............
31ea0 81 79 67 00 00 61 6c 67 6f 72 69 74 68 6d 73 2f 70 6c 6f 74 5f 62 65 74 77 65 65 6e 6e 65 73 73 .yg..algorithms/plot_betweenness
31ec0 5f 63 65 6e 74 72 61 6c 69 74 79 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 0f 0f 5a _centrality.ipynbPK............Z
31ee0 56 36 81 6d b5 9d 08 00 00 9d 08 00 00 20 00 00 00 00 00 00 00 00 00 00 00 a4 81 23 74 00 00 61 V6.m.......................#t..a
31f00 6c 67 6f 72 69 74 68 6d 73 2f 70 6c 6f 74 5f 64 61 76 69 73 5f 63 6c 75 62 2e 69 70 79 6e 62 50 lgorithms/plot_davis_club.ipynbP
31f20 4b 01 02 14 03 14 00 00 00 00 00 0f 0f 5a 56 a6 2d 1f 92 b0 12 00 00 b0 12 00 00 1e 00 00 00 00 K............ZV.-...............
31f40 00 00 00 00 00 00 00 a4 81 fe 7c 00 00 61 6c 67 6f 72 69 74 68 6d 73 2f 70 6c 6f 74 5f 63 69 72 ..........|..algorithms/plot_cir
31f60 63 75 69 74 73 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 0f 0f 5a 56 e4 5f 7f 33 8c cuits.ipynbPK............ZV._.3.
31f80 0e 00 00 8c 0e 00 00 20 00 00 00 00 00 00 00 00 00 00 00 a4 81 ea 8f 00 00 61 6c 67 6f 72 69 74 .........................algorit
31fa0 68 6d 73 2f 70 6c 6f 74 5f 62 6c 6f 63 6b 6d 6f 64 65 6c 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 hms/plot_blockmodel.ipynbPK.....
31fc0 00 00 00 00 00 0c 0f 5a 56 c7 81 9e 38 f4 14 00 00 f4 14 00 00 21 00 00 00 00 00 00 00 00 00 00 .......ZV...8........!..........
31fe0 00 a4 81 b4 9e 00 00 61 6c 67 6f 72 69 74 68 6d 73 2f 70 6c 6f 74 5f 62 65 61 6d 5f 73 65 61 72 .......algorithms/plot_beam_sear
32000 63 68 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 1b 0f 5a 56 87 c5 0c b0 57 22 00 00 ch.ipynbPK............ZV....W"..
32020 57 22 00 00 1f 00 00 00 00 00 00 00 00 00 00 00 a4 81 e7 b3 00 00 61 6c 67 6f 72 69 74 68 6d 73 W"....................algorithms
32040 2f 70 6c 6f 74 5f 73 75 62 67 72 61 70 68 73 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 /plot_subgraphs.ipynbPK.........
32060 00 1a 0f 5a 56 44 02 60 05 ea 07 00 00 ea 07 00 00 19 00 00 00 00 00 00 00 00 00 00 00 a4 81 7b ...ZVD.`.......................{
32080 d6 00 00 61 6c 67 6f 72 69 74 68 6d 73 2f 70 6c 6f 74 5f 72 63 6d 2e 69 70 79 6e 62 50 4b 01 02 ...algorithms/plot_rcm.ipynbPK..
320a0 14 03 14 00 00 00 00 00 03 0f 5a 56 23 7d c2 d9 29 08 00 00 29 08 00 00 1b 00 00 00 00 00 00 00 ..........ZV#}..)...)...........
320c0 00 00 00 00 a4 81 9c de 00 00 62 61 73 69 63 2f 70 6c 6f 74 5f 70 72 6f 70 65 72 74 69 65 73 2e ..........basic/plot_properties.
320e0 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 03 0f 5a 56 5a b1 7f 6a ce 05 00 00 ce 05 00 ipynbPK............ZVZ..j.......
32100 00 1b 00 00 00 00 00 00 00 00 00 00 00 a4 81 fe e6 00 00 62 61 73 69 63 2f 70 6c 6f 74 5f 72 65 ...................basic/plot_re
32120 61 64 5f 77 72 69 74 65 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 03 0f 5a 56 00 53 ad_write.ipynbPK............ZV.S
32140 23 ce f1 09 00 00 f1 09 00 00 1d 00 00 00 00 00 00 00 00 00 00 00 a4 81 05 ed 00 00 62 61 73 69 #...........................basi
32160 63 2f 70 6c 6f 74 5f 73 69 6d 70 6c 65 5f 67 72 61 70 68 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 c/plot_simple_graph.ipynbPK.....
32180 00 00 00 00 00 07 0f 5a 56 70 95 23 55 69 08 00 00 69 08 00 00 21 00 00 00 00 00 00 00 00 00 00 .......ZVp.#Ui...i...!..........
321a0 00 a4 81 31 f7 00 00 64 72 61 77 69 6e 67 2f 70 6c 6f 74 5f 77 65 69 67 68 74 65 64 5f 67 72 61 ...1...drawing/plot_weighted_gra
321c0 70 68 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 06 0f 5a 56 c6 d0 9c ba c3 04 00 00 ph.ipynbPK............ZV........
321e0 c3 04 00 00 1e 00 00 00 00 00 00 00 00 00 00 00 a4 81 d9 ff 00 00 64 72 61 77 69 6e 67 2f 70 6c ......................drawing/pl
32200 6f 74 5f 73 69 6d 70 6c 65 5f 70 61 74 68 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 ot_simple_path.ipynbPK..........
32220 04 0f 5a 56 f1 b3 3b 79 85 0c 00 00 85 0c 00 00 24 00 00 00 00 00 00 00 00 00 00 00 a4 81 d8 04 ..ZV..;y........$...............
32240 01 00 64 72 61 77 69 6e 67 2f 70 6c 6f 74 5f 63 75 73 74 6f 6d 5f 6e 6f 64 65 5f 69 63 6f 6e 73 ..drawing/plot_custom_node_icons
32260 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 04 0f 5a 56 f5 4d d4 8c 3e 08 00 00 3e 08 .ipynbPK............ZV.M..>...>.
32280 00 00 1b 00 00 00 00 00 00 00 00 00 00 00 a4 81 9f 11 01 00 64 72 61 77 69 6e 67 2f 70 6c 6f 74 ....................drawing/plot
322a0 5f 64 69 72 65 63 74 65 64 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 06 0f 5a 56 9b _directed.ipynbPK............ZV.
322c0 1b 04 36 ec 08 00 00 ec 08 00 00 16 00 00 00 00 00 00 00 00 00 00 00 a4 81 16 1a 01 00 64 72 61 ..6..........................dra
322e0 77 69 6e 67 2f 70 6c 6f 74 5f 74 73 70 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 05 wing/plot_tsp.ipynbPK...........
32300 0f 5a 56 a4 e4 67 29 e6 08 00 00 e6 08 00 00 24 00 00 00 00 00 00 00 00 00 00 00 a4 81 36 23 01 .ZV..g)........$.............6#.
32320 00 64 72 61 77 69 6e 67 2f 70 6c 6f 74 5f 6c 61 62 65 6c 73 5f 61 6e 64 5f 63 6f 6c 6f 72 73 2e .drawing/plot_labels_and_colors.
32340 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 05 0f 5a 56 69 e5 02 9d fb 05 00 00 fb 05 00 ipynbPK............ZVi..........
32360 00 1e 00 00 00 00 00 00 00 00 00 00 00 a4 81 5e 2c 01 00 64 72 61 77 69 6e 67 2f 70 6c 6f 74 5f ...............^,..drawing/plot_
32380 65 69 67 65 6e 76 61 6c 75 65 73 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 06 0f 5a eigenvalues.ipynbPK............Z
323a0 56 f2 19 c2 f5 21 0a 00 00 21 0a 00 00 20 00 00 00 00 00 00 00 00 00 00 00 a4 81 95 32 01 00 64 V....!...!..................2..d
323c0 72 61 77 69 6e 67 2f 70 6c 6f 74 5f 73 70 65 63 74 72 61 6c 5f 67 72 69 64 2e 69 70 79 6e 62 50 rawing/plot_spectral_grid.ipynbP
323e0 4b 01 02 14 03 14 00 00 00 00 00 06 0f 5a 56 7f 13 a7 e2 82 0c 00 00 82 0c 00 00 23 00 00 00 00 K............ZV............#....
32400 00 00 00 00 00 00 00 a4 81 f4 3c 01 00 64 72 61 77 69 6e 67 2f 70 6c 6f 74 5f 72 61 69 6e 62 6f ..........<..drawing/plot_rainbo
32420 77 5f 63 6f 6c 6f 72 69 6e 67 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 05 0f 5a 56 w_coloring.ipynbPK............ZV
32440 7e 2f 63 f2 13 08 00 00 13 08 00 00 1d 00 00 00 00 00 00 00 00 00 00 00 a4 81 b7 49 01 00 64 72 ~/c........................I..dr
32460 61 77 69 6e 67 2f 70 6c 6f 74 5f 66 6f 75 72 5f 67 72 69 64 73 2e 69 70 79 6e 62 50 4b 01 02 14 awing/plot_four_grids.ipynbPK...
32480 03 14 00 00 00 00 00 05 0f 5a 56 d9 98 95 da 76 14 00 00 76 14 00 00 1e 00 00 00 00 00 00 00 00 .........ZV....v...v............
324a0 00 00 00 a4 81 05 52 01 00 64 72 61 77 69 6e 67 2f 70 6c 6f 74 5f 6b 6e 75 74 68 5f 6d 69 6c 65 ......R..drawing/plot_knuth_mile
324c0 73 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 04 0f 5a 56 85 ca 0e 59 a6 16 00 00 a6 s.ipynbPK............ZV...Y.....
324e0 16 00 00 20 00 00 00 00 00 00 00 00 00 00 00 a4 81 b7 66 01 00 64 72 61 77 69 6e 67 2f 70 6c 6f ..................f..drawing/plo
32500 74 5f 63 68 65 73 73 5f 6d 61 73 74 65 72 73 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 t_chess_masters.ipynbPK.........
32520 00 05 0f 5a 56 05 31 f7 34 e2 04 00 00 e2 04 00 00 20 00 00 00 00 00 00 00 00 00 00 00 a4 81 9b ...ZV.1.4.......................
32540 7d 01 00 64 72 61 77 69 6e 67 2f 70 6c 6f 74 5f 6e 6f 64 65 5f 63 6f 6c 6f 72 6d 61 70 2e 69 70 }..drawing/plot_node_colormap.ip
32560 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 03 0f 5a 56 8c fd 15 db 26 06 00 00 26 06 00 00 1e ynbPK............ZV....&...&....
32580 00 00 00 00 00 00 00 00 00 00 00 a4 81 bb 82 01 00 64 72 61 77 69 6e 67 2f 70 6c 6f 74 5f 63 65 .................drawing/plot_ce
325a0 6e 74 65 72 5f 6e 6f 64 65 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 06 0f 5a 56 c9 nter_node.ipynbPK............ZV.
325c0 52 3c 1d 7b 07 00 00 7b 07 00 00 29 00 00 00 00 00 00 00 00 00 00 00 a4 81 1d 89 01 00 64 72 61 R<.{...{...).................dra
325e0 77 69 6e 67 2f 70 6c 6f 74 5f 72 61 6e 64 6f 6d 5f 67 65 6f 6d 65 74 72 69 63 5f 67 72 61 70 68 wing/plot_random_geometric_graph
32600 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 07 0f 5a 56 37 fd b7 79 b5 0b 00 00 b5 0b .ipynbPK............ZV7..y......
32620 00 00 1d 00 00 00 00 00 00 00 00 00 00 00 a4 81 df 90 01 00 64 72 61 77 69 6e 67 2f 70 6c 6f 74 ....................drawing/plot
32640 5f 75 6e 69 78 5f 65 6d 61 69 6c 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 05 0f 5a _unix_email.ipynbPK............Z
32660 56 b3 9c f2 e6 6a 06 00 00 6a 06 00 00 24 00 00 00 00 00 00 00 00 00 00 00 a4 81 cf 9c 01 00 64 V....j...j...$.................d
32680 72 61 77 69 6e 67 2f 70 6c 6f 74 5f 68 6f 75 73 65 5f 77 69 74 68 5f 63 6f 6c 6f 72 73 2e 69 70 rawing/plot_house_with_colors.ip
326a0 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 04 0f 5a 56 72 1b 90 7d 0b 0a 00 00 0b 0a 00 00 19 ynbPK............ZVr..}.........
326c0 00 00 00 00 00 00 00 00 00 00 00 a4 81 7b a3 01 00 64 72 61 77 69 6e 67 2f 70 6c 6f 74 5f 64 65 .............{...drawing/plot_de
326e0 67 72 65 65 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 04 0f 5a 56 66 68 42 52 8f 05 gree.ipynbPK............ZVfhBR..
32700 00 00 8f 05 00 00 20 00 00 00 00 00 00 00 00 00 00 00 a4 81 bd ad 01 00 64 72 61 77 69 6e 67 2f ........................drawing/
32720 70 6c 6f 74 5f 65 64 67 65 5f 63 6f 6c 6f 72 6d 61 70 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 plot_edge_colormap.ipynbPK......
32740 00 00 00 00 05 0f 5a 56 9d eb 3d 24 c7 07 00 00 c7 07 00 00 25 00 00 00 00 00 00 00 00 00 00 00 ......ZV..=$........%...........
32760 a4 81 8a b3 01 00 64 72 61 77 69 6e 67 2f 70 6c 6f 74 5f 6d 75 6c 74 69 70 61 72 74 69 74 65 5f ......drawing/plot_multipartite_
32780 67 72 61 70 68 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 04 0f 5a 56 d1 83 2e 77 78 graph.ipynbPK............ZV...wx
327a0 07 00 00 78 07 00 00 1c 00 00 00 00 00 00 00 00 00 00 00 a4 81 94 bb 01 00 64 72 61 77 69 6e 67 ...x.....................drawing
327c0 2f 70 6c 6f 74 5f 65 67 6f 5f 67 72 61 70 68 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 /plot_ego_graph.ipynbPK.........
327e0 00 06 0f 5a 56 3a d9 a0 7f cb 06 00 00 cb 06 00 00 1c 00 00 00 00 00 00 00 00 00 00 00 a4 81 46 ...ZV:.........................F
32800 c3 01 00 64 72 61 77 69 6e 67 2f 70 6c 6f 74 5f 73 65 6c 66 6c 6f 6f 70 73 2e 69 70 79 6e 62 50 ...drawing/plot_selfloops.ipynbP
32820 4b 01 02 14 03 14 00 00 00 00 00 06 0f 5a 56 c2 ac 67 54 d3 08 00 00 d3 08 00 00 1a 00 00 00 00 K............ZV..gT.............
32840 00 00 00 00 00 00 00 a4 81 4b ca 01 00 64 72 61 77 69 6e 67 2f 70 6c 6f 74 5f 73 61 6d 70 73 6f .........K...drawing/plot_sampso
32860 6e 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 1b 0f 5a 56 80 de 93 2b ce 07 00 00 ce n.ipynbPK............ZV...+.....
32880 07 00 00 1f 00 00 00 00 00 00 00 00 00 00 00 a4 81 56 d3 01 00 65 78 74 65 72 6e 61 6c 2f 6a 61 .................V...external/ja
328a0 76 61 73 63 72 69 70 74 5f 66 6f 72 63 65 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 vascript_force.ipynbPK..........
328c0 1b 0f 5a 56 cf 24 a4 1a 17 0a 00 00 17 0a 00 00 1a 00 00 00 00 00 00 00 00 00 00 00 a4 81 61 db ..ZV.$........................a.
328e0 01 00 65 78 74 65 72 6e 61 6c 2f 70 6c 6f 74 5f 69 67 72 61 70 68 2e 69 70 79 6e 62 50 4b 01 02 ..external/plot_igraph.ipynbPK..
32900 14 03 14 00 00 00 00 00 22 0f 5a 56 16 d9 4d 54 64 0b 00 00 64 0b 00 00 1b 00 00 00 00 00 00 00 ........".ZV..MTd...d...........
32920 00 00 00 00 a4 81 b0 e5 01 00 67 65 6f 73 70 61 74 69 61 6c 2f 70 6c 6f 74 5f 6f 73 6d 6e 78 2e ..........geospatial/plot_osmnx.
32940 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 20 0f 5a 56 8c 41 6d d7 d1 19 00 00 d1 19 00 ipynbPK............ZV.Am........
32960 00 1b 00 00 00 00 00 00 00 00 00 00 00 a4 81 4d f1 01 00 67 65 6f 73 70 61 74 69 61 6c 2f 70 6c ...............M...geospatial/pl
32980 6f 74 5f 6c 69 6e 65 73 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 24 0f 5a 56 40 58 ot_lines.ipynbPK..........$.ZV@X
329a0 82 1c c1 0c 00 00 c1 0c 00 00 1e 00 00 00 00 00 00 00 00 00 00 00 a4 81 57 0b 02 00 67 65 6f 73 ........................W...geos
329c0 70 61 74 69 61 6c 2f 70 6c 6f 74 5f 70 6f 6c 79 67 6f 6e 73 2e 69 70 79 6e 62 50 4b 01 02 14 03 patial/plot_polygons.ipynbPK....
329e0 14 00 00 00 00 00 1d 0f 5a 56 56 ea ae 92 e4 0f 00 00 e4 0f 00 00 1e 00 00 00 00 00 00 00 00 00 ........ZVV.....................
32a00 00 00 a4 81 54 18 02 00 67 65 6f 73 70 61 74 69 61 6c 2f 70 6c 6f 74 5f 64 65 6c 61 75 6e 61 79 ....T...geospatial/plot_delaunay
32a20 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 24 0f 5a 56 3d 49 ba 83 97 0c 00 00 97 0c .ipynbPK..........$.ZV=I........
32a40 00 00 1c 00 00 00 00 00 00 00 00 00 00 00 a4 81 74 28 02 00 67 65 6f 73 70 61 74 69 61 6c 2f 70 ................t(..geospatial/p
32a60 6c 6f 74 5f 70 6f 69 6e 74 73 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 0b 0f 5a 56 lot_points.ipynbPK............ZV
32a80 db a4 c4 17 94 0c 00 00 94 0c 00 00 16 00 00 00 00 00 00 00 00 00 00 00 a4 81 45 35 02 00 67 72 ..........................E5..gr
32aa0 61 70 68 2f 70 6c 6f 74 5f 72 6f 67 65 74 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 aph/plot_roget.ipynbPK..........
32ac0 0c 0f 5a 56 83 58 4c 00 ae 0e 00 00 ae 0e 00 00 16 00 00 00 00 00 00 00 00 00 00 00 a4 81 0d 42 ..ZV.XL........................B
32ae0 02 00 67 72 61 70 68 2f 70 6c 6f 74 5f 77 6f 72 64 73 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 ..graph/plot_words.ipynbPK......
32b00 00 00 00 00 0a 0f 5a 56 e0 6d fd 99 3a 07 00 00 3a 07 00 00 1c 00 00 00 00 00 00 00 00 00 00 00 ......ZV.m..:...:...............
32b20 a4 81 ef 50 02 00 67 72 61 70 68 2f 70 6c 6f 74 5f 65 72 64 6f 73 5f 72 65 6e 79 69 2e 69 70 79 ...P..graph/plot_erdos_renyi.ipy
32b40 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 0b 0f 5a 56 91 cd 41 02 0a 10 00 00 0a 10 00 00 1b 00 nbPK............ZV..A...........
32b60 00 00 00 00 00 00 00 00 00 00 a4 81 63 58 02 00 67 72 61 70 68 2f 70 6c 6f 74 5f 6d 6f 72 73 65 ............cX..graph/plot_morse
32b80 5f 74 72 69 65 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 0a 0f 5a 56 b2 14 29 75 e6 _trie.ipynbPK............ZV..)u.
32ba0 07 00 00 e6 07 00 00 1b 00 00 00 00 00 00 00 00 00 00 00 a4 81 a6 68 02 00 67 72 61 70 68 2f 70 ......................h..graph/p
32bc0 6c 6f 74 5f 64 61 67 5f 6c 61 79 6f 75 74 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 lot_dag_layout.ipynbPK..........
32be0 0a 0f 5a 56 eb 03 69 37 05 07 00 00 05 07 00 00 20 00 00 00 00 00 00 00 00 00 00 00 a4 81 c5 70 ..ZV..i7.......................p
32c00 02 00 67 72 61 70 68 2f 70 6c 6f 74 5f 64 65 67 72 65 65 5f 73 65 71 75 65 6e 63 65 2e 69 70 79 ..graph/plot_degree_sequence.ipy
32c20 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 0b 0f 5a 56 70 bb 76 32 93 08 00 00 93 08 00 00 19 00 nbPK............ZVp.v2..........
32c40 00 00 00 00 00 00 00 00 00 00 a4 81 08 78 02 00 67 72 61 70 68 2f 70 6c 6f 74 5f 66 6f 6f 74 62 .............x..graph/plot_footb
32c60 61 6c 6c 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 0c 0f 5a 56 3e 2e d7 6c d4 0b 00 all.ipynbPK............ZV>..l...
32c80 00 d4 0b 00 00 1c 00 00 00 00 00 00 00 00 00 00 00 a4 81 d2 80 02 00 67 72 61 70 68 2f 70 6c 6f .......................graph/plo
32ca0 74 5f 74 72 69 61 64 5f 74 79 70 65 73 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 0a t_triad_types.ipynbPK...........
32cc0 0f 5a 56 b5 d0 ba 3b a7 05 00 00 a7 05 00 00 29 00 00 00 00 00 00 00 00 00 00 00 a4 81 e0 8c 02 .ZV...;........)................
32ce0 00 67 72 61 70 68 2f 70 6c 6f 74 5f 65 78 70 65 63 74 65 64 5f 64 65 67 72 65 65 5f 73 65 71 75 .graph/plot_expected_degree_sequ
32d00 65 6e 63 65 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 0b 0f 5a 56 e0 ab 9b ef c2 05 ence.ipynbPK............ZV......
32d20 00 00 c2 05 00 00 1c 00 00 00 00 00 00 00 00 00 00 00 a4 81 ce 92 02 00 67 72 61 70 68 2f 70 6c ........................graph/pl
32d40 6f 74 5f 6b 61 72 61 74 65 5f 63 6c 75 62 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 ot_karate_club.ipynbPK..........
32d60 0b 0f 5a 56 6d e4 97 07 a3 0f 00 00 a3 0f 00 00 2a 00 00 00 00 00 00 00 00 00 00 00 a4 81 ca 98 ..ZVm...........*...............
32d80 02 00 67 72 61 70 68 2f 70 6c 6f 74 5f 6e 61 70 6f 6c 65 6f 6e 5f 72 75 73 73 69 61 6e 5f 63 61 ..graph/plot_napoleon_russian_ca
32da0 6d 70 61 69 67 6e 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 0a 0f 5a 56 65 16 4d ff mpaign.ipynbPK............ZVe.M.
32dc0 c7 07 00 00 c7 07 00 00 20 00 00 00 00 00 00 00 00 00 00 00 a4 81 b5 a8 02 00 67 72 61 70 68 76 ..........................graphv
32de0 69 7a 5f 64 72 61 77 69 6e 67 2f 70 6c 6f 74 5f 67 72 69 64 2e 69 70 79 6e 62 50 4b 01 02 14 03 iz_drawing/plot_grid.ipynbPK....
32e00 14 00 00 00 00 00 0a 0f 5a 56 02 76 be 7e 44 06 00 00 44 06 00 00 26 00 00 00 00 00 00 00 00 00 ........ZV.v.~D...D...&.........
32e20 00 00 a4 81 ba b0 02 00 67 72 61 70 68 76 69 7a 5f 64 72 61 77 69 6e 67 2f 70 6c 6f 74 5f 63 6f ........graphviz_drawing/plot_co
32e40 6e 76 65 72 73 69 6f 6e 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 0a 0f 5a 56 64 5c nversion.ipynbPK............ZVd\
32e60 18 bc a5 06 00 00 a5 06 00 00 26 00 00 00 00 00 00 00 00 00 00 00 a4 81 42 b7 02 00 67 72 61 70 ..........&.............B...grap
32e80 68 76 69 7a 5f 64 72 61 77 69 6e 67 2f 70 6c 6f 74 5f 61 74 74 72 69 62 75 74 65 73 2e 69 70 79 hviz_drawing/plot_attributes.ipy
32ea0 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 0a 0f 5a 56 31 8c 0a d4 4d 06 00 00 4d 06 00 00 26 00 nbPK............ZV1...M...M...&.
32ec0 00 00 00 00 00 00 00 00 00 00 a4 81 2b be 02 00 67 72 61 70 68 76 69 7a 5f 64 72 61 77 69 6e 67 ............+...graphviz_drawing
32ee0 2f 70 6c 6f 74 5f 6d 69 6e 69 5f 61 74 6c 61 73 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 /plot_mini_atlas.ipynbPK........
32f00 00 00 09 0f 5a 56 26 2c 5e 78 65 08 00 00 65 08 00 00 28 00 00 00 00 00 00 00 00 00 00 00 a4 81 ....ZV&,^xe...e...(.............
32f20 bc c4 02 00 67 72 61 70 68 76 69 7a 5f 6c 61 79 6f 75 74 2f 70 6c 6f 74 5f 64 65 63 6f 6d 70 6f ....graphviz_layout/plot_decompo
32f40 73 69 74 69 6f 6e 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 09 0f 5a 56 12 cf dc 20 sition.ipynbPK............ZV....
32f60 94 09 00 00 94 09 00 00 20 00 00 00 00 00 00 00 00 00 00 00 a4 81 67 cd 02 00 67 72 61 70 68 76 ......................g...graphv
32f80 69 7a 5f 6c 61 79 6f 75 74 2f 70 6c 6f 74 5f 61 74 6c 61 73 2e 69 70 79 6e 62 50 4b 01 02 14 03 iz_layout/plot_atlas.ipynbPK....
32fa0 14 00 00 00 00 00 0a 0f 5a 56 c2 e1 cb ec ad 0a 00 00 ad 0a 00 00 2a 00 00 00 00 00 00 00 00 00 ........ZV............*.........
32fc0 00 00 a4 81 39 d7 02 00 67 72 61 70 68 76 69 7a 5f 6c 61 79 6f 75 74 2f 70 6c 6f 74 5f 67 69 61 ....9...graphviz_layout/plot_gia
32fe0 6e 74 5f 63 6f 6d 70 6f 6e 65 6e 74 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 09 0f nt_component.ipynbPK............
33000 5a 56 66 46 b1 6a 42 05 00 00 42 05 00 00 28 00 00 00 00 00 00 00 00 00 00 00 a4 81 2e e2 02 00 ZVfF.jB...B...(.................
33020 67 72 61 70 68 76 69 7a 5f 6c 61 79 6f 75 74 2f 70 6c 6f 74 5f 63 69 72 63 75 6c 61 72 5f 74 72 graphviz_layout/plot_circular_tr
33040 65 65 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 0a 0f 5a 56 14 54 0c 4e 19 0a 00 00 ee.ipynbPK............ZV.T.N....
33060 19 0a 00 00 26 00 00 00 00 00 00 00 00 00 00 00 a4 81 b6 e7 02 00 67 72 61 70 68 76 69 7a 5f 6c ....&.................graphviz_l
33080 61 79 6f 75 74 2f 70 6c 6f 74 5f 6c 61 6e 6c 5f 72 6f 75 74 65 73 2e 69 70 79 6e 62 50 4b 01 02 ayout/plot_lanl_routes.ipynbPK..
330a0 14 03 14 00 00 00 00 00 25 0f 5a 56 66 ee 3d 97 26 1c 00 00 26 1c 00 00 1d 00 00 00 00 00 00 00 ........%.ZVf.=.&...&...........
330c0 00 00 00 00 a4 81 13 f2 02 00 73 75 62 63 6c 61 73 73 2f 70 6c 6f 74 5f 61 6e 74 69 67 72 61 70 ..........subclass/plot_antigrap
330e0 68 2e 69 70 79 6e 62 50 4b 01 02 14 03 14 00 00 00 00 00 25 0f 5a 56 e9 ff 03 b9 2c 0d 00 00 2c h.ipynbPK..........%.ZV....,...,
33100 0d 00 00 1e 00 00 00 00 00 00 00 00 00 00 00 a4 81 74 0e 03 00 73 75 62 63 6c 61 73 73 2f 70 6c .................t...subclass/pl
33120 6f 74 5f 70 72 69 6e 74 67 72 61 70 68 2e 69 70 79 6e 62 50 4b 05 06 00 00 00 00 46 00 46 00 57 ot_printgraph.ipynbPK......F.F.W
33140 15 00 00 dc 1b 03 00 00 00 .........