Выполняя обещание, данное DocentI, пишу о корректности вычислительного эксперимента. Пусть, у нас есть модель некоторой системы, реализованная в виде достаточно сложного комплекса компьютерных программ и включающая входные данные (вектор $%x$%), собственно вычислительную программу (функция или оператор $%A$%) и выходные данные (вектор $%y$%). Вычислительный эксперимент можно интерпретировать как $%y=Ax$% (оператор $%A$% действует на вектор$% х$%, в результате получается вектор $%y$%.

Обычно требуется решить частично-обратную задачу: найти такие значения компонентов вектора $%x$% (либо ограничения на эти компоненты, либо связи между ними), чтобы компоненты вектора $%y$% были в том или ином смысле оптимальными. Это задача оптимизации, причем, если вектор $%y$% не удается свернуть в скаляр, оптимизация оказывается многокритериальной.

Под корректностью понимается достоверность получаемых значений $%y$%. Некорректность может быть вызвана разными причинами, отметим основные

1) Вектор $%x$% оказался вне пределов области адекватности модели. Как правило, оценить априори структуру области адекватности невозможно, особенно при оптимизации. Но сама программа может отследить, что в процессе расчета значения некоторых величин оказались недопустимыми (например, температура превысила температуру плавления стенок камеры и т.п.). При этом удобно использовать не две градации "корректно"/"некорректно", а несколько, т.е. задавать "Уровень корректности", например, для температуры - нормальная, высокая, критическая (близкая к температуре плавления) и фатальная (выше температуры плавления).

2) Неправильно отработали какие-то вычислительные механизмы, например, не сошлась итерационная процедура. Здесь тоже могут быть критические и некритические ошибки, что порождает разные "Уровни корректности".

Все это приводит к тому, что к выходным данным необходимо добавить еще одну величину - "индикатор корректности", который будет указывать, можно доверять полученным значениям $%y$%, или нет.

3) Особое значение индикатор корректности приобретает при оптимизации - оптимизировать нужно только по корректным точкам! С одной стороны, это большое усложнение и так сложной задачи, но с другой стороны появляется возможность сформулировать общий метод многокритериальной оптимизации с учетом корректности, если исходить из метода выделения главного критерия, а выполнение/невыполнение дополнительных критериев включить в индикатор в виде еще одного типа корректности "Оптимизационная корректность". Здесь тоже возможны свои уровни.

Далее при решении конкретной задачи по каждому типу корректности можно выставить допустимый уровень.

Прошу высказать соображения и замечания по поводу вышеизложенного.

задан 22 Мар '12 17:31

изменен 19 Май '12 10:58

%D0%A5%D1%8D%D1%88%D0%9A%D0%BE%D0%B4's gravatar image


5525

В первом пункте Вы, наверное, имели ввиду "Вектор Y оказался вне пределов...". Такое неудобство пытаются побороть, включая в оператор А разные "автоматические" ограничители, которые мешают Y принять неадекватные значения.

(22 Мар '12 18:12) BuilderC
1

Нет, я имел в виду именно вектор x! Я же там пояснил в чем дело. Например, у Вас технологический ускоритель, который выстреливает пучок электронов через фольгу. Вы задаете параметры резонаторов фокусирующие потенциалы, толщину фольги и т.п. и смотрите интенсивность пучка на выходе. В процессе моделирования оказалось, что при заданных значениях параметров интенсивность замечательная, но температура фольги (это не выходной, а внутренний параметр, который входит в А, но не входит в y) оказалась 10000 градусов!

(22 Мар '12 18:39) Андрей Юрьевич

А почему нельзя было сразу ограничение на температуру наложить? Разве оно не было известно?

(22 Мар '12 23:50) DocentI

Ограничение-то известно, но сама температура зависит от того, каковы параметры пучка (диаметр, распределение плотности и т.п.) в момент прохождения фольги, т.к. именно он ее нагревает, а это заранее неизвестно, пучок нужно "довести" то фольги, т.е смоделировать его движение, а оно, в свою очередь, определяется параметрами резонаторов и фокусирующей системы (т.е. частью вектора x). Другая часть вектора x - параметры самой фольги (толщина, форма, материал и т.д.). Мы можем все это задать и посмотреть, что получится. А если бы мы заранее знали, что получится, - не было бы задачи.

(23 Мар '12 1:54) Андрей Юрьевич

Ясно. Т.е. зависимости "многоступенчатые". Трудные у Вас задачи! Хотя с тем, что "задачи бы не было" - не соглашусь. Оптимизация и при полной информации - сложное дело.
Пытаюсь спроецировать эти проблемы на "свои" задачи: были ли они там? Наверное, да. Например, когда распределяешь точки доставки по грузовикам последовательно, последние маршруты бывают обычно плохими, очень длинными и неудобными. И узнаешь об этом уже после того, как задача решена. Разница только в том, что ничего не сгорит и не взорвется, т.е. "допуск" гораздо больше.

(23 Мар '12 10:00) DocentI
10|600 символов нужно символов осталось
0

Думаю, часть из описанных условий мне знакома (например, 1 и 3) и они не связаны напрямую именно с вычислительным экспериментом. Их можно, по крайней мере теоретически, описывать и задавать на уровне математической модели.
Другое дело, что это описание может быть затруднительно и проще провести выч. эксперимент, а уж потом посмотреть что получилось. Но не является ли это слишком расточительным способом экспериментирования (типа метода тыка: выйдет-не выйдет?). Думаю, тут многое зависит от устойчивости модели: если получились неудачные значения x, то их можно "подправить" без большого изменения выходного вектора y.

Мой опыт моделирования (правда, очень давний) связан с комбинаторной оптимизацией, там "немного изменить" исходные параметры обычно не удается. Впрочем, и таких драматических вещей, как прожженная фольга, не было: в худшем случае пошлешь пару лишних машин на маршруты.

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

Чисто вычислительные трудности (отсутствие сходимости и т.п.) - это, конечно, явления другого порядка.

ссылка

отвечен 22 Мар '12 23:48

изменен 22 Мар '12 23:49

Нет, речь идет не о методе тыка, о об оптимизации по большому числу (около 20) входных параметров. Оценить априори область адекватности в таком 20-мерном пространстве - нереально. При оптимизации задается область в виде параллелепипеда, который, естественно, будет включать и некорректные области, и в процессе оптимизации мы вполне можем оказаться в точке из такой области. Нужно иметь алгоритм для действий в этом случае.

(23 Мар '12 0:10) Андрей Юрьевич

Да, я так и предполагала, что область возможных значений параметров слишком сложна. Это вроде как с некоторыми ОДЗ: если оно слишком сложное, проще найти решения и проверить их. Только при этом надо решения не потерять (что в случае оптимизации вполне возможно и даже ожидаемо).
И все-таки это частично метод тыка. Не самый плохой метод в моделировании!

(23 Мар '12 0:15) DocentI
10|600 символов нужно символов осталось
Ваш ответ

Если вы не нашли ответ, задайте вопрос.

Здравствуйте

Математика - это совместно редактируемый форум вопросов и ответов для начинающих и опытных математиков, с особенным акцентом на компьютерные науки.

Присоединяйтесь!

отмечен:

×145
×23
×2

задан
22 Мар '12 17:31

показан
1642 раза

обновлен
19 Май '12 10:58

Отслеживать вопрос

по почте:

Зарегистрировавшись, вы сможете подписаться на любые обновления

по RSS:

Ответы

Ответы и Комментарии

Дизайн сайта/логотип © «Сеть Знаний». Контент распространяется под лицензией cc by-sa 3.0 с обязательным указанием авторства.
Рейтинг@Mail.ru