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

Итак, позвольте мне объяснить вам.

  • Что такое алгоритм оптимизации?

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

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

  • Что такое алгоритм TLBO?

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

Иногда, когда нам нужно оптимизировать проблему, обычно мы выбираем алгоритм случайной оптимизации, который содержит некоторые параметры для точной настройки, чтобы он помог нам найти глобальное оптимальное значение как можно скорее с меньшим объемом работы и времени. Например, в алгоритме PSO в качестве параметров нам нужны инерционный вес (W) и коэффициенты ускорения (c1 и c2). Нам нужно взять инерционный вес (W) в диапазоне от 0,4 до 0,9 для получения лучших результатов, и если мы возьмем c1 › c2, то это способствует глобальному оптимуму, тогда как c1 ‹ c2 способствует локальному оптимуму.

Не беспокойтесь. Я также опубликую статью об алгоритме PSO.

Но алгоритм TLBO не требует каких-либо специфичных для алгоритма параметров, таких как W, c1, c2 в алгоритме PSO.

  1. Теория

В этом алгоритме мы берем класс (Население, P) с определенным количеством учащихся (L) и субъектами (Переменные решения задачи оптимизации), из которых они будут получать знания от учителя. Есть два режима обучения: -

  • Через учителя (этап учителя)
  • Через взаимодействие с другими учащимися(этап учащегося)

Результат учащегося на экзамене (фитнес) — это то значение, которое нам нужно, и каждый раз мы сохраняем только лучший результат как на этапе учителя, так и на этапе учащегося.

2. Работает

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

Функция тестирования — функция сферы

Диапазон переменных решения: -xi от -100 до 100

Мы берем 5 учеников и 2 предмета.

Итак, учащиеся = 5 и переменные решения = 2.

В соответствии с нашими переменными решения целевая функция или тестовая функция становится x1² + x2².

  • ЭТАП УЧИТЕЛЯ

На приведенном выше рисунке вы можете видеть, что мы взяли начальную совокупность с 5 учащимися и 2 субъектами или, практически говоря, 5 строк и 2 столбца с каждым значением в области переменных решения, как указано ранее (xi между -100 и 100) . Мы рассчитали значения пригодности, поместив значения x1 и x2 в нашу целевую функцию. Затем мы занесли в другую колонку f(x). Поскольку нам нужно минимизировать функцию, мы выберем наилучшую пригодность из таблицы, т. Е. 1053 (сравнив все значения f (x) и выбрав минимум), и сделаем ее нашим Учителем. Затем мы вычисляем среднее значение каждого столбца как -8,2 и -1 для x1 и x2 соответственно.

Теперь нам нужно рассчитать среднее значение разницы каждого субъекта по формуле:

Разница Среднее значение x1 = r1 * Tf * (x1 от Учителя — Среднее значение x1)

Разница Среднее значение x2 = r2 * Tf * (x2 от Учителя — Среднее значение x2)

Здесь r1 и r2 — случайные числа, сгенерированные между 0 и 1. Tf — обучающий коэффициент, который может быть равен 1 или 2. Мы взяли r1 = 0,58, r2 = 0,49 и Tf = 1.

Следовательно,

Теперь мы добавляем DM x1 к каждому значению в столбце x1 и DM x2 к каждому значению в столбце x2. После этого мы получаем это: -

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

Наша следующая задача — сравнить новые значения пригодности каждого учащегося со старыми значениями пригодности этого учащегося. Мы сохраняем значения x1 и x2 того конкретного ученика, для которого после сравнения значение пригодности минимально. Проделав все это, мы получим вот такую ​​таблицу:

Теперь мы завершили фазу учителя этого алгоритма.

  • ЭТАП УЧЕНИЯ

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

  • Первый метод

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

Теперь мы вычисляем новые значения x1 и x2 для учащегося 1 по формуле:

Новый x1 для L1 = Текущий x1 для L1 + r1 * (x1 для L2 — x1 для L1)

Новый x2 для L1 = Текущий x2 для L1 + r2 * (x2 для L2 — x2 для L1)

Здесь r1 и r2 — случайные числа, сгенерированные между 0 и 1. r1 принимается равным 0,81, а r2 принимается равным 0,92.

Затем мы делаем взаимодействия между L2 и L4, L3 и L5, L4 и L1, L5 и L3. В каждом случае мы вычисляем новые значения x1 и x2. Мы размещаем все значения в таблице ниже: -

Как только мы получим новые значения x1 и x2 на этапе учителя или на этапе ученика, мы применим стратегию ограничения. Если какое-либо значение нарушается, мы сдвигаем это значение на соответствующую нарушенную границу. Вы можете ясно видеть, что когда мы выполняем взаимодействие между L5 и L3, мы получаем новый x1 для L5, равный -110,34, что нарушает нижнюю границу, то есть -100. Итак, мы меняем это значение на -100, чтобы оно оставалось в нашей области переменных решений. После ограничения мы соответственно рассчитали значения пригодности.

Теперь мы сравниваем пригодность этой фазы ученика с фазой учителя и сохраняем только лучшее значение пригодности и соответствующие им x1 и x2:

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

  • Второй метод

В этом методе каждый учащийся взаимодействует со всеми остальными учащимися на этапе обучения. Например, L1 взаимодействует с L2, L3, L4, L5. Аналогично L2 взаимодействует с L1, L3, L4, L5. И так далее…

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

Это выходные таблицы, которые вы можете проверить:

Теперь, когда мы обсудили все об этом алгоритме.

Я только что рассказал вам, что я понял из этого алгоритма. Изображения взяты из книги Равипуди Венката Рао.

Для справки вы можете следить за следующими вещами ниже: -

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

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