Мне необходимо оптимизировать ячейки в столбцах "Обрезка 1" и "Обрезка 2" по минимальному значению. При этом изменяемые ячейки в столбцах "Вес сляба 1" и "Вес сляба 2" имеют каждый свои ограничения по минимуму и максимуму. Я использую Поиск решения (Solver) вручную, и ряд ячеек после процедуры поиска выходит за указанный диапазон допустимости (обычно берет большее чем максимум значение или ставит минимум, который не является оптимальным решением). Поскольку оптимизацию я должен осуществить для 20000+ ячеек в каждом из двух столбцов, я написал макрос.
Соответсвенно, у меня два вопроса: 1. Почему Solver и при ручном использовании и при запуске макроса периодически выдает недопустимое решение? 2. Как сократить время расчета и снизить нагрузку на систему при поиске решения для такого огромного числа ячеек?
Доброго времени суток, друзья.
Мне необходимо оптимизировать ячейки в столбцах "Обрезка 1" и "Обрезка 2" по минимальному значению. При этом изменяемые ячейки в столбцах "Вес сляба 1" и "Вес сляба 2" имеют каждый свои ограничения по минимуму и максимуму. Я использую Поиск решения (Solver) вручную, и ряд ячеек после процедуры поиска выходит за указанный диапазон допустимости (обычно берет большее чем максимум значение или ставит минимум, который не является оптимальным решением). Поскольку оптимизацию я должен осуществить для 20000+ ячеек в каждом из двух столбцов, я написал макрос.
Соответсвенно, у меня два вопроса: 1. Почему Solver и при ручном использовании и при запуске макроса периодически выдает недопустимое решение? 2. Как сократить время расчета и снизить нагрузку на систему при поиске решения для такого огромного числа ячеек?kazar
Не, извините, но это нарушение Правил форума. Уберите из файла все, не относящееся к вопросу. Если не поможет - оставьте не 20000, а 300 ячеек для расчета. Кстати, иногда помогает перенос усеченных данных в чистый файл
Не, извините, но это нарушение Правил форума. Уберите из файла все, не относящееся к вопросу. Если не поможет - оставьте не 20000, а 300 ячеек для расчета. Кстати, иногда помогает перенос усеченных данных в чистый файл_Boroda_
Что-то там у Вас странное в Поиске решения. Вы считаете для W105, изменяете U105, а в условии R5<=D4. Почему R5? А в макросе Вы считаете для Т, изменяя R. Что-то я не очень понимаю что куда почему
Что-то там у Вас странное в Поиске решения. Вы считаете для W105, изменяете U105, а в условии R5<=D4. Почему R5? А в макросе Вы считаете для Т, изменяя R. Что-то я не очень понимаю что куда почему_Boroda_
Вот такие ограничения я забил в макросе. Т.е. каждая текущая изменяемая ячейка, которая на каждом ходу сдвигается вниз по столбцу, зависит от конкретных ограничений, которые расположены в неизменяемых ячейках - D3,D4 и J3,J4. Я что-то честно не вижу ошибки в коде. Если Вам не сложно, укажите, пожалуйста, конкретное место.
Вот такие ограничения я забил в макросе. Т.е. каждая текущая изменяемая ячейка, которая на каждом ходу сдвигается вниз по столбцу, зависит от конкретных ограничений, которые расположены в неизменяемых ячейках - D3,D4 и J3,J4. Я что-то честно не вижу ошибки в коде. Если Вам не сложно, укажите, пожалуйста, конкретное место.kazar
_Boroda_, ой, Господи, я идиот - оставил в поиске не те ограничения. На самом деле, я просто забыл убрать старые данные, когда Вам отпралял. Проблема все равно остается. Сейчас я ее подробно опишу.
В моем файле должны оптимизироваться по мин значению ячейки в столбцах T и W. При этом T-ячейки зависят от R столбца соответствующей строки, а W-ячейки от U столбца соответствующей строки. R во всех ячейках имеет ограничение по мин и макс из ячеек D3 и D4, а U аналогичные ограничения, но по ячейкам J3 и J4.
Как записать макрос правильно, чтобы эти правила работали, потому что в моем случае поиск решения идет без учета ограничений на изменяемые ячейки?
_Boroda_, ой, Господи, я идиот - оставил в поиске не те ограничения. На самом деле, я просто забыл убрать старые данные, когда Вам отпралял. Проблема все равно остается. Сейчас я ее подробно опишу.
В моем файле должны оптимизироваться по мин значению ячейки в столбцах T и W. При этом T-ячейки зависят от R столбца соответствующей строки, а W-ячейки от U столбца соответствующей строки. R во всех ячейках имеет ограничение по мин и макс из ячеек D3 и D4, а U аналогичные ограничения, но по ячейкам J3 и J4.
Как записать макрос правильно, чтобы эти правила работали, потому что в моем случае поиск решения идет без учета ограничений на изменяемые ячейки?kazar
Next i Application.DisplayAlerts = False Application.ScreenUpdating = False
End Sub
Теперь мой макрос выглядит так, как написано выше, и почему-то в изменяемых ячейках после поиска решений выбирается верхнее ограничение. Запустите, пожалуйста, файл и сразу включите макрос (с учетом начального плиближения в изменяемых ячейках, которое я проставил). Итог не удовлетворяет условию минимизации целевой ячейки, потому что есть варианты, при котором целевая ячейка обнуляется, но выбираются не они.
Next i Application.DisplayAlerts = False Application.ScreenUpdating = False
End Sub
Теперь мой макрос выглядит так, как написано выше, и почему-то в изменяемых ячейках после поиска решений выбирается верхнее ограничение. Запустите, пожалуйста, файл и сразу включите макрос (с учетом начального плиближения в изменяемых ячейках, которое я проставил). Итог не удовлетворяет условию минимизации целевой ячейки, потому что есть варианты, при котором целевая ячейка обнуляется, но выбираются не они.kazar