Benutzer-Werkzeuge

Webseiten-Werkzeuge


ws1415:projekte_im_wintersemester_2014_15:optimierungsprogramm

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
ws1415:projekte_im_wintersemester_2014_15:optimierungsprogramm [2015/02/26 13:25]
jsauder [Der Lösungsalgorithmus]
ws1415:projekte_im_wintersemester_2014_15:optimierungsprogramm [2016/05/10 14:46] (aktuell)
Zeile 4: Zeile 4:
 Ein Programm, welches eine 3d Erhöhungsdatei,​ sowie zwei Punkte als Input nimmt und den kürzesten Weg zwischen den Beiden Punkten ausgibt. Ein Programm, welches eine 3d Erhöhungsdatei,​ sowie zwei Punkte als Input nimmt und den kürzesten Weg zwischen den Beiden Punkten ausgibt.
  
 +====Ergebnis====
 +
 +[[https://​www.youtube.com/​watch?​v=nsnEnsky7W4|Youtube Video]]
 ==== Teilnehmer ​ ==== ==== Teilnehmer ​ ====
 *[[jsauder@campus.tu-berlin.de|Jonathan Sauder]] *[[jsauder@campus.tu-berlin.de|Jonathan Sauder]]
Zeile 14: Zeile 17:
 Betrachten wir die Datei //run.py// und gehen chronologisch durch die Struktur bis zur Lösung. Betrachten wir die Datei //run.py// und gehen chronologisch durch die Struktur bis zur Lösung.
  
-Es beginnt die Main-Methode. Notwendige ​ Übergabeparameter sind eine Liste aus Zahlenwerten,​ die die Z-Werte der Koordinaten von der 3D-Oberfläche darstellt. Des weiteren müssen noch Start-und Zielpunkt der Berechnung ​übergeben ​werden.+Es beginnt die Main-Methode. Notwendige ​ Übergabeparameter sind eine Liste aus Zahlenwerten,​ die die Z-Werte der Koordinaten von der 3D-Oberfläche darstelltStart-und Zielpunkt der Berechnung, und eine Auflösung mit der Kanten diskretisiert ​werden.
  
 <code Python> <code Python>
Zeile 206: Zeile 209:
 Insgesamt sieht die datei //run.py// ohne jegliche grafische Darstellung also aus wie folgt: Insgesamt sieht die datei //run.py// ohne jegliche grafische Darstellung also aus wie folgt:
  
-<​code>​+<​code ​Python> 
 +from __future__ import division 
 +def main(asciidatei,​startpoint,​endpoint,​aufloesung):​ 
 +   from datenstruktur import datenstruktur 
 +   ​punktliste,​delaunay,​dreiecksliste,​kantenliste=datenstruktur(asciidatei,​aufloesung) 
    #Init of Cython, notwendig um anfang.py bzw. berechnung.py auszuführen    #Init of Cython, notwendig um anfang.py bzw. berechnung.py auszuführen
    ​import pyximport    ​import pyximport
Zeile 229: Zeile 237:
       zubetrachtend,​ front, fertig=schleife(zubetrachtend,​front,​fertig)       zubetrachtend,​ front, fertig=schleife(zubetrachtend,​front,​fertig)
  
- from ende import ende +   from ende import ende 
- weg=ende(endkanten,​endpoint,​enddreieck)+   ​weg=ende(endkanten,​endpoint,​enddreieck) 
 +   ​return 0 
 +</​code>​
  
 +===== Die Visualisierung =====
  
-</code>+Die Visualisierung wurde mit Python-Matplotlib gemacht. 
 +Matplotlib ist zwar auf die dauer ziemlich langsam (am Ende mehr als die Hälfte der runtime), aber ist für simple Darstellungen durch eine übersichtliche API ziemlich nützlich. Rote Kanten sind als Kanten in der Front markiert, Grüne Kanten sind zu betrachtende Kanten, und blaue Kanten 
 +sind fertige Kanten (für die der Optimale Weg schon gefunden wurde) 
 + 
 +{{:​ws1415:​projekte_im_wintersemester_2014_15:​bild1.png?​400|}}{{:​ws1415:​projekte_im_wintersemester_2014_15:​bild2_.png?​400|}} 
 + 
 +{{:​ws1415:​projekte_im_wintersemester_2014_15:​bild3.png?​400|}}{{:​ws1415:​projekte_im_wintersemester_2014_15:​bild4.png?​400|}} 
 + 
 +[[https://​www.youtube.com/​watch?​v=nsnEnsky7W4|Youtube Video]]
 ==== Projektseiten ==== ==== Projektseiten ====
  
ws1415/projekte_im_wintersemester_2014_15/optimierungsprogramm.1424953510.txt.gz · Zuletzt geändert: 2016/05/10 14:46 (Externe Bearbeitung)