Рішення транспортної задачі методом диференціальних рент в середовищі програмування delphi

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

Головне вікно розглядуваного delphi-проекту ділиться на три частини: панелі інструментів (складається з двох компонентів типу TSpinEdit та двох кнопок типу TButton), робочої області (містить транспортну таблицю) та статусного рядка, основним призначенням якого є вивід загальної вартості перевезень згідно побудованого оптимального плану. Розглянемо призначення кожного з цих елементів більш детально:

  1. Поля вибору “Пункти призначення” та “Пункти відправлення” відповідають за кількість пунктів які беруть участь в перевезенні, а також розмірність транспортної таблиці.
  2. Кнопки “Знайти оптимальний план методом диференціальних рент” та “Очистити” відповідають за побудову оптимального плану транспортної задачі та підготовку програми до нового прикладу відповідно.
  3. Нарисована на канві форми транспортна таблиця у комірки якої, способом введення з клавіатури, записуються тарифи на перевезення одиниці продукції, загальні потреби у товарі кожного з пунктів призначення і загальна кількість запасів кожного з пунктів відправлення.

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

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

Далі, скориставшись кнопкою “Знайти оптимальний план методом диференціальних рент” запишемо у відповідні комірки таблиці числа, які означатимуть оптимальний план перевезення продукції загальна вартість якого міститься в статусному рядку.

Побудова оптимального плану транспортної задачі
Побудова оптимального плану транспортної задачі

Скачати delphi-проект Побудова оптимального плану транспортної задачі методом диференціальних рент.

Ми в соціальних мережах

12 коментарів

  1. Автор ти врятував мою дупу цією програмою, спасибі заздалегідь!
    Хотів би запитати, чи можеш ти написати що означає кожна змінна в тексті програми? Теж саме про процедури. Дуже вдячний.

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

  3. Емм в першу чергу питання конкретно до коду програми. Цікавлять змінні які присутні в коді, що вони означають і для чого потрібні)
    А про процедури, це все що починаються з procedure на самому початку програми (їх я там 11 штук нарахував)

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

  5. Якщо чесно чим швидше, тим краще … завтра, післязавтра. Це багато часу займає?

  6. а де це подивитися?)) може за допомогою соц. мереж? я можу своє посилання скинути

  7. Добрий день. Можна і мені коментарі за кодом?

  8. Шановний Victor, свою електронну адресу Ви вже вказували при заповненні форми коментування. Тобто він нам уже відомий і дублювати його в самому тексті коментаря не обов’язково.

    А що стосується вашого першого запитання, то ще раз відправляємо вам delphi-проект. Якщо в коді ще якийсь момент виявиться незрозумілим, звертайтеся будемо пробувати пояснити.

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

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

*