Найти минимум функции методом перебора примеры решения. Методы оптимизации

Основанные на методе полного перебора, являются самыми универсальными, но и самыми долгими.

Энциклопедичный YouTube

    1 / 5

    ✪ Перебор. Жадные алгоритмы: Полный перебор с использованием циклов. Центр онлайн-обучения «Фоксфорд»

    ✪ #82. Арифметическая прогрессия, делимость и полный перебор вариантов! Теория чисел на ЕГЭ

    ✪ Алгоритмы C++ Перебор (часть 1)

    ✪ #84. Задача про два взвода солдат! Строгое и понятное решение. ЕГЭ по математике (профиль)

    ✪ Перебор. Жадные алгоритмы: Задача о размене монет. Центр онлайн-обучения «Фоксфорд»

    Субтитры

Метод исчерпывания

Терминология

В английском языке рассматриваемый в данной статье термин «brute-force » обычно относится к классу хакерских атак . При этом более общее понятие, математический метод исчерпывания всевозможных вариантов для нахождения решения задачи, соответствует термину «Proof by exhaustion ».

Описание

«Метод исчерпывания» включает в себя целый класс различных методов. Обычно постановка задачи подразумевает рассмотрение конечного числа состояний данной логической системы с целью выявления истинности логического утверждения посредством независимого анализа каждого состояния . Методика доказательства утверждения состоит из двух частей:

  1. Доказательство возможности исчерпания всех состояний системы. Требуется показать, что любое конкретное состояние системы (например, значение доказываемого логического выражения) соответствует хотя бы одному из рассматриваемых кандидатов в решения.
  2. Проверка каждого варианта и доказательство того, что рассматриваемый вариант является или не является решением поставленной задачи.

Характерные задачи, решаемые методом полного перебора

Хотя полный перебор в большинстве прикладных задач (особенно не связанных со взломом шифров) на практике не применяется, есть ряд исключений. В частности, когда полный перебор всё же оказывается оптимальным, либо представляет собой начальный этап в разработке алгоритма, его использование оправдано. Примером оптимальности полного перебора является алгоритм оценки времени вычисления цепочечных произведений матриц, который не удаётся ускорить по сравнению с алгоритмом, основанным на методе «грубой силы» . Этот алгоритм используется для решения классической задачи динамического программирования - определения приоритетов вычислений матричных произведений следующего вида: A 1 A 2 A 3 ⋯ A n {\displaystyle A_{1}A_{2}A_{3}\cdots A_{n}} .

Пример использования полного перебора

Исходная задача заключается в вычислении данной цепочки (матричного произведения) за наименьшее время. Можно реализовать тривиальный последовательный алгоритм, вычисляющий искомое произведение. Поскольку матричное произведение является ассоциативной операцией , можно вычислить цепочечное произведение, произвольно выбирая пару элементов цепочки (A i A i + 1) , i = 1.. n − 1 {\displaystyle (A_{i}A_{i+1}),i=1..n-1} и заменяя её результирующей матрицей A i 1: A i 1 = (A i A i + 1) {\displaystyle A_{i}^{1}\colon A_{i}^{1}=(A_{i}A_{i+1})} . Если повторять описанную процедуру n − 1 {\displaystyle n-1} раз, то оставшаяся результирующая матрица A k n − 1 {\displaystyle A_{k}^{n-1}} и будет ответом: A k n − 1 = (A k n − 2 A k + 1 n − 2) = … = A 1 A 2 A 3 ⋯ A n , k = 1.. n − 1 {\displaystyle A_{k}^{n-1}=(A_{k}^{n-2}A_{k+1}^{n-2})=\ldots =A_{1}A_{2}A_{3}\cdots A_{n},k=1..n-1} . Эта формула может быть проиллюстрирована следующим образом. Рассмотрим матричную цепочку: ⟨ A 1 , A 2 , A 3 , A 4 ⟩ {\displaystyle \left\langle A_{1},A_{2},A_{3},A_{4}\right\rangle } . Существуют следующие 5 способов вычислить соответствующее этой цепочке произведение A 1 A 2 A 3 A 4 {\displaystyle A_{1}A_{2}A_{3}A_{4}} :

(A 1 (A 2 (A 3 A 4))) , {\displaystyle {\color {Violet}(}A_{1}{\color {BurntOrange}(}A_{2}{\color {BrickRed}(}A_{3}A_{4}{\color {BrickRed})}{\color {BurntOrange})}{\color {Violet})},} (A 1 ((A 2 A 3) A 4)) , {\displaystyle {\color {Violet}(}A_{1}{\color {BurntOrange}(}{\color {BrickRed}(}A_{2}A_{3}{\color {BrickRed})}A_{4}{\color {BurntOrange})}{\color {Violet})},} ((A 1 A 2) (A 3 A 4)) , {\displaystyle {\color {Violet}(}{\color {BrickRed}(}A_{1}A_{2}{\color {BrickRed})}{\color {BurntOrange}(}A_{3}A_{4}{\color {BurntOrange})}{\color {Violet})},} ((A 1 (A 2 A 3)) A 4) , {\displaystyle {\color {Violet}(}{\color {BurntOrange}(}A_{1}{\color {BrickRed}(}A_{2}A_{3}{\color {BrickRed})}{\color {BurntOrange})}A_{4}{\color {Violet})},} (((A 1 A 2) A 3) A 4) . {\displaystyle {\color {Violet}(}{\color {BurntOrange}(}{\color {BrickRed}(}A_{1}A_{2}{\color {BrickRed})}A_{3}{\color {BurntOrange})}A_{4}{\color {Violet})}.}

Выбрав правильный порядок вычислений, можно добиться значительного ускорения вычислений. Чтобы убедиться в этом, рассмотрим простой пример цепочки из 3-х матриц. Положим, что их размеры равны соответственно 10 × 100 , 100 × 5 , 5 × 50 {\displaystyle 10\times 100,100\times 5,5\times 50} . Стандартный алгоритм перемножения двух матриц размерами p × q , q × r {\displaystyle p\times q,q\times r} требует время вычисления, пропорциональное числу p q r {\displaystyle pqr} (число вычисляемых скалярных произведений) . Следовательно, вычисляя цепочку в порядке ((A 1 A 2) A 3) {\displaystyle ((A_{1}A_{2})A_{3})} , получаем 10 ⋅ 100 ⋅ 5 = 5000 {\displaystyle 10\cdot 100\cdot 5=5000} скалярных произведений для вычисления (A 1 A 2) {\displaystyle (A_{1}A_{2})} , плюс дополнительно 10 ⋅ 5 ⋅ 50 = 2500 {\displaystyle 10\cdot 5\cdot 50=2500} скалярных произведений, чтобы вычислить второе матричное произведение. Общее число скалярных произведений: 7500. При ином выборе порядка вычислений получаем 100 ⋅ 5 ⋅ 50 = 25000 {\displaystyle 100\cdot 5\cdot 50=25000} плюс 10 ⋅ 100 ⋅ 50 = 50000 {\displaystyle 10\cdot 100\cdot 50=50000} скалярных произведений, то есть 75000 скалярных произведений .

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

Связь с концепцией «разделяй и властвуй»

Другим ярким примером фундаментальной концепции теории алгоритмов является принцип «разделяй и властвуй ». Эта концепция применима, когда система поддается разделению на множество подсистем, структура которых аналогична структуре исходной системы . В таких случаях подсистемы также поддаются разделению, либо являются тривиальными . Для таких систем тривиальной является исходно поставленная задача. Таким образом, реализация концепции «разделяй и властвуй» имеет рекурсивный характер.

В свою очередь, рекурсия представляет собой разновидность полного перебора. Так, рекурсия применима лишь для дискретных систем . Однако это требование относится не к состояниям данной системы, а к её субструктуре . Последовательное рассмотрение всех уровней дает исчерпывающее решение задачи, поставленной для всей дискретной системы.

По сравнению с другими примерами полного перебора, особенностью метода рекурсии является то, что конечное решение опирается не на одну-единственную тривиальную подсистему. В общем случае решение формируется на основании целого множества подсистем.

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

Атака методом «грубой силы»

Кол-во знаков Кол-во вариантов Стойкость Время перебора
1 36 5 бит менее секунды
2 1296 10 бит менее секунды
3 46 656 15 бит менее секунды
4 1 679 616 21 бит 17 секунд
5 60 466 176 26 бит 10 минут
6 2 176 782 336 31 бит 6 часов
7 78 364 164 096 36 бит 9 дней
8 2,821 109 9x10 12 41 бит 11 месяцев
9 1,015 599 5x10 14 46 бит 32 года
10 3,656 158 4x10 15 52 бита 1 162 года
11 1,316 217 0x10 17 58 бит 41 823 года
12 4,738 381 3x10 18 62 бита 1 505 615 лет

Таким образом, пароли длиной до 8 символов включительно в общем случае не являются надежными. Для современных компьютеров этот показатель гораздо выше. Так, 64 битный ключ(пароль) перебирается на современном компьютере примерно за 2 года и перебор легко может быть распределен между множеством компьютеров.

Средства проведения атаки

Современные персональные компьютеры позволяют взламывать пароли полным перебором вариантов с эффективностью, проиллюстрированной в таблице выше. Однако, при оптимизации brute force, основанной на параллельных вычислениях , эффективность атаки можно существенно повысить . При этом может потребоваться использование компьютера, адаптированного к многопоточным вычислениям . В последние годы широкое распространение получили вычислительные решения, использующие GPU , такие как Nvidia Tesla . С момента создания компанией Nvidia архитектуры CUDA в 2007 году, появилось множество решений (см., например, Cryptohaze Multiforcer , Pyrit), позволяющих проводить ускоренный подбор ключей благодаря использованию таких технологий, как CUDA, FireStream , OpenCL .

Устойчивость к атаке полного перебора

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

  1. повышение требований к ключам доступа от защищаемой информации;
  2. повышение надежности всех узлов системы безопасности.

Таким образом, невозможно достичь высокого уровня защиты, улучшая только один из этих параметров. . Существуют примеры того, как система аутентификации, основанная на оптимальной сложности паролей, оказывалась уязвимой к копированию базы данных на локальный компьютер злоумышленника, после чего подвергалась brute force атаке с применением локальных оптимизаций и вычислительных средств, недоступных при удаленном криптоанализе . Такое положение дел привело к тому, что некоторые эксперты по компьютерной безопасности начали рекомендовать более критически относится к таким стандартным инструкциям, призванным обеспечить надежную защиту, как использование максимально длинных паролей . Ниже приведен список некоторых применяемых на практике методов повышения надежности криптосистемы по отношению к brute force атаке:

Методы оптимизации полного перебора

Метод ветвей и границ

Распараллеливание вычислений

Одним из методов увеличения скорости подбора ключа является распараллеливание вычислений . Существует два подхода к распараллеливанию :

  • Первый подход - построение конвейера . Пусть алгоритм соотношения E k (x) = y {\displaystyle E_{k}\ (x)=y} можно представить в виде цепочки простейших действий (операций): O 1 , O 2 , . . . , O N {\displaystyle {O_{1}\ ,O_{2},...,O_{N}}} . Возьмём N {\displaystyle N\ } процессоров A 1 , A 2 , . . . , A N {\displaystyle {A_{1}\ ,A_{2},...,A_{N}}} , зададим их порядок и положим, что i {\displaystyle i\ } - ый процессор выполняет три одинаковые по времени операции: Тогда конвейер из N {\displaystyle N\ } последовательно соединённых, параллельно и синхронно работающих процессоров работает со скоростью v / 3 {\displaystyle v/3\ } , где v {\displaystyle v\ } - скорость выполнения одной операции одним процессором.
  • Второй подход состоит в том, что множество K {\displaystyle K\ } всех возможных ключей разбивается на непересекающиеся подмножества K 1 K 2 , . . . , K N {\displaystyle {K_{1}\,K_{2},...,K_{N}}} . Система из Q {\displaystyle Q\ } машин перебирает ключи так, что i {\displaystyle i\ } - ая машина осуществляет перебор ключей из множества K i , i = 1.. Q {\displaystyle K_{i}\ ,i=1..Q} . Система прекращает работу, если одна из машин нашла ключ. Самое трудное - это разделение ключевого множества. Но если каждый процессор начнёт вычисление с какого-то произвольного ключа, то время нахождения увеличится, а схема значительно упростится. Среднее число шагов в этом случае составляет | K | / N {\displaystyle |K|/N\ } , где | K | {\displaystyle |K|\ } - число элементов во множестве ключей, а N {\displaystyle N\ } - число процессоров.

Радужные таблицы

Предпосылки к появлению

Компьютерные системы, которые используют пароли для аутентификации , должны каким-то образом определять правильность введенного пароля. Тривиальное решение данной проблемы - хранить список всех допустимых паролей для каждого пользователя, но такой подход не является безопасным. Одним из более предпочтительных подходов является вычисление криптографической хеш-функции от парольной фразы. Радужная таблица представляет собой оптимизацию этого метода . Основным её преимуществом является значительное уменьшение количества используемой памяти .

Использование

Радужная таблица создается построением цепочек возможных паролей. Каждая цепочка начинается со случайного возможного пароля, затем подвергается действию хеш-функции и функции редукции. Данная функция преобразует результат хеш-функции в некоторый возможный пароль (например, если мы предполагаем, что пароль имеет длину 64 бита, то функцией редукции может быть взятие первых 64 бит хеша, побитовое сложение всех 64-битных блоков хеша и т. п.). Промежуточные пароли в цепочке отбрасываются и в таблицу записываются только первый и последний элементы цепочек. Создание таких таблиц требует больше времени, чем нужно для создания обычных таблиц поиска, но значительно меньше памяти (вплоть до сотен гигабайт, при объеме для обычных таблиц в N слов для радужных нужно всего порядка N 2/3) . При этом они требуют хоть и больше времени (по сравнению с обычными методами) на восстановление исходного пароля, но на практике более реализуемы (для построения обычной таблицы для 6-символьного пароля с байтовыми символами потребуется 256 6 = 281 474 976 710 656 блоков памяти, в то время как для радужной - всего 256 6·⅔ = 4 294 967 296 блоков).

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

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

Инциденты

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

Атака «Энигмы»

Изобретенная в 1918 году шифровальная машина, названная «Энигма», широко использовалось немецким военно-морским флотом начиная с 1929 года. В течение дальнейших нескольких лет система модифицировалась, а с 1930 года активно использовалась немецкой армией и правительством в процессе Второй мировой войны .

Первые перехваты сообщений, зашифрованных с кодом Энигмы относятся к 1926 году. Однако прочитать сообщения долгое время не могли. На протяжении всей Второй мировой шло противостояние между польскими и германскими криптографами. Поляки, получая очередной результат по взлому немецкой криптосистемы, сталкивались с новыми трудностями, которые привносили германские инженеры, постоянно модернизирующие систему «Энигма». Летом 1939 года , когда неизбежность вторжения в Польшу стала очевидна, бюро передало результаты своей работы английской и французской разведкам .

Дальнейшая работа по взлому была организована в Блетчли-парке . Основным инструментом криптоаналитиков стала дешифровальная машина «Бомба» . Её прототип был создан польскими математиками накануне Второй мировой войны для министерства обороны Польши. На основе этой разработки и при непосредственной поддержке её создателей в Англии был сконструирован более «продвинутый» агрегат.

Теоретическую часть работы выполнил Алан Матисон Тьюринг . Его работы по криптографическому анализу алгоритма, реализованного в шифровальной машине «Энигма », основывался на более раннем криптоанализе предыдущих версий этой машины, которые были выполнены в 1938 году польским криптоаналитиком Марианом Реевским . Принцип работы разработанного Тьюрингом дешифратора состоял в переборе возможных вариантов ключа шифра и попыток расшифровки текста, если была известна структура дешифруемого сообщения или часть открытого текста .

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

Массовый взлом домашних сетей посредством WASP

См. также

Примечания

Литература

  • Reid, D. A. et al.,. Proof in Mathematics Education: Research, Learning, and Teaching . - John Wiley & SSense Publishersons, 2010. - P. 266. - ISBN 978-9460912443 .
  • Paar, Christof et al.,.

Многомерные задачи, естественно, являются более сложными и трудоемкими, чем одномерные, причем обычно трудности при их решении возрастают при увеличении размерности. Для того чтобы вы лучше почувствовали это, возьмем самый простой по своей идее приближенный метод поиска наименьшего значения функции. Покроем рассматриваемую область сеткой G с шагом h (рис. 10.8) и определим значения функции в ее узлах. Сравнивая полученные числа между собой, найдем среди них наименьшее и примем его приближенно за наименьшее значение функции для всей области.


Рис. 10.8.

Как мы уже говорили выше, данный метод используется для решения одномерных задач. Иногда он применяется также для решения двумерных, реже трехмерных задач. Однако для задач большей размерности он практически непригоден из-за слишком большого времени, необходимого для проведения расчетов. Действительно, предположим, что целевая функция зависит от пяти переменных, а область определения G является пятимерным кубом, каждую сторону которого при построении сетки мы делим на 40 частей. Тогда общее число узлов сетки будет равно . Пусть вычисление значения функции в одной точке требует 1000 арифметических операций (это немного для функции пяти переменных). В таком случае общее число операций составит 10 11 . Если в нашем распоряжении имеется ЭВМ с быстродействием 1 млн. операций в секунду, то для решения задачи с помощью данного метода потребуется 10 5 секунд, что превышает сутки непрерывной работы. Добавление еще одной независимой переменной увеличит это время в 40 раз. Проведенная оценка показывает, что для больших задач оптимизации метод сплошного перебора непригоден. Иногда сплошной перебор заменяют случайным поиском. В этом случае точки сетки просматриваются не подряд, а в случайном порядке. В результате поиск наименьшего значения целевой функции существенно ускоряется, но теряет свою надежность.

4. Метод покоординатного спуска

Рассмотрим функцию двух переменных. Ее линии постоянного уровня представлены на рис. 10.9 , а минимум лежит в точке . (Напомним, что линией постоянного уровня называется кривая в двумерном сечении пространства параметров (в данном случае в плоскости (х1, х2) , значение функции на которой - константа). Простейшим методом поиска является метод покоординатного спуска . Из точки А мы производим поиск минимума вдоль направления оси х 1 и, таким образом, находим точку B , в которой касательная к линии постоянного уровня параллельна оси x 1 . Затем, производя поиск из точки B в направлении оси x 2 , получаем точку C , производя поиск параллельно оси x 1 , получаем точку D , и т.д. Таким образом, мы приходим к оптимальной точке. Любой из одномерных методов, описанных в предыдущей главе, может быть использован здесь для поиска вдоль оси. Очевидным образом эту идею можно применить для функций n переменных.


Рис. 10.9.

Рассмотрим данный метод более детально на примере некоторой целевой функции.

Пусть нужно найти наименьшее значение целевой функции u=f(M)=f(x 1 ,x 2 ,...,x n) . Здесь через M обозначена точка n -мерного пространства с координатами x 1 ,x 2 ,...,x n:M=(x 1 ,x 2 ,...,x n) . Выберем какую-нибудь начальную точку и рассмотрим функцию f при фиксированных значениях всех переменных, кроме первой: . Тогда она превратится в функцию одной переменной x 1 . Изменяя эту переменную, будем двигаться от начальной точки в сторону убывания функции, пока не дойдем до ее минимума при , после которого она начинает возрастать. Точку с координатами обозначим через M 1 , при этом .

Фиксируем теперь переменные: и рассмотрим функцию f как функцию одной переменной . Изменяя x 2 , будем опять двигаться от начального значения в сторону убывания функции, пока не дойдем до минимума при . Точку с координатами обозначим через M 2 , при этом . Проведем такую же минимизацию целевой функции по переменным x 3 ,x 4 ,...,x n . Дойдя до переменной x n , снова вернемся к x 1 и продолжим процесс.

Эта процедура вполне оправдывает название метода. С ее помощью мы построим последовательность точек M 0 ,M 1 ,M 2 ,.. . которой соответствует монотонная последовательность значений функции Обрывая ее на некотором шаге k , можно приближенно принять значение функции f(M k) за ее наименьшее значение в рассматриваемой области (рис. 10.10).

Отметим, что данный метод сводит задачу поиска наименьшего значения функции нескольких переменных к многократному решению одномерных задач оптимизации. Если целевая функция f(x 1 ,x 2 ,\ldots,x n задана явной формулой и является дифференцируемой, то мы можем вычислить ее частные производные и использовать их для определения направления убывания функции по каждой переменной и поиска соответствующих одномерных минимумов.

На рис. 10.10. изображены линии уровня некоторой функции двух переменных u=f(x,y) . Вдоль этих линий функция сохраняет постоянные значения, равные 1, 3, 5, 7, 9. Показана траектория поиска ее наименьшего значения, которое достигается в точке O , с помощью

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

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

Для математического описания оптимизационных моделей применяются специальные математические методы - методы оптимизации.

3. Третий этап - реализация построенного алгоритма модели на ЭВМ.

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

5. Интерпретация результатов моделирования и принятие решения об использовании математической модели или необходимости ее развития. Здесь определяется жизненный цикл модели и необходимость актуализаций модели, то есть изменения ее параметров в связи c изменением условия функционирования.

Методы оптимизации

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

Цель оптимизации - улучшение некоторого показателя моделируемой системы или процесса путем подбора условий протекания процесса или выбора некоторых параметров системы.

За критерий оптимальности принимается некоторая функция F(x) , называемая целевой функцией. Целевая функция аналитически выражает зависимость оптимизируемого показателя от некоторых параметров x, значения которых можно изменять, называемых управляемыми параметрами

хi , i = 1,2,...,n.

Управляемые параметры xi являются независимыми друг от друга и в процессе оптимизации могут изменяться в известных пределах (допустимой области) Dx . Аналитически область допустимых значений может задаваться аналитически в виде набора функций

Ψ k (x 1 ,...,x n )= 0

В общем виде математическую задачу оптимизации можно сформулировать следующим образом:

Минимизировать (максимизировать) целевую функцию с учетом ограничений на управляемые переменные.

Под минимизацией (максимизацией) функции n переменных F(x)=F(x1 , ... ,xn ) на заданном множестве Dx понимается определение глобальног минимума (максимума) этой функции на заданном множестве Dx .

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

Максимизация целевой функции (F(x) -> max) эквивалента минимизации противоположной величины (−F(x) -> min), поэтому можно рассматривать только задачи минимизации.

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

Численные методы решения задач одномерной оптимизации

Задачи одномерной минимизации представляют собой простейшую математическую модель оптимизации, в которой целевая функция зависит от одной переменной, а допустимым множеством является отрезок вещественной оси:

F(x) -> min , x принадлежит .

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

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

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

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

Метод перебора

Метод перебора или равномерного поиска является простейшим из прямых методов минимизации и состоит в следующем.

Разобьем отрезок на n равных частей точками деления:

xi =A+i·(B − A)/n, i=0,...n

Вычислив значения F(x) в точках xi , путем сравнения найдем точку xm , где m - это число от 0 до n, такую, что

F(xm ) = min F(xi ) для всех i от 0 до n.

Погрешность определения точки минимума xm функции F(x) методом перебора не превосходит величины ε = (B − A)/n.

Метод дихотомии

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

Суть метода в следующем. Пусть целевая функция F(х) задана на интервале A≤ x ≤ B. Отрезок на каждом этапе делится пополам. За первые две поиско-

чения целевой функции F(x) в точках x1 , x2 уточняется направление поиска. Если отыскивается экстремум-минимум и F(х1 ) < F(х2 ), то смещается правая граница первоначального интервала неопределенности , т.е. полагается В = x2 , если F(х1 ) > F(x2 ) , то смещается левая граница А = x1 . Если новый интервал неопределенности [В−А] больше заданной погрешности решения ε, то де-

ление пополам продолжается. Если B−A ≤ ε, то решение получено x* =A + 2 B , F(x) = F(x*).

Метод Фибоначчи

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

Nn =Nn-1 +Nn-2 , при N1 =N2 =1.

Первоначальный интервал неопределенности [В−А] принимается пропорциональным некоторому числу Фибоначчи Fn , определенному в зависимости

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

Сущность метода перебора заключается в том, что необходимо:

а) рассматривать все возможные случаи;

б) найти те, которые удовлетворяют условию данной задачи;

в) показать, что других решений нет.

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

Имеются 9 палочек разной длины от 1 см до 9 см. Квадраты, с какими сторонами и сколькими способами можно составить из этих палочек? Способы составления квадрата считаются различ­ными, если использованы разные палочки и не обязательно все.

Решение.

Все стороны квадрата равны. Поэтому для составления данной фигуры можно для каждой стороны использовать либо одну палочку, либо несколько, которые в сумме дали бы туже длину. Таких соотношений должно быть 4. Следовательно, нельзя составить квадраты, длины сторон которых равны 1 см, 2 см, 3 см, 4 см, 5 см и 6 см. (5 = 1 + 4 = 2 + 3 и всё, 6 = 1 + 5 = 2 + 4. Получаем только 3 отрезка.)

Можно составить квадрат, длина стороны которого 7 см, 8 см.

7 = 1 + 6 = 2 + 5 = 3 + 4, 8 = 7 + 1 = 6 + 2 = 5 + 3. Это можно сделать только одним способом.

9 = 8 + 1 = 7 + 2 = 6 + 3 = 5 + 4. Следовательно, квадрат со стороной 9 см можно составить 5 различными способами.

Аналогичные рассуждения будут и для квадрата со стороной 10 см.

10 = 1 + 9 = 2 + 8 = 3 + 7 = 4 + 6. Квадратов со стороной 10 см из данного набора можно составить 1 (палочки 10 см нет в наборе).

Аналогично 11 = 2 + 9 = 3 + 8 = 4 + 7 = 5 + 6. Квадратов со стороной 11 см можно составить 1.

Так как сумма всех чисел от 1 до 9 равна 45. 45: 4 = 11 (ост. 1), то вести речь о существовании квадратов с большими сторонами не имеет смысла.

Ответ: 7 см; 8 см, 9 см; 10 см; 11 см. 9 квадратов.

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

Решение.

В задаче фигурируют 3 условия:

1) четырёхзначное число состоит из последовательных цифр;

2) первая и вторая цифры меняются местами;

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

Первым двум условиям удовлетворяют числа 2134, 3245, 4356, 5467, 6578, 7689.

Число 5467 отбрасываем сразу. (Квадрат любого числа не оканчивается на 7).

Третьему условию из перечисленных чисел удовлетворяет только число 4356 = 66 2 .

Ответ: 4356.

Двенадцать человек несут 12 хлебов. Каждый мужчина несет по 2 хлеба, женщина – по половине хлеба, а ребенок – по четверти хлеба. Причем в переносе участвуют все 12 человек. Сколько было мужчин, сколько женщин и сколько детей?

Вклад одного мужчины в перенос хлеба равносилен вкладу 4 женщин либо 8 детей. Вклад одной женщины в перенос хлеба равносилен вкладу 2 детей.

Очевидно, что количество мужчин, от 1 до 6.

Число 6 не включается, так как 12: 2 = 6 и тогда женщины и дети отсутствуют.

Возьмем среднее из чисел этого промежутка. Пусть количество мужчин равно 4. Тогда они переносят 4 · 2 = 8 хлебов. Остаётся 8 женщин и детей, которые несут ещё 4 хлеба. Здесь потребуется либо только 8 женщин (но в группе были и дети), либо 7 женщин и 2 детей, либо 6 женщин и 4 детей, либо 5 женщин и 6 детей, и т.д. либо 0 женщин и 16 детей. Эти результаты не соответствуют условию – общее количество женщин и детей 8.

Следовательно, количество мужчин больше 4. (Меньше быть не может, так как тогда общее количество людей необходимых для переноса хлеба будет больше 12). Сделаем проверку, когда количество мужчин 5. Тогда они переносят 5 · 2 = 10 хлебов. Остаётся 7 женщин и детей, которые несут ещё 2 хлеба. Здесь потребуется либо только 4 женщины (но в группе были и дети), либо 3 женщины и 2 детей, либо 2 женщины и 4 детей, либо 1 женщина и 6 детей. Только последний результат соответствуют условию – общее количество женщин и детей 7.

Ответ: 5 мужчин, 1 женщина, 6 детей.

Найти сумму площадей всех различных прямоугольников, которые можно составить из 9 квадратов (не обязательно всех), если сторона каждого квадрата равна 1см.

Решение.

Из 9 одинаковых квадратов можно составить прямоугольники следующих размеров
1 · 1; 1 · 2; 1 · 3; …; 1 · 9; 2 · 2; 2 · 3; 2 · 4; 3 · 3.

Сумма площадей всех прямоугольников с данными измерениями равна 72 см 2 .

Ответ: 72 см 2 .

За 500 рублей куплено несколько пудов сахару. Если бы на те же деньги куплено было пятью пудами больше, то каждый пуд обошёлся бы пятью рублями дешевле. Сколько куплено пудов?

Решение.

В задаче присутствуют 2 условия:

1) сахар стоит 500 рублей;

2) если бы на те же деньги куплено было пятью пудами больше, то каждый пуд обошёлся бы пятью рублями дешевле.

По условию задачи количество купленных пудов и стоимость 1 пуда сахара – числа натуральные. Произведение количества пудов на стоимость 1 пуда равно 500 рублей. Следовательно, эти величины являются делителями числа 500.

Делители числа 500: 1, 2, 4, 5, 10, 20, 25, 100, 125, 250, 500.

Числа 1, 2, 4, 5, 125, 250, 500 сразу отбросим, так как стоимость больше 5 и тогда количество меньше 100. Осталось проверить числа 10, 20, 25.

А) Пусть количество пудов 10, тогда стоимость сахара 50.

Проверим выполнение 2 условия: (10 + 5) · (50 – 5) ≠ 500.

Б) Пусть количество пудов 20, тогда стоимость сахара 25.

Проверим выполнение 2 условия: (20 + 5) · (25 – 5) = 500.

Проверкой установим, что условию задачи не соответствует и число 25.

Ответ: 20 пудов.

Задача 6.

Верно ли следующее утверждение: если число р простое и р – больше 100, но меньше 200, то число 210 – р тоже является простым числом.

Решение.

Решение задачи простое. Используя таблицу простых чисел можно выписать простые числа из промежутка от 100 до 200. Их 19. Найти числа, которые дополняют их до 210. Показать, что они тоже есть в таблице.

blog.сайт, при полном или частичном копировании материала ссылка на первоисточник обязательна.



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: