1 / 7

Перебор и способы его сокращения

Перебор и способы его сокращения. Даны N упорядоченных множеств U 1 , U 2 , … U N Требуется построить вектор A = (a 1 , a 2 , …, a N ) , удовлетворяющий заданному множеству условий и ограничений, где. Общая схема перебора с возвратом ( backtrack).

beau-moore
Download Presentation

Перебор и способы его сокращения

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Перебор и способы его сокращения

  2. Даны N упорядоченных множеств U1, U2, … UN Требуется построить вектор A = (a1, a2, …, aN), удовлетворяющий заданному множеству условий и ограничений, где Общая схема перебора с возвратом (backtrack)

  3. Общая схема перебора с возвратом(backtrack) Сложность переборных алгоритмов – экспоненциальная (O(CN)), т.е. использовать переборные алгоритмы допустимо при небольших ограничениях на входные данные

  4. На шахматной доске размера N*N требуется расставить N ферзей таким образом, чтобы ни один ферзь не атаковал другого. По правилам шахмат ферзь атакует все фигуры на одной с ним вертикали, горизонтали и диагонали. Задача о расстановке ферзей Пример для N = 4

  5. В допустимом размещении каждый ферзь занимает отдельную вертикаль и горизонталь. Поэтому каждое размещение ферзей можно хранить в одномерном массиве H, каждый элемент которого H[i] обозначает номер горизонтали, занятый ферзем в вертикали i. Например: i: 1 2 3 4 H[i]: 3 1 4 1 Задача о расстановке ферзей

  6. Есть n способов разместить ферзя в первой вертикали. При каждом расположении ферзя в первой вертикали есть n положений во второй вертикали; из них сразу отбросим недопустимые (знак «*»): Задача о расстановке ферзей

  7. Задача о расстановке ферзей Функция Testпроверяет допустимость размещения <H[1], H[2], …, H[i]> при условии, что <H[1], …, H[i-1]> допустимо.

More Related