Delphi-програма реалізує процедуру відшукання розв’язку задачі лінійного програмування і використовує для цього метод штучного базису. Відмітимо, що данйи метод викорисовується в тому випадку, коли модель задачі не містить достатньої кількості або немає взагалі базисних (одиничних) векторів. Основна ідея методу штучного базису полягає в тому, що шляхом введення до відповідних обмежень моделі задачі штучних змінних створюються штучні вектори, які утворюють базис необхідний для ров’язку задачі. По мірі ров’язання ці вектори виводяться із базису і розв’язок задачі продовжуємо стандартним симплекс методом.
Далі, перейдемо до детального розгляу кожного з елементів головної форми проекту. Отже, головне вікно програми ділиться на три частини:
- Панель існтрументів: містить два компоненти типу TSpinEdit (відповідають за розмірність симплекс таблиці) та дві кнопки типу TButton (“Знайти оптимальний план задачі лінійного програмування” та “Очитстити”). Перша з них, реалізує процедуру побудови оптиамльного розв’язку задачі лінійного програмування за двоїстим симплекс методом і друга – готує проек до нового прикладу.
- Робоча область: містить таблицю типу TStringGrid, у комірки якої, способом введення з клавіатури, заносяться дані початкової симплекс таблиці.
- Область виводу рузультатів: містить компонент TPageControl, який, по ходу виконання програми доповнюється сторінками TTableSheet та таблицями TStringGrid, кожна з яких містять опорний план, отриманий на кожній ітерації алгоритму (оптимальний план заданої задачі міститься в останній таблиці).
Після того, як призначення кожного з елементів головної форми відомо, перейдемо до прикладу. Отже, нехай потрібно знайти максимальне значення функції мети при обмеженнях:
Для цього, систему обмежень запишемо у канонічній формі та побудуємо початкову симплекс таблицю:
Далі, запустивши delphi-проект на виконання та вказавши у відповідних полях кількість рядків і стовпців таблиці TStringGrid (для нашого прикладу їх потрібно 7 і 11 відповідно), заповнюємо її даними початкової симплекс таблиці.
На наступному кроці, скориставшись кнопкою “Знайти оптимальний план задачі лінійного програмування” отримуємо шуканий розв’язок: