lab1 предварительная версия

This commit is contained in:
2025-09-10 15:45:02 +03:00
commit 010efa17e0
3 changed files with 364 additions and 0 deletions

49
lab1/main.py Normal file
View 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}")