Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Рюкзак с дробным весом предметов / 18 сообщений из 18, страница 1 из 1
15.09.2020, 18:00
    #39998940
Damir_85
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рюкзак с дробным весом предметов
Здравствуйте.
Хотел спросить про алгоритм, решающий задачу о неограниченном рюкзаке (Unbounded Knapsack Problem) , но при этом веса предметов являются дробными числами. (Вес рюкзака -всегда целое число).
Динамическое программирование здесь не подходит, т.к. работает с целыми числами. Нашел алгоритм с бинарным деревом, но он
оказался для решения 0-1 рюказака. Также в книге Silvano Martino "Knapsack Problem" используется динамическое программирование,
т.к. веса в примерах тоже целые.
Может кто подскажет, или ссылки даст на принцип реализации. В интернете что то по этой теме не то ищется.
...
Рейтинг: 0 / 0
15.09.2020, 19:22
    #39998966
ъъъъъ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рюкзак с дробным весом предметов
Damir_85,

ты не знаешь, как приводить дроби к общему знаменателю?
...
Рейтинг: 0 / 0
15.09.2020, 20:08
    #39998997
MBo
MBo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рюкзак с дробным весом предметов
Damir_85
Что имеется в виду под дробными числами?
Вообще постановку задачи нужно привести.
...
Рейтинг: 0 / 0
16.09.2020, 09:46
    #39999195
Damir_85
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рюкзак с дробным весом предметов
MBo
Damir_85
Что имеется в виду под дробными числами?
Вообще постановку задачи нужно привести.

Ну то есть веса предметов могут быть заданы так: 22,5; 30,73; 16,78 и т.д., т.е. в виде десятичных дробей
...
Рейтинг: 0 / 0
16.09.2020, 09:51
    #39999200
Damir_85
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рюкзак с дробным весом предметов
постановка задачи, это задача заполнить рюкзак, максимизировав его ценность (для каждого предмета еще задается ценность),
при этом чтобы общий вес предметов не превысил вместимость рюкзака (всегда должна быть целым числом), при этом каждый
предмет может браться в неограниченном количестве.
Почитал про жадный алгоритм, но он дает приближенное решение
...
Рейтинг: 0 / 0
16.09.2020, 10:03
    #39999207
Damir_85
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рюкзак с дробным весом предметов
Хотя , если известно, что после запятой количество знаков не будет превышать 3, то нужно умножить все числа на 1000, и вес
рюкзака тоже, потому что он должен пропорционально увеличиться, т.к. увеличиваются веса предметов. Тут уже можно и
динамическим программированием решить, просто не будет ли при этом слишком большая таблица и время вычисления
...
Рейтинг: 0 / 0
16.09.2020, 16:33
    #39999412
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рюкзак с дробным весом предметов
Damir_85> Хотя , если известно, что после запятой количество знаков не будет превышать 3

Это странное допущение...

По сабжу - это какая-то лаба/тестовое задание?
Давно бы уже решили тупым полным перебором.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
16.09.2020, 18:35
    #39999513
Damir_85
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рюкзак с дробным весом предметов
Гаджимурадов Рустам
Damir_85> Хотя , если известно, что после запятой количество знаков не будет превышать 3

Это странное допущение...

По сабжу - это какая-то лаба/тестовое задание?
Давно бы уже решили тупым полным перебором.

Ничего странного нету. Фактически веса предметов это длины прямоугольных объектов , которые укладываются вдоль заданной
длины рабочего листа, т.е речь идет об укладке предметов в заданный прямоугольник. Графическая программа, в которой можно
задать эти прямоугольники, может показывать длину предметов с точностью до трех знаков после запятой
...
Рейтинг: 0 / 0
16.09.2020, 18:40
    #39999514
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рюкзак с дробным весом предметов
Damir_85речь идет об укладке предметов в заданный прямоугольник.

Оно же "задача линейного раскроя". Ответ не изменился: давно бы решили полным перебором,
поскольку другим способом оно не решается.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
16.09.2020, 18:48
    #39999517
Damir_85
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рюкзак с дробным весом предметов
Dimitry Sibiryakov

Damir_85речь идет об укладке предметов в заданный прямоугольник.

Оно же "задача линейного раскроя". Ответ не изменился: давно бы решили полным перебором,
поскольку другим способом оно не решается.

ну, к примеру решается симплекс методом с генерацией столбца, когда каждый новый план раскроя получается путем решения подзадачи, что есть задача о рюкзаке. Да это задача раскроя, только я одномерный уже сделал , сейчас делаю двумерный, когда в заданный лист нужно разместить прямоугольники, при этом выполнив требование по спецификации, т.е. по заданному количеству
каждого прямоугольника. Решается аналогичным способом как и одномерный раскрой. Ну вобщем это задача раскроя плитных материалов. Только вот на длинах вот эти числа после запятой и остаются
Реализуется как макрос в среде Corel Draw чтобы вручную не компоновать. Жалко файл не могу прикрепить с реализацией пошаговой в pdf формате. На форуме до 150 Кб можно только, а он весит 413 Кб. Никак ограничения не обходятся по размеру файла?
...
Рейтинг: 0 / 0
16.09.2020, 18:58
    #39999520
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рюкзак с дробным весом предметов
Damir_85Только вот на длинах вот эти числа после запятой и остаются

Опять же уже сказали: умножаем все значения на 1000 и задача внезапно сводится к
целочисленной.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
16.09.2020, 19:02
    #39999521
asutp2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рюкзак с дробным весом предметов
Damir_85
Динамическое программирование здесь не подходит, т.к. работает с целыми числами

как сказали выше - умножаешь все числа на 1000 и внезапно
Динамическое программирование здесь не подходит, т.к. работает с целыми числами
после завершения работы алгоритма делишь все числа назад на 1000. Profit.
...
Рейтинг: 0 / 0
16.09.2020, 19:11
    #39999522
Aleksandr Sharahov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рюкзак с дробным весом предметов
asutp2,

а что, так было можно?
...
Рейтинг: 0 / 0
16.09.2020, 19:28
    #39999524
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рюкзак с дробным весом предметов
asutp2> как сказали выше - умножаешь все числа на 1000 и внезапно

Внезапно - он сам же это и сказал.
Хотя для общего случая ограничение
в 3 дробных знака довольно странное.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
16.09.2020, 20:26
    #39999542
ъъъъъ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рюкзак с дробным весом предметов
Гаджимурадов Рустам
Внезапно - он сам же это и сказал.

Вообще-то это я сказал. :)
...
Рейтинг: 0 / 0
16.09.2020, 20:38
    #39999546
asutp2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рюкзак с дробным весом предметов
ъъъъъ
Гаджимурадов Рустам
Внезапно - он сам же это и сказал.

Вообще-то это я сказал. :)
подтверждаю)
...
Рейтинг: 0 / 0
16.09.2020, 20:58
    #39999554
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рюкзак с дробным весом предметов
ъъъъъ> Вообще-то это я сказал. :)

А, про общий знаменатель. :)
Виноват, не обратил внимание.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
17.09.2020, 09:48
    #39999646
Damir_85
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рюкзак с дробным весом предметов
ok,спасибо. Попробую этот вариант
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Рюкзак с дробным весом предметов / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]