24 października 2021


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):

wz_1

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:

wz_2

jednocześnie narzucając ograniczenia:

wz_3

Jako że jest to optymalizacja funkcji dwóch zmiennych łatwo możemy ją przedstawić na płaszczyźnie (rys. 1):

rys_1_programowanie_liniowe


cały artykuł dostępny jest w wydaniu 4 (55) kwiecień 2012