Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Pengenalan ringkas kepada kotak alat algoritma genetik Python Geatpy

Pengenalan ringkas kepada kotak alat algoritma genetik Python Geatpy

WBOY
WBOYke hadapan
2022-09-09 13:38:562369semak imbas

[Cadangan berkaitan: Tutorial video Python3]

1.

Algoritma genetik ialah sejenis algoritma carian yang dibina secara buatan dengan mensimulasikan mekanisme genetik biologi dan pemilihan semula jadi Pada tahap tertentu, algoritma genetik ialah simulasi matematik proses evolusi biologi. Proses kelangsungan hidup populasi biologi umumnya mengikut prinsip evolusi Darwin Individu dalam populasi dipilih atau disingkirkan oleh alam semula jadi berdasarkan keupayaan mereka untuk menyesuaikan diri dengan persekitaran. Hasil proses evolusi dicerminkan dalam struktur individu Kromosomnya mengandungi beberapa gen Hubungan yang sepadan antara fenotip dan genotip mencerminkan hubungan logik antara ciri luaran dan mekanisme dalaman individu. Menyesuaikan diri dengan persekitaran semula jadi melalui persilangan dan mutasi antara individu. Kromosom biologi diwakili secara matematik atau komputer sebagai rentetan nombor, masih dipanggil kromosom, kadangkala juga dipanggil individu diukur dengan nilai berangka yang sepadan dengan kromosom pemilihan atau penyingkiran kromosom adalah berdasarkan masalah yang dihadapi atau minimum.

2. Perpustakaan Algoritma Genetik Geatpy

2.1 Pengenalan kepada Parameter Geatpy Kotak Alat Algoritma Genetik

Dokumen rujukan rasmi API

parameter populasi[Atribut penting: Chrom, Phen, Objv, CV, FitnV]

  • saiz: int - saiz populasi, iaitu , bilangan populasi individu.
  • ChromNum: int - Bilangan kromosom, iaitu, bilangan kromosom setiap individu.
  • Pengekodan: str - kaedah pengekodan kromosom, 'BG': pengekodan binari/Kelabu 'RI': pengekodan integer sebenar, iaitu pengekodan bercampur bagi nombor nyata dan integer
  • Bidang: tatasusunan - matriks penyahkodan
  • Chrom: tatasusunan - matriks kromosom populasi, setiap baris sepadan dengan kromosom individu.
  • Lind : int - panjang kromosom populasi.
  • ObjV: tatasusunan - matriks nilai fungsi objektif populasi, setiap baris sepadan dengan nilai fungsi objektif individu, setiap lajur sepadan dengan objektif
  • FitnV: tatasusunan - vektor lajur kecergasan individu populasi, setiap Elemen sepadan dengan kecergasan individu Kesesuaian minimum ialah 0
  • CV: tatasusunan - CV (Nilai Pelanggaran Kekangan) ialah matriks yang digunakan untuk menerangkan secara kuantitatif tahap pelanggaran syarat kekangan kepada individu dan setiap lajur sepadan dengan A kekangan
  • Phen: tatasusunan - matriks fenotip populasi (iaitu, matriks yang terdiri daripada pembolehubah keputusan yang diwakili oleh setiap kromosom populasi selepas penyahkodan).
  • Jika kekangan ditetapkan berdasarkan peraturan kebolehlaksanaan melalui matriks CV, maka kekangan ketaksamaan perlu ≤, dan kekangan kesamaan perlu diserahkan kepada abs() (kerana ia mengikut prinsip bahawa lebih besar nilai, lebih kecil kecergasan)

  • ea.Problem.init () lbin dan ubin (julat pembolehubah keputusan Matriks sempadan) mewakili pembukaan dan penutupan selang julat, 1 ditutup 0 selang terbuka

Pengenalan parameter hasil Geatpy

success: Betul atau Salah, menunjukkan algoritma Sama ada penyelesaian itu berjaya.

stopMsg: Rentetan yang menyimpan sebab mengapa algoritma berhenti.

optPop: Objek populasi yang menyimpan hasil penyelesaian algoritma. Jika tiada penyelesaian yang boleh dilaksanakan, optPop.sizes=0. optPop.Phen ialah matriks pembolehubah keputusan, optPop.ObjV ialah matriks nilai fungsi objektif.

lastPop: Objek populasi generasi terakhir selepas evolusi algoritma selesai.

Vars: sama dengan optPop.Phen, yang merupakan penyelesaian optimum di sini. Jika tiada penyelesaian yang boleh dilaksanakan, Vars=Tiada.

ObjV: sama dengan optPop.ObjV, iaitu nilai fungsi objektif yang sepadan dengan penyelesaian optimum. Jika tiada penyelesaian yang boleh dilaksanakan, ObjV=Tiada.

CV: sama dengan optPop.CV, iaitu matriks pelanggaran kekangan yang sepadan dengan penyelesaian optimum. Jika tiada penyelesaian yang boleh dilaksanakan, CV=Tiada.

startTime: Masa mula pelaksanaan program.

endTime: Masa tamat pelaksanaan program.

executeTime: Masa yang diambil oleh algoritma.

nfev: Bilangan penilaian algoritma

gd: (hanya tersedia apabila pengoptimuman berbilang objektif dan penyelesaian optimum teori diberikan) Nilai indeks GD.

igd: (Tersedia hanya apabila pengoptimuman berbilang objektif diberikan dan penyelesaian optimum teori diberikan) Nilai penunjuk IGD.

hv: (hanya untuk pengoptimuman berbilang objektif) Nilai penunjuk HV.

spacing: (hanya untuk pengoptimuman berbilang objektif) Nilai penunjuk jarak.

3. Amalan Terbaik

Contoh Kod 3.1 | 🎜>

gen: algebra evolusi eval: rekod bilangan penilaian f_opt: nilai fungsi objektif individu optimum kontemporari = Nilai fungsi maksimum daripada populasi kontemporari

f_min minimum f_avg: tahap purata 3.2 Amalan Terbaik
header_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))

Gunakan perpustakaan geatpy untuk menyelesaikan laluan terpendek bagi graf akiklik terarah

Kod [Laluan Terpendek] 1: Gunakan perpustakaan geatpy


[Cadangan berkaitan:
Tutorial video Python3
]

Atas ialah kandungan terperinci Pengenalan ringkas kepada kotak alat algoritma genetik Python Geatpy. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:jb51.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam