|
Задача на накопительный итог
|
|||
---|---|---|---|
#18+
OblomПалеты заполняются только полностью. Итого 305 = 240 (PaletTypeId = 1) + 50(PaletTypeId = 2) + 10 (PaletTypeId = 3) + 5 (остаток). Тема остатка не раскрыта. В исходном посте для этой ячейки вы выделили 2 палеты по 10 единиц, т.е. одна палета была загружена только наполовину (на 5 единиц). А здесь у вас 5 — это остаток. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 12:44 |
|
Задача на накопительный итог
|
|||
---|---|---|---|
#18+
Можно я тоже свою версию добавлю? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47.
Неполная палета остается в ячейке. Выборка по размеру палеты, а не идентификатору. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 12:44 |
|
Задача на накопительный итог
|
|||
---|---|---|---|
#18+
Гость333OblomПалеты заполняются только полностью. Итого 305 = 240 (PaletTypeId = 1) + 50(PaletTypeId = 2) + 10 (PaletTypeId = 3) + 5 (остаток). Тема остатка не раскрыта. В исходном посте для этой ячейки вы выделили 2 палеты по 10 единиц, т.е. одна палета была загружена только наполовину (на 5 единиц). А здесь у вас 5 — это остаток. Виноват, косякнул. Остаток остается в ячейке. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 12:57 |
|
Задача на накопительный итог
|
|||
---|---|---|---|
#18+
Вот решение для четырех типоразмеров палет. Если нужно универсальное решение для любого количества, то динамика. Это просто идея, но по крайней мере выдает правильные результаты для условия выбрать минимальное количество палет полностью покрывающее размер ячеек. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 13:04 |
|
Задача на накопительный итог
|
|||
---|---|---|---|
#18+
OblomИ да, мой косяк в формулировке: нужно реализовать "жадный" алгоритм, то есть минимальный остаток должен получиться минимальным числом палет. Проще говоря: сначала выбирается весь товар на самые вместительные палеты, потом на менее вместительные и так далее. Палеты заполняются только полностью. Итого 305 = 240 (PaletTypeId = 1) + 50(PaletTypeId = 2) + 10 (PaletTypeId = 3) + 5 (остаток).с учетом сказанного, поясните, как вы поступите в случае, если размер ячейки 250, а в наличии палеты размеров 240 и 50. возьмете одну палету 240 или пять по 50? если первое, то получится не минимальный остаток, если второе, то ваш алгоритм не подходит ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 14:08 |
|
Задача на накопительный итог
|
|||
---|---|---|---|
#18+
ShakillOblomИ да, мой косяк в формулировке: нужно реализовать "жадный" алгоритм, то есть минимальный остаток должен получиться минимальным числом палет. Проще говоря: сначала выбирается весь товар на самые вместительные палеты, потом на менее вместительные и так далее. Палеты заполняются только полностью. Итого 305 = 240 (PaletTypeId = 1) + 50(PaletTypeId = 2) + 10 (PaletTypeId = 3) + 5 (остаток).с учетом сказанного, поясните, как вы поступите в случае, если размер ячейки 250, а в наличии палеты размеров 240 и 50. возьмете одну палету 240 или пять по 50? если первое, то получится не минимальный остаток, если второе, то ваш алгоритм не подходит Кстати, если считать условие оптимизации как минимальный остаток и минимальное количество палет, то в моем способе последние два запроса меняются немного и все. Но на мой взгляд это крайне тяжелый способ с перебором всех возможных комбинаций палет + еще подразумевает применение динамики для произвольного количества палет Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 14:47 |
|
Задача на накопительный итог
|
|||
---|---|---|---|
#18+
Мистер Хенкиеще подразумевает применение динамики для произвольного количества палет произвольного количества типоразмеров палет ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 14:49 |
|
Задача на накопительный итог
|
|||
---|---|---|---|
#18+
Задача конечно прикольная, но чисто теоретическая, как в реальности это будет работать? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 15:43 |
|
Задача на накопительный итог
|
|||
---|---|---|---|
#18+
Добрый день! Oblom (Мой коллега, я к нему подошел за консультацией) слегка изменил условие задачи. По факту есть реальная задача: Склад. Товар находится на паллетах в ячейках. Структура хранения данных о товаре: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Есть заказ на отгрузку, с детализацией вида: Код: sql 1. 2. 3. 4. 5. 6.
Количество паллет с товаром конечно. Укладки товаров на паллетах различны, но как правило один товар укладывается 1-2 способами (вопросы оптимизации логистики). Задача в том, чтобы подобрать из заказа максимальное количество товара паллетами. Если товара не хватает на паллетах, то он подбирается отдельно (то есть паллетно можно отдать меньше). Паллеты не дробятся -- складская техника за раз может взять одну паллету целиком. При ситуации, описанной выше, когда нужно подобрать 250, а есть на складе паллеты по 240 и паллеты по 50, считаем оптимальным подобрать 240 (реализуем стратегию ускорения подбора в ущерб оптимизации хранения). Хотелось бы на выходе получить таблицу вида: Код: sql 1.
Код: plaintext 1. 2. 3. 4. 5. 6.
Заранее спасибо и прошу прощения если что-то оформлено не так. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 17:28 |
|
Задача на накопительный итог
|
|||
---|---|---|---|
#18+
А ничего, что может быть несколько заказов на отгрузку с пересекающимися данными для обхода? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 17:39 |
|
Задача на накопительный итог
|
|||
---|---|---|---|
#18+
ambarka_maxА ничего, что может быть несколько заказов на отгрузку с пересекающимися данными для обхода? Считаем, что заказы обрабатываются последовательно, и, после снятия паллеты, строка из таблицы Cell удаляется. То есть конкуренции за паллету нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 17:45 |
|
Задача на накопительный итог
|
|||
---|---|---|---|
#18+
Алгоритмы это все хорошо, но уловите суть: Если у вас на складе не один грузчик бегает, то просто жизненно необходимо (при расчете какую паллету из какой ячейки брать) учитывать эти данные и для других параллельных отгрузок. Своего рода в какой то момент времени должен происходить резерв по-палетно, а не по товару. И эта информация должна учитываться при расчете других отгрузок. То есть, вот тот результат который вы хотите получить для отгрузки клиента №1 его нужно сохранить, и для расчета отгрузки клиента №2, результат резерва от первого - учитывать. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 17:53 |
|
Задача на накопительный итог
|
|||
---|---|---|---|
#18+
ambarka_maxАлгоритмы это все хорошо, но уловите суть: Если у вас на складе не один грузчик бегает, то просто жизненно необходимо (при расчете какую паллету из какой ячейки брать) учитывать эти данные и для других параллельных отгрузок. Своего рода в какой то момент времени должен происходить резерв по-палетно, а не по товару. И эта информация должна учитываться при расчете других отгрузок. То есть, вот тот результат который вы хотите получить для отгрузки клиента №1 его нужно сохранить, и для расчета отгрузки клиента №2, результат резерва от первого - учитывать. ambarka_max, вы полностью правы. На самом деле структура склада сложнее, резервирование происходит. Если быть точным, данный алгоритм как раз резервирует паллеты. Но, по моему мнению, к самому алгоритму тонкости работы склада отношения не имеют. Как мне кажется, я описал достаточное количество полей для понимания задачи, и грузить дополнительными сложностями неспециалистов не хочу. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 17:59 |
|
Задача на накопительный итог
|
|||
---|---|---|---|
#18+
DimArie... Если быть точным, данный алгоритм как раз резервирует паллеты. Тогда я спокоен. Выдохнул. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2013, 18:05 |
|
Задача на накопительный итог
|
|||
---|---|---|---|
#18+
DimArie, Если в заказе товар уникален, то так. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2013, 14:55 |
|
|
start [/forum/topic.php?fid=46&msg=38423021&tid=1704995]: |
0ms |
get settings: |
12ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
31ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 151ms |
0 / 0 |