Eggcake
Commodore
- Registriert
- Juni 2007
- Beiträge
- 4.837
Hallo zusammen
Ich bin derzeit an meiner Masterarbeit dran (mit dem Programmierteil praktisch fertig, danach nur noch schreiben) und entdecke erst jetzt einen etwas übleren Bug.
Mein Programm ist schon relativ gross und komplex, grundsätzlich geht es mir erstmal gar nicht darum den Fehler spezifisch zu finden sondern einzugrenzen und vielleicht kann mir jemand einen Hinweis geben wo das Problem liegen könnte.
Was ich genau mache ist erstmal, wie gesagt, nicht so wichtig. Kurz gesagt, ich benutze die Geotools Library um ein Shapefile einzulesen, bilde einen Graphen, gruppiere die Kanten nach gewissen Kriterien zusammen und bilde danach den dualen Graphen davon (Algo geht noch viel weiter, aber hier entsteht dann das Problem). Danach berechne ich gewisse Zentralitätsmasse für die Knoten des dualen Graphen und genau hier entsteht das folgende Problem:
Ich habe also einen (dualen) Graphen, wo für jeden Knoten ein gewisser Wert berechnet wird. Jetzt ist mir (keine Ahnung warum erst jetzt, das finde ich daran eben auch sehr merkwürdig) aufgefallen, dass die Resultate nicht immer gleich sind. Also habe ich bei jedem Durchgang die Summe der Werte aller Knoten berechnet und siehe da, die Werte sind nicht konsistent. Meistens entsteht ein gewisser Wert, doch jeder 2.-3. Durchgang entsteht ein anderer.
Und jetzt das, meiner Meinung nach, verdammt merkwürdige (was auch den Grund darstellt dass ich dachte, ich hätte den Bug gefixt gehabt) :
Diese Unterschiede bestehen nur, wenn ich das Programm manuell mehrfach laufen lasse, wenn ich über eine zweite Main-Methode das Programm mehrfach laufen lasse (über eine for-schleife die Main-Methode mehrfach aufrufe) sind die Resultate konstant
Meine Frage ist deshalb, an was das eurer Meinung nach liegen könnte. Primär geht es darum die Problemsuche einzugrenzen. Mein erster Gedanke war, dass es etwas mit einer Random-Funktion zu tun hat. Ich benutze Random für die hashcode()-Funktion, da ich gewisse Sets benutze. Da die Seeds afaik währenddem die JVM läuft konstant bleiben, entstehen dann keine Unterschiede...hat sonst noch jemand eine Idee?
Ich bin derzeit an meiner Masterarbeit dran (mit dem Programmierteil praktisch fertig, danach nur noch schreiben) und entdecke erst jetzt einen etwas übleren Bug.
Mein Programm ist schon relativ gross und komplex, grundsätzlich geht es mir erstmal gar nicht darum den Fehler spezifisch zu finden sondern einzugrenzen und vielleicht kann mir jemand einen Hinweis geben wo das Problem liegen könnte.
Was ich genau mache ist erstmal, wie gesagt, nicht so wichtig. Kurz gesagt, ich benutze die Geotools Library um ein Shapefile einzulesen, bilde einen Graphen, gruppiere die Kanten nach gewissen Kriterien zusammen und bilde danach den dualen Graphen davon (Algo geht noch viel weiter, aber hier entsteht dann das Problem). Danach berechne ich gewisse Zentralitätsmasse für die Knoten des dualen Graphen und genau hier entsteht das folgende Problem:
Ich habe also einen (dualen) Graphen, wo für jeden Knoten ein gewisser Wert berechnet wird. Jetzt ist mir (keine Ahnung warum erst jetzt, das finde ich daran eben auch sehr merkwürdig) aufgefallen, dass die Resultate nicht immer gleich sind. Also habe ich bei jedem Durchgang die Summe der Werte aller Knoten berechnet und siehe da, die Werte sind nicht konsistent. Meistens entsteht ein gewisser Wert, doch jeder 2.-3. Durchgang entsteht ein anderer.
Und jetzt das, meiner Meinung nach, verdammt merkwürdige (was auch den Grund darstellt dass ich dachte, ich hätte den Bug gefixt gehabt) :
Diese Unterschiede bestehen nur, wenn ich das Programm manuell mehrfach laufen lasse, wenn ich über eine zweite Main-Methode das Programm mehrfach laufen lasse (über eine for-schleife die Main-Methode mehrfach aufrufe) sind die Resultate konstant
Meine Frage ist deshalb, an was das eurer Meinung nach liegen könnte. Primär geht es darum die Problemsuche einzugrenzen. Mein erster Gedanke war, dass es etwas mit einer Random-Funktion zu tun hat. Ich benutze Random für die hashcode()-Funktion, da ich gewisse Sets benutze. Da die Seeds afaik währenddem die JVM läuft konstant bleiben, entstehen dann keine Unterschiede...hat sonst noch jemand eine Idee?
Zuletzt bearbeitet: