Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Печенье на порции - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин  
Печенье на порции
Понравилось?
Светлый Дата: Пятница, 17.05.2024, 23:06 | Сообщение № 1
Группа: Друзья
Ранг: Старожил
Сообщений: 1832
Репутация: 510 ±
Замечаний: 0% ±

Excel 2013, 2016
Всем привет!
Давно не развлекались.
Задача:
Покупаю в понедельник две упаковки печенья на завтрак на неделю. Надо распределить ВСЁ печенье приблизительно равными порциями на 3-5 дней. Известен вес каждой упаковки и количество штук в упаковках.
Для одного вида печенья формула 224, для другого 228 символов.
При тестировании и с "Поиск решения" выявилось неоптимальное разбиение, поэтому решил написать формулу оптимального разбиения. В лоб получилось 3567 символов, потом сократил до 1222 символов. Думаю, что можно сократить на 20-25%
В файле оставил только вспомогательные и контрольные формулы.
Диапазоны и глубина вложений функций не позволяют использовать только формат 2003, поэтому такого ограничения нет.
Вскрываемся 27.05.24
К сообщению приложен файл: Razbivka.xlsx (15.3 Kb)


Программировать проще, чем писать стихи.
 
Ответить
СообщениеВсем привет!
Давно не развлекались.
Задача:
Покупаю в понедельник две упаковки печенья на завтрак на неделю. Надо распределить ВСЁ печенье приблизительно равными порциями на 3-5 дней. Известен вес каждой упаковки и количество штук в упаковках.
Для одного вида печенья формула 224, для другого 228 символов.
При тестировании и с "Поиск решения" выявилось неоптимальное разбиение, поэтому решил написать формулу оптимального разбиения. В лоб получилось 3567 символов, потом сократил до 1222 символов. Думаю, что можно сократить на 20-25%
В файле оставил только вспомогательные и контрольные формулы.
Диапазоны и глубина вложений функций не позволяют использовать только формат 2003, поэтому такого ограничения нет.
Вскрываемся 27.05.24

Автор - Светлый
Дата добавления - 17.05.2024 в 23:06
Светлый Дата: Четверг, 23.05.2024, 12:16 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1832
Репутация: 510 ±
Замечаний: 0% ±

Excel 2013, 2016
Формулу оптимального разбиения сократил до 827821 символов.


Программировать проще, чем писать стихи.

Сообщение отредактировал Светлый - Четверг, 23.05.2024, 15:23
 
Ответить
СообщениеФормулу оптимального разбиения сократил до 827821 символов.

Автор - Светлый
Дата добавления - 23.05.2024 в 12:16
Светлый Дата: Понедельник, 27.05.2024, 14:28 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 1832
Репутация: 510 ±
Замечаний: 0% ±

Excel 2013, 2016
Тихо сам с собою...
Причёсывать больше не хочется. В формуле на 821 ошибка, искать лень.
Выкладываю, что получилось.
Самому не удалось узнать что-то новенькое, для кого-то и это новеньким окажется.
Алгоритм оптимальных разбивок:
Сначала получаю массив пар наиболее близких к требуемому весу. Хвостиком к элементам - количество тех и тех печенин.
Суммирую по количеству дней в разных комбинациях элементы первого массива. Выбираю из этого те комбинации, которые в сумме дают полное количество печений.
Из них выбираю минимальную. Это получается та комбинация, которая даёт минимальное суммарное отклонение.
Из её номера нахожу пары.
Для простой формулы:
Из оставшихся печенин выбираю пару, которая по весу самая близкая к требуемому.
На последний день скидываю всё, что осталось, иначе остатки могут перейти на незапланированный день.
Эта разбивка неоптимальная.
К сообщению приложен файл: RazbivkaOtv.xlsx (18.8 Kb)


Программировать проще, чем писать стихи.
 
Ответить
СообщениеТихо сам с собою...
Причёсывать больше не хочется. В формуле на 821 ошибка, искать лень.
Выкладываю, что получилось.
Самому не удалось узнать что-то новенькое, для кого-то и это новеньким окажется.
Алгоритм оптимальных разбивок:
Сначала получаю массив пар наиболее близких к требуемому весу. Хвостиком к элементам - количество тех и тех печенин.
Суммирую по количеству дней в разных комбинациях элементы первого массива. Выбираю из этого те комбинации, которые в сумме дают полное количество печений.
Из них выбираю минимальную. Это получается та комбинация, которая даёт минимальное суммарное отклонение.
Из её номера нахожу пары.
Для простой формулы:
Из оставшихся печенин выбираю пару, которая по весу самая близкая к требуемому.
На последний день скидываю всё, что осталось, иначе остатки могут перейти на незапланированный день.
Эта разбивка неоптимальная.

Автор - Светлый
Дата добавления - 27.05.2024 в 14:28
MCH Дата: Вторник, 28.05.2024, 08:37 | Сообщение № 4
Группа: Админы
Ранг: Старожил
Сообщений: 2004
Репутация: 752 ±
Замечаний: ±

Для поиска оптимального решения задачу лучше всего свести к целочисленному линейному программированию и решать через "Поиск решения" (или аналогичные, например, Open Solver)
Во вложении раскладка по последнему примеру, найденная с помощью линейного программирования. На сколько она оптимальная, не могу сказать, но данных не очень много, поэтому задачу возможно решить полным перебором и выбрать оптимальный вариант.
Решение через "Поиск решения считаю более удобным, т.к. можно решать аналогичные задачи с большим количеством данных (больше дней, больше различных пачек печенья и т.п.), решение находится достаточно быстро, качество (оптимальность) решения приемлемое.
К сообщению приложен файл: razbivkaotv_lpsolver.xlsx (13.9 Kb)
 
Ответить
СообщениеДля поиска оптимального решения задачу лучше всего свести к целочисленному линейному программированию и решать через "Поиск решения" (или аналогичные, например, Open Solver)
Во вложении раскладка по последнему примеру, найденная с помощью линейного программирования. На сколько она оптимальная, не могу сказать, но данных не очень много, поэтому задачу возможно решить полным перебором и выбрать оптимальный вариант.
Решение через "Поиск решения считаю более удобным, т.к. можно решать аналогичные задачи с большим количеством данных (больше дней, больше различных пачек печенья и т.п.), решение находится достаточно быстро, качество (оптимальность) решения приемлемое.

Автор - MCH
Дата добавления - 28.05.2024 в 08:37
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!