Розв'язок задачі лінійного програмування двоїстим симплекс методом в середовищі програмування delphi

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

Далі, перейдемо до детального розгляу кожного з елементів головної форми проекту, після чого, з його допомогою, знайдемо розв'язок конкретної задачі лінійного програмування. Отже, головне вікно програми ділиться на три частини:

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

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

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

Двоїстий симплекс метод на delphi

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

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

Двоїстий симплекс метод на delphi

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

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

Двоїстий симплекс метод на delphi

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

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

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

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