Скачать презентацию Тема 2 РЕКУРРЕНТНЫЕ УРАВНЕНИЯ Понятие рекуррентного уравнения o Скачать презентацию Тема 2 РЕКУРРЕНТНЫЕ УРАВНЕНИЯ Понятие рекуррентного уравнения o

Тема2.ppt

  • Количество слайдов: 26

Тема 2. РЕКУРРЕНТНЫЕ УРАВНЕНИЯ Понятие рекуррентного уравнения. o Решение рекуррентных уравнений n. Метод итераций, Тема 2. РЕКУРРЕНТНЫЕ УРАВНЕНИЯ Понятие рекуррентного уравнения. o Решение рекуррентных уравнений n. Метод итераций, n. Подстановочный метод, n. Метод рекурсивных деревьев. o Примеры рекуррентных уравнений. o

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

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

Примеры 1. T(n) = T(n - 1) + T(n - 2) 2. T(n) = Примеры 1. T(n) = T(n - 1) + T(n - 2) 2. T(n) = F(n - 2) + T(n - 1) 3. T(n) = T(n - 1) + T(n + 1) 4. T(i) = T(i-1) + ai , i > 1; T(1) = a 1. 4

Примеры рекуррентных уравнений 1. Нахождение максимального элемента из n элементов массива T(n) = T(n-1) Примеры рекуррентных уравнений 1. Нахождение максимального элемента из n элементов массива T(n) = T(n-1) + C= (T(n - 2) + C = · · · = =C · (n - 1), T(1) = 0, где C = O(1). 2. Нахождение наибольшего и наименьшего из n элементов массива T(n) = 1, при n = 2; T(n) = 2 T(n/2) + 2, при n > 2. 5

Решение рекуррентных уравнений o o o Метод итераций, Подстановочный метод, Метод рекурсивных деревьев 6 Решение рекуррентных уравнений o o o Метод итераций, Подстановочный метод, Метод рекурсивных деревьев 6

Метод итераций Метод заключается в том, что данное рекуррентное уравнение расписывается через множество других Метод итераций Метод заключается в том, что данное рекуррентное уравнение расписывается через множество других и затем происходит суммирование полученного выражения. Пример 1. Найти методом итераций решение для рекуррентного уравнения: T(n) = 2 T(n/2) + 5 n 2 T(1) = 7 o 7

Решение примера: Для простоты мы предположим, что n является степенью 2 , т. е. Решение примера: Для простоты мы предположим, что n является степенью 2 , т. е. n = 2 к T(n) = 2 T(n/2) + 5 n 2 = = 2(2 T (n/4) + 5 (n/2)2 ) + 5 n 2 = = 2(2(2 T (n/8) + 5 (n/4)2 ) + 5 (n/2)2 ) + 5 n 2 =…= =2 к T(1) + 2 к-1 · 5 (n/2 k-1)2 + … + 2 · 5 (n/2)2 + 5 n 2. 8

T(n) = 7 n + 5 n 2 (2 – 2/n) =7 n + T(n) = 7 n + 5 n 2 (2 – 2/n) =7 n + 10 n 2 - 10 n = 10 n 2 - 3 n. T(n) = O(n 2) 9

Пример 2. Найти методом итераций решение для рекуррентного уравнения: T(n) = a. T(n-1) + Пример 2. Найти методом итераций решение для рекуррентного уравнения: T(n) = a. T(n-1) + bn, 0< a <1, b > 0, n >1 T(1) = 0 10

Решение примера: T(n) = a. T(n - 1) + bn = = a (a. Решение примера: T(n) = a. T(n - 1) + bn = = a (a. T(n - 2) + b(n - 1)) + bn = = bn + ab(n - 1) + a 2 T(n - 2) = = bn + ab(n - 1) + a 2 b(n - 2) + a 3 T(n - 3) =…= T(n) = O(n) 11

Подстановочный метод o o Метод заключается в том, что методом подбора находится такая функция Подстановочный метод o o Метод заключается в том, что методом подбора находится такая функция g(n), при подстановке которой в рекуррентное уравнение вместо T(n) получается верное неравенство в котором g(n)=Левая часть ≥ правой части. Функция должна быть наименьшего возможного порядка. 12

Пример 1 Предположим, что необходимо решить следующее рекуррентное уравнение T(n) = 2 T(n/2) + Пример 1 Предположим, что необходимо решить следующее рекуррентное уравнение T(n) = 2 T(n/2) + n. g(n) ≥ 2 g(n/2) + n o o o g(n)=cn 2 g(n)=cn log 2 n 13

Пример 2 Предположим, что необходимо решить следующее рекуррентное уравнение T(n) = 2 T(n/2) + Пример 2 Предположим, что необходимо решить следующее рекуррентное уравнение T(n) = 2 T(n/2) + b. g(n) ≥ 2 g(n/2) + b o o o g(n)=cn 2 g(n)=c 1 n+c 2 14

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

Метод рекурсивных деревьев o Процесс построения древовидной структуры заканчивается, когда все значения висячих вершин Метод рекурсивных деревьев o Процесс построения древовидной структуры заканчивается, когда все значения висячих вершин равны Т(1), n n при этом значения внутренних вершин дерева есть некоторые явные функции (не рекуррентные) от размера задачи. Висячие вершины построенной древовидной структуры не обязательно одинаково удалены от корня. 16

Метод рекурсивных деревьев После построения дерева суммирование значений в вершинах производится следующим образом: 1. Метод рекурсивных деревьев После построения дерева суммирование значений в вершинах производится следующим образом: 1. 2. 3. Определяются суммы значений для равноудаленных от корня вершин (эти вершины находятся на одном уровне), Находится максимальная сумма по уровням. Общая трудоемкость алгоритма ограничена сверху одним из следующих значений: o o максимальной суммой, умноженной на количество уровней, суммой, полученной в результате суммирования сумм значений по уровням. 17

Пример 1 o Решить следующее рекуррентное уравнение 18 Пример 1 o Решить следующее рекуррентное уравнение 18

n n/3 n/9 2 n/3 2 n/9 T(n/27) T(2 n/27) T(4 n/27) 2 n/9 n n/3 n/9 2 n/3 2 n/9 T(n/27) T(2 n/27) T(4 n/27) 2 n/9 4 n/9 T(2 n/27) T(4 n/27) T(8 n/27) 19

Пример 2 o Решить следующее рекуррентное уравнение 20 Пример 2 o Решить следующее рекуррентное уравнение 20

n n/5 n/25 3 n/4 3 n/20 T(n/125) T(3 n/100) T(9 n/80) 3 n/20 n n/5 n/25 3 n/4 3 n/20 T(n/125) T(3 n/100) T(9 n/80) 3 n/20 9 n/16 T(3 n/100) T(9 n/80) T(27 n/64) 21

Основная теорема о решении рекуррентного уравнения Теорема. Пусть a, b, c, k - некоторые Основная теорема о решении рекуррентного уравнения Теорема. Пусть a, b, c, k - некоторые константы, причем a≥ 1, b>1. Тогда решение рекуррентного уравнения T(n) = a. T(n/b) + cnk; T(1) = c имеет вид: 22

Доказательство: T(n) = a. T(n/b) + cnk; T(1) = c Без ограничения общности будем Доказательство: T(n) = a. T(n/b) + cnk; T(1) = c Без ограничения общности будем предполагать, что n = bm (m = logb n) T(n) = a( a. T(n/b 2) + c(n/b)k ) + cnk =…= = am. T(1) + am-1 c(n/bm-1)k + … + ac(n/b)k + cnk = 23

Доказательство (прод. ): 1. Пусть r < 1. 2. Пусть r = 1, т. Доказательство (прод. ): 1. Пусть r < 1. 2. Пусть r = 1, т. е. a = bk. 3. Пусть r > 1. 24

Примеры рекуррентных уравнений 1. Вычислить значение выражения y=2 n. 25 Примеры рекуррентных уравнений 1. Вычислить значение выражения y=2 n. 25

Примеры рекуррентных уравнений 1. 2. Вычислить значение выражения y=2 n. Оценить трудоемкость алгоритма нахождения Примеры рекуррентных уравнений 1. 2. Вычислить значение выражения y=2 n. Оценить трудоемкость алгоритма нахождения НОД(a, b), a > b 26