Ссылка на архив

Решение транспортной задачи распределения методом потенциалов

Содержание

Введение

1. Формулировка проблемы в практической области

2. Построение моделей транспортной задачи

3. Реализация алгоритма программы

 Руководство пользователя

 Заключение

Список используемой литературы


Введение

Линейное программирование (ЛП) - наука о методах исследования и нахождения экстремумов линейной функции, на неизвестные которой наложены линейные ограничения. То есть, задача линейного программирования, это нахождение минимального или максимального значения линейной функции с учётом системы из линейных уравнений-ограничений. Всё вместе это даёт математическую модель, какого-либо экономического процесса.

Экономико-математическая модель - это математическое описание экономического процесса или объекта. Такие модели используются для исследований и анализа экономических процессов.

Все задачи линейного программирования можно разделить на следующие группы:

· задачи об использовании ресурсов, сырья, планирования производства;

· задачи составления рациона

· Задачи об использовании мощностей, загрузке оборудования

· Задачи о раскрое материалов

· Транспортные задачи

Их рассмотрение здесь не приведено, так как не является необходимым для данного проекта.

Но надо представлять общую задачу линейного программирования (ОЗЛП), так как для составления алгоритма необходимо понимать математический смысл решения задачи. Ниже, приведено математическое описание общего вида задачи линейного программирования.

Геометрически область допустимых решений такой задачи можно представить как многогранник в n мерном пространстве


Пример геометрического представления области допустимых решений задачи, где F - линия целевой функции, F=0 начальное положение функции, F=Fmax оптимальное положение функции, A, B, C, D, E - вершины многоугольника.

Причём, как правило, оптимальное решение это одна из его вершин. А поиск оптимума выражается в переходе от одной вершины к другой и выборе оптимальной.

Рассмотрена основная теоремы линейного программирования, из которой следует, что если задача линейного программирования имеет оптимальное решение, то оно соответствует хотя бы одной угловой точке многогранника решений и совпадает, по крайней мере, с одним из допустимых базисных решений системы ограничений. Там же был указан путь решения любой задачи линейного программирования: перебрать конечное число допустимых базисных решений системы ограничений и выбрать среди них то, на котором функция цели принимает оптимальное решение. Геометрически это соответствует перебору всех угловых точек многогранника решений. Такой перебор в конце концов приведет к оптимальному решению (если оно существует), однако его практическое осуществление связано с огромными трудностями, так как для реальных задач число допустимых базисных решений хотя и конечно, но может быть чрезвычайно велико.

Число перебираемых допустимых базисных решений можно сократить, если производить перебор не беспорядочно, а с учетом изменений линейной функции, т.е. добиваясь того, чтобы каждое следующее решение было "лучше" (или, по крайней мере, "не хуже"), чем предыдущее, по значениям линейной функции (увеличение ее при отыскании максимума F-> max, уменьшение — при отыскании минимума F-> min).


1. Формулировка проблемы в практической области

Отимизация выбора распределение (транспортировка) продукции, находящейся на складах, по предприятиям-потребителям с целью, определения наиболее экономичного плана перевозки продукции одного вида из нескольких пунктов отправления в пункты их назначения.

Цель работы – определение метода расчета плана перевозки продукции со

склада по предприятиям-потребителям, при котором обеспечивается минимальные транспортные расходы на перевозку всей продукции.

Формальная (математическая постановка задач)

Задача о размещении (транспортная задача) Это задача, в которой работы и ресурсы измеряются в одних и тех же единицах. В таких задачах ресурсы могут быть разделены между работами, и отдельные работы могут быть выполнены с помощью различных комбинаций ресурсов. Примером типичной транспортной задачи (ТЗ) является распределение (транспортировка) продукции, находящейся на складах, по предприятиям-потребителям. Дана система из m линейных уравнений и неравенств с n переменными:

a11x1+a12x2+…+a1nxn ≤ b1

a21x1+a22x2+…+a2nxn ≤ b2

ak1x1+ak2x2+…+aknxn ≤ bk

am1x1+am2x2+…+amnxn ≤ bm1

и линейная функция

F=c1x1+c2x2+…+cnxn (2)

Необходимо найти такое решение (план) системы


X=(x1,x2….,xj….,xn) (3)

где

xj<0(j=1,2,…,l, l ≤ n) (4)

при котором линейная функция F (2) принимает оптимальное), есть максимальное или минимальное в зависимости от задачи) значение. При этом система (1) - система ограничений, а функция F (2) - целевая функция (функция цели).

Анализ постановки задач и обоснования метода решения

Анализируя исходные условия задачи, следует отнести ее к задачам линейного программирования, в частности, к задачам о принятии решений..Наша задача является однокритериальной так как у нас представлены скалярные величины Для решения задачи по оптимальному плану перевозки продукции исользуем метод решения транспортных задач методом потенциалов.

2. Построение моделей транспортной задачи

задача программа модель

 Теоретическое введение. Задача о размещении(транспортная задача) – это задача, в которой работы и ресурсы измеряются в одних и тех же единицах. В таких задачах ресурсы могут быть разделены между работами, и отдельные работы могут быть выполнены с помощью различных комбинаций ресурсов. Примером типичной транспортной задачи (ТЗ) является распределение (транспортировка) продукции, находящейся на складах, по предприятиям-потребителям.

Стандартная транспортная задача определяется как задача разработки наиболее экономичного плана перевозки продукцииодного вида из нескольких пунктов отправления в пункты назначения. При этом величина транспортных расходов прямо пропорциональна объему перевозимой продукции и задается с помощью тарифов на перевозку единицы продукции

Особенности экономико-математической модели транспортной задачи:

- система ограничений есть система уравнений (т.е. транспортная задача задана в канонической форме);- коэффициенты при переменных системы ограничений равны единице или нулю;- каждая переменная входит в систему ограничений два раза.

Критерий оптимальности формулируется следующим образом: базисное распределение поставок оптимально тогда и только тогда, когда оценки всех свободных клеток неотрицательны. Циклом в матрице называется ломаная с вершинами в клетках и звеньями, лежащими вдоль строк и столбцов матрицы, удовлетворяющую условиям:

· ломаная должна быть связной, т.е. из любой ее вершины можно попасть в любую другую вершину по звеньям ломаной;

· в каждой вершине ломаной встречаются два звена, одно из которых располагается по строке, другое - по столбцу.

Циклом пересчета называется такой цикл в таблице с базисным распределением поставок, при котором одна из его вершин лежит в свободней клетке, остальные - в заполненных. Цикл пересчета называется означенным, если в его вершинах расставлены знаки "+" и "-" так, что в свободной клетке стоит знак "+", а соседние вершины имеют противоположные знаки.

Исходные параметры модели транспортной задачи

1) n– количество пунктов отправления, m – количество пунктов назначения.

2) ai– запас продукции в пункте отправления Ai (i=1, n) (ед. прод.).

3)bj– спрос на продукцию в пункте назначения Bj (j=1,m) (ед. прод.).

4)cij– тариф (стоимость) перевозки единицы продукции из пункта отправления ai в пункт назначения bj (руб./ед. прод.).

Искомые параметры модели транспортной задачи

1) xij– количество продукции, перевозимой из пункта отправления ai в пункт назначения bj (ед. прод.).

2) L(x)– транспортные расходы на перевозку всей продукции (руб.).

Этапы построения модели

I. Определение переменных.

II. Проверка сбалансированности задачи.

III. Построение сбалансированной транспортной матрицы.

IV Задание целевой функции.

V Задание ограничений.

Целевая функция представляет собой общие транспортные расходы на осуществление всех перевозок в целом. Первая группа ограничений указывает, что запас продукции в любом пункте отправления должен быть равен суммарному объему перевозок продукции из этого пункта. Вторая группа ограничений указывает, что суммарные перевозки продукции в некоторый пункт потребления должны полностью удовлетворить спрос на продукцию в этом пункте. Наглядной формой представления модели транспортной задачи является транспортная матрица (табл. 4.1).

Таблица 4.1Общий вид транспортной матрицы

Пункты

отправления, A1

Пункты потребления, Bj

Запасы,

ед. прод.

B1

B2

Bm

A1

c11, (руб./ед. прод.)

c12

c1m

a1

A2

c21

c22

C2m

a2

An

Cn1

Cn2

Cnm

an

Потребность

ед. прод.

b1

b2

bm


Из модели (4.1) следует, что сумма запасов продукции во всех пунктах отправления должна равняться суммарной потребности во всех пунктах потребления, т.е.

.

(

Если (4.2) выполняется, то ТЗ называется сбалансированной (закрытой), в противном случае – несбалансированной (открытой). В случае, когда суммарные запасы превышают суммарные потребности, необходим дополнительный фиктивный (реально не существующий) пункт потребления, который будет формально потреблять существующий излишек запасов, т.е.

.

Если суммарные потребности превышают суммарные запасы, то необходим дополнительный фиктивный пункт отправления, формально восполняющий существующий недостаток продукции в пунктах отправления:

.

Для фиктивных перевозок вводятся фиктивные тарифы , величина которых обычно приравнивается к нулю . Но в некоторых ситуациях величину фиктивного тарифа можно интерпретировать как штраф, которым облагается каждая единица недопоставленной продукции. В этом случае величина  может быть любым положительным числом.

 Задача о назначениях – частный случай ТЗ. В задаче о назначениях количество пунктов отправления равно количеству пунктов назначения. Объемы потребности и предложения в каждом из пунктов назначения и отправления равны 1. Примером типичной задачи о назначениях является распределение работников по различным видам работ, минимизирующее суммарное время выполнения работ.

 Переменные задачи о назначениях определяются следующим образом

3. Реализация алгоритма программы

Программа написана в программной среде C++ Builder 6.0. Для реализации всех методов программы используются следующие библиотеки:

<vcl.h> - библиотека визуальных компонентов(внешнее оформление программы)

В программе определены и инициализированы следующие переменные и массивы:

massiv1(5)(5) – массив мощностей поставщиков и потребителей

massiv2(5)(5) - массив поставок

massiv3(5)(5) – массив значений матрицы оценок

massiv4(5)(5), massiv5(5)(5) - дополнительные массивы

Всю работу программы можно разбить на четыре основных шага: считывание данных в виде матрицы, заполнение значений методом северо-западного угла, решение таблицы и вывод результата.


Руководство пользователя

О программе. Программа позволяет проверить правильность решения транспортных задач или же сделать за вас всю рутинную работу при решении этих задач. Программа позволяет загружать таблицы из файла (*.dat) или создавать новую таблицу, путём создания ячеек таблицы. Программа работает на любой IBM совместимой машине при 32 Мб ОЗУ и 1 Мб свободного места на диске, на любом процессоре старше 486 и ОС Windows 98\2000\XP.

Описание программы. Программа имеет удобный и понятный интерфейс, благодаря которому быстро осваивается пользователем. При запуске программы открыто окно ввода значений.

Программа позволяет загружать/сохранять файлы описания таблиц в формате *.dat. Они представляют собой текстовые файлы с параметрами исходной задачи. Если файл описания загружен, он отобразится в окне на странице. Если это так, можно жать кнопку запуска расчётов.

После просмотра результатов необходимо очищать элементы интерфейса нажатием на кнопку меню «Сбросить». После каждого решения нужно очищать введенные данные, в противном случае программа неправильно посчитает поставленную задачу.

Описание работы программы. Для начала работы нужно загрузить файл с помощью команды Файл>Открыть.

Выбранный файл отобразится в окне. В этом же окне можно изменить данные в соответствии с требуемой задачей. Между значениями и в конце каждой строки должен стоять знак пробела.

Сохранение значений оуществляется командой Файл->Сохранить.

После внесения необходимых значений нужно нажать кнопку “Запустить”. После этого можно будет увидеть решение.

Когда распределение поставок будет оптимальным алгоритм программы заканчивает свое решение. Функция цели () и количество шагов подсчитывается автоматически.

После этого необходимо нажать кнопку “сброс” для восстановления исходных параметров программы.

Для выхода из программы нужно воспользоваться командой Файл->Выход.


Заключение

В заключении хотелось бы рассказать о применении нашей программы в решении транспортных проблем.Многопользовательская система с гибкой настройкой прав и полномочий, позволяющая автоматизировать бизнес-процессы транспортно-экспедиционной компании. Простой интуитивно понятный интерфейс с богатой функциональностью, позволяющий регистрировать, обрабатывать и контролировать заказы на грузоперевозки (автоперевозки и т.п.), решать транспортные задачи, вести журнал учета транспорта. Разработанная нами программа для транспортных компаний позволяет быстро и удобно решать задачи транспортной логистики. Все сотрудники компании могут одновременно работать в программе, владеть актуальной централизованной информацией и оперативно взаимодействовать, обладая заранее определенными правами и полномочиями в системе егистрация заказов сопровождается подробным заданием условий оказания услуг по организации транспортных перевозок. Все расчеты и вычисления осуществляются автоматически по заранее сформированным тарифам, формулам, правилам.


Список используемой литературы

1. Экономико-математические методы и прикладные модели. Финстатинформ М., 1997

2. Абчук В.А., Экономико-математические методы. Санкт-Петербург Союз,1999

3. Советов Б.Я, Яковлев С.А., Моделирование систем. Практикум. М. Высшая школа,1999

4. Замков О.О., Толстопятенко А.В., Черемных Ю.Н., Математические методы в экономике. М.ДИС, 1997.