Шестаков В.С. Оптимизация параметров горных машин. Учебное пособие (811777), страница 5
Текст из файла (страница 5)
Рассмотрим его более подробно.2.1.1. Метод одномерной поисковой оптимизации прямогоперебораСуть метода прямого (некоторые авторы называют полного)перебора заключается в том, что интервал возможного измененияпроектного параметра делится на равные части. Значение целевойфункции вычисляется для всех полученных значений переменнойпроектирования.
В результате сравнения определяется интервал параметра проектирования, на котором целевая функция принимаетнаибольшее (наименьшее) значение. Длина этого интервала равнадвум частям, на которые делится начальный интервал поиска. Изобразим это описание графически (рис.
2. 2). Интервал [xmin, xmax]принято называть начальным интервалом поиска. Для некоторыхинженерных задач, примеры которых рассмотрены далее, установление границ интервала не вызывает затруднений, для других же,когда установка границ представляет сложность, можно использо18вать такой прием. Из какихто соображений (можно даyже сказать «наугад») устанавливаем границы, проводим оптимизацию, и еслиокажется, что оптимальноерешение будет на границепринятого начального инyminXтервала, то сдвигаем наΔxчальный интервал в сторонуxmaxxminxоптэтой границы.Алгоритм метода соРис. 2. 2.
Иллюстрация алгоритмастоит из следующих этапов:метода прямого перебора1.Устанавливаютсяграницы возможного изменения переменной оптимизации [xmin,xmax], т.е. начальный интервал поиска.2. Задается количество участков деления начального интервалаN, и вычисляется x= (xmin - xmax) / N.3. Переменной оптимизации присваивают минимальное значение x= xmin.4. Вычисляется значение целевой функции y=f(x).5.
Переменная оптимизации меняется на шаг x=x+x.6. Пункты 4, 5 повторяют до тех пор, пока переменная не достигнет максимального значения, т. е. пока x<= xmax. В процессе изменения переменной и вычисления функции запоминается наилучшее (наименьшее или наибольшее) значение функции yo и соответствующее значение переменной xo.7.
После достижения максимального значения переменнойопределяется интервал, внутри которого находится оптимальноезначение переменной:xomin =xо - x, xomax =xо + x.Особенностью методов поисковой оптимизации является то,что определяется не оптимальная точка, а интервал, внутри которого лежит эта точка. Длина этого интервала равна двум частям, накоторые делится начальный интервал поиска. Два участка берутсяисходя из того, что оптимальная точка может лежать как правее19найденной точки, в которой функция имеет "наилучшее" из вычисленных значений, так и левее. Если разделить начальный интервална большее число отрезков, то получится интервал меньшего размера. Это нужно учитывать при выборе точности при поиске оптимального решения.
Если требуется получить точность, равную0.1[xmax-xmin], то потребуется разделить исходный интервал[xmax, xmin] на 20 отрезков и вычислить (с учетом вычислений по краям отрезка) 21 раз функцию.Достоинства метода: простота алгоритма, нахождение в результате оптимизации глобального оптимума даже для функций снесколькими экстремумами.
Недостатком метода можно считатьнеобходимость проведения большого числа вычислений для получения высокой точности. Программа, реализующая метод на языкеVisual Basic, будет представлена ниже в примере решения задачи.Особенностью инженерного творчества является то, что послеобнаружения недостатков в создаваемом объекте по возможностипытаются их исключить. Как же можно исключить указанный недостаток метода оптимизации?При задании такого вопроса обычно кто-нибудь предлагаетследующее решение.
Вначале необходимо провести решение, поделив начальный интервал на сравнительно большие отрезки (я рекомендую поделить на 20). Затем повторить поиск оптимальногорешения с использованием найденного интервала [xоmin, xоmax] в качестве начального интервала поиска.Алгоритм метода, приведенный выше, позволяет уяснить метод, но непосредственно составлять программу для ЭВМ по немузатруднительно. Принято алгоритм для программы представлять ввиде схемы с использованием общепринятых условных обозначений. Изображение алгоритма может иметь несколько вариантов,порядок составления алгоритмов рассмотрен в приложении. Схемаодного из вариантов алгоритма показана на рис. 2.
3.Блок-схема составлена для последующей реализации ее в виде подпрограммы. Для восприятия алгоритма в элементе 1 указанывходные параметры подпрограммы, а в 10 – выходные. Введениепараметров в элементы начала и конца подпрограммы является некоторым отступлением от стандарта (в стандарте принято использовать для начального элемента надпись начало, а для последнего – конец), но очень помогает написанию подпрограмм и про20верки передачи данных между подпрограммами.Для подпрограммы приве1xmin, xmax, Nденные в 1-м и 10-м элементахпараметры используются в каΔx= (xmax-xmin) /N 2честве аргументов.
Из блоксхем сразу видно, какие параyo=1010 x= xmin 3метры куда передаются. Элементом 3 реализовано началоизменения переменной, непоy=f(x)4средственно изменение – 7, а спомощью элемента 8 – проверкаДа 5Нетдостижения максимального знаy<yoзначения и организация цикла6yo=y, xо=хпо просчету всех значений. Вычисление функции показано вэлементе 4. При реализации вx = x+x7программе этот элемент можетбыть реализован операторомНетДа8x<=хmaxвызова подпрограммы-функции.С помощью элементов 3, 5, 69xomin=xo- Δx, xomax=xo+ Δx,реализован алгоритм поискаминимума, но отличием от известного алгоритма здесь явля10xomin , xomax , yoется то, что одновременно с запоминанием наименьшего знаРис.2.
3. Блок-схема алгоритма методачения функции здесь обеспечиоптимизации прямого переборавается запоминание значенияпеременной, при котором достигается минимум функции. Элемент 9 реализует вычисление интервала, в котором находится оптимальное значение переменной.При составлении программы по приведенному алгоритму необходимо организовать проверку правильности алгоритма и программы. Для этого обычно используются специально разработанные тесты. Для рассматриваемого варианта в качестве тестового задания может быть принято использование целевой функции с известным оптимальным решением. К примеру, можно применитьфункцию y=(x-5)2. При х=5 будет наименьшее значение функции,y=0.21По приведенному алгоритму и выбранной тестовой функциисоставим программу для выполнения оптимизации.
На листе «ПП»книги Excel расположим исходные данные и на него же выведем результаты расчета. Программное обеспечение разобьем на блоки повыполняемым самостоятельным функциям: ввод, оптимизация, расчет функции, вывод.Option Explicit‘Основная подпрограмма (п. п.)Sub Оптимизация_методом_прямого_перебора()Dim Xmin As Single, Xmax As Single, N As Integer, Xomin As SingleDim Xomax As Single, Yo As SingleCall Ввод(Xmin, Xmax, N)Call Мет_прям_переб(Xmin,Xmax,N,Xomin,Xomax,Yo) ‘1-й вызовCall Мет_прям_переб(Xоmin,Xоmax,N,Xomin,Xomax,Yo) ’2-й вызовCall Вывод(Xomin, Xomax, Yо)End Sub‘Подпрограмма ввода данных с листа “ПП”Sub Ввод(Xmin As Single, Xmax As Single, N As Integer)Xmin=Worksheets(“ПП”).Range(“D3”)Xmax=Worksheets(“ПП”).Range(“D4”)N=Worksheets(“ПП”).Range(“D5”)End Sub' Подпрограмма оптимизации методом прямого перебораSub Мет_прям_переб(Xmin As Single, Xmax As Single, N As Integer, _Xomin As Single, Xomax As Single, Yo As Single)Dim I As Integer, Y As Single, X As SingleYo = 1.0E+10 : dx= (Xmax - Xmin)/NFor X = Xmin To Xmax Step dx 'Цикл до максимального значения XY = Fx(X)'Вызов п.п.
расчета функцииIf Y < Yo Then'Запоминание минимального значения функции иYo = Y'соответствующего значения аргументаXo = XEnd IfNext xXomin= Xo-dx: Xomax= Xo+dx:End SubFunction Fx(X As Single) As Single'П.п. расчета целевой функции22Fx = (X-5)^2'Расчет функцииEnd FunctionSub Вывод(Xomin As Single, Xomax As Single, Yo As Single)Worksheets("ПП”).Range(“D7”)= XominПрограмма оптимиWorksheets("ПП”).Range(“D8”)= Xomaxзации методом пряWorksheets("ПП”).Range(“D9”)= Yoмого перебораEnd SubНа листе “ПП” Excel были введены следующие исходные данные ипосле расчетов получены результаты.А123456789BCDПроверка оптимизацииИсходные данныеМинимальное значение переменнойМаксимальное значение переменнойКоличество участков деления начальногоинтервалаОптимальное значениеНачало интервала с оптимальным значениемКонец интервала с оптимальным значениемМинимальное значение функции-1010204.8999995.0999999.09E-13Приведенная подпрограмма метода оптимизации может бытьиспользована для поиска оптимального решения задачи, в которойоптимум соответствует минимуму функции.