Presentation is loading. Please wait.

Presentation is loading. Please wait.

Приёмы сокращения перебора Метод ветвей и границ Динамическое программирование.

Similar presentations


Presentation on theme: "Приёмы сокращения перебора Метод ветвей и границ Динамическое программирование."— Presentation transcript:

1 Приёмы сокращения перебора Метод ветвей и границ Динамическое программирование

2 Числа Фибоначчи f(0)=f(1)=1 f(n)=f(n-1)+f(n-2), при n>1 n01234567 f(n)1123581321

3 Динамическое программирование Задача. Найти количество кратчайших путей из левого верхнего в правый нижний угол. c[i,j] = c[i-1,j] + c[i,j-1]

4 Сокращение перебора За счёт симметрии задачи Метод ветвей и границ Задача раскраски графа int colors[]; function paintGraph(int n, int k) { // раскрасить n первых вершин в k цветов if( n ) { // осталось раскрасить n вершин int i; for(i=1;i<=k;i++){ colors[n]=i; if( admisColor(n,i) ) { paintGraph(n-1); } else { // получили раскраску saveColors(); }

5 Сокращение перебора Задача раскраски графа Сокращение перебора за счёт симметрии задачи int colors[]; int maxColor; function paintGraph(int n) { // раскрасить n первых вершин if( n ) { // осталось раскрасить n вершин int i; for(i=1;i<=maxColor+1;i++){ colors[n]=i; if( admisColor(n,i) ) { if(i > maxColor) { maxColor++; paintGraph(n-1); maxColor--; } else paintGraph(n-1); } else { // получили раскраску if( maxColor < bestColorNumber ) { bestColorNumber= maxColor; saveColors(); }

6 Сокращение перебора Задача раскраски графа Метод ветвей и границ int colors[]; int maxColor; function paintGraph(int n) { // раскрасить n первых вершин if( n ) { // осталось раскрасить n вершин int i; int limit=min(bestColorNumber-1,maxColor+1); for(i=1;i<=limit;i++){ colors[n]=i; if( admisColor(n,i) ) { if(i > maxColor) { maxColor++; paintGraph(n-1); maxColor--; } else paintGraph(n-1); } else { // получили раскраску if( maxColor < bestColorNumber ) { bestColorNumber= maxColor; saveColors(); }

7 Порядок перебора Имеет значение порядок в котором мы выбираем вершины Распространение ограничений


Download ppt "Приёмы сокращения перебора Метод ветвей и границ Динамическое программирование."

Similar presentations


Ads by Google