🗊Презентация Рекурсия. Перебор

Нажмите для полного просмотра!
Рекурсия. Перебор, слайд №1Рекурсия. Перебор, слайд №2Рекурсия. Перебор, слайд №3Рекурсия. Перебор, слайд №4Рекурсия. Перебор, слайд №5Рекурсия. Перебор, слайд №6Рекурсия. Перебор, слайд №7Рекурсия. Перебор, слайд №8Рекурсия. Перебор, слайд №9Рекурсия. Перебор, слайд №10Рекурсия. Перебор, слайд №11Рекурсия. Перебор, слайд №12Рекурсия. Перебор, слайд №13Рекурсия. Перебор, слайд №14Рекурсия. Перебор, слайд №15Рекурсия. Перебор, слайд №16Рекурсия. Перебор, слайд №17Рекурсия. Перебор, слайд №18Рекурсия. Перебор, слайд №19Рекурсия. Перебор, слайд №20Рекурсия. Перебор, слайд №21Рекурсия. Перебор, слайд №22Рекурсия. Перебор, слайд №23Рекурсия. Перебор, слайд №24

Содержание

Вы можете ознакомиться и скачать презентацию на тему Рекурсия. Перебор. Доклад-сообщение содержит 24 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Рекурсия. Перебор
Лектор:
Михно Марк
Описание слайда:
Рекурсия. Перебор Лектор: Михно Марк

Слайд 2





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

Слайд 3





Пример
Нахождение факториала натурального числа n.
По определению : n! = 1 * 2 * … * n
Видоизменим равенство : n! = (1 * 2 * … * n – 1) * n
Таким образом, n! = (n – 1) ! * n
В словесной формулировке результаты преобразований будут звучать так : чтобы найти факториал числа n, надо найти факториал числа n – 1, а затем домножить его на число n.
Описание слайда:
Пример Нахождение факториала натурального числа n. По определению : n! = 1 * 2 * … * n Видоизменим равенство : n! = (1 * 2 * … * n – 1) * n Таким образом, n! = (n – 1) ! * n В словесной формулировке результаты преобразований будут звучать так : чтобы найти факториал числа n, надо найти факториал числа n – 1, а затем домножить его на число n.

Слайд 4





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

Слайд 5


Рекурсия. Перебор, слайд №5
Описание слайда:

Слайд 6





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

Слайд 7





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

Слайд 8





Для N, равного 1 или 2, решения очевидны.
Для N, равного 1 или 2, решения очевидны.
При N = 3 можно сделать следующее замечание : Пока верхние два кольца не будут перемещены на другой стержень, с нижним кольцом по правилам ничего сделать нельзя. 
Поэтому можно временно про нижнее кольцо «позабыть» и решать только задачу переноса двух верхних колец на второй стержень. После этого «освободившееся» нижнее кольцо можно перенести на третий стержень, а затем опять вернуться к задаче о перемещении первых двух колец. Таким образом задача для N=3 сводится к двум задачам для N=2.
Описание слайда:
Для N, равного 1 или 2, решения очевидны. Для N, равного 1 или 2, решения очевидны. При N = 3 можно сделать следующее замечание : Пока верхние два кольца не будут перемещены на другой стержень, с нижним кольцом по правилам ничего сделать нельзя. Поэтому можно временно про нижнее кольцо «позабыть» и решать только задачу переноса двух верхних колец на второй стержень. После этого «освободившееся» нижнее кольцо можно перенести на третий стержень, а затем опять вернуться к задаче о перемещении первых двух колец. Таким образом задача для N=3 сводится к двум задачам для N=2.

Слайд 9





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

Слайд 10


Рекурсия. Перебор, слайд №10
Описание слайда:

Слайд 11





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

Слайд 12





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

Слайд 13





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

Слайд 14





Давайте научимся решать следующую задачу :
Давайте научимся решать следующую задачу :
Дан массив из N различных чисел. Мы хотим узнать количество различных способов выбрать некоторые числа из этого массива так, чтобы их сумма равнялась заданному числу K.
Задача имеет множество решений, но давайте попробуем применить технику перебора – то есть просто попробуем перебрать все возможные подмножества чисел, затем найдем их сумму и сравним с K.
Описание слайда:
Давайте научимся решать следующую задачу : Давайте научимся решать следующую задачу : Дан массив из N различных чисел. Мы хотим узнать количество различных способов выбрать некоторые числа из этого массива так, чтобы их сумма равнялась заданному числу K. Задача имеет множество решений, но давайте попробуем применить технику перебора – то есть просто попробуем перебрать все возможные подмножества чисел, затем найдем их сумму и сравним с K.

Слайд 15


Рекурсия. Перебор, слайд №15
Описание слайда:

Слайд 16


Рекурсия. Перебор, слайд №16
Описание слайда:

Слайд 17





Задача о расстановке ферзей
Возьмем обычную шахматную доску и попробуем расставить на ней 8 ферзей так, чтобы никакая пара ферзей не била друг друга. Оказывается, сделать это не так просто, так как ферзь «бьет» огромное количество клеточек:
Описание слайда:
Задача о расстановке ферзей Возьмем обычную шахматную доску и попробуем расставить на ней 8 ферзей так, чтобы никакая пара ферзей не била друг друга. Оказывается, сделать это не так просто, так как ферзь «бьет» огромное количество клеточек:

Слайд 18





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

Слайд 19


Рекурсия. Перебор, слайд №19
Описание слайда:

Слайд 20





Попытаемся оценить время работы. Мы выбираем, куда поставим первого ферзя – 64 варианта, потом второго – 63 варианта, и так далее. 
Попытаемся оценить время работы. Мы выбираем, куда поставим первого ферзя – 64 варианта, потом второго – 63 варианта, и так далее. 
Получаем 64 * 63 * .. * 58 вариантов, что, конечно, слишком большое число. Решение необходимо оптимизировать.
Давайте, например, при переборе не пытаться ставить ферзя в клеточку, которая уже находится под боем.
Оказывается, этого небольшого отсечения ненужных вариантов более чем хватает для быстрого решения задачи.
Описание слайда:
Попытаемся оценить время работы. Мы выбираем, куда поставим первого ферзя – 64 варианта, потом второго – 63 варианта, и так далее. Попытаемся оценить время работы. Мы выбираем, куда поставим первого ферзя – 64 варианта, потом второго – 63 варианта, и так далее. Получаем 64 * 63 * .. * 58 вариантов, что, конечно, слишком большое число. Решение необходимо оптимизировать. Давайте, например, при переборе не пытаться ставить ферзя в клеточку, которая уже находится под боем. Оказывается, этого небольшого отсечения ненужных вариантов более чем хватает для быстрого решения задачи.

Слайд 21





Вот так изменится процедура find:
Вот так изменится процедура find:
Описание слайда:
Вот так изменится процедура find: Вот так изменится процедура find:

Слайд 22





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

Слайд 23





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

Слайд 24





Конец                                          спасибо
Описание слайда:
Конец спасибо



Похожие презентации
Mypresentation.ru
Загрузить презентацию