Найти в Дзене
Робототехника

Числа Фибоначчи. Ряд, метод, что еще интересного придумал Фибоначчи.

Числа Фибоначчи или ряд Фибоначчи все мы изучали еще в средней школе. Напомню саму теорию, откуда Леонардо Пизанский (Фибоначчи) взял свой ряд:

Он наблюдал за размножением кроликов, сперва у нас не было кроликов

0.

Затем взяли одну пару и посадили в одну клетку.

1.

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

На второй месяц по этой логике, мы получаем 0+1 =1

1

На третий месяц нам уже два пары дают приплод, значит будет 1+1=2

2.

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

1+2=3.

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

Сам ряд
Сам ряд

Образование ряда
Образование ряда

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

def fib(n):
if n<3:
return 1
return fib(n-1) + fib(n-2)

Это просто пример, как найти элемент ряда через рекурсию. Нам же нужно совсем другое.

В методах оптимизации (это основная задача многих систем управления) используется большое число методов оптимального решения. Среди них есть и метод Фибоначчи.

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

У вас есть автомобиль, которому надо проехать 10000 км (цифра очень условная), вам нужно за минимальное время и с минимальным расходом топлива проехать это расстояние. Емкость бензобака 200 литров. Можно поставить дополнительный бак в кузов и заправить его в начале пути. Но расход топлива зависит от нагруженной массы (полный бензобак или нет, есть дополнительный бак в кузове или нет) и скорости автомобиля, чем больше скорость, тем больше сопротивление ветра, тем быстрее кончится топливо. Решить её можно несколькими способами.

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

То есть если Вам на каком-то интервале нужно найти оптимальную точку(экстремум функции), вы при этом имеете заданную точность(интервал неопределенности), то Вам подойдет метод Фибоначчи.

У нас есть исходная функция F(x), она кстати может сколько угодно сложным выражением или наоборот простым, но мы всегда можем её свободно подсчитать.

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

Начальный этап.
Начальный этап.
Основной алгоритм.
Основной алгоритм.

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

Это достигается за счет того, что соседние интервалы всегда сопоставими в размерах, но в тоже время пропорционально быстро растут или уменьшаются. Хорошо заметно это на Спирали Фибоначчи.

-5

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

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

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

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

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

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

Постараюсь снять видеоролик на пример расчета и использования этого метода.

Благодарю за внимание.

👍👍 Буду признателен 👍👍

🌞 Группа ВК.

🌞 Телеграмм канал

🌞 YouTube канал.

👍👍 Буду признателен 👍👍