Download as pdf or txt
Download as pdf or txt
You are on page 1of 203

Ана Савић Светлана Штрбац-Савић Амела Зековић

ДИСКРЕТНА МАТЕМАТИКА
И
АЛГОРИТМИ

друго издање

Висока школа електротехнике и рачунарства


струковних студија

Београд, 2012.
Аутори:
Др Ана Савић, мр Светлана Штрбац–Савић, дипл. инж. Амела Зековић

Дискретна математика и алгоритми

Рецензенти:
Др Слободан Обрадовић, доцент, Факултет за рачунарске науке у
Београду
Мр Зоран Мишковић, предавач, Висока школа електротехнике и
рачунарства струковних студија у Београду

Издавач:
Висока школа електротехнике и рачунарства струковних студија
Београд, Војводе Степе 283

Техничка обрада:
Др Ана Савић, дипл. инж. Амела Зековић

Корице:
Струк. инж. Ненад Толић

Слике:
Струк. инж. Мирко Ступар

Тираж: 15

Штампа: МСТ Гајић

Наставно веће Високе школе електротехнике и рачунарства


струковних студија у Београду одобрило је коришћење овог уџбеника у
настави.
Забрањено прештампавање и копирање. Сва права задржава издавач.
“Онај ко се понекад осврне на пут што га је већ
прешао ређе ће посрнути него онај који
непрестано гледа напред, а у још већој
опасности је онај који гледа само на онај
комадић земље на коме управо стоји”.
В. Девиде
ПРЕДГОВОР

Овај уџбеник написан је за студенте прве године Високе школе


електротехнике и рачунарства у Београду који слушају
једносеместрални курс из предмета Дискретна математика и
алгоритми. Прилагођен је плану и програму предмета Дискретна
математика и алгоритми и подељен је у 15 поглавља. Планирано је да
се свако поглавље обради у току једне радне недеље. Свако поглавље
садржи циљеве учења, теоријски део, употпуњен примерима као и
питања и задатке за проверу знања на крају сваког поглавља, што је
стандард у савременој литератури.

Аутори позивају све читаоце и кориснике да дају своје


сугестије, да би наредна издања била још квалитетнија и садржајнија.

У Београду, Аутори
17. 03. 2012.
Садржај
Увод 1
Језик математике 2
1. Основни појмови математичке логике 3
1.1. Логика 3
1.2. Математичка логика 4
1.2.1. Искази 5
1.3. Основне логичке операције 6
1.4. Приоритет логичких операција 12
1.5. Превод језичких реченица 12
1.6. Tаутологије и логички закони 13
2. Примена математичке логике у рачунарству и техници 19
2.1. Дигитална и логичка кола 20
3. Основни појмови теорије скупова 29
3.1. Појам скупа 29
3.2. Операције са скуповима 31
3.3. Број елемената скупа - кардинални број 35
3.4. Раселов парадокс 37
4. Релације 43
5. Функције 48
5.1. Начини задавања функција 50
5.2. Реалне функције једне променљиве 51
5.3. Инверзна функција 51
5.4. Слагање функција 52
6. Основе комбинаторике 54
6.1. Принципи пребројавања 54
6.2. Пермутације без понављања 55
6.3. Пермутације са понављањем 57
6.4. Варијације без понављања 57
6.5. Варијације са понављањем 58
6.6. Комбинације без понављања 59
6.7. Комбинације са понављањем 60
7. Биномна формула 67
8. Теорија графова 73
8.1. Основни појмови 74
9. Представљање графова помоћу рачунара 82
9.1. Шетње по графу 82
9.2. Матрица суседства 82
9.3. Матрице инциденције 85
10. Стабла 88
10.1. Бинарна стабла претраге 93
11. Теорија алгоритама 108
11.1. Алгоритми 108
11.2. Дијаграм- блок шема 110
11.3. Врсте алгоритамских шема 111
11.3.1. Линијске алгоритамске шеме 112
11.3.2. Цикличне алгоритамске шеме 114
11.4. Особине алгоритама 117
11.5. Провера исправности алгоритма 117
12. Математичка дефиниција алгоритма 122
12.1. Рекурзивне функције и алгоритми 123
12.2. Рекурзивни алгоритми 125
12.3. Черчова теза 127
12.4. Тјурингова машина 128
13. Теорија сложености aлгоритама 133
13.1. Проблеми одлуке 134
13.2. Рачунски ресурси 134
13.3. Неукротивост 135
13.4. Особине алгоритама 135
13.5. Претраживање 136
13.6. Секвенцијално претраживање 137
13.7. Оптимизације секвенцијалног претраживања 139
13.8. Секвенцијално претраживање у уређеним табелама 140
13.9. Бинарно претраживање 141
13.10. Претраживање коришћењем бинарног стабла 143
13.11. Основне операције бинарног стабла 145
13.12. Авл стабла 157
13.13. Црвено – црна стабла 160
14. Графовски алгоритми 162
14.1. Алгоритми - разапињућа стабла 162
14.2. Алгоритми - претрага у дубину 163
14.3. Алгоритам - стабло претраге у дубину 164
14.4. Алгоритми - претрага у ширину 167
14.5. Алгоритам - стабло претраге у ширину 168
14.6. Дајкастрин алгоритам 171
15. Булова алгебра 185
15.1. Основни појмови 185
15.2. Докази и аксиоме 187
15.3. Основне теореме 188
15.4. Бинарна булова алгебра 188
15.5. Булове функције 189
15.6. Дисјунктивне и конјуктивне форме 189
УВОД

Дискретна математика је део математике који се бави проучавањем


дискретних скупова.

Она је у суштини синтеза:

 математичке логике,
 теорије скупова,
 опште алгебре,
 комбинаторике,
 дискретне вероватноће ,

и нових области математике као што су

 теорија графова,
 теорија кодова,
 алгоритамске структуре и слично.

До сада, углавном смо се бавили математичком анализом. Она се


бави процесима који се одликују непрекидним током. Настала је и
развијала се током 18., 19. и почетком 20. века. Настанак
диференцијалног и интегралног рачуна у 18. веку био је условљен
индустриjском револуцијом, односно појавом машина континуалног
дејства. Математичка анализа је била тај математички апарат који је
могао да прати и решава проблеме континума.

Развој рачунара условио је потребу за новим математичким апаратом.


Меморија рачунара је коначна, а знајући да су рачунари машине
дискретног дејства (прелазе из једног у друго стање у одређеним
временским тренуцима ) појавио се проблем решавања великог броја
проблема на коначним скуповима.

Дискретна математика обезбеђује теоријску основу за многе


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

1
ЦИЉ ПРЕДМЕТА
Основни циљеви су:
 развијање способности логичког размишљања,
 развијање логички исправне форме закључивања,
 савладавање основне технике доказивања,
 савладавање рада са симболичким изразима,
 савладавање рада са дискретним структурама,
 упознавање са основним техникама пребројавања,
 схватање конструкција алгоритма,
 савладавање теорије графова,
 развијање способности коришћења математичке аргументације,
 уочавање како резултате дискретне математике је могуће
користити у њеним применама.
ЈЕЗИК МАТЕМАТИКЕ
Поред говорног језика у математици се користе разни математички
знаци-симболи који чине језик математике. Тај језик је универзалан и
омогућава једноставно и свима разумљиво записивање математичких
садржаја.

Језик математике садржи:


1
 константе: 1, 3, ,  , 2, 
2
 променљиве: x, y , a, b,  ,  ,
 операцијске знакове:
алгебарске операције: , , , / ; логичке операције:
, , , ,  ; скуповне операције: , , \, , .
 релацијске знакове: , , , , , .
 специјалне знакове:  ,  ,  , , , , , ,!,
Коришћењем ових елемената математичког језика дефинишемо
изразе и формуле.
 Изрази садрже константе, променљиве и операцијске знаке.
Пример: x  3 је израз. Изрази у обичном језику представљају
речи.
 Формуле су изрази који морају да садрже релацијски знак.
Пример: x  3  7 је формула. Формуле су у обичном језику
реченице.

2
1. ОСНОВНИ ПОЈМОВИ
МАТЕМАТИЧКЕ ЛОГИКЕ
ЦИЉЕВИ УЧЕЊА
Када савладате ово поглавље требало би да знате:

1. дефиницију исказа,
2. дефиниције логичких операција,
3. приоритете логичких операција,
4. шта су таутологије, а шта контрадикције,
5. основне логичке законе.

1.1. ЛОГИКА

Логика је вештина и метода правилног мишљења. Логика је наука о


закључивању и као таква користи се у најразличитијим областима
науке, а поготово у математици. Основа је целокупног математичког
резоновања. Настала је у 4. веку п.н.е. На основу основних ставова,
које називамо аксиомама, одређује се који су математички искази
тачни, а који не, и формализују се поступци добијања сложених
реченица из простих у складу са правилима исправног закључивања.

3
Оснивач логике је грчки филозоф Аристотел (384-322 п.н.е.). Рођен je
у Стагири, грчкој колонији на македонском полуострву. Његов отац,
Никомах, радио је као дворски лекар код краља Аминтаса III
Македонског, деде Александра Великог. Од 18. до 37. године похађа
Академију као Платонов ученик. На позив краља Филипа II
Македонског постаје тутор Александра Великог, који је тада имао 13
година. Први је подробно обрадио законе логике и правила
закључивања у делу Органон, што у преводу значи оруђе. У овом делу
сачинио је први скуп правила дедуктивног закључивања.

1.2. МАТЕМАТИЧКА ЛОГИКА

Од средине 19. века па до данас, математичка логика се развија веома


интензивно. Она је значајна математичка дисциплина, која обезбеђује
теоријске основе пре свега рачунарских наука. Омогућила је настанак
и развој дигиталних електронских рачунара.

4
1.2.1. ИСКАЗИ

 Реченице које имају тачно одређену истинитосну вредност T или


 називају се искази.

Значи T , тзв. истинитосне вредности су, у ствари, замене редом ових


речи: тачан (истинит), нетачан (неистинит, лажан). Обично се
записом   p  означава истинитосна вредност реченице p .
Рецимо   2  2  4   T ,    2    3  6   и сл. Реченице које
имају тачно одређену истинитосну вредност T или  као што је
случај са реченицама, односно формулама 2  2  4 ,  2    3  6
називају се искази.
Формуле су уопште математички записи који прочитани обичним
речима дају реченицу природног језика. Тако, запис x  5 и сл. јесте
пример формуле, док запис као 6  7  2 то није (он је пример израза).

Наравно, има и реченица, односно формула које нису искази. Такав је,
на пример, случај са формулама
x  1  3, x  1, 2, 3 , x  4  x
где слово x служи као заједничка ознака (каже се и променљива) за
реалне бројеве. У овом случају за разне вредности променљиве x из
датих формула настају посебне формуле и свака тако добијена
формула јесте исказ, односно тачна је или нетачна. Тако, за x  2
добијамо ове исказе
2  1  3, 2  1, 2, 3 , 2  4  2
чије истинитосне вредности су по реду T , T ,  . Друкчије се каже да 2
јесте решење прве две формуле, а није решење последње.
Променљива је уопште неко слово као x, y ,  које договорно служи
као заједничка ознака за чланове неког скупа. Некад се уместо је
променљива за реалне бројеве говорило је општи број.

 Истинитосна вредност исказа је


 T, p је тачан исказ,
  p  
 , p je нетачан исказ.

Напомена: Уместо T и  користе се и ознаке 1 и 0 . У овом


случају симболе 1 и 0 не треба схватати као бројеве 1 и 0 .

5
Пример: Реченица p : 5  3  8 је исказ и има тачну истинитосну
вредност, тј.   p   T .

Пример: Реченица q : 5  3  8 је исказ и има нетачну


истинитосну вредност, тј.   q   .

Пример: Реченица x 2  4 није исказ јер нема дефинисану


истинитосну вредност. За неке вредности променљиве x , тј за
x  2 формула је тачна, а за све остале је нетачна.

1.3. ОСНОВНЕ ЛОГИЧКЕ ОПЕРАЦИЈЕ

У свакодневном језику, реченице се комбинују у сложене реченице,


коришењем везника и, или, не, ако онда и многих других.
Истинитосна вредност сложене реченице условљена је
истинитошћу њених делова.

Пример:
p : Данас сија сунце.
q : Данас је 22. јул 2010.
Сложена реченица гласи
Данас сија сунце и данас је 22. јул 2010.
Састоји се од два дела спојених везником и. Симболички се може
написати p и q , или коришћењем ознаке за логичку операцију и,
 , у облику p  q .

Основне логичке операције су:

 конјункција (и), у ознаци  ,


 дисјункција (или), у ознаци  ,
 импликација (ако - онда), у ознаци  ,
 еквиваленција (ако и смо ако), у ознаци  ,
 негација (не), у ознаци  .

Напомена: Разликујемо унарне и бинарне логичке операције.


Негација је унарна операција.

6
У вези са сваком логичком операцијом размотримо тзв.
истинитосну таблицу.

Ако су p и q две тачне реченице, онда је и њихова конјункција


p  q тачна реченица. Међутим, ако је барем једна од реченица p ,
q нетачна, њихова конјункција p  q је такође нетачна реченица.
Ове се чињенице прегледно записују таблицом – истинитосном
таблицом конјункције:

p q pq
T T T
T  
 T 
  

Зависност истинитосне вредности дисјункције pq од


истинитосних вредности p и q утвђује се следећом истинитосном
таблицом

p q pq
T T T
T  T
 T T
  

Према тој таблици се види да је дисјункција p  q тачна када је бар


једна од реченица p , q тачна, а нетачна једино у случају када су
обе реченице p , q нетачне.

Пример: Формула 2 је паран број  2 је прост број је тачна (случај


T , T , T ), а формула 2  3  3  4 је нетачна (случај  ,  ,  ).

7
Истинитосна таблица импликације

  p  q    p  q
T T T
T  
 T T
  T

је нешто замршеније и изискује прилично допунског објашњења и


„одбране“. Најнеобичније су трећа и четврта врста те таблице.
Зашто се узима, рецимо да

Ако   p    ,   q   T , онда   p  q   T ; као и:


Ако   p    ,   q    , онда   p  q   T .

Нека је p , на пример, реченица: Србија је највећа на свету, која је


нетачна.
Тада, обе следеће реченице

Ако је Србија највећа на свету, онда је она већа од Француске.


Ако је Србија највећа на свету, онда је она већа од Црне Горе.

су тачне!

Код прве је присутан случај  је T , а код друге  T је T .


Пазите, првом се реченицом никако не тврди да је Србија већа од
Француске, већ једино условно каже: кад би Србија била највећа на
свету, била би већа од Француске.

Постоје и разни обични математички примери који „бране“ таблицу


импликације. Уочимо, рецимо формулу
x  3  x  2 ( x је природан број)
Која је тачна.
Замењујући место x редом 1, 2, 3, 4, 5, ... добијамо ове посебне
формуле

1  3  1  2 , 2  3  2  2 , 3  3  3  2 , 4  3  4  2 , ...

8
Које би требало прихватити као тачне. Међутим, управо у тим
формулама су присутни наведени необични случајеви тачности
импликације. Прве две формуле су у вези са случајем  је T ,
трећа је у вези са случајем  T је T , а остале су у вези са
„природним“ случајем T  T је T .

Према истинитосној таблици импликације, она је нетачна једино у


једном случају: када је p тачна, а q нетачна реченица. У свим
осталим случајевима је импликавија тачна. Случајеви  је T ,
 T је T се обично, ради лакшег памћења, описују овим речима:
Из лажи произилази све, а случајеви T  T је T ,   T је T
речима: Истина произилази из било чега.

Импликација се може читати на следеће начине:

ако p , онда q ,
p је претпоставка последице q ,
p повлачи q ,
из p следи q ,
p је довољан услов за q .
q је потребан услов за p .

За импликацију, p  q , везане су три додатне врсте исказа:

конверзија q p,
инверзија p  q ,
контрапозиција q  p .

Пример:
Ако је он тенисер, онда је он популаран. (импликација)
Ако је он популаран, онда је он тенисер. (конверзија)
Ако он није тенисер, онда он није популаран. (инверзија)
Ако он није популаран, онда он није тенисер. (контрапозиција)

Водећи рачуна о томе да је еквиваленција p  q , у ствари, двојна


импликација p  q  q  p , лако се гради истинитосна таблица
еквиваленције. Она изгледа овако:

9
p q pq
T T T
T  
 T 
  T

Према претходној таблици, реченица p  q је тачна уколико p и


q имају исте истинитосне вредности, а нетачна уколико су
истинитосне вредности тих реченица различите.
Када читамо еквиваленцију користимо и речи ако и само ако, а
пишемо акко.

Највећи број математичких тврђења и теорема су облика


импликације или еквиваленције.

Пример:
Ако је неки цео број једнак 3, онда је његов квадарат једнак 9.

Пример:
Троугао је правоугли, ако и само ако, је збир квадрата над катетама
једнак квадрату над хипотенузом.

Пример:
Број је дељив са 6, акко је дељив са 2 и са 3.

Наводимо, на крају истинитосну таблицу негације

p p
T 
T T
 
 T

10
Пример 1. Решити дату формулу, односно наћи све вредности
одговарајућих променљивих за које је истинитосна вредност
формуле једнака T :
а) 3 x  5  10 (где x  ),
б) x 6 (где x  ),
в) x   x  9 ,
г) x  3  x  5  x  ,
д)  x  1  x  5   x  .

Пример 2. Зашто је празан скуп подскуп било ког скупа?

Пример 3. Решити формулу   x 2  4  x  2  , где x  .

Дефиниција: Знаке p, q, r , s , p1 , q1 , r1 , s1 ,  , pn , qn , rn , sn , 
назовимо, договорно, исказна слова.
Тада се исказне формуле уводе на следећи начин:

(1) Свако исказно слово је исказна формула.


(2) Ако су A , B исказне формуле, онда и речи  A  B ,  A B ,
 A  B  ,  A  B  , A су исказне формуле.
(3) Исказне формуле су једино оне речи које се могу добити
примењивањем коначно пута правила (1), (2).

Пример 4. За сваку од датих речи утврдити да ли јесте или није


исказна формула

 r  s  ,  p  q3  , r , r   s2 ,   p  q  ,  p  q  .
Напомена. Обично се и у случају исказних формула, ради краткоће,
изостављају неке заграде. Један такав договор се односи на
изостављање спољних заграда, па се, рецимо формуле  r  s  ,  p  q  ,
 p  q  ,  p   q  r  означавају краће овако: r  s , p  q , p  q ,
p  q  r .

Пример 5.  p  q   p, p  q  r , p  p  q  су формуле.

11
1.3.1. ПРИОРИТЕТ ЛОГИЧКИХ
ОПЕРАЦИЈА

Комбиновањем исказних слова и логичких оператора добијамо


сложене изразе, као што су на пример p  q  p ,
 p  q   p  r . Приликом одређивања истинитосне вредности
ових израза важно је знати приоритет логичких операција.
Наводимо таблицу приоритета логичких операција.

логички оператор приоритет


 1
, 2
, 3

1.3.2. ПРЕВОД ЈЕЗИЧКИХ РЕЧЕНИЦА

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


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

Пример:
Аутоматски, одговор не може бити послат ако је унутрашња
меморија пуна .
Нека је реченица p : Одговор се аутоматски шаље.
Нека је реченица q : Унутрашња меморија је пуна.
Онда p је реченица: Одговор се не шаље аутоматски.
Логички запис би био q  p .

12
1.4. ТАУТОЛОГИЈЕ И ЛОГИЧКИ
ЗАКОНИ

 Исказна формула која је увек тачна назива се таутологија.

 Исказна формула која је увек нетачна назива се


контрапозиција.

Таутологије у обичном језику представљају законе.

Основни логички закони су:

Закон идемпотенције
p  p  p,
p  p  p.

Двострука негација
  p   p.

Комутативност
p  q  q  p,
p  q  q  p.

Асоцијативност
p   q  r    p  q   r,
p   q  r    p  q   r.

Дистрибутивност
 p  q   p  r  p  q  r,
 p  q   p  r  p   q  r .

Де Морганови закони
  p  q    p  q  ,
  p  q    p  q  .

13
ЗАДАЦИ И ПИ ТАЊА ЗА ПРОВ ЕРУ ЗНАЊА

1. Шта је исказ?
2. Навести основне логичке операције.
3. Шта је таутологија?
4. Невести основне логичке законе.
5. Испитати да ли су дате реченице искази:
1 1
а)  , б) x 2  y 2  2 xy ,
7 4

2
в)  2   2 , г) x 2  y .

Решење:
а) да, б) да,

в) да, г) не.

6. Одредити истинитосну вредност следећих исказа:


1 1
а)  , б) x 2  y 2  2 xy ,
7 4

2
в)  2   2 , г) 1  3   3  5  .

Решење:
1 1
а)      ,
7 4
б)   x 2  y 2  2 xy   T ,

в)    2 
2

 2  ,

г)   1  3    3  5   T  T  T .

7. Дати су искази:

 1 1   1 1  10 1 1 1 1 37
p    :    , q  :     ,
 2 3  4 5 3 2 3  4 5 6
1 1 1 1 1 1 1 1 2
r    :   7 , s  :   .
 2 3 4 5 2 3 4 5 5

14
Одредити њихову тачност и на основу тога одредити истинитосну
вредност следећих изказа:

а)  p  q   r , б)  p  q    r  s  ,
в)  p  q    r  s  , г)  p  q    r  s  .

Решење:
Како је   p   T ,   q   T ,   r   ,   s   ,
а)    p  q   r   ( T  T )   T   T ,
б)    p  q    r  s    ( T  T )        T   T ,
в)    p  q    r  s    ,
г)    p  q    r  s    .

8. Дати су искази:

3 5 2 2
p   4 x4 y3  :  2 x 2 y   2 x 2 y3 , q   3x 4 y 2  :  3x 6 y   3 xy 4 ,
2
r   2 x  y  2 x  y   4 x 2  y 2 , s   x  2 y   x 2  4 xy  4 y 2 .

Одредити њихову тачност и на основу тога одредити истинитосну


вредност следећих изказа:

а)  p  q   r , б)  p  q    r  s  ,
в)  p  q    r  s  , г)  p  q    r  s  .

Решење:
Како је   p  ,   q  ,   r   T ,   s   ,
а)    p  q   r   T ,
б)    p  q    r  s    ,
в)    p  q    r  s    T ,
г)    p  q    r  s    .

9. Написати на више начина импликацију x  2  x  0 .

15
Решење:
Ако x  2 , онда је x  0 ,
x  2 је претпоставка последице x  0 .,
x  2 повлачи x  0 ,
из x  2 следи x  0 ,
x  2 је довољан услов за x  0 .
x  0 је потребан услов за x  2 .

10. Наћи конверзију, инверзију и контрапозицију инпликације


x  2  x  0 .
Решење:
Ако је p : x  2, q : x  0 имамо
q p конверзија
x  0  x  2 .

p  q инверзија
   x  2    x  0     x  2  x  0 
q  p контрапозиција
   x  0    x  2     x  0  x  2  .
11. Испитати да ли су исказне формуле таутологије:

а)   p  q    p  q  , б)   p  q    p  q  ,
в)  p  q   p , г)  p  p   p ,
д)  p  q   r   p  r    q  r  .

Решење:
а)   p  q    p  q  , је таутологија.
Нека је     p  q    A , и   p  q   B .
  p   p   p    q    p  q A B F
T T   T   T
T   T  T T T
 T T   T T T
  T T  T T T

16
б)   p  q    p  q  је таутологија,
в)  p  q   p је таутологија,
г)  p  p   p је таутологија,
д)  p  q   r   p  r    q  r  .

Нека је M   p  q   r , N   p  r    q  r  и
F   p  q  r   p  r   q  r  .

  p  q   r   p  q  M    p r  q  r  N  F 
T T T T T T T T T
T T  T  T T T 
T  T T T T T T T
T   T  T   
 T T T T T T T T
 T  T   T  
  T   T T T 
        

Формула  p  q   r   p  r    q  r  није таутологија.

12. Доказати да су следеће формуле таутологије

а)  p  q    q  p  закон комутације,

б)   p  q    p  q  Де Морганов закон,

в)  p  p   p закон иденпотенције,

г) p  p закон двојне негације,

д)  p  q    p  r   p   q  r  закон дистрибуције.

17
13. Методом свођења на противречност испитати да ли је следећа
формула таутологија   p  q   p   p .
Решење:
Ако посматрана формула не би била таутологија, морало би бити,
за неке вредности p и q који се појављују у овој формулу да је
    p  q   p   p   . То се може десити у случају да је
   p  q   p   T и   p   . На основу тога добијамо да је
   p  q     T , односно   p  q   . Овај израз може бити
нетачан само у једном случају, а то је када је   p   T и   q   .
Како смо већ претпоставили да је   p   , долазимо до
контрадикције. Значи не можемо наћи вредности израза p и q за
које је полазна формула нетачна. Према томе полазна формула
мора бити таутологија.

14. Методом свођења на противречност испитати да ли су следеће


формуле таутологија.
а) p   p  q  ,
б)  p  q   p   p ,
в)  p  r      p  q   r   r  ,
г)  p  q    p  q  ,
д)  p  q   p   p  q  .

КЉУЧНЕ РЕЧИ
Исказ
Конјункција
Дисјункција
Импликација
Еквиваленција
Негација
Таутологија
Контрадикција

18
2. ПРИМЕНА МАТЕМАТИЧКЕ
ЛОГИКЕ У РАЧУНАРСТВУ И
ТЕХНИЦИ
ЦИЉЕВИ УЧЕЊА
Када ово поглавље проучите моћи ћете да:

1. разумете примене математичке логике у рачунарству и техници,


2. одредите прекидачку шему која одговара исказној формули,
3. одредите дигитално логичко коло које одговара исказној
формули.

Модерни рачунари користе бинарни бројни систем који има две


цифре 0 и 1. Бинарни систем је изабран зато што рачунар мора да
прикаже било коју цифру на јединствен начин, а постоји велики
број електронских склопова који се налазе у два једиствена
стабилна стања. Ова стања могу бити отворен-затворен, лево-десно,
укључен-искључен и слично. Зато је бинарни систем погодан за
коришћење. Цифра 0 или 1 је минимална количина информација,
односно најмањи податак који се може обрадити у рачунару и
назива се бит (bit). Бит може да репрезентује истину (true) и
неистину (false). Јединица репрезентује истину, а нула неистину.
Логичке операције се представљау и као конјункција AND, а
дисјункција као ОR, имајући у виду истинитосне таблице за дате
логичке операције. У већини рачунара користи се група од осам
бита која се назива бајт (byte).

Пример: Ако применимо операторе AND и OR на бројеве


0110110110 и 1100011101 добићемо:

0110110110
1100011101 AND
0100010100

0110110110
1100011101 OR
1110111111

19
Рачунари морају имати могућности да меморишу и обрађују и
ненумеричке, односно текстуалне податке. Они су или низови
(string) или знакови (charácter data), затим слова, знакови
интерпункције, математички знаци, специјални знаци и слично.
Подаци овог типа су меморисан у облику низа битова. Данас се
користе ASCII и EBCDIS код. На пример 1111001 представља
слово б.

Дакле, бинарни бројеви су основа за функционисање рачунара.


Дигитална кола комбинују нуле и јединице, и генеришу нове нуле и
јединице. Машинске инструкције су такође приказане као низови
нула и јединица. Сви програми написани у асемблеру или неком
вишем програмском језику да би могли да раде морају бити
преведени у низове нула и јединица.

2.1. ДИГИТАЛНА И ЛОГИЧКА КОЛА

Клод Елвуд Шенон (Claude Elwood Shannon, 1916. – 2001) био је


амерички научник и инжењер. Међу најзначајнија открића овог
научника спадају теорија информација и дизајн дигиталних рачунара и
кола. 1938. године открио је везу између таблица истинитости и
електричних кола. Шенон је познат као утемељивач информационе
теорије са својим научним радом објављеним 1948. године. Такође се
сматра утемељивачем теорије дигиталног рачунара и теорије дизајна
дигиталних кола, када је као 21-годишњи студент МIТ-а, написао тезу
где доказује да је примјеном Булове алгебре на дигитална електрична
кола, могуће решити било који логички или нумерички проблем.

20
Дигитална кола су тако пројектована да имплементирају принципе
бинарне аритметике и математичке логике.

 Исказне формуле у којима се појављују само операције , ,  ,


при чему  се односи само на исказна слова, имају једну
занимљиву интерпретацију која се користи у техници, у
пројектовању дигиталних кола и назива прекидачка алгебра.

 Исказна слова се третирају као нормално отворени прекидачи,


а њихова негација као нормално затворени прекидачи. Ако
исказно слово има вредност p  1 сматра се да је прекидач
затворен, тј. да проводи струју, а за p  0 је отворен, тј. да не
проводи струју.

Формула се третира као мрежа са два краја састављена од


прекидача који су повезани паралелно или серијски. Таутологијама
одговарају мреже које увек проводе струју.

Пример:
Посматрајмо прекидачко коло које садржи прекидач и сијалицу.
Вредност 1 додељујемо прекидачима p и q када су затворени, тј
ако кроз њих протиче струја. У супротном додељујемо им вредност
0. Када су прекидачи редно везани, сијалица ће светлети и коло ће
имати вредност 1 само ако су оба прекидача p и q затворена.
Према томе, ово коло ће одговарати исказу p и q , односно p  q и
зове се АND –и коло.

21
Пример:
Посматрајмо прекидачко коло у коме су прекидачи p и q везани
паралелно. Када су прекидачи паралелно везани, сијалица ће
светлети ако је p  1 или q  1 и коло ће имати вредност 1 ако је
бар један прекидача p и q затворен. Према томе, ово коло ће
одговарати исказу p или q , односно p  q и зове се ОR- или коло.

22
Коло са једним прекидачем p , у коме сијалица светли само ако је
прекидач отворен. Према томе коло ће имати вредност 1 ако је
прекидача p затворен, односно ако је p једако 0. Такво коло
назива се не коло или инвертор.

p

Елементи дигиталних логичких кола осим стандардних наведених


(и коло, или коло и не коло) су и следећа кола:
ни коло, одговара логичком изразу   p  q  .

нили коло, одговара логичком изразу   p  q  .

ексклузивно или одговара логичком изразу p  q .

23
ЗАДАЦИ И ПИ ТАЊА ЗА ПРОВ ЕРУ ЗНАЊА

1. Шта је прекидачка алгебра?


2. Зашто се користи бинарни систем?
3. Шта је бит?
4. Формули  p  q    p  r  одредити:
а) прекидачку шему,
б) дигитално логичко коло.

Решење:
а)

б)

9. Формули  p  q   r одредити:
а) прекидачку шему,
б) дигитално логичко коло.

Решење:

24
а)

б)

10. Нацртати прекидачке шеме и дигитална логичка кола која


одговарају исказним формулама:

а)  p  q    r  s  ,
б)   p  q   r   s ,
в) p   q  r  ,
г)  p  q     p  r  ,
д)    p  q    p  r    r .

11. Написати логичке формуле и нацртати дигитална логичка


кола која одговарају следећим прекидачким шемама

25
а)

б)

в)

26
Решење:

а) p    q  r    p  q  

12. Написати логичке формуле и нацртати прекидачке шеме


које одговарају следећим дигиталним електричним колима:
а)

б)

Решење:

а)

 p  q   r .

27
КЉУЧНЕ РЕЧИ

Бит
Бајт
Прекидачка алгебра
И коло
ИЛИ коло
НЕ коло
Прекидачка шема
Дигитална логичка кола

28
3. ОСНОВНИ ПОЈМОВИ
ТЕОРИЈЕ СКУПОВА
ЦИЉЕВИ УЧЕЊА

Када ово поглавље проучите требало би да:

1. знате дефиниције основних скуповних релација,


2. знате дефиниције основних скуповних операција,
3. знате шта је кардинални број скупа,
4. знате шта је Раселов парадокс.

3.1. ПОЈАМ СКУПА

Са скуповима радимо свакодневно у различитим приликама. Корпа


јабука, стадо оваца, скуп континената, популација бактерија, скуп
тачака на кружници, скуп природних бројева, све су то примери
скупова. Скоро свака делатност човека односи се на неке скупове.

Одлучујући корак у синтетизовању математичких знања је теорија


скупова, односно теорија бесконачних скупова, чији је творац Џорџ
Кантор (Georg Kantor 1845.-1918.). Настала је као резултат
изградње строге теорије реалних бројева. Кантор је први у историји
математике прихватио појам бесконачног без икаквих
тајанствености.

 Скуп је основни појам који се не дефинише. Чине га елементи


који имају бар једно заједничко својство.
 Објекти скупа називају се његовим елементима.

 Скупови се обележавају најчешће великим словима A , B , C , ...


а његови елементи малим словима a , b , c , ...

 Неки елемент a може припадати датом скупу A , што се


означава са a  A , или не припадати истом скупу, што се
означава са a  A .

29
 Скуп који нема елемената назива се празан скуп и обележава са
.

 За графичко представљање скупова користе се Венови


дијаграми.

 Кажемо да је A подскуп скупа B и пишемо A  B , ако сваки


елемент скупа A припада истовремено и скупу B .

A  B   x x  A  x  B .

 Два скупа A и B су једнака, ако сваки елемент скупа A


припада и скупу B и ако сваки елемент скупа B истовремено
припада и скупу A .

A  B   x x  A  x  B .

30
 Партитивни скуп P  A  датог скупа A , је скуп свих
подскупова датог скупа, тј. P  A    X X  A  .

Пример:

A  1, 2,3 , P  A   , a , b , c , a, b , b, c , a, c , a, b, c.

3.2. ОПЕРАЦИЈЕ СА СКУПОВИМА

 Унија два скупа A и B је скуп A  B   x x  A  x  B .

Пример: A  1, 2 , B  2, 3, 6, 7 ; A  B  1, 2,3, 6, 7 .

 У општем случају, када имамо коначно много скупова


A1 , A2 ,  , An , њихова унија је:

A  A A
i 1 2  An .
i 1

31
 Пресек скупова A и B је скуп A  B   x x  A  x  B  .

Пример: A  1, 2 , B  2, 3, 6, 7 ; A  B  2 .

 Ако је пресек два скупа A и B празан, тј. A  B   , тада за та


два скупа кажемо да су дисјунктни.

 Ако је дато коначно много скупова A1 , A2 ,  , An њихов пресек


је:

A  A A
i 1 2  An .
i 1

 Разлика скупова A и B је скуп A \ B   x x  A  x  B  .

32
Пример: A  1, 2 , B  2, 3, 6, 7 ; A \ B  1 , B \ A  3, 6, 7 .

 Симетрична разлика скупова A и B је унија скупова A \ B и


B \ A , тј.

A B   A \ B    B \ A .
 Комплемент скупа A у односу на скуп B (или допуна скупа
A до скупа B ) где је A  B је скуп CB A  B \ A .

 Пар елемената (a, b) називамо уређеним паром (или уређеном


двојком) ако је тачно одређено који је елемент на првом, а који
на другом месту.

 Уређени парови (a, b) и (c, d ) су једнаки ако и само ако је a  c


и bd.

 Декартовим производом скупова A и B назива се скуп


A  B  (a, b) a  A  b  B .

Пример: Дати су скупови A  1, 2,3 и B   x, y .

A  B  (1, x), (2, x), (3, x), (1, y ), (2, y ), (3, y ) ,


B  A  ( x,1),( x, 2), ( x,3),( y ,1), ( y, 2), ( y ,3) .

Очигледно је A  B  B  A , што значи да за Декартов производ


скупова не важи закон комутације.

Декартов производ A  A се означава са A2 . Декартов производ


  2 представља реалну раван.
A  A    A  An и      n .

33
Декарт Рене (Descartes René, 1596-1650) је био велики француски
математичар и филозоф, али се данас његово име првенствено памти
по вези коју је успоставио између алгебре и геометрије. На тај начин
створио је нову научну дисциплину, аналитичку геометрију, која је
омогућила даљи напредак математике. Његово дело Геометрија (La
geometrie) поставило је основе данашњој аналитичкој геометрији.
Декарт је био први који је употребио последња слова алфабета да
означи непознате величине. О значењу тог открића Енгелс је рекао:
„Декартова променљива величина била је прекретница у математици.
Захваљујући томе ушли су у математику кретање и дијалектика, а исто
се тако одмах нужно дошло до диференцијалног и интегралног рачуна,
који се одмах и јавља, те су га Њутн и Лајбниц углавном довршили, а
нису га открили.“ У филозофији заступао је методу критичке сумње,
зачетник је новог филозофског правца рационализма. Методским
скептичким рашчишћавањем свега нејасног и несигурног и издвајањем
и одбацивањем непоузданог, Декарт долази до основне истине, која је
по његовом мишљењу потпуно поуздана, и из које ће настојати да
изведе читав свој филозофски систем. Та истина је садржана у његовој
познатој реченици "Мислим, дакле постојим" (Cogito, ergo sum).
1649. године Декарта је у Стокхолм позвала шведска краљица
Кристина да би је подучавао. Двадесеттрогодишња краљица је желела
да црта тангенте у пет сати ујутру, тако да је Декарт разбио своју
животну навику устајања у једанаест сати. Желећи да својим саветима
утиче на ћудљиву владарку тада моћне земље како би тиме учинио
нешто за мир у свету, Декарт је подносио сурове услове у земљи стена
и глечера и свако јутро ходао до палате. Не навикнут на хладноћу
шведских зима умро је 1650. године од запаљења плућа.

34
3.3. БРОЈ ЕЛЕМЕНАТА СКУПА -
КАРДИНАЛНИ БРОЈ

Одређивање броја елемената коначних скупова своди се на њихово


пребројавање . Међутим, када се ради о бесконачним скуповима ,ствар
је много сложенија. Тада се срећемо са доста неочекиваним
ситуацијама.

 Ако постоји „1-1“ и „на“ пресликавање f скупа A на скуп B ,


(бијекција) онда се за скупове A и B каже да су еквивалентни.
 Еквивалентни скупови A и B имају исти кардинални број, у
ознаци k  A   k  B  .

 Код коначних скупова кардинални број представља број


елемената скупа.

Пример:
Еуклидова аксиома каже: Целина је већа од дела.

Кардинални број скупа природних бројева једнак је кардиналном


броју скупа свих парних природних бројева.

Та једнакост се види из пресликавања


1 2 3 4  n 
    

2 1 2  2 2  3 2  4  2  n 
Дакле k    k 2  .
Још 1638 године Галилеј је сматрао да се овде ради о парадоксу.
Интиутивно се чини да је скуп природних бројева има више
елемената него скуп парних природних бројева.

Канторова теорија показује да се бесконачни скупови могу


упоређивати. Скупови и 2 су еквивалентни, али скупови и
нису.

35
Кардинални број скупа је већи од кардиналног броја скупа ,
значи можемо рећи да је неки бесконачни скуп „бесконачнији“ од
другог.

Пример: Скуп свих тачака праве еквивалентан је са скупом тачака


равни.
Скуп свих реалних бројева између 0 и 1 има већи кардинални број
од скупа свих рационалних бројева .

Пример: Кардинални број празног скупа је 0, и пишемо k     0 .

 Кардинални број скупа природних бројева означава се


хебрејским словом  и чита се алеф, са индексом 0
k    0 .

36
2.4 РАСЕЛОВ ПАРАДОКС

Бертранд Расел рођен је 1872. године у племићкој породици. Веома


рано је остао без родитеља, мајка му је умрла када је имао 2 године, а
отац када је имао 4. Остали су он и његов старији брат Френк (будући
други Ерл Расел). О њима се бринуо њихов деда Ерл Расел (лорд Џон
Расел) који је био председник британске владе 40-их година 19. века, и
дедина жена из другог брака. Кум му је био филозоф Џон Стјуарт Мил.
Расел није испунио њихова очекивања што се тиче женидбе, 1894. се
оженио американком Алис Смит. Њихов брак је завршен разводом
1911. године. Расел није био увек веран брачном животу, познате су
биле две љубавне афере са чувеним дамама од којих је једна била
глумица. Расел је студирао филозофију и логику на универзитрту
Кембриџ од 1890. Постао је члан Тринити колеџа 1908. 1920. је
путовао у Русију и после тога предавао у Пекингу филозофију годину
дана. 1921. када је изгубио професорски посао оженио се Дором Блек и
са њом је имао сина Џона и ћерку Кетрин. Расел се у ово време
испомагао тако што је писао популарне књиге из области физике,
етике и образовања за лаике. Супруга Дора га је изневерила у прељуби
са једним америчким новинаром и Расел се 1936. оженио по трећи пут.
Нова супруга му се звала Патриша, била је оксфордски студент и
гувернанта Раселове деце 1930. године. Са њом је имао једног сина по
имену Конрад. 1952. у својој осамдесетој години, Расел се поново
развео и оженио четврти пут супругом Едит, са којом се познавао још
од 1925. године. Бертранд Расел је написао три тома своје
аутобиографије крајем 1960 – их година и преминуо је 2. фебруара
1970. Године у Велсу у својој 98. години. Његов пепео је расејан у
планинама Велса. Треба поменути и да је Расел познат као оснивач и
вођа познатог "Преког суда" у коме су били осуђивани сви злочини
САД у вијетнамском рату током 50-их и 60-их година двадесетог века.

37
Јасно је зашто је ова теорија на почетку свога настанка имала
велики број противника. Међутим, почетком овог века када је
теорија скупова доживљавала свој процват и налази широку
примену у математици. Истовремено, уочене су и прве
противречности, односно парадокси. Најчувенији је Раселов
парадокс настао 1902. године.
Постоје разне интерпретације Раселовог парадоса, пардокс
берберина, пардокс библиотеке и многи други.

Пример: парадокс берберина


У неком селу живео је берберин, који је бријао све оне становнике
села, који се нису бријали сами. Да ли је берберин бријао самог
себе?
Ако би се берберин бријао, он би био један од становника који се
брију сами, па се не би смео бријати. Ако се пак берберин не би
бријао, био би један од становника села који се не брију сами, па би
се морао бријати.
Како се решава овај парадокс. Једноставно, није могуће да постоји
село у коме би берберин могао да ради овако како је речено.

Суштина Раселовог парадокса своди се на следеће: Ако за сваку


особину постоји скуп свих објеката који садрже ту особину, онда то
исто важи и за особину „скуп не припада самом себи“, односно,
питање је, да ли скуп свих скупова који не садрже себе, садржи
себе?

 Нека је R скуп свих скупова S који не садрже себе као


елемент, односно R  S S  S  .

Нека је S скуп свих објеката за које важи ова особина. Да ли S


припада самом себи? Ако припада, онда значи да задовољава
особину ‘скуп не припада самом себи ‘, што је контрадикција. Ако
пак не припада самом себи, онда ће да задовољи тражену особину,
а ће баш да припада самом себи, што је опет контрадикција.

Појава Раселовог парадокса озбиљно је уздрмала Канторову


теорију скупова. Развила су се три правца у математици којима је
било могуће решити настале проблеме, Расел –логицизам, Бауер-
интуиционализам, Хилберт –формализам.

38
Расел је дефинисао појам класе и један од начина превазилажења
овог парадокса се своди, а се скуп свих скупова не сматра скупом,
већ класом, која је уопштење појма скупа.

ЗАДАЦИ И ПИ ТАЊА ЗА ПРОВ ЕРУ ЗНАЊА

1. Шта су Венови дијаграми?


2. Навести и дефинисати основне скуповне операције.
3. Која је веза између математичке логике и теорије
скупова?
4. Навести скуповне релације.
5. Дефиниција уређеног пара.
6. Дефиниција Декартовог производ скупова.
7. Шта је партитивни скуп?
8. Шта је комплемент скупа?
9. Који су скупови дисјунктни?
10. Шта је кардинални број скупа?
11. Како гласи Раселов парадокс?
12. Колики је кардинални број партитивног скупа празног
скупа?

13. Ако је A  1, 2,3 , B  2, 3, 4, 5 и C  2,3, 4,5, 6, 7 ,


одредити
а) A  B ,  A  B   C ,
б) A  B ,  A  B   C ,
ц) A \ B, C \ A. ,
д) A  B , P  A  .

Решење:
а) A  B  1, 2,3, 4,5 ,  A  B   C  1, 2,3, 4,5, 6, 7 ,
б) A  B  2,3 ,  A  B   C  2,3 ,
ц) A \ B  1 , C \ A  4,5, 6, 7 ,
д)
A B 
1,1 , 1, 2 , 1,3 , 1, 4 ,  2, 2  ,  2,3 ,  2, 4  ,  2,5  , 3, 2  , 3,3 ,  3, 4  ,  3,5

39
P  A   ,1 , 2 , 3 , 1, 2 , 1,3 , 2,3 , 1, 2,3 .


14. Одредити елементе скупова A  x x 2  1  0  x  и
B   x 2 x  1  7  x  N  , а затим израчунати A  B, A  B, A \ B и
B\ A.

Решење:
A  1,1 .
Како је 2 x  1  7  2 x  6  x  3 , а треба да узмемо само
природне бројеве
B  1, 2 .
A  B  1 , A  B  1,1, 2 , A \ B  1 , B \ A  2 .

15. Дат је скуп P  0,1, 2, ,9 . Одредити скупове A   x x  P  x  3


и B   x x  P  x  8 , а затим израчунати A  B, A  B, A \ B .

Решење:
A  3, 4,5, 6, 7,8,9 и B  0,1, 2,3, 4,5, 6, 7 .

A  B  3, 4, 5, 6, 7 , A  B  0,1, 2,3, 4,5, 6, 7,8,9 , A \ B  8,9 .

16. Дат је скуп P  0,1, 2, ,9 . Одредити скупове


 2x   x2 
A  x x  P   P  и B   x x  P   x  P  , а затим
 12  x   2 
израчунати A  B, A  B, A \ B, B \ A, P  A \ B  .

Решење:
A  0, 4, 6,8,9 , B  0, 2, 4 .

A  B  0, 6,8 , A  B  0, 2, 4, 6,8,9 ,


A \ B  6,8,9 , B \ A  2 ,
P  A \ B   , 6 , 8 , 9 , 6,8 , 6,9 , 8,9 , 6,8,9 .

40
17. Дати су скупови A  a, b, c, d  , B  a, b, 4 , C  2, 4, c ,
D  a, b,3 и E  1, b . Одредити а,б,ц,д ако знамо да је B  A ,
C  A, D  A и E  B .

Решење: a  1, b  2, c  3, d  4 .

18. Дати су скупови A  n n  , n  10 , B  n n  , 2  n  7 ,


C  2,3, 6 , Одредити скупове X и Y ако знамо да је X  A ,
C X  B.

Решење: X  2, 3, 4,5, 6, 7 .

19. Применом таутологија доказати следеће скуповне једнакости:

а) A   A  B   A , б)  A / B   B   ,
в) A  B  B  A , г) A   B  C    A  B    A  C  .

Решење:
а)
x  A   A  B  x  A
x  A  x  A  B  x  A
x  A   x  A  x  B  x A
Ако уведемо ознаке: p : x  A и q : x  B , добијамо исказну
формулу

p   p  q   p . Коришћењем таблице лако се доказује да је


формула таутологија, па самим тим и свака формула која се на њу
може свести је тачна.

б) Формули  A / B   B   одговара таутологија  p  q   q  .

41
КЉУЧНИ ТЕРМИНИ

Скуп
Пресек скупова
Унија скупова
Разлика скупова
Подскуп
Партитивни скуп
Дисјунктни скупови
Уређени пар
Декартов производ
Комплемент скупа
Кардинални број
Алеф нула
Парадокс

42
4. РЕЛАЦИЈЕ
ЦИЉЕВИ УЧЕЊА
Када ово поглавље проучите требало би да знате:

1. дефиницију појма релације,


2. особине релација,
3. врсте релација.

До сада смо се у математици срели са различитим релацијама.


То су на пример , , , , ,  и многе друге. Релација указује на
однос између математичких објеката. Релација се може посматрати као
повезивање елемената неког скупа A , који су у вези, релацији, са
елементима неког скупа B . Значи ако x  A и y  B и при томе су у
датој релацији , онда сваком пару  x, y   A  B придружујемо вредност
Τ , а ако то није случај вредност  .

Дефиниција:
Релација је било који подскуп Декартовог производа произвољних
скупова. Ако је   A  B и  x, y    , кажемо да је x у релацији 
са y и пишемо x  y .

Релације се могу представити уређеним паровима, таблицама и


графицима.

Пример: Релацији   1,1 ,  2, 2  ,  2,1 , 1, 2  ,  3, 3 ,  4, 4  , одговара


таблица и график.

 1 2 3 4
1 Τ Τ  
2 Τ Τ  
3   Τ 
4    Τ

43
Ако A  B , онда се скуп A2  A  A назива Декартовим квадратом.

Релација може да има следеће особине:

Нека је   A2 . За релацију тада кажемо да је


 (Р) рефлексивна акко  x  A  x  x 
 (С) симетрична акко  x, y  A  x  y  y  x 
 (АС) антисиметрична  x, y  A  x  y  y  x  x  y 
 (Т) транзитивна  x, y , z  A  x  y  y  z  x  z 

Релација у предходном примеру је рефлексивна, симетрична и


транзитивна.

Дефиниција:

Релација која је рефлексивна, симетрична и транзитивна назива се


релација еквиваланције.
Релација која је рефлексивна, антисиметрична и транзитивна назива се
релација поретка.

Пример: Релације еквиваленције су једнако, подударно и др., а


релације поретка су ,  и др.

Свака релација еквиваленције разлаже скуп на класе еквиваленције.

Дефиниција:

44
Ако је релација еквиваленције, онда се класа елемента x, у ознаци
C x дефинише као C x   y x y
Скуп C x се зове количнички скуп.

Све класе еквиваленције једног скупа чине његово разлагање на


дисјунктне подскупове, а њихова унија је сам полазни скуп.

Пример: У скупу S   x x   x  12 дефинисана је релација на


следећи начин:   x, y   S : x  y  3  x  y  .
Показати да је задата релација релација еквиваленције.
Одредити класе еквиваленције и количнички скуп.

Релација је рефлексивна, јер је x  S : 3  x  x   3 0


Релација је симетрична, јер је
  x, y   S : 3  x  y   x  y  3k
y  x    x  y   3k
3  x  y  3  y  x
Релација је транзитивна, јер је
  x, y   S : 3  x  y  x  3  y  z  
x  y  3k  y  z  3m
x  z   x  y    y  z   3k  3m  3  k  m   3n.
Значи ради се о релацији еквиваленције.

Дата релација раставља скуп S на три подскупа.


S 0  3, 6,9,12   x x  S  x  3k  ,
S1  1, 4, 7,10   x x  S  x  3k  1 ,
S 2  2,5,8,11   x x  S  x  3k  2.
Количнички скуп је S /   S0 , S1 , S 2  .

У области пројектовања релационих база података,


нормализација представља систематски метод за осигуравање да је
структура базе података погодна за упите општег типа, и да не
испољава извесне нежељене карактеристике - аномалије уношења,

45
ажурирања и брисања - које би могле да доведу до губитка интегритета
података. Едгар Франк Код (E. F. Codd), изумитељ, релационог модела,
је увео концепт нормализације као и појам који је данас познат као
прва нормална форма 1970. године. Код је осим тога дефинисао другу
и трећу нормалну форму 1971. Више нормалне форме су током
наредних година дефинисали други теоретичари. Најновија је шеста
нормална форма уведена 2002. године.

Неформално, табела релационе базе података (рачунарска


репрезентација релације) је нормализована ако је у трећој нормалној
форми (3НФ).
Релациони модел за управљање базама података је једна врста
модела података, који се базира на предикатском рачуну и теорији
скупова.
Данас је то најраспрострањенији модел за моделирање реалних
проблема и динамично управљање подацима. Едгар Франк Код је 1970.
године поставио основе за овај модел, радећи за лабораторије ИБМ-а у
Сан Хосеу у Калифорнији. Убрзо релациони модел података постаје
парадигма стандард за моделирање база података.
Основна идеја је коришћење „релација“. Те релације су уствари
скупови података у логичкој форми. Свака релација се поставља као
једна „табела“, која се састоји од „регистара“ (редова једне колоне),
који представљају поља (колоне једне табеле).
Е-Р модел (Entity-relationship model) или МОВ (модел објекти -
везе) се заснива на групи математичких принципа изведених из теорије
скупова и предикатске логике. Е. Ф. Код је први применио те принципе
на област моделовања података касних шездесетих година. Његови
радови први пут су објављени 1970. године.

Модел објекти - везе (МОВ) представља један од начина на који


се могу пројектовати базе података. Поред UML, и још неколико
других метода, МОВ представља један од најпопуларнијих метода.
Наиме, МОВ настоји да графичким путем, користећи дијаграм
објекти-везе (ДОВ) прикаже модел реалног света, тј оног дела реалног
света на који се база података односи. То приказивање стварности се
одликује у приказивању објеката, њихових особина и међусобних
односа.
У реалном свету сваки објекат (човек, документ, превозно
средство...) има пуно особина. При пројектовању базе података, а
самим тим и израде МОВ-а, врши се апстракција, то јест занемаривање
небитних ствари.

46
Од кључног значаја за разумевање МОВ-а је правити разлику
између појмова објекат (ентитет) и тип.
Тип представља дефинисиње, али не и опредмећивање, особина
и даје опсег релација које одређени објекти морају имати. Објекат
представља опредмећивање, конкретно појављивање неког типа.
Човек, као тип, има особине име, тежина и висина. Тиме је сам
тип дефинисан. С друге стране, ако кажемо да је Петар тежак 80 kg и
висок 180 cm, а Милан тежак 90 kg, а висок 170 cm, онда говоримо о
два конкретна појављивања типа човек, тј о два објекта која су типа
човек. Исто и када говоримо о релацијама, тј. односима, у дефиницији
типа човек можемо рећи да човек може да не вози ни једно возило, али
и да може возити бесконачно много возила. Али посебно ћемо за Петра
рећи да вози један аутомобил, а за Милана да вози комби и мотоцикл.
Релације представљају концепт који објашањава на који начин су два
или више објеката повезана. Ако узмемо бинарну релацију, тј. релацију
између два објекта, као базични тип релације, онда говримо о односу
где се релација, тј. однос може посматрати из два угла. У релацији
лечење, можемо да кажемо да доктор лечи пацијента, али и да је
пацијент излечен од стране доктора. За релације су од великог значаја
кардинални бројеви. Тако на пример доктор може да излечи
бесконачно много пацијената, али појединачни пацијент може бити
излечен од само једног доктора.

ПИТАЊА И ЗАДАЦИ ЗА ПРОВ ЕРУ ЗНАЊА

1. Дефинисати појам релације.


2. Навести особине релације.
3. Која релација је релација еквиваленције?
4. Која релација је релација поретка?
5. Доказати да је релација једнакости, релација еквиваленције.

КЉУЧНЕ РЕЧИ

Релација
Рефлексивност
Симетричност
Транзитивност
Класе еквиваленције
Количнички скуп
Модел објекти – везе (МОВ)

47
5. ФУНКЦИЈЕ
ЦИЉЕВИ УЧЕЊА
Када ово поглавље проучите требало би да знате:

1. дефиницију појма функције,


2. особине функција,
3. да набројите различите врсте функција.

Појам функције или пресликавања спада у основне математичке


категорије. Код функција, као и код релација, успоставља се веза
између елемената два скупа, али док код релација једном елементу
скупа A могу одговарати више елемената скупа B , код функција
једном елементу скупа A може одговарати смо један елеменат скупа
B.

Пут од фиксних величина ка променљивој, као апстракцији вишег


степена, везан је за период од 13. до 16. века. Декартова метода
координата омогућила је дефинисање функционалне зависности и
даљи развој математике. Тек у 19. веку немачки математичар L.
Dirichlet (1805-1859) направио је одлучијући корак у уопштавању
појма функције, прекинувши традиционална схватања којим се појам
функције изједначавао са појмом аналитичког израза и даје
дефиницију коју ми данас модификовано користимо. Модерна теорија
скупова отишла је још даље и ослободила појам функције ограничења
везаних за домен и кодомен.

48
 Нека су A и B произвољни скупови. Пресликавање или функција
f : A  B представља закон кореспонденције помоћу кога се
произвољном елементу x  A додељује неки елемент y  B такав де
је y  f  x  .

 Елемент x  A назива се оригинал, а y  B његова слика.

 Скуп Dx  A оних елемената из A којима су кореспондирани


елементи скупа B назива се област дефинисаности или домен
функције.
 Скуп Dy  B оних елемената из B којима су кореспондирани
елементи скупа B назива се област вредности или кодомен Dy
функције.

 За функцију f : A  B кажемо да је једнозначна ако се било којем


елементу из скупа A кореспондира највише један елемент из скупа
yB.

 Функција f : A  B се назива пресликавање “ 1  1 ” или


инјективном ако
 x1 , x2  A   x1  x2  f  x1   f  x2   .
 Функција f : A  B се назива пресликавање “на” или
сурјективним ако
 y  B , x  A   y  f  x   .
 Ако је пресликавање f : A  B “ 1  1 ” и “на” такво пресликавање
или функцију називамо бијективним, (обострано једнозначно
пресликавање).

Пример:
f  x   3x  2 , A  B  , јесте бијекција.
2
f  x   3x  2 , A  , B   2,   , није “ 1  1 ”, а јесте “на”, није
бијекција.

49
5.1. НАЧИНИ ЗАДАВАЊА ФУНКЦИЈА

 Задавање функције аналитичким изразом.


Аналитички израз може бити експлицитног облика y  f  x  , или
имплицитног облика F  x, y   0 .
 Таблични начин задавања функције.
 Задавање функције њеним графиком.
 Задавање функције помоћу параметара.

Пример: Код функција на коначним скуповима користимо следеће


записе
Ако су дати скупови A  a, b, c и B  1, 2 онда једна функција је
a b c
f   или записана коришењем уређених парова
 1 2 1
f   a,1 ,  b, 2  ,  c,1 .

Релација   f   b,1 није функција, јер би се елемент b


пресликавао у два различита елемента 1 и 2.

Дефиниција:
Песликавање f : A2  A , називамо бинарном операцијом.

Познате бинарне операције су сабирање, одузимање, множење и сл.

Напомена: Представљање функције графиком или табелом углавном


се користи у применама математике.

50
5.2. РЕАЛНЕ ФУНКЦИЈЕ ЈЕДНЕ
ПРОМЕНЉИВЕ

 Под реалном функцијом подразумева се свако пресликавање


f : Dx  , тј. за свако x  Dx постоји једна и само једна реална
вредност функције f  x  .

5.3. ИНВЕРЗНА ФУНКЦИЈА

 Нека је f : A  B бијективно пресликавање (“ 1  1 ” и “на”), тада


постоји јединствена функција f 1 : B  A коју називамо инверзно
пресликавање или инверзна функција таква да је
f 1  f  x    x .

 За дату функцију f : A  B може да постоји само једна инверзна


функција f 1 : B  A .

Пример: Одредити инверзну функцију функције f  x   2 x  1 .

Прво треба доказати да је пресликавање бијекција.


Ако је испуњено  x1 , x2    x1  x2  f  x1   f  x2   пресликавање
је “ 1  1 ”. Изрази који у себи садрже неједнакости се тешко доказују и
једноставније је користити контрапозицију предходног израза која
гласи f  x1   f  x2   x1  x2 . Дакле 2 x1  1  2 x2  1  x1  x2 , чиме
смо доказали да је пресликавање “ 1  1 ”.
Да бисмо доказали да је прескикавање “на” решимо полазну једначину
1 1  1 1
по y . Добићемо израз x  y  . Онда  y  , x    x  y  
2 2  2 2
и закључујемо да је пресликавање “на”.
Пошто је пресликавање “ 1  1 ” и “на”, односно бијекција, постоји
инверзно пресликавање f 1 .
1 1
Заменом вредности x и y у изразу x  y  добијамо
2 2
1 1
f 1  x   y  x  .
2 2
Графици функција f и f 1 су симетрични у односу на праву y  x .

51
Пример:Одредити инверзну функцију функције f  x   x 2 .
Пошто је пресликавање f  x   x 2 f:   није “ 1  1 ” односно
бијекција, не постоји инверзно пресликавање f 1 .

5.4. СЛАГАЊЕ ФУНКЦИЈА

 Композицијом две функције f : A  B и g : B  C назива се


функција g  f : A  C , за коју важи:

 x  A  g  f  x   g  f  x   .
Функција g  f назива се сложена функција.
Пример:
Дате су функције f  x   x  3 и g  x   2 x  x . Одредити f  g , g  f
и ff .
f  g  x   f  g  x   2x  3  x .
g  f  x   g  f  x   2x  6  x  3 .
f  f  x   f  f  x   x  6 .

52
Пример:
Ако су дати скупови A  1, 2,3 , B  a, b, c и C  5,6, 7 , а
1 2 3 a b c
f : A  B и g : B  C ,где је f    и g  .
a b c  7 6 5
1 2 3
Тада је g  f : A  C и g  f   .
7 6 5 

Пример:
Нека су функције задате формулама f  x   2 x  1 и g  x   x 2  x  1 .
Тада је:
2
g  f  x   g  f  x     2 x  1   2 x  1  1  4 x 2  6 x  3,
f  g  x   f  g  x    2  x 2  x  1  1  2 x 2  2 x  2,
2
g  g  x   g 2  x    x 2  x  1   x 2  x  1  1  x 4  2 x3  4 x 2  3x  3,
f  f  x   f  x   2  2 x  1  1  4 x  3.

ПИТАЊА И ЗАДАЦИ ЗА ПРОВ ЕРУ ЗНАЊА

1. Појам функције.
2. Инверзна функција.
3. Слагање пресликавања.
4. Нека су функције задате формулама f  x   2 x  1 и g  x   3 x 2 .
Наћи f  g  x  , g  f  x  , f  f  x  и g  g  x  .

КЉУЧНE РЕЧИ

Функција
Домен
Кодомен
Инјекција (пресликавање „1-1“)
Сурјекција (пресликавање „на“)
Бијекција (пресликавање „1-1“ и „на“)
Инверзна функција
Слагање функција
Сложена функција

53
6. ОСНОВЕ
КОМБИНАТОРИКЕ

ЦИЉЕВИ УЧЕЊА
Када ово поглавље савладате требало би да знате:

1. технике пребројавања,
2. појам пермутација са и без понављања,
3. појам варијација са и без понављања,
4. појам комбинација са и без понављања.

6.1. ПРИНЦИПИ ПРЕБРОЈАВАЊА

Предмет комбинаторике је распоређивање елемената у коначним


скуповима и одређивање броја таквих распореда. Проучавање ове
области почело је у 17. веку, упоредо са настанком теорије
вероватноће, када су се прва питања из ове области појавила у вези са
играма на срећу.

Пребројавања представљају важан део комбинаторике.


Различите скупове морамо пребројавати у циљу решавања
најразличитијих проблема. Некада су то проблеми одређивања
троцифрених бројева формираних од задатих цифара, или број
различитих телефонских бројева, до одређивања сложености
алгоритама или утврђивања вероватноћа случајних догађаја.

Пример:
Дат је скуп 1, 2,3 . Колико има троцифрених бројева који почињу
цифром 2?
Са задатим цифрама можемо да формирама само 2 броја који почињу
цифром 2, а то су 213 и 231 .

Пребројавања да се врше у коначним или пребројивим скуповима и


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

54
Разликујемо три врсте различитих распореда и то су:

 пермутације,
 варијације,
 комбинације.

6.2. ПЕРМУТАЦИЈЕ БЕЗ ПОНАВЉАЊА

Нека је дат скуп A  a1 , a2 , , an  .


Пермутација је било који распоред свих n елемената скупа A .

Пермутације без понављања елемената се могу дефинисати и као


број свих бијективних пресликавања скупа A у самог себе.

Пример:
 1 2 3 4 5
Једна пермутација скупа A  1, 2,3, 4,5 , је  .
 2 5 4 3 1

Број пермутација скупа од n елемената износи

P  n   n  n  1   2 1  n !

Симбол n ! је скраћеница за записивање узастопног производа од n


елемената и чита се n факторијел.

По дефиницији се узима да је 0!  1 .

Пример:
5!  5  4  3  2 1 =120.

Пример:
Дат је скуп A  a1 , a2  . Колико има пермутација елемената овога
скупа, а да се елементи не понављају?

Има их две.
То су: a1a2 и a2 a1 .
P  2   2  P 1  2 1  2 .

55
Пример:
Дат је скуп A  a1 , a2 , a3  . Колико има пермутација елемената
овога скупа, а да се елементи не понављају?

Има их шест.
То су: a1a2 a3 a1a3a2 a2 a1a3 a2 a3a1 a3 a1a2 и a3 a2 a1 .
P  3  3  P  2   3  2!  3  2 1  6

Пример:
Дат је скуп A  a1 , a2 , a3 , a4  . Колико има пермутација елемената
овога скупа , а да се елементи не понављају ?

Има их 24 . То су:
a1a2 a3a 4 a2 a1a3a4 a3a1a2 a4 a4 a1a2 a3
a1a2 a 4 a3 a2 a1a4 a3 a3a1a4 a2 a4 a1a3a2
a1a3a2 a 4 a2 a3 a1a4 a3a2 a1a4 a4 a2 a1a3
.
a1a3a 4 a2 a2 a3 a4 a1 a3a2 a4 a1 a4 a2 a3a1
a1a4 a2 a3 a2 a4 a1a3 a3a4 a1a2 a4 a3 a1a2
a1a4 a3a2 a2 a4 a3a1 a3a4 a2 a1 a4 a3 a2 a1
P  4   4  P  3  4  3!  4  6  24 .

Пример:
На колико начина се могу распоредити 6 различитих књига на
полицу? P  6   6!  6  5  4  3  2 1  720 .

Пример:
Пчела треба да скупи полен са 7 различитих цветова. Када узме
полен са цвета она се на њега више не враћа. На колико начина
пчела може да обиђе свих 7 цветова?
P  7   7!  7  6  5  4  3  2 1  5040 .

Пермутације се често појављују у дефинисању појмова. На пример,


образац за израчунавање детерминанти, користе се код алгоритама
за сортирање, распоред карата у шпилу, у математичкој естетици и
слично.

56
6.3. ПЕРМУТАЦИЈЕ СА ПОНАВЉАЊЕМ

Нека је дат скуп A  a1 , a2 , , an  . Број пермутација са


понављањем, скупа од n елемената, међу којима има k1 , k2 ,  , km
једнаких износи
 n  n  k1   n  k1  k2   km  n!
Pk1 ,k2 ,, km  n         .
 k1  k2   k3   km  k1 !k2 ! km !

Пример:
Написати све пермутације елемената a, b, b .

Све пермутације елемената a, b, b су abb, bab, bba .

Пример:
Одредити број пермутација елемената 0, 0, 0,1,1,1,1 .

 7  7  3  7! 7  6  5  4!
Број пермутација је P3,4  7        35 .
 3  4  3!4! 3!4!

6.4. ВАРИЈАЦИЈЕ БЕЗ ПОНАВЉАЊА

Дефиниција: Нека је дат скуп A  a1 , a2 , , an  . Варијација


класе од k елемената је било која k -торка различитих елемената
скупа A .

Број варијација износи

k 1
Vkn    n  i   n  n  1    n  k  1 .
i 0

Варијације без понављања елемената се могу дефинисати и као број


свих инјективних пресликавања скупа A од n елемената у скуп
B од k елемената,

57
f :AB.
Напомена:
У савременој литератури све се мање користи назив варијације, већ
назив к-пермутације.

Пример:
Дат је скуп A  a1 , a2 , a3  . Колико има варијација друге класе
елемената овога скупа и како гласе?

Има их шест.
То су: a1a2 , a1a3 , a2 a1 , a2 a3 , a3a1 , a3a2 .
V23  3  2  6 .

Пример:

На конкурс у фирму јавило се 6 кандидата за радна места


директора, секретара и портира. На колико начина их је могуће
изабрати?
Вршимо избор 3 од 6 кандидата. Како је распоред (функција) битан,
у питању су варијације треће класе од 6 елемената.
V36  6  5  4  120 .

6.5. ВАРИЈАЦИЈЕ СА ПОНАВЉАЊЕМ

Нека је дат скуп A  a1 , a2 , , an  . Варијација са понављањем


класе од n елемената је било која k -торка елемената скупа A .

Број варијација износи


Vkn  n k
Напомена: Ако је класа једнака броју елемената задатог скупа,
варијације се своде на пермутације.

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


број свих пресликавања скупа А од n  1 елемената у скуп Б од
k  0 елемената,

f :AB.

58
Пример:
Колико има двоцифтрних бројева који се могу написати са цифрама
1, 2,3 и како гласе?

Има их V23  32  9 .
То су: 11,12,13, 21, 22, 23, 31,32, 33 .

6.6. КОМБИНАЦИЈЕ БЕЗ ПОНАВЉАЊА

Нека је дат скуп A  a1 , a2 , , an  . Комбијација класе од k


елемената је било која k -торка различитих елемената скупа A .

Број комбинација износи

n Vkn  n  n  n  1  n  k  1
C 
k  
k! k  k!
n
Израз   чита се n над k .
k 
n
  је број свих поскупова датог скупа A који имају k елемената.
k 

Пример:
Дат је скуп A  a1 , a2 , a3  . Колико има комбинација друге класе
елемената овога скупа и како гласе?
3  3 2
Има их C23      3.
 2  2!
То су: a1a2 a1a3 a2 a3 .

Напомена: Основна разлика између пермутација, варијација и


комбинација је у томе што код пермутација користимо и
распоређујемо све елементе задатог скупа, док код варијација и
комбибација користимо подскупове задатог скупа. Са друге стране,
разлика између варијација и комбинација је у томе што је код
варијација је битно место елемента у распореду, а код комбинација
није.

59
Пример:
Колико има троцифрених бројева који се могу написати користећи
цифре 1, 2,3 ?

Како је у броју битан распоред цифара, ово су варијације.


Има их V23  3  2  6 .

Пример:
Колико има правих које се могу конструисати кроз неколинеарне
тачке A, B, C ?

Како сада није битан распоред тачака на правој, ово су


комбинације.
 3 3 2 3 2
Има их C23       3.
 2  2! 2 1
То су праве AB , AC и BC .

6.7. КОМБИНАЦИЈЕ СА ПОНАВЉАЊЕМ

Нека је дат скуп A  a1 , a2 , , an  .


Комбијација класе од k елемената са понављањем је

 n  k  1
Ckn   .
 k 

Пример:
На колико начина се 12 истих лопти може распоредити у 6
различитих кутија.

 6  12  1
Има их C612     6188 .
 12 

60
ПИТАЊА И ЗАДАЦИ ЗА ПРОВ ЕРУ ЗНАЊА

1. Дефинисати пермутације са и без понављања.


2. Дефинисати варијације са и без понављања.
3. Дефинисати комбинације са и без понављања.
4. На колико начина могу да седну 5 особа на пет столица?
Решење:
P  5   5!  5  4  3  2 1  120 .

5. Колико различитих петоцифрених бројева се могу написати


помоћу цифара 0,1, 2,3, 4 , а да се цифре не понављају ?

Решење:
P  5   P  4   5! 4!  120  24  96 .

6. Дат је скуп A  1, 2,3, 4,5, 6 .


а) Колико шестоцифрених бројева почиње цифрама 1, 2 у датом
поретку ?
б) Колико шестоцифрених бројева почиње цифрама 1, 2 у
произвољном поретку ?
в) У колико шестоцифрених бројева цифре 1, 2 стоје једна поред
друге у датом поретку?
г) У колико шестоцифрених бројева цифре 1, 2 стоје једна поред
друге у произвољном поретку?

Решење:
а) P  4   4!  24 ,
б) 2  P  4   2  4!  48 ,
в) P  5   5!  120 ,
г) 2  P  5   2  5!  240 .

7. Формирати све пермутације од елемената a, b, b, c и одредити


њихов број.

Решење:
abbc , abcb , acbb , babc , bbac , bbca , bcba , bacb , bcab , cabb ,
cbab , cabb .

61
4! 24
P2  4     12 .
2! 2

8. Колико пермутација од елемената a, a, a, a, a, b, b, b, c почиње


а) са a ,
б) са b ,
в) са c ?

Решење:
8!
а) P4,3  8    280 ,
4! 3!
8!
б) P5,2  8    186 ,
5! 2!
8!
в) P5,3  8    56 .
5! 3!

9. Колико има двоцифтрних бројева који се могу написати са


цифрама 1, 2,3 ?
Решење:

Има их V23  32  9 .
То су: 11,12,13, 21, 22, 23, 31,32, 33 .

10. Дат је скуп A  1, 2,3, 4 .


а) Формирати све двоцифрене бројеве од елемента овог скупа, код
који се цифре не понављају и одредити њихов број.
б) Формирати све двоцифрене бројеве од елемента овог скупа и
одредити њихов број.

Решење:
а) 12,13,14, 21, 23, 24,31,32,34, 41, 42, 43 .
V24  4  3  12
б) 11,12,13,14, 21, 22, 23, 24,31,32, 33,34, 41, 42, 43, 44
V24  4 2  16 .

11. На колико се начина могу изабрати четири особе на четири


различите дужности, од девет пријављених кандидата?

62
Решење:
V49  9  8  7  6  3024 .

12. У кампањи за изборе председнички кандидат мора да обиђе 7 од


15 градова у Србији. Да би постигао што бољи резултат он кампању
мора да заврши у Београду. На колико различитих начина он то
моше учинити?
Решење:
V614  14 13 12 11 10  9  2162160 .

13. Колико се различитих четвороцифрених бројева може


формирати од десет различитих цифара?

Решење:
а) Ако се цифре у броју не понављају, бројева има
V410  V39  10  9  8  7  6  9  8  7  5040  504  4536 .

б) Ако се цифре у броју понављају, бројева има


V410  V310  104  103  9000

14. Колико се различитих петоцифрених бројева може формирати


од цифара 0,1,3,5, 7, 9 , ако се нула не налази ни на првом ни на
последњем месту и ако се цифре не понављају ?

Решење:
2  V45  480 .

15. На тикету спортске прогнозе има 12 сусрета. Колико


попуњених колона обезбеђује 12 тачних погодака?

Решење:
V123  312  531441 .

16. Да ли се међу бројевима 1, 2,  ,1010 , има више оних који садрже


цифру 9 или оних који је не садрже?

Решење:

63
Ако број не садржи цифру 9, онда све његове цифре припадају
скупу 1, 2,  ,8 .
Оваквих бројева има 910  1  1  3486 784 401 .
Одузимамо број састављен од свих нула, а додајемо 1010 .
Бројева који садрже цифру 9 има
1010  910  6513215599 , односно много више.

17. На једном шаховском турниру учествује 15 шахиста. Сваки


треба да одигра партију са сваким. Колико ће партија бити
одиграно?

Решење:
15  15 14
C215      105 .
2  2 1

18. Колико дијагонала има конвексни петоугао?

Решење:
5 54
C25      10 .
 2  2 1

19. Скуп од 40 особа треба да изабере председника , секретара и 3


члана председништва. На колико начина је могуће начинити овај
избор?

Решење:
V240C338  13160160 .

17. Колико решења има једначина x1  x2    xk  n , где су


x1 , x2 ,  , xk , ненегативни цели бројеви.

Решење:
Нека је дат скуп 1, 2,  , k  . Ако xi означава колико је пута изабран
елемент и из датог скупа, онда је свако решење  x1 , x2 , , xk  горње
једначине представља једну комбинацију са понављањем скупа од
k елемената са n понављања.

64
 k  n  1
 .
 n 
18. Колико у граду има телефона са петоцифреним бројевима:
а) ако су све цифре различите,
б) ако се цифре понављају.

Решење: V510 , V510 .

19. На школској забави налази се 22 девојака и 15 младића. На


акојико начина је могуће од њих изабрати 4 пара за плес?

Решење: C412  C415 .

20. На колико начина се секу 18 правих, од којих су 5 паралелне, 6


се секу у једној тачки, а 4 у другој.

Решење: C218  C25   C26  1   C24  1  124 .

21. Кошаркашки тим сачињавају 5 бекова, 4 центра и 3 крила. На


колико начина се може саставити петорка ако у њој морају да
играју бар 2 бека и бар један центар?

Решење: C25C24C13  C25C34  C25C14C23  C35C14C13  C35C24  C45C14  540 .

22. На једном шаховском тутниру одиграно је 210 партија.


Одредити број учесника, ако се зна да је сваки учесник
одиграо партију са сваким?
Решење: 21 .
23. Дате су цифре 0, 0, 0, 0,1,1,1 . Колико има пермутација од ових
елемената?
Решење:
7!
P4,3  7    35 .
4!3!
24. Која је по реду пермутација 0101010 од основне 0000111 .
Решење:
6!
Са 0 почиње првих  20 , и тражена пермутација је међу њима.
3!3!

65
5!
Са 01 почиње првих  10 ,
3!2!
5!
Са 010 почиње такође првих  10 ,
3!2!
3!
Са 0101 почиње наредних  3 , а и са 01010 .
2!
Значи 14-та пермутација гласи 0101001, 15-та гласи 0101010.
25. Како гласи 15-та пермутација од основне 0000111 ?
Решење:
6!
14 :  14 : 20 , није дељиво, дакле прва цифра је 0.
3!3!
5!
14 :  14 :10  1 4  , дакле прескочити нулу и следећа цифра је
2!3!
1.
4!
4:  4 : 6 , није дељиво, дакле наредна цифра је 0.
2!2!
3!
4 :  4 : 3  11 , дакле прескочити нулу и следећа цифра је 1.
2!
1: 2! , није дељиво, дакле наредна цифра је 0.
1:1  1 0  , дакле прескочити нулу и следећа цифра је 1.

15-та гласи 0101010.

26. Која је по реду пермутација ТАБЛА од основне ААБЛТ.


Решење: 50.

КЉУЧНE РЕЧИ
Пребројавање
Факторијел
Пермутације
Варијације
Комбинације

66
7. БИНОМНА ФОРМУЛА
ЦИЉЕВИ УЧЕЊА
Када ово поглавље савладате требало би да знате:

1. дефиницију биномног коефицијента,


2. особине биномних коефицијената,
3. биномну формулу.

 n
Израз   се назива биномни коефицијент и дефинише као:
k 
 n  n  n  1 n  2     n  k  1 n!  n 
    .
k  k! k ! n  k  !  n  k 

 n   n   n  1  n   n 
      и       1.
 k  1  k   k   0   n 

Биномна формула:

n n n  n  n1 n n


 n  n k k
 a n    a n 1b    a n 2b 2    
 a  b  ab  b    a b
1  2  n  1 k 0  k 

n,k .

n
Општи члан биномног развоја је облика Tk 1    a n k bk .
k

Пример:
6
 1
Развити по биномној формули  x   .
 x

67
6
 1 6 6 4 6 2 6 6 1 6 1 1
 x    x   1 x   2 x   3   4 2   5 4  6
 x        x  x x
15 6 1
 x 6  6 x 4  15 x 2  20  2  4  6 .
x x x

Пример:
12
 12 2

Одредити пети члан у развијеном облику бинома  x  x 3  .
 
12  4 4
12   12   23  20
T5      x     x   495 x 3 .
4    

Пример:
 n  n  n  n
Доказати               2n .
 0 1  2  n

Ако у биномној формули ставимо да је a  1 и b  1 добићемо


тражену везу.

Пример:
 n  n  n  n  n
Доказати                  
 0  2  4  1  3
Ако у биномној формули ставимо да је a  1 и b  1 добићемо
тражену везу.

ПИТАЊА И ЗАДАЦИ ЗА ПРОВ ЕРУ ЗНАЊА

n
1. Колико је   ?
0
n
2. Колико је   ?
n
3. Одредити члан који у развијеном облику бинома не садржи x .

2 12
x  x  .

Решење:

68
12  k 12   12 
 
Tk 1     x12 k  x 2     x12 k  x 2 k     x123k
k k k
12  3k  0  k  4

Тражени члан је
 12  12 1110  9
T41  T5     x 0   495
4 1 2  3  4

11
 1 1

4. Одредити члан који у развијеном облику бинома  x 3  x 2 
 
има x на пети степен.

Решење:
11 k k
11  1   1  11 11k k  11 22 k
Tk 1     x 3    x 2      x 3  x 2     x 6
 k     k k
22  k
 5  k  8.
6
значи тражени члан је девети, тј
 11 11  1110  9 5
T9  T81     x 5     x5   x  165  x 5 .
8
  3
  3  2 1

5. Одредити тринаести члан у развијеном облику бинома


n
 1 
 9x   , ако је биномни коефицијент трећег члана 105.
 3x 

Решење:
Биномни коефицијент трећег члана износи
n n  n  1
 2   105   105  n 2  n  210  0  n  15 , n  14 . Како
  1  2
n мора да буде позитиван број узимамо само да је n  15 .
15
 1 
Тражени бином гласи  9 x  , а члан
 3x 

69
12
 15  3  1   15  3 3 1  15  1 455
T13  T121      9 x      9 x  6 6    3  3
12   3x   15  12  3 x 3 x x

6. Збир коефицијената првог, другог и трећег члана бинома


n
 2 1
 x   је 46. Одредити члан који не садржи x .
 x

Решење:
 n  n  n n  n  1
 0    1    1   46  1  n   46  n  9 .
      2
9
 1
Бином гласи  x 2   .
 x
k
9 9 k  1  9 1 9
 
Tk 1     x 2       x18 2 k k     x183k
k  x  k  x k 
18  3k  0  k  6
9  9 987
Тражени члан је T61  T7         84 .
 6   3  1 2  3

5. Колико елемената има партитивни скуп скупа од н елемената?

Решење:
 n
Скуп од н елемената има   подскупова од k елемената. Зато је
k 
укупан број подскупова једнак броју
n n n
      n n
  n
              2 .
k 0  k  0 1 n
Решење 2:

Нека је A   x1 , x2 ,  , xn  и B  A . Подскупу B придружимо


n -торку b1 , b2 ,  , bn  , где за i  1, 2, , n важи bi  1 ако је xi  B и
bi  0 ако је xi  B . Подскупови скупа A су у обострано
једнозначној вези са скупом n -торки описаног облика.
Ове n - торке су варијације са понављањем класе n скупа 0,1 .
Стога је тражени број 2n .

70
6. Ако су X и Y коначни скупови, колико има свих пресликавања
из X у Y?

Решење:

Нека је X   x1 , x2 ,  , xm  и Y  n . Функција f : X  Y је
одређена m -торком  f  x  , f  x  , , f  x   .
1 2 m Како је
f  xi   Y  i  1, 2, , m  , тада је број ових m -торком је n m .

7. Колико се бинарних релација може дефинисати у скупу од n


елемената?

Решење:
Како је бинарна релација у скупу X по дефиницији сваки
подскуп Декартовог производа X 2 и како је X 2  n 2 , број
2
бинарних релација износи 2n .

x
 1 
8. Одредити x у изразу  3 2  3  , ако је однос седмог члана од
 3
почетка, према седмом члану од краја 1:6.

Решење: x  9

n
 1 
9. Дат је бином  2 x   , одредити н тако да је збир
x1
 2 
биномних коефицијената последња три члана 22. Одредити ону
вредност x за коју је збир трећег и петог члана датог бинома
135.

Решење: n  16, x  1  x  2 .

10. Одредити све рационалне чланоце у развијеном облику бинома


10
 2 3  .

Решење: 32, 2160,15120, 22860, 7292, 243 .

71
11. Коефицијенти четвртог и шестог члана у развијеном облику
n
1 
бинома   x  односе се као 5:18. одредити члан који не
x 
зависи од x.

Решење: n  12, k  8, T9  495 .

КЉУЧНЕ РЕЧИ
Биномни коефицијенти
Биномна формула
Општи члан биномне формуле

72
8. ТЕОРИЈА ГРАФОВА
ЦИЉЕВИ УЧЕЊА
Када проучите ово поглавље требало би да знате:

1. дефиницију графа,
2. различите врсте графова,
3. дефиницију подграфа.

До сада смо користили графове за представљање релација. Међутим,


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

Графови су посебно занимљиви јер помоћу њих можемо моделовати


сложене проблеме веома једноставно, као што је постављање
саобраћајница, постављање електричних мрежа, рачунарских мрежа и
сл.

Најразличитије дискретне структуре које се појављују у рачунарству


погодно се описују графовима.

73
Prvi problem i njegovo rešenje, teorije grafova jeste rad Leonarda Ojlera
(Leonhard Paul Euler,1707-1783) pod nazivom Sedam mostova
Kenigsberga, objavljen 1736 godine. Kasnije, Frensis Gutri 1852. godine je
izložio problem četiri boje koji postavlja pitanje da li je moguće obojiti
zemlje na geografskoj karti sa samo četiri boje, a da se ne pojave dve
susedne zemlje obojene istom bojom. Ovaj problem su rešili tek 1976.
godine Kenet Apel i Volfgang Heken, ali se postavljanje ovog problema
smatra rođenjem teorije grafova. Tokom pokušaja rešavanja ovog problema
otkrivene su mnoge teoreme i postavljeni mnogi teoretski pojmovi i
koncepti.

8.1. ОСНОВНИ ПОЈМОВИ

Граф је апстрактни математички објекат.

Неформално говорећи, графови су састављени од тачака, односно


чворова (врхова) и линија међу њима, односно грана.

Скуп чворова убудуће ћемо обележавати са V, а скуп грана са Е.

Граф је задат ако су позната два скупа, скуп чворова V и скуп грана Е.

74
Дефиниција:

Граф G  V , E  је уређени пар који се састоји од скупа чворова V и


V 
скупа грана E    .
 2

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


података.

Пример

Структура једне веб презентације се може представити сликовито


употребом графа. Чворови тог графа су поједине странице, а гране
графа су везе којима се може са једне странице прелазити на другу.

Чворови могу бити градови, а гране путеви између њих.

Чворови могу бити рачунари, а начини комуникација између њих


гране.

Пример:

a) Дат је скуп V  a, b и E  a, b .


b) Дат је скуп V  a, b, c и E  a, b , b, c .
c) Дат је скуп V  a, b, c, d  и E  a, b , b, c , a, d  , c, d  .

75
Графови су релационе структуре. Међутим једноставније их је
представити цртежима.

Пример:

Граф са слике може да се напиже као релација:

G  a, b, c, d  , a, b , a, c , b, c , c, d  .

 Две гране су суседне ако имају исти чвор.


 Чворови једне гране називају се крајеви.
 Грана која спаја чвор са самим собом назива се петљом.
 Граф који нема ниједну петљу називају се простим графом.
 Неоријентисани граф G  V , E  је уређем скуп парова чворова и
V 
грана где је E     V . Значи он може имати и петље.
2

76
Напомена: Прост граф је уствари непријентисани пут без петљи.

 Оријентисани граф или диграф G  V , E  је уређем скуп парова


чворова и грана где је E  V  V . Значи он има оријентацију, грана
v   a, b  има почетни чвор у а и крајњи у b .

Пример:
Диграф који садржи скуп V  a, b, c, d  и скуп
E   a, b  ,  a, c  ,  b, c  ,  b, d  ,  c, d  ,  d , a 

Пример:
Диграф који садржи скуп V  a, b, c, d  и скуп
E   a, a  ,  a, b  ,  b, c  ,  c, c  ,  b, d  ,  d , b  ,  c, d  ,  d , a 

77
 Мултиграф је граф код кога између два чвора а и б постоји више
од једне гране, које полазе из а, и завршавају у б.
 Комплетан или потпун граф је онај граф код кога су свака два
чвора повезана граном.

 Пут је низ грана које су међусобно повезане.

 Елементарни пут је пут који кроз сваки чвор графа пролази


највише једанпут.

 Циклус је граф који се добија од пута, додавањем гране која спаја


крајеве пута. Циклус се често назива и контуром.

78
 Празан граф је граф са чворовима који не садржи ни једну грану.
 Степен графа је број грана графа који имају крај у једном чвору.
Чвор степена 1 назива се изоловани чвор или лист.

Пример

У графу на слици чворови а и c су суседни, као и гране ab, аd и аc.

Чворови а и f нису суседни, као ни гране аc и bf.

Чворови b,c,d су степена 2, а чворови а и f степена 3.

79
 Граф је регуларан ако су сви чворови истог степена.

Пример.

Регуларан граф (сви чворови су степена 2).

Теорема:

Сума степена у свих чворова, у неоријентисаном графу, увек је паран


број.

Доказ: Ако су d1 , d 2 , , d n степени чворова x1 , x2 , , xn у графу која


има н грана. Ако саберемо све степене чворова добијамо двоструки
број грана., јер свака грана има као крајње тачке 2 чвора. Дакле
d1  d 2    d n  2m .

Теорема 2:

Број чворова непарног степена у произвољном графу без петљи, је


паран.

80
Последња теорема зове се у литератури и Лема о руковању.

У сваком друштву број особа које су се руковале непаран број пута је


паран. Овде број особа које су се руковале представљају чворове
графа.

 Граф који има коначан број чворова се зове коначан граф.


Аналогно, граф са бесконачним бројем чворова се зове бесконачан
граф.
 Граф G'=(V',Е') је подграф графа G=(V, Е) ако је скуп његових
чворова (V') подскуп скупа чворова графа G (V), а скуп његових
грана (Е') је подскуп скупа грана G (Е).

ПИТАЊА И ЗАДАЦИ ЗА ПРОВ ЕРУ ЗНАЊА

1. Шта су карактеристике графа?


2. Шта су бипаритивни, а шта комплетни бипартитивни графови.
3. Дефинисати степен чвора и став о вези између чворова и грана.

КЉУЧНЕ РЕЧИ

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

81
9. ПРЕДСТАВЉАЊЕ
ГРАФОВА ПОМОЋУ
РАЧУНАРА
ЦИЉЕВИ УЧЕЊА
Када ово поглавље савладате требало би да знате:

1. шта је шетња по графу,


2. шта је матрица суседства,
3. шта је матрица инциденције.

9.1. ШЕТЊЕ ПО ГРАФУ

Дефиниција:
Шетња W у графу G је низ W   v0 , e1 , v1 , e2 , , et , vt  , где су
v0 , v1 , , vt , чворови, а ei грана која спаја чворове vi 1vi , i  1, , t .
Дужина путање W је t . Уколико је v0  vt ради се о затвореној
шетњи.

Овако дефинисана шетња дозвољава понављање чворова и


грана. Она се може замислити као марш-рута опушреног шетача.
Ако забранимо понављање грана добијамо стазу, А ако не дозволимо
никакво понављање добијамо пут.

9.2. МАТРИЦА СУСЕДСТВА

Графови се могу употребити за моделирање и решавање многих


практичних проблема. Такве проблеме решавамо помоћу рачунара и
посебно писаних програма. За представљање графова преко рачунара
користе се матрице.

82
Матрица суседства је најчешћа матрична интерпретација
графова. Матрица суседства, је матрица која на позицији пресека i -те
врсте и j -те колоне садржи 1, ако је i - ти чвор спојен са j - тим
чвором, иначе је 0.

Дефиниција:
Матрица суседства графа G  V , E  је квадратна матрица V  V , за
коју важи
1, u , v  E ,
A
0, u , v  E.

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


симетрична у односу на главну дијагоналу.

Пример:
Графу на слици одговара матрица суседства

a b c d
a 0 1 1 1
b 1 0 1 0
 
c 1 1 0 1
 
d 1 0 1 0

Како ознаке чворова у већини случајева нису важне, матрице се


пишу без ознака.

83
0 1 1 1
1 0 1 0 
 .
1 1 0 1
 
1 0 1 0

Пример:
Усмереном (оријентисаном) графу са слике одговара матрица
суседства

a b c
a 0 1 1
b 1 1 1  .
c  0 0 0

Матрице суседства захтевју n2 ( n је број чворова) меморијских


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

Са друге стране оне могу да се користе и за графове, и


мултиграфове (диграфове). Тада, на позицију пресека i -те врсте и ј-те
колоне треба ставити број грана које спајају и-ти чвор са ј-тим чвором.
У случају да је граф неоријентисан скоро 50% мемориских јединица
можемо уштедети ако се памте само елементи испод или изнад главне
дијагонале, зато што је матрица симетрична.

Међутим како је једноставно написати програме у којима се


користе матрице ово је данас најзаступљенији начин за представљање.

84
9.3. МАТРИЦЕ ИНЦИДЕНЦИЈЕ

Дефиниција:
Када је e  u, v  E кажемо да су чворови u у и v инцидентни са
граном e .
Нека је G  V , E  граф. Нека је B матрица чије су врсте обележене
чворовима графа, а колоне гранама графа. Елемент bij , једнак је 1 ако
је i-ти чвор инцидентан
ј-тој грани, а једнак нули у противном. Матрица B се зове матрица
инциденције графа G.

Пример:
Графу на слици одговара матрица инциденције

e1 e 2 e3 e 4 e5
a 1 1 1 0 0
b 1 0 0 0 1
 .
c 0 0 1 1 1
 
d 0 1 0 1 0

Матрице инциденције когу се користити и код графова са петљама.

Пример:
Графу на слици одговара матрица инциденције

85
e1 e2 e3 e4 e5
a 1 1 1 0 0
b 1 0 0 0 0
 
c 0 0 1 1 0
 
d 0 0 0 1 1

Матрице суседства и инциденције имају особину да њихови степени


дају информацију о суседству чворова и шетњама произвољних
дужина.

Теорема:
Ако је А матрица графа G, k   0 , где су u, v , чворови, онда
елемент Auk,v једнак броју шетњи дужине k од u до v .

Шетња дужине 0 састоји се само од једног чвора.


1, u  v
w0  u , v    , A0  I  w0  u, v  .
0, u  v

Ово је један од начина да се одреди растојање између чворова.

Пример:
1 0 0 1 1 0 0 1
1 0 1 0  1 0 1 0 
Уочимо матрицу A  
2  .
0 0 0 1 0 0 0 1
   
1 1 1 0 1 1 1 0

86
Уочимо на пример да је
a12 2   a11  a12    a12  a22    a13  a32    a14  a42 
 1  0    0  0    0  0   1  1  0  0  0  1  1.
Како је a12 2  1 и пошто су a14  1, a42  1 , постоји грана од чвора 1 до
чвора 4 и на исти начин од чвора 4 до чвора 2. На основу тога постоји
пут дужине 2 од чвора 1 до чвора 2. Тада можемо закључити да ја
Aij 2  1 ако постоји пут дужине 2 од чвора и до чвора ј.
Али за
a34 2   a31  a14    a32  a24    a33  a34    a34  a44  
 0  1   0  0    0  1  1  0   0  0  0  0  0
И закључујемо да не постоји пут дужине 2 од чвора 3 до чвора 4.

ПИТАЊА И ЗАДАЦИ ЗА ПРОВ ЕРУ ЗНАЊА

1. Шта је матрица суседства?


2. Шта је матрица инциденције?
3. Која је разлика између матрице инциденције и матрице
суседства?
4. За дати граф

написати матрицу суседства.

КЉУЧНЕ РЕЧИ
Шетња по графу
Матрица суседства
Матрица инциденције

87
10. СТАБЛА
ЦИЉЕВИ УЧЕЊА
Када ово поглавље проучите требало би да знате:

1. дефиницију стабла,
2. дефиницију шуме,
3. дефиницију кореног стабла,
4. дефиницију усмереног стабла,
5. шта је Ојлеров граф,
6. шта је Хамилтонов граф.

Стабла или дрвета представљају најједноставнију, али и најважнију


класу графова.

Дефиниција:
Стабло T је коначан, непразан скуп елемената произвољног типа –
чворова такав да:
- постоји једнан посебан чвор који се назива корен (root),
- остали чворови се могу раздвојити у n  0 дисјунктиних подскупова
T1 , T2 , , Tn који су такође стабла. Ова стабла се називају подстаблима
корена.

Дефиниција:
Стабло или дрво је повезан граф који не садржи циклусе или контуре.

88
 Стабло је повезан граф са в чворова и е=v-1 грана.
 Стабло је граф са v чворова и е=v-1 грана и без контура.
 Стабло је минимално повезан граф.
 Стабло је максималан граф без контура.
 Стабло садржи бар два чвора степена 1.
 За сваки пар чворова у,в постоји тачно један пут који их повезује.

Дефиниција:
Шума је граф коме су компоненте стабла.

Пример:
Граф на следећој слици није стабло јер садржи циклус.

89
Породична стабла су је једна врста стабла. Организациона
структура фирме су такође врста стабала.

Дефиниција:
Усмерено стабло представља усмерени граф без петљи и чији је
носећи граф стабло, такво да ако постоји пут од чвора а до чвора б, а
тај пут је јединствен.

Чвор на врху стабла назива се кореном.

Дефиниција:
Стабло у коме је један чвор посебно означен назива се корено стабло.
Означени чвор назива се корен стабла.

Коренско стабло може да буде и оријентисано. Гране се


оријентишу од чворова мањих нивоа, ка чворовима виших нивоа.
Улазни степен корена је 0, док је улазни степен осталих чворова у
коренском стаблу једнак 1.

90
 Сваки чвор кореног стабла повезан је јединственим путем за корен
стабла. Број грана у овом путу представља ниво тог чвора. Корен
стабла има ниво 0, а највећи ниво имају од корена најудаљенији
чворови.

 Чворови до којих воде гране које полазе из чвора x, називају се


синови чвора x, а сам чвор x је њихов отац. Сви предходни
чворови у односу на x називају се преци, а наредни, потомци.

 Чвор без деце назива се лист. Листови су завршни чворови.


 Листови су чворови степена 1.
 Остали чворови се називају унутрашњим чворовима.
 Висина стабла је дужина најдужег могућег пута од корена до
листа.

 Ако је највећи излазни степен, било ког чвора стабла, једнак m ,


тада се то стабло назива m - арним стаблом. У посебном случају,
ако је m  2 , добијамо бинарно стабло.

91
 У бинарном стаблу сваки отац има тачно 2 сина и свако дете се
посматра као лево или десно дете.

 Ако су у бинарном стаблу завршни чворови сви истог нивоа,


бинарно стабло се назива потпуно.

 На нивоу к постоји тачно 2k чворова.

 Ако потпуно бинарно стабло има поред нивоа 0 још k нивоа, тада
је број чворова n у стаблу једнак
n  1  2  22    2 k  2k 1  1 .
n 1
 Број завршних чворова (листова) је 2k  , а осталих
2
n 1
2k  1  .
2

Пример:
Исказна формула   p  q    q  r      p  q  , може се представити
стаблом

92
Сваком појављивању исказног слова у формули одговара у стаблу
један чвор степена 1. осталим чворовима одговарају вредности које се
добијају применом подформуле.

10.1. БИНАРНА СТАБЛА ПРЕТРАГЕ

Бинарна стабла представљају одличну методу за уређивање


података, тако да се сваки податак може лако пронаћи или утврдити
шта недостаје.
Из тих разлога мора да постоји неко уређење, нумеричко или
алфабетско.

Пример:
Претпоставимо да желимо да поређамо следећа имена: Предраг, Ђорђе,
Синиша, Ана, Мартин, Рада, Амела, Уна, Зоран, Мирко.

Поћи ћемо од имена Предраг које ћемо поставити за корен стабла.


Пошто се име Ђорђе налази у низу после њега, а азбучно је испред
имена Предраг, он ће постати његово лево дете.

Следеће име је Синиша, које се налази иза имена Предраг, па ће зато


постати његово десно дете.

93
Следеће име Aна азбучно је испред имена Предраг и спуштамо се до
левог детета, Ђорђе, а како је азбучно испред имена Ђорђе, то је
његово лево дете.

Ако би овако наставили до краја добили бисмо стабло

94
ОЈЛЕРОВ ПУТ

Швајцарски математичар и физичар Леонард Паул Ојлер (1707.-


1783.) је 1735. године поставио и решио проблем Седам мостова
Кенигсберга.

Средином 1735. године је дошао у Пруску, тачније у град


Кенинсберг на реци Прегел. Постављено му је питање, од стране
становника, да ли се може прећи седам постојећих мостова на тој реци
не прелазећи ни један мост два или више пута. Показао је да се тај
проблем може представити цртањем затворене мреже у равни у једном
потезу не подижући оловку са папира. Свакој обали и острву је
придружио чворове графа, а мостови између њих су били гране. Тако
је добио један мултиграф.

95
Утврдио је да је то немогуће урадити. Тако је настала теорема која
гласи: Град поседује Ојлеров пут акко има два или ниједан чвор
непарног реда.

Ојлеров пут је пут у неусмереном графу који пролази сваком


граном графа тачно једном. Уколико у повезаном графу или
мултиграфу имамо два чвора непарног реда, тада у графу постоји
Ојлеров пут. У случају да немамо ниједан чвор непарног реда онда у
графу постоји Ојлеров циклус, односно Ојлеров пут је затворен.
Обиласком графа по Ојлеровом путу се кроз сваки чвор може проћи
више пута. Сваки пролаз кроз чвор захтева две путање, ону којом
долазимо и ону којом излазимо из чвора. Значи да степен свих чворова,
осим полазног и завршног, мора бити паран да би се сматрао
Ојлеровим путем.

Дефиниција:
Ојлерова контура мултиграфа G је затворена стаза која садржи све
гране из G. Мултиграф који има Ојлерову контуру се назива Ојлеров
мултиграф. Ојлеров пут у мултиграфу G је стаза која садржи све гране
из G. Мултиграф који садржи Ојлеров пут се назива полуојлеров
мултиграф.

26. августа 1735. је презентовао свој рад на проблему Седам


мостова Кенинсберга, Санг Петерсбургшкој академији наука
доказавши да је такав обилазак мостова немогућ уз напомену да се
његов метод може проширити на произвољан распоред мостова и
острва. У ствари, он је само формулисао потребне и довољне услове да
такав обилазак постоји, али није сматрао да је потребно да покаже
довољне услове у општем случају. Први потпуно конкретан доказ је
дао немац Хирхолцер.
96
Чланак о овом проблему је написао 1736. године па се та година
сматра зачетком теорије графова. Званично је први пут објављен 1741.
али је тада побудио мало интересовања међу осталим математичарима,
тако да су овај проблем и резултат остали мало познати до краја XИX
века. Тада су га енглески математичари Џорџ Лукас и Раус Бол
укључили у своје књиге о рекреативној математици.

Тражење Ојлеровог пута је касније нашло примену у још неким


решавањима проблема комбинаторне организације. Ојлерове контуре
су од великог интереса за организације које у великим градовима врше
неке услуге. На пример, организатори великих изложби морају да
одреде један Ојлеров пут у графу одређеном изложбеним простором и
стазама кроз њега, ако хоће да посетиоци виде све експонате и да
прелазе што мањи пут.

Тражење Ојлеровог пута среће се и у раду са ласерима, чији је


циљ да се оптимално користи ласер и самим тим појефтини
производња ласерских уређаја.

Као резултат Ојлерових решења појавили су се резултати везани


за формулу за полиедре, Кирхофова правила и још неки.

Исто тако је и Ојлерова контура погодна за решавање Проблем


кинеског поштара. Проблем је добио такво име јер га је први
разматрао кинески математичар Куан 1962.године.

Тим проблемом је постављено питање, како поштар да


најрационалније разнесе писма у свом реону ако кроз сваку улицу
прође само једанпут, с тим да ујутро узме писма из поште и крене и да
се на крају радног дана врати у пошту из које је пошао. То је могуће
само ако је одговарајући граф Ојлеров или се треба тражити оптимално
решење, тј. да поштар одабере марш-руту којом ће ходати што је мање
могуће.

97
Хамилтонов пут

Енглески математичар сер Вилијам Роуан Хамилтон


(1805-1856) је саставио занимљиву слагалицу која је корисила ивице
регуларног додекаедра. Према њему је контура која пролази кроз све
чворове графа тачно једном, тако да ни кроз једну грану не пролази
више од једанпут, добила име Хамилтонова контура.

Хамилтонов пут је пут у неусмереном графу који посећује или


пролази кроз сваки чвор тачно једном. То исто важи и за Хамилтонов
цикл. То је цикл у неусмереном графу који посећује или пролази кроз
сваки чвор тачно једном. Одређивање да ли у неком графу постоји
такав пут или циклус је проблем Хамилтоновог пута.

Дефиниција:
Хамилтонова контура графа G језатворен пут који садржи све чворове
из G. Граф који садржи Хамилтонову контуру назива се Хамилтонов
граф. Хамилтонов пут у графу G је пут који садржи све чворове из G.
Граф који садржи Хамилтонов пут назива се полухамилтонов граф.

И пре Хамилтона су се сличним проблемима из рекреативне


математике бавили разни математичари. Један од најпознатијих таквих
проблема је Проблем коњичког скока. Тим проблемом је постављено
питање да ли је могуће скакачем обићи сва поља шаховске табле, тако
да се свако поље обиђе тачно једанпут. О том проблему постоји
обимна литература. Испитивана је не само егзистенција решења на
шаховским таблама различитих димензија, него и начин конструкције
и број решења. Доказано је да Проблем коњичког скока има решења на
свим правоугаоним таблама димензија мxн за m,n  3, изузев табли 3x3,
3x5, 3x6 и 4x4.

98
Иако решење Хамилтонове слагалице и није много тешко
пронаћи, математичари су и дан данас заокупљени проблемима
везаним за Хамилтонове контуре, попут оних који траже потребне и
довољне услове да би граф поседовао Хамилтонову контуру или
Хамилтонов пут.

Постоји још један веома битан проблем са Хамилтоновом


контуром а то је Проблем трговачког путника. То је проблем у коме
у задатом тежинском графу треба одредити Хамилтомову контуру
најмање тежине, тј. ако је дат одређени број градова и цене путовања
од било ког града до било ког града, која је најјефтинија рута која
обилази сваки град тачно једном и враћа се у почетни град. За
решавање се користи метода гранања и олучивања, која се назива и
имплицитна енумерација. За разлику од експлицитне енумерације код
које користимо све могуће пермутације скупа чворова, овде простор
могућих решења делимо на мање делове (гранање) и то више пута при
чему се поједини делови простора решења одбацују на основу процене
вредности функције која се минимизира (ограничавање).

Како сам проблем тражења минималне Хамилтонове контуре


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

Решење овог проблема је од великог парктичног значаја, не


само у питњу саобраћаја, већ и у раду роботских машина које обрађују
матичне плоче рачунара, свемирским истраживањима итд. На пример,
сателит Росат, који је заједнички пројекат САД, Енглеске и Немачке, у
периоду од 1990. до 1998. обилазио је око планете Земље. Он је ноио
телескоп који је мерио количину X-зрачења које долази са звезда. Да
би уштедели и време и енергију коју троши телескоп прибегнуто је
комбинаторној оптимизацији за тражење Хамилтонове контуре кроз
неколико милиона звезда. Тим поступком је посао обављен за дупло
краће време.

Међу дефиницијама Ојлерових и Хамилтонових графова


постоји велика сличност али је потпуно другачија ситуација када је у
питању њихова карактеризација. Ојлерови графови су у потпуности
одређени Ојлеровом теоремом, док за Хамилтонове графове тако
нешто није познато. Један од највећих нерешених проблема Теорије
графова је да се одреди потребан и довољан услов да је граф
Хамилтонов. Ојлеров и Хамилтонов граф немају директну везу.

99
Дефиниција:
Ојлерови графови:
Затворена стаза која садржи све гране графа G назива се Ојлерова
контура или циклус.
Граф који има Ојлерову контуру зове се Ојлеров граф.
Ојлеров пут је стаза која садржи све гране из G.
(не мора да буде затворен).

Ојлеров пут пролаза тачно једанпут кроз сваку грану мултиграфа.

Теорема:
Граф G је Ојлеров акко је повезан и сви чворови су парног степена.

Граф на наредној слици није Ојлеров циклус јер нису сви чворови
парни.

Проблем Кенинсбершких мостова се не може свести на Ојлеров


циклус, јер одговарајући граф има степене чворова 5,333, па самим
тиме се закључује да је немогуће да се сваки мост пређе само једанпут,
а да се вратимо у почетну тачку.

100
Теорема:
Граф има Ојлеров пут ако и само ако је повезан и акко садржи 0 или 2
чвора непараног степена.

Граф на слици има прави Ојлеров пут пошто тачно два његова чвора
имају непаран степен.

Ојлерови путеви су важни за организацију послова у великом


граду, за разношење поште, наплате рачуна и слично. Поштар ће
најрационалније разнети пошту ако сваку улицу обиђе тачно једанпут.

Вилијем Хамилтон је 1859.године поставио проблем под


називом пут око света. Циљ је био обићи градове света И вратити се у
полазни. Игра је користила ивице додекаедра (20) за представљање
дозвољених путева између градова. Контура која пролази кроз све
чворове графа тачно једном (тако да се ни кроз једну грану не пролази
више од једампут) је Хамилтонова контура.

Дефиниција:
Хамилтонови графови:
Хамилтонова контура или циклус, графа Г јр затворен пут који
садржи све чворове пута. Граф који има Хамилтонову контуру зове се
Хамилтонов граф.
Хамилтонов пут у графу Г је пут који садржи све чворове из Г. Граф
који има Хамилтонов пут се зове полухамилтонов граф.

101
Хамилтонов пут у графу је пут који пролази кроз све чворове
тачно једанпут.

У дефиницији Ојлерових и Хамилтонових графова постоји


сличност. Међутим Ојлеров граф је у потпуности одређен Ојлеровом
теоремом, док за хамилтонове графове то није случај. Није решен
потребан и довољан услов Хамилтоновог графа.

ПИТАЊА И ЗАДАЦИ ЗА ВЕЖБУ

1. Шта је стабло?
2. Који од следећих графова представљају стабло?

1)

2)

3)

4)

102
Одговор: 1,2,4.(стабло 3 има циклус).

3. Колико грана има стабло са 5 чворова?


Одговор:
Ако су v чворови, а e гране , добијамо e  v  1  5  1  4 .

4. Колико чворова има стабло са 5 грана?


Одговор:
v  e 1  5 1  6 .

5. У случају 1 задатка 2 нацртати корено стабло и употребити чвор


v1 као корен.
Одговор:

Користећи добијено стабло;

6. Одредити потомке чвора v3 .


Одговор: v 4 , v5

7. Одредити претке чвора v1 .


Одговор: v1 , v1 .

8. Одредити родитеље чвора v1 .


Одговор: v1 .

9. Одредити децу чвора v1 в1.


Одговор: v0 , v 2 , v3 .

10. Одредити листове.


Одговор: v0 , v 2 , v 4 , v5 .

103
11. Одредити ниво чвора v3 .
Одговор:1

12. Одредити висину стабла.


Одговор:2

13. У случају 1 нацртати корено стабло и употребити чвор v3 као


корен.
14. Шта је бинарно стабло? (нацртати пример)
15. Шта је потпуно бинарно стабло? (нацртати пример)
16. Како гласи образац за израчунавање броја чворова потпуног
бинарног стабла?
17. Шта је лист?
18. Колико чворова има потпуно бинарно стабло са 4 нивоа?
Одговор:
n  20  21  22  23  24  25  1  31 .

19. Колико завршних чворова има потпуно бинарно стабло са 7


чворова?
Одговор:
n 1 7 1
2k   4.
2 2

20. Конструисати бинарно стабло које садржи имена дата поређана


у азбучном поретку: Ана, Вања, Душан, Миле, Жика, Младен,
Предраг.
21. Претражи да ли се име Драган налази у стаблу из предходног
задатка.
22. Конструисати бинарно стабло које садржи бројеве поређана у
нумеричком поретку: 25, 15,27,48,36, 2,44,18, 30,42,11,9,32.
23. Опишите бинарно стабло које представља најгори могући
случај за претраживање.

24. Која је разлика између Ојлерове и Хамилтонове контуре?

25. Који граф је приказан на следећој слици?

104
26. Одредити графове који су:

a) истовремено Ојлерови и Хамилтонови,


b) нису Ојлерови, а јесу Хамилтонови,
c) јесу Ојлерови, а нису Хамилтонови,
d) Нису ни Ојлерови, ни Хамилтонови.
Решење:

a) Контура C3 је и Ојлеров и Хамилтонов граф,


b) Потпуни граф K 4 , није Ојлеров, а јесте Хамилтонов граф,
c) Потпуни бипартитивни граф K 2,4 , је Ојлеров, а није
Хамилтонов граф,
d) Звезда , K 4 , није Ојлеров и није Хамилтонов граф.

27. Који од следећих графова имају Ојлерове контуре, односно


путеве?

105
Решење:
a) не,
b) не,
c) да,
d) не,
e) да.

28. Нека је дат неусмерен граф G  V , E  , где је скуп чворова


V  0,1, 2,3, 4,5, 6, 7,8, 9 , скуп грана
E   0,1 ,  0,3 ,  0, 9  , 1, 4  , 1, 7  , 1,8  , 1,9  ,  2,3  ,  2,5  ,  2, 7  ,  3, 6  ,  7,8 
. Да ли постоји пут између чворова 0 и 5 и ако постоји више
путева одредити најкраћи.
29. Нека је дат неусмерен граф G  V , E  , где је скуп чворова
V  0,1, 2,3, 4,5, 6 , скуп грана
E   0,1 ,  0,3 ,  0, 6  , 1, 4  , 1, 5 ,  2,3 ,  2, 4  ,  2,5  ,  3, 4  ,  3,5  ,  4, 5
. Одредити број циклуса у графу G и навести комплетне путање
циклуса.

106
29. Нека је дат неусмерен граф G  V , E  , где је скуп чворова
V  0,1, 2,3, 4,5, 6 , скуп грана
E   0,1 ,  0,3 ,  0, 6  , 1, 4  , 1, 5 ,  2,3 ,  2, 4  ,  2,5  ,  3, 4  ,  3,5  ,  4, 5
. Да ли је G повезани граф? Ако није навести колико повезаних
компоненти има и који чворови припадају тим компонентама.
30. Нека је дат неусмерен граф G  V , E  , где је скуп чворова
V  a, b, c, d , e, f  , скуп грана
E   a, b  ,  a, c  ,  a, e  ,  a, f  ,  b, c  ,  b, d  ,  b, e  ,  c, d  ,  c, e  ,  c, f  ,  d , e  ,  e, f 
. Да ли је G повезани граф? Ако није навести колико повезаних
компоненти има и који чворови припадају тим компонентама.
31. Нека је дат усмерен граф G  V , E  , где је скуп чворова
V  0,1, 2,3, 4,5, 6 , скуп грана
E   0,1 ,  0,3 ,  0,6  , 1, 4  , 1, 5 ,  2,3  ,  2, 4  ,  2,5  ,  3, 4  ,  3,5  ,  4, 0  ,  4, 5 ,  5,1
. Одредити чворове који имају највећи улазни и излазни степен и
нацртати овај граф.
32. Нека је дат неусмерен граф G  V , E  , где је скуп чворова
V  a, b, c, d , e, f  , скуп грана
E   a, b  ,  a, c  ,  a, e  ,  a, f  ,  b, c  ,  b, d  ,  b, e  ,  c, d  ,  c, e  ,  c, f  ,  d , e  ,  e, f 
. Одредити:
a) Степен чвора f .
b) Чвор са максималним степеном чвора.

КЉУЧНЕ РЕЧИ

Стабло
Шума
Корено стабло
Бинарно стабло
Циклус
Ојлеров пут
Хамилтонов пут

107
11. ТЕОРИЈА АЛГОРИТАМА
ЦИЉЕВИ УЧЕЊА
Када ово поглавље савладате требало би да знате да:
1. опишете алгоритам,
2. особине алгоритама,
3. врсте алгоритамских шема.
Данас, највећи број задатака човек решава помоћу рачунара. Да би
се неки проблем тако могао решити процес решавања треба
дефинисати кроз неколико етапа. То су:
1. Формулација проблема,
2. Математички облик проблема,
3. Прављење алгоритама,
4. Програмирање,
5. Израда тест примера,
6. Тестирање проблема,
7. Добијање и анализа резултата.

11.1. АЛГОРИТМИ

Алгоритам је скуп правила која описују решавање неког проблема.


Први алгоритам начинио је персијски математичар Al Khowarizmi (око
850. године) за решавање алгебарских проблема. Написао књигу Al
Khowarizmi о индијској вештини рачунања, којом се у математику
уводе индијске цифре и децимални бројни систем. Индијске цифре
временом почињу да се називају арапским цифрама, а од лошег
превода имена овог математичара на латински, настаје појам
алгоритам.

108
5. јуна 1833. Aда Бајрон је упознала Чарлса Бебиџа. Он је направио први
компјутер (Бебиџова механичка рачунска машина), а она је написала први
компјутерски програм. Aдин отац је био енглески песник Лорд Бајрон, али су
се њени родитељи развели када је она имама само месец дана. Њен чувени
отац је отишао у Грчку и она га никада није упознала. Ада је, са петнаест
година, упознала Чарлса Бебиџа, веома поштованог професора математике.
Дубоко су је импресионирале Чарлсове идеје о новој машини за рачунање,
такозваној аналитичкој машини, а и он сам је остао запањен Адином
интелигенцијом. Он се заносио следећим идејама: „Шта када би машина за
рачунање, не само предвиђала него и функционисала на том предвиђању?”.
Била је задивљена унверзалношћу његових идеја, и чинило се као да их
разуме боље него он сам. 1835. године се венчала са Вилијамом Кингом, који
је убрзо постао Гроф од Лавлејса (Earl of Lovelace). Имали су складан брак
иако је Ада била интелектуално надмоћнија. Њихово троје деце, два сина и
ћерку која је кренула мајчиним стопама, више су одгајали њена мајка и њен
муж него она сама, али такав вид одгајања је био доста популаран међу
енглеском вишом класом у то време. Вилијам је, међутим, био поносан на
достигнућа своје жене и увек јој је пружао подршку. Године 1842, Бeбиџ је
био позван да одржи семинар на Универзитету у Торину, у Италији, на тему
аналитичке машине. Луиђи Менабреа, млади италијански инжењер и будући
министар, записивао је оно што је Бабиџ објашњавао да би нешто касније
његове белешке биле објављене на француском језику. Бабиџ је тада замолио
Аду да их преведе са француског на енглески језик, да би више људи могло
да разуме. Док је преводила, додавала је сопствене белешке и убрзо је превод
био три пута дужи. У њима је наглашавала разлику између Паскалове
машине, која би могла да се пореди са данашњим калкулатором, и Бебиџове
машине, која може да се пореди са модерним рачунарима. Белешке је
означавала словима од А до Г. У последњој, Г белешци, Ада описује
алгоритам за аналитичку машину за израчунавање Бернулијевих бројева. Та
машина никада није прорадила, али је њен алгоритам оставио дубок траг.
Сматра се да је то први алгоритам икада сачињен са идејом да се примени на
рачунару, и из овог разлога она се може сматрати првим рачунарским
програмером. Концентрисала се на оно што бисмо могли данас назвати
“софтверским” апликацијама за аналитичку машину. У овом смислу, Ада се
може назвати правим визионаром, јер је могла да предвиди да ће Бебиџова
машина имати огромних примена у пољу графике, вештачке интелигенције и
у компоновању комплексне музике. На крају свог дела се потписала као
А.Л.Л. јер за жене, из више класе тог доба, је било неприхватљиво да се баве
било каквим научним списима. Умрла је од рака са тридесет и шест година,
исто колико је имао њен отац када је умро. Као награду за њен допринос,
Америчко министарство одбране је 1979. године развило један програмски
језик и назвало га “Ада”.

109
Следећи значајан напредак у формализацији увођења алгоритма у
математику и логику учинио је Алан Тјуринг, дефинишући и
начинивши Тјурингову машину. То је примитиван аутомат, уствари,
мисаона творевина која поседује могућност извођења операција које су
довољне за извођење скоро свих алгоритама. Његова машина
инициарала је теорију коначних аутомата.

У новије време, појам алгоритма се готово искључиво везују за


рачунарство, мада алгоритми се користе када једноставно, у
појединачним корацима, желимо да решимо неки проблем. Сваки
куварски рецепт је један алгоритам.
У математици су познати Еуклидов алгоритам за одређивање највећег
заједничког делиоца два броја, Гаусов алгоритам за решавање система
линеарних једначина и многи други.

Теорија алгоритама је самостална област која дефинише апстрактне


моделе за решавање проблема независно од програмских језика.
Слично осталим математичким дисциплинама, проучавају се
законитости и принципи алгоритама, а не конкретне имплементације.
Алгоритми се записују употребом псеудокода, општег језика за опис
алгоритама.

11.2. ДИЈАГРАМ- БЛОК ШЕМА

Најчешће, алгоритам се представља у облику блок шеме са јасно


дефинисаним низом радњи - корак по корак. Графички запис
алгоритма назива се алгоритамска шема. Графички симболи које се
користе за прављење алгоритамске шеме су:

110
11.3. ВРСТЕ АЛГОРИТАМСКИХ ШЕМА

Алгоритамске шеме могу се поделити у три категорије:

1. Линијске алгоритамске шеме,


2. Цикличне алгоритамске шеме,
3. Сложене алгоритамске шеме.

111
Линијске алгоритамске шеме су оне шеме код који се сваки
алгоритамски корак извршава највише једанпут у току извршавања
алгоритма. Могу бити просте и разгранате.
Просте линијске алгоритамске шеме, су оне шеме код којих се сваки
алгоритамски корак извршава тачно једнпут у току извршавања
алгоритма.

11.3.1. ЛИНИЈСКЕ АЛГОРИТАМСКЕ


ШЕМЕ

Пример: Саставити алгоритамску шему за израчунавање израза


Z  a   b  2c  .

112
Разгранате линијске алгоритамске шеме, су оне шеме код којих се
сваки корак извршава тачно једанпут и обавезно садржи бар један
условни алгоритамски корак. Ако је услов испуњен, излаз из
алгоритамског корака биће означен са да, а ако услов није испуњен
излаз ће бити означен са не.

Пример: Саставити алгоритам за рачунање вредности


 a  b, a  b
Z  .
 a  b, a  b

113
11.3.2. ЦИКЛИЧНЕ АЛГОРИТАМСКЕ
ШЕМЕ

Цикличне алгоритамске шеме су оне шеме у којима се један или


више алгоритамских корака може извршавати више од једанпут у
току извршавања алгоритма. Ови кораци чине циклус. Уколико је
услов испуњен излази се из циклуса, у супротном циклус се
понавља. Услов за излазак из циклуса зове се излазни
критеријум циклуса.

114
Цикличне алгоритамске шеме могу бити константне и променљиве.

Константне цикличне шеме су шеме код којих се закон обраде током


циклуса не мења, док се код променљивих мења.

Пример:
Саставити алгоритам који за познато n израчунава аритметичку
средину задатих бројева x1 , x1 , , xn .

115
116
Сложене алгоритамске шеме праве се различитим
композицијама предходних шема.

За решавању једног задатка може се састравити више алгоритама


различитих структура. За овакве алгоритме каже се да су
еквивалентни. Међу еквивалентним алгоритмима треба изабрати онај
који најефикасније доводи до резултата. Критеријуми за избор
најефикаснијег алгоритма су различити:

 Највећа брзина извршавања алгоритма


 Минимално ангажовање меморијског простора
 Што једноставнија структура итд

11.4. ОСОБИНЕ АЛГОРИТАМА

1. Дискретност алгоритама. Ако посматрамо време


извршавања алгоритма , сваком кораку можемо придружити
дискретан временски период у коме се тај корак извршава.
2. Детерминисаност. Сваки корак садржи улазне величине, на
основу којих се једнозначно добијају излазне величине.
3. Елементарност. Закон добијања излазних величина мора
бити јасан и прост.
4. Резултативност. За сваки скуп улазних величина мора бити
дефинисано шта је резултат.
5. Масовност. Алгоритам треба тако натравити да важи за
најшири скуп улазних података.

11.5. ПРОВЕРА ИСПРАВНОСТИ


АЛГОРИТМА

Посао састављања алгоритма је креативне природе, и не постоје


универзалан правила по коме се посао може формализовати.
Само код једноставних структура, као што су линијске
структуре, исправност се може утврдити пажљивим прегледом свијх
корака.
За испитивање исправности алгоритма најчешће се користи
тестирање. Изабира се известан број примера, али тако се лако може

117
доказати да алгоритам није испаван , него да јесте. Тестирање може
послужити само за доказивање присуства грешке, а никако није доказ
да грешке нема. Тестирање алгоритамских шема одузима много
времена и подложно је грешкама које човек може да направи. Зато се
данас за проверу исправности користе рачунари.

ПИТАЊА И ЗАДАЦИ ЗА ВЕЖБУ

1. Шта је алгоритам?
2. Наведите различите врсте изражавања алогоритама ?
3. Ко је творац првог рачунарског алгоритма?
4. Чиме се бави теорија алгоритама?
5. Врсте алгоритамских шема.
6. Шта је алгоритамсака шема и из којих делова се састоји?
7. Линијске алгоритамске шеме и пример.
8. Цикличне алгоритамске шеме и пример.
9. Сложене алгоритамске шеме и пример.
10. Шта је циклус?
n
1
11. Написати алгоритам за израчунавање суме  , за унапред
k 1 k
задато n .
12. Особине алгоритама.
13. Како се врши провера исправности алгоритма?
14. Израчунати вредност израза: S  a  b  c .

Решење:

118
15. Написати алгоритамску шему за дељење два броја.

Решење:

119
4 9 n2
16. Израчунати израз: S  1     .
1 2 1  2  3 n!

Решење:

120
КЉУЧНЕ РЕЧИ
блок дијаграм
циклична шема
линијска шема

121
12. МАТЕМАТИЧКА
ДЕФИНИЦИЈА АЛГОРИТМА
ЦИЉЕВИ УЧЕЊА
Када ово поглавље проучите моћи ћете да:

1. дефинишете рекурзивне функције,


2. знате шта је Тјурингова машина,
3. искажете Черчову тезу.

Алгоритам записан у облику блок шеме не може бити прихваћен и


извршен од стране рачунара. Да би био прихваћен и извршен, он мора
бити записан на начин који је прихватљив од стране рачунара, а то је
програм. Процес писања програма је програмирање. За програмирање
се користе посебни језици који представљају комуникацију између
човека и рачунара.

Помоћу рачунара можемо решити само онај проблем за који


можемо написти алгоритам.

Интуитивно схватање алгоритма као поступка за решавање


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

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


саставити алгоритам за његово решавање, односно постоје ли задаци за
које поступак решавања не може бити представљен у облику
алгоритма.
Као што смо већ нагласили постоје различити начини да се
дефинишу алгоритми.
Дијаграм- алгоритамска шема
Псеудо језици –псеудо кодови
Програмски језици
Простова машина
Тјурингова машина
Рекурзивне функције

122
12.1. РЕКУРЗИВНЕ ФУНКЦИЈЕ И
АЛГОРИТМИ

Један од начина да се дефинише алгоритам је помоћу рекурзивних


функција.
Ми ћемо рекурзивне функције дефинисати на скупу целих бројева,
мада се та дефиниција може уопштити.
Рекурзија (лат. recursio, recursion oд recurrere: враћање) у
математици и информатици означава поступак или функцију које у
својој дефиницији користе саме себе. Састоје се из два корака:

1. Функција је дефинисана за неку почетну вредност a


(најчешће 0 или 1)
2. Ако је функција дефинисана за неку вредност n , која је већа
или једнака a , тада може да се дефинише и за вредност
n 1.

Рекурзивне дефиниције су присутне у математици.

Пример је следећа дефиниција природних бројева:


 1 је природни број.
 Ако је n природни број, онда је то и n  1 .

Рекурзивне функције имају за особину да за израчунавање њених


вредности постоји ефективни поступак. Нажалост процес
израчунавања може да буде дуготрајан, али је увек јасан и очигледан.
До решења ћемо увек доћи после коначно много проверавања. За такве
функције кажемо да су израчунљиве.

Пример:
Уочимо функцију f  n   a n , дефинисану на скупу ненегативних целих
бројева.
Она се може схватити као производ од n вредности броја a .
Исто тако може се записати и рекурзивно на следећи начин
f  0   1 знајући да је a 0  1 ,
.
f  n  1  a  f  n  .

Израчунати f  3 .

123
1. Како је a o  1 ,
2. f  3  a  f  2   a  a  f 1  a  a  a  f  0   a  a  a 1  a 3

Пример:
Функција fak  n   n ! , за рачунање факторијела броја се такође може
изразити на следећи начин.
fak  0   1
fak  n  1  n  fak  n 
Израчунати f  3 .
1. Како је 0!  1 ,
2. f  3  3  f  2   3  2  f 1  3  2  1 f  0   3  2  11  6

Пример:
Фибоначијев низ је низ бројева код кога је први елемент број 1, други
елемент такође број 1, а сваки следећи представља збир предходна два
члана. Првих неколико чланова низа гласе 1,1,2,3,5,8,13,........
Тада би рекурзивна функција изгледала
fib 1  1
fib  2   1
fib  n   f  n  1  f  n  2 
Израчунати fib  3 .
1. Како је fib 1  1, fib  2   1 ,
2. fib  3  fib  2   fib 1  1  1  2

Битно је напоменути да у савременим програмским језицима попут


C/C++ и Jave свако рекурзивно решење неког проблема има и свој
итеративни еквивалент, тј. алгоритам који исти проблем решава без
рекурзије. У практичном програмирању углавном треба избегавати
рекурзију јер таква решења у општем случају троше више времена од
итеративних.

Решавање рекурзивне једначине омогућава прелазак из рекурентног


у обични облик функције.

124
Обично се одреди неколико почетних вредности, па се на основу
тих података изводи општи образац. Тај образац треба строго доказати
математичком индукцијом.

Пример:
Решити рекурентну једначину
f 1  1
f  k   f  k  1  k
Како је
1 2
f 1  1 
2
2 3
f  2  1  2 
2
3 4
f  3  1  2   3 
2
4 5
f  4   1  2  3  4 
2
n  n  1
Значи можемо да закључимо да је f  n   1  2  3    n  .
2
Прво доказујемо да је за n  1
1 2
f 1  1
2
f  k  1  k 
 k  1 k  k  k  k  1  f k
 
2 2

Пример:
Решити рекурентну једначину
f 1  2,
f  k   2  k  f  k  1 .

Решење: f  n   2n  n !

12.2. РЕКУРЗИВНИ АЛГОРИТМИ

125
Алгоритам је рекурзивни ако се решавање проблема своди на
предходни корак, једноставијег улаза.

Рекурзивни алгоритам за израчунавање степена


procedura : stepen(a je realan broj, n je nenegativan broj )
if n  0 then stepen  a, n   1
else stepen  a, n   a  stepen  a, n  1

Рекурзивни алгоритам за израчунавање факторијела


procedura : fakt (n  0)
if n  1 then fakt  n   1
else
fakt  n   n  fakt  n  1

Интерактивни алгоритам за израчунавање факторијела


procedura : fakt ( n  0)
x 1
for i  1 to n
x  ix
x je n !

Рекурзивни алгоритам за израчунавање Фибоначијевих бројева


procedura : fib(n  0)
if n  0 then fib  0   0
else n  1 then fib 1  1
else fib  n   fib  n  1  fib  n  2 

126
Интерактивни алгорита за израчунавање Фибоначијевих бројева
procedura : fibonaci(n je nenеgativni broj )
if n  0 then y  0
else
begin
x  0, y  1
for i  1 to n  1
begin
z  x y
x y
yy
end
end
y je fibonacijev broj
За сваки од ових примера начинити и блок шему.

12.3. ЧЕРЧОВА ТЕЗА

Рекурзивне функције имају за особину да за израчунавање њених


вредности постоји ефективни поступак. Нажалост процес
израчунавања може да буде дуготрајан, мада је увек јасан и очигледан.
До решења ћемо увек доћи после коначно много корака. Зато, за
рекурзивне функције кажемо да су израчунљиве. Обрнуто, верује се да
је свака израчунљива функција рекурзивна.
Ово тврђење назива се Черчова теза.
 Черчова теза: Аритметичка функција је израчунљива акко је
рекурзивна.
Нажалост ова теза није доказана у математичком смислу. У
суштини она тврди да за неки проблем постоји алгоритам ако се
решавање проблема своди на израчунавање вредности адекватне
рекурзивне функције. Проблем који се решава тада се мора
формулисати као аритметички проблем. Проблем ван аритметике мора
се пресликати у аритметички. Да би се то постигло прво се проблем
мора представити неким универзалним језиком, например,
квантификаторског рачуна, а затим се то пресликава на језик
аритметике. Рекурзивна функција је један општи модел алгоритма.

127
12.4. ТЈУРИНГОВА МАШИНА

Тјурингова машина открива суштину појма алгоритма


разматрањем поступака који се остварити на машини и може да
послужи за дефиницију појма алгоритма.
Тјурингова машина је један замишљени модел рачунара. Ову
машину је 1936. године описао Алан Тјуринг. Настала је пре настанка
савремених електронских рачунара .

Алан Матисон Тјуринг (1912-1954), је био енглески математичар,


логичар и криптограф. Сматра се оцем модерног рачунарства. Дао је
значајан и провокативан допринос дебати која се тицала вештачке
интелигенције, тј. да ли ће икад бити могуће рећи да је машина свесна
и да може да мисли. 1947. је прешао у Манчестерски универзитет и
радио је углавном на софтверу, на Марку I, за који се сматра да је један
од првих правих рачунара. Током Другог светског рата, Тјуринг је
радио у Блечли парку, британском криптоаналитичком центру и био је
једно време шеф Хут-а 8, одељења задуженог за немачку морнарицу.
Тјуринг је развио више техника за разбијање шифара, укључујући
метод бомбе, електромеханичку машину, која је могла да открије
поставке немачке подморничке шифре Енигме. Године 1952. Тјуринг је
осуђен за дело „велике непристојности“, пошто је признао да је био у
вези са мушкарцем у Манчестеру. Тјуринг је умро 1954. пошто је појео
јабуку напуњену цијанидом. Његова смрт се сматра самоубиством.
Постоје теорије које тврде да је ликвидиран од стране британске тајне
службе због тога што је под уценом могао одати државне тајне
страним агентима. Познат је и по томе што је дефинисао тест
интелигенције вештачке интелигенције. Циљ овог тестирања је да се
одреди да ли је машина заиста интелигентна, или је тек симулација
интелигенције. До сада ни једна машина није успела да прође
тјурингов тест, док га људи пролазе.

128
Тјурингова машина опонаша понашање човека који рачуна по
строго утврђеним прописима. Користи се за решавање проблема
одлучивања. То су проблеми код којих се решење састоји у
утврђивању или оповргавању неке особине, односно решавање
проблема може да се сведе на одговоре да или не. Наравно нису сви
проблеми проблеми одлучивања, али се неки могу свести на њих.
Мада могу да буду технички могући, Тјурингове машине нису
смишљене као практична рачунарска технологија, већ као мисаони
експеримент о границама механичког рачунања и у пракси ове машине
се не конструишу.

Тјуринг је направио је концепт алгоритама за рачунање помоћу


Тјурингове машине, формулишући данас широко прихваћену
Тјурингову верзију Черчове тезе:
 Проблем је алгоритамски решив акко се може решити на
Тјуринговој машини.
 Алгоритмом се може сматрати сваки низ инструкција који се може
урадити на Тјуринговој машини.

Тјурингова машина има врло једноставну конструкцију. Састоји


се од бесконачне траке, која има на себи поља – ћелије у које могу да
се уписују симболи и главе која може да чита и пише симболе. За
Тјурингову машину се дефинише азбука симбола C која ће се у њој
користити, и списак стања Q у којима глава за читање и писање може
да се налази. Дефинишу се почетно стање, и завршно стање; почетно
стање је стање у коме се машина налази на почетку рада, а када
машина дође у завршно стање, престаје са радом. Глава може да се
помера за једно поље улево, за једно поље удесно, или да остане у
месту. У зависности од стања у коме се глава налази, и од симбола који

129
се налази у кућици изнад које је глава постављена, глава ће у ту кућицу
уписати одређени симбол, померити се лево или десно (или остати у
месту), и променити своје стање. Овај процес се понавља док
Тјурингова машина не стигне у завршно стање.
Тјурингова машина ради над коначним скупом симбола. Ти
елементи се могу поређати у низ. Дакле, Тјурингова машина је
пребројив скуп. То значи да је скуп свих алгоритама преброји. Наравно
скуп свих проблема одлучивања је непребројив, што значи да постоје
проблеми за које не постоје алгоритми. Један од нерешивих проблема
је проблем заустављања Тјурингове машине.
Осим Тјурингове машине постоје и фон Нојманова машина,
Простова машина, алгоритми Маркова, машине Минског и многи
други формализми. Сви ови системи су међусобно еквивалентни,
односно симулирају једни друге. У суштини класа дискретних
функција које те машине могу да израчунавају је иста у свим
случајевима. То је једна робусна класа функција која је отпорна на
промене рачунарских модела, а ради се о класи израчунљивих
функција, односно сви проблеми се своде на Черчову тезу.
1936 година може се сматрати годином настанка нове научне
дисциплине, теорије алгоритама, а понекад се и користи термнин
теорија израчунљивости. Теорија алгоритама се бави питањем
постојања или непостојања алгоритама за решавање појединих
проблема и као таква припада математичкој логици. Са становишта
праксе најинтересантније питање је не само егзистенција алгоритма,
већ и његова ефикасност. Имплементација алгоритма на наком
рачунарском моделу користи његове ресурсе, временске и просторне.
Овим питањима се бави анализа алгоритама или теорија рачунске
сложености. Анализа алгоритама представља основу теоријског
рачунарства, а од математичких метода користи технике дискретне
математике, математичке логике и теорију формалних језика.

ПИТАЊА И ЗАДАЦИ ЗА ВЕЖБУ

1. Шта је алгоритам?
2. Наведите неке особине алгоритама.
3. Како се врши провера исправности алгоритма?
4. Дефиниција рекурзивне функције.
5. Черч - Тјурингова теза.
6. Који је значај Тјурингове машине?
7. Шта је азбука Тјурингове машине ?

130
Решење:
S  0,1, b , где је b празан симбол.

8. Шта је скуп стања Тјурингове машине?

Решење:
Q  q0 , q1 , q2 , q , q  , где је b празан симбол. q0 је почетно стање,
q , q су завршна стања.
9. Како се све може дефинисати алгоритам?
10. Дефиниција рекурзивне функције.
11. Написти функцију f  n   2 n у рекурзивном облику.
12. Написти функцију f  n   n ! у рекурзивном облику.
13. Дефинисати Фибоначијев низ.
14. Написати алгоритам који за n унетих бројева рачуна
аритметичку средину унетих бројева.
15. Написати алгоритам који за унету вредност променљиве x
рачуна вредност израза 3  x .
16. Написати алгоритам који за унете вредности променљиве x и
параметра n рачуна вредност израза x  11  p .
17. Написати алгоритам који за унете вредности дужине страница
a и b правоугаоника рачуна површину и обим правоугаоника.
Обезбедити проверу унетих вредности a и b извршити захтев
задатка само за дозвољене вредности тј за a  0 и b  0 .
18. Написати алготитам који за n унетих бројева одређује по
апсолутној вредности навећу вредност.
19. Написати алготитам који за n унетих бројева одређује по
апсолутној вредности најмању вредност.
20. Написати алготитам који за n унетих бројева одређује колико
унетих бројева припада интервалу  a, b  , где a, b и n уноси
корисник.
21. Написати алготитам који за произвољне параметре a, b и c
приказује решења квадратне једначине ax 2  bx  c  0 . У
случају да једначина нема реална решења, приказати адекватну
поруку.
22. Написати алготитам који сортира елементе низа a  i  где
i   0, n  1 у неопадајући поредак.

131
23. Написати алготитам који сортира елементе низа a  i  где
i   0, n  1 у нерастући поредак.
n
24. Написати алгоритам за израчунавање суме S   i ! , где n
i 0
уноси корисник.
n
x i
25. Написати алгоритам за израчунавање суме S  x    , где
i 0 i!
n и x уноси корисник.
n
1
26. Написати алгоритам за израчунавање производа P   , где
i 1 i !
n уноси корисник.
27. Написати алгоритам за израчунавање производа
n
2x  i
P  x   , где n и x уноси корисник.
i 1 n  i
28. Написати алгоритам за израчунавање производа
n
x 
P  x      i  , где n и x уноси корисник.
i 1  i ! 
29. Написати алгоритам за израчунавање израза
nx
V  x  , где n и x уноси корисник.
(n  1)x
1
(n  2) x
1
x
...1 
1

КЉУЧНЕ РЕЧИ

Алгоритам
Черчова теза
Тјурингова машина
Рекурзија
Израчунљивост

132
13. ТЕОРИЈА СЛОЖЕНОСТИ
AЛГОРИТАМА
ЦИЉЕВИ УЧЕЊА
Када ово поглавље проучите требало би да разумете:

1. појам сложености алгоритма,


2. бинарна претраживања.

Рачунска теорија сложености описује скалабилност алгоритама.


Односно она одговара на питања, “Како се величина улаза алгоритма
повећава, како се мењају време извршавања и меморијски захтеви
алгоритма?”. Теорија одређује практичне границе за оно шта
компјутери могу обавити.

Алгоритми и проблеми су подељени у класе сложености.

Теорија сложености се бави релативном рачунском тешкоћом


израчунљивих функција. Временска сложеност проблема је број корака
потребан да би се инстанца проблема решила као функција величине
улаза користећи најучинковитији алгоритам. Да би се ово разумело,
може се размотрити пример степена дужине n битова која може бити
решена у n2 корака. У овом примеру види се да је проблем временске
сложености n2 . Наравно, тачан број корака ће зависити од коришћеног
алгоритма. Како би се избегао тај проблем, користи се велико O
нотација. Ако проблем има временску сложеност O  n 2  на једном
типичном компјутеру, тада ће такође имати сложеност O  n 2  и на
осталим компјутерима.

Пример: Кречење стана има линеарну временску сложеност пошто


треба двоструко више времена да би се окречила двоструко већа
површина истом четком. Међутим, претраживање речника има
логаритамску временску сложеност пошто двоструко већи речник
треба отворити тек један пут више (нпр. тачно у средини - тада се
величина проблема смањи за пола).

133
Просторна сложеност проблема је повезан концепт, који мери
количину простора, или меморије коју алгоритам захтева. Просторна
сложеност се такође мери великом O нотацијом.

13.1. ПРОБЛЕМИ ОДЛУКЕ

Већи део теорије сложености се бави проблемима одлуке.


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

Важан резултат теорије сложености је чињеница да без обзира


колико тежак проблем може постати (тј. колико временских и
просторних ресурса захтева), увек ће постојати тежи проблеми. За
временску сложеност, ово се доказује теоремом о временској
хијерархији. На сличан начин може бити изведена теорема о
просторној хијерархији.

13.2. РАЧУНСКИ РЕСУРСИ

Теорија сложености анализира тешкоћу рачунских проблема у


терминима много различитих рачунских ресурса. Исти се проблем
може описати у терминима потребних количина разних рачунских
ресурса, укључујући време, простор, случајност, алтернацију и
осталим мање битним терминима. Класа сложености је скуп свих
рачунских проблема који могу бити решени користећи одређену
количину рачунског ресурса.

Једни од највише проучаваних рачунских ресурса су


детерминистичко време и детерминистички простор. Ови ресурси
представљају количину времена рачунања и меморијског простора
потребних детерминистичком рачунару. Ови ресурси су од великог
практичног интереса, и веома проучавани.

134
13.3. НЕУКРОТИВОСТ

Проблеми који су решиви у теорији, али не могу бити решени у


пракси, се зову неукротивим. Шта тачно може бити решено “у пракси”
је отворено питање за дискусију, али уопштено то су само проблеми
који имају временски полиномна решења решиви за више улаза. Да би
се видело зашто решења у експоненцијалном времену нису
употребљива у пракси, размотрићемо проблем који захтева 2n
операција за решавање где је n велићина улаза. За релативно мале
улазе од n  100 , и узимајући компјутер које може обавити 1012
операција у секунди, решење би захтевало 4 1010 година.

13.4. ОСОБИНЕ АЛГОРИТАМА

1. Дискретност алгоритама. Ако посматрамо извршавање


алгоритама у времену, тада сваком алгоритамском кораку
можемо придружити дискретан временски период у ком се тај
корак извршава.
2. Детерминантност алгоритама. Сваки алгоритамски корак
садржи улазне величине на основу којих се једнозначно
одређују излазне величине.
3. Елементарност алгоритамских корака. Закон добијања излазних
величина на основу улазних параметара мора бити јасан и
прост.
4. Резултативност алгоритама. За сваки могући скуп улазних
величина у алгоритму мора бити дефинисано шта се сматра
резултатом.
5. Масовност. Алгоритам треба уредити тако да важи за најшири
скуп улазних величина.
6. Еластичност- применљивост алгоритма на различите варијанте
изворних података.
7. Елементарност – једноставна правила за добијање излазних
величина на основу улазних величина у сваком алгоритамском
кораку.

135
13.5. ПРЕТРАЖИВАЊЕ

Претраживање представља лоцирање жељеног податка у скупу


података који се налазе у меморији на основу одређене
идентификације у циљу приступа том податку. Претраживање
представља једну од најчешћих активности у алгоритамским и
програмским решењима, из тог разлога је потребно обратити посебну
пажњу на методе претраживања, јер често ове методе доминантно
одређују временску сложеност неких алгоритама. Поред тога, од
великог је значаја и познавање принципа организације посебних
структура података, које процес претраживања чине ефикаснијим.

Табела је скуп података, у оперативној меморији, који треба


претраживати да би се приступило одређеном податку.

Датотека је скуп података, који се налазу на спољашњој меморији,


који треба претраживати да би се приступило одређеном податку.
Претпоставимо да су оба скупа података, без обзира на то где се
налазе, организована у записе по својој логичкој повезаности.

Кључ је једно или више поља записа које служе за идентификацију


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

Примарни кључ има јединствену вредност за сваки запис, тако да он


недвосмислено идентификује запис при претраживању.

Алгоритам претраживања за задати кључ, који се даје као аргумент


операције, треба да врати одговарајући запис или, чешће, показивач на
запис. Уколико се такав кључ пронађе, ради се о успешном
претраживању, у супротном кажемо да је претраживање неуспешно.
Претраживање се најчешће јавља као почетна фаза операције уметања
новог кључа, јер се кључ умеће само ако се он већ не налази у
жељеном скупу података.

Избор метода претраживања и његова ефикасност зависе од


организације скупа података над којим се претраживање изводи, пре
свега од уређености и променљивости скупа података. Ако је скуп
података претходно уређен на неки начин, поготово у односу на

136
вредност кључа, кажемо да се ради о уређеној структури, у супротном
стуктура је неуређена. Што се променљивости тиче, разликујемо
статичне и динамичне скупове података. Статичан скуп података је
непроменљив, па је битно само оптимизовати претраживање, док је
динамичан скуп података подложан честим уметањима и брисањима.

13.6. СЕКВЕНЦИЈАЛНО ПРЕТРАЖИВАЊЕ

Секвенцијално претраживање подразумева да се тражени кључ


узастопно упоређује са по једним кључем из неуређене табеле, све док
се не дође до сагласности или док се не испитају сви кључеви. Овај
метод се још назива и линеарно претраживање. Нека су кључеви
организовани као низ K 1: n  од n елемената.

Тада се алгоритам секвенцијалног претраживања низа K реализује


као функција SEQ-SEAECH, чији је елемент тражени клуч. Ова
функција враћа позицију кључа у оквиру низа код успешног
претраживања или вредност нула ако кључа нема у датом низу. Ако се
кључ појављује више пута у низу K , функција враћа вредност
позиције кључа са најнижим индексом.

SEQ-SEARCH(K, key)
i=0
while (i  n ) do
if (key = K[i]) then
return i
else
i = i+1
end_if
end_while
return 0

Време извршења овог алгоритма може нешто са се скрати ако се


уведе граничник (sentinel), као у функцији SEQ-SEAECH -SENT.

137
SEQ-SEARCH-SENT(K, key)
K[n+1] = key
i=1
while (key  K[i] ) do
i = i+1
end_while
if (i = n+1) then
i=0
end_if
return i

У функцији SEQ-SEAECH -SENT тражени кључ постављамо на n  1


место. Претраживање се врши док је тренутни елемент низа различит
од траженог кључа. Када је текући елемент једнак траженом кључу,
поступак се прекида, а као и у функцији SEQ-SEAECH, ако се вредност
кључа појављује више пута у низу, враћа се прва позиција његовог
појављивања.

Поступак се прекида у најгорем случају за i  n  1 , што се догађа


када се тражени кључ не појављује у низу. Овај алгоритам је
ефикаснији од претходног за око 50% за велико n . Међутим,
ефикасност овог алгоритма у општем случају није добра. Број
поређења при успешном претраживању зависи од позиције кључа у
низу. Ако су кључеви једнако вероватни, онда је у просеку потребно

1  2    n    n  1
n 2

поређења при успешном претраживању, док је за неуспешно


претраживање потребно n поређења, јер треба испитати све кључеве
док се не утврди да треженог кључа нема. Временска сложеност овог
метода је O  n  , што је прихватљиво за мало n .

Обе приказане реализације секвенцијалног претраживања могу да се


примењују и на претраживање у уланчаној листи.

138
13.7. ОПТИМИЗАЦИЈЕ СЕКВЕНЦИЈАЛНОГ
ПРЕТРАЖИВАЊА

Претходно описани метод се може побољшати уколико се кључеви


као аргументи претраживања јављају са неједнаким, унапред познатим
вероватноћама. До побољшања се долази тако што се кључеви у низу
од почетка распореде по опадајућим вероватноћама. Како се
највероватније претраживани кључеви стављају при почетку низа,
очекивани број поређења се у просеку смањује. Проблем при овом
побољшању је што најчешће нису унапред познате вероватноће
појављивања кључева, па да би ова идеја била спроведена у дело,
неопходна је динамичка реорганизација табеле над којом се претрага
врши. Овај проблем може бити решен бројањем појављивања
појединих кључева и преуређивањем њиховог поретка, али то је
прилично захтевна операција.

Описаћемо два метода динамичке реорганизације која реализују


ову идеју али не захтевају по један бројач за сваки кључ.

Први метод, пребацивање на почетак, после сваког успешног


претраживања нађени кључ постављамо на прво место у низу.
Кључеви који су раније били испред траженог кључа се померају за
једно место ка вишим позицијама и на почетку низа нам се сада налазе
кључеви по којима је претраживање вршено.

Други меод, транспозиција, такође мења позицију кључу по којем


се претраживање врши, али не пребацује кључ на почетак, већ врши
замену места траженог кључа и кључа који се налази непосредно
испред њега. Код оба метода у случају неуспешног претраживања нема
промене низа.

Транспозиција је нешто ефикаснији метод од пребацивања кључа


на почетак, јер код изолованих појављивања кључева, остале кључеве
непотребно удаљујемо од почетка, па се број поређења при наредним
претраживањима повећава. За велики број претраживања могу се
комбиновати ове две методе. У почетку се примењује пребацивање на
почетак у циљу брзог реорганизовања низа, а касније се прелази на
транспозицију која треба да на устаљен начин прати фреквенцију
појаве кључева.

139
Описана побољшања метода секвенцијалног претраживања су
заснована на претпоставци временске локалности обраћања
кључевима. Очекује се да ће тренутно тражени кључ вероватно бити
ускоро тражен поново, па се његовим померањем ка почетку скраћује
пут при наредном тражењу.

13.8. СЕКВЕНЦИЈАЛНО ПРЕТРАЖИВАЊЕ


У УРЕЂЕНИМ ТАБЕЛАМА

Уколико је табела над којом се врши претраживање уређена,


ефикасност секвенцијалног претраживања се може побољшава али
само за неуспешно претраживање. Претпоставимо да је табела уређена
по растућем поретку кључева. Претраживање у том случају можемо
прекинути чим се нађе први кључ који је већи од траженог кључа. За
разлику од претраживања код неуређене табеле, где се неуспешно
претраживање завршава кад се стигне до краја табеле, овде се време
неуспешног претраживања у просеку смањује за 50%.

Проблем са уређеним табелама је што се приликом уметања


вредности у табелу мора водити рачуна о очувању уређења табеле, па
њена сложеност постаје линеарна. Ово је последица чињенице да
уметању новог податка претходи неуспешно претраживање које
лоцира место где треба да се уметне нови податак, што у просеку
n
захтева поређења.
2
Уређена табела је погодна за једновремено претраживање на више
кључева. Тада је набоље да се и вредности кључева који се траже
поставе у исти поредак, па није потребно табелу претраживати за сваки
кључ посебно. У овом случају се табела и низ тражених кључева
паралелно секвенцијално претражују у само једном пролазу, што је
врло ефикасно поготово за већи број истовремених захтева.

Пут претраживања у уређеној табели може се скратити и


коришћењем помоћне структуре - индекса. Ова структура садржи
мањи број еквидистантних кључева из табеле и њихове позиције у
табели. Индекс се секвенцијално претражује, такође, али је много
„ређи“ и брже се претражује, па тиме веома сужава опсег кључева који
секвенцијално треба претражити у самој табели. Кључ може да се нађе
и у самом индексу, без приступа табели. У општем случају, за тражени

140
кључ се нађу у индексу две узастопне вредности од којих је прва мања,
а друга већа од траженог кључа, па се прелази на тражење у табели,
али само између позиција које одговарају кључевима из индекса.

13.9. БИНАРНО ПРЕТРАЖИВАЊЕ

Проблем ефикасности секвенцијалног претраживања је чињеница


да се сваким неуспешним поређењем одбације само један податак, чак
и у случају да је табела уређена по вредностима кључева. У оваквој
табели, једним поређењем се смањује опсег претраживања на тај начин
што ако је упоређени кључ на позицији i већи од траженог кључа,
онда он сигурно већи и од свих кључева на позицијама 1, , i  1 , па
нема смисла да се претражују вредности кључева на тим позицијама.
Самим тим су свих i кључева искључени из даље претраге, па је
побољшање евидентно у односу на секвенцијално претраживање где је
одбачен само један елемент. Поставља се питање који елемент
изабрати за прво поређење. Показује се најефикасније да се поређења
врше на половини интервала и да се тај интервал даље полови док се
поступак не заврши проналажењем траженог кључа или
претраживањем празног интервала. Описана метода је добила име
бинарно претраживање.

Алгоритам бинарног претраживања је типичан пример групе


алгоритама са стратегијом „подели па владај“, па се често реализује на
рекурзиван начин. Итеративана верзија бинарног претраживања је
ефикаснија, па је из тог разлога дата функција BIN-SEARCH која врши
бинарно претраживање табеле K на задати кључ key. Ова функција
прво упоређује задати кључ са кључем који се налази на средњој
позицији mid табеле K. Ако се утврди једнакост, претраживање се
заврши као успешно и враћа се позиција mid на којој се кључ налази.
Ако је тражени кључ мањи, горња половина кључева (mid + 1).. n се
одбацује и поступак се рекурзивно наставља са доњом половином
1..(mid - 1). Ако је тражени кључ већи, онда се поступак наставља са
горњом половином интервала. Тако се, у сваком кораку, број кључева
које треба испитати смањује за половину. Неуспешно претраживање се
проглашава ако се дође до интервала који садржи само један кључ, а
његова вредност није једнака key. То значи да се дошло до места где би

141
тражени кључ требао да се налази да га има у табели, па се враћа
вредност нула као знак да тражени кључ није нађен у табели.

BIN-SEARCH(K, key)
low = 1
high = n
while (low  high ) do
mid=(low + high)/2
if (key = K[mid]) then
return mid
else if (key < K[mid])
then
heigh = mid – 1
else
low = mid + 1
end_if
end_if
end_while
return 0

Како се интервал претраживања у сваком кораку полови, после i


корака он највише износи  n 2i  . Максималан број корака се може
израчунати кад се овај интервал изједначи са једницом, што је најгори
случај, па се добија i   log n  .
Дакле, сложеност алгоритма бинарног претраживања је O  log n  , па
се метод бинарног претраживања некад назива и логаритамским
претраживањем. Предност овог нелинеарног метода претраживања у
односу на линеарни, секвенцијални метод је изразита посебно за веће
скупове података. Секвенцијални метод је ефикаснији само за врло
мале табеле.
Сложеност операције уметања и брисања елемента код бинарног
претраживања је реда O  n  . Ова сложеност произлази из чињенице да
је бинарно претраживање засновано на уређености низа, па се елемент
не може уметнути на произвољно место, већ на тачно одређено место у
низу. Из овог разлога је неопходно премештање елемената низа да би
се ослободило тражено место, осносно померање елемената после
брисања претходника.

142
Бинарно претраживање је погодно за табеле које су смештене као
низови, јер израчунава границе интервала преко индекса низа. Ово није
применљиво за уланчане листе, јер ова секвенцијална структура не
дозвољава ефикасан нелинеарни приступ.
Принцип бинарног претраживања се користи за посебне структуре
стабала.

13.10. ПРЕТРАЖИВАЊЕ КОРИШЋЕЊЕМ


БИНАРНОГ СТАБЛА

Бинарно претраживање скупа података који су смештени у једном


сортираном низу је веома ефикасна техника логаритамске сложености.
Ова структура података је погодна само за статичке скупове података,
јер одржање ове секвенцијалне структуре није ефикасно јер је
операција убацивања новог елемента у уређени низ линеарне
сложености. Зато је за скупове података који се динамички мењају,
природно усвојити динамичку структуру која се ефикасније
модификује.

Употребићемо стабло.

Имајући у виду потребу за бинарним одлучивањем при претраживању,


долазимо до једне варијанте бинарног стабла као оптималне структуре
– стабла бинарног претраживања.

Дефиниција:
Стабло бинарног претраживања је бинарно стабло за које важи:
- за сваки кључ К постоји највише један чвор са адресом p тако са
важи кеy(п) = К,
- кључеви свих потомака pl у левом подстаблу (ако је непразно) су
мањи од кључа тог чвора (кеy( pl ) < К),
- кључеви свих потомака pr у десном подстаблу (ако је непразно) су
већи од кључа тог чвора (кеy( pr ) > К).

На основу дефиниције следи да се вредност кључа неког чвора,


налази између кључева у свом левом и десном подстаблу. Растуће
сортирани низ свих кључева стабла се може добити обиласком стабла

143
по инордер поретку и секвенцијалним укључивањем сваког кључа у
низ при његовој посети. Једном стаблу одговара само један овакав низ,
али обрнуто не важи, јер се исти сортирани низ може добити инордер
обиласком више стабала бинарног претраживања различите топологије
која садрже исте кључеве. Ово је последица чињенице да су, при
формирању стабла, кључеви уметани у различитом поретку. Први
кључ постаје корен стабла, а при уметању нема никакве слободе у
одређивању где се нови кључ смешта, јер је то одређено претходном
дефиницијом. Пример стабала са истим скупом вредности кључева, а
различитим топологијама дат је на следећој слици:

Слика: Пример два стабла бинарног претраживања са истим


вредностима кључева, а различитом топологијом

144
Према претходној дефиницији све вредности кључева у стаблу
бинарног претраживања су узајамно различите. У неким применама је
потребно дозволити да постоји више вредности са истом вредношћу
кључа. Најчешче се дозвољава да иста вредност кључа буде у десном
подстаблу чвора, мада постоје и дефиниције које омогућавају да се
кључеви са једнаким вредностима појављују у левом подстаблу чвора.

13.11. ОСНОВНЕ ОПЕРАЦИЈЕ БИНАРНОГ


СТАБЛА

Испитивање стабла
Најчешће коришћена операција испитивања бинарног стабле претраге
је операција претраживања.

Претраживање

Операција претраживања код бинаног стабла претраге је ефикаснија


него код обичног бинарног стабла због особине уређености стабла по
кључевима. Алгоритам за претраживање реализујемо функцијом БСТ-
SEARCH за дату вредност кључа K и показивач на корен стабла роот.
Функција BST- SEARCH враћа адресу чвора са тим кључм, ако он
постоји у стаблу, или празан показивач, ако кључ није пронађен.

BST-SEARCH(rооt,К)
p=rооt
if (p = nil) or (К = кеy(p))
then
return p
еlse if (К<кеy(p)) then
return BST-
SEARCH (left(p),К)
else
return BST-
SEARCH (right(p),К)
end if
end if

145
Операција претраживања почиње у корену стабла упоређивањем
тражене вредности и вредности кључа корена стабла. Уколико се не
пронађе сагласност, поступак се рекурзивно наставља у левом, односно
у десном подстаблу у зависности од тога да ли је вредност кључа
корена мања или већа од кључа корена. У случају успешне претраге,
поступак се прекида када су вредности кључа текућег чвора и тражене
вредности K једнаке, док у случају да се тражена вредност не налази у
стаблу, поступак се прекида када се дође до празног подстабла.
Временска сложеност алгоритма одређена је бројем поређења кључа.
Како овај број одговара броју нивоа стабла док се дође до неког чвора
гранања или листа, он не може бити већи од висине стабла h . Зато је
максимална сложеност реда O  h  .

Налажење најмањег и највећег кључа у стаблу

Из претходне дефиниције следи да се кључ са минималном вредношћу


налази у најлевљем чвору стабла. Зато алгоритам BST-MIN за стабло
бинарног претраживања где је корен указан аргументом роот иде по
ланцу левих показивача све док не дође до чвора који нема левог сина.

BST-МIN(rооt)
p=rооt
while (left(p)  nil ) dо
p=left(p)
еnd while_
return p

Слично се налази кључ са максималном вредношћу у стаблу, који је


лоциран у најдеснијем чвору. Алгоритам BST-МАX је сличан као и
алгоритам BST-МIN с тим што идемо по ланцу десних показивача све
док не дођемо до чвора који нема десног сина.

BST-МАX(rооt)
p=роот
while (right(p)  nil ) dо
p=right(p)
еnd_while
return p

146
Налажење претходника и следбеника у стаблу

Ове операције ће касније бити коришћене као делови операција


брисања елемената. Следбеник задатог чвора је чвор са најмањим
кључем који је већи од кључа датог чвора. Само најдеснији чвор у
стаблу, са максималном вредношћу кључа нема следбеника.
Налажење следбеника чвора z реализоваћемо функцијом
TREE-SUCUCCESSOR  z 

TREE-SUCUCCESSOR(z)
p=z
if (right(p)  nil) then
return BST-
MIN(right(p))
еlse
q=parent(p)
while(q  nil and
p=right(q)) dо
p=q
q=parent(q)
еnd_while
rеturn q
еnd_if

Ако задати чвор има десно подстабло, следбеника је могуће веома


ефикасно пронаћи. Тада се следбеник налази као најлевљи кључ у том
десном подстаблу. Ако чвор нема десно подстабло, поступак је
сложенији. Тада је тражени следбеник најнижи предак задатог чвора
чији је леви син такође предак задатог чвора. Следбеник се налази без
поређења кључева захваљујући принципу уређености стабла.
У стаблу бинарног претраживања, претходник задатог чвора се
дефинише као чвор са највећим кључем који је мањи од кључа задатог
чвора. Само најлевљи чвор у стаблу, са минималном вредношћу кључа
нема претходника. Операција налажења претходника је јако слична
операцији налажења следбеника, само позив функције BST-МIN треба
заменити са BST-МАX, а right треба заменити са lеft.
Операције налажења минималног и максималног кључа, прерходника
и следбеника као и операција претраживања, имају време извршаванаја

147
сразмерно висини стабла, O  h  , јер следе путању кроз стабло само у
једном смеру.

Уметање

Операција уметања чвора са новом вредношћу кључа у бинарно


стабло претраживања увек се реализује тако што се нови чвор умеће
као лист. Тако је структура стабла потпуно одређена особином
уређености кључева овог стабла и поретком уметања чворова.
Алгоритам функције BST-INSERT је рекурзивна верзија уметања
кључа nеw у стабло чији је корен rооt. Итеративна верзија је нешто
сложенија. Операција уметања је слична операцији претраживања.
Како у бинарном стаблу претраге нема понављања вредности кључева,
ако се вредност кључа чвора који је потребно убацити у стабло
пронађе, операција се прекида и стабло остаје непромењено, у
супротном ако је резултат претраге празан показивач (ниједан чвор
нема nеw вредност кључа), на место тог празног показивача се убацује
нови чвор nеw.

BST-INSERT(nеw,rооt)
p=rооt
if (p = nil) thеn
rооt = nеw
еlse
if (кеy(nеw) = кеy(p)) тhеn
ERROR(Postoji kljuc)
еlse if (кеy(nеw) < кеy(p)) тhеn
BST-INSERT(nеw, left(p))
еlse
BST-INSERT(nеw, right(p))
еnd_if
еnd_if
еnd_if

Сложеност операције уметања је O  h  , где је h висина стабла.

148
Брисање

Операција брисања чвора је сложенија од операције уметања


чвора, јер жељени чвор не мора бити лист. Постоје три случаја која се
разликују по сложености и они су приказани на следећој слици.
Први случај је када из стабла бришемо чвор који је лист (под б).У овом
случају само ресетујемо показивач у његовом оцу који показује на
њега.
Други случај је када чвор који бришемо има само једног сина. У
том случају показивач у родитељском чвору који показује на чвор који
бришемо треба преусмерити да показује на сина чвора који бришемо
(под ц).
Трећи случај је најсложенији и он настаје када чвор који треба
обрисати има два подстабла (под д). У овом случају треба наћи
следбеника тог чвора и показивач оца који је показивао на чвор који
уклањамо сада треба да показује на његовог следбеника. Отац
следбеника преузима десно подстабло следбеника (он нема десно
подстабло), а следбениково десно подстабло постаје чвор његовог
претходног оца, а лево подстабло му је сада лево подстабло чвора који
смо уклонили из стабла.

a)

149
б)

ц)

150
д)

Слика: Изглед стабла: а) у почетку, б) после брисања кључа 31, ц)


после брисања кључа 14, и д) после брисања кључа 19

Алгоритам брисања имплементиран је функцијом BST-DELETE која


брише чвор са вредношћу клуча K из стабла чији је корен rооt.

BST-DELETE(К, rооt)
p=rооt
q = nil
while (p  nil and К  кеy(p)) dо
q=p
if (К < кеy(p)) thеn
p = left(p)
еlse
p = right(p)
еnd_if
еnd_while
if (p = nil) then
ЕRROR(Kljuc nije pronadjen)
еnd_if
if (left(p) = nil) thеn //prvi slucaj i drugi slucaj
каdа postoji samо desni sin
rp = right(p)
еlse if (right(p) = nil) thеn //drugi slucaj
rp = left(p)

151
else //treci slucaj
f=p
rp = right(p)
s = left(rp)
while (s  nil) dо
f = rp
rp = s
s = left(rp)
еnd_while
if (f  p) thеn
left(f) = right (rp)
right(rp) = right(p)
end_if
left (rp) = left (p)
еnd_if
еnd_if
if (q = nil) thеn
rооt = rp
еlse if (p = left(q)) thеn
left(q) = rp
еlse
right(q) = rp
еnd_if
еnd_if

Алгоритам брисања је несиметричан с лева удесно, па би се могло


очекивати да, након извесног броја брисања, стабло постане
дегенерисано. Описаћемо начине како да се поново успостави баланс.
Сложеност операције уклањања чвора је сразмерна висини стабла
O  h .

Анализа ефикасности основних операција

Све основне операције у стаблу бинарног претраживања имају


временску сложеност O  h  , гхе је h висина стабла. У најбољем
случају сложеност је O  log h  , када је стабло комплетно или скоро
комплетно (слика, под а). У најгорем случају, када на пример, кључеви
долазе у растућем или опадајућем поретку добија се стабло које је

152
деградирано и има само лева или десна подстабла. Код њега је висина
h  n  1 , где је n број чворова, па је временска сложеност O  n  ,
управо као и код секвенцијалног претраживања. Пример таквог стабла
је дат на слици, под б. Исту висину има и стабло које настаје када се
кључеви убацују у стабло наизменично (већи од претходног, па мањи
од претходног, али већи од претпретходног, итд). Пример овог стабла
приказан је на слици, под ц.

а)

б)

153
ц)

У просечном случају, насталом после случајног низа уметања и


брисања, код ког после низа ових операција има n чворова, очекивана
висина стабла се налази у затвореном интервалу између најбоље и
најлошије перформансе O  log n  , O  n   .
Докажимо следеће тврђење у циљу прецизнијег одређивања висине.

Лема:
Нека је дато бинарно стабло са n чворова. Ако се оно прошири са
посебним, екстерним чворовима, тада важи следећа релација
PE  PI  2n ,
где је PE екстерна дужина пута, а PI интерна дужина пута.

Доказ:
Тврђење се доказује математичком индукцијом.
За n  1 стабло има само један интерни чвор (корен) и два екстерна
чвора, па је PI  0 , а PE  2 , дакле тврђење важи.
Нека је тврђење леме тачно за стабло са n чворова. Нека сада један од
екстерних чворова постане чвор стабла, а додају се још два екстерна
чвора, тиме се добија стабло од n  1 чвора. Ако је дужина пута до
новог стабла k , тада се интерна дужина пута повећава за k , па је
PI  n  1  PI  n   k .
Екстерна дужина пута се смањује за k због замене екстерног чвора
интерним, али се повећава за 2  k  1 , јер новом чвору стабла, који је

154
лист на нивоу k , у проширеном стаблу одговарају два нова екстерна
чвора на нивоу k  1 . Зато је
PE  n  1  PE  n   k  2  k  1  PE  n   k  2 .
Како тврђење важи за стабло са n чворова тј. PE  n   PI  n   2n
следи
PE  n  1  PI  n   2n  k  2
 PI  n  1  2  n  1 .

Према томе, ако тврђење важи за n , онда оно важи и за n  1 , што је


требало доказати.

Прецизније одређивање перформанси случајног стабла


бинарног претраживања, насталог као резултат произвољног уметања
n кључева, има за циљ одређивање дужине пута у оваквом стаблу са n
чворова. У том циљу, претпоставља се да су сви редоследи уметања
једнако вероватни, а тиме и све топологије које које настају као
последица поретка уметања кључева. Нека је S n просечан број
поређења при успешном претраживању у случајном стаблу са n
једнако верованих кључева, а U n просечан број поређења при
неуспешном претраживању. Како сваки кључ по уметању остаје на
месту где је уметнут, број поређења при приступу постојећем кључу у
стаблу са i чворова је за један већи од броја поређења који су били
потребни да се тај чвор уметне у стабло са i  1 чворова. Овај други
број, истовремено представља број поређења при неуспешном
претраживању. Ако се он усредњи по свим конфигурацијама стабла од
0 до n  1 кључева добија се да је
S n  1  U 0  U1  ...  U n 1  n . (1)
С друге стране, број поређења за успешан приступ кључу за један је
већи од дужине пута до њега. Како је збир дужина путева до свих
чворова стабла, у ствари, интерна дужина пута PI , онда важи
n
S n  1 n    pi  1   PI  n  n .
i 1
Ако се стабло прошири екстерним чворовима, који практично
представљају крај пута у случају неуспешног претраживања, број
поређења при неуспешном претраживању је једнак дужини пута до
екстерног чвора. Ових чворова има n  1 јер толико има неуспешних

155
исхода. Сада се U n може наћи усредњавањем екстерне дужине пута
PE као
U n  PE  n  1 .
Применом везе између интерне и екстерне дужине доказане лемом
PE  PI  2n ,
следи
S n   PE  2n  n  n    n  1U n  n  n    n  1 n U n  1 . (2)
Ако се изједначе десне стране једначина (1) и (2), добија се
2n  U 0  U1  ...  U n 1   n  1U n . (3)
Када се у претходној једначини уместо n стави n  1 , добија се
2  n  1  U 0  U1  ...  U n  2  nU n 1 . (4)
Одузимањем једнакости (3) и (4) добија се
2  U n 1   n  1 U n  nU n 1
или
U n  U n 1  2  n  1 .
Како је U 0  0 и U1  1 , а H n 1  1  1 2  ...  1  n  1 је дефиниција
хармонијског реда, онда се U n може нерекурзивно изразити на следећи
начин:
U n  H n 1  2 .
Заменом ове вредости у израз S n    n  1 n  U n  1 , добија се
S n  2 1  1 n  H n  3 .

Имајући у виду Ојлерову формулу


H n    ln n  1 12n 2   ... ,
где је Ојлерова константа   0.577 , за довољно велико n добија се да
је
S n  2  ln n     3  2 ln n  c .
Одавде следи да је однос средњих дужина пута при
претраживању у стаблу произвољне топологије и балансираном стаблу
2ln n log n  2ln 2  1.386 .

Значи, просечна перформанса претраживања у „случајном“


стаблу произвољне топологије истог реда сложености као у

156
оптималном балансираном стаблу O  log n  и лошија је не само за
константан фактор мањи од 40%.
Поставља се питање да ли се реорганизација стабла при уметању и
брисању кључа са циљем балансирања новодобијеног стабла исплати.
Ако је цена реорганизације већа од овог константног фактора од 40% и
ако је однос броја приступа и броја уметања сразмерно мали, онда се
балансирање обично не исплати. С друге стране, овај закључак говори
само о просечном случају и не пружа никакву гаранцију од појаве
најгорег случаја дегенерисаног стабла

13.12. АВЛ СТАБЛА

Једна врста бинарног стабла претраживања је и АВЛ стабло. АВЛ


стабло је стабло бинарног претраживања код ког за сваки чвор важи да
му се висине левог подстабла ( hl ) и десног подстабла ( hr ) не
разликују за више од 1. Ову врсту стабала предложили су Аделсон-
Велски и Ландис 1962., па су и названа по почетним словима њихових
презимена. Овакав релаксирани критеријум балансираности има за
последицу много лакше одржавање балансирањости при операцијама
уметања и брисања чворова. Свако оптимално балансирано стабло је је
и висински балансирано зато што се код њега сви листови налазе у два
суседна нивоа, али обратно не важи. У екстремном случају листови
АВЛ стабла могу бити распоређени између нивоа h и 2h .

Дефиниција и репрезентација АВЛ стабла

Дефиниција:
АВЛ стабло је стабло бинарног претраживања код кога је за сваки чвор
апсолутна вредност разлике висина левог и десног подстабла највише
један.
Висина празног стабла је дефинисана као нула.

Дефиниција:

Баланс b чвора је разлика висина његовог левог hl и десног hd


подстабла.
Код АВЛ стабла баланс чвора може бити само 1, 0 и -1. За чвор са
балансом 1 се каже да је нагнут улево, а чвор који има баланс -1 је
нагнут удесно.

157
Чвор АВЛ стабла можемо дефинисати на програмском језику C, на
следећи начин:
struct AvlNode{
ЕlementTypе Еlement;
АvlТrее Lеft;
АvlТrее Right;
int B;
};
Оваква репрезентација се разликује од репрезентације бинарног стабла
претраживања само по томе што се овде за сваки чвор стабла издваја и
једно поље типа интегер, које памти баланс чвора. У неким
реализацијама уместо баланса се може памтити висина чвора.

Основне операције са АВЛ стаблом


Уметање вредности у АВЛ стабло

Нови чвор се умеће као лист. Уметање може, али не мора, да поквари
балансираност стабла. Једини чворови чији баланс може бити
промењен су они који се налазе на путу од корена до уметнутог чвора.
Ови чворови се испитују одоздо на горе по путу до корена. За ове
чворове може да настане један од три случаја:
 чвор је био нагнут на једну страну и лист се умеће у његово
ниже подстабло, па постаје балансиан (слика, под а)),
 чвор је био балансиран, па постаје нагнут на страну подстабла у
које је уметнут нови чвор (слика, под б),
 чвор је био нагнут на једну страну и лист се умеће у подстабло
на вишој страни, па овај чвор, а тиме читаво стабло, постају
небалансирани (слика, под ц)).

158
a)

б)

ц)

Слика Три случаја уметања у АВЛ стабло: а) балансираност се


поправља, б) балансораност се квари али остаје у дозвољеном опсегу,
ц) стабло постаје небалансирано

159
13.13. ЦРВЕНО – ЦРНА СТАБЛА

Црвено-црна стабла су стабла бинарног претраживања код којих је


уведен један екстра бит по чвору: његова боја, која може бити црвена
или црна. Уводећи ограничења у боји чворова на путу од корена ка
листовима стабла, црвено-црна стабла гарантују да ниједан пут није
два пута дужи од било ког другог пута, па је стабло скоро балансирано.
Висина стабла је ограничена на око 2log n , што и у најгорем случају
даје гарантоване перформансе реда O  log n  .

Дефиниција и репрезентација црвено – црног стабла

Дефиниција:
Стабло бинарне претраге је црвено-црно стабло ако задовољава
следеће услове:
1. Сваки чвор је или црвен или црн.
2. Сваки лист (НИЛ) је црн.
3. Ако је чвор црвен, онда су му оба детета црна.
4. Свака путања од корена до листа садржи исти број црних
чворова.
На основу претходне дефиниције следи да на путу од корена ка
листовима стабла, црвено-црна стабла гарантују да ниједан пут није
два пута дужи од било ког другог пута, па је стабло скоро балансирано.

Дефиниција:

Број црних чворова од чвора v до неког листа, без тог чвора зове се
црна висина тог чвора и обележава се са bh  v  .
У складу са претходном дефиницијом следи да је црна висина стабла
црна висина корена стабла.

Пример црвено–црног стабла приказан је на следећој слици.

160
Слика: Пример црвено-црног стабла; поред сваког чвора налази се
црна висина чвора
Чвор цвено – црног стабла, као и АВЛ чвор има још јено поље више у
односу на чвор бинарног стабла претраживања, које у себи садржи боју
чвора. На наредној слици је приказана једна репрезентација чвора
цвено – црног стабла у програмском језику C.
typedef enum ColorType { Red, Black } ColorType;
typedef struct RedBlackNode *RedBlackTree;

struct RedBlackNode{
ElementType Element;
RedBlackTree Left;
RedBlackTree Right;
ColorType Color;
};
Слика: Декларација чвора црвено – црног стабла у програмском језику
C
Ради реализације операција црвено-црног стабла листове црвено-црног
стабла третирамо као чворове који имају исту структуру као и сви
остали чворови стабла с тим што су црне боје, а поља Left и Right
показују на NullNode тј. на самог себе, јер они немају десног ни левог
сина.

161
14. ГРАФОВСКИ АЛГОРИТМИ

ЦИЉЕВИ УЧЕЊА
Када ово поглавље проучите знаћете:

1. алгоритам-претрага у дубину,
2. алгоритам-претрага у ширину.

Приликом моделирања сложенијих односа између објеката често се


користе графови. Они могу да моделирају различите односе између
објеката, од технике, археологије до психологије, укључујући и
најразличитије проблеме свакодневног живота. Неки од примера
алгоритама у којима се користе графови су:
 Налажење најбољег пута. (Улице одговарају гранама, а
раскрснице чворовима. Свакој улици и грани може се
придодати време проласка кроз њих, па тако долазимо и до
тежинских графова.)
 Проблем прављења распореда часова се такође може схватити
као графовски проблем. Групе се дефинишу као чворови, веза
између чворова постоји ако студент жели да похађа две или
више група или ако имају заједничког предавача.

Први проблем са којим се срећемо код конструкције ових


алгоритама је дефинисати улазне податке. Претрага графова није
тривијалан посао.
Постоје две основне врсте графовских алгоритама. То су алгоритми
претрага у дубину и претрага у ширину.

14.1. АЛГОРИТМИ - РАЗАПИЊУЋА


СТАБЛА

Разапињуће стабло Т је стабло графа G , такво да сваки чвор графа G


представља и чвор стабла Т. Такође знамо да сваки повезан граф има

162
разапето стабло. Код не повезаних стабала ситуација је знатно
компликованија.
Приликом прављења алгоритама потребно је да знамо када смо
чвор и грану додали стаблу, да бисмо елиминисали могућност да неку
чвор употребимо више пута, јер такав граф не би био стабло. Такође
треба да знамо на који ниво смо додали чвор, да бисмо на следећем
нивоу користили само чворове које смо изабрали на предходном
нивоу.

14.2. АЛГОРИТМИ - ПРЕТРАГА У ДУБИНУ

Код претраге у дубину покушавамо да направимо стабло највеће


дужине. Када пут стигне до краја, образујемо лист, враћамо се до
родитеља тог листа и покушавамо да направимо нови пут. На родитеље
се враћамо само када испробамо све могуће путеве који крећу од
његовог детета.
Код алгоритма претраге на даљину сви чворови морају бити означени
и све његове гране током извршавања алгоритма прелазе се бар
једанпут.
Алгоритам почиње од произвољног чвора који проглашавамо
кореном стабла. Затим бирамо чвор који је њему суседан и формирамо
грану. Затим бирамо чвор који је суседан предходно изабраном чвору и
формирамо нову грану. На том путу треба чворове обележити да би га
прелазили само једанпут. Ако од било ког чвора v пређемо на чвор w
и видимо да је он већ употребљен, тада грану  v, w  не можемо да
додамо стаблу. Такве гране зовемо повратне гране. Мора се
проверити да ли је чвор w родитељ чвора v , пошто тада таква грана
већ постоји. Ако је грана  v, w  повратна грана, ми остајемо на чвору
v и бирамо суседан чвор ако је то могуће. Било која грана графа G
мора да буде или грана стабла или повратна грана.

Пример:

Претпоставимо да смо у уметничкој галерији, где ходници одговарају


гранама, а пресеци ходника чворовима. Ми хоћемо да обиђемо
галерију и видимо све слике. Слике се налазе са обе стране зида. Ако је
граф Ојлеров, могуће је сваки ходник обићи тачно једанпут. Пошто
граф не мора да буде Ојлеров, могуће је гране прећи више пута.

163
Улазимо у ходник увек када је то могуће. Када стигнемо на
раскрсницу први пут, оставимо каменчић, и одлазимо новим ходником.
Када дођемо до раскрснице на којој стоји каменчић, враћамо се истим
путем назад и покушавамо да дођемо до нове раскрснице. Ако су сви
ходници који воде из те раскрснице прегледани, уклањамо каменчић и
враћамо се путем кроз који смо први пут прошли. Ову раскрсницу
више нећемо пролазити и настављамо шетњу.

Овакав приступ зове се претрага у дубину DFS (dept-first-search). Ови


алгоритми су једноставни и прилагодљиви рекурзивним алгоритмима.

14.3. АЛГОРИТАМ - СТАБЛО ПРЕТРАГЕ У


ДУБИНУ

Претпоставимо да су на почетку сви чворови у стаблу обележени са


n (нов), а када их употребимо ознаку мењамо у у (употребљен).

1. Означимо све чворове графа G са n .


2. Изабрати произвољан чвор v0  G и поставити га за корен
стабла.
3. Променити ознаку чвора v0 са n на у и нека је v  v0 .
4. Понављати следећи поступак догод постоји чвор суседан чвору
v који није изабран.
Изабрати чвор w који је суседан чвору v .
Ако чвор w има ознаку н, додати грану  v, w  скупу грана
стабла, и променити ознаку чвора w у у, нека је w  v , и
поновити корак 4.
Ако чвор w има ознаку у и ако w није родитељ чвора v , додати грану
 v, w скупу повратне гране и поновити корак 4.
5. Ако је v  v0 , нека је v  родитељ ( v ) и поновити корак 4.
6. Крај.

До год било који чвор v има суседан и неискоришћен чвор w ,


продужава се пут од чвора v ка чвору w . Када више не може да се иде
даље, прелази се на корак 5 и враћа се на родитеља чвора v .

164
Алгоритам претраге у дубину
procedura : pretraga u dubinu (G  povezan graf sa čvorovima v0 , , vn )
T  stablo koje sadrži samo čvorove v0
poseti v1
procedura : poseti v čvor G
za svaki čvor w susedan čvoru v i nije još iz T
počni
dodaj čvor w i granu  v, w  stablu T
poseti w
kraj

Пример:
Уочимо граф на слици. Направити његово разапињуће стабло.

Бирамо на произвољан начин чвор a за корен. Мењамо ознаку чвора


a из n у y Како је чвор b суседан чвору a и пошто b има ознаку n ,
додајемо грану  a, b  скупу грана и мењамо ознаку чвора b из n у y
Са чвора b прелазимо на чвор d , јер је он суседан чвору b . Ознаку н
чвора д мењамо у у, и додајемо грану  b, d  скупу грана. Како чвор d
има више суседних чворова , бирамо између чворова a , f или g . Од
нашег избора зависи изглед стабла, што значи да претрага у дубину не
даје увек исто стабло. Ако изаберемо чвор g , који има ознаку n ,
мењамо је у y и грану  d , g  додајемо скупу грана. После чвора g

165
бирамо чвор f , који је суседан чвору g , мењамо му ознају у y и
грану  g , f  додајемо скупу грана. После чвора f бирамо чвор d . Али
чвор d има ознаку y и зато грану  d , f  додајемо скупу повратних
грана.
Пошто више нема чворова осим његових родитеља, који је суседан
чвору f , враћамо се на чвор g . Али како не постоји ни један чвор
суседан са g , враћамо се у чвор d . Једини чвор суседан чвору d је
чвор a , који има ознаку y , па грану  d , a  додајемо скупу повратних
грана и враћамо се у чвор b . Како нема ниједан чвор који је суседан
чвору b , враћамо се у чвор a .
Из чвора а бирамо један од преосталих чворова c или e . Ако
изаберемо c , његову ознаку n мењамо у y и грану  a, c  додајемо
скупу грана. Пошто је чвор e суседан са чвором c , мењамо му ознаку
у y и додајемо грану  c, e  скупу грана. Ако би изабрали чвор a као
суседан чвору e , а он има ознаку y у, грана  e, a  би се додала скупу
повратних грана. и враћамо се чвор e .
Чвор h је суседан чвор чвору e , мењамо му ознаку у y и додајемо
грану  e, x  скупу грана. Није преостао ниједан чвор за проверу из h ,
па се враћамо у чвор e , а из њега у c и коначно у a .

166
14.4. АЛГОРИТМИ - ПРЕТРАГА У
ШИРИНУ

Алгоритам почиње од произвољног чвора који проглашавамо кореном


стабла. Затим бирамо све чворове који су њему суседни и формирамо
гране. Ови чворови су нивоа 1. Сада ћемо узети сваки од чворова нивоа
1 и за сваки чвор који је њему суседан, а раније није узет додајемо
грану. Чворови које смо додали у овом кораку имају ниво 2. Поступак
понављамо све док стаблу не доделимо све чворове графа G .
Овакав приступ зове се претрага у ширину BFS (breadth-first-search).

167
14.5. АЛГОРИТАМ - СТАБЛО ПРЕТРАГЕ У
ШИРИНУ

Скуп чворова графа обележавамо са V , грана са E , а чворове стабла са


V T и гране са E T .
1. Изаберите произвољан чвор v0  G и поставити га за корен
стабла. Нека је v0 V T и ниво L  v0  0  .
2. За сваки чвор v V  V T , такав да је чвор v суседан чвору v0 ,
нека v V T ,  v0 , v   E T и L  v   1 .
3. Нека је i  1 .
4. Изаберите v j  V T , тако да је L  v j   i .
5. Изаберите v V  V T . Ако је чвор v суседан чвору v j , нека
v V T ,  v0 , v   E T и L  v   i  1 .
6. Понављати корак 5 док не испитате све елементе скупа V  V T .
7. Понављати кораке 4, 5 и 6 док не испитате све чворове v j за
које је L  v   i .
8. Нека је i  i  1 .
9. Понављати кораке 4-8 све док не буде V  V T .
Алгоритам претраге у ширину
procedura : pretraga u širinu (G  povezan graf sa čvorovima v0 , , vn )
T  stablo koje sadrži samo čvorove v0
L je prazno
definiši nivo L čvora v0
dok  while  L nije prazno
počni
pomeri prvi čvor , v, iz L
za svaki susedni w od v
if w nije iz L i nije iz T onda (then)
počni
dodaj čvor w na kraj liste L i granu  v, w  stablu T
kraj

168
Пример:
Уочимо граф на слици.

Бирамо на произвољан начин чвор a за корен. Тада је L  a   0, a  V T .


Како је чвор b суседан чвору a нека b  V T , L  b   1,  a, b   E T .Чвор
c је такође суседан са чвором a , тако да је c V T , L  c   1,  a, c   E T .
Коначно и чвор d је суседан са чвором a и
T T
d V , L  d   1,  a, d   E .
Размотримо сада све чворове новоа 1. Ако почнемо од L  b   1,
одредимо чворове који су суседни, а до сада нису искоришћени. Пошто
је чвор f суседан чвору b , нека f  V T , L  f   2,  b, f   E T . Пошто је
чвор e суседан чвору c , нека је e V T , L  e   2,  b, e   E T . Како смо
употребили све чворове, поступак је завршен.

169
Тежински граф је граф у коме нас не занимају само чворови и
гране већ и могућности стизања из тачке A у тачку B и то на
најбољи могући начин. Најбољи начин зависи од проблема који
треба решити, то је најкраћи пут, некада најјефтинији,
најбезбеднији, пут на коме се троши најмање енергије и сл.
Из тих разлога свакој грани се додељује реалан број, његова
тежина, односно мера. Ако желимо например да нађемо најкраћи
пут између градова тежина је удаљеност, или цена авионске карте
која спаја удаљене градова и сл. Тежина не мора да буде позитиван
број, али уобичајено је да се такав користи, не умањујући општост
разматрања. Ако нека грана не постоји, тада се на поменуту
позицију ставља неки посебан симбол на пример  .
Тежина разапетог стабла тежинског графа G је сума свих тежина,
додељених гранама разапетог стабла. Минимално разапето стабло
представља разапето стабло графа G , тако да је тежина стабла T
мања или једнака тежини било ког другог разапетог стабла графа
G.

Тежинска матрица је матрица код које на позицију пресека i -те


врсте и ј-те колоне треба ставити тежину w и j гране које спајаја
i -ти чвор са ј-тим чвором. Ако нека грана не постоји, тада се на
поменуту позицију ставља неки посебан симбол  . У случају
бестежинских графова, за постојеће гране се подразумева тежина 1,
док за непостојеће гране користи се 0. Тежинска матрица је нека
врста генерализације матрице суседства.

170
14.6. ДАЈКАСТРИН АЛГОРИТАМ

Овај алгоритам даје најкраће растојање између v1 и vn .

1. Почети од v1  , 0  , променити га у v1  0, 0  и овај чвор


учинити сталним. Остали чворови су привремени.
2. Када чвор vk  m, vr  постане сталан, за сваки чвор који је
суседан са vk , додати m раздаљину између vk и v j . Ако је
ова вредност мања од текуће раздаљине додељене чвору v j ,
заменити раздаљину збиром и другу координату уређеног
пара заменити са vk .
3. Одредити минималну раздаљину додељену привременим
чворовима. Одговарајући чвор учинити сталним.
4. Ако чвор vn није сталан вратити се на тачку 2.
5. Ако чвор vn јесте сталан, раздаљина додељена vn је најкраће
растојање од v1 до vn .
6. Да бисмо пронашли пут, кренимо од vn и нађимо претходни
чвор у путу (друга координата). За сваки v j пут, наћи његов
претходни чвор на путу док се не стигне до v1 . Обрнутим
обиласком ових чворова добија се најкраћи пут.

171
Дајкастрин алгоритам
procedura : dajkastra(G  graf sa čvorovima v0 , , vn i težinama w0 , , wn )
gde je w  vi , v j    ako  vi , v j  nije grana G
for i  1 to n
L  vi   
La  0
S je prazan
while z  S
počni
u  a čvor koji nepripada S sa L  u  min
S  S  u
for svi čvorovi v koji nisu u S
if L  u   w  u , v   L  v  then L  v   L  u   w  u, v 
end
L  z  je dužina najkraćeg puta iz a do z

Пример: Одредити најкраћи пут од A до F , тежинског графа са


слике.

172
Кренућемо од A ка осталим чворовима. Када стигнемо до
чвора, прва компонента уређеног пара означава дужину најкраћег пута
до тог чвора у том тренутку, а друга компонента означава предходни
чвор на најкраћем путу. Док се пут не пронађе прва компонента је  , а
друга је 0.

Пошто су чворови B и C суседни са A , користимо корак 2 да


вредност  5, A  доделимо уређеном пару чвора B , вредност  6, A 
доделимо уређеном пару чвора C . Коришћењем корака 3 узимамо
мању од додељних вредности, а то је 5 и B  5, A  постаје сталан чвор.

Враћајући се на корак2, разматрамо привремене чворове C , D, E , F


суседне са B . У сваком случају додајмо раздаљину AB раздаљини до

173
посматраних чворова. За C имамо 5  3  8 , за D имамо 5  7  12 , за
E имамо 5  2  7 и за F имамо 5  10  15 . Пошто нова раздаљина ка
C није мања од оне која је већ додељена овом чвору, не мењамо
вредност C  6, A  . Нове вредности за чворове D, E , F су мање од
предходних и ове вредности су додељене проласком пута B , и постају
нове D 12, B  ; E  7, B  ; F 15, B  .

Користећи корак 3 узимамо најмању од раздаљина додељених


привременим чворовима ( 6,12,15,7 ), а то је 6 и C  6, A  постаје сталан
чвор.

Сада користимо нови стални чвор C . Корак 2 не даје нове промене, а


кораком 3 чвор
E  7, B  постаје нови стални чвор.

174
Кораком 2 добијамо промену од F 15, B  до F 11, E  и F постаје
сталан чвор.

Када смо стигли до чвора F завршили смо алгоритам и добијамо да је


најкраће растојање од A до F 11. Да смо пре доласка у F потршили
све чворове суседне са сталним, то би значило да нема решења, јер не
би постојао пут од A до F . Да бисмо пашли најкраћи пут, идемо ос F
ка E , па ка B , па ка A . Најкраћи пут је дакле пут ABEF .

ПИТАЊА И ЗАДАЦИ ЗА ВЕЖБУ

1. Дат је граф на слици, са тежинама између два чвора. Наћи


минимални пут од чвора v0 до чвора v .

175
176
177
Најкраћи пут је v0 v4v1v3v2v дужине 9.

2. Дат је граф на слици, са тежинама између два чвора. Наћи


минимални пут од чвора P до чвора Q .

Минимални пут је дат са P, A1 , A2 , A5 , A3 , A6 , Q . Дужина пута је 14.

3. Одреди најјефтинију карту од Бостона до Лос Анђелеса, ако


мрежа линија је дата на следећем графу.

178
179
180
181
Значи најјефтинија је карта преко Чикага и кошта 2300 $.

4. Дат је граф на слици, са тежинама између два чвора. Наћи


минимални пут од чвора a до чвора z .

182
183
Најкраћи пут је acbde дужине 13.

184
15. БУЛОВА АЛГЕБРА

ЦИЉЕВИ УЧЕЊА
Када ово поглавље проучите моћи ћете да:

1. Дефинишете Булову алгебру,


2. знате дефиниције, аксиоме и теореме ове алгебре,
3. дефинишете бинарну Булову алгебру,
4. знате да направите дисјунктивну и коњуктивну форму Булових
функција,

15.1 ОСНОВНИ ПОЈМОВИ


Закони логичког доношења одлука заснивају се на тврђењима
која могу бити тачна и нетачна. Трвђења никада не могу бити
делимично тачна или делимично нетачна. Алгебра која анализира
оваква тврђења, сажима математичку логику и теорију скупова и даје
теоријску основу савремених рачунарских наука назива се Булова
алгебра.

185
Творац ове алгебре је Џорџ Бул (Георге Бооле, 1815 - 1864) енглески
математичар и филозоф. Бул је пришао логици на нов начин,
сажимајући је у просту алгебру, претварајући логику у математику. На
тај начин створене су нове математичке дисциплине математичка
логика или симболична логика и алгебра логике која је названа
Булова алгебра. Нажалост, није живео дуго, умро је у 49-ој години
живота, од прехладе, коју је добио тако што је пешачио две миље по
киши, како би стигао на предавање, и предавао је у мокрој одећи.
Све до касних тридесетих година његова алгебра није имала никакве
практичне примене. 1937. године научници Накашима и годину дана
касније Шенон су искористили Булову аглебру за анализу мрежа са
релејима. Телефонија је тих година била у брзом развоју, па је било
потребно користити неки математички апарат којим би се описивале
жељене комуникације и начин остваривања веза. Од овог тренутка
Булова алгебра доживљава своју експанзију.

186
15.2 ДОКАЗИ И АКСИОМЕ

Нека је B непразан скуп у коме су дефинисане две бинарне


операције  и *, унарна операција ’, а 0 и 1 су елементи из скупа B ,
тада скуп

B, ,*, ', 0,1


називамо Буловом алгебром, ако за било које елементе скупа a, b, c из
скупа B важе аксиоме:

 затворености abB a *b  B
 комутативности ab ba
a *b  b *a
 дистрибутивности a  b * c    a  b  *  a  c  ,
a * b  c    a * b    a * c 

 постојање неутралног елемента a0 a a *1  a


 постојање инверзног елемента a  a 1
a*a  0

Елемент 0 зове се нула елемент, а елемент 1 се зове јединични


елемент.
a  a зове се комплемент од а.
Операције + и* зову се сабирање и множење.
Ознака за операцију * се често не пише, већ се користи ознака
a * b  ab .
Усвајамо и класичне конвенције приоритета операција. Највећи
приоритет има операција комплемента , затим * и најмањег приоритета
је операција +.

187
15.3 ОСНОВНЕ ТЕОРЕМЕ

Нека су a, b, c елементи Булове алгебре B , тада важе следеће теореме,


односно закони:

 закон асоцијације  a  b   c  a  b  c  ,  a * b * c  a * b * c 
 закон идемпотенције a  a  a a*a  a
 закон нуле a 1  1 a*0  0
 закон апсорбције a  a *b  a a *a  b  a
 закон инволутивности a a
 Де Морганови закони a  b  a *b  a * b  a  b
 закон комплемента за неутралне елементе 0  1 1 0
 закон сажимања a *b  a *b  a a  b*a  b   a

Ако је A Булов израз, под дуалним Буловим изразом, подразумева се


израз који се добија када се у изразу A операције + замени са * и
обрнуто, а константе се замене њиховим комплементима.

15.4 БИНАРНА БУЛОВА АЛГЕБРА


Иако Булова алгебра може да буде дефинисана и на бесконачном скупу
елемената, њена је примена у дигиталној техници ограничена на
алгебру на бинарном скупу {0,1}.
Како у алгебрској логици променљиве било да су независне или
зависне, имају само вредности нуле (0) или јединице(1), из чега видимо
да се ради о дискретним променљивим и дискретним функцијама.
Ако се на скупу B  0,1 дефинишу операције +,* ’ , односно , ,  ,
према таблицама, добија се Булова алгебра.

+ 1 0
1 1 1

0 1 0

188
* 1 0
1 1 0

0 0 0

и 0’=1, 1’=0.

15.5 БУЛОВЕ ФУНКЦИЈЕ

Нека је F  F  p1 , p2 ,  pn  нека формула . Исказна слова


p1 , p2 , pn могу да узимају вредности 1 и 0.

 Булова функција је свако пресликавање F : B n  B .


 Булове функције са једном променљивом дате су таблицом

п F1 F2 F3 F4
1 1 1 0 0

0 1 0 1 0

n
Таблица за Булове функције има 2n променљивих и 22 функција, јер
n n
је V22  22 .

Из таблице се може видети да су F 8, F 5, F 7 и F10 редом дисјункција,


конјункција , импликација и еквиваленција.
Све Булове функције могу се представити исказним формулама.

15.6 ДИСЈУНКТИВНЕ И КОНЈУНКТИВНЕ


ФОРМЕ

189
Алгебарске Булове функције се могу представити у два облика.

p1 p2 p3 F
1 1 1 1
1 1 0 0
1 0 1 0
1 0 0 1
0 1 1 1
0 1 0 0
0 0 1 1
0 0 0 1

 Дисјунктивна форма представља логичку суму логичких


производа (пример):

F  F1 F2  F1 F2  F1 F2  F1F2 .

 Конјуктивна форма представља логички производ, логичких


сума (пример):

F   F1  F2   F1  F2  F1  F2  F1  F2 

Пример: Функција је задата табелом. Написати конјуктивну и


дисјунктивну форму задате функције

Алгебарски приказ функције у облику конјунктивне форме, на основу


задате табеле, записујемо у виду логичког производа онолико
елементарних сума колико у табели има врста са вредношћу функције
0.
F   p1  p2  p3  p1  p2  p3  p1  p2  p3  .
Алгебарски приказ функције у облику дисјунктивне форме, на основу
задате табеле, записујемо у виду логичког збира онолико елементарних
производа колико у табели има врста са вредношћу функције 1.
F  p1 p2 p3  p1 p2 p3  p1 p2 p3  p1 p2 p3  p1 p2 p3 .

190
ПИТАЊА И ЗАДАЦИ ЗА ПРОВЕРУ ЗНАЊА

1. Шта је Булова алгебра?


2. Навести основне аксиоме.
3. Навести и доказати теореме Булове алгебре
4. Шта су ДФ и КФ?
5. Доказати следеће законе:
Закон идемпотенције aa  a

Решење:
a  a   a  a  *1 neutralni element
 a  a*a  a  inverzni element
 a   a * a  distribucija
 a0 inverzni element
a neutralni element

Закон нуле a * 0  0 .

Решење:
a * 0  a *0  0 neutralni element
 a*0  a*a inverzni element
 a *0  a  distribucija
 a*a neutralni element
a inverzni element

Закон апсорбције а) a  a * b  a б) a *  a  b   a .

Решење:
а) б)

191
a  a *b 
 a *1  a * b neutralni element
 a * 1  b  distribucija
 a *1 zakon nule
a neutralni element
a * a  b 
  a  0  *  a  b  neutralni element
 a   0* b  distribucija
 a0 zakon nule
a neutralni element

Закон инволутивности a a

Решење:
Аксиома о инверзном елементу каже
a  a  a  a 1
a *a  a *a  0
Ако уведемо x  a , онда је
x  a  a  x 1
x*a  a* x  0
па је a  x , односно a  a .

Закон комплемента за неутралне елементе а) 0  1 б) 1  0

Решење:
а) б)
0  a*a  inverzni element
 a a De Morganovo pravilo
 a a zakon involutivnosti
1 inverzni element

192
1  a  a  inverzni element
 a *a De Morganovo pravilo
 a *a zakon involutivnosti
0 inverzni element

Закон сажимања а) a * b  a * b  a б)
a  b*a  b   a
Решење:
а) б)
a *b  a *b 
 a *  b  b  distribucija
 a *1 inverzni element
a neutralni element
a  b*a  b  
 a   b * b  distribucija
 a0 inverzni element
a neutralni element

6. Како изгледа дисјунктивна и конјунктивна форма Булове


функције која је задата таблицом?

p q r f
1 1 1 0
1 1 0 1
1 0 1 0
1 0 0 0
0 1 1 1
0 1 0 0
0 0 1 1
0 0 0 1
Решење:
f   pqr    pqr    pqr    pqr  дисјунктивна форма -ДФ
f   p  q  r  p  q  r  p  q  r  p  q  r  коњуктивна форма -КФ

193
7. Одредити истинитосну таблицу функција:
а) f1  pq  pr  qr б) f 2  p  qr .
Решење:
p q r f1 f2
1 1 1 1 1
1 1 0 1 1
1 0 1 0 1
1 0 0 1 1
0 1 1 1 0
0 1 0 0 0
0 0 1 1 1
0 0 0 1 0

КЉУЧНE РЕЧИ

Булова алгебра
Булове функције
ДФ
КФ

194
Л И Т Е РАТ У РА

1. И. Ковачевић, З. Мишковић, А. Савић, Математика за


инжењере, Висока школа електротехнике и рачунарства,
Београд, 2008.
2. M. Tомашевић, Структуре података, Академска мисао, 2005.
3. Ј.А. Андерсон, Дискретна математика са комбинаториком,
Рачунарски факултет, Београд, 2005.
4. Д. Цветковић, Дискретна математика, Просвета, Ниш, 1996.
5. Д. Цветковић, Дискретне математичке структуре, Рачунарски
факултет, Београд, 2004.
6. Д. Цветковић, С. Симић, В. Балтић, М. Ћирић, Основе
комбинаторике и теорије графова, Београд, 2008.
7. Д. Цветковић, Теорија графова и њене примене, Научна књига,
Београд, 1990.
8. K. H. Rosen, Discrete Mathematics and Its Applications, Mc Grew
Hill, 2003.
9. В. Петровић, Теорија графова, Нови Сад, 1998.
10. Б. Боричић, М. Ивовић, Д. Аздељковић, И. Спасић, Збирка
задатака из математике, Економски факултет, Београд 2003.
11. М. Меркле, МАТЕМАТИЧКА АНАЛИЗА теорија и хиљаду
задатака, Академска мисао, Београд 2005.

You might also like