lab1 предварительная версия
This commit is contained in:
49
lab1/main.py
Normal file
49
lab1/main.py
Normal file
@@ -0,0 +1,49 @@
|
||||
import os
|
||||
|
||||
from gen import GARunConfig, genetic_algorithm
|
||||
|
||||
# Запуск эксперимента с генетическим алгоритмом
|
||||
config = GARunConfig(
|
||||
x_min=3.1,
|
||||
x_max=20.0,
|
||||
precision_digits=3,
|
||||
pop_size=5,
|
||||
pc=0.7,
|
||||
pm=0.01,
|
||||
max_generations=200,
|
||||
seed=17,
|
||||
save_generations=[
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
10,
|
||||
25,
|
||||
49,
|
||||
99,
|
||||
150,
|
||||
199,
|
||||
], # поколения для сохранения графиков
|
||||
results_dir="results",
|
||||
)
|
||||
|
||||
# Запускаем генетический алгоритм
|
||||
result = genetic_algorithm(config)
|
||||
|
||||
# Выводим результаты
|
||||
print(f"Лучшее x: {result.best_x:.4f}")
|
||||
print(f"Лучшее f(x): {result.best_f:.6f}")
|
||||
print(f"Количество поколений: {result.generations}")
|
||||
print(f"Время выполнения: {result.time_ms:.2f} мс")
|
||||
print(f"Количество бит: {result.L}")
|
||||
|
||||
# Выводим информацию о сохраненных графиках поколений
|
||||
if config.save_generations:
|
||||
print(
|
||||
f"\nГрафики для поколений {config.save_generations} сохранены в папку '{config.results_dir}/'"
|
||||
)
|
||||
for gen in config.save_generations:
|
||||
if gen < result.generations:
|
||||
filename = f"generation_{gen:03d}.png"
|
||||
filepath = os.path.join(config.results_dir, filename)
|
||||
print(f" - Поколение {gen}: {filepath}")
|
||||
Reference in New Issue
Block a user