Rhetos
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 9 Ω


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