Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
при помощи графов

Работа Горулёвой К. и Хинели Д.
Формулировка задачи


 «Расставить восемь ферзей так, чтобы ни один из них
не стоял под боем другого.»
История решения

 сформулирована М. Беццелем
в 1848 г.
 Доктор Ф. Наук нашел 60
решений
 Карл Гаусс нашел 72 решения
 Доктор Ф. Наук нашел 92
решение
 1874 г, В. Аренс доказал, что
это все решения
Решение


 Граф – это множество
вершин (узлов),
соединенных ребрами.

Предлагается два
решения:
 обход графа в
ширину
 обход графа в
глубину
Обход графа в ширину

Обход графа в ширину

Обход графа в
ширину

 обход начинается из вершины №1
 не просмотренные вершины
окрашены в белый цвет
 просмотренные вершины – в серый
 если просмотрена и вершина, и ее
соседи – в черный
 минусы: решение долгое
Обход графа в ширину

Обход графа в глубину

с возвратом
Обход графа в глубину

Все решения задачи

















15863724
16837425
17468253
17582463
24683175
25713864
25741863
26174835
26831475
27368514
27581463
28613574
31758246
35281746
35286471

















35714286
35841726
36258174
36271485
36275184
36418572
36428571
36814752
36815724
36824175
37285146
37286415
38471625
41582736
41586372















42586137
42736815
42736851
42751863
42857136
42861357
46152837
46827135
46831752
47185263
47382516
47526138
47531682

















48136275
48157263
48531726
51468273
51842736
51863724
52468317
52473861
52617483
52814736
53168247
53172864
53847162
57138642
57142863
Все решения задачи

















48136275
48157263
48531726
51468273
51842736
51863724
52468317
52473861
52617483
52814736
53168247
53172864
53847162
57138642
57142863

















57248136
57263148
57263184
57413862
58413627
58417263
61528374
62713584
62714853
63175824
63184275
63185247
63571428
63581427
63724815

















63728514
63741825
64158273
64285713
64713528
64718253
68241753
71386425
72418536
72631485
73168524
73825164
74258136
74286135
75316824






82417536
82531746
83162574
84136275
Теория графов

 - раздел дискретной
математики, изучающий
свойства графов.
 Леонард Эйлер, 1736 г.
Применение теории

 Геоинформационные системы (ГИС)
 Что если? (моделирование, что произойдет, если
добавить новую дорогу)

 Химия
 компьютерная химия
 хемоинформатика

 Информатика и программирование
 Экономика
 Логистика
 Коммуникационные и транспортные системы
Спасибо за внимание!
Программа на языке Паскаль
Отлажена в среде PascalABC.NET

program Doclad;
const N=8;
type index=1..N;
rasstan= array [index] of 0..N;
var x:rasstan;
Count:word;
function p(var x:rasstan;k,y:index):boolean;
var i:index;
begin
i:=1;
while (i<k)and(y<>x[i])and(abs(k-i)<>abs(y-x[i])) do inc(i);
p:=i=k
end;
procedure obr(k:index);
var i,y:index;
begin
for y:=1 to N do
if p(x,k,y) then
begin
x[k]:=y;
if k=N then
begin
for i:=1 to N do write(x[i]);writeln;inc(Count)
end;
obr(k+1)
end
end;
begin
Count:=0;
writeln('Расстановки ',N,' ферзей:');
obr(1);
writeln('Всего ',Count,' расстановок')
end.

More Related Content

решение задачи о восьми ферзях