Autor
|
Thema: GA-Opitimierung läuft ewig (1535 mal gelesen)
|
CoR3 Mitglied
Beiträge: 9 Registriert: 24.01.2015
|
erstellt am: 24. Jan. 2015 22:18 <-- editieren / zitieren --> Unities abgeben:
Hallo , war heute schonmal mit einer Frage zu den Generischen Algorithmen hier. Das hat sich mittlerweile erledit. Meine Optimierung läuft. Das einzige Problem ist, dass in meinem Modell immer mindestens eine Maschine ausfällt und somit der GA Assistent für immer und ewig in der ersten Generation bzw. im ersten Individuum stecken bleibt. Wie kann ich den GA-Assistent davon überzeugen, nach Fertigstellung meines letzten BEs eine neue Schleife einzulegen. Der Ereignisverwalter läuft ja leider ewig weiter, wegen der Störungen. (Einen Stop im Ereignisverwalter einzubauen, bringt natürlich nichts ) Viele liebe Grüße Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bon Simul Mitglied Simulant
Beiträge: 1250 Registriert: 08.08.2011 Plant Simulation 10.1, 11 ff Professional
|
erstellt am: 25. Jan. 2015 21:41 <-- editieren / zitieren --> Unities abgeben: Nur für CoR3
Sie müssen ein Ende im Ereignisverwalter setzen (z.B. 100 Tage). Der GA generiert lediglich Experimente, führt diese aus und wertet die Ergebnisse aus. Nach einer bestimmten Anzahl: ereignisverwalter.ende:=ereignisverwalter.zeit+0.001;
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CoR3 Mitglied
Beiträge: 9 Registriert: 24.01.2015
|
erstellt am: 25. Jan. 2015 23:18 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von Bon Simul:
Nach einer bestimmten Anzahl: ereignisverwalter.ende:=ereignisverwalter.zeit+0.001;
Das letzte verstehe ich nicht ganz. Aber wenn ich eine Endzeit in den Verwalter einsetze, spuckt die GA-Optimierung natürlich immer genau diese Endzeit als optimales Ergebnis aus, anstatt mir eine optimierte Sequenz zurückzugeben. Die Sequenz wird natürlich deutlich schneller abgearbeitet. Aber dadurch,dass immer eine Störung aktiv ist, läuft das Modell weiter und weiter. Kann man ein Ende direkt in die GA-Optimierung einbauen? Grüße Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bon Simul Mitglied Simulant
Beiträge: 1250 Registriert: 08.08.2011 Plant Simulation 10.1, 11 ff Professional
|
erstellt am: 26. Jan. 2015 09:26 <-- editieren / zitieren --> Unities abgeben: Nur für CoR3
Was ist denn Ihr Optimierungskriterium? Wenn Sie eine bestimmte Anzahl von Teilen produzieren wollen und die notwendige Zeit das Optimierungskriteium ist, dann müssen Sie die Simulation nach x Teilen beenden (in der Senke zählen). Sie müssen das im Modell einbauen, der GA wartet, bis das jeweilige Experiment beendet ist. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CoR3 Mitglied
Beiträge: 9 Registriert: 24.01.2015
|
erstellt am: 26. Jan. 2015 10:35 <-- editieren / zitieren --> Unities abgeben:
Hallo. Danke schonmal bis hierher. Mein Optimierungskriterium ist root.ereignisverwalter.simTime. Leider endet diese nicht, sobald das letzte Teil produziert ist, sondern läuft wegen der Störungen immer weiter. Wo und wie könnte ich einen "Stop" einsetzen(zB. Zählen der BE an der Quelle gleich BE im Lager),den der GAAssistent erkennt und damit ein neues Experiment startet. Grüße Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bon Simul Mitglied Simulant
Beiträge: 1250 Registriert: 08.08.2011 Plant Simulation 10.1, 11 ff Professional
|
erstellt am: 26. Jan. 2015 10:58 <-- editieren / zitieren --> Unities abgeben: Nur für CoR3
|
CoR3 Mitglied
Beiträge: 9 Registriert: 24.01.2015
|
erstellt am: 26. Jan. 2015 11:14 <-- editieren / zitieren --> Unities abgeben:
Ja und nein. Im Normalfall generiert das Modell in Abhängigkeit von Auslieferungen(Normalverteilt) und Sicherheitsbestand eine Produktionliste(für die folgende Woche(noch nicht endgültig geklärt)). Damit würde aber das Modell der Sequenzoptimierung niemals in eine neue Schleife gehen oder durchdringe ich den Assistenten noch nicht richtig? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bon Simul Mitglied Simulant
Beiträge: 1250 Registriert: 08.08.2011 Plant Simulation 10.1, 11 ff Professional
|
erstellt am: 26. Jan. 2015 11:21 <-- editieren / zitieren --> Unities abgeben: Nur für CoR3
Das Problem ist der Ereignisverwalter. Er muss das Experiment beenden. Das passiert nur, wenn entweder kein Ereignis mehr zu bearbeiten ist (wenn Sie Störungen haben, dann gibt es immer ein neues Ereignis) oder wenn das Ende der Simulation erreicht ist (Eintragung im Feld Ende im Ereignisverwalter). In Ihrem Fall müssen Sie mitzählen. Wenn die BEs durch sind, setzen Sie das Ende des Ereignisverwalters auf eine Millisekunde nach "jetzt" (ereignisverwalter.zeit) und die Simulation wird beendet.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CoR3 Mitglied
Beiträge: 9 Registriert: 24.01.2015
|
erstellt am: 26. Jan. 2015 11:47 <-- editieren / zitieren --> Unities abgeben:
Danke. Damit bekomme ich auf jeden Fall schonmal eine optimale Sequenz in der "ersten" Produktionswoche(je nachdem, in welchen Abständen die Lose geliefert werden) hin. Wie ich die optimalen Reihenfolgen für die folgenden Wochen bestimme, müsste ich also noch schauen. Mein Überlegung wäre, den Ereignisverwalter ohne GA-Assistenten bis in die nächsten Wochen laufen zu lassen, um die dort generierten Produktionsaufträge "abzuschreiben" und diese dann hinterher im GA-Assistenten abzuprüfen. Richitger Weg? Grüße Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bon Simul Mitglied Simulant
Beiträge: 1250 Registriert: 08.08.2011 Plant Simulation 10.1, 11 ff Professional
|
erstellt am: 26. Jan. 2015 12:28 <-- editieren / zitieren --> Unities abgeben: Nur für CoR3
|
CoR3 Mitglied
Beiträge: 9 Registriert: 24.01.2015
|
erstellt am: 26. Jan. 2015 23:30 <-- editieren / zitieren --> Unities abgeben:
is do If Quelle.AnzahlTeileSeitRüsten = Fertigteilager.AnzahlTeileSeitRüsten then Ereignisverwalter.Ende:=Ereignisverwalter.Zeit+0.001; End ; end; Und trotzdem läuft der Verwalter weiter und weiter.... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bon Simul Mitglied Simulant
Beiträge: 1250 Registriert: 08.08.2011 Plant Simulation 10.1, 11 ff Professional
|
erstellt am: 27. Jan. 2015 07:52 <-- editieren / zitieren --> Unities abgeben: Nur für CoR3
eher als Eingangssteuerung der Senke Code:
if quelle.statAnzahlAus = senke.statAnzahlEin then --alle durch Ereignisverwalter.Ende:=Ereignisverwalter.Zeit+0.001;end;
Die Quelle rüstet normalerweise nicht, deshalb werden auch keine Rüstinformationen gesammelt. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |