Heim > Artikel > Backend-Entwicklung > Eine kurze Einführung in die Geatpy-Toolbox des genetischen Python-Algorithmus
【Verwandte Empfehlung: Python3-Video-Tutorial】
Der genetische Algorithmus ist eine Art Suchalgorithmus, der künstlich durch Simulation des Mechanismus der biologischen Genetik und der natürlichen Selektion erstellt wurde. In gewissem Maße ist der genetische Algorithmus eine mathematische Simulation des biologischen Evolutionsprozesses. Der Überlebensprozess biologischer Populationen folgt im Allgemeinen den darwinistischen Evolutionsprinzipien. Individuen in der Population werden von der Natur aufgrund ihrer Fähigkeit, sich an die Umwelt anzupassen, ausgewählt oder eliminiert. Die Ergebnisse des Evolutionsprozesses spiegeln sich in der Struktur des Individuums wider. Sein Chromosom enthält mehrere Gene. Der entsprechende Zusammenhang zwischen Phänotyp und Genotyp spiegelt die logische Beziehung zwischen den äußeren Merkmalen und dem inneren Mechanismus des Individuums wider. Passen Sie sich durch Kreuzung und Mutation zwischen Individuen an die natürliche Umgebung an. Biologische Chromosomen werden mathematisch oder computermäßig als eine Reihe von Zahlen dargestellt, die manchmal auch als Individuen bezeichnet werden. Die Anpassungsfähigkeit wird anhand eines numerischen Werts gemessen, der einem Chromosom entspricht oder Minimum. 2. Bibliothek für genetische Algorithmen Geatpy
sizes: int – Populationsgröße, also die Anzahl der Individuen in der Population.
ChromNum: int – Die Anzahl der Chromosomen, also wie viele Chromosomen jedes Individuum hat.Kodierung: str – Chromosomenkodierungsmethode, „BG“: Binär-/Gray-Kodierung; „RI“: echte Ganzzahlkodierung, also eine gemischte Kodierung aus reellen Zahlen und ganzen Zahlen; „P“: Permutationskodierung
Lind: int – Chromosomenlänge der Population.
ObjV: Array – Populationszielfunktionswertmatrix, jede Zeile entspricht dem Zielfunktionswert einer Person, jede Spalte entspricht einem Ziel. FitnV: Array – Populationsindividueller Fitness-Spaltenvektor, jedes Element entspricht der Fitness einer Person Individuum, die Mindestfitness beträgt 0
success
: True oder False, was angibt, ob der Algorithmus erfolgreich gelöst wurde. stopMsg
: Eine Zeichenfolge, die den Grund für das Stoppen des Algorithmus speichert.
optPop
: Populationsobjekt, das die Ergebnisse der Algorithmuslösung speichert. Wenn es keine praktikable Lösung gibt, ist optPop.sizes=0. optPop.Phen ist die Entscheidungsvariablenmatrix, optPop.ObjV ist die Zielfunktionswertmatrix. lastPop
: Das Populationsobjekt der letzten Generation, nachdem die Algorithmusentwicklung abgeschlossen ist.
Vars
: gleich optPop.Phen, was die optimale Lösung ist. Wenn es keine praktikable Lösung gibt, ist Vars=None. ObjV
: gleich optPop.ObjV, dem Zielfunktionswert, der der optimalen Lösung entspricht. Wenn es keine zulässige Lösung gibt, ist ObjV=None. CV
: gleich optPop.CV, hier ist die Matrix für den Grad der Einschränkungsverletzung, die der optimalen Lösung entspricht. Wenn es keine praktikable Lösung gibt, ist CV=None. startTime
: Startzeit der Programmausführung. endTime
: Die Endzeit der Programmausführung.
executeTime
: Die vom Algorithmus benötigte Zeit. success
: True or False, 表示算法是否成功求解。
stopMsg
: 存储着算法停止原因的字符串。
optPop
: 存储着算法求解结果的种群对象。如果无可行解,则optPop.sizes=0。optPop.Phen为决策变量矩阵,optPop.ObjV为目标函数值矩阵。
lastPop
: 算法进化结束后的最后一代种群对象。
Vars
: 等于optPop.Phen,此处即最优解。若无可行解,则Vars=None。
ObjV
: 等于optPop.ObjV,此处即最优解对应的目标函数值。若无可行解,ObjV=None。
CV
: 等于optPop.CV,此处即最优解对应的违反约束程度矩阵。若无可行解,CV=None。
startTime
: 程序执行开始时间。
endTime
: 程序执行结束时间。
executeTime
: 算法 所用时间。
nfev
: 算法评价次数
gd
: (多目标优化且给定了理论最优解时才有) GD指标值。
igd
: (多目标优化且给定了理论最优解时才有) IGD指标值。
hv
: (多目标优化才有) HV指标值。
spacing
nfev
: Anzahl der Algorithmusbewertungen 🎜🎜gd
: (nur verfügbar für Mehrzieloptimierung und die theoretisch optimale Lösung ist angegeben) GD-Indexwert. 🎜🎜igd
: (nur verfügbar für Mehrzieloptimierung und die theoretisch optimale Lösung ist angegeben) IGD-Indikatorwert. 🎜🎜hv
: (nur für Mehrzieloptimierung verfügbar) HV-Indikatorwert. 🎜🎜spacing
: (nur verfügbar für Mehrzieloptimierung) Wert des Abstandsindikators. 🎜f_min Minimum f_avg: Durchschnittsniveau f_std: Standardbeschränkungsniveau
3.2 Best Practices]
Verwenden Sie die Geatpy-Bibliothek, um die kürzesten zu lösen gerichteter azyklischer Graph Road
Code [Kürzester Pfad] 1: Verwenden Sie die Geatpy-Bibliothekheader_regex = '|'.join(['{}'] * len(headers)) header_str = header_regex.format(*[str(key).center(width) for key, width in zip(headers, widths)]) print("=" * len(header_str)) print(header_str) print("-" * len(header_str))
[Verwandte Empfehlungen: Python3-Video-Tutorial
Das obige ist der detaillierte Inhalt vonEine kurze Einführung in die Geatpy-Toolbox des genetischen Python-Algorithmus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!