Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Решение задачи о рюкзаке 
:(
    Опции темы
Eraserhead
  Дата 30.1.2003, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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.
Буду очень благодарен.
PM MAIL   Вверх
brb
Дата 30.1.2003, 23:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 190
Регистрация: 7.1.2003

Репутация: нет
Всего: нет



А почему без рекурсии, она прямо так и просится сюда, особенно, когда S > N
--------------------
Сказки - удивительная вещь! Самое удивительное, что в них верят только маленькие дети, которым их рассказывают мамы и мамы, которым их рассказывают подросшие дети.
PM MAIL   Вверх
Alex101
Дата 31.1.2003, 01:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 891
Регистрация: 8.4.2002
Где: Москва

Репутация: 1
Всего: 10



Посмотри алгоритм Беллмана. Это типичная задача на динамическое программирование.
Без рекурсии, сложность N*W

Это сообщение отредактировал(а) Alex101 - 31.1.2003, 01:20


--------------------
С уважением, А. Фролов.
PM MAIL ICQ   Вверх
Eraserhead
Дата 3.2.2003, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 30.1.2003

Репутация: нет
Всего: нет



Цитата
А почему без рекурсии, она прямо так и просится сюда, особенно, когда S > N

Вариант с рекурсией после N=50 очень сильно увеличивает время выполнения. Вот и хотелось бы уменьшить время вычисления бы счет исключения обработки вызова рекурсивных процедур.
PM MAIL   Вверх
podval
Дата 4.2.2003, 07:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Где я? Кто я?
****


Профиль
Группа: Экс. модератор
Сообщений: 3094
Регистрация: 25.3.2002
Где: СПб

Репутация: 18
Всего: 62



Воспользуйся методом частичного (неявного) перебора. Прекрасно описан в книге: Вагнер Г. Основы исследования операций. Том 2. - М.: Мир, 1973.
Там как раз твой случай.
Если не сможешь найти эту книгу (весьма редкая!), то похожую задачу найдешь в журнале "Радиотехника" № 10 за 1997 г. Статья "Решение задачи управления временнЫми ресурсами спутниковой системы связи".
PM WWW ICQ   Вверх
AntonSaburov
Дата 6.2.2003, 19:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: нет
Всего: 118



Вот, нашел. И там в конце статьи есть избавление от рекурсии.

Решение задачи о рюкзаке.

Алгоритм решает задачу о рюкзаке, которая формулируется так: Дан, упорядоченный по неубыванию, массив A целых положительных чисел и некоторое Sum, необходимо найти все подпоследовательности массива A сумма элементов которых равна в точности Sum. Подробно решение рассматривается в статье Перебор и его сокращение.
http://doors.infor.ru/allsrs/alg/paper/perebor.html
В результате работы алгоритма получаем переменную L равную количеству найденых последовательностей. Сами последовательности помещаются в масcив строк Results, каждая строка представляет номера элементов массива A, разделенные запятыми.



PM MAIL WWW ICQ   Вверх
podval
Дата 7.2.2003, 06:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Где я? Кто я?
****


Профиль
Группа: Экс. модератор
Сообщений: 3094
Регистрация: 25.3.2002
Где: СПб

Репутация: 18
Всего: 62



Цитата
Вот, нашел. И там в конце статьи есть избавление от рекурсии.

Кто ищет, тот всегда найдет!
Это дает повод еще раз напомнить:

http://forum.vingrad.ru/index.php?act=ST&f=13&t=4397
PM WWW ICQ   Вверх
Гость_Яна
Дата 3.3.2004, 13:49 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











В какой литературе или на каких сайтах можно найти алгоритм или програму для решения задачи про рюкзак?
  Вверх
podval
Дата 3.3.2004, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Где я? Кто я?
****


Профиль
Группа: Экс. модератор
Сообщений: 3094
Регистрация: 25.3.2002
Где: СПб

Репутация: 18
Всего: 62



Цитата
В какой литературе или на каких сайтах можно найти алгоритм или програму для решения задачи про рюкзак?

См. ссылку выше.
PM WWW ICQ   Вверх
Васся
Дата 3.6.2005, 23:01 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Нужна реализация Алгоритма Беллмана-Форда. Кто может помогите. Адрес [email protected]
Добавлено @ 23:05
Т.е. нужна визуализация
  Вверх
djGri
Дата 25.6.2005, 20:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 21.2.2005

Репутация: 1
Всего: 3



Вот тут куча алгоритмов
PM MAIL   Вверх
просто маша
Дата 2.11.2005, 20:11 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Люди добрые,помогите,пожалуйста!Мне позарез нужно решение задачи о рюкзаке на паскале с таким условием:"Дано М различных предметов. Известны вес и стоимость каждого. Определить,какие предметы надо положить в рюкзак,чтобы общий вес не превышал 30кг.,а общ. стоимость была максимальной."
Кто располагает временем и информацией , слёзно прошу написать на [email protected] smile
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0478 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.