русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Формулировка основной математической задачи оптимизации.


Дата добавления: 2014-07-12; просмотров: 2254; Нарушение авторских прав


Требуется найти такие значения n переменных X=x1,x2,...xn, при которых значение функции F(X) будет наибольшим или наименьшим из возможных. Переменные x1,x2,...xn называются искомыми или управляемыми переменными. Функция F(X) называется целевой функцией. Целевая функция может быть максимизируемой или минимизируемой (максимизация прибыли, минимизация затрат).

Задача максимизации функции соответствует минимизации целевой функции .

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

G(X) = gi(x1,x2,...xn) < , = , > 0; i = 1,...m,где m - число ограничений.

Таким образом, задача оптимизации формулируется так:

при ограничениях G(X) < , = , > 0.

Каждое значение Х является решением задачи. Если решение удовлетворяет ограничениям, оно называется допустимым. То решение, которое удовлетворяет ограничениям и дает минимальное (или максимальное) значение целевой функции называется оптимальным.

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

Простейшая задача: оптимизация функции одного переменного без ограничений - . Необходимым условием наличия минимума в точке х* является равенство нулю первой производной F по х в этой точке: . Данное уравнение определяет необходимое условие минимума, но не является достаточным условием. Точках* является точкой минимума, если вторая производная .

Минимум определяется как решение, для которого значение целевой функции строго меньше, чем ее значения для любого решения из окрестности точки минимума. Такой минимум называется локальным.



Целевая функция может иметь несколько минимумов. Наименьшее значение функции достигается в точке глобального минимума. Глобальный минимум есть минимум из всех локальных минимумов. На рис. 3.1 локальные минимумы функции достигаются в точках А и В, причем в точке В достигается глобальный минимум.

Рис. 3.1. Многоэкстремальная целевая функция

Есть два особых и важных вида функций: выпуклые и вогнутые (рис. 3.2). У выпуклых функций вторая производная всегда неотрицательная и, если выпуклая функция имеет локальный минимум, он же является и глобальным. У вогнутых функций вторая производная всегда отрицательная и, если такая функция имеет локальный максимум, он же является и глобальным.

Рис. 3.2. Выпуклая и вогнутая функции

Для строго выпуклых и вогнутых функций существует единственное оптимальное решение. Сумма строго выпуклых или строго вогнутых функций есть также строго вогнутая или строго выпуклая функция, имеющая единственное оптимальное решение.

Пример: площадь поперечного сечения земляного полотна в выемках и насыпях – строго выпуклая функция – при увеличении высоты насыпи или глубины выемки площадь сечения всегда увеличивается. Объем земляных работ равен сумме объемов земляных работ в зоне каждого поперечника (произведение площади сечения на длину зоны) – сумме строго выпуклых функций. Следовательно, функция, определяющая объем земляных работ является строго выпуклой, имеет единственное оптимальное решение (минимум профильного объема земляных работ), которое может быть определено математическими методами.

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

3.3. Оптимизация без ограничений

3.3.1. Прямой одномерный поиск

Если уравнение не решается аналитически, например, функция F неизвестна, для его решения используются численные (прямые) методы.

С помощью прямых методов минимум целевой функции ищется непосредственно на некотором интервале a<x<b, в котором, как предполагается, лежит минимум, вычисляя значения функции в выбранных точках данного интервала. Иногда это единственно возможная стратегия поиска.

Например, стоимость проведения технологического процесса может зависеть от некоторого фактора T. Известно, что стоимость реализации процесса (себестоимость продукции) является функцией от T, хотя явный вид этой функции неизвестен.

Однако можно поставить эксперимент и провести процесс при различных Т, найти его стоимость для всех рассмотренных значений Т и надеяться определить такое значение Т, при котором стоимость процесса минимальна.

Задачей численных математических методов является достижение поставленной цели наиболее эффективным способом – при минимальном числе экспериментов.

Поиск методом Фибоначчи[3].Предположим, что минимум нужно определить как можно точнее, то есть с наименьшим возможным интервалом неопределенности,но при этом можно выполнить только n вычислений функции. Как следует выбрать n точек, в которых вычисляется функция? Надо попытаться сделать так, чтобы значения функции, полученные в предыдущих экспериментах, определяли положение последующих точек – накапливая информацию о значениях функции использовать ее в дальнейшем поиске [5].

Предположим, что имеется интервал неопределенности (х1,х3) и известно значение функции f(x2) внутри этого интервала (рис. 3.3). Если можно вычислить функцию всего один раз в точке х4, то где следует поместить точку х4, для того чтобы получить наименьший возможный интервал неопределенности?

Положим х2-х1=L и х3-х2=R, причем L>R и эти значения будут фиксированы, если известны х1,х2 и х3.

Если х* находится в интервале (х1,х2), то:

если f(x4)<f(x2), то новым интервалом неопределенности будет (х1,х2) длиной x2-x1=L;

если f(x4)>f(x2), то новым интервалом неопределенности будет (х4,х3) длиной x3-x4=D.

Рис. 3.3. Поиск методом Фибоначчи. Длины интервалов

Поскольку неизвестно, какая из этих ситуаций будет иметь место, выберем х4 таким образом, чтобы минимизировать наибольшую из длин x3-x4и x2-x1. Достигнуть этого можно, сделав длины Lи Dравными, то есть, поместив х4 внутри интервала (x1,x2)симметрично относительно точки х2, лежащей внутри интервала (x1,x3).

Любое другое положение точки х4, может привести к тому, что полученный интервал Dбудет больше L. Помещая х4 симметрично относительно х2, мы ничем не рискуем в любом случае.

Если окажется, что можно выполнить еще одно вычисление функции, то следует применить описанную процедуру к интервалу (х1,х2), в котором уже есть значение функции, вычисленное в точке х4, или к интервалу (х4,х1), в котором уже есть значение функции, вычисленное в точке х2.

Следовательно, стратегия поиска ясна с самого начала. Нужно поместить следующую точку внутри интервала неопределенности симметрично относительно уже находящейся там точки.

Для организации поиска обычно используется числовой ряд Фибоначчи: F0=1, F1=1 и Fk=Fk-1+Fk-2 для k=2,3…,m.

Если начальный интервал (а, b) имеет длину L0=b-a и требуется получить результат с точностью e(интервал неопределенности 2e), необходимо выполнить n+1 шаг, причем n определяется из условия: и это наилучший результат (число шагов минимально).

Задача поиска может быть поставлена в двух вариантах:

- при заданном числе шагов найти оптимальное решение с максимальной точностью;

- при заданной точности найти оптимальное решение за минимальное число шагов.

Пример:

1) начальный интервал (а, b) имеет длину L1=b-а, за четыре шага найти решение с максимальной точностью (рис. 3.4).

2) начальный интервал (0,10) м, найти минимальное число шагов для получения решения с точностью e=±0,01 м. F13=377, F14=610. Число шагов равно 15.

Рис. 3.4. Поиск методом Фибоначчи. L4 - окончательный интервал неопределенности

Поиск методом «золотого сечения».Не всегда удается определить, сколько раз придется вычислять функцию. В методе Фибоначчи это нужно для реализации первого шага, то есть определения положения начальной точки поиска.

Метод «золотого сечения»[4] практически столь же эффективен как метод Фибоначчи, однако при этом не требуется знать n – количество вычислений функции, определяемое заранее. Он лучше поддается алгоритмизации.

Функция последовательно вычисляется в точках, делящих интервал неопределенности в соотношении, определяемом как «золотое сечение»:

(рис. 3.5).

Это число называют также «золотым числом».

Рис. 3.5. «Золотое сечение»

Вывод формулы «золотого сечения»:

На первом шаге значения функции определяются в точках x1 и x2, делящих начальный интервал так, чтобы отношение целого к большей части равнялось отношению большей части к меньшей, что возможно только при равенстве этого отношения «золотому сечению».

Затем в зависимости от соотношения значения функции f(x1) и f(x2) интервал (a,x1) или интервал (x2,b) отбрасывается. После этого на каждом шаге значение функции определяется только в одной точке (на втором шаге в точке х3), при этом «золотое сечение» всегда сохраняется (рис. 3.6).

Рис. 3.6. Поиск минимума функции методом золотого сечения

Случайный поискметод Монте-Карло

При случайном поиске значения функции определяются последовательно для x равномерно распределенных (в простейшем случае) на начальном интервале (a,b).

Для получения оптимального решения с вероятностью р необходимое число проб равно , где D–выраженная в долях от начального интервала поиска длина отрезка, центром которого является оптимальное решение.

При a = 0, b = 10 м, p = 0.999, точности e= ± 0.005 м: . Это меньше, чем при простом сканировании зоны поиска с .

Вероятность успеха поиска равная 0,999 соответствует практической достоверности результата для технических приложений.

Однако, для одноэкстремальной задачи с аналогичными характеристиками, при использовании метода Фибоначчи – N=17, а при использовании метода Монте-Карло – N=6905.

Метод Монте-Карло – простейший из методов случайного поиска, при использовании более развитых алгоритмов требуется меньшее число проб, но оно всегда очень велико. Главным достоинством этих методов является гарантия нахождения глобального минимума многоэкстремальной (в общем случае, любой) целевой функции, которую не может обеспечить ни один из других методов. Их главным недостатком является большие затраты времени на расчет.

С этим недостатком приходится считаться, однако, если задача действительно многоэкстремальна, найти им альтернативу крайне трудно.

3.3.2. Прямой многомерный поиск

Рассмотрим функцию двух переменных. Линии постоянного уровня показаны на рис. 3.7 (линией уровня называется кривая, соединяющая точки с равными значениями функции), а минимум лежит в точке х1*,х2*.

 
 

Простейшим методом поиска является метод покоординатного спуска. Из точки A мы производим поиск минимума вдоль направления оси х1 и, таким образом, переходим в точку B, в которой касательная к линии уровня параллельна оси х1. Затем, произведя поиск из точки B в направлении оси х2, получаем точку C, произведя поиск вдоль оси х1, получаем точку D и т.д.

Рис. 3.7. Покоординатный спуск

Таким образом, мы приходим к оптимальной точке. Очевидным образом эту идею можно распространить на функцию n переменных. На практике этот метод оказывается слишком медленным, а в сложных случаях имеет «тупиковую» сходимость (останавливается далеко от точки минимума в связи с фиксацией направлений спуска только по координатным осям). Поэтому были разработаны более сложные методы, использующие больше информации на основе уже полученных значений функции.

Поиск по образцу, метод Хука-Дживса [5]

Поиск состоит из последовательности шагов вокруг базисной точки, за которой в случае успеха следует поиск по образцу (рис. 3.8).

Рис. 3.8. Поиск по образцу

Описание процедуры поиска:

A. Выбрать начальную точку b1 и шаг длиной h.

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

1. Вычисляется значение функции f(X) в базисной точке b1.

2. Каждая переменная по очереди изменяется прибавлением шага h. Таким образом, вычисляется значение функции , где – единичный вектор в направлении оси . Если это приводит к уменьшению значения функции, то заменяется на . В противном случае вычисляется значение функции , и если ее значение уменьшилось, то заменяется значением . Если ни один из проделанных шагов не приводит к уменьшению значения функции, то точка остается неизменной и рассматриваются изменения в направлении оси хj+1, то есть находится значение функции и т.д. Когда будут рассмотрены все n переменных, мы будим иметь новую базисную точку.

3. Если b2=b1, то есть уменьшение функции не было достигнуто, то исследование продолжается вокруг той же базисной точки, но с уменьшенной длиной шага. На практике удовлетворительным является уменьшение шага в десять раз от начальной длины.

4. Если b2¹b1, то производится поиск по образцу.

C. При поиске по образцу используется информация, полученная в процессе исследования, и минимизация функции завершается поиском в направлении заданном образцом. Эта процедура производится следующим образом:

1. Разумно двигаться из базисной точки b2 в направлении b2-b1, поскольку поиск в этом направлении уже привел к уменьшению функции.

2. Затем исследование следует продолжить вокруг данной точки.

3. Если наименьшее значение на шаге C.2 меньше значения в базисной точке b2 (в общем случае bj+1), то получим новую базисную точку b3(bj+2), после чего следует повторить шаг C.1. В противном случае - не производить поиск по образцу из точки b2(bj+1), а про­должить исследование в точке b2 (bj+1).

Завершить этот процесс, когда длина шага будет уменьшена до требуемого значе­ния, определяемого точностью расчетов.



<== предыдущая лекция | следующая лекция ==>
Сплайн-интерполяция | Градиентные методы


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.008 сек.