Знаходження розв'язку задачі лінійного програмування в середовищі програмування delphi

Програма призначена для знаходження розв'язку задачі лінійного програмування, при якому значення цільової функції досягає свого максимуму і в якості алгоритму для цього, використовує ітераційний процес симплекс методу. Детально розглядати загальну інформацію про лінійне програмування та опис алгоритмів рішення задач такого типу, зокрема і симплекс методом тут не будемо. Для цього, на сайті існує спеціальний розділ під назвою Дослідження операцій, де крім теоретичної частини Ви зможете знайти докладні приклади вирішення конкретних завдань. Тобто перейдемо до безпосереднього розгляду delphi-проекту.

Головне вікно програми ділиться на три частини:

  1. Панель існтрументів: містить два компоненти типу TSpinEdit (відповідають за розмірність симплекс таблиці) та дві кнопки типу TButton ("Знайти оптимальний план задачі лінійного програмування" та "Очитстити"). Перша з них, реалізує процедуру побудови оптиамльного розв'язку задачі лінійного програмування за симплекс методом і друга — готує проек до нового прикладу.
  2. Робоча область: містить таблицю типу TStringGrid, у комірки якої, способом введення з клавіатури, заносяться дані початкової симплекс таблиці.
  3. Область виводу рузультатів: містить компонент TPageControl, який, по ходу виконання програми доповнюється сторінками TTableSheet та таблицями TStringGrid, кожна з яких містять опорний план, отриманий на кожній ітерації алгоритму (оптимальний план заданої задачі міститься в останній таблиці).

Після того, як призначення кожного з елементів головної форми відомо, перейдемо до конкретного прикладу задачі лінійного програмування, і спробуємо розв'язати його з допомогою розглядуваної delphi-програми.

Отже, нехай потрібно знайти максимальне значення функції мети при обмеженнях:

Для цього, на першому кроці,  систему обмежень запишемо у канонічній формі та побудуємо початкову симплекс таблицю:

Початкова симплекс таблиця задачі

Далі, запустивши delphi-проект на виконання та вказавши у відповідних полях кількість рядків і стовпців таблиці TStringGrid (для нашого прикладу їх потрібно 6 і 10 відповідно), заповнюємо її даними початкової симплекс таблиці.

Заповнення симплекс таблиці даними

Заповнення симплекс таблиці даними

На наступному кроці, скориставшись кнопкою "Знайти оптимальний план задачі лінійного програмування" отримуємо шуканий розв'язок:

Симплекс метод на delphi

Знаходження оптимального плану задачі лінійного програмування

Скачати delphi-проект Знаходження оптимального плану задачі лінійного програмування за симплекс методом.

Матеріал був корисним, поділись в соціальних мережах:

Якщо тобі сподобалась дана тема, залиш свій коментар