Skip to content
Snippets Groups Projects
Commit 175fd672 authored by Cseh Viktor's avatar Cseh Viktor
Browse files

dijkstra alg. works /w recursion

parent 8f2ffde6
Branches
No related tags found
No related merge requests found
No preview for this file type
input4 0 → 100644
160
1810
2907
1805 59
1783 68
7 1781
1808 53
1796 19
1808 1
1788 1
47 1784
1782 65
5 1804
1785 53
8 1787
1791 61
20 1795
65 1781
1808 14
50 1808
1792 36
1797 32
1790 37
1792 35
38 1801
1787 63
1805 79
1791 71
10 1786
9 1780
1790 39
1788 25
1799 33
1794 75
1785 77
4 1794
1790 2
21 1792
1801 49
51 1795
1805 56
35 1790
24 1804
22 1787
32 1802
7 1794
58 1786
75 1804
1803 29
70 1809
1798 12
48 1788
66 1801
2 1780
6 1809
1799 14
1784 67
1807 56
9 1808
17 1794
1793 19
35 1798
1796 41
10 1788
1807 15
1809 46
25 1792
35 1787
61 1798
1782 71
1782 68
1 1791
1805 2
1801 14
1789 48
1780 16
1805 10
1801 52
1784 63
1792 67
46 1808
4 1809
41 1802
1803 79
1798 1
63 1799
49 1789
1808 48
40 1786
1782 13
5 1793
1787 78
29 1781
55 1796
1802 39
36 1803
1792 38
27 1788
39 1780
79 1801
36 1791
1781 19
21 1806
1784 31
66 1783
1807 29
26 1786
1799 17
12 1799
1784 0
1788 53
27 1801
79 1786
1784 57
35 1780
6 1797
1793 49
64 1786
41 1803
1786 8
4 1785
75 1796
17 1785
1799 58
1790 24
25 1809
78 1804
1803 58
1781 16
1799 32
45 1780
1784 38
1783 23
64 1792
1796 2
1790 59
32 1794
49 1797
1789 15
1788 31
1800 71
1809 64
1785 12
67 1807
49 1799
43 1782
11 1805
1789 8
77 1796
1791 78
1801 42
49 1800
1783 24
1796 65
0 1807
17 1786
1788 57
1806 46
47 1805
1795 69
79 1784
1795 27
3 1780
46 -56
-11 -58
-41 81
85 96
-24 98
23 -72
77 -11
-78 -100
-82 67
-91 -14
-24 88
47 72
-14 -90
-19 -53
66 -26
-6 -46
22 -34
85 97
-33 -38
-16 -84
3 91
-91 66
1 37
58 -61
-7 58
37 -48
53 -70
23 0
-5 39
-21 58
37 -96
16 96
-42 89
52 90
-39 -82
-90 -55
-98 -93
-47 22
91 57
0 -100
55 6
79 -90
-20 -42
88 6
94 -42
-17 11
31 12
-64 -18
83 46
33 4
-26 -51
-64 -66
-51 23
47 -7
-15 74
26 75
-14 -61
-69 -7
-58 -41
55 -100
-86 -55
87 -94
-9 -3
-4 88
60 -37
73 -49
53 -61
-95 25
-12 18
-17 67
-64 -89
-76 59
90 98
-29 -43
87 -26
-68 -64
-92 74
-81 -27
-53 -72
-13 58
-108 485
154 344
61 503
-177 469
152 269
56 229
-28 485
-27 313
137 409
145 248
-121 319
71 407
-138 410
101 588
-62 592
-193 410
-100 595
92 295
-140 239
-134 208
-23 366
-64 455
95 508
93 575
-97 255
96 497
-199 504
11 568
51 301
-198 325
180 439
131 454
25 505
-42 333
-95 309
19 479
39 515
-172 313
11 549
-26 339
29 429
96 457
-43 361
-154 468
-103 280
-174 338
71 509
140 444
-110 535
34 590
73 383
-158 240
7 333
8 549
113 590
-108 365
117 280
2 203
-23 458
105 417
119 475
200 295
51 572
41 297
60 461
-177 366
-57 584
-63 342
134 570
3 590
61 553
-21 271
-107 432
-92 244
155 575
-84 399
-164 259
-158 518
3 208
87 296
-108 360
155 245
37 270
114 310
-154 444
-47 238
24 385
-54 285
-102 249
169 512
105 351
125 339
-175 496
109 559
120 379
-196 543
146 587
67 491
-38 369
-57 310
144 422
4 226
-26 266
-7 388
-71 313
138 521
157 544
-110 404
119 353
85 564
-188 241
-130 314
1 243
-7 406
-189 334
191 437
-144 445
168 246
-3 210
165 566
-116 340
98 380
4 424
145 364
-116 586
-1 569
-12 395
-87 575
-182 583
-56 405
-31 369
145 444
-74 384
-22 544
-194 271
-14 359
79 337
17 449
66 481
-168 379
66 569
-33 328
-88 515
-175 278
-18 532
-65 415
-172 322
-157 560
165 388
-111 440
-18 462
197 350
-132 257
138 481
-169 441
109 322
-48 261
20 230
61 313
111 458
-34 245
-111 265
-12 364
46 290
-66 378
119 516
132 570
-57 587
-101 217
61 300
-10 251
160 491
-116 420
13 240
195 481
40 432
95 585
-24 459
138 346
137 320
81 244
-121 523
-116 255
116 215
194 272
136 228
60 303
-143 489
189 522
-23 223
31 409
-75 352
31 284
-35 586
-88 358
116 591
110 547
-95 322
-53 265
-33 504
-119 371
-161 512
128 452
-122 286
27 305
10 217
141 204
-19 339
83 219
107 278
52 545
-91 388
136 466
-111 599
185 581
52 234
141 246
137 304
-67 324
-100 491
30 350
-149 449
-36 374
51 433
152 331
101 477
106 540
95 347
198 335
-81 567
-78 236
-3 303
-118 311
-150 314
-86 419
5 315
87 496
-173 324
-83 556
-107 220
-111 321
61 251
194 568
191 218
-95 333
-191 374
-40 357
-38 375
-85 367
119 533
160 599
-128 271
114 534
120 403
-183 423
139 359
-17 564
-156 456
-118 423
10 474
101 410
-63 230
195 348
-35 562
-131 583
198 585
135 462
61 206
-170 208
-79 559
6 470
-168 448
-90 580
76 599
-84 371
-78 268
196 408
119 441
-79 280
-38 217
-43 314
-57 370
11 210
-22 535
131 301
-145 316
-31 436
35 515
43 472
-50 566
168 521
32 432
-10 556
-91 261
-167 448
-182 396
196 539
-142 266
20 586
-114 295
-81 383
-116 362
-128 242
-108 291
-49 287
-98 268
-9 465
-136 486
58 379
-89 351
158 309
19 219
-26 548
127 451
196 394
-178 380
-61 569
-144 456
28 281
60 565
-112 321
-80 286
-192 378
-52 509
58 486
-168 327
-20 244
33 252
-146 501
148 328
74 265
30 480
132 570
-106 251
-21 311
-117 234
88 532
33 334
-183 304
-139 444
-185 318
-122 216
-137 287
-118 294
174 533
-198 586
-87 437
-79 265
85 263
-197 437
28 228
113 307
-142 348
178 269
104 236
129 397
141 247
-117 223
-173 552
99 337
-151 385
-90 410
166 323
13 493
98 375
-89 295
-71 352
193 216
-99 320
-173 272
130 291
-152 546
-191 546
200 372
-25 270
-60 342
112 573
-195 336
-85 438
-79 533
142 465
-65 376
-20 589
129 440
168 581
155 508
-76 375
79 325
123 358
-186 229
192 337
-9 287
21 484
-48 333
-89 334
183 528
-189 510
187 231
-1 282
199 299
33 485
71 489
34 596
-148 478
-111 215
197 600
-113 237
169 594
-53 358
130 265
124 338
-142 488
29 380
101 235
-35 331
-188 423
-127 419
128 223
-153 370
-82 494
189 317
22 544
-93 597
-193 318
154 270
135 276
-160 235
-164 404
-153 534
-166 250
-117 556
108 261
-151 238
168 234
-199 275
-36 296
-111 419
-140 320
37 339
-46 273
12 494
-46 322
185 305
185 251
136 226
-144 505
-15 369
-137 464
129 224
170 436
76 214
-16 301
107 576
-152 426
-67 509
170 256
179 441
101 468
94 446
10 352
123 423
169 342
97 549
-191 233
-165 230
-194 599
-83 363
-38 244
-92 307
68 310
-158 568
-181 548
-72 252
43 318
-25 358
-182 402
164 406
177 204
27 326
-101 401
172 531
-54 229
-18 440
115 445
62 461
143 306
-113 326
149 443
50 493
-168 386
-125 567
161 591
28 339
-12 289
-102 421
130 447
-36 458
194 301
-130 406
124 232
-57 218
-93 351
197 373
-171 333
-191 521
153 248
147 551
-27 210
129 395
-158 353
163 212
118 244
24 228
77 260
-27 220
-44 590
-74 228
-163 497
114 480
17 317
17 220
71 488
46 522
137 543
24 500
106 477
-151 286
143 303
-29 495
-143 336
-100 581
61 470
37 368
-23 270
64 509
-128 326
-3 322
50 555
-126 299
-162 587
104 580
-2 282
100 305
103 360
-165 444
150 559
49 594
-200 406
18 283
-128 310
9 438
-158 311
-93 569
65 328
-10 582
-43 265
-192 478
11 203
-81 480
-70 405
-152 537
150 303
176 297
-109 599
7 529
88 443
-49 525
-70 216
50 383
-89 454
51 535
-83 320
151 600
191 510
107 316
-155 209
-123 230
-111 380
-154 537
-165 413
186 474
160 274
-67 594
-129 420
-98 546
-107 348
-32 599
-181 375
-50 256
-47 428
-133 266
6 271
51 514
174 386
-82 294
-34 332
145 477
190 436
-98 212
186 593
-122 258
36 500
-103 237
1 261
-130 321
147 339
127 446
20 321
-162 354
-156 393
101 273
-32 227
21 430
194 369
-131 375
-40 315
35 593
-81 302
-65 567
-89 584
43 428
-160 254
-109 555
-63 248
28 290
5 588
-193 515
-133 280
-14 584
-103 521
-118 343
116 282
-85 386
-183 265
159 554
-190 419
127 446
145 343
190 232
126 510
58 370
-124 374
7 455
-178 554
-148 379
-106 367
12 344
-174 471
138 491
-83 395
118 227
49 528
127 507
112 425
-153 280
-185 419
120 391
-83 481
-112 548
-99 406
131 249
121 382
149 265
-185 293
52 489
-128 298
159 409
-14 42
\ No newline at end of file
...@@ -27,38 +27,44 @@ def dijkstra(a, b): ...@@ -27,38 +27,44 @@ def dijkstra(a, b):
if(a == b): # Ekkor elertuk a keresett pontot if(a == b): # Ekkor elertuk a keresett pontot
calculated_lengths.append(distance[b]) calculated_lengths.append(distance[b])
#print("*** debug: kiszamoltuk a legrovidebb utat" , file=sys.stderr)
return return
for i in range(0, len(route_between_points), 2): # iteralni a route_between_points-on, hogy az == e a meghivottal es kiszamolni a szomszedokhoz tartozo utat, ami esetleg legrovidebb lehet for i in range(0, len(route_between_points), 2): # iteralni a route_between_points-on, hogy az == e a meghivottal es kiszamolni a szomszedokhoz tartozo utat, ami esetleg legrovidebb lehet
if(route_between_points[i] == a ): if(route_between_points[i] == a ):
length = calc_route_length(a, route_between_points[i+1]) length = calc_route_length(a, route_between_points[i+1])
if(distance[route_between_points[i+1]] == math.inf): if(distance[route_between_points[i+1]] == None):
print("*** debug: " + str(distance[a]), file=sys.stderr) distance[route_between_points[i+1]] = length + distance[a]
distance[route_between_points[i+1]] == length + distance[a] #print("*** debug: distance = " + str(distance[route_between_points[i+1]]), file=sys.stderr)
continue continue
if(length < distance[a] + distance[route_between_points[i+1]]): # ha kisebb az eddig tudott utvonalnal a most talalt, akkor cserelje ki arra if(length + distance[a] < distance[route_between_points[i+1]]): # ha kisebb az eddig tudott utvonalnal a most talalt, akkor cserelje ki arra
distance[route_between_points[i+1]] = length + distance[a] distance[route_between_points[i+1]] = length + distance[a]
if(route_between_points[i+1] == a ): if(route_between_points[i+1] == a ):
length = calc_route_length(a, route_between_points[i]) length = calc_route_length(a, route_between_points[i])
if(distance[route_between_points[i]] == math.inf): if(distance[route_between_points[i]] == None):
distance[route_between_points[i]] == length + distance[a] distance[route_between_points[i]] = length + distance[a]
continue continue
if( length + distance[a] < distance[route_between_points[i]]): if( length + distance[a] < distance[route_between_points[i]]):
distance[route_between_points[i]] == length + distance[a] distance[route_between_points[i]] = length + distance[a]
minimum_distance = math.inf minimum_distance = math.inf
corresponding_point = None corresponding_point = None
cntr = 0 cntr = 0
for i in range(len(seen)): i = 0
if(seen[i] == 0 and distance[i] != math.inf): #Meghivni ra a dijkstra algoritmust rekurzivan, ha mar szamoltuk, de ne jartunk meg benne #print("*** debug: " + str(len(seen)), file=sys.stderr)
for i in range(0, len(seen), 1):
#print("*** debug: " + str(distance[i]), file=sys.stderr)
#print("*** debug: " + str(seen[i]), file=sys.stderr)
#print("*** /debug ******* ", file=sys.stderr)
if(seen[i] == 0 and (distance[i] != None)): #Meghivni ra a dijkstra algoritmust rekurzivan, ha mar szamoltuk, de ne jartunk meg benne
cntr += 1 cntr += 1
print("*** debug: talalt pontot amiben meg nem volt", file=sys.stderr) #print("*** debug: talalt pontot amiben meg nem volt", file=sys.stderr)
if(distance[i] < minimum_distance): # Es legkisebb a tavolsaga eddig if(distance[i] < minimum_distance): # Es legkisebb a tavolsaga eddig
minimum_distance = distance[i] minimum_distance = distance[i]
corresponding_point = i corresponding_point = i
...@@ -79,19 +85,19 @@ def route_search(): ...@@ -79,19 +85,19 @@ def route_search():
if(i == route_to_calc[x]): if(i == route_to_calc[x]):
distance.append(0) distance.append(0)
else: else:
distance.append(math.inf) distance.append(None)
for i in range(asd): for i in range(asd):
seen.append(0) seen.append(0)
#print("**** debug: " + str(distance), file=sys.stderr)
#print("**** debug: " + str(seen), file=sys.stderr)
dijkstra(route_to_calc[x], route_to_calc[x+1]) dijkstra(route_to_calc[x], route_to_calc[x+1])
distance.clear() distance.clear()
seen.clear() seen.clear()
#print("**** debug ***", file=sys.stderr)
#print( route , file=sys.stderr)
#print("**** \debug ***", file=sys.stderr)
def calc_route_length(a, b): def calc_route_length(a, b):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment