TravelingSalesmanProjekt: Unterschied zwischen den Versionen

Aus Physik
Zur Navigation springen Zur Suche springen
Zeile 1: Zeile 1:
  +
==Motivation==
Kommt gleich
 
   
  +
==Ein ganz einfacher Traveling Salesman Algorithmus==
  +
  +
  +
==Projektaufbau==
  +
  +
==Die Projektdateien==
 
Die Projektdateien sind hier zu finden:<br>
 
Die Projektdateien sind hier zu finden:<br>
[http://itp.tugraz.at/~golubk_a/download/matlab_c3/]
+
[http://itp.tugraz.at/~golubk_a/download/matlab_c3/ http://itp.tugraz.at/~golubk_a/download/matlab_c3/]
   
 
* '''traveling_salesman.m''' ist das Hauptprogramm das aus Matlab heraus gesttartet wird. Es wird hier die Stadtliste erstellt, die Stadtkoordinaten werden zufällig gewählt. Es wird die in C++ geschriebene Unterfunktion aufgerufen. In der Funktion wird der beste und der schlechteste Weg berechnet. Die Ergebnisse werden wiederum in Matlab visualisiert.
 
* '''traveling_salesman.m''' ist das Hauptprogramm das aus Matlab heraus gesttartet wird. Es wird hier die Stadtliste erstellt, die Stadtkoordinaten werden zufällig gewählt. Es wird die in C++ geschriebene Unterfunktion aufgerufen. In der Funktion wird der beste und der schlechteste Weg berechnet. Die Ergebnisse werden wiederum in Matlab visualisiert.
   
* '''m_c_interface.cc''' beinhaltet die Funktion, die von Matlab aus gestartet wird. Die von Matlab übergebenen Parameter werden ein wenig umstrukturiert,
+
* '''m_c_interface.cc''' beinhaltet die Funktion, die von Matlab aus gestartet wird. Die von Matlab übergebenen Parameter werden ein wenig umstrukturiert, speicher wird für die Rückgabeparameter an Matlab reserviert. Dann wird die Funktion '''rechnen''' in der Datei '''berecnung.cc''' aufgerufen. Diese Funktion sucht den optimalen weg.
  +
  +
* '''berechnung.cc''' Die Funktion '''rechnen''' befindet sich in dieser Datei. Die Funktion bekommt die Städteliste und berechnet die Reisedauer für alle möglichen Reiserouten. Die Beste und die schlechteste werden zurückgegeben. Es wird hier die GSL [[GNU_Scientific_Library]] verwendet um alle Permutationen der Stadtliste zu finden.
  +
  +
* '''c_c_interface.cc''' hier ist das Program '''main''' zu finden. Es wird gestartet, indem in der [[Konsole]]
  +
$ ./c_c_interface
  +
eingegeben wird. Das Program macht das gleiche wie '''traveling_salesman.m''', nur ohne die Visualisierung. Es ist ein reines C++ Programm und benötigt Matlab nicht. Es ruft ebenfalls die Funktion '''rechnen''' auf, und gibt dann die gefundene reiseroute als Text aus.
  +
  +
* '''makefile''' Mit dem [[Konsole]] Befehl
  +
$ make
  +
wird das makefile ausgewertet, und die C++ Programme, wenn nötig, neu kompiliert. Nach jeder Änderung einer der C++ Dateien sollte man make ausführen.

Version vom 3. Juni 2005, 12:09 Uhr

Motivation

Ein ganz einfacher Traveling Salesman Algorithmus

Projektaufbau

Die Projektdateien

Die Projektdateien sind hier zu finden:
http://itp.tugraz.at/~golubk_a/download/matlab_c3/

  • traveling_salesman.m ist das Hauptprogramm das aus Matlab heraus gesttartet wird. Es wird hier die Stadtliste erstellt, die Stadtkoordinaten werden zufällig gewählt. Es wird die in C++ geschriebene Unterfunktion aufgerufen. In der Funktion wird der beste und der schlechteste Weg berechnet. Die Ergebnisse werden wiederum in Matlab visualisiert.
  • m_c_interface.cc beinhaltet die Funktion, die von Matlab aus gestartet wird. Die von Matlab übergebenen Parameter werden ein wenig umstrukturiert, speicher wird für die Rückgabeparameter an Matlab reserviert. Dann wird die Funktion rechnen in der Datei berecnung.cc aufgerufen. Diese Funktion sucht den optimalen weg.
  • berechnung.cc Die Funktion rechnen befindet sich in dieser Datei. Die Funktion bekommt die Städteliste und berechnet die Reisedauer für alle möglichen Reiserouten. Die Beste und die schlechteste werden zurückgegeben. Es wird hier die GSL GNU_Scientific_Library verwendet um alle Permutationen der Stadtliste zu finden.
  • c_c_interface.cc hier ist das Program main zu finden. Es wird gestartet, indem in der Konsole
$ ./c_c_interface

eingegeben wird. Das Program macht das gleiche wie traveling_salesman.m, nur ohne die Visualisierung. Es ist ein reines C++ Programm und benötigt Matlab nicht. Es ruft ebenfalls die Funktion rechnen auf, und gibt dann die gefundene reiseroute als Text aus.

$ make

wird das makefile ausgewertet, und die C++ Programme, wenn nötig, neu kompiliert. Nach jeder Änderung einer der C++ Dateien sollte man make ausführen.