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

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

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

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

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

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

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

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

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

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

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

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

Коментарі

12 коментарів по темі “Рішення транспортної задачі методом диференціальних рент в середовищі програмування delphi”
  1. Дмитрий пише:

    Автор ти врятував мою дупу цією програмою, спасибі заздалегідь!

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

  2. admin пише:

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

  3. Дмитрий пише:

    Емм в першу чергу питання конкретно до коду програми. Цікавлять змінні які присутні в коді, що вони означають і для чого потрібні)

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

  4. Дмитрий пише:

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

  5. admin пише:

    На коли Вам це потрібно?

  6. Дмитрий пише:

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

  7. admin пише:

    Добре, спробую щось накидати !!!

  8. Дмитрий пише:

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

  9. admin пише:

    Я відправлю Вам електронкою !!!

  10. Дмитрий пише:

    Чекаю !!

  11. Victor пише:

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

  12. admin пише:

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

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

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