From e336a1d4fc0ee9616a3d94c4d1370643ae2d096f Mon Sep 17 00:00:00 2001 From: localhorst Date: Wed, 8 May 2019 00:42:24 +0200 Subject: [PATCH] fixed best path algo --- src/routing4SITA | Bin 21336 -> 21336 bytes src/routing4SITA.c | 24 +++++++++++++++++------- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/routing4SITA b/src/routing4SITA index d80bc30d891f802e2473c68a22787ff169b485b9..1ae53e7265fab0edecf2e6a824a0a068c7bb897a 100755 GIT binary patch delta 2057 zcma)7drVVT7(eIIN=wyJXvO*nrwUTtpkpKgzPO5Y7bZ=8FcaepjMiY{3P>4?ug);s z*ahZx%%*e5<`QQ7M`AVE+#>3XWx7POkPWwxz1V`$ZD=yl4ZZu$IoHelZ#TL9?(gwE z?l~vDgFSe#2lraAb;yeNHAEfQXRVS1s-k7M&oN8{8YVJ-7^ZINGpAy6g|7TKdgtop zuFjnY4rsdzN`~Vj((x(QYi=1SiSzYtdN_4R$}`g)js|>`-g0=BD5`%{QDv_xJKHYx zIiTPttmH_}Lrt5|OrQ}%vw@cIk7G*GW-Rg<^bZd-tp(_bG-t7Ye9xB#Mo^{Du=mnv znlDyv;FlmBti7t73clwIezVTQlol1W+_TtQTQNct))x(H!GzVzteU;`2)qopvgWOZ z)2chEBYoorrYmaDBBJb7)C$05UbVrgrYJSvw5{H6x^Yr3#1|`7?_PYt-g)T19lDJU zYsaZAeID&iUljO1_4%sba7bcW{;smA^<0y)?{g?Q()Ev~3CkbU>D*0#$aSFegXf^6jvwxuTg{UD&5&(aiERwa8Vm0>w552|S$_ELayxRflwjK?GsmnI2m%*(T216bA#K#J1pZNcfFU*WpfBJ|S? zAs95qdLQGONuT6BmZZ8qVnOtNo$JIda(4(_6*}u(%k`|8LSM@eJhCcgKbIbrE(8Rn zi&zk)ur zdj79U%Pq@D&E5F-)5DYACXVd->S%2!Tpz7nM6$Q0pp+Hi#wZB_$uJ_hxyvBZY*G{R za6=^AOkQA~#=31y(XDk6vZbym5)xvdjzq#QM@ghE6mCSJ>S%TDvij}eP`D=C*jTr{ zQS?9v&rDh@!;HyrFZol`+9AFVaTCPIsHUBQc=ooYU4wY(FHIYVIJNzrrp0L4h7g4vzhmX-RPfpoM$PcpfwR~#oKB;sHJL+%-P!-(2K}`!gq>r?UHM=&2fQ#>dBO9$LM#SRpwX5G!4h|=Nz`t(Od-&#EbJ15+0y9-)F6d zFA}?|>2fK92J;CXqz(D~5`3Z-Km8NFMrRke87L|UOI>c-U67r5T2FD}N@+K8;`P!V z_+2B#pp2`_9si}^1glOLHnYUZgmt{qCkJhvxSw3Lc@89OP~#(7WohdzSx$yi z^!bW6B8HbEqTmyoQjvY%iJ=Mo$oa%3&1(Yha5#lEn_v%yQv(+?jKE&3*%!zgS^l=5 zhELp-Ww1)3Umw@7>UA&3=>oz5_q-JK?;$9xu2&%>$q2uXn#oC zb(geNk#tP*GD+>|1_T|eXa1DMGN(A?l7PnqJ+>Za~nxnFiLoR?+!P zmK$Jti0QPqN6`y6GCiFlcvLoW%c~qqExil~O0UqsN(X;b419#yFEYadGtk;+6uppV zx&-LS&-Z8MhY;y-J92zQ2sK5~;ufzz})sqCeR8C73l zSA3x=X)xR2>rWSSsL3W#PETeZ1?dBtf^>?kH6PAt^Xg)s1~09 diff --git a/src/routing4SITA.c b/src/routing4SITA.c index 41543b7..2685b65 100644 --- a/src/routing4SITA.c +++ b/src/routing4SITA.c @@ -28,10 +28,14 @@ int main() { pthread_join(startThread, NULL); - printf("\nBest Path: "); - for(int i = 0; i < data->bestpath->depth; i++){ - printf("%i --> ", data->bestpath->predecessorsBestPath[i]); + printf("pathdepth: %i\n", data->bestpath->depth); + + + printf("\nBest Path: %i", data->bestpath->predecessorsBestPath[0]); + + for(int i = 1; i <= data->bestpath->depth; i++){ + printf(" --> %i", data->bestpath->predecessorsBestPath[i]); } printf("\nWith cost of: %i\n", data->bestpath->lowestCost); @@ -57,22 +61,24 @@ void *Search(void* arguments) { if(data->bestpath->lowestCost == -1) { //first solution found - printf("first solution found\n"); + printf("first solution found! %i\n", data->depth); data->bestpath->lowestCost = data->cost; data->bestpath->depth = data->depth; for(int j = 0; j < data->depth; j++) { data->bestpath->predecessorsBestPath[j] = data->predecessors[j]; } + data->bestpath->predecessorsBestPath[(data->bestpath->depth)] = data->node->id; } else { if(data->bestpath->lowestCost > data->cost) { //new best solution found - printf("new best solution found\n"); + printf("new best solution found! %i\n", data->depth); data->bestpath->lowestCost = data->cost; data->bestpath->depth = data->depth; for(int j = 0; j < data->depth; j++) { data->bestpath->predecessorsBestPath[j] = data->predecessors[j]; } + data->bestpath->predecessorsBestPath[(data->bestpath->depth)] = data->node->id; } } @@ -95,12 +101,16 @@ void *Search(void* arguments) { nextdata->node = (data->node->nodesnext[i]); nextdata->bestpath = data->bestpath; nextdata->cost = data->node->nodescost[i] + data->cost; - nextdata->depth++; + nextdata->depth = data->depth + 1; for(int j = 0; j < data->depth; j++) { nextdata->predecessors[j] = data->predecessors[j]; + + printf("data->predecessors: %i\n", data->predecessors[j]); + } - nextdata->predecessors[(nextdata->depth)+1] = data->node->id; + + nextdata->predecessors[((nextdata->depth) - 1)] = data->node->id; pthread_create(&threads[i], NULL, Search, nextdata); }