![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 21.11.2012
Сообщений: 5
|
![]()
Дано:
Имеется 10 поставщиков и 10 товаров. Каждый поставщик поставляет все товары, но у каждого поставщика разные цены на товары. Найти: 2 или 3 поставщика (или в общем виде 2<N<10) у которых суммарная закупка этих 10 товаров (по 1 шт.) будет иметь минимальную стоимость. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
![]()
О, интересно. Как понимаю, речь идёт о том, что нужно выбрать не более N прейскурантов из M так, чтобы сумма закупки K позиций была минимальна?
Простейший вариант - полный перебор по всем сочетаниям из M по N. Время (при M>>N) - O(K*M^(N+1)). При M=K=10 это, впрочем, достаточно мало, чтобы не искать лучшего алгоритма. Дальше мысли вслух. Можно ли в среднем случае отсечь значимую часть вариантов? Для каждого товара у нас есть упорядоченный список продавцов с ценами. Это позволяет быстро (за O(K*M)) узнать оценку снизу для цены покупки при выкидывании произвольного набора торговцев. Если эта оценка превышает уже найденный вариант - все варианты, выкидывающие этот набор, можно не рассматривать. Другое направление. Пусть у нас есть множество всех сочетаний из M по N. Возможность перейти от одного сочетания к другому заменой одного столбца создаёт на этом множестве граф переходов. Пусть S - оптимальное решение, а P - "пессимальное" решение, такое, что S достижимо из него переходами, уменьшающими стоимость. Такие переходы выделяют в графе направленный подграф, число вершин в котором, вообще говоря, меньше общего числа вершин графа. К сожалению, не очевидно, каким образом быстро найти P. |
![]() |
![]() |
![]() |
#3 |
Новичок
Джуниор
Регистрация: 21.11.2012
Сообщений: 5
|
![]()
Оценка перебора привела к следующим параметрам:
Нужно отобрать, к примеру 3 из 10 поставщиков. Число вариантов= 120 И посчитать все варианты сумм 10 позиций из 30 вариантов (3 строки по 10 вариантов) = 30 045 015 Итого: 30 045 015 * 120 = 3 605 401 800 вариантов перебора. Меня это число слегка пугает. А вас? Последний раз редактировалось smishel; 21.11.2012 в 15:51. |
![]() |
![]() |
![]() |
#4 | ||
Made In USSR!
Старожил
Регистрация: 01.09.2010
Сообщений: 3,657
|
![]() Цитата:
2 массива 10 на 10 и 2 на 10 считаем в первом суммы по строкам и складываем во второй в 1 строку номер во вторую сумму сортируем второй массив по возрастанию по второй строке забираем 2 первых или 3 или сколько там нужно первых столбца(номер и сумму соответственно) откуда тут Цитата:
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой" |
||
![]() |
![]() |
![]() |
#5 | |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
![]() Цитата:
Вообще, можно хотя бы для случай 4 торговцев, 4 товаров и n=2 пример входных данных и результата? Для приведения понимания задачи всеми участниками к единому знаменателю. Последний раз редактировалось Abstraction; 21.11.2012 в 15:56. |
|
![]() |
![]() |
![]() |
#6 |
Новичок
Джуниор
Регистрация: 21.11.2012
Сообщений: 5
|
![]()
Прикрепил табличку с примером поставщики - цены
|
![]() |
![]() |
![]() |
#7 |
Новичок
Джуниор
Регистрация: 21.11.2012
Сообщений: 5
|
![]()
Мы хотим выбрать 2-х торговцев, у которых закупить товары
|
![]() |
![]() |
![]() |
#8 |
Новичок
Джуниор
Регистрация: 21.11.2012
Сообщений: 5
|
![]()
До поиска минимума из 3-х, я как то не до пер. Это меняет всё!
Вопрос снят. Спасибо ГИГАНТСКОЕ! |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нужна программа позволяющая прогнозировать оптимальный объем закупки товара | A.i.r.a.t | Фриланс | 5 | 05.07.2012 22:00 |
Алгоритм поиска потока минимальной стоимости(C) | fangb31 | Помощь студентам | 6 | 31.05.2012 10:43 |
код для транспортной задачи на PascalАВС методом минимальной стоимости | Настёнок | Помощь студентам | 0 | 23.12.2011 01:43 |
Pascal метод минимальной стоимости | The_Joker | Помощь студентам | 2 | 08.10.2011 18:25 |
Поиск минимальной стоимости | GBTA | Общие вопросы C/C++ | 1 | 10.07.2010 11:17 |