![]() |
1. Заголовок темы должен быть информативным. В противном случае тема закрывается и удаляется ...
2. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
3. Одна тема - один вопрос (задача)
4. Спрашивайте и отвечайте четко и по существу!!!
![]() |
zandryukha |
![]()
Сообщение
#1
|
Гость ![]() |
Практическая не совсем транспортная задача
Некоторый однородный продукт, сосредоточенный у m поставщиков Ai в количестве ai (i=1,2,3,...,m) единиц соответственно, необходимо доставить n потребителям Bj в количестве bj (j=1,2,3,...,n) единиц. Необходимо составить план перевозок, позволяющий вывезти все грузы, полностью удовлетворить Cij xij потребности. Если в транспортной задаче известна цена Cij перевозки единицы груза от i-го поставщика к j-му потребителю, а целью является минимизация стоимости, то в нашем проблемном случае известна собственно стоимость (с целью задания приоритетности маршрутов), а минимизировать необходимо количество перевозок. Подскажите, есть ли методика решения данной задачи, и соответствующее программное обеспечение. |
![]() ![]() |
Atos |
![]()
Сообщение
#2
|
![]() Прогрессор ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 602 Пол: Мужской Реальное имя: Михаил Репутация: ![]() ![]() ![]() |
По поводу алгоритма подуал и вот к каким пришёл выводам. В "Не совсем транспортная задача" можно использовать жадный алгоритм - нужно, конечно, ещё строго обосновать его корректность, но ,интуитивно, скорее всего он будет действовать правильно.
Делаем так. Упорядочиваем все значения потребностей и запасов. Если какая-то потребность будет равна какому-то запасу, то соединяем эти пункты и исключаем из дальнейшего рассмотрения. Шаг итерации. Берём максимум значений (обзначим А), и соединяем этот пункт с пунктом из противоположного множества, имеющего максимальное значение(Обозначим Б). То есть если максимальное значение(среди всехзначений и запасов, и потребностей) у какой-то потребности, то соединяем с пунктом, в котором запасы максимальны, и наоборот. Пункт Б исключаем из рассмотрения(его запасы либо потребности полностью исчерпаны), а запасы либо потребности А уменьшились, значит, бинарным поиском определяем его новое место в упорядоченном массиве всех значений. И сразу же проверяем, нет ли пункта из противоположного множества с таким же значением. Если есть, соединяем из и исключаем. Конец итерации. Трудоёмкость можно ограничить сверху logN+log(N-1)+...+1 = log(N!), где N - общее количество всех пунктов |
zandryukha |
![]()
Сообщение
#3
|
Гость ![]() |
|
![]() ![]() |
![]() |
Текстовая версия | 27.07.2025 7:50 |