Ameisenalgorithmus – Schwarmintelligenz in Matlab

Vogelschwarm

Hab für die Uni ein kleines objektorientiertes Skript in Matlab geschrieben welches über den Ameisenalgorithmus handelt.

Was ist der Ameisenalgorithmus?

Dieser simuliert mehrere Ameisen und deren Fähigkeit zur bildung einer kollektiven Intelligenz. Das nennt man Schwarmverhalten. Dieses Verhalten kann man auf Probleme des Menschen anwenden. Zum Beispiel in der Transportlogistik. (siehe auch Travelling Salesman Problem). Wie kann man möglichst viele Städte bzw. Ziele mit der geringsten Route abfahren? Die Lösung für diese Frage steigt mit jedem zusätzlichen Ziel stark an. Darum gibt es heuristische Verfahren wie den Ameisenalgorithmus.

Wie denkt eine Ameise?

Eigentlich ist ein einzelnes Individuum nicht sehr intelligent. Es geht in zufällige Richtungen bis es Futter findet. Dabei schüttet es einen Stoff aus der als Pheromon bezeichnet wird. Findet die Ameise dann Futter, so kehrt sie zum Nest zurück. Dadurch hinterlässt sie eine Pheromonspur welcher wiederum andere Ameisen folgen. Es bildet sich nach der Zeit ein Ameisenpfad aus und die Ameisen haben eine gute Route gemeinsam gefunden.

Hier noch das Video. Der Code wurde objektorientiert in Matlab geschrieben

Paper

Hier könnt ihr das zugehörige Paper downloaden. Es ist auf englisch.

Download Paper Ant-Algorithm

Semantisches Netz – Die Bedeutung von Wörtern

Was ist das?

Als erstes muss man verstehen was Semantik bedeuted. Semantik ist griechisch und bedeuted „bezeichnen“. Es steht für die Bedeutung hinter einem Wort. Diese Bedeutung kann man verküpfen mit anderen Bedetuungen. z.B. das Wort Baum kann man mit Blatt oder Stamm verbinden weil ein Baum aus eben diesen Teilen besteht. Somit kann man sich eine Mindmap aufbauen, die mit einem Graph bzw. einem semantischem Netz, darstellbar ist. Solche Graphen verwendet man bei der Sprachanalyse in Übersetzungsprogrammen um den Sinn hinter dem Satz gleich zu lassen, und den Satz besser zu übersetzen, denn eine 1 zu 1 Übersetzung der Worte geht sehr schnell schief.

Beispiel

Klassisches Beispiel: „Your english is not the yellow from the egg“ von „Dein Englisch ist nicht das gelbe vom Ei.“ Im Englischen macht dieser Satz somit null Sinn 😀 Vielmehr muss man die Bedeutung hinter dem Satz verstehen um es richtig übersetzen zu können. Bei solchen Sprichwörtern ist das natürlich besonders schwer, da es sich um ganze Sätze und nicht nur um einzelne Worte handelt.

Ich will aber nur zeigen wie es mit einzelnen Wörtern ist. Im folgenden habe ich ein sehr einfaches Modell eines solchen semantischen Netzwerks aufgezeichnet:

Ein einfaches semantisches Netz
Ein Beispiel für ein einfaches semantisches Netz

Ich werde in Zukunft vielleicht eine solche Graphstruktur mit einigen Einträgen in einer Datenbank abbilden  und dann ein paar coole Sachen damit testen. (In der Zwischenzeit evtl. auch interessant: Baumstruktur in Datenbank speichern)

Wie man ganze Sätze damit verbindet und abspeichern kann wäre noch interessant damit aber es gibt sicher gute Lösungen dafür.

Weiterführende Links

Wikipedia → Semantik