python3 examples/thermodynamic_example.py
python3 examples/use_cases/drug_discovery.py
Example: examples/use_cases/drug_discovery.py
Problem: wielokryterialna optymalizacja cząsteczki (binding + ADMET)
Solution (skrót):
Projected physicochemical profile:
molecular_weight: 378.2
logP: 2.7
tpsa: 68.4
hbd: 1.3
hba: 5.4
rotatable_bonds: 3.1
Korzyści vs alternatywy:
Example: examples/use_cases/healthcare.py
Problem: harmonogramowanie sal operacyjnych i grafiku personelu.
Solution (skrót):
Korzyści vs alternatywy:
Example: examples/use_cases/bioinformatics.py
Problem: sekwencyjne kroki analizy genomowej z ograniczeniami RAM/CPU.
Solution (skrót):
Korzyści vs alternatywy:
Example: examples/use_cases/logistics_supply_chain.py
Problem: minimalizacja dystansu przy zachowaniu okien czasowych.
Solution (skrót):
Korzyści vs alternatywy:
Example: examples/use_cases/physics_simulations.py
Problem: planowanie eksperymentów z czasami konfiguracji.
Solution (skrót):
Korzyści vs alternatywy:
Jeśli problem_type nie ma dedykowanego modelu energii, system używa ConstraintEnergy,
która zwraca tylko raw_sample. Możesz zmapować próbkę na zakresy:
import math
from nlp2cmd.generation.thermodynamic import OptimizationProblem
raw_sample = result.solution.get("raw_sample", [])
constraints = {c["var"]: c for c in problem.constraints if c.get("type") == "range"}
projected = {}
for idx, var in enumerate(problem.variables):
raw_value = raw_sample[idx] if idx < len(raw_sample) else 0.0
if var in constraints:
min_val = float(constraints[var]["min"])
max_val = float(constraints[var]["max"])
projected[var] = min_val + (max_val - min_val) / (1 + math.exp(-raw_value))
print(projected)
| Podejście | Zalety | Ograniczenia |
|---|---|---|
| DSL rules | <5 ms, zero kosztów LLM | Brak optymalizacji wielokryterialnej |
| LLM-only | Naturalne opisy, szybkie prototypowanie | Brak gwarancji constraintów |
| Thermodynamic | Constrainty + sampling + energia | Wymaga konfiguracji problemu |
Tip: dla szybkiej demonstracji uruchom examples/thermodynamic_example.py.