solver
Debuguj i rozszerzaj solver parametrów w atopile — symboliczne upraszczanie ograniczeń i wyrażeń
Instalacja
Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.
Instalacja
O skillu
Solver to jądro podsystemu parametrów atopile. Umożliwia ci symboliczne upraszczanie i weryfikację systemów ograniczeń zbudowanych z parametrów, literałów (zbiorów) i wyrażeń. Skill ten wyjaśnia, jak działa solver, jakie niezmienniki są egzekwowane podczas mutacji, i jak debugować oraz rozszerzać jego funkcjonalność. Użyj go, gdy implementujesz lub modyfikujesz rozwiązywanie ograniczeń, granice parametrów lub debugujesz upraszczanie wyrażeń.
Jak używać
Zainstaluj atopile i upewnij się, że masz dostęp do modułu solvera w
src/faebryk/core/solver/. Skill ten jest przeznaczony dla osób pracujących z kodem wewnętrznym atopile.Zapoznaj się z dokumentacją koncepcyjną w
src/faebryk/core/solver/README.md, aby zrozumieć podstawowe pojęcia: korelację zbiorów, grafy tylko do dołączania i kanonikalizację wyrażeń.Przeczytaj
src/faebryk/core/solver/symbolic/invariants.py, aby poznać dokładne niezmienniki egzekwowane podczas wstawiania wyrażeń — to kluczowe dla debugowania i modyfikacji solvera.Jeśli implementujesz nową funkcjonalność, zacznij od
src/faebryk/core/solver/defaultsolver.py(pętla iteracyjna, tryb terminalny vs nieerminalny) isrc/faebryk/core/solver/mutator.py(maszyna mutacji, transformacje, mapy mutacji).Użyj
DefaultSolverdo upraszczania systemów ograniczeń: zdefiniuj parametry numeryczne, ustaw ograniczenia za pomocą wyrażeń, a następnie wywołajsolver.simplify()z grafu i typografu, aby uzyskać mapę mutacji z uproszczonymi literałami.Debuguj problemy z wyrażeniami, śledząc tracebacki mutacji w
MutationMap— sprawdzaj, czy wyrażenia są w formie kanonicznej i czy wszystkie niezmienniki są spełnione na każdym etapie transformacji.