Jan Potocki 5 лет назад
Родитель
Сommit
26438c8e3b
1 измененных файлов: 12 добавлений и 20 удалений
  1. 12
    20
      pea2plus.cpp

+ 12
- 20
pea2plus.cpp Просмотреть файл

@@ -17,7 +17,7 @@ const int measureIterations = 10;
17 17
 // liczba automatycznych pomiarow
18 18
 const int measureNumber = 4;
19 19
 // Czas zatrzymania algorytmu tabu search w kazdym z automatycznych pomiarow
20
-const int measureTabuStop[4] = {1, 5, 10, 15};
20
+const int measureTabuStop[4] = {30, 60, 120, 240};
21 21
 // Maksymalna odleglosc miast przy automatycznym generowaniu
22 22
 const int measureSalesmanDistance = 400;
23 23
 
@@ -503,8 +503,8 @@ int main(int argc, char *argv[])
503 503
             break;
504 504
             case 7:
505 505
             {
506
-                // PEA 2
507
-                // Jan Potocki 2017
506
+                // PEA 2 Plus
507
+                // Jan Potocki 2019
508 508
                 if(graph != NULL)
509 509
                 {
510 510
                     unsigned effectiveTabuLength;
@@ -519,12 +519,8 @@ int main(int argc, char *argv[])
519 519
                         effectiveTabuLength = tabuLength;
520 520
                     }
521 521
 
522
-                    double measureResults[measureNumber], measureResultsDiv[measureNumber];
523
-                    for(int i = 0; i < measureNumber; i++)
524
-                    {
525
-                        measureResults[i] = 0;
526
-                        measureResultsDiv[i] = 0;
527
-                    }
522
+                    int measureResult = -1;
523
+                    int measureResultDiv = -1;
528 524
 
529 525
                     cout << "Pomiary dla problemu komiwojazera, tabu search" << tabuLength << endl;
530 526
 
@@ -552,7 +548,9 @@ int main(int argc, char *argv[])
552 548
                             routeLength = 0;
553 549
                             for(int j = 1; j < route.size(); j++)
554 550
                                 routeLength += graph->getWeight(route.at(j - 1), route.at(j));
555
-                            measureResults[i] += routeLength;
551
+
552
+                            if(measureResult = -1 || measureResult > routeLength)
553
+                                measureResult = routeLength;
556 554
 
557 555
                             // Z dywersyfikacja
558 556
                             cout << "Pomiar " << measureTabuStop[i] << " [s] (" << krok + 1 << " z " << measureIterations << " z dywersyfikacja)..." << endl;
@@ -562,16 +560,10 @@ int main(int argc, char *argv[])
562 560
                             routeLength = 0;
563 561
                             for(int j = 1; j < route.size(); j++)
564 562
                                 routeLength += graph->getWeight(route.at(j - 1), route.at(j));
565
-                            measureResultsDiv[i] += routeLength;
566
-                        }
567
-                    }
568
-
569
-                    cout << "Opracowywanie wynikow..." << endl;
570 563
 
571
-                    for(int i = 0; i < measureNumber; i++)
572
-                    {
573
-                        measureResults[i] = nearbyint(measureResults[i] / measureIterations);
574
-                        measureResultsDiv[i] = nearbyint(measureResultsDiv[i] / measureIterations);
564
+                            if(measureResultDiv = -1 || measureResultDiv > routeLength)
565
+                                measureResultDiv = routeLength;
566
+                        }
575 567
                     }
576 568
 
577 569
                     cout << "Zapis wynikow..." << endl;
@@ -581,7 +573,7 @@ int main(int argc, char *argv[])
581 573
                     salesmanToFile << "czas - bez dywersyfikacji - z dywersyfikacja" << endl;
582 574
                     for(int i = 0; i < measureNumber; i++)
583 575
                     {
584
-                        salesmanToFile << measureTabuStop[i] << " [s]: " << (int)measureResults[i] << ' ' << (int)measureResultsDiv[i] << endl;
576
+                        salesmanToFile << measureTabuStop[i] << " [s]: " << measureResult << ' ' << measureResultsDiv << endl;
585 577
                     }
586 578
                     salesmanToFile.close();
587 579
 

Загрузка…
Отмена
Сохранить