0
Июн 17
Добрый день.
Прошу совета.
Если у кого был опыт написания макросов для Excel с реализацией запуска итераций crystal ball'а,
а конкретно цикла в цикле, не могли бы поделиться синтаксисом?
Всю голову сломал, не получается)
С уважением,
ПС
с использованием
CBBeforeSimulation — Runs immediately after the Start Simulation command or Single-
Step command
l CBBeforeTrial — Runs before random numbers have been placed in assumption cells
l CBAfterRecalc — Runs after Microsoft Excel has recalculated the model but before a trial
value has been retrieved from the forecast cells
l CBAfterTrial — Runs after the forecast trial values have been retrieved and entered into the
forecast charts
l CBAfterSimulation
Опубликовано
14 Июн 2017
Активность
14
ответов
3271
просмотр
6
участников
1
Рейтинг
Я делал пару лет назад. С crystall ball идут два мануала, один из них очень технический и там есть все функции. Насколько я помню там было все просто когда модель уже есть и надо только re-run ее. Там была функция, сейчас уже не вспомню, типа CBRunSimulation. То что вы привели в примерах это более тонкие функции и вам не нужны.
Я думал, что с развитием пакетов в Питоне и R такие вещи как CB или @Risk уже не используются особо ...
Есть примеры использования R?
Я сам делал Monte-Carlo в R, основываясь на этом примере: https://rdrr.io/rforge/mc2d/f/inst/doc/docmcEnglish.pdf
Все упирается в вопрос удобства и фунциональности. Я несколько раз делал и сам monte carlo в базовом excel когда не было CB/@Risk, но занимает больше времени и не так удобно работать.
Не встречал такого и скорее всего на комиссии зарубят. Потом как правило оказывается, что отметки посчитали ошибочно, недоразведовали ошибочная геометрия месторождения, купола с разломами или тип зажели какой-нибудь другой.
Возможно в тему - Solver, кто-нибудь использовал, и если - ДА, то как?
Есть задача установить корреляцию между 3-5-ю измерениями, это реально селать в Solver'e?
Заранее спасибо
Да, все время пользуюсь. Пишите формулу с неизвестными коэффициентами ссылающимися на ячейки a,b,c,d. Потом делаете столбик где вычисляете целевую функцию где значения независимых переменных и результат известен. Далее вычислияте квадрат или просто положительную разницу между вашей формулой и реальным ответом. Распространяете эту формулу на столько данных сколько есть ответов. Суммируете все разницы (ошибки) в одну ячейку. Потом включаете солвер чтобы изменять ячейки a,b,c,d и минимизировать сумму ошибок. Все.
Единственное что когда много пременных солвер не всегда сможет найти глобальный минимум и может стать неустойчивым. Выход из этого дать коэффициенты которые дают более менее решения как начальный условия или еще лучше уменьшить количество переменных и коэффициентов. Когда слишком много переменных (не коэффициентов !) часто используют другие алгоритмы, те же neural networks как во многих петрофизических пакетах.
Пример.
В Solver сейчас есть галочка "Multistart" и еще вариант алгоритма "Evolutionary". Возможно, это помогает найти глобальное решение. Ну или хотя бы "условно глобальное" - т.е. box-constrained optimization. Речь идет про Excel 2016, не помню про 2013 - может и там было. Сам немного попробовал тыкать - пока не ощутил особой разницы со старым солвером. Может быть, нужны какие-нибудь бенчмарки известных функций (типа Розенброка или Растригина) в сравнении с другими солверами. В общем, подробности, отзывы и тому подобное - ищите в сети. Если найдете - велкам сюда полезные ссылки.
Спасибо, а есть оптимизационные алгоритмы?
Ответ - конечно есть! :) Думаю, даже на поиск "универсальный алгоритм" (general purpose optimizer), что-нибудь да выпадет.
Кроме шуток - немножко конкретнее выскажитесь, что ищете?
Да конкретно ничего не ищу, просто тема интересная. Вдруг какие-то наработки уже есть, подсмотреть
Welcome: https://cran.r-project.org/web/views/Optimization.html
По питону наверняка подобные описания реализованных оптимизаторов тоже есть