Gegeben ein kontuinuierliches Optimierungsproblem mit acht Variablen x0.... x7, wobei für alle x gilt: 0 <= x <100. Wir programmieren nun die Suchoperatoren für einen metaheuristischen Suchalgorithmus(bspw einen Evolutionären Algorithmus), der möglichst gute Lösungskandidaten für dieses Optimierungsproblem finden soll. In Python sieht ein möglicher Lösungskandidat, der eine Belegung aller acht Variablen bestimmt, so aus:
Code: Alles auswählen
x = [42.0 for _ in Range (8)]
a) Ein Migrationsoperator erzeugt rein zufällig einen neuen Lösungskandidaten( genannt "new-indivual") aus dem kompletten Suchraum. Implementieren sie einen solchen Operator in Python.
Code: Alles auswählen
def migrate():
// jetzt kommt meine LSG
n = (prng()*100) (int)
x = [n for _inrange(8)]
new individual = x[0]
//meine LSG ist jetz zuende, ich hatte hier nur 1,5 von 3 pkt
return new _individual:
Code: Alles auswählen
def recombiine (parent1, parent2):
//ANFANG MEINER LSG
child[]
for x in parent1:
for y in parent2:
if x == y :
child.*append(x)
//ende meiner LSG
return child
Bei der a) wurde korrigiert: "Wert richtig, aber fix" // keine ahnung was das bedeuten soll
und bei der b) "Werde kontinuierlich.... //danach kann ichs nicht lesen.
ich wäre für eine Antwort sehr dankbar