Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 126 След.
Упрощенная задача о рюкзаке (оптимальная загрузка транспорта)
 
Цитата
Игорь написал:
А как вы это сделали?
Использовал свои алгоритмы для задачи линейного раскроя/упаковки в контейнеры, отсюда: http://www.excelworld.ru/forum/3-21304-1
Плюс немного ручной работы.
Даже получилось найти решение в 48 контейнера: 43*27 + 5*20
Раскладка во вложении

PS:
получить решение в 49 контейнеров для этого набора данных не сложно, значительно труднее найти решение в 48 контейноеров
Изменено: MCH - 24.09.2021 08:33:47
Упрощенная задача о рюкзаке (оптимальная загрузка транспорта)
 
У меня получилось 49 контейнеров: 42*27 + 7*20
Изменено: MCH - 24.09.2021 08:05:57
Подбор к комбинации из шести чисел неизвестных слагаеммых(от 1 до 49) к желаемой сумме слагаеммых
 
Вот еще один вариант, с другим алгоритмом (получилось похоже на вариант от МатросНаЗебре)
Подбор к комбинации из шести чисел неизвестных слагаеммых(от 1 до 49) к желаемой сумме слагаеммых
 
Ну значит я не правильно понял задачу
Подбор к комбинации из шести чисел неизвестных слагаеммых(от 1 до 49) к желаемой сумме слагаеммых
 
Цитата
Cristal написал:
А Вы заметили какие то не совпадения? Если да, покажите на скриншоте!
Второй тест:
Известно 4 числа: 8-12-14-39   Желаемая сумма 111
Какой должен быть результат?
Скрытый текст
Изменено: MCH - 21.09.2021 22:27:03
Подбор к комбинации из шести чисел неизвестных слагаеммых(от 1 до 49) к желаемой сумме слагаеммых
 
Цитата
Cristal написал:
Теперь всё разрешилось!
Cristal, проверьте работу макросов у нас с МатросНаЗебре, код выдает разный результат (например, на втором наборе данных или на других наборах)
Подбор к комбинации из шести чисел неизвестных слагаеммых(от 1 до 49) к желаемой сумме слагаеммых
 
У меня получилось такое решение, исключающее повторы, работает достаточно быстро
Изменено: MCH - 20.09.2021 09:30:47
Оптимизация процесса сборки и распределение сотрудников по этапам, с применением Поиск Решения.
 
Цитата
Seva Eremkin написал:
А можете пояснить, как получается эта строчка?Потребность времени2 148,81 455,41 500,01 095,72 288,7не очень понимаю формулу.
Я построил модель исходя из следующих соображений
Один участник собирает кубик за определенное время, другой за другое определенное время
Два участника соберут кубик (или 100 кубиков) за время меньшее, чем каждый из них в отдельности, поэтому я и определил понятие скорости сборки единицы (как обратная величина времени, затрачиваемое на сборку)
Если несколько участников участвуют в одном этапе, то общая скорость сборки получается как сумма скоростей всех участников на текущем этапе.

в конце считаем из суммарной скорости сколько нужно времени на сборку всей партии с учетом, что несколько участников собираю кубики одновременно на одном этапе
в фомуоле как раз и считается как требуемое количество кубиков деленное на суммарную скорость этапа, для избежания ошибки деления на 0 добавляю очень маленькую величину к скорости, иначе модель может не корректно считать

Цитата
Seva Eremkin написал:
Когда запускаю EVO solver, то он указывает, что не может улучшить данную модель, и решения оптимальны. Хотя, мне кажется, что при каждой симуляции он вставляет разные комбинации.
Эволюционный/генетический алгоритм солвера не обязательно может найти абсолютный минимум/максимум, он может упереться в локальный экстремум функции, можно несколько раз запустить поиск решения при разных стартовых значениях (либо несколько раз подряд) и выбрать лучшее решение

По Вашим данным мне удалось немного улучшить решение (26 767,4), абсолютный минимум можно найти при полном переборе всех вариантов решения, по данным исходным данным это вполне возможно.

Цитата
Seva Eremkin написал:
А еще каким ограничением задается то, что этапы делаются по очереди от 1-го до 5-го?
т.к. этапы последовательны, то ищем минимальное значение суммы всех этапов, если можно было бы параллельно делать этапы, то нужно минимизировать максимальное время из всех этапов.
Оптимизация процесса сборки и распределение сотрудников по этапам, с применением Поиск Решения.
 
Приложите исходные данные в виде Excel файла

Составил собственную модель на случайных данных, не обязательно получилось оптимальное решение.
Для 10 участников и 5 этапах можно попробовать решить задачу полным перебором (5^10 = 9 765 625 комбинаций) и найти оптимальное решение
Изменено: MCH - 13.09.2021 13:55:30
Макрос. Равномерное распределение груза по складам
 
Распределение "жадным" алгоритмом и вручную
Изменено: MCH - 08.09.2021 16:22:07
Вывести список повторяющихся значний
 
Цитата
Неопытный_Экселист написал:
Кто-нибудь может подсказать, зачем в формуле из поста  14  используются квадратные скобки?
Квадратные скобки относятся к функции ТЕКСТ для формата вычисляемого числа,
в части формулы: ТЕКСТ(...вычисления...;"[>2E8]0;;\0") будет возвращаться число в текстовом виде, если оно больше значения 200 млн (2*10^8) и "0" во всех остальных случаях
при этом ...вычисления... рассчитываются по формуле: СЧЁТЕСЛИ(A$2:A$910;A$2:A$910)*10^8+A$2:A$910
т.е. количество повторов каждого значения умножается на 10^8 и прибавляется само значение, для всех случаев повторов более 2 (значение более чем 2*10^8), сохраняем число иначе "зануляем" его с помощью функции ТЕКСТ
Оптимальный выбор корзины из двух товаров, при наличии ограничений.
 
Можно использовать надстройку "Поиск решения"
получилось подобрать А - 540, Б - 23
Нужно проверить в реальных условиях, у "поиска решения" есть ограничение в 200 изменяемых ячеек (в данном случае можно использовать OpenSolver)
Формула для расчёта даты окончания отпуска с учётом праздничных дней
 
Еще вариант, формула массива:
Код
=НАИМЕНЬШИЙ(ЕСЛИ(СУММЕСЛИ($T$8:$T$24;E7+СТРОКА($1:$99)-1)=0;E7+СТРОКА($1:$99)-1);F7)
Вывести список повторяющихся значний
 
сводная
Вывести список повторяющихся значний
 
Как вариант - Сводная таблица с сортировкой

По вопросу темы "ПОИСК НАИБОЛЕЕ ПОВТОРЯЮЩЕГОСЯ ЗНАЧЕНИЯ В EXCEL", Для чисел подойдет:
Код
=МОДА(A2:A910)
Изменено: MCH - 02.09.2021 16:35:31
Проставить пол респондлентов М или Д в зависимости от окончания фамилии
 
Код
=ЕСЛИОШИБКА(ЕСЛИ(ПСТР(B4;ПОИСК(" ";B4)-1;1)="а";"Д";ЕСЛИ(ПСТР(B4;ПОИСК(" ";B4)-1;1)="в";"М";"?"));"")

Если заканчивается на "а" - Д
Если на "в" - М
Иначе неизвестно
Если нет пробела, то пустая строка

На всякий случай, если заканчивается на "ва" - Д
Вдруг будут иностранные фамилии
Код
=ЕСЛИОШИБКА(ЕСЛИ(ПСТР(B4;ПОИСК(" ";B4)-2;2)="ва";"Д";ЕСЛИ(ПСТР(B4;ПОИСК(" ";B4)-1;1)="в";"М";"?"));"")
Изменено: MCH - 26.08.2021 16:34:14
Как корректно изменить цены, не меняя количество, чтобы сумма по прайсу стала равна заданной, Пропорция и/или скользящее округление формулами, PQ, VBA и прочими инструментами
 
Цитата
Jack Famous написал:
функция для перебора заданного количества значений с анализом каждой комбинации на попадание в диапазон и отсевом ненужных
Так уже есть что то подобное: Подбор слагаемых под нужную сумму и Задача о рюкзаке

В задаче "Сумма подмножеств" (подбор слагаемых под нужную сумму) есть вариант полного перебора с использованием МВиГ и выводом всех возможных вариантов
А тот же "рюкзак", если его применить к текущей задаче, лучше решать динамическим программированием, где в качестве цены нужно задать отклонение цены от среднего коэффициента и выбрать тот вариант, в котором будет наименьшее суммарное отклонение.
Как корректно изменить цены, не меняя количество, чтобы сумма по прайсу стала равна заданной, Пропорция и/или скользящее округление формулами, PQ, VBA и прочими инструментами
 
Внес поправки в модель:
Сделал возможность округлять цены до кратности в копейках (1, 5, 10, 50, 100 копеек), чтобы не было проблем при добавлении к цене НДС и получалось целое число
Добавил возможность работать с дробным количеством (3 знака после запятой), за счет округления итоговая сумма может отклоняться от искомой на несколько копеек
Дополнил строки, можно использовать перечень из 100 позиций

Не ставил перед собой задачу - поиск наилучшего результата корректировки, при ограничении на сколько копеек можно менять цену и так получится приемлемый результат, который рассчитывается очень быстро
Как корректно изменить цены, не меняя количество, чтобы сумма по прайсу стала равна заданной, Пропорция и/или скользящее округление формулами, PQ, VBA и прочими инструментами
 
Вариант решения:
1. Определяем новые цены для получения нужной суммы, возможны варианты:
1.1. Округляем цены до копеек с учетом пропорционального множителя
1.2. Округляем цены вниз
1.3. Округляем ценны вверх
1.4. Любое другое округление

В результате п.1. получаем приближенную сумму, она может быть больше или меньше искомой

2. Подбираем корректировки цен, которые приведут к минимальному отклонению суммы от нужной
Корректируем на целые копейки, задачу сводим к решению задачи "сумма подмножеств" с помощью динамического программирования, где в качестве слагаемых будут количества

3. Для наименьшего отклонения от пропорционального коэффициента:
задаем ограничение - на сколько можно менять цену в копейках
сортируем цены от наибольшей к наименьшей, что при решении задачи "сумма подмножеств" будет давать корректировки наибольших цен

В примере получилось, что допустимо корректировать цены не более чем на 2 копейки при любом из вариантов первоначального округления.
Поиск уникальных дней в диапазоне
 
Еще вариант, формула массива:
Код
=СЧЁТ(1/ЧАСТОТА(ЕСЛИ(ТЕКСТ($A2:$A31;"ММММ")=D$1;$A2:$A31);$A2:$A31))
Равномерно распределить числа на указанное количество столбцов.
 
Вариант решения через "Поиск решения" при котором пытаемся найти оптимальное решение (наименьшее отклонение от среднего)
Модель линейная, поэтому считает относительно быстро
Можно использовать как стандартный "Поиск решения" так и OpenSolver
Равномерно распределить числа на указанное количество столбцов.
 
Цитата
timahvey написал:
Да и как определить, сколько может быть таких комбинаций?
13 чисел на 3 корзины - 1,5 миллиона вариантов (3^13 = 1 594 323)
Можно все их перебрать и выбрать лучшее или допустимое
"вручную" подобрал следующее решение (относительно равномерно):
0,82+8,66+2,803+2,54 = 14,823
4,2+0,87+6,05+3+0,7 = 14,82
2,136+0,289+9,1+3,269 = 14,794
Расчет зарплаты. Распределение зарплаты другим работникам при невыходе на работу
 
Как понял (см вложение)
Про "вариант 2" напишите подробнее, что нужно
Преобразование текста 22 июня 2021 г. 12:06 в дату
 
Код
=ДАТАЗНАЧ(ПОДСТАВИТЬ(ЛЕВСИМВ(A2;ПОИСК(" ";A2)+3)&ПСТР(A2;ПОИСК(" ";A2;4);5);"мая";"май"))
Транспортная логистика. Распределить адреса по зонам (участкам).
 
По математике.
Возможно подойдет метод Кларка-Райта который очень близок к поставленной задаче
Для упрощения изначально определяем расстояния между точками по координатам (по прямой) по данной матрице находим циклы методом Кларка-Райта
Если есть возможность построить расстояния по дорогам (с учетом рек, переездов, одностороннего движения и т.п.) - то делаем точную матрицу расстояний и решаем для каждого цикла задачу коммивояжера, улучшая решение.

Можно также сгруппировать точки методом k-средних, а затем использовать "коммивояжера" для каждой группы.

Цитата
RenatKZ написал:
Вы говорите у вас есть схожая работа по данной теме?
Метод Кларка-Райта - делал на VBA
Задачу коммивояжера, также реализовывал разными способами
k-средних (k-means) тоже есть решения
Изменено: MCH - 23.06.2021 15:29:14
Разделения знаков на триады
 
Код
=ЗАМЕНИТЬ(A1;3;;" ")
Линейная интерполяция. Найти значение функции для аргумента, между двумя значениями
 
Код
=ПРЕДСКАЗ(B1;СМЕЩ(F$7;ПОИСКПОЗ(B1;D$8:D$28);;2);СМЕЩ(D$7;ПОИСКПОЗ(B1;D$8:D$28);;2))

Код
=ТЕНДЕНЦИЯ(СМЕЩ(F$7;ПОИСКПОЗ(B1;D$8:D$28);;2);СМЕЩ(D$7;ПОИСКПОЗ(B1;D$8:D$28);;2);B1)
Изменено: MCH - 21.06.2021 16:19:46
Получить число из строки, записанной через разделители
 
Код
=--ПРАВСИМВ(ПОДСТАВИТЬ(A3;"/";ПОВТОР(" ";100));100)
Подбор лучшего расположения предмета в коробке силами Excel
 
Еще вариант формулы
Код
=МАКС(10^МУМНОЖ(LOG(ЦЕЛОЕ(A3:C3/ВЫБОР({1;2;3:1;3;2:2;1;3:2;3;1:3;1;2:3;2;1};E3;F3;G3)));{1:1:1}))
Подбор лучшего расположения предмета в коробке силами Excel
 
Ну и моя формула, раз сделал (по сути тоже самое)
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 126 След.
Наверх