Hallo,
ich beschäftige mich für eine Hausarbeit mit dem Ant Colony Algorithmus. Bis jetzt habe ich mich nur theoretisch mit dem Thema beschäftigt und habe jetzt folgende Umsetzung des Algorithmus für das TSP-Problem gefunden:
http://xiru.org/blog/python-ant-colony-optimization
Da die Kommentare leider auf portugiesisch(?) sind und ich mich nur wenig mit Python auskenne, habe ich leider Probleme, den Algorithmus zu verstehen.
Es wäre nett wenn mir jemand ein Paar Anregungen geben könnte, wozu die einzelnen Teile dienen:
Code ausgelagert: >> http://paste.pocoo.org/show/1559/ <<
Vielen Dank für Eure Hilfe
Nils
Edit by Gerold: Code ausgelagert, damit man wieder antworten kann.
Problem mit Algorithmus
du müsstest da schon etwas spezifischer werden.
Wozu die einzelnen Teile dienen weist du vermutlich besser, da (so vermute ich) du hier der einzige bist, der den Algorithmus kennt.
ansonsten bitte http://www.python-forum.de/topic-1689.html beachten.
Wozu die einzelnen Teile dienen weist du vermutlich besser, da (so vermute ich) du hier der einzige bist, der den Algorithmus kennt.
ansonsten bitte http://www.python-forum.de/topic-1689.html beachten.
@Nils83: Ich will Dir ja nicht die Arbeit abnehmen, aber so grundlegende Dinge wie Suchmaschine und Wikipedia hast Du schon benutzt? Es gibt je einen Eintrag auf Englisch und auf Deutsch, jeweils mit weiterführenden Links auf Implementierungen in verschiedenen Sprachen.
http://en.wikipedia.org/wiki/Ant_colony_algorithm
http://de.wikipedia.org/wiki/Ameisenalgorithmus
Und eine deutsche Seite: http://www.ameisenalgorithmus.de/
Ein Artikel vom Erfinder: ftp://iridia.ulb.ac.be/pub/mdorigo/jour ... MC96.ps.gz
Daran soll sich der Python-Quelltext orientieren. Vielleicht hilft das ja.
http://en.wikipedia.org/wiki/Ant_colony_algorithm
http://de.wikipedia.org/wiki/Ameisenalgorithmus
Und eine deutsche Seite: http://www.ameisenalgorithmus.de/
Ein Artikel vom Erfinder: ftp://iridia.ulb.ac.be/pub/mdorigo/jour ... MC96.ps.gz
Daran soll sich der Python-Quelltext orientieren. Vielleicht hilft das ja.
Ok, mir geht es speziell um solche Sachen wie z.B.
Aber vielleicht hat ja auch einfach jemand einen netten Link, der mir hilft, solche Dinge nachzuschlagen.
@BlackJack
Yeah, von Wikipedia und Google hab ich schon mal was gehört und wie bereits erwähnt, hab ich mich auch schon theoretisch mit dem Thema beschäftigt und dabei auch durchaus das Buch von Marco Dorigo gelesen und war sogar so schlau bei Wikipedia nachzugucken.
Vielleicht bin ich aber in einem Portugiesisch Forum besser aufgehoben oder ich muss auf eine Sprache umsteigen, die ich kenne.
Hatte aber gehoffe, auf diese Art etwas mit Python machen zu können.
Code: Alles auswählen
for i in xrange(len(self.tours[ant])):
@BlackJack
Yeah, von Wikipedia und Google hab ich schon mal was gehört und wie bereits erwähnt, hab ich mich auch schon theoretisch mit dem Thema beschäftigt und dabei auch durchaus das Buch von Marco Dorigo gelesen und war sogar so schlau bei Wikipedia nachzugucken.
Vielleicht bin ich aber in einem Portugiesisch Forum besser aufgehoben oder ich muss auf eine Sprache umsteigen, die ich kenne.
Hatte aber gehoffe, auf diese Art etwas mit Python machen zu können.
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo Nils83!Nils83 hat geschrieben:Ok, mir geht es speziell um solche Sachen wie z.B.Aber vielleicht hat ja auch einfach jemand einen netten Link, der mir hilft, solche Dinge nachzuschlagen.Code: Alles auswählen
for i in xrange(len(self.tours[ant])):
Willkommen im Python-Forum!
for: http://docs.python.org/tut/node6.html#S ... 0000000000
range: http://docs.python.org/tut/node6.html#S ... 0000000000
xrange: http://docs.python.org/lib/built-in-funcs.html#l2h-80
Und hier noch die FAQ: [wiki]FAQ[/wiki]
Viel Spaß mit Python!
mfg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Da möchte ich gerold mal unterstützen: Diese Frage ist einfach Python-Grundwissen und hat weder mit portugiesisch noch speziell mit dem Algorithmus zu tun.
Arbeite am besten mal das Tutorial in der Python-Doku durch. Und wenn Du schon Programmiererfahrung hast, ist http://www.diveintopython.org/ ein guter Text.
Arbeite am besten mal das Tutorial in der Python-Doku durch. Und wenn Du schon Programmiererfahrung hast, ist http://www.diveintopython.org/ ein guter Text.
Eine Frage hätte ich dann doch noch:
Erzeugt wahrscheinlich eine Zufallszahl? Wenn ja, in welchem Bereich liegt sie? Zwischen 0 und 1?
Code: Alles auswählen
nm = random.random()
Ja, zwischen 0 und 1.
Etwas genauer: inklusive 0, exclusive 1.
Code: Alles auswählen
In [19]: import random
In [20]: random.random?
Type: builtin_function_or_method
Base Class: <type 'builtin_function_or_method'>
String Form: <built-in method random of Random object at 0x81b396c>
Namespace: Interactive
Docstring:
random() -> x in the interval [0, 1).