Angemessene Laufzeiten

Goldfish

Bekanntes Mitglied
Hi Leute, ich sollte im Rahmen einer Veranstaltung in der Uni einen evolutionären Algorithmus schreiben, der das N-Damenproblem löst. Dieser soll ganz offensichtlich nur eine Lösung finden.
Mein Programm ist fertig und läuft auch ganz okay. Das Problem jedoch jetzt ist, dass ich im Internet ewig gesucht habe und keine Angaben dazu gefunden habe, wie lange die Laufzeiten sein sollten.
Für welche Größe des Problems ist welche Zeit denn eigentlich noch eine angemessene Laufzeit?
Ich habe einige Tests gemacht und als Beispiel löst mein Programm das 60-Damenproblem (Also mit der Auffindung einer einzigen Lösung) - im bisher immer schlechtesten Falle - in ca. 2 Minuten. Ich habe vorhin auch für n=70 getestet und die Laufzeit betrug knapp unter 5 1/2 Minuten.

Ich wollte nur wissen, ob dies akzeptable Lösungen sind, oder ob ich da am Programmcode doch noch rumschrauben muss?

Danke im Voraus schonmal ^^
 

Final_Striker

Top Contributor
Genaue Zahlen wird dir wohl keiner sagen können. Ich würde mal behaupten, es sollte schneller sein als einfach nur das Ausprobieren aller möglicher Kombinationen. ;-)
 

Goldfish

Bekanntes Mitglied
Das ist es definitiv. ^^
Aber bei evolutionären Algorithmen ist das ganze ja auch schon relativ stark mit Zufall kombiniert.
Ist auf jeden Fall doof, dass man nichtmal ungefähre Werte nennen kann.

Aber soweit jedenfalls erstmal danke ^^
 

XHelp

Top Contributor
Die Laufzeit gibt man in der Regel mit Landau-Notation an. Bei einem komplexerem Algo könnte es aber schon tricky werden.
Ansonsten kannst du dir ja andere Java-Implementierungen suchen und diese gegen dein Algo mehrmals antreten lassen.
 

Goldfish

Bekanntes Mitglied
Hierbei gehts nicht um Komplexitätstheorie. Das zu berechnen ist bei einem Evolutionären Algorithmus aufgrund der Zufälligkeit eh hinfällig.
Ich hatte mir nur vorgestellt ungefähre Zeitwerte zu bekommen
 

XHelp

Top Contributor
Naja, aussagekräftigen Werte wirst du nur auf dem selben Rechner und mit verschiedenen Algorithmen bekommen. Wenn dir jemand "5.24" und "66.33" Sekunden reinschreibt, bringt es dich dennoch nicht weiter.
 

Ähnliche Java Themen


Oben