Basic256 Programme genetischer Gipfelsucher_01
Quellcode
Basiswissen
Das untenstehende Programm kann direkt in Basic256 ausgeführt werden. Es bestimmt den Hochpunkt eines Graphen mit Hilfe eines heuristischen Verfahrens.
Quellcode
# genetischer_gipfelsucher_01.txt
#
# Dieses Programm sucht die höchste Stelle eines Funktionsgraphen. Es benutzt dazu einen einfachen genetischen Algorithmus.
#
Print "Suche beenden: Taste P"
#
suchweite=0.01
taste=0
#
# Die ersten drei Zufallspunkte
ax=40*rand-20
bx=40*rand-20
cx=40*rand-20
#
while taste<>80
taste = key()
# In den nächsten drei Zeilen wird die Funktionsgleichung definiert.
# Sie muss in jeder Zeile von Hand einzeln geändert werden.
# Sie muss in allen drei Zeilen identisch sein.
ay=-1*(ax^4-ax^2)
by=-1*(bx^4-bx^2)
cy=-1*(cx^4-cx^2)
# Es wird der x-Wert mit dem Höchsten y-Wert gesucht
ymax=ay
xmax=ax
if by>ymax then ymax=by : xmax=bx
if cy>ymax then ymax=cy : xmax=cx
# Der x-Wert mit dem höchsten y-Wert ist der Ausgangspunkt für die nächste Suche.
# Neben dem erfolgreichsten x-Wert werden zufällig links und rechts noch zwei benachbarte x-Werte ausprobiert.
ax=xmax
bx=xmax+rand*suchweite
cx=xmax-rand*suchweite
# Ausgabe des momentan besten x-Wert-y-Wertepärchens
print xmax;
print " ";
print ymax
end while
end