![]() |
|
|
![]()
|
|
| Eraserhead |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 30.1.2003 Репутация: нет Всего: нет |
Есть у кого нибуть исходник на С задачи о рюкзаке (Knapsack problems - subset sum) без применения рекурсии ?
Условие и ограничения следующие: X=(1,2,3,...,N), A принадлежит множеству {0, 1}; sum(X[i]*a[i])=s; Найти подпоследовательности размерности K (K<=N), сумма которых была бы равной S. Буду очень благодарен. |
|||
|
||||
| brb |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 190 Регистрация: 7.1.2003 Репутация: нет Всего: нет |
А почему без рекурсии, она прямо так и просится сюда, особенно, когда S > N
--------------------
Сказки - удивительная вещь! Самое удивительное, что в них верят только маленькие дети, которым их рассказывают мамы и мамы, которым их рассказывают подросшие дети. |
|||
|
||||
| Alex101 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 891 Регистрация: 8.4.2002 Где: Москва Репутация: 1 Всего: 10 |
Посмотри алгоритм Беллмана. Это типичная задача на динамическое программирование.
Без рекурсии, сложность N*W Это сообщение отредактировал(а) Alex101 - 31.1.2003, 01:20 -------------------- С уважением, А. Фролов. |
|||
|
||||
| Eraserhead |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 30.1.2003 Репутация: нет Всего: нет |
Вариант с рекурсией после N=50 очень сильно увеличивает время выполнения. Вот и хотелось бы уменьшить время вычисления бы счет исключения обработки вызова рекурсивных процедур. |
|||
|
||||
| podval |
|
|||
![]() Где я? Кто я? ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3094 Регистрация: 25.3.2002 Где: СПб Репутация: 18 Всего: 62 |
Воспользуйся методом частичного (неявного) перебора. Прекрасно описан в книге: Вагнер Г. Основы исследования операций. Том 2. - М.: Мир, 1973.
Там как раз твой случай. Если не сможешь найти эту книгу (весьма редкая!), то похожую задачу найдешь в журнале "Радиотехника" № 10 за 1997 г. Статья "Решение задачи управления временнЫми ресурсами спутниковой системы связи". |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
Вот, нашел. И там в конце статьи есть избавление от рекурсии.
Решение задачи о рюкзаке. Алгоритм решает задачу о рюкзаке, которая формулируется так: Дан, упорядоченный по неубыванию, массив A целых положительных чисел и некоторое Sum, необходимо найти все подпоследовательности массива A сумма элементов которых равна в точности Sum. Подробно решение рассматривается в статье Перебор и его сокращение. http://doors.infor.ru/allsrs/alg/paper/perebor.html В результате работы алгоритма получаем переменную L равную количеству найденых последовательностей. Сами последовательности помещаются в масcив строк Results, каждая строка представляет номера элементов массива A, разделенные запятыми. |
|||
|
||||
| podval |
|
|||
![]() Где я? Кто я? ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3094 Регистрация: 25.3.2002 Где: СПб Репутация: 18 Всего: 62 |
Кто ищет, тот всегда найдет! Это дает повод еще раз напомнить: http://forum.vingrad.ru/index.php?act=ST&f=13&t=4397 |
|||
|
||||
| Гость_Яна |
|
|||
|
Unregistered |
В какой литературе или на каких сайтах можно найти алгоритм или програму для решения задачи про рюкзак?
|
|||
|
||||
| podval |
|
|||
![]() Где я? Кто я? ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3094 Регистрация: 25.3.2002 Где: СПб Репутация: 18 Всего: 62 |
См. ссылку выше. |
|||
|
||||
| Васся |
|
|||
|
Unregistered |
Нужна реализация Алгоритма Беллмана-Форда. Кто может помогите. Адрес [email protected]
Добавлено @ 23:05 Т.е. нужна визуализация |
|||
|
||||
| djGri |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 21.2.2005 Репутация: 1 Всего: 3 |
Вот тут куча алгоритмов
|
|||
|
||||
| просто маша |
|
|||
|
Unregistered |
Люди добрые,помогите,пожалуйста!Мне позарез нужно решение задачи о рюкзаке на паскале с таким условием:"Дано М различных предметов. Известны вес и стоимость каждого. Определить,какие предметы надо положить в рюкзак,чтобы общий вес не превышал 30кг.,а общ. стоимость была максимальной."
Кто располагает временем и информацией , слёзно прошу написать на [email protected] |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |