Разбираем понятие SEO от А до Я человеческими словами. Что работает в нынешних условиях? Основные понятия и принципы SEO Методы поиска нулевого порядка

06.12.2023
1

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

оптимизация запросов

методы оптимизации поиска

облачные базы данных

облачные вычисления

1. Никульчев Е.В. Динамическое управление трафиком программно-конфигурируемых сетей в облачной инфраструктуре / Е.В. Никульчев, С.В. Паяин, Е.В. Плужник // Вестник Рязанского радиотехнического университета. – 2003. - № 3. - C.54-57.

2. Никульчев Е.В. Использование групп симметрий для идентификации сложных систем / Е.В. Никульчев // Вычислительные технологии.- 2004.- Т. 9. - № 3.- С. 72-80.

3. Никульчев Е.В. Построение модели загрузки каналов связи в сетях передачи данных на основе геометрического подхода / Е.В. Никульчев, С.В. Паяин // Известия высших учебных заведений. Проблемы полиграфии и издательского дела.- 2008. - № 6.- С. 91–95.

4. Плужник Е.В. Слабоструктурированные базы данных в гибридной облачной инфраструктуре / Е.В. Плужник, Е.В. Никульчев // Современные проблемы науки и образования. 2013.- № 4. URL: www.. Дата обращения: 15.10.2013.

5. Плужник Е.В. Функционирование образовательных систем в гибридной облачной инфраструктуре / Е.В. Плужник, Е.В. Никульчев // Известия вузов. Проблемы полиграфии и издательского дела. 2013. - № 3. - С. 96-105.

6. Fegaras L. An Optimization Framework for Map-Reduce Queries / L. Fegaras, C. Li, U. Gupta // Proc. of the 15th International Conference on Extending Database Technology. – ACM, 2012. – P. 26-37.

7. Jahani E. Automatic optimization for MapReduce programs / E. Jahani, M. J. Cafarella, C. Ré // Proceedings of the VLDB Endowment. – 2011. – V. 4. - N. 6. – P. 385-396.

8. Jurczyk P. Dynamic query processing for p2p data services in the cloud / P. Jurczyk, L. Xiong //Database and Expert Systems Applications. – Springer Berlin Heidelberg, 2009. – P. 396-411.

9. Lemmon M. D. Towards a passivity framework for power control and response time management in cloud computing // In Proc. of 7th Intl. Workshop on Feedback Computing, San Jose, CA.. 2012.

10. Wang X. A Decentralized Virtual Machine Migration Approach of Data Centers for Cloud Computing / X. Wang, X. Liu, L. Fan, X. Jia // Mathematical Problems in Engineering [Электронный журнал]. – 2013. – V. 2013. - Режим доступа: http://www.hindawi.com/journals/mpe/2013/878542/ , свободный. - Дата обращения 15.10.2013.

11. Zhang G. Massive Data Query Optimization on Large Clusters / G. Zhang, Chao LI, Yong Zhang, Chunxiao Xing. // Journal of Computational Information Systems. - 2012. – V. 8. – С. 3191–3198.

Введение

Существует множество определений термина «оптимизация запросов», наиболее часто встречающееся в литературе звучит следующим образом: под оптимизацией запросов понимается функция СУБД, осуществляющая поиск оптимального плана выполнения запросов из всех возможных для заданного запроса, либо процесс изменения запроса и/или структуры баз данных (БД) с целью уменьшения использования вычислительных ресурсов при выполнении запроса.

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

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

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

1. Оптимизация запросов в облачных БД SQL типа

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

Стандартные SQL запросы используют соединения (join), выборку (select), проекции (projections), группировки (group-by).

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

Рис. 1. Архитектура системы, основанной на SQL запросах

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

1. Все файлы хранятся в локальной файловой системе (например, файловая система Windows, Linux и т.д.).

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

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

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

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

2. Оптимизация запросов в облачных базах данных NoSQL типа

Модель программирования map-reduce (MR) — популярная платформа для облачных вычислений, которая позволяет выполнять анализ больших объемов данных в облаке. MR облегчает параллельное выполнение специальных, длительных задач анализа больших объемов данных в кластере с shared-nothing архитектурой. Основная идея модели MR проста. Каждая задача MR представляется в виде map и reduce задания. Задание map указывает, каким образом будет обрабатываться пары ключ/значение для создания набора промежуточных пар, в то время как задание reduce определяет, как объединить все промежуточные значения, связанные одним промежуточным. Ядро MR для хранения и репликации данных использует распределенную файловую систему (DFS).

В основе подхода, предложенного в , лежит использование алгебры запросов и применение некоторых операторов высшего порядка, которые реализованы в существующих map-reduce системах (например, Hadoop). Отметим, что предлагаемый подход в первую очередь ориентирован на использование с языком MRQL. В отличие от других существующих map-reduce языков, таких как HiveQL и PigLatin, которые позволяют создавать скрипты с использованием недекларативных языков, MRQL достаточно выразителен и позволяет писать собственные скрипты для значительного круга задач в декларативной форме и в то же время поддается оптимизации.

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

1) Упрощение запроса.

2) Построение графа запроса.

3) Представление графа запроса в алгебраической форме.

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

5) Создание функции MR сочетания на основе MR функции reduce.

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

Система Manimal - еще одна разработка, нацеленная на оптимизацию map-reduce программ . В основе системы лежит механизм статического анализа кода для обнаружения блоков, которые могут быть оптимизированы. По заявлению авторов, как и большинство оптимизаторов языков программирования, Manimal является максимально-эффективной системой, но, тем не менее, это не гарантирует, что будут обнаружены все существующие блоки, которые могут быть оптимизированы, поскольку всегда есть возможность вести разработку таким образом, что результат в дальнейшем невозможно будет оптимизировать автоматически.

Manimal состоит из трех основных компонентов, которые позволяют полностью автоматизировать процесс оптимизации map-reduce программ. Анализатор рассматривает представленные пользователем map-reduce программы и отправляет оптимизатору полученный в результате дескриптор оптимизации. Оптимизатор использует дескриптор оптимизации с предварительно вычисляемыми параметрами, хранящимися в определенном каталоге, для того, чтобы выбрать оптимальный план исполнения, результатом является дескриптор исполнения. Этот дескриптор вместе с копией оригинальной программы отправляется фабрике исполнения. Отметим, что фабрика исполнения сохраняет стандартную map-shuffle-reduce последовательность.

Согласно Manimal для оптимизации использует три различных подхода:

1) Оптимизация выборки (selection). Выборки в коде являются результатом выполнения функции map(), которая отрабатывает только при определенных условиях, налагаемых на связанные параметры. Как и в случае с реляционной выборкой, не имеет смысла обрабатывать данные, не удовлетворяющие налагаемым условиям, любой вызов функции map() для таких данных будет бессмысленным. Как в случае реляционной выборки, оптимизация может быть выполнена с помощью B-деревьев. Существенным достижением Manimal является то, что система может автоматически определять выборки, удовлетворяющие условиям, описанным выше.

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

3) Оптимизация сжатия данных. Сжатие данных отличается от поддерживаемого в Hadoop сжатия. Hadoop хранит на диске сжатые версии входных данных и их промежуточные образы. Распаковка выполняется непосредственно перед функциями map() и reduce(). При этом Hadoop использует единую методику сжатия данных для всех файлов, в то время как Manimal позволяет использовать две семантически связанные формы сжатия: дельта-сжатие и работу непосредственно со сжатыми данными.

Результаты экспериментального внедрения Manimal на кластере из пяти узлов в двух случаях из четырех показали производительность, соизмеримую с производительностью реляционных СУБД . При этом большинство обнаруженных возможностей для оптимизации не дали существенного выигрыша в производительности. На основании экспериментов можно сделать вывод о том, что система Manimal обладает потенциалом, однако требует дальнейшего развития.

3. Архитектурно-зависимые решения

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

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

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

Рис. 2. Децентрализованный обмен индексом загруженности.

Индекс загруженности узла представляет собой кортеж следующего вида:

LI = ,

где src - идентификатор узла, откуда был получен индекс, dest - содержит идентификатор узла, который получит индекс, util - использование процессора узлом-источником (src).

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

1. Когда использование ЦПУ превышает определенный уровень (верхний порог). Целью установления верхнего порога является сохранение дополнительных вычислительных мощностей на случай возникновения ситуаций с резким (незапланированным) повышением нагрузки.

2. Когда использование ЦПУ ниже определенного уровня (нижний порог) - узел используется недостаточно. Цель установления нижнего порога состоит в том, чтобы по возможности большее число физических узлов было переведено в «спящий» режим, что позволит снизить энергопотребление.

После того, как принято решение о миграции виртуальной машины, стартует поиск узла назначения . Для этого выполняется обход вектора загруженности текущего узла с целью обнаружения узла с наименьшим потреблением ЦПУ при условии попадания в заданные интервалы. Если такой узел обнаружить не удается, выполняется поиск такого узла, индекс загруженности которого при переносе на него выбранной ВМ не превышает нижней границы загруженности. Если же и в этом случае поиск не дает результатов, один из узлов, находящихся в «спящем» режиме, переводится в активное состояние и выполняется миграция.

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

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

2. Не рассматривается оптимальность выбора ВМ для миграции.

3. Поиск целевого узла осуществляется не на всем наборе узлов (согласно описанию подхода).

4. Не говорится о том, как часто выполняется проверка необходимости миграции.

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

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

В работе рассматривается схема исполнения и оптимизации динамических распределенных запросов в облачных пиринговых сетях (рис. 3), авторами также разработан фреймворк (DObjects) для работы с p2p-сетями.

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

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

Рис. 3. Архитектура облачной пиринговой (p2p) сети.

Исполнение и оптимизация запроса состоит из нескольких основных этапов:

1. В момент получение узлом запроса от пользователя генерируется высокоуровневый план исполнения.

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

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

Заключение

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

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

Рецензенты:

Винокур А.И., д.т.н., профессор, директор института принтмедиа и информационных технология ФГБОУ ПВО Московский государственный университет печати имени Ивана Федорова, г. Москва.

Никульчев Е.В., д.т.н., профессор, проректор по научной работе НОУ ВПО Московский технологический институт «ВТУ», г. Москва.

Библиографическая ссылка

Леонов Д.В. МЕТОДЫ ОПТИМИЗАЦИИ ПОИСКА В ОБЛАЧНЫХ БАЗАХ ДАННЫХ // Современные проблемы науки и образования. – 2013. – № 5.;
URL: http://science-education.ru/ru/article/view?id=10654 (дата обращения: 20.08.2019). Предлагаем вашему вниманию журналы, издающиеся в издательстве «Академия Естествознания»

Привет, Друзья! В этой статье мы разберём основные понятия и принципы SEO влияющие на в поисковых системах Яндекс и Google. Итак поехали!

Основные принципы поисковой оптимизации SEO

Важность гостевого постинга

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

Создание благоприятной атмосферы на веб-ресурсе для пользователей

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

Главный элемент любого веб-ресурса - размещение качественного контента

На этом сегодня всё, всем удачи и до новых встреч!

Лекция 5. Оптимизация информационного поиска: рекомендации

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

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

Чтобы оценить адекватность выражения запроса и полноту получаемого результата, пользователь может:

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

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

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

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

Процедуру поиска необходимой информации необходимо разделить на четыре основных этапа:

1. Организация поиска

  1. определение области знаний;
  2. выбор типа и источников данных;

2. Осуществление поискового процесса

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

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

3. Оценка результатов поиска

Результат поиска должен удовлетворять требованиям:

  • единственности,
  • полноты,
  • непротиворечивости

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

Усложнение, конкретизация и детализация запроса, в случае неудовлетворительного ответа, осуществляются путем модификации поискового образа, то есть реформулирования запроса и проведения повторного поиска в том же массиве данных, что был получен в результате осуществления первоначального поиска. Один и тот же запрос желательно перепроверять в разных посковых системах (например, сочетание Google и Яндекса).

4. Обработка результатов поиска

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

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

Методы обработки результатов поиска

По характеру преобразований (в контексте дальнейшего использования результатов обработки) методы обработки результатов поиска можно условно разделить на две группы:

  • Структурно-форматные преобразования;
  • Информационно-аналитические (логико-семантические, структурно-семантические преобразования).

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

Список литературы

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

Исходными данными в методах поиска являются требуемая точность метода e и начальная точка поиска Х 0 .

Затем выбирается величина шага поиска h , и по некоторому правилу происходит получение новых точек Х k +1 по предыдущей точке Х k при k = 0, 1, 2, … Получение новых точек продолжают до тех пор, пока не будет выполнено условие прекращения поиска. Последняя точка поиска считается решением задачи оптимизации. Все точки поиска составляют траекторию поиска.

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

Для методов, использующих постоянную величину шага, h следует выбирать значительно меньше точности e . Если при выбранной величине шага h не удается получить решение с требуемой точностью, то нужно уменьшить величину шага и продолжить поиск из последней точки имеющейся траектории.

В качестве условий прекращения поиска принято использовать следующие:

1) все соседние точки поиска хуже, чем предыдущая;

2) çФ(X k +1 )–Ф(X k ) ç £ e , то есть значения целевой функции Ф(Х) в соседних точках (новой и предыдущей) отличаются друг от друга на величину не больше, чем требуемая точность e ;

3) ,i = 1, …, n, то есть все частные производные в новой точке поиска практически равны 0, то есть отличаются от 0 на величину, не превышающую точности e.

Алгоритм получения новой точки поиска Х k +1 по предыдущей точке Х k свой для каждого из методов поиска, но всякая новая точка поиска должна быть не хуже предыдущей: если задача оптимизации является задачей поиска минимума, то Ф(Х k +1 ) £ Ф(Х k ).

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

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

Эффективность поискового метода определяют по числу итераций и по количеству вычислений целевой функции Ф(Х) на каждой итерации метода.

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

Для методов поиска нулевого порядка справедливо следующее: в методе случайного поиска нельзя заранее предсказать количество вычислений Ф(Х) на одной итерации N , а в методе покоординатного спуска N £ 2×n , где n - количество управляемых параметров X = (x 1 , x 2 .,…, x n ).

Для методов поиска первого порядка справедливы следующие оценки: в градиентном методе с постоянным шагом N = 2 × n ; в градиентном методе с дроблением шага N =2 × n + n 1 , где n 1 – число вычислений Ф(Х), необходимых для проверки условия дробления шага; в методе наискорейшего спуска N = 2 × n + n 2 , где n 2 – число вычислений Ф(Х), необходимых для расчета оптимальной величины шага; а в методе Давидона - Флетчера - Пауэлла (ДФП) N = 2 × n + n 3 , где n 3 – число вычислений Ф(Х), необходимых для расчета матрицы, приближающей матрицу Гессе (для величин n 1 , n 2 , n 3 справедливо соотношение n 1 < n 2 < n 3 ).

И, наконец, в методе второго порядка - методе Ньютона N = 3 × n 2 .

При получении данных оценок предполагается приближенное вычисление производных по формулам конечных разностей, то есть для вычисления производной первого порядка нужно два значения целевой функции Ф(Х), а для второй производной – значения функции в трех точках.

На практике широкое применение нашли метод наискорейшего спуска и метод ДФП, как методы с оптимальным соотношением числа итераций и их трудоемкости.

Начнём рассмотрение методов поиска нулевого порядка. В методе случайного поиска исходными данными являются требуемая точность метода e, начальная точка поиска Х 0 = (x 1 0 , x 2 0 , …, x n 0 ) и величина шага поиска h .

Поиск новых точек производится в случайном направлении, на котором и откладывается заданный шаг h , таким образом получают пробную точку и проверяют, является ли пробная точка лучшей, чем предыдущая точка поиска. Для задачи поиска минимума это означает, что:

(6.19)

Если данное условие выполнено, то пробную точку включают в траекторию поиска (
). В противном случае, пробную точку исключают из рассмотрения и производят выбор нового случайного направления из точки Х k , k = 0, 1, 2, … (рис. 6.3).

Х k +1

Ф(Х)

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

Рис. 6.3. К методу случайного поиска

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

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

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

Исходными данными в методе покоординатного спуска являются величина шага h и начальная точка поиска Х 0 = (x 1 0 , x 2 . 0 ,…, x n 0 ) . Движение начинаем из точки Х 0 вдоль оси x 1 в сторону увеличения координаты. Получим пробную точку
(x 1 k + h , x 2 k ,…, x n k ), k = 0. Сравним значение функции Ф(Х) с значением функции в предыдущей точке поиска Х k .

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

В противном случае, пробную точку исключаем из рассмотрения и получаем новую пробную точку, двигаясь вдоль оси x 1 в сторону уменьшения координаты. Получим пробную точку
(x 1 k h , x 2 k ,…, x n k ). Проверяем, если
, то продолжаем движение вдоль осиx 2 в сторону увеличения координаты. Получим пробную точку
(x 1 k + h , x 2 k ,…, x n k ), и т.д.

При построении траектории поиска повторное движение по точкам, вошедшим в траекторию поиска, запрещено.

Получение новых точек в методе покоординатного спуска продолжается до тех пор, пока не будет получена точка Х k , для которой все соседние 2×n пробных точек (по всем направлениям x 1 , x 2 , …, x n в сторону увеличения и уменьшения значения координаты) будут хуже, то есть
. Тогда поиск прекращается и в качестве точки минимума выбирается последняя точка траектории поискаХ*= Х k .

Рассмотрим работу метода покоординатного спуска на примере (рис. 2.21): n = 2, X = (x 1 , x 2 ), Ф(x 1 , x 2 ) min , Ф(x 1 , x 2 ) = (x 1 – 1) 2 + (x 2 – 2) 2 , h = 1, Х 0 = (0, 1) .

    Начинаем движение вдоль оси x 1 в сторону увеличения

координаты. Получим первую пробную точку

(x 1 0 + h , x 2 0 ) = (1, 1), Ф () = (1-1) 2 + (1-2) 2 = 1,

Ф(Х 0 ) = (0-1) 2 + (1-2) 2 = 2,

Ф() < Ф(Х 0 )  Х 1 = (1, 1).

    x 1 от точки Х 1

=(x 1 1 + h , x 2 1 ) = (2, 1), Ф() = (2-1) 2 + (1-2) 2 = 2,

Ф(Х 1 ) = (1-1) 2 + (1-2) 2 = 1,

то есть Ф() > Ф(Х 1 ) – пробная точка с координатами (2, 1) исключается из рассмотрения, а поиск минимума продолжается из точки Х 1 .

    Продолжаем движение вдоль оси x 2 от точки Х 1 в сторону увеличения координаты. Получим пробную точку

= (x 1 1 , x 2 1 + h ) = (1, 2), Ф() = (1-1) 2 + (2-2) 2 = 0,

Ф(Х 1 ) = (1-1) 2 + (1-2) 2 = 1,

Ф() < Ф(Х 1 ) Х 2 = (1, 2).

    Продолжаем движение вдоль оси x 2 от точки Х 2 в сторону увеличения координаты. Получим пробную точку

= (x 1 2 , x 2 2 + h ) = (1, 3), Ф() = (1-1) 2 + (3-2) 2 = 1,

Ф(Х 2 ) = (1-1) 2 + (2-2) 2 = 0,

то есть Ф() > Ф(Х 2 ) – пробная точка с координатами (1, 3) исключается из рассмотрения, а поиск минимума продолжается из точки Х 2 .

5. Продолжаем движение вдоль оси x 1 от точки Х 2 в сторону увеличения координаты. Получим пробную точку

= (x 1 2 + h , x 2 2 ) = (2, 2), Ф() = (2-1) 2 + (2-2) 2 =1,

Ф(Х 2 ) = (1-1) 2 + (2 - 2) 2 = 0,

то есть Ф(Х ^ ) > Ф(Х 2 ) – пробная точка с координатами (2, 2) исключается из рассмотрения, а поиск минимума продолжается из точки Х 2 .

6. Продолжаем движение вдоль оси x 1 от точки Х 2 в сторону уменьшения координаты. Получим пробную точку

= (x 1 2 - h , x 2 2 ) = (0, 2), Ф() = (0-1) 2 +(2-2) 2 = 1,

Ф(Х 2 ) = (1-1) 2 + (2 - 2) 2 = 0,

то есть Ф() > Ф(Х 2 ) – пробная точка с координатами (0, 2) исключается из рассмотрения, а поиск минимума закончен, так как для точки Х 2 выполнено условие прекращения поиска. Точкой минимума функции Ф(x 1 , x 2 ) = (x 1 – 1) 2 + (x 2 – 2) 2 является Х * = Х 2 .

В методах поиска первого порядка в качестве направления поиска максимума целевой функции Ф(Х) выбирается вектор градиент целевой функции grad (Ф(Х k )) , для поиска минимума – вектор антиградиент - grad (Ф(Х k )) . При этом используется свойство вектора градиента указывать направление наискорейшего изменения функции:

.

Для изучения методов поиска первого порядка важно также следующее свойство: вектор градиент grad (Ф(Х k )) , направлен по нормали к линии уровня функции Ф(Х) в точке Х k .

Линии уровня – это кривые, на которых функция принимает постоянное значение (Ф(Х) = со nst ).

В данном разделе рассматриваются пять модификаций градиентного метода:

– градиентный метод с постоянным шагом,

– градиентный метод с дроблением шага,

– метод наискорейшего спуска,

– метод Давидона-Флетчера-Пауэлла (ДФП),

– двухуровневый адаптивный метод.

В градиентном методе с постоянным шагом исходными данными являются требуемая точность e , начальная точка поиска Х 0 и шаг поиска h .

Х k+1 = Х k – h × grad Ф (Х k ), k=0,1,2,… (6.20)

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

Х k+1 = Х k + h × grad Ф (Х k ), k = 0, 1, 2, … (6.21)

Каждая из формул (6.20), (6.21) является векторным соотношением, включающим n уравнений. Например, с учетом Х k +1 = (x 1 k +1 , x 2 k +1 ,…, x n k +1 ), Х k =(x 1 k , x 2 k ,…, x n k ) :

(6.22)

или, в скалярном виде,

(6.23)

В общем виде (2.61) можно записать:

(6.24)

В качестве условия прекращения поиска во всех градиентных методах используется, как правило, комбинация двух условий: çФ(X k +1 ) - Ф(X k ) ç £ e или
для всехi =1, …, n .

Рассмотрим пример поиска минимума градиентным методом с постоянным шагом для той же функции, что и в методе покоординатного спуска:

n = 2, X = (x 1 , x 2 ), =0.1,

Ф(x 1 , x 2 ) = (x 1 – 1) 2 + (x 2 – 2) 2 min , h = 0,3, Х 0 = (0, 1).

    Получим точку Х 1 по формуле (2.45):

Ф(X 1 ) = (0.6–1) 2 + (1.6–2) 2 = 0.32, Ф(X 0 ) = (0 –1) 2 + (1–2) 2 = 2.

Ф(X 1 ) - Ф(X 0 ) =1,68 > = 0,1  продолжаем поиск.

    Получим точку Х 2 по формуле (2.45):

Ф(X 2 ) = (0.84–1) 2 + (1.84–2) 2 = 0.05,

Ф(X 1 ) = (0,6 –1) 2 + (1,6–2) 2 = 0,32.

Ф(X 1 ) - Ф(X 0 ) =0,27 > = 0,1  продолжаем поиск.

    Аналогично получим X 3:

Ф(X 3 ) = (0.94–1) 2 + (1.94–2) 2 = 0.007,

Ф(X 3 ) = (0,84 –1) 2 + (1,84–2) 2 = 0,05.

Так как условие прекращения поиска выполнено, найдено Х * = X 3 = (0.94, 1.94) с точностью = 0.1.

Траектория поиска для данного примера приведена на рис. 6.5.

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

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

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

e , начальная точка поиска Х 0 h (обычно h = 1). Получение новых точек производится по формуле:

Х k+1 = Х k – h k × grad Ф (Х k ), k=0,1,2,…, (6.25)

где h k – величина шага на k -ой итерации поиска, при h k должно выполняться условие:

Ф(Х k h k × grad Ф(Х k )) £ Ф(Х k ) - h k ×½ grad Ф(Х k ) ½ 2 . (6.26)

Если величина h k такова, что неравенство (2.64) не выполнено, то производится дробление шага до тех пор, пока данное условие не будет выполнено.

Дробление шага выполняется по формуле h k = h k ×a , где 0 < a < 1.Такой подход позволяет сократить число итераций, но затраты на проведение одной итерации при этом несколько возрастают.

Это обеспечивает простоту замены и дополнения процедур, данных и знаний.

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

Исходными данными являются требуемая точность e , начальная точка поиска Х 0 .

Получение новых точек производится по формуле:

Х k+1 = Х k – h k × grad Ф (Х k ), k=0,1,2,… , (6.27)

где h k = arg min Ф(Х k h k × grad Ф(Х k )) , то есть выбор шага производится по результатам одномерной оптимизации по параметру h (при 0 < h < ¥).

Основная идея метода наискорейшего спуска заключается в том, что на каждой итерации метода выбирается максимально возможная величина шага в направлении наискорейшего убывания целевой функции, то есть в направлении вектора-антиградиента функции Ф(Х) в точке Х k . (рис. 2.23).

При выборе оптимальной величины шага необходимо из множества Х М = {Х ½ Х= Х k h × grad Ф(Х k ), h Î / h = 22(2h -1)2=8(2h -1)=0.

Следовательно, h 1 = 1/2 – оптимальный шаг на первой итерации метода наискорейшего спуска. Тогда

Х 1 = Х 0 – 1/2grad Ф(Х 0 ),

x 1 1 =0 -1/2 = 1, x 2 1 = 1-1/2 = 2  Х 1 = (1, 2).

Проверим выполнение условий прекращения поиска в точке поиска Х 1 = (1, 2). Первое условие не выполнено

Ф(X 1 )-Ф(X 0 ) = 0-2 =2 > = 0.1, но справедливо

то есть все частные производные с точностью можно считать равными нулю, точка минимума найдена: Х*=Х 1 =(1, 2). Траектория поиска приведена на рис. 6.7.

Таким образом, метод наискорейшего спуска нашел точку минимума целевой функции за одну итерацию (из-за того, что линии уровня функции Ф(x 1 , x 2 ) = (x 1 – 1) 2 + (x 2 – 2) 2 . ((x 1 – 1) 2 + (x 2 –2) 2 = const – уравнение окружности, и вектор антиградиент из любой точки точно направлен в точку минимума – центр окружности).

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

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

Х 0 и начальная величина шага поиска h (обычно
). Получение новых точек производится по формуле:

Х k+1 = Х k – h k+1 × grad Ф(Х k), k = 0,1,2,…, (6.28)

где шаг h k +1 может быть рассчитан по одной из двух формул: h k +1 = h k + l k +1 ×a k , или h k +1 = h k × exp (l k +1 ×a k ) . В качестве понижающего коэффициента выбирают обычно l k =1/ k , где k – номер итерации поискового метода.

Смысл применения коэффициента l k заключается в том, что на каждой итерации производится некоторая корректировка величины шага, при этом чем больше номер итерации метода поиска, тем ближе очередная точка поиска к точке экстремума и тем аккуратнее (меньше) должна быть корректировка шага с тем, чтобы не допустить удаления от точки экстремума.

Величина a k определяет знак такой корректировки (при a k >0 шаг увеличивается, а при a k <0 уменьшается):

a k =sign{(grad Ф (Х k ),grad Ф (Х ))} ,

то есть a k – это знак скалярного произведения векторов градиентов целевой функции в точках Х k и , где=Х k h k × grad Ф(Х k ) пробная точка, а h k – это шаг, который был использован для получения точки Х k на предыдущей итерации метода.

Знак скалярного произведения двух векторов позволяет оценить величину угла между данными векторами (обозначим этот угол ). Если  9, то скалярное произведение должно быть положительным, в противном случае – отрицательным. С учетом вышеизложенного нетрудно понять принцип корректировки величины шага в двухуровневом адаптивном методе. Если угол между антиградиентами   (острый угол), то направление поиска из точки Х k выбрано правильно, и величину шага можно увеличить (рис. 6.8).

Рис. 6.8. Выбор направления поиска при  

Если же угол между антиградиентами   (тупой угол), то направление поиска из точки Х k удаляет нас от точки минимума Х* , и шаг нужно уменьшить (рис. 6.9).

Рис. 6.9. Выбор направления поиска при > 

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

Это, конечно, увеличивает затраты на проведение одной итерации, но позволяет проводить адаптацию (настройку) величины шага h k +1 на поведение случайных факторов.

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

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

Более точный и эффективный метод решения задачи параметрической оптимизации можно получить, используя вторые производные целевой функции (методы второго порядка). Они базируются на аппроксимации (то есть приближенной замене) функции Ф(Х) функцией j (Х) ,

j (Х) = Ф(Х 0 ) + (Х - Х 0 ) т × grad Ф(Х 0 ) + ½ G (X 0 ) × (Х - Х 0 ) , (6.29)

где G (X 0 ) - матрица Гессе (гессиан, матрица вторых производных), вычисленная в точке Х 0 :

2 Ф(Х) 2 Ф(Х) . . . 2 Ф(Х)

x 1 2 x 1 x 2 x 1 x n

G (X ) = 2 Ф(Х) 2 Ф(Х) . . . 2 Ф(Х)

x 2 x 1 x 2 2 x 2 x n

2 Ф(Х) 2 Ф(Х) . . . 2 Ф(Х)

x n x 1 x n x 2 x n 2 .

Формула (2.67) представляет собой первые три члена разложения функции Ф(Х) в ряд Тейлора в окрестности точки Х 0 , поэтому при аппроксимации функции Ф(Х) функцией j (Х) возникает ошибка не более чем ½½Х-Х 0 ½½ 3 .

С учетом (2.67) в методе Ньютона исходными данными являются требуемая точность e , начальная точка поиска Х 0 и получение новых точек производится по формуле:

Х k +1 = Х k G -1 k ) × grad Ф(Х k), k =0,1,2,…, (6.30)

где G -1 k ) – матрица, обратная к матрице Гессе, вычисленная в точке поиска Х k (G k ) × G -1 k ) = I,

I = 0 1 … 0 - единичная матрица.

Рассмотрим пример поиска минимума для той же функции, что и в градиентном методе с постоянным шагом и в методе покоординатного спуска:

n = 2, X = (x 1 , x 2 ), = 0.1,

Ф(x 1 , x 2 ) = (x 1 – 1) 2 + (x 2 – 2) 2 min , Х 0 =(0, 1).

    Получим точку Х 1 :

X 1 = X 0 – G –1 (X 0)∙grad Ф(X 0),

где

grad Ф(X 0) = (2∙(x 1 0 –1)), 2∙(x 1 0 –1) = (–2, –2), то есть

или

x 1 1 = 0 – (1/2∙(–2) + 0∙(–2)) = 1,

x 2 1 = 1 – (0∙(–2) + 1/2∙(–2)) = 2,

X 1 = (1, 2).

Проверим выполнение условий прекращения поиска: первое условие не выполнено

Ф(X 1 )-Ф(X 0 ) = 0 - 2  = 2 > = 0.1,

но справедливо

то есть все частные производные с точностью  можно считать равными нулю, точка минимума найдена: Х* = Х 1 = (1, 2). Траектория поиска совпадает с траекторией метода наискорейшего спуска (рис. 2.24).

Главным недостатком метода Ньютона являются затраты на вычисление обратного гессиана G -1 k ) на каждой итерации метода.

В методе ДФП преодолены недостатки как метода наискорейшего спуска, так и метода Ньютона.

Достоинством данного метода является то, что он не требует вычисления обратного гессиана, а в качестве направления поиска в методе ДФП выбирается направление –Н k × grad Ф (Х k), где Н k - положительно определенная симметричная матрица, которая заново рассчитывается на каждой итерации (шаге метода поиска) и приближает обратный гессиан G -1 k ) (Н k ® G -1 k ) с увеличением k ).

Кроме того, метод ДФП при его применении для поиска экстремума функции n переменных сходится (то есть дает решение) не более чем за n итераций.

Вычислительная процедура метода ДФП включает следующие шаги.

Исходными данными являются требуемая точность e, начальная точка поиска Х 0 и начальная матрица Н 0 (обычно единичная матрица, Н 0 = I).

    На k -ой итерации метода известны точка поиска Х k и матрица Н k (k = 0,1,…).

    Обозначим направление поиска

d k = -Н k × grad Ф(Х k).

Находим оптимальную величину шага l k в направлении d k с помощью методов одномерной оптимизации (так же, как в методе наискорейшего спуска выбиралась величина в направлении веrтора антиградиента)

З. Обозначим v k = l k × d k и получим новую точку поиска Х k +1 = X k + v k .

4. Проверяем выполнение условия прекращения поиска.

Если ½v k ½£ e или ½grad Ф(Х k +1 ) ½£ e , то решение найдено Х * = Х k +1 . В противном случае продолжаем вычисления.

5. Обозначим u k = grad Ф(Х k +1) - grad Ф(Х k) и матрицу Н k +1 рассчитаем по формуле:

H k +1 = H k + A k + B k , (6.31)

где A k = v k . v k T / (v k T × u k ) , B k = - H k × u k . u k T . H k / (u k T × H k × u k ) .

A k и В k – это вспомогательные матрицы размера n х n (v k T соответствует вектору-строке, v k означает вектор-столбец, результатом умножения n -мерной строки на n -мерный столбец является скалярная величина (число), а умножение столбца на строку дает матрицу размера n x n ).

6. Увеличиваем номер итерации на единицу и переходим к пункту 2 данного алгоритма.

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