You are on page 1of 8

ГРАФОВИ - ДЕФИНИЦИЈА И ОСНОВНИ ПОИМИ

ВОВЕД
Теоријата на графови е област на математиката, мошне застапена во информатиката, која
се занимава со истражување на особеностите на графот.

Графовите се математички објекти што често ги среќаваме во секојдневниот живот како:

 Географска мапа со многу градови кои се поврзани со патишта;


 Собир на луѓе со меѓусебни познанства;
 Структурна формула на некој молекул или соединение;
 Шема на некое електрично коло.
Графовите се составени од точки односно јазли (врвови) и од линии меѓу нив односно
гранки.

Многу е честа употребата на графовите за опис на моделите и на структурите на


податоците. Структурата на една веб-презентација може сликовито да се претстави со
употребата на графот. Јазлите на тој граф се поединечни страни, а гранките на графот се
врските со кои една страна може да премине во друга.
Проучувањата на алгоритмот, кои ги решаваат проблемите на употребата на графовите,
претставуваат мошне значаен дел од информатичката наука. Мрежите имаат многу
примени во проучувањето на практичните аспекти на теоријата на графовите и тоа се вика
анализа на мрежите. Анализата на мрежите е особено значајна за проблемот на
моделирањето и анализирањето на мрежниот сообраќај на пример на интернетот.

Главен дел
http://www.mf.ukim.edu.mk/sites/default/files/files/GRAFOVI.pdf

Граф е конечно множество точки наречени темиња,


заедно со конечно множество линии наречени ребра,
кои ги поврзуваат некои или сите точки.
Поформално,
- Граф G се состои од конечно множество V(G) од темиња и конечно множество E(G) од
ребра.
(Ознаките V и E се првите букви од соодветните англиски називи vertices и edges).
- За секое ребро се подразбира множество кое содржи една или две точки – крајни точки.
- Ребро со само една крајна точка се вика јазол (или лупа од “loop”).

1
- Две различни ребра со истото множество крајни точки се викаат
паралелни ребра.
- Две темиња кои се поврзани со ребро се викаат соседни темиња.
- Ребро се нарекува инцидентно на која било од своите крајни точки.
- Две ребра, инцидентни на иста крајна точка се викаат соседни ребра.
- Теме на кое нема инцидентни ребра се вика изолирано теме.
- Граф кој не содржи темиња се нарекува празен граф (граф со темиња е непразен).

Графовите сликовито се претставуваат со дијаграми во кои темињата се претставени со


точки, а ребрата со линии. На пример:
-

Граф се дефинира како двојка (V,E), каде што V е множество темиња, а Е е


множество ребра и притоа на секое ребро му е придружен пар темиња преку т.н. функција
на соседство Е -> V x V. (Секое ребро е определено од точно две темиња, кои нужно не
мора да бидат различни). Просто кажано, графовите се во суштина множество од темиња
заедно со множество од линии (ребра) кои ги поврзуваат тие темиња.
Ако на ребрата им зададеме и некаква насока, тогаш ребрата ги нарекуваме
ориентирани ребра, а графот го нарекуваме ориентиран граф или скратено орграф.
Доколку ребрата немаат никаква насока, тогаш ребрата ги нарекуваме
неориентирани ребра, а графот со вакви ребра се нарекува неориентиран граф.

Пример 1: неориентиран граф

Пример 2: ориентиран граф

2
Нека V1 и V2 се две темиња од ориентиран граф. Ако постои ребро помеѓу V1 и V2, и
стрелката се движи од V1 кон V2, тогаш реброто го запишуваме како е = (V1 , V2 ) при што
V1 се нарекува почеток на реброто е (претходник на V2), а V2 се нарекува крај на
реброто е (следбеник на реброто V1). Ако има случај е = (V1, V1), тоа ребро се нарекува
лупа (јазол).

Во графот може да постојат паралелни ребра (тоа се повеќе ребра помеѓу две исти
темиња).

Графот G=(V,E) се нарекува прост граф, ако Е не содржи лупи и паралелни ребра.

Бројот на ребра чии што еден крај е темето Vi, се нарекува степен на тоа теме Vi. Степен
на едно теме Vi најчесто се обележува со d (Vi).

Во практиката, многу често се сретнуваат графови кај кои на секое ребро му е придружен
реален број што може да претставува: растојание, цена, проточност, профит итн. Таквите
графови ги нарекуваме тежински графови.

Под маршрута во граф подразбираме конечна наизменична низа на темиња и ребра што
почнува и завршува со теме.
Должина на маршрутата се одредува според бројот на поминатите ребра.

 Затворена маршрута е маршрута која почнува и завршува во истото теме.

 Верига е маршрутата во која сите ребра се различни.

 Пат (Патека) е маршрутата во која сите темиња се различни


и која не содржи повторено ребро.

 Циклус е затворена маршрута која не содржи повторено ребро.

Множеството темиња може да се подели на подмножества темиња меѓу кои постои


пат. Овие подмножества се нарекуваат сврзани компоненти на
графот G.

 Сврзан граф е неориентиран граф во кој постои точно една


сврзана компонента т.е. ако било кои две темиња се поврзани
со пат.

 Дрва или Стебла се сврзани графови кои немаат циклус.

 Планарен граф се нарекува оној граф што може да биде


графички претставен во рамнината така што ребрата
претставени со произволни линии немаат пресек.

3
Пример 3:
Маршрута е конечна низа од соседни
темиња и ребра во еден граф.

Пример за маршрутa : Пример за маршрутa :


A – R1 – B – R2 – C – R3 – D – R4 – E – F – R7 – E – R5 – C – R6 – F – R7 – E – R5 –
R4 –D C

Пример за верига: Пример за пат:


B – R2 – C – R5 – E – R7 – F – R6 – C – A – R1 – B – R2 – C – R6 – F – R8 – G
R3 – D

Пример за циклус:
C – R5 – E – R7 – F – R6 – C

4
Претставување на графови
Графовите можат да се претстават на повеќе начини и тоа: може да се даде листа од
темиња и да се наредат ребрата, може да се претстават со матрица, или пак со поврзани
листи.

Претставување на графови со матрици

Претставувањето со матрици може да биде:

1)Со матрица на соседство


Матрица на соседство е квадратна матрица Аnxn каде n е број на
темиња во графот, составена само од единици и нули.
– Ако постои патека меѓу две темиња, тогаш се запишува 1, а во спротивно 0.

A[i][j] = 1 ако постои врска меѓу теме i и теме j ( i=0,…,n-1)


A[i][j] = 0 ако не постои врска меѓу теме i и теме j. (j=0,….n-1)

Предноста овде е што веднаш можеме да провериме дали постои врска мегу 2 темиња или
не.

Матрица на соседство за графот од Пример1

Матрица на соседство за графот од Пример 2

2) Со матрица А mxn на сврзаност


5
(m е број на темиња, а n е број на ребра), при што:
- кај неориентирани графови

- кај ориентирани графови

Матрица А5х6 за неориентиран граф од Пример 1:

Матрица А5х6 за ориентиран граф од Пример 2:

Задача 1:

6
Да се напише програма за откривање кои темиња се соседни, ако се внесе матрицата
на соседство за графот од пример 1.
Граф пример 1: /*Sosedni teminja vo graf*/
#include <iostream>
using namespace std;
int main()
{
int n,i,j,a[10][10];
cout<<"Kolku teminja ima grafot? ";
cin>>n;
cout<<"Vnesi ja matricata na sosedstvo na grafot
"<<endl;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
cin>>a[i][j];

cout<<"Sosedni teminja se: "<<endl;

for(i=0;i<n;i++)
for(j=i;j<n;j++)
if (a[i][j]==1)
cout<<i<<" -- "<<j<<endl;
return 0;
}

Задача 2: Да се напише програма за наоѓање на степен на темињата во даден граф


зададен со матрица на сврзаност.
/*Naogjanje na sosedni teminja vo graf i opredeluvanje na nivniot stepen t.e. brojot na rebra koi
izleguvaat od temeto*/
#include <iostream>
using namespace std;
int main()
{ int n,i,j,a[10][10], s[10];
cout<<"Kolku teminja ima grafot?";
cin>>n;
cout<<"Vnesi ja matricata na sosedstvo na grafot "<<endl;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
cin>>a[i][j];
cout<<"Sosedni teminja se (postoi rebro megju teminjata) : "<<endl;
for(i=0;i<n;i++)
for(j=i;j<n;j++)
if (a[i][j]==1) cout<<i<<" -- "<<j<<endl;
cout<<"Stepeni na teminjata"<<endl;
for(i=0;i<n;i++)
s[i]=0;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(a[i][j]==1) s[i]=s[i]+1;
for(i=0;i<n;i++)
cout<<"Stepenot na temeto "<<i<<" e "<<s[i]<<endl;
return 0;
}
Тежински граф
7
Во практиката многу често се сретнуваат графови кај кои на секое ребро му е придружен
реален број што може да претставува: растојание, цена, проточност, профит и слично.
Таквите графови се нарекуваат тежински графови.
Пример за тежински граф е патната мрежа со дадени километри од еден до друг град.

Да разгледаме најпрвин како можеме да претставиме еден граф со помош на матрица на


соседство. Имено, да замислиме дека имаме граф со N темиња (каде N е релативно мал
број – на пример, до 100). Во ваков случај, можеме да направиме матрица со големина N*N,
каде секој елемент од матрицата ij (i-ти ред, j-та колона) ќе означува дали постои ребро
помеѓу i-тото теме и j-тото теме (доколку имаме тежински граф, запишаната вредност во
матрицата може да биде тежината на реброто). На пример, на следната матрица е
претставен граф од 5 темиња, и врските помеѓу нив:

Матрица на соседство кај тежински граф


Неориентиран граф Матрица на соседство за неориентираниот тежински граф

Ориентиран граф Матрица на соседство за ориентираниот тежински граф

You might also like