Język modelowania algebraicznego
Języki modelowania algebraicznego ( AML ) to języki programowania wysokiego poziomu służące do opisywania i rozwiązywania problemów o dużej złożoności w obliczeniach matematycznych na dużą skalę (tj. problemów typu optymalizacji na dużą skalę). Jedna szczególna zaleta niektórych algebraicznych języków modelowania, takich jak AIMMS , AMPL , GAMS , Gekko , MathProg , Mosel i OPL jest podobieństwo ich składni do matematycznego zapisu problemów optymalizacyjnych. Pozwala to na bardzo zwięzłe i czytelne zdefiniowanie problemów z dziedziny optymalizacji, co jest wspierane przez pewne elementy języka, takie jak zbiory, indeksy, wyrażenia algebraiczne, potężny rzadki indeks i zmienne obsługujące dane, ograniczenia o dowolnych nazwach . Sformułowanie algebraiczne modelu nie zawiera wskazówek, jak go przetworzyć.
AML nie rozwiązuje bezpośrednio tych problemów; zamiast tego wywołuje odpowiednie algorytmy zewnętrzne w celu uzyskania rozwiązania. Algorytmy te nazywane są solwerami i mogą obsługiwać pewne rodzaje problemów matematycznych, takie jak:
- problemy liniowe
- problemy z liczbami całkowitymi
- (mieszane liczby całkowite) problemy kwadratowe
- mieszane problemy komplementarności
- programy matematyczne z ograniczeniami równowagi
- systemy nieliniowe z ograniczeniami
- ogólne problemy nieliniowe
- programy nieliniowe z nieciągłymi pochodnymi
- nieliniowe problemy całkowitoliczbowe
- globalne problemy optymalizacyjne
- problemy optymalizacji stochastycznej
Podstawowe elementy
Podstawowe elementy AML to:
- interpreter języka modelowania (sam AML)
- linki do solverów
- interfejsy użytkownika (UI)
- urządzenia do wymiany danych
Zasady projektowania
Większość AML przestrzega pewnych zasad projektowania:
- zrównoważona mieszanka elementów deklaratywnych i proceduralnych
- otwarta architektura i interfejsy do innych systemów
- różne warstwy z separacją:
- model i dane
- metody modelowe i rozwiązania
- model i system operacyjny
- Model i interfejs
Generowanie modelu opartego na danych
Większość języków modelowania wykorzystuje podobieństwa między modelami strukturalnymi a relacyjnymi bazami danych, zapewniając warstwę dostępu do bazy danych, która umożliwia systemowi modelowania bezpośredni dostęp do danych z zewnętrznych źródeł danych (np. tych programów obsługi tabel dla AMPL). Wraz z udoskonalaniem technologii analitycznych stosowanych w procesach biznesowych modele optymalizacyjne stają się integralną częścią systemów wspomagania decyzji ; modele optymalizacji mogą być ustrukturyzowane i warstwowe, aby reprezentować i wspierać złożone procesy biznesowe. W takich aplikacjach wielowymiarową strukturę danych typową dla systemów OLAP można bezpośrednio odwzorować na modele optymalizacyjne, a typowe operacje MDDB można przełożyć na operacje agregacji i dezagregacji na modelu bazowym
Historia
Języki modelowania algebraicznego mają swoje korzenie w programach generujących macierze i piszących raporty (MGRW), opracowanych pod koniec lat siedemdziesiątych. Niektóre z nich to MAGEN, MGRW (IBM), GAMMA.3, DATAFORM i MGG/RWG. Systemy te uprościły przekazywanie wystąpień problemów do algorytmów rozwiązania oraz generowanie czytelnego raportu wyników.
Wczesny generator macierzy dla LP został opracowany około 1969 roku w Mathematisch Centrum (obecnie CWI) w Amsterdamie. Jego składnia była bardzo zbliżona do zwykłej notacji matematycznej, przy użyciu indeksów dolnych en sigmas. Wejście do generatora składało się z oddzielnych sekcji dla modelu i danych. Znalazł użytkowników na uczelniach iw przemyśle. Głównym użytkownikiem przemysłowym był producent stali Hoogovens (obecnie Tata Steel), gdzie był używany przez prawie 25 lat.
po raz pierwszy analizuje się strukturę modeli programowania matematycznego zaczerpniętą z prawdziwego życia, aby podkreślić naturalne grupowanie zmiennych i ograniczenia wynikające z takich modeli. Doprowadziło to do powstania funkcji struktury danych, które wspierały modelowanie strukturalne; w tym paradygmacie wszystkie tablice wejściowe i wyjściowe, wraz ze zmiennymi decyzyjnymi, są definiowane w kategoriach tych struktur, w sposób porównywalny z użyciem indeksów dolnych i zbiorów. Jest to prawdopodobnie najbardziej zauważalna cecha wspólna dla wszystkich współczesnych AML i umożliwiła z czasem oddzielenie struktury modelu od jego danych oraz zgodność między podmiotami w modelu MP a danymi w relacyjnych bazach danych. Tak więc model można ostatecznie utworzyć i rozwiązać na różnych zestawach danych, po prostu modyfikując jego zestawy danych.
Korespondencja między jednostkami modelującymi a relacyjnymi modelami danych umożliwiła wówczas bezproblemowe generowanie instancji modeli poprzez pobieranie danych z korporacyjnych baz danych. Ta funkcja odpowiada teraz za dużą użyteczność optymalizacji w rzeczywistych aplikacjach i jest obsługiwana przez większość znanych języków modelowania.
Podczas gdy języki modelowania algebraicznego były zwykle izolowanymi, wyspecjalizowanymi i komercyjnymi językami, ostatnio języki modelowania algebraicznego zaczęły pojawiać się w postaci wyspecjalizowanych bibliotek open source w ramach języka ogólnego przeznaczenia, takiego jak Gekko lub Pyomo dla Pythona lub JuMP dla języka Julia .
- ^ a b c d Kallrath, Józef (2004). Języki modelowania w optymalizacji matematycznej . Wydawnictwo Naukowe Kluwer. ISBN 978-1-4020-7547-6 .
- Bibliografia _ David M. Gay; Briana W. Kernighana (1990). „Język modelowania do programowania matematycznego” . Nauka o zarządzaniu . 36 (5): 519–554–83. doi : 10.1287/mnsc.36.5.519 .
- Bibliografia _ Prins, chrześcijanin; Sevaux, Marc (2002). Zastosowania optymalizacji z Xpress-MP . Ograniczona optymalizacja Dash. ISBN 0-9543503-0-8 .
- ^ ab Gautam Mitra; Cormaca Lucasa; Shirley Moody; Bjarniego Kristjanssona (1995). „Zbiory i indeksy w modelowaniu programowania liniowego i ich integracja z relacyjnymi modelami danych” . Optymalizacja obliczeniowa i aplikacje . 4 (3): 262–283.
- ^ [1] Programy obsługi tabel baz danych i arkuszy kalkulacyjnych dla AMPL
- ^ Koutsoukis, N.; Mitra, G.; Lucas, C. (1999). „Dostosowanie przetwarzania analitycznego on-line do modelowania decyzji: interakcja technologii informacyjnych i decyzyjnych” . Systemy wspomagania decyzji . 26 (1): 1–30. doi : 10.1016/S0167-9236(99)00021-4 . Źródło 22 listopada 2017 r .
- Bibliografia _ M. Anthonisse, System wejściowy dla problemów programowania liniowego, Statistica Neerlandica 24 (1970), 143-153.
- Bibliografia _ Gautam Mitra (1982). „UIMP: interfejs użytkownika do programowania matematycznego” (PDF) . Transakcje ACM dotyczące oprogramowania matematycznego . 8 (3): 229–255. doi : 10.1145/356004.356005 . S2CID 3948431 . Zarchiwizowane od oryginału (PDF) w dniu 18.01.2014 . Źródło 2014-01-16 .