Platypus

Zo stránky Parametrické a Generatívne 3D modelovanie

Platypus je knižnica v jazyku Python, ktorá poskytuje nástroje na riešenie viacrozmerných optimalizačných problémov. V skratke, Platypus implementuje niekoľko algoritmov evolučnej optimalizácie, ktoré hľadajú najlepšie možné riešenia v priestore viacerých cieľových funkcií. Tieto algoritmy pracujú na základe populácií, kde jedinci v populácii predstavujú potenciálne riešenia problému.

Tu je stručný prehľad niektorých hlavných funkcií Platypusu a príklad ich použitia:

Definícia problému: Najprv musíte definovať váš optimalizačný problém. To zahŕňa definovanie priestoru parametrov (rozsahy, v ktorých môžu parametre prijímať hodnoty) a cieľových funkcií (funkcie, ktoré sa snažíte minimalizovať alebo maximalizovať).

from platypus import Problem, Real

# Define optimization problem
problem = Problem(2, 2)  # 2 parameters, 2 objectives
problem.types[:] = [Real(0, 10), Real(0, 10)]  # Parameter ranges
problem.function = your_objective_function  # Your objective function

Ak v definícii problému nepoužijete konkrétnu špecifikáciu, či sa majú ohodnotenia maximalizovať alebo minimalizovať, Platypus predpokladá, že každá z cieľových funkcií by mala byť minimalizovaná. To znamená, že Platypus bude hľadať riešenia, ktoré minimalizujú hodnoty cieľových funkcií.

Výber algoritmu: Následne vyberiete algoritmus z Platypusu, ktorý chcete použiť na riešenie vášho problému.

from platypus import NSGAII

# Define and run the optimizer
algorithm = NSGAII(problem, population_size=100)
algorithm.run(100)  # Number of generations

Vyhodnotenie výsledkov: Nakoniec si môžete prezrieť výsledky optimalizácie a zistiť najlepšie možné riešenia.

# Print the results
for solution in algorithm.result:
    print("Parameters:", solution.variables)  # Decision variable values
    print("Objectives:", solution.objectives)  # Fitness values evaluated by the function


Tento kód vytvorí a vyrieši optimalizačný problém s dvoma parametrami a dvomi cieľovými funkciami pomocou NSGA-II algoritmu. Výsledky sa následne vypíšu na obrazovku.

Platypus je užitočným nástrojom pre riešenie viacrozmerných optimalizačných problémov a poskytuje širokú škálu algoritmov, ktoré možno použiť v závislosti od špecifík vášho problému.


Zdroje:
Dokumentácia - Knižnica Platypus
Dokumentácia - Blender Python API