Optimierung des Straßenverkehrs durch Ampelschaltung

Sie haben ein bestimmtes Projekt zu bearbeiten und wissen nicht, wie Sie an die Aufgabe heran gehen sollen? Sie sind sich nicht sicher, ob Ihr Netzentwurf zu Ihrem Problem passt oder ob es da Optimierungsmöglichkeiten gibt? Ist es überhaupt sinnvoll an Ihre Daten mit einem NN basierten Ansatz heranzugehen? Ist MemBrain das richtige Werkzeug für Ihr Problem und Ihre Infrastruktur?

Hier ist der richtige Platz für diese Art von Fragen.
User avatar
TJetter
Posts: 346
Joined: Sat 13. Oct 2012, 12:04

Re: Optimierung des Straßenverkehrs durch Ampelschaltung

Post by TJetter »

netGuy wrote:Ok, macht Sinn. Dann müsste ich nur die Normalisierungsgrenzen dynamisch zur Laufzeit anpassen (für den Fall einer Änderung).
Korrekt. Das ist über die MemBrain dll ja leicht möglich.
netGuy wrote:Also muss ich das Netz dann nachtrainieren, sobald sich die Grenzen geändert haben?
Ja. Das Netz hat erlernt, bestimmte Eingangsdaten (Zustand, Aktion) mit bestimmten Ausgangsdaten (Wert der Zustands/Aktionspaarung = Q-Function) zu assoziieren.
Wenn sich nun die Datenmuster ändern, dann muss das Netz auf diese neuen Muster nachtrainiert werden. Da diese neuen Muster sich ja aber ähnlich zu den 'alten' Mustern verhalten, wird das Netz sich sehr schnell anpassen. Es sollte also vor dem nachtrainieren nicht randomisiert werden, sonst müsste es alles neu erlernen.
netGuy wrote:Dann geb ich als min-max-Werte für das Range der normalization die entsprechenden min-max werte an, die sich aus den Eigenschaften der Neuronen ergeben`? ZB: Für Loop1 0...28
Exakt, ja.
Thomas Jetter
netGuy
Posts: 21
Joined: Mon 11. Jan 2016, 09:05

Re: Optimierung des Straßenverkehrs durch Ampelschaltung

Post by netGuy »

Sehr schön, dann ist es für den ersten Versuch ja recht einfach umzusetzen.
Ich mach mich mal ran und schau, was das Netz damit macht.
netGuy
Posts: 21
Joined: Mon 11. Jan 2016, 09:05

Re: Optimierung des Straßenverkehrs durch Ampelschaltung

Post by netGuy »

Wenn sich nun die Datenmuster ändern, dann muss das Netz auf diese neuen Muster nachtrainiert werden. Da diese neuen Muster sich ja aber ähnlich zu den 'alten' Mustern verhalten, wird das Netz sich sehr schnell anpassen. Es sollte also vor dem nachtrainieren nicht randomisiert werden, sonst müsste es alles neu erlernen.
Eine kurze Frage: Sollte ich zum nachtrainieren die vorhandenen Trainingsdaten mit dem membrain-dll lösen und das Netz mit den vorhandenen Daten komplett neu "füttern" oder reicht es die Grenzen dynamisch neu zu setzen und membrain übernimmt die erneute Normalisierung der vorhandenen Werte?
User avatar
TJetter
Posts: 346
Joined: Sat 13. Oct 2012, 12:04

Re: Optimierung des Straßenverkehrs durch Ampelschaltung

Post by TJetter »

netGuy wrote:Eine kurze Frage: Sollte ich zum nachtrainieren die vorhandenen Trainingsdaten mit dem membrain-dll lösen und das Netz mit den vorhandenen Daten komplett neu "füttern" oder reicht es die Grenzen dynamisch neu zu setzen und membrain übernimmt die erneute Normalisierung der vorhandenen Werte?
Da war meine letzte Antwort verwirrend, zugegeben.
Die bestehenden Muster (= Trainingsdatensätze) bleiben unverändert erhalten. Lediglich die Normalisierungsgrenzen der Inputs/Outputs werden im NN vergrößert (z.B. über die dll, die bietet dazu Schnittstellen). Das Netz muss dann einfach nur mit den unveränderten Daten nachtrainiert werden, so dass es seine Gewichte an die neuen Normalisierungsgrenzen anpasst: Die veränderten Normalisierungsgrenzen erzeugen aus den unveränderten Daten intern ja nun andere Aktivitätsmuster. Die Zusammenhänge müssen also neu erlernt bzw. oft nur geringfügig durch einen erneuten Lernprozess angepasst werden.

klärt das die Frage?
Thomas Jetter
netGuy
Posts: 21
Joined: Mon 11. Jan 2016, 09:05

Re: Optimierung des Straßenverkehrs durch Ampelschaltung

Post by netGuy »

klärt das die Frage?
Japp. Hab ich mal soweit drin.
Jetzt schau ich mal nach dem Verhalten der Agenten.
netGuy
Posts: 21
Joined: Mon 11. Jan 2016, 09:05

Re: Optimierung des Straßenverkehrs durch Ampelschaltung

Post by netGuy »

So... Hab es mal drin.
Aber irgendwie wollen die Agenten nicht so wie ich es gerne hätte.... (Bin wohl zu ungeduldig :mrgreen: ).
Ich hab das MFS mal um einen Wareneingang und eine Produktion erweitert.
(s. Bild)
Image

Die nicht implementierten Bereiche sind rot durchgestrichen.
Die einzelnen Quellen (RBG und WE) haben unterschiedliche Taktzeiten mit denen sie neue Behälter einspeisen...

Produktion und Wareneingang versorgen die RBG 1 und RBG 2 mit Behältern. Zusätzlich gibt es bei den Behältern eine Rückführung zurück zu den RBG 1 und RBG2.

Die grauen Kreise markieren Agenten.
Ich habe die Belohnung so umgestellt, dass alle Agenten mit dem Durchsatz an den K-Plätzen der letzten Stunde belohnt werden: (1/Transportdauer des ankommenden Behälters)*Durchsatz an allen K-Plätzen der letzten Stunde.

Die Agenten A,E und F erhalten eine zusätzliche Belohnung von +5 für das ausschleusen von Behältern in das nächste MFE.

Ich experimentiere gerade etwas mit der Explorations-WS für den Beginn zwischen 20%-90% und mit dem Alpha zwischen 0,1 und 1.
Haben Sie Erfahrungswerte, was eine "relativ hohe" Anfangs-WS für die Exploration sein könnte?
---
U.U. muss ich doch mal den Ansatz mit einem Agenten antesten.
Vielleicht brauch ich aber auch einen Master-Agenten, der die anderen Agenten "steuert" und seine eigene Q-Funktion auf Basis der Entscheidungen der Slave-Agenten approximiert.
(Nur mal ein paar "laute" Gedanken)
User avatar
Admin
Site Admin
Posts: 438
Joined: Sun 16. Nov 2008, 18:21

Re: Optimierung des Straßenverkehrs durch Ampelschaltung

Post by Admin »

netGuy wrote:Haben Sie Erfahrungswerte, was eine "relativ hohe" Anfangs-WS für die Exploration sein könnte?
50 % ist ein guter Startwert. Damit geschieht jede zweite Aktion zufällig.

Ich kann - sofern es meine Zeit zulässt - auch gerne mal ein kleines 'Code-Review' machen, zumindest was den Umgang mit der dll angeht.
Oft sind ja auch einfach fiese Bugs die Ursache dafür, dass etwas nicht klappt.
Thomas Jetter
netGuy
Posts: 21
Joined: Mon 11. Jan 2016, 09:05

Re: Optimierung des Straßenverkehrs durch Ampelschaltung

Post by netGuy »

Ich kann - sofern es meine Zeit zulässt - auch gerne mal ein kleines 'Code-Review' machen, zumindest was den Umgang mit der dll angeht.
Oft sind ja auch einfach fiese Bugs die Ursache dafür, dass etwas nicht klappt.
Das wäre eine gute idee^^
Ich kann ihnen den code ja einfach mal per pn schicken.
Danke :D
Post Reply