Podczas pracy inżyniera nad różnego typu projektami konieczna jest umiejętność szybkiego rozwiązywania małych problemów, często nietypowych. Potrzebna wówczas może okazać się umiejętność szybkiego programowania w przyjaznym środowisku oraz znajomość programów, mogących znacznie przyspieszyć definiowanie i rozwiązywanie danego zagadnienia. W cyklu artykułów, które prezentowane będą w kolejnych numerach czasopisma, chcemy przedstawić niezwykle przydatne narzędzia (zwykle darmowe) razem z przykładami ilustrującymi typy problemów, które za pomocą tych narzędzi można skutecznie rozwiązać.
Adam Piechna
Wniniejszym artykule, na początek, proponujemy krótkie wprowadzenie do programowania liniowego. Następnie postawiony zostanie prosty problem optymalizacyjny, a rozwiązanie uzyskamy stosując środowisko obliczeniowe GNU Octave.
Zagadnienie programowania liniowego
Podejmowanie ważnych decyzji niejednokrotnie przysparza nam wiele trudności. Pomocne w dokonywaniu korzystnych wyborów może okazać się modelowanie matematyczne. Do przedstawienia wielu z nich można użyć opisu matematycznego zwanego zadaniem programowania liniowego. W ogólnej formie zadanie to polega na znalezieniu ekstremum funkcji (nazywanej funkcją celu):
ograniczonej poprzez zbiór rozwiązań układu złożonego z równań i nierówności liniowych (nazywanych ograniczeniami).
Przedstawione zagadnienie jest stosunkowo proste do rozwiązania. Przeanalizujmy prosty, abstrakcyjny na razie, przykład.
Chcemy zmaksymalizować funkcję dwóch zmiennych:
jednocześnie narzucając ograniczenia:
Jako że jest to optymalizacja funkcji dwóch zmiennych łatwo możemy ją przedstawić na płaszczyźnie (rys. 1):
cały artykuł dostępny jest w wydaniu 4 (55) kwiecień 2012