Seite 1 von 1

Problem mit Algorithmus

Verfasst: Montag 4. Juni 2007, 20:04
von Nils83
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.

re

Verfasst: Montag 4. Juni 2007, 20:18
von keppla
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.

Verfasst: Montag 4. Juni 2007, 20:37
von BlackJack
@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.

Verfasst: Montag 4. Juni 2007, 20:56
von Nils83
Ok, mir geht es speziell um solche Sachen wie z.B.

Code: Alles auswählen

 for i in xrange(len(self.tours[ant])):
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.

Verfasst: Montag 4. Juni 2007, 21:19
von gerold
Nils83 hat geschrieben:Ok, mir geht es speziell um solche Sachen wie z.B.

Code: Alles auswählen

 for i in xrange(len(self.tours[ant])):
Aber vielleicht hat ja auch einfach jemand einen netten Link, der mir hilft, solche Dinge nachzuschlagen.
Hallo Nils83!

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
:-)

Verfasst: Montag 4. Juni 2007, 21:31
von BlackJack
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.

Verfasst: Montag 4. Juni 2007, 22:16
von Nils83
Ok, danke!

Verfasst: Donnerstag 7. Juni 2007, 22:52
von Nils83
Eine Frage hätte ich dann doch noch:

Code: Alles auswählen

nm = random.random()
Erzeugt wahrscheinlich eine Zufallszahl? Wenn ja, in welchem Bereich liegt sie? Zwischen 0 und 1?

Verfasst: Donnerstag 7. Juni 2007, 23:05
von Pyre
Ja, zwischen 0 und 1.

Verfasst: Donnerstag 7. Juni 2007, 23:09
von BlackJack
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).

Verfasst: Mittwoch 13. Juni 2007, 14:50
von Nils83
Vielen Dank für eure Hilfe