#0
by jcage
А можно ли как-то оценить количество плоскостей, которое придется построить для нахожднения оптимального решения?
#4
by DGorgoN
к сожалению я уже вышку пропил.. не помню, чес слово.. што-то сумбурное в голове вертится... Может более яснее объяснишь задачку - авось какой нибудь нейрон из 3 да и проснется..
#5
by jcage
Следующий... Собсвенно для решения задачи о рюкзаке и пытаюсь этот способ приделалать. Хочу понять, как примерно оценить количество иттераций для нахождения оптимального решения.
#6
by jcage
Основан на симплекс-методе. Служит для нахождения целых значений с помощью построения дополнительных отсечений, проходящих хотя бы через одну целую точку.
#9
by Barsuk
Думаю, иного придется построить :) Как правило, целочисленные задачи - это трудные задачи и количество ресурсов для точного решения весьма велико в худшем случае. Я диплом писал когда-то по похожей на задачу о рюкзаке NP-полной задаче.
#10
by jcage
ну например к задаче, которую я в прошлой ветке приводил - только 2 отсечения придется строить. А перебор там не прокатит. Задача рюкзака для меня большой геммор - в практике она встречается переодически, но как ее решить так, что бы а) не писать километры кода б) быстро работало в) работало правильно:) пока не придумал... Собственно проще всего конечно простой перебор - 10 минут работы и процедура готова. Но если речь идет о 1000 позиций? 2^1000 - это ж сколько будет обрабатываться?
#12
by Barsuk
Долго. Так а книжку, что я в том посте приводил, можно посмотреть. Там уже готовые точные алгоритмы есть, которые зачастую намного быстрее перебора работают. Еще там можно посмотреть работу D. Pisinger'а
#13
by jcage
Вычислительные машины и труднорешаемые задачи я уже скачал:) А вот Мартелло и Тот - не могу найти даже в бумажном виде:(
#17
by Михаил Козлов
Для рюкзака вполне удовлетворительно работают: - жадный алгоритм; - схема ветвей и границ с оценкой по релаксированной (линейной, непрерывной) задаче.
#19
by jcage
прошу прощения за пробелы в образовании, а что такое "оценка по релаксированной (линейной, непрерывной) задаче"?
#22
by Михаил Козлов
Рюкзак в чистом виде: A1*X1+A2*X2+...+An*Xn <= B, 0<=Xi<=1, Xi - целые C1*X1+C2*X2+...+Cn*Xn -> MAX В схеме ветвей и границ Вы фиксируете какие-либо переменные и получаете подзадачу. В качестве оценки значения функционала в этой подзадаче берется решение соответствующей задачи линейного программирования (весьма специфической, для нее можно получать решение не симплекс-методом а проще), т.е. условия Xi - целые снимаются. Это и называется релаксацией. Ветвление задачи производят на 2 подзадачи: по Xi=1 и Xi=1. Подробное описание найдете в литературе. Жадный алгоритм еще проще и быстрее: - упорядочиваете переменные по Ci/Ai; - назначаете Xi=1 в этом порядке, пока выполняется ограничение. Если нужна консультация - пишите или звоните 980-2417.
#24
by jcage
Спасибо. Т.е. вместо двух ограничений Xi >= 1 и Xi <= 0 мы получаем два равенства. И такие задачи соответсвенно решить можно много проще.. Но ведь жадный алгоритм в чистом виде предполагает определенную погрешность.. Есть ли варианты жадного алгоритма, позволяющие свести погрешность к минимуму?
#25
by Михаил Козлов
Нет. Не известно полиномиального (по размерности) точного алгоритма решения задачи о рюкзаке. Погрешность жадного алгоритма можно оценить сверху, но оценка неудовлетворительная. Еще раз повторю: схемы неявного перебора ПРАКТИЧЕСКИ всегда дают точное решение в приемлимое время из-за эффективного отсечения неперспективных ветвей (подзадач).
Тэги: Математика и алгоритмы
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- Web-расширение vs Терминал сервер
- Элемент управления 1С: Печать штрих-кодов, Проблема с печатью штрих-кодов
- В печатную форму вывести информацию из регистра сведений (Помогите чайнику)
- Вопрос знатокам про таблицу остатков регистра бухгалтерии
- v8: Как изменить макет, формируемый построителем отчета?
- Слетают настройки отчётов в 1С 8.0
- Выполнение программного кода при запуске сервера 1С
- Где хранятся настройки пользователя в 8.1?
- Что означает буква "м" в начале переменных типовых конфигураций
- Какой RAID массив стоит у вас на сервере и как лучше для 1С+SQL?
- УПП Использование узлов в спецификации
- Перенос восстановление границы последовательности
- v7: Как программно выбрать тип справочника в 1С:8.0
- Непонятная ошибка при попытке выборки из регистра сведений
- Как программно выбрать тип справочника в 1С:8.0
- Как вывести выслугу лет в нужном формате?
- как сделать копию базы в SQL ?
- Почему может не работать считыватель магнитных карт?
- отражение амортизации при УСН
- Кто нить юзает класс Расширенный журнал2 ?