Toolverse
Wszystkie skille

constrained-optimization

autor: parcadei

Rozwiąż problemy optymalizacji z ograniczeniami metodami Lagrange'a i warunkami KKT

Instalacja

Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.

Instalacja

Szybkie info

Kategoria
Data Science
Wyświetlenia
22

O skillu

Skill do rozwiązywania zadań optymalizacji z ograniczeniami równościowymi i nierównościowymi. Zawiera strategie klasyfikacji ograniczeń, metodę Lagrange'a dla warunków równościowych, warunki KKT dla nierównościowych oraz metody kary i barier. Integruje się z bibliotekami SciPy, SymPy i Z3 do automatycznego znajdowania optimów i weryfikacji rozwiązań.

Jak używać

  1. Zainstaluj skill w swoim środowisku Claude, upewniając się że masz dostęp do narzędzi Bash i Read.

  2. Zidentyfikuj typ ograniczeń w swoim problemie: czy są to ograniczenia równościowe (h(x) = 0), nierównościowe (g(x) ≤ 0) czy ograniczenia na zmienne (l ≤ x ≤ u). Ta klasyfikacja determinuje wybór metody.

  3. Dla problemów z ograniczeniami równościowymi użyj metody Lagrange'a. Skonstruuj funkcję Lagrange'a L(x, lambda) = f(x) + suma lambda_j * h_j(x), następnie uruchom: uv run python -m runtime.harness scripts/sympy_compute.py solve z odpowiednim systemem równań gradientu i ograniczeń.

  4. Dla problemów z ograniczeniami nierównościowymi zastosuj warunki KKT. Rozszerz Lagrange'a o mnożniki mu_i, sprawdzając warunek komplementarności mu_i * g_i(x) = 0. Uruchom: uv run python -m runtime.harness scripts/z3_solve.py prove "complementary_slackness".

  5. Alternatywnie, użyj bezpośrednio SciPy do rozwiązania numerycznego: uv run python -c z funkcją scipy.optimize.minimize, metodą SLSQP, przekazując ograniczenia jako listę słowników z typami 'eq' i 'ineq' oraz bounds dla zmiennych.

  6. Jeśli metody analityczne nie zbiegają, zastosuj metody kary (dodaj P(x) = rho * suma max(0, g_i(x))^2) lub metody barier (dodaj B(x) = -suma log(-g_i(x))), iteracyjnie zmieniając parametry kary lub bariery.

Podobne skille