Problem mit Algorithmus

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Nils83
User
Beiträge: 29
Registriert: Montag 4. Juni 2007, 19:37

Montag 4. Juni 2007, 20:04

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.
Benutzeravatar
keppla
User
Beiträge: 483
Registriert: Montag 31. Oktober 2005, 00:12

Montag 4. Juni 2007, 20:18

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.
BlackJack

Montag 4. Juni 2007, 20:37

@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.
Nils83
User
Beiträge: 29
Registriert: Montag 4. Juni 2007, 19:37

Montag 4. Juni 2007, 20:56

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.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Montag 4. Juni 2007, 21:19

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
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
BlackJack

Montag 4. Juni 2007, 21:31

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.
Nils83
User
Beiträge: 29
Registriert: Montag 4. Juni 2007, 19:37

Montag 4. Juni 2007, 22:16

Ok, danke!
Nils83
User
Beiträge: 29
Registriert: Montag 4. Juni 2007, 19:37

Donnerstag 7. Juni 2007, 22:52

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?
Pyre
User
Beiträge: 3
Registriert: Donnerstag 1. Februar 2007, 20:35
Kontaktdaten:

Donnerstag 7. Juni 2007, 23:05

Ja, zwischen 0 und 1.
BlackJack

Donnerstag 7. Juni 2007, 23:09

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).
Nils83
User
Beiträge: 29
Registriert: Montag 4. Juni 2007, 19:37

Mittwoch 13. Juni 2007, 14:50

Vielen Dank für eure Hilfe
Antworten