Solver - Solver
Solver jest kawałek oprogramowania matematycznego , ewentualnie w postaci autonomicznego programu komputerowego lub jako biblioteki oprogramowania , że „rozwiązuje” matematyczny problem. Rozwiązujący bierze opisy problemów w jakiejś ogólnej formie i oblicza ich rozwiązanie. W rozwiązaniu kładzie się nacisk na stworzenie programu lub biblioteki, którą można łatwo zastosować do innych problemów podobnego typu.
Typy solverów
Typy problemów z istniejącymi dedykowanymi solverami obejmują:
- Równania liniowe i nieliniowe . W przypadku pojedynczego równania „rozwiązujący” bardziej trafnie nazywa się algorytmem znajdującym pierwiastek .
- Układy równań liniowych .
- Systemy nieliniowe .
- Układy równań wielomianowych , które są szczególnym przypadkiem układów nieliniowych, lepiej rozwiązywane przez specyficzne solwery.
- Problemy optymalizacji liniowej i nieliniowej
- Układy równań różniczkowych zwyczajnych
- Układy równań różniczkowych algebraicznych
- Logiczne problemy ze spełnieniem , w tym rozwiązania SAT
- Ilościowo wartości boolowskie wzór rozwiązują
- Problemy z zaspokojeniem ograniczeń
- Problemy z najkrótszą ścieżką
- Minimalne problemy z drzewami rozpinającymi
- Algorytmy wyszukiwania
- Rozwiązania gier dla problemów z teorii gier
- Problem trzech ciał
General Problem Solver ( GPS ) to szczególny program komputerowy stworzony w 1957 roku przez Herberta Simona , JC Shaw i Allen Newell przeznaczone do pracy jako uniwersalnego problemu solver, które teoretycznie mogą być wykorzystywane do rozwiązywania wszelkich możliwych problemów, które mogą być sformalizowane w system symboliczny, biorąc pod uwagę odpowiednią konfigurację wejść. Był to pierwszy program komputerowy, który oddziela swoją wiedzę o problemach (w postaci domen zasad) z jego strategii, jak rozwiązywać problemy (jako ogólnego silnika ).
Ogólne osoby zajmujące się rozwiązywaniem problemów zazwyczaj używają architektury podobnej do GPS, aby oddzielić definicję problemu od strategii zastosowanej do jego rozwiązania. Zaletą tego oddzielenia jest to, że rozwiązujący nie zależy od szczegółów żadnego konkretnego wystąpienia problemu. Strategia stosowana przez solwerów ogólnych opierała się na ogólnym algorytmie (generalnie opartym na cofaniu ), którego jedynym celem była kompletność. Powoduje to wykładniczy czas obliczeniowy, który dramatycznie ogranicza ich użyteczność. Współczesne solwery wykorzystują bardziej wyspecjalizowane podejście, które wykorzystuje strukturę problemów, tak aby solver spędzał jak najmniej czasu na wycofywaniu się.
W przypadku problemów określonej klasy (np. Układów równań nieliniowych ) dostępnych jest zwykle wiele algorytmów. Niektóre solwery implementują wiele algorytmów.
Zobacz też
- TK Solver : Narzędzie do rozwiązywania problemów oparte na regułach z możliwością rozwiązywania problemów.
- Oprogramowanie matematyczne dla innych typów oprogramowania matematycznego.
- Środowisko rozwiązywania problemów : specjalistyczne oprogramowanie łączące zautomatyzowane metody rozwiązywania problemów z narzędziami zorientowanymi na człowieka do kierowania rozwiązywaniem problemów.
- Teorie spełnialności modulo dla rozwiązujących formuły logiczne w odniesieniu do kombinacji teorii tła wyrażonych klasyczną logiką pierwszego rzędu z równością.
- Rozumnik semantyczny
Listy rozwiązujących
- Lista solwerów programowania liniowego
- Lista solwerów SMT
- Lista rozwiązań dla równań różniczkowych zwyczajnych