|
24 | 24 | "language": "python", |
25 | 25 | "metadata": {}, |
26 | 26 | "outputs": [], |
27 | | - "prompt_number": 29 |
| 27 | + "prompt_number": 6 |
28 | 28 | }, |
29 | 29 | { |
30 | 30 | "cell_type": "code", |
|
44 | 44 | "output_type": "stream", |
45 | 45 | "stream": "stdout", |
46 | 46 | "text": [ |
47 | | - "WED took 0.212394952774 seconds to generate\n" |
| 47 | + "WED took 0.215730905533 seconds to generate\n" |
48 | 48 | ] |
49 | 49 | } |
50 | 50 | ], |
51 | | - "prompt_number": 30 |
| 51 | + "prompt_number": 7 |
52 | 52 | }, |
53 | 53 | { |
54 | 54 | "cell_type": "markdown", |
|
67 | 67 | "language": "python", |
68 | 68 | "metadata": {}, |
69 | 69 | "outputs": [], |
70 | | - "prompt_number": 60 |
| 70 | + "prompt_number": 8 |
71 | 71 | }, |
72 | 72 | { |
73 | 73 | "cell_type": "markdown", |
|
85 | 85 | "language": "python", |
86 | 86 | "metadata": {}, |
87 | 87 | "outputs": [], |
88 | | - "prompt_number": 32 |
| 88 | + "prompt_number": 33 |
89 | 89 | }, |
90 | 90 | { |
91 | 91 | "cell_type": "markdown", |
|
99 | 99 | "collapsed": false, |
100 | 100 | "input": [ |
101 | 101 | "#Node to check\n", |
102 | | - "v0 = 9\n", |
| 102 | + "v0 = 31\n", |
103 | 103 | "\n", |
104 | 104 | "#Helper to get the adjacent nodes by index and the length to them.\n", |
105 | 105 | "def get_neighbor_distances(v0, l):\n", |
|
120 | 120 | "#3. Generate a set of all unvisited nodes\n", |
121 | 121 | "a = set()\n", |
122 | 122 | "a.add(v0)\n", |
123 | | - "counter = 0\n", |
124 | 123 | "while len(a) > 0:\n", |
125 | 124 | " #Get node with the lowest value from distance\n", |
126 | 125 | " v = float('inf')\n", |
127 | 126 | " for node in a:\n", |
128 | 127 | " if distance[node] < v:\n", |
129 | | - " v = node\n", |
| 128 | + " v = distance[node]\n", |
| 129 | + " v0 = node\n", |
130 | 130 | " #Remove that node from the set\n", |
131 | | - " a.remove(node)\n", |
| 131 | + " a.remove(v0)\n", |
132 | 132 | " #4. Get the neighbors to the current node\n", |
133 | | - " neighbors = get_neighbor_distances(node, l)\n", |
| 133 | + " neighbors = get_neighbor_distances(v0, l)\n", |
134 | 134 | " for v1, length in neighbors.iteritems():\n", |
135 | 135 | " if distance[v1] > distance[v] + length:\n", |
136 | 136 | " distance[v1] = distance[v] + length\n", |
137 | 137 | " pred[v1] = v\n", |
138 | 138 | " a.add(v1)\n", |
139 | 139 | "#We should step over pred recursively to find our way from some node back to the start node\n", |
140 | 140 | "print \"Preceeding node:\", pred\n", |
141 | | - "print\n", |
142 | | - "print \"Distance: \",distance" |
| 141 | + "print pred[208], pred[32], pred[31]\n", |
| 142 | + "#print \"Distance: \",distance" |
143 | 143 | ], |
144 | 144 | "language": "python", |
145 | 145 | "metadata": {}, |
|
148 | 148 | "output_type": "stream", |
149 | 149 | "stream": "stdout", |
150 | 150 | "text": [ |
151 | | - "Preceeding node: [1, 2, 3, 64, 64, 9, 8, 8, 9, None, 64, 64, 32, 1, 2, 1, 8, 8, 2, 1, 2, 128, 1, 2, 8, 8, 8, 8, 8, 8, 8, 8, 8, 2, 1, 2, 2, 1, 64, 64, 64, 8, 32, 32, 32, 32, 32, 32, 8, 1, 2, 1, 2, 64, 64, 64, 1, 1, 2, 128, 2, 128, 2, 128, 32, 32, 64, 128, 128, 2, 128, 103, 8, 103, 8, 128, 2, 128, 128, 128, 2, 128, 128, 128, 128, 128, 128, 128, 128, 2, 128, 128, 2, 128, 128, 128, 128, 128, 128, 128, 2, 64, 64, 8, 64, 64, 103, 1, 1, 1, 1, 1, 1, 128, 128, 3, 3, 3, 128, 3, 3, 64, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 64, 64, 3, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 32, 32, 2, 2, 1, 2, 2, 2, 2, 2, 128, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 128, 128, 128, 128, 128, 2, 2, 2, 2, 2, 2, 2, 32, 32, 32, 32, 128, 8, 8, 8, 8, 128, 128, 128, 128, 1, 128, 128, 128, 128, 32, 128, 103, 32, 32, 32, 8, 129, 3, 2, 3, 2]\n", |
152 | | - "\n", |
153 | | - "Distance: [2962.4305600349107, 2302.4305600348584, 1642.4305600348905, 1393.4379907624011, 1364.5261029898309, 132.6638703405214, 297.0601361460957, 297.0601361460957, 151.43927649639443, 0, 1335.4877216179686, 1364.1455148137672, 727.9629941402452, 2467.5016266455077, 2044.1178525035589, 2438.209126637785, 332.0761242235684, 623.0863737892674, 2044.1476872269693, 2521.212346025392, 2044.2366532136, 2279.2424566533477, 2408.9168060972106, 2009.3185869737667, 477.4830095458524, 477.4830095458524, 372.71237854048854, 331.9076219662851, 331.9076219662851, 366.8923451898577, 227.11957421203874, 227.11957421203874, 308.6972297321779, 1915.9114223507586, 2558.5787039692054, 1847.4912151250585, 1842.6058091072064, 2593.54907334113, 1120.1363219693608, 1108.4145064692932, 1108.4145064692932, 518.2297150160348, 424.9280561789013, 424.9280561789013, 459.12276237485787, 459.10170321217277, 459.10170321217277, 444.45580346419047, 289.00770716837354, 2405.0693567551575, 1818.200050140633, 2405.0693567551575, 1744.0730965652742, 1628.6972297322336, 1405.3138177076266, 1335.4877216179686, 2434.7044809620797, 2434.7044809620797, 1979.2688322905015, 2386.178989164521, 1739.2963226277386, 2267.725760750536, 2020.8633281718483, 2273.5462072178525, 968.6972297322125, 459.12276237485787, 1369.0800846008783, 2525.89605068759, 2319.977419507593, 1779.9844294804086, 2296.7526553799134, 520.430440500026, 372.87390785429784, 494.0560036380709, 361.438725484589, 2316.3203155722986, 2302.430560034908, 2314.2902977338563, 2320.213937140521, 2325.9314823010463, 1689.003043070628, 2331.012692859588, 2263.533126507283, 2273.296474600168, 2273.296474600168, 2380.693344338059, 2380.693344338059, 2306.494379386686, 2263.533126507283, 1946.1342571685332, 2327.103200901591, 2327.103200901591, 1933.5086848816754, 2269.747824417127, 2386.178989164521, 2269.747824417127, 2279.2424566533477, 2426.9300543244062, 2426.9300543244062, 2514.784837565181, 1730.300797718009, 1398.3244563103328, 1242.0712428873996, 379.7884612670034, 1120.0292709279884, 1242.1331900651119, 612.6509266567974, 2445.804706729294, 2546.6245836455587, 2445.804706729294, 2517.8280248559677, 2517.8280248559677, 2523.649599382663, 2314.882576693162, 2314.882576693162, 1524.3555499896675, 1524.3555499896675, 1804.445421489936, 2273.9665485172363, 1769.4128189962805, 1769.4128189962805, 1085.1638881836343, 2413.8573374133107, 1786.041994435245, 2445.8046939317283, 2452.916880577887, 1785.8639556519433, 1773.3671169999072, 1773.3671169999072, 1757.451036554023, 1762.5339617321176, 2302.430560034845, 1788.7879487684052, 1675.1950638819628, 1747.2184560652952, 1828.7201523826786, 1892.7571900784783, 1778.2191955982191, 1778.2191955982191, 2061.582441071443, 1792.8962610707408, 1762.51857553863, 1774.176772164662, 1756.943254169299, 1750.8754351834186, 1791.6855734324572, 1797.84153174548, 1797.84153174548, 2008.6421219737954, 1159.1032241161201, 1090.6201632524496, 1812.618362256435, 1921.2235017710088, 1979.372059707417, 1886.624228834282, 1886.624228834282, 1927.7282557642964, 1984.2540333522184, 2037.9544646719573, 1979.372059707417, 2546.6245836455587, 2668.6636894688454, 2570.266366947142, 2571.0305235497376, 2546.6242869570056, 2546.6242869570056, 704.5631441226519, 417.1430267446667, 2302.430560034886, 1774.0397009862063, 2521.212346025392, 2302.430560034929, 1762.5339617321176, 1797.727310995676, 1797.727310995676, 2302.4305600349167, 2595.8671678532965, 1747.2184560652952, 1774.176772164662, 1791.6855734324572, 1804.5297205673378, 1711.3905718903723, 1814.0516760602395, 1814.0516760602395, 1668.6283156156167, 1668.6283156156167, 1729.7539804175954, 1711.3905718903723, 2273.4680699601963, 2467.7211547814472, 2566.5860940226603, 2438.617687724465, 2427.1160685796494, 1774.0397009862063, 1828.7201523826786, 1756.943254169299, 1675.1950638819628, 1762.51857553863, 1892.7571900784783, 1750.8754351834186, 420.2531958462899, 420.2531958462899, 968.6972297321635, 669.6337684482932, 2392.0545147864805, 311.5671944056769, 565.0294861530424, 488.277517536831, 371.1163817764109, 2267.725760750536, 2314.2902977338563, 2273.655571442955, 2320.213937140521, 2445.8046939317283, 2267.6470600946714, 2302.573910461448, 2273.5462072178525, 2325.9314823010463, 428.84721177072373, 2296.7526553799134, 1039.7884612669834, 434.60763495513237, 446.265660404157, 968.6972297321258, 259.8852415604757, 1990.3131887781096, 1509.8690758932107, 2302.430560034936, 1571.741981265535, 1757.451036554023]\n" |
| 151 | + "31\n", |
| 152 | + "Preceeding node: [None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None]\n", |
| 153 | + "None None None\n" |
154 | 154 | ] |
155 | 155 | } |
156 | 156 | ], |
157 | | - "prompt_number": 97 |
| 157 | + "prompt_number": 41 |
158 | 158 | }, |
159 | 159 | { |
160 | 160 | "cell_type": "code", |
161 | 161 | "collapsed": false, |
162 | | - "input": [], |
| 162 | + "input": [ |
| 163 | + "start = 9\n", |
| 164 | + "end = 72\n", |
| 165 | + "print pred[71]\n", |
| 166 | + "path = [end]\n", |
| 167 | + "previous = pred[end]\n", |
| 168 | + "print pred[end-1], previous\n", |
| 169 | + "counter = 0\n", |
| 170 | + "while previous != start:\n", |
| 171 | + " path.append(previous)\n", |
| 172 | + " end = previous\n", |
| 173 | + " previous = pred[end]\n", |
| 174 | + " counter += 1\n", |
| 175 | + " if counter > 50:\n", |
| 176 | + " break\n", |
| 177 | + "print path" |
| 178 | + ], |
163 | 179 | "language": "python", |
164 | 180 | "metadata": {}, |
165 | | - "outputs": [], |
166 | | - "prompt_number": 96 |
| 181 | + "outputs": [ |
| 182 | + { |
| 183 | + "output_type": "stream", |
| 184 | + "stream": "stdout", |
| 185 | + "text": [ |
| 186 | + "8\n", |
| 187 | + "8 103\n", |
| 188 | + "[72, 103, 64, 32, 2, 64, 32, 2, 64, 32, 2, 64, 32, 2, 64, 32, 2, 64, 32, 2, 64, 32, 2, 64, 32, 2, 64, 32, 2, 64, 32, 2, 64, 32, 2, 64, 32, 2, 64, 32, 2, 64, 32, 2, 64, 32, 2, 64, 32, 2, 64, 32]\n" |
| 189 | + ] |
| 190 | + } |
| 191 | + ], |
| 192 | + "prompt_number": 24 |
167 | 193 | }, |
168 | 194 | { |
169 | 195 | "cell_type": "code", |
|
0 commit comments