Програмна реалізація методу штучного базису в середовищі delphi

Delphi-програма реалізує процедуру відшукання розв’язку задачі лінійного програмування і використовує для цього метод штучного базису. Відмітимо, що данйи метод викорисовується в тому випадку, коли модель задачі не містить достатньої кількості або немає взагалі базисних (одиничних) векторів. Основна ідея методу штучного базису полягає в тому, що шляхом введення до відповідних обмежень моделі задачі штучних змінних створюються штучні вектори, які утворюють базис необхідний для ров’язку задачі. По мірі ров’язання ці вектори виводяться із базису і розв’язок задачі продовжуємо стандартним симплекс методом.

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

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

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

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

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

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

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

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

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

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

Залишити коментар

Your email address will not be published. Required fields are marked *

*