Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.03.2015, 00:29   #1
kangreon
Форумчанин
 
Аватар для kangreon
 
Регистрация: 03.04.2009
Сообщений: 305
По умолчанию Взять уникальные карточки из каждой колоды с максимальной суммой на выходе

Здравствуйте. Нужна помощь в решении задачи на подобии той, что опишу ниже без использования полного перебора. Какой метод решения лучше будет использовать? Я сидел думал на счет динамики, но как-то туго все.
Задача:
Есть несколько колод с карточками. Каждая карточка имеет цвет и число. Необходимо из каждой колоды взять по одной карточке так, чтобы цвета не повторялись, а сумма чисел была максимальной или сказать, что так сделать не получится.

И нарисовал небольшую иллюстрацию задачи:
Изображения
Тип файла: jpg Без имени-4.jpg (9.8 Кб, 112 просмотров)
kangreon вне форума Ответить с цитированием
Старый 22.03.2015, 11:52   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Задача не понятна. Какая информация есть о содержимом колод?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 22.03.2015, 12:21   #3
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

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

Ну а дальше... можно попробовать даже полный перебор (если цветов и колод не десятки).
Если не пройдет - улучши перебор при помощи жадного алгоритма.

Задача стопудово сводится к поиску остовного дерева, но как эффективно его сюда вкрутить чтобы оценка была O (E*log V), не скажу. т.к. уже опаздываю ).

Если нужно E log V - то задача не очень тривиальная, готовый код просто так врядли кто-то выложит ))
rrrFer вне форума Ответить с цитированием
Старый 26.03.2015, 21:13   #4
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Ошибся я вроде бы. Остовное дерево к задаче отношения не имеет. Ничего лучше алгоритма ветвей и границ я по задаче не придумал. Оно точно есть?
Т.е. находишь первый вариант решения задачи, затем ищешь вариант, который улучшит текущий. Если на каком то шаге стало понятно, что улучшить не получится - дальше не перебираешь (поднимаешься по дереву решений вверх и пробуешь другую ветвь)
rrrFer вне форума Ответить с цитированием
Старый 26.03.2015, 21:45   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Тоже кроме задачи коммивояжера примерно по такому графу в голову ни чего не приходит
Изображения
Тип файла: jpg Безымянный.jpg (30.7 Кб, 102 просмотров)
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 27.03.2015, 05:00   #6
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Это не комивояжер (поэтому и не подойдут остовные деревья). Пусть может содержать только по одной точке разных цветов. При переходе часть дуг как бэ удаляется, но при этом изначально дуг зверски много - порядка V^{V-1}.
rrrFer вне форума Ответить с цитированием
Старый 27.03.2015, 06:17   #7
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

На данном этапе перебор все равно нужен. ТС как-то мутно описал задачу. Я бы формировал в рамках каждой колоды списки с картами одного цвета (то есть внутри колод формировал новые колоды в которых карты будут только одного цвета). Затем уже сравнивал с другими колодами того же цвета и там находил наибольшую карту. Как видите уже для сортировки в любом случае будет требоваться полный перебор. В задаче комивояжера, которую тоже пытались тут применить идет построение матриц, то есть все равно так или иначе используется полный перебор.
На текущем этапе, не имея дополнительной информации, для достижения наилучшего результата в подавляющем большинстве случаев Вам в любом случае потребуется как минимум один полный перебор всех элементов.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 27.03.2015, 07:41   #8
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

kangreon, поясни на примере
Вот есть
Карточки.jpg
Каков будет верный ответ?
1. Не получается, так как в "максимальном" наборе есть одинаковые цвета
Не получается.jpg
Или
2. Вот такие наборы имеют максимальную сумму при разных по цвету карточках
Получается.jpg
или
И так тоже получается.jpg

Насколько я понял, правильный 1-ый вариант ответа. Алгоритм тогда довольно простой.
Но без перебора все равно никак. Хотя при случае, когда "не получается", можно перебор прервать до полного завершения (максимальные карточки из разных колод имеют один цвет - следующие колоды можно уже не проверять).

Последний раз редактировалось Sibedir; 27.03.2015 в 15:19.
Sibedir вне форума Ответить с цитированием
Старый 27.03.2015, 11:21   #9
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Я понял что ему нужен второй вариант . Иначе нафига эта муть с разными цветами, если мы тупо ищем максимальный в колоде? Но хоть так хоть эдак все равно перебор нужен.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 27.03.2015, 11:35   #10
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Имеется в виду перебор всех возможных вариантов выбора. Вот без него как? Как выше предложено в каждой колоде оставить по одной карте каждого цвета с максимальным весом. Переходы начинать с колоды с минимальным количеством карт. Каждый переход часть оставшихся узлов и дуг отсекает. Почему нельзя назвать его вариантом задачи коммивояжера? Набор узлов и ветвей правда динамически меняется, но в сторону уменьшения, в процессе перебора
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача на паскаль: в линейном массиве найти пару элементов с максимальной суммой kirito_17 Паскаль, Turbo Pascal, PascalABC.NET 7 05.12.2013 10:25
Найти натуральное число из интервала от a до b с максимальной суммой делителей Salomon9393 Паскаль, Turbo Pascal, PascalABC.NET 7 04.12.2012 16:57
Pascal.Найти в промежутке от a до b число, с максимальной суммой делителей. I3ECJI0 Помощь студентам 2 16.05.2012 15:39
Как вывести на экран номер строки с максимальной суммой элементов и номер столбца с минимальной суммой? Vetal888888 C# (си шарп) 4 20.12.2011 13:46
В квадратной матрице найти столбец с максимальной суммой и строку с максимальной суммой (Pascal) Alexey355 Помощь студентам 1 26.03.2011 14:06