Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Пошук клік у графах

Реферат Пошук клік у графах





ові спостережень приходимо до висновку, що для відшукання клік в неорієнтованому графі потрібно виділити в вихідній матриці смежностей підматриці зазначеного вище виду, безлічі вершин утворюють ці матриці і будуть вершинами кліки. Але за визначенням кліки нам підійдуть не всі такі множини, а лише оригінальні що не містять в собі інших множин вершин. Так що друге завдання буде зводиться до виділення з отриманих множин оригінальних, що не містять в собі інших підмножині. Те що вихідна матриця смежностей симетрична щодо головної діагоналі дозволять нам здійснювати пошук підматриць тільки в її верхньому або нижньому трикутнику. br/>

Крок 1. p> Йдемо по матриці як показано на малюнку 3.2 а і шукаємо першу-ліпшу одиничку (рис 3.2 б) запам'ятовуємо її координати (R, C).

В 

Крок 2.

Шукаємо наступну 1 за адресою (R, C1)

Крок 3.

Починаємо спускатися по стовпці (С1) у пошуках 1, причому шукаємо її за адресою (С, С1), так як у вихідній матриці стовпці попарно суміжних вершин не обов'язково сусідять. Запам'ятовуємо рядок кожної знайденої таким чином 1 для пошуку в наступних стовпцях. Збільшуємо довжину безлічі вершин на 1.

Кількість повторень кроку 3 одно поточному розміру безлічі вершин.

Якщо за вказаною адресою ми не зустрічаємо 1 то значить даний стовпець не утворює підматрицю смежностей кліки - пропускаємо його. Починаємо Крок 2. p> Якщо розмір безлічі вершин утворюють кліку більше 2 то запам'ятовуємо це безліч.

Так до кінця рядка.

Повторюємо Крок 1 для всіх 1 в рядку.


Таким чином проходимо всю матрицю. На виході отримуємо кілька множин вершин, відбираємо серед них тільки оригінальні, не містять в собі інших підмножин. p> Відібрані підмножини і є кліки заданого графа.


Програмна реалізація

В 

procedure MakeKliks;


var StolbecSravn, StringSravn, Num, size, i1, i, lenStolb,

Stolbec, RetStolb: byte;


Kstring: klik;

f1: file of byte;

klika: tKlik;



begin

assign (FileKlics, 'klics.ots');

rewrite (fileKlics);

assign (f1, 'matrica.ots');


reset (f1);


read (f1, size);


for I: = 1 to size do

begin

for stolbecsravn: = 1 to size do

begin

read (f1, smezh [i, stolbecsravn]);

end;

end;

for i: = 1 to size do

begin {початок пpохода по стpоку}

KString [1]: = i;

for stolbec: = i +1 to size do

begin {пеpебіpаем в стpоке всі можливі місця початку кліки}

If Smezh [i, stolbec] = 1 then

begin

lenStolb: = 1;

for StolbecSravn: = Stolbec to size do

begin {з знайденого місця пpовеpяем всі можливі ваpиант}

StringSravn: = i;

Num: = 1;

while (Smezh [KString [num], StolbecSravn] = 1) and (num <= LenStolb) do


Назад | сторінка 6 з 8 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Пошук найкоротшого шляху між парами вершин в орієнтованому і неориентирован ...
  • Реферат на тему: Розробка програми для пошуку максимально віддалених вершин у графі
  • Реферат на тему: Просування бутіка розміру plus size на прикладі ТОВ &Атлант&, бутік &Elena ...
  • Реферат на тему: Creation of control system by a personnel how to begin with a zero
  • Реферат на тему: Збірка Івана Франка "З вершин и низин"