Hallo,
Wir arbeiten momentan an einem größeren Projekt, dessen Ziel letztlich die Optimierung des Verhaltens einer Entität sein soll. Wir bedienen uns hierbei einer zwei-dimensionalen Simulationsumgebung, die wir mit Hilfe eines Frameworks erstellen und einem weiteren Framework für Neuronale Netze, welche die Lernfähigkeit im Verhalten umsetzen.
Der Lerneffekt tritt hierbei durch häufige Iterationen mit abschließender Fitnessbewertung statt - der Evolutionstheorie angelehnt, werden die besten Netze (durch "Mutation") weiter entwickelt. Stark vereinfacht erklärt.
Im Rahmen dieser Arbeit ist es notwendig, dass Dateien erzeugt / geschrieben / beschrieben werden (z.B. wird immer dann eine neue Datei erzeugt, wenn ein neues neuronales Netz erzeugt wurde, das "fitter" als alle Vorgänger war; z.B. gibt es eine Ausgabedatei für Logs, eine für Debugdaten usw.)
Das Problem "lebt" jetzt von häufiger Wiederholung eine Schleife (vereinfacht dargestellt)
-> Netz wird erzeugt / mutiert
-> Netz wird der Simulationsumgebung übergeben und führt die Simulation durch
-> Netz wird bewertet
Dies funktioniert auch soweit normalerweise super. Wir haben bereits viele Lerneffekte feststellen können und das Problem läuft weitesgehend stabil. Jedoch tritt hin und wieder eine Exception auf, die wir uns nicht erklären können:
An einer Stelle, an der eine neue Datei erzeugt werden soll, kommt es zur FileNotFoundException. Diese scheint NICHT rekonstruierbar zu sein, da exakt gleiche Programmparameter nicht wieder in die Exception führen und diese Programmstelle zuvor auch schon über 1.000.000 Mal erfolgreich durchlaufen wurde (und ja, ich meine diese Zahl - die ist nicht nur daher gesagt)
Jetzt stehen wir hier und können keinen eindeutigen Implementierungsfehler unsererseits feststellen. Der StackTrace gibt uns leider auch keinen Hinweis.
Kann uns hier Jemand weiterhelfen? Wir finden den Fehler dahinter einfach nicht bzw. verstehen das Problem nicht.
Wieso wird diese Operation über 1.000.000 Mal ausgeführt und wirft dann plötzlich doch eine Exception?
Es scheint unabhängig davon zu sein, ob wir gerade etwas am System tun oder ob's einfach Nachts vor sich hin rechnet.
Der Effekt tritt weiterhin auf verschiedenen Systemen auf (zwei Windows-7-Systeme und ein Linux-System (Ubuntu)).
Jemand 'ne Idee?
Wir arbeiten momentan an einem größeren Projekt, dessen Ziel letztlich die Optimierung des Verhaltens einer Entität sein soll. Wir bedienen uns hierbei einer zwei-dimensionalen Simulationsumgebung, die wir mit Hilfe eines Frameworks erstellen und einem weiteren Framework für Neuronale Netze, welche die Lernfähigkeit im Verhalten umsetzen.
Der Lerneffekt tritt hierbei durch häufige Iterationen mit abschließender Fitnessbewertung statt - der Evolutionstheorie angelehnt, werden die besten Netze (durch "Mutation") weiter entwickelt. Stark vereinfacht erklärt.
Im Rahmen dieser Arbeit ist es notwendig, dass Dateien erzeugt / geschrieben / beschrieben werden (z.B. wird immer dann eine neue Datei erzeugt, wenn ein neues neuronales Netz erzeugt wurde, das "fitter" als alle Vorgänger war; z.B. gibt es eine Ausgabedatei für Logs, eine für Debugdaten usw.)
Das Problem "lebt" jetzt von häufiger Wiederholung eine Schleife (vereinfacht dargestellt)
-> Netz wird erzeugt / mutiert
-> Netz wird der Simulationsumgebung übergeben und führt die Simulation durch
-> Netz wird bewertet
Dies funktioniert auch soweit normalerweise super. Wir haben bereits viele Lerneffekte feststellen können und das Problem läuft weitesgehend stabil. Jedoch tritt hin und wieder eine Exception auf, die wir uns nicht erklären können:
An einer Stelle, an der eine neue Datei erzeugt werden soll, kommt es zur FileNotFoundException. Diese scheint NICHT rekonstruierbar zu sein, da exakt gleiche Programmparameter nicht wieder in die Exception führen und diese Programmstelle zuvor auch schon über 1.000.000 Mal erfolgreich durchlaufen wurde (und ja, ich meine diese Zahl - die ist nicht nur daher gesagt)
Jetzt stehen wir hier und können keinen eindeutigen Implementierungsfehler unsererseits feststellen. Der StackTrace gibt uns leider auch keinen Hinweis.
Das ist der - so vermute ich - entscheidende Teil (restliche Ausgabe ist der übliche StackTrace, der hier nicht weiterhilft)Caused by: java.io.FileNotFoundException: Ausgabe\Ordnername\Ausgabe.dat (Der Vorgang ist bei einer Datei mit einem geöffneten Bereich, der einem Benutzer zugeordnet ist, nicht anwendbar)
Kann uns hier Jemand weiterhelfen? Wir finden den Fehler dahinter einfach nicht bzw. verstehen das Problem nicht.
Wieso wird diese Operation über 1.000.000 Mal ausgeführt und wirft dann plötzlich doch eine Exception?
Es scheint unabhängig davon zu sein, ob wir gerade etwas am System tun oder ob's einfach Nachts vor sich hin rechnet.
Der Effekt tritt weiterhin auf verschiedenen Systemen auf (zwei Windows-7-Systeme und ein Linux-System (Ubuntu)).
Jemand 'ne Idee?