1 / 1 / 2
Регистрация: 19.11.2014
Сообщений: 126
|
|
1 | |
Задача о ранце (динамическое программирование)02.03.2018, 11:48. Показов 5739. Ответов 18
В общем нужно написать сайт, где я мог бы ввести свои данные и получить решение. Вот здесь есть даже код, но он не на скрипте (с ним не работал практически). Буду рад любой помощи. Можно в принципе и на php.
0
|
02.03.2018, 11:48 | |
Ответы с готовыми решениями:
18
задача динамическое программирование задача на динамическое программирование Динамическое программирование (задача) Задача на динамическое программирование |
1 / 1 / 2
Регистрация: 19.11.2014
Сообщений: 126
|
|
13.03.2018, 13:22 [ТС] | 2 |
Актуально. Вот такие способы решения есть на разных языках. Сложность представляют функции и заполнение.
0
|
392 / 294 / 121
Регистрация: 26.08.2016
Сообщений: 902
|
|
15.03.2018, 09:06 | 5 |
FAIZ112, В задаче о ранце есть разные варианты постановки задачи. Где-то нужно набрать как можно больше вещей, где-то вещей с наибольшей стоимостью. Вы просто найдите код на любом языке и кто-нибудь для вас переведет его на Js. Я могу перевести код с Php с последней вашей картинки, но я не понимаю, что значит переменная needed в данном случае, а вникать лень.
0
|
1 / 1 / 2
Регистрация: 19.11.2014
Сообщений: 126
|
|
15.03.2018, 10:13 [ТС] | 6 |
renat_dmitriev, нужно и количество и ценность вещей одновременно.
0
|
392 / 294 / 121
Регистрация: 26.08.2016
Сообщений: 902
|
|
15.03.2018, 10:21 | 7 |
FAIZ112, Это утверждение противоречит элементарной логике. Если одна большая вещь стоит 1000, а три маленьких по 200, какой вариант в итоге должен вернуть метод - с одной большой, но ценной вещью или с тремя маленькими, не ценными?
0
|
15.03.2018, 13:03 | 8 |
Увы, открыть не смог: браузер пишет, что недоверенное соединение. Приложите скриншоты.
Элементарной логике, да, противоречит. Если нет соответствующего критерия. В самом деле, если нет критерия, то это требование - противоречивое. Если в задаче существует решение в виде кривой безразличия (точнее, если решение - неединственно), то необходим хотя бы один критерий выбора оптимальной точки. Например, в качестве критерия можно было бы выбрать: (произведение ценности на количество) -> max .Добавлено через 4 минуты Или корень квадратный из суммы квадратов ценностей и квадратов количества (с учетом размерно-нормирующих весовых множителей).
0
|
1 / 1 / 2
Регистрация: 19.11.2014
Сообщений: 126
|
|
15.03.2018, 15:33 [ТС] | 9 |
renat_dmitriev, Htext, нужно уложить как можно большее число ценных вещей в рюкзак. Такой вариант годится? Ваш пример про 1000 и 200, нужно взять три по 200.
0
|
1 / 1 / 2
Регистрация: 19.11.2014
Сообщений: 126
|
|
15.03.2018, 15:40 [ТС] | 10 |
0
|
2454 / 1761 / 624
Регистрация: 11.07.2016
Сообщений: 4,051
|
|
15.03.2018, 16:49 | 11 |
0
|
15.03.2018, 18:08 | 12 | ||||||||||
Ух, аж что-то родное встретилось))). Правда, целочисленные ЛП я не занимался, только обычным ЛП с вещественными числами (ЛППК, если точнее). Даже, похвастаюсь, распространил (теоретически) методику решения задач ЛППК на множество всех вещественных (действительных) чисел.
А целочисленное, я смотрю, с одной стороны, проще (алгоритмически), с другой стороны - не все столь однозначно. В общем, по алгоритму, взятому здесь: https://ru.wikipedia.org/wiki/... 1%86%D0%B5 я тут набросал такой код:
Впрочем, возможны и иные алгоритмы - все зависит от критерия. Добавлено через 11 минут Правда, теперь я и сам не пойму - что же этот алгоритм определяет... Суммировать результаты надо, что ли. Добавлено через 8 минут Понятно, это решение для случая, когда каждый предмет находится в ЕДИНСТВЕННОМ экземпляре (разница чисел равна как раз элементам массива v). Добавлено через 21 минуту Что-то я тут не то написал, алгоритм неверный. Для Wg=100 те же самые цифры получаются. Хотя, 200>100.
0
|
392 / 294 / 121
Регистрация: 26.08.2016
Сообщений: 902
|
|
15.03.2018, 19:42 | 13 |
FAIZ112, Нет, не годится, потому что используя "ценных" вы снова все запутываете. Если нужно кол-во - забудьте о ценности. И судя по выложенным вами скриншотам - в задаче речь о ценности. Мне кажется вы пока сами просто не понимаете задачи.
0
|
16.03.2018, 19:55 | 14 |
Да, желательно бы ясный алгоритм для оптимизации. Ибо, если делать просто перебором - это будет очень долго при большом объеме исходных данных. А алгоритм из Википедии считает что-то не то.
В принципе, для частного случая {0, 1} можно, наверное, как-то ЛП и, соответственно, симплекс-метод приспособить. Хотя, программная реализация симплекс-метода - это дело достаточно громоздкое. Добавлено через 4 минуты Я бы даже сказал - новичок там едва ли справится. На Турбо-Паскале, помнится, он занимал не один десяток (если не одну сотню) строк. И работал на 486-м процессоре около ПОЛУЧАСА. При всего четырех переменных и где-то 30-и ограничениях. Так что Вам, пожалуй, проще где-нибудь платную заявку разместить.
0
|
1 / 1 / 2
Регистрация: 19.11.2014
Сообщений: 126
|
||||||
24.03.2018, 14:17 [ТС] | 16 | |||||
В общем есть такое решение на C#, и оно работает. Сейчас попробую написать это на скрипте.
Кликните здесь для просмотра всего текста
0
|
1 / 1 / 2
Регистрация: 19.11.2014
Сообщений: 126
|
||||||
17.04.2018, 22:24 [ТС] | 18 | |||||
2 массива содержат вес и ценность предмета. Как быть с двумерным?
Кликните здесь для просмотра всего текста
Добавлено через 10 минут Может кто-нибудь помочь?
0
|
18.04.2018, 20:49 | 19 | |||||
FAIZ112, в JS есть двумерные массивы, но для их создания придется делать соответствующий метод. https://javascript.ru/forum/mi... cript.html
Это громоздко. Лучше Вы используйте РНР, к примеру. Код будет практически тем же самым, только переменные начинаются с символа $ и вместо будет
Добавлено через 1 минуту Переменные L, k можно отправить через форму отправки сообщений. Или записать при помощи JS в GET-запрос.
1
|
18.04.2018, 20:49 | |
18.04.2018, 20:49 | |
Помогаю со студенческими работами здесь
19
Задача на динамическое программирование. Задача на динамическое программирование Задача на динамическое программирование Задача на динамическое программирование Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |