Computer Science - Algorithms
Computer Science - Algorithms
wina semestris Sesaval kursSi Cven ganvixileT YmimarTebebi da dalagebaA: Tu mocemul simravleze gansazRvruli iyo dalageba (sruli, antisimetriuli da tranzituli mimarTeba), am simravleze gansazRvruli sityvebic SeiZleboda garkveuli wesiT dagvelagebina. dalagebul simravleebze bevri amocanis
swrafad gadaWra SeiZleba, maT Soris Zebnisac: milioniani qalaqis telefonis wignSi mocemuli saxelisa da gvaris pirovnebis nomris povna, rogorc wesi, sul ramodenime wams grZeldeba, daulagebel
simravleSi Zebnas ki yvela Tavs aaridebda. dalagebis sxva gamoyeneba statistikuri monacemebis gadamuSavebaSia: davuSvaT, gvainteresebs, saqarTveloSi 25 - 30 wlis asakis ramden moqalaqes aqvs miRebuli ganaTleba Tbilisis saxelmwifo universitetSi? amisaTvis saqarTvelos moqalaqeTa baza unda
davaxarisxoT jer asakis mixedviT, Semdeg ki - ganaTlebis miRebis institutis mixedviT. Sedegad miRebuli ori cxrilidan advilad SeiZleba statistikis dadgena.
Tu saWiroa did monacemTa bazaSi gameorebebis aRmofxvra, aqac Sedegs bazis dalagebiT efeqturad
miviRebT.
didi bazis gadamuSavebis erT-erTi pirveli magaliTia amerikis SeerTebuli Statebis mosaxleobis
1880 wlis aRwera. 1500 adamiani Svidi wlis ganmavlobaSi alagebda bazas saWiro monacemebis mixedviT.
im droisaTvis ucnobma inJinerma herman holeriTma
(Herman Hollerith)
damaxarisxebeli manqanebis Seqmnas, romlis saSualebiTac 1890 wlis aRwera (meti mosaxleobiTa da
dasamuSavebeli monacemiT) xuTasma TanamSromelma or weliwadze nakleb droSi daasrula. holeriTis firma, romelic 1924 wlidan
saxeliTaa cnobili,
1.1: N
savarjiSo
1.2:
sazRvroT dalageba
savarjiSo
1.3:
a b |a| |b|
).
AB
dalagebiT
da
dalagebiT
B .
simravleze?
c = (c1 , c2 ) C, |c| =
c21
c22 ).
kompleqsur ricxvTa
C = RR
simravleze, rom
1.1
c.
elementi
c A.
siaSi.
ricxvTan Sedareba da Tu
i, ai = c,
pasuxi
1.4:
elementi
mimdevrobaSi.
daamtkiceT, rom Tu
|A| = n,
O(n)
biji
ai
ai
da
c > ai ,
a = c,
mimdevrobis
(Tu Sua elementi ar arsebobs, viRebT siis marjvena naxevris minimalur ele-
maSin Zebna
A siis marcxena
naxevarSi unda gavagrZeloT, winaaRmdeg SemTxvevaSi - marjvenaSi. am proceduras vimeorebT manam, sanam
saZiebeli simravle carieli ar iqneba (anu saZiebeli elementi ar moiZebneba).
magaliTi
1.1:
sawyisi monacemi:
c < a?
A
1 = 5? ara; 1 < 5? ki
(12, 8, 1, 2, 3, 4, [5], 8, 9, 11, 12, 13, 17)
|
{z
}
1 = 1?
([1])
magaliTi
1 = 2? ara; 1 < 2? ki
(12, 8, 1, [2], 3, 4)
| {z }
1 = 8? ara; 1 < 8?
(12, [8], |{z}
1 )
ara
ki
pasuxi: arsebobs
1.2:
sawyisi monacemi:
c < a?
A
ara
ki
ara
()
pasuxi: ar arsebobs
luri ricxvi
c;
c A?
Find( A, c )
A mimdevroba carieli araa, gaimeore Semdegi operaciebi:
{
a = A mimdevrobis Sua elementi;
if( a = c ) {return(YkiA)}
else if( a < c ) A = A simravlis marjvena naxevari;
else A = A simravlis marcxena naxevari
}
{return(YaraA)}
sanam
da raciona-
savarjiSo
1.5:
savarjiSo
1.6: daamtkiceT, rom zemoT moyvanili algoriTmis drois zeda zRvaria O(log n), sadac n = |A|
(Sedarebisa da simravlis marcxena an marjvena nawilis aRebis operaciebi TiTo bijad CaTvaleT). ra
aris Zebnis amocanis drois qveda zRvari?
igive principzea agebuli dalagebul simravleSi
mimdevrobaSi
ai c ai+1
ai , ai+1
c < a1 an c > an ,
iseTs, rom
da
ai = c,
myof elements
1.3:
sawyisi monacemi:
ai1 c ai ?
A
magaliTi
7 6? ara;
([6], 8, 9, 11, 12, 13, 17)
ai1 c ai ?
ai1
pasuxi:
1.4:
sawyisi monacemi:
ai1
7 8? ki;
(6, [8], 9, 11, 12, 13, 17)
20 6? ara;
([6], 8, 9, 11, 12, 13, 17)
c ai ? 20 11? ara;
(6, 8, 9, [11], 12, 13, 17)
c ai ? 20 17? ara;
(6, 8, 9, 11, 12, 13, [17])
20 8? ara;
(6, [8], 9, 11, 12, 13, 17)
20 12? ara;
(6, 8, 9, 11, [12], 13, 17)
pasuxi:
20 9? ara;
(6, 8, [9], 11, 12, 13, 17)
20 13? ara;
(6, 8, 9, 11, 12, [13], 17)
rogorc vxedavT, imis mixedviT, Tu rogori monacemi gveqneba, bijebis raodenoba SeiZleba ar iyos
damokidebuli monacemTa sigrZeze (rogorc pirvel magaliTSi), an iyos daaxloebiT imdenive, ramdenic
monacemTa sigrZea (meore magaliTi). aqedan gamomdinare, am meTodiT Casmis bijebis raodenobis qveda da
zeda zRvari iqneba
ai1 c ai
an
ai c ai+1 .
Tu
c a1
an
c an ,
ai ,
ai1 c ai ?
20 11? ara;
20 13? ara;
(6, 8, 9, [11], 12, 13, 17) (6, 8, 9, 11, 12, [13], 17)
|
{z
}
| {z }
20 17? ara;
(6, 8, 9, 11, 12, 13, [17] ) pasuxi: A = (6, 8, 9, 11, 12, 13, 17, [20])
|{z}
(a1 , a2 , ..., an )
Sedegi:
da racionaluri ricxvi
A {c}
A=
c;
InsertFast( a1 , a2 , ..., an , c )
if( c a1 )
{A = (c, a1 , a2 , ..., an ); return(A) }
if( c an )
{A = (a1 , a2 , ..., an , c); return(A) }
min = 1;
max = n;
do
{
e;
i = d min+max
2
if( ai1 c ai )
{A = (a1 , ..., ai1 , c, ai , ..., an ); return(A) }
if( ai c ai+1 )
/*
{A = (a1 , ..., ai , c, ai+1 , ..., an ); return(A) }
if( c < ai )
max = i;
else min = i;
}
savarjiSo
1.7:
savarjiSo
1.8:
savarjiSo
1.9: daamtkiceT, rom zemoT moyvanili algoriTmis drois qveda zRvaria (1).
razea damokide-
210 = 1024
InsertFast
monacemebisTvis igi SeiZleba ufro swrafic iyos, magram yvelaze cud SemTxvevaSi
InsertFast algoriTmi
1.10:
daamtkiceT, rom
da
c=3
monacemisaTvis mimde-
imisaTvis, rom mimdevrobaSi elementi CavamatoT, saWiroa algoriTmi, romelic monacemTa struqturazea damokidebuli. Tu gvaqvs elementebis veqtori, saWiro adgilze Casamateblad mis marjvniv myofi
elementebi unda gadavanacvloT TiTo poziciiT marjvniv, rom adgili YganTavisufldesA:
cvladi
mniSvn.
cvladi
mniSvn.
cvladi
mniSvn.
1
2
4
5
6
cvladi
1
2
4
5
6
cvladi
1
2
4
5
6
cvladi
mniSvn.
mniSvn.
mniSvn.
1
2
4
5
6
A[1] A[2] A[3] A[4] A[5] A[6]
1
2
4
5
6
A[1] A[2] A[3] A[4] A[5] A[6]
1
2
4
5
6
savarjiSo
mogvcems.
savarjiSo
1.12:
dawereT algoriTmi
InsertList( A, k, c ),
romelic
bmuli siis
poziciaze
elements
Caamatebs.
1.2
dalageba amorCeviT:
SelectSort(
sanam
A
A
B
A,
A)
(13, 17)
(8, 1, 5)
savarjiSo
1.13:
savarjiSo
1.14:
(17)
(8, 1, 5, 13)
mimdevrobaSi
()
(8, 1, 5, 13, 17)
mimdevrobaSi dalagebuli
A sim-
ravle Caiwereba.
zogadad, algoriTmis bijebis raodenoba damokidebulia misi monacemebis sigrZeze. Cvens magaliTSi ki
n k.
axla ki gamoviTvaloT, Tu ramden bijs moandomebs
SelectSort
bis dalagebas. amisaTvis unda gvqondes simravleSi minimaluri elementis povnis algoriTmi, romelic
Semdegnairad SeiZleba Caiweros:
Min
1.15:
A = (a1 , a2 , ..., an ) )
n + 1;
2n + 1.
saukeTeso SemTxvevaSi:
uares SemTxvevaSi:
aRsaniSnavia, rom bijebis gamoTvlis dros Cven ar gaviTvaliswineT ciklis mTvlelis Sedarebisa da
gazrdis operaciebi, ciklidan gamosvlis operacia da sxva teqnikuri detalebi, romlebic Cveulebriv
bijebis gamoTvlisas ar iTvleba xolme. sworeT aseTi detalebis ugulebelyofis mizniTaa SemoRebuli zeda da qveda zRvris Sefaseba
da
aRniSnviT.
(n + 1) = (n)
da
O(2n + 1) = O(n).
(n).
T (Min) (n).
O(n),
wrfivi.
Tu
A mimdevroba warmodgenili
operaciebi).
aqedan gamomdinare,
dro iqneba
SelectSort
T (SelectSort(A)) = T (SelectSort(A {A
Tu CavTvliT, rom
|A {A
|A| = n.
c2
biji),
biji):
+ 1 + c1 n + c2 ,
= n 1,
miviRebT:
SelectSort
n(n + 1)
+(c2 +1)n O(n2 ).
2
O(n2 ),
an
1.16:
gamoiTvaleT, ra iqneba programis drois zeda zRvari, Tu bmuli siis nacvlad aviRebT
veqtors da elementis amoSlis Semdeg carieli adgilis YamovsebaA (marcxena an marjvena elementebis
TiTo poziciiT gadaweva) dagvWirdeba.
savarjiSo
1.17:
mimdevrobas
daalagebs ise, rom ar gamoiyenebs meore mimdevrobas: yovel jerze arCeuli minimaluri elementi iseve
savarjiSo
1.18:
algoriTms jer bmuli siis, Semdeg ki veqtoris gamoyenebiT davwerT? Seicvleba Tu ara drois zrdis
rigi? Seicvleba Tu ara realuri gamoTvlis dro?
1.2.1
dalageba CadgmiT:
mocemuli
sanam
airCie
mimdevrobaSi (romelic
es meTodi farTod gamoiyeneba praqtikaSi: magaliTad, kartis TamaSis dros rig-rigobiT aRebul karts
YvaxarisxebTA - axals ukve dalagebul mimdevrobaSi saWiro adgilze vsvamT.
A
B
(1, 7)
(5, [8], 13)
(7)
([1], 5, 8, 13)
()
(1, 5, [7], 8, 13)
aRsaniSnavia, rom dalagebis zemoT aRniSnuli meTodebi raRaca TvalsazrisiT erTmaneTis YSebrunebuliaA: pirvel meTodSi jer
A mimdevrobis saWiro adgilidan elements varCevT da mere mas B mimdevroA mimdevrobis Tavidan pirvel elements viRebT da mas vsvamT B
InsertFast
B.
InsertionSort( A )
B=;
while( A simravle carieli araa )
{
a = A mimdevrobis pirveli elementi;
InsertFast( B, a )
/* gamoviyenoT InsertFast algoriTmi B simravleSi axali
A = A\{a}
/* A mimdevrobidan amovagdeT pirveli elementi */
}
mimdevrobaSi
simravleSi vsvamT
A = (a1 , a2 , ..., an );
algoriTmic:
elementis Casamateblad */
daviTvaloT:
biji;
da viRebT:
savarjiSo
1.19:
savarjiSo
1.20: zemoT moyvanili algoriTmis romeli nawilebi gansazRvraven muSaobis drois funqciis
daamtkiceT toloba
zeda zRvars (sxva sityvebiT rom vTqvaT, romeli bijebis ugulebelyofa SeiZleba
savarjiSo
1.21:
aRniSnvaSi)?
monacemTa ra struqtura unda avirCioT, rom algoriTmis bijebis zeda zRvari iyos
1.2.2
swrafi dalageba
SeiZleba monacemTa or tol nawilad dayofiT, maTi cal-calke dalagebiT da dalagebuli qvemimdevrobebis erTmaneTSi ise SerwymiT, rom miRebuli mimdevroba dalagebuli iyos. yovelive es erT magaliTze ganvixiloT:
A = (3, 7, 1, 15, 12, 2, 13, 6). misi monacemebi davyoT or tol nawilad:
A = (A2 , A1 ), sadac A2 = (3, 7, 1, 15) da A1 = (12, 2, 13, 6). TiToeuli qvemimdevrobis dalagebis Sedegad
viRebT: Sort(A2 ) = (1, 3, 7, 15) da Sort(A1 ) = (2, 6, 12, 13). cxadia, rom A mimdevrobis minimaluri elementi
an Sort(A1 ), an Sort(A2 ) mimdevrobis minimaluri (marcxena) elementi iqneba. Tu am elements Sesabamisi
mimdevrobidan amovSliT, darCenili mimdevrobebidan minimaluri elementi A mimdevrobis meore ele-
menti iqneba. am process vagrZelebT manam, sanam erT-erTi mimdevroba ar dacarieldeba, ris Semdegac
aracariel mimdevrobas pasuxs mivawerT:
A1
A2
B
saboloo pasuxi:
(14, 15)
([13])
(1, 2, 3, 6, 12)
(14, 15)
( )
(1, 2, 3, 6, 12, 13)
n
2.
elementiania
) return(A)
M erge,
weros:
sawyisi monacemi: ori dalagebuli mimdevroba
A = (an , ..., a1 )
M erge(A, B)
C = ( );
do
{
if( A mimdevroba carielia ) return( (C, B) );
if( B mimdevroba carielia ) return( (C, A) );
if( A mimdevrobis minimaluri elementi < B mimdevrobis
{
C = ( C, A mimdevrobis minimaluri elementi);
A mimdevrobidan amoagde minimaluri elementi;
}
else
{
C = ( C, B mimdevrobis minimaluri elementi);
B mimdevrobidan amoagde minimaluri elementi;
}
}
savarjiSo
1.22:
da
B = (bm , ..., b1 ).
minimaluri elementi
savarjiSo
1.23:
daamtkiceT, rom Tu
|A| + |B| = n,
maSin
n1
elementebis Sedarebas.
M ergeSort
Teorema
1.1: M ergeSort
M ergeSort
O(n log n)
dn log ne
algoriTmi
M erge
simravles.
C(n).
ra Tqma unda,
C(1) = 0
da algoriTmis
C(n) = 2C(dn/2e)+(n1) = 2dlog ne +(n+n/2+n/4+ 1)log n = n+n(1/2+1/4+ +1/2log n )log n dn log ne.
savarjiSo
1.24:
log n
1.25:
n > 1,
daamtkiceT, rom
M ergeSort
O(n log n)
(jer daamt-
kiceT, rom am algoriTmis muSaobis dro didad ar aRemateba Sedarebis operaciaTa ricxvs da aqedan
gamoitaneT daskvna).
M ergeSort
savarjiSo
1.26:
savarjiSo
1.27:
elements
O(k log k + n)
droSi CavsvamT.
axla ki ganvixiloT meTodi, romelSic dalagebis YrTuli nawiliA rekursiul gamoZaxebamde xdeba:
mocemulia dasalagebeli mimdevroba
pirvel) elements
a}.
a = a1
A = (an , ..., a1 ).
C1 = {ai |ai < a}, C2 = {ai |ai = a}, C3 = {ai |ai >
A mimdevrobis yvela im elementisagan, romelic
arCeul elementze naklebia, meore - iseTebisgan, romelic arCeuli elementis tolia da mesame - iseTebisagan, romlebic arCeul elementze metia. cxadia, rom Tu Semdgom etapze pirvel da mesame simravles
cal-calke davalagebT, maSin dalagebuli
simravle iqneba:
QuickSort
rom misi maqsimaluri bijebis zrdis rigi kvadratuli SeiZleba iyos garkveuli monacemebisaTvis:
T (QuickSort(A)) O(n2 ),
sawyisi monacemi:
sadac
|A| = n.
A = (an , ..., a1 )
ricxvTa mimdevroba.
Quicksort(A)
if( |A| = 1) return(A);
a A;
C1 = {ai |ai < a}, C2 = {ai |ai = a}, C3 = {ai |ai > a};
return((QuickSort(C1 ), C2 , QuickSort(C3 ));
buli (magaliTad, pirveli, an bolo, an sxva) elementis, rac mudmiv droSi SeiZleba. amas garda,
C1 , C2
da
C3
simravleebis ageba wrfiv droSi SeiZleba, iseve, rogorc saboloo pasuxis gamotana im pirobiT,
Tu es qvesimravleebi dalagebulia.
aqedan gamomdinare, viRebT bijebis raodenobis Sefasebis Semdeg rekursiul formulas:
magaliTisaTvis ganvixiloT
da vagebT
gavides
erT elementiani qvesimravleebi pirdapir unda gamovitanoT pasuxSi, xolo sul cota or elementiani
(rogoricaa
{8, 7})
( 5, 3, 1, 5, 12, 8, 4, 7 )
( 3, 1, 4 )
( 12, 8, 7 )
( 5, 5 )
( 8, 7 )
( 12 )
( )
(7) (8) ( )
savarjiSo
1.28:
( 1,
3,
nax. 1:
QuickSort
4,
5, 5, 7,
8,
12 )
A,
romlis dalagebasac
QuickSort
1.29:
(a1 , a2 , ..., an )
elementebis siidan
k-
ur elements amoarCevs (minimaluri elementi pirvelia, meore iqneba is elementi, romelic minimalurze
naklebi an tolia da a.S.). am algoriTmis mexsierebis xarjvis zeda zRvari unda iyos
O(k)
(mexsierebis
xarjvis funqciis zeda zRvari bijebis raodenobis zeda zRvris analogiurad gamoiTvleba).
1.3
aqamde algoriTmebis analizis dros Cven maT zeda da qveda zRvars viTvlidiT. Tu raime algoriTmi
garkveul amocanas Wris (mag. monacemTa mimdevrobis dalagebas) misi zeda zRvari gveubneba imas, Tu
ramdenad swrafad SeiZleba am amocanis gadaWra. imis dadgena, Tu ramden dros moandomebs
yvelaze
swrafi algoriTmi mocemuli amocanis gadaWras, sakmaod Znelia da mas amocanis qveda zRvris dadgena
ewodeba (ar agerioT algoriTmis qveda zRvarSi, romelic gviCvenebs, sul cota ramdeni biji Wirdeba
am konkretul algoriTms yvelaze karg SemTxvevaSi). mocemuli amocanis qveda zRvari gveubneba, rom
veravin dawers iseT algoriTms, romlis muSaobis maqsimaluri dro am qveda zRvarze swrafi iqneba.
araa gasakviri, rom imis dadgena, rom raRacis gakeTebas veravin SeZlebs, sakmaod rTuli procesia
da ar arsebobs erTi meTodi, romliTac amas yvela amocanisaTvis gavakeTebdiT: amocanaTa sxvadasxva
jgufs sxvadasxvanairi midgoma Wirdeba.
aq Cven davamtkicebT, rom Sedarebis operaciebze dafuZnebuli Zebnis amocanis qveda zRvaria
(n log n).
sxva sityvebiT rom vTqvaT, veravin dawers iseT algoriTms, romelic Sedarebis operaciebze iqneba
10
dafuZnebuli (rogorebsac Cven aqamde ganvixilavdiT) da romlis bijebis zeda zRvris (maqsimaluri
raodenobis) zrdis rigi iqneba ukeTesi, vidre
1.1:
ganmarteba
mocemuli
magaliTad,
an
magaliTad,
= (2, 3, 5, 4, 1)
permutaciiT
mimdevroba gadava
(a5 , a1 , a2 , a4 , a3 )
mimdevrobaSi:
misi pirveli elementi gadava meore adgilze, meore - mesameze, mesame - mexuTeze, meoTxe iseve meoTxeze
(a3 , a2 , a5 , a1 , a4 )
mimdevrobaSi, xolo
tovebs.
savarjiSo
savarjiSo
(b)
(d, a, h, b, g, f, e, e)
1.32:
(8, 7, 6, 5, 4, 3, 2, 1)
(a)
(a, d, h, b, c, f, e, g),
mimdevrobebi?
(a, b, c, d, e, f, g, h) mimdevrobidan
(a)
(1, 2, 4, 3, 6, 5, 7, 8),
permutacia?
aRsaniSnavia, rom dalagebac sawyisi mimdevrobis permutaciaa. faqtiurad, dalagebis algoriTmis amocanaa, rac SeiZleba swrafad gaaanalizos Semosuli monacemi da Sesabamisi permutaciiT dalagebul
mimdevrobaSi gadaiyvanos.
xSirad dalagebis algoriTmisaTvis monacemTa Tanmimdevrobis Seswavlis erTad-erTi saSualeba mxo-
a2 < a1
(a2 , a1 , a3 ). am
lod misi elementebis Sedarebaa. magaliTad, Tu sam elementian mimdevrobaSi davaskvniT, rom
da
a1 < a3 ,
(2, 1, 3)
SemTxvevaSi ityvian, rom dalagebis es algoriTmi Sedarebis operaciebzea agebuli. aqamde ganxiluli
yvela algoriTmi aseTi iyo.
zemoT Tqmulidan gamomdinareobs, rom Cven SegviZlia permutaciebis gamoTvlis xis ageba.
imave sam
elementiani mimdevrobis magaliTze SegviZlia avagoT gamoTvlis xe, romelic moyvanilia naxazSi 2.
a1 < a 2
ki
ara
a2 < a 3
a2 < a 3
ki
ki
ara
a1 < a 3
ki
a1 < a2 < a 3
a1 < a3 < a 2
ara
a1 < a 3
ki
ara
a3 < a1 < a 2
a2 < a1 < a 3
ara
a2 < a3 < a 1
11
a3 < a2 < a 1
Tlebis garda) zustad ori Svili yavs, xolo YgadawyvetilebisA imitom, rom gamoTvlis dros raRaca
SekiTxvas pasuxi unda gavceT (gadawyvetileba miviRoT) da Semdeg Sesabamis gzas gavyveT. radgan am
konkretul magaliTSi dasmul Sekitxvaze (ai
< aj
?)
Sedarebebzea agebuli, dalagebis dros aseTi xis zemodan qvemoT gasvla mouwevs da pasuxi (dalageba)
is Sesabamisi permutacia iqneba, romelsac xis foTolSi mivaRwevT.
mtkicebaTa simartivisaTvis davuSvaT, rom dasalagebeli mimdevrobis yvela elementi erTmaneTisagan
gansxvavebulia (Tu ori an ramodenime elementi erTmaneTis tolia, am SemTxvevisaTvisac SeiZleba analogiuri Teoremebis damtkiceba).
mniSvnelovania Semdegi
lema
1.1:
Tu
da
` 6= `
1.33:
es TiTqos da elementaruli leba gadamwyvetia dalagebis algoriTmis qveda zRvris gamoTvlaSi, radgan
aqedan gamomdinareobs, rom yoveli gadawyvetilebis orobiTi xe, romelic
viT alagebs, aucileblad unda Seicavdes
radgan
2T n!
savarjiSo
2T
1.34:
2T
n!
foTols.
T log n!.
e.w. stirlingis formulis Tanaxmad, romelic farTod gamoiyeneba kombinatorikaSi da Cven aq daumtkiceblad miviRebT, gvaqvs:
n n
log n! log
e }
{z
|
= n log n n log e,
stirlingis formula
sadac
mudmiva
e.w. naturaluri logariTmis fuZe (an, rogorc mas sxvanairadac uwodeben eileris ricxvia) -
e = limn 1 +
SeniSvna:
1 n
n
1
n=0 n!
= 2, 718281828459045235...
log n! log
n n
2n,
e
lim
log
log n!
= 1.
2n
n n
e
da
erTad
figurirebs.
aqedan gamomdinare, zemoT moyvanili gadawyvetilebis orobiTi xe, romelic saWiro permutaciamde
migviyvans, daaxloebiT
n log n
12
Teorema
1.2:
1.35:
1.36:
n1
Sedarebas moiTxovs.
ufro
savarjiSo
(n log n).
n log n O(n).
13
algoriTmebi grafebze
rogorc wina semestris Sesaval kursSi aRvniSneT, grafebiT Zalian bevri problemis aRwera da gadaWra
SeiZleba. Tu mocemulia raime amocana
raRaca sxva amocanis amoxsniT am sawyisi problemis pasuxis dadgena iqneba SesaZlebeli.
magaliTad, manqanebSi Cadgmuli navigaciis sistemebi, romlelTa meSveobiTac qalaqis erTi adgilidan
meoreze misvlis umokles gzas vgebulobT, grafebze or wveros Soris umoklesi gzis povnaze daiyvaneba: Tu quCebis gadakveTas aRvniSnavT rogorc grafis wveroebs, xolo wiboebiT ki TviTon quCebs,
gamogviva Sewonili grafi, romelSic quCebis sigrZe wibos wonis toli iqneba.
gac mis amosaxsnelad ramodenime fundamenturi algoriTmis codnaa saWiro, maT Soris (magram ara
mxolod) umciresi damfaravi xis, mocemuli ori wveros Soris umoklesi gzis, grafis planarulad
(brtylad) sibrtyeze daxazvis amocanebi. Tu adamiani ramodenime ZiriTadi amocanis gadaWris xerxs
daeufleba, ufro rTuli amocanebis gadaWra, rogorc wesi, am ZiriTadi amocanebis Tanmimdevrulad
gadaWris saSualebiTac SeiZleba.
amocanaTa gadaWris ZiriTad meTodebs Soris (romelic farTod gamoiyneba grafebze algoriTmebSi)
SeiZleba moviyvanoT e.w. YsiganeSi ZebnisA da YsiRrmeSi ZebnisA algoriTmebi, romelTa saSualebiTac
swrafad SegviZlia SemoviaroT grafis yvela wvero (yovelgvari SezRudvis gareSe).
algoriTmebisa da maTi gadaWris meTodebis Seswavla umjobesia praqtikuli problemebis ganxilviT
daviwyoT.
2.1
kunZul kretaze labirinTSi damwyvdeuli iyo adamianis tanisa da xaris Tavis mqone urCxuli minotavri,
romlisTvis aTenelebs xalxis msxverpli unda SeegzavnaT. am saSinelebisagan Tavis daxsnis mizniT
berZeni gmiri Tesevsi labirinTSi Sevida da minotavri gangmira.
sakmaod rTuli saqmea, man mefis qaliSvilis - ariadnas mier micemuli Zafi gamoiyena, riTac advilad
gamoagno gareT (aqedan momdinareobs gamoTqma Ymsjelobis Zafi dakargaA, YZafi gaeqcaA da sxva).
14
es miTi - filosofiuri, istoriuli, kulturuli da mravali sxva mniSvnelobis garda - aseve did rols
TamaSobs informatikaSic, radgan ucnob garemoSi moZraobis amocanas ukavSirdeba, xolo Zafis an sxva
saSualebebiT ganvlili gzis moniSnva da ukan dabruneba farTod gamoiyeneba algoriTmebTan dakavSirebuli problemebis gadasaWrelad.
yovel labirinTs SegviZlia SevusabamoT raRaca grafi. nax. 4-Si naCvenebia SedarebiT rTuli labirinTi, romelSic Sesabamisi grafia Caxazuli.
igive grafi SegviZlia sxvanairadac davxatoT, rom aRsaqmelad ufro advili iyos (nax. 5). cxadia, rom
Tu gveqneba algoriTmi, romlis saSualebiTac grafis yvela wveros Semovlas SevZlebT, amiT labirinTSi Sesvlis an gamosvlis algoriTmsac avagebT.
aRsaniSnavia, rom zeda or naxazSi moyvanili grafi erTmaneTis eqvivalenturia (erTis meoreSi gadayvana SeiZleba ise, rom grafis struqtura ar Seicvalos, aq mxolod daxatvis wesia sxvadasxva), amitom
Tu labirinTSi Sesvlisas gzis pirvel gasayarTan unda gavuxvioT marcxniv, meore grafSi unda viaroT
pirdapir. magram amas raime principuli mniSvneloba ar aqvs: erT grafze moZebnili amonaxsni advilad
SeiZleba gadavitanoT meoreze.
15
labirinTebSi gzis gakvlevis garda, grafSi wveroebis Semovlis amocanas mravali gamoyebena SeiZleba
movuZebnoT, magaliTad, grafis wveroebis SigTavsis amobeWdvaSi, grafTa kopirebasa an sxvadasxva formatebSi CaweraSi, wveroTa an wiboTa raodenobis daTvlaSi, grafis bmuli komponentebis povnaSi, or
wveros Soris gzis povnaSi, grafSi ciklebis aRmoCenaSi da bevr sxva amocanaSi.
Tu movaxerxebT imas, rom grafis Semovlisas yovel wiboze gavivliT
2.1:
formalurad daamtkiceT, rom Tu grafis yvela wibos SemovuvliT zustad orjer, mis
aRwera, gavlili gvaqvs Tu ara raRaca gza da Rirs Tu ara misi Tavidan gavla. zRaprebsa da miTebSi
ganvlili gzebis dasaniSnad Zafebs, puris namcecebs, xorbals, qvebsa da sxva yoveldRiur nivTebs
iyeneben, magram amocanisa da misi amoxsnis aRweris dros umjobesia maTematikuri obieqtebiT operireba.
amitom yovel wveros TiTo cvladi SevusabamoT, romelic mis Yaqtualur mdgomareobasA aRwers.
es
aRmouCeneli
aRmoCenili
Seswavlili
cxadia, rom yvela wveros statusi Tavidan aRmouCenelia, Semdeg xdeba nawilobriv Seswavlili da bolos - Seswavlili. yvela wveros aqtualuri statusis SesarCevad saWiroa Sesabamisi monacemTa struqtura.
grafis Semovlis dawyebamde yvela wvero aRmouCenel mdgomareobaSia, Semdeg pirveli wvero,
wveroSi, romlis statussac vcvliT, vxdiT aRmoCenilad da vumatebT YdasamuSavebel wveroTaA sias.
Tu romelime wibos Seswavlil wverosTan mivyavarT, mas ugulebelvyofT, radgan iq mibmuli qvegrafi
sruladaa Seswavlili da amiT axal informacias ver miviRebT.
am ZiriTadi principebis gaTvaliswinebiT SegviZlia grafis Semovlis algoriTmebi avagoT, romlis or
magaliTs axla moviyvanT.
16
2.1.1
siRrmeSi Zebna
labirinTSi moZraobis yvelaze bunebrivi meTodia siaruli gzis pirvel gasayaramde, nebismieri mimarTulebis arCeva da Semdgomi siaruli Semdeg gasayaramde, Semdeg iseve raime mimarTulebis arCeva,
siaruli da a.S. manam, sanam an CixSi ar moveqceviT, an ar mivalT gzis iseT gasayarTan, romlis yvela
mimarTuleba gavlili gvaqvs. Tu win moZraobis saSualeba aRaraa, gzas ukan gavivliT gzis uaxloes
gasayaramde da igive meTods gavimeorebT. Tu labirinTis SesasvlelTan davbrundebiT da iqidan yvela
gza gavlili gveqneba, SegviZlia darwmunebiT vTqvaT, rom mTeli labirinTi Semovlilia.
sxva sityvebiT rom vTqvaT, Sesasvlelidan unda avirCioT raime gza da mas rac SeiZleba Sors mivyveT
manam, sanam amis saSualeba gvaqvs (gamovyoT maqsimaluri gza). Semdeg am gzas gavyveT ukan da pirvelive
SesaZleblobisas sxva maqsimaluri gza vipovnoT. amis magaliTi naCvenebia naxazSi 6.
V1
V2
V1
V4
V3
V2
V8
V9
V6
V7
V5
V2
V9
V7
V2
V9
V6
V7
V7
V2
V9
V7
V5
V9
V1
V8
V6
V8
V6
V4
V3
V4
V3
V5
V1
V8
V2
V8
V6
V4
V3
V5
V3
V5
V1
V1
V4
V4
V3
V8
V9
V6
V5
V7
Tu Sesasvlels wvero
V1
sruliad SemTxveviT Cven SegveZlo agverCia agreTve naxazis qveda nawilSi moyvanili gza
rac, cxadia, Semovlis alternatiul variants mogvcems.
Semovlis zeda variantSi
V4
V1 iqneboda,
V9 ) da vnaxoT,
romelic ukve gavlilia. amitom ukan unda davbrundeT mis wina wveroSi (am SemTxvevaSi
SegviZlia Tu ara iqidan raime gzis gavla. radgan es ase araa, iseve erTi wveroTi ukan dabruneba gviwevs,
Semdeg isev erTiT da ase manam, sanam ar mivalT
V6
V3 -Si.
radgan aqedan gzis gagrZeleba SeuZlebelia, iseve ukan vbrundebiT, vamowmebT wina wveros, vrwmundebiT, rom win ver mivdivarT, isev avdivarT zemoT da am process vagrZelebT manam, sanam iseve sawyis
wveromde ar mivalT. radgan gzis gagrZeleba iqidanac aRaraa SesaZlebeli, algoriTmi dasrulebulia.
V4
da
ukve axali gza aRaraa, vbrundebiT ukan pirvel wveromde, saidanac axali gzis povnaa SesaZlebeli. am
SemTxvevaSi esaa
17
moicavs (faravs).
savarjiSo
2.2:
savarjiSo
2.3:
daamtkiceT siRrmeSi Zebnis meTodis siswore (rom Sedegad yvela wveros erTxel mainc
gavivliT).
am Tavis dasawyisSi aRwerili principebis Tanaxmad, siRrmeSi Zebnis konkretuli algoriTmi unda adgendes YdasamuSavebeli wveroebisA sias da mis mixedviT moqmedebdes. Cvens magaliTebSi es procedura
Semdegnairi iqneba:
sawyisi mocemuloba:
R = ( )
wveroTa simravliT
E(G)
da wiboTa simravliT
V (G)
(grafis
DFS(G, u)
moniSne u wvero rogorc YaRmoCeniliA;
miumate u wvero R sias;
for( v, (u, v) E(G) )
{
if( v wvero araa YSeswavliliA )
{
DFS(G, v)
}
moniSne u wvero rogorc YSeswavliliA;
/* radgan
u
savarjiSo
2.1.2
2.4:
for
ciklidan gamovediT,
siganeSi Zebna
bunebrivi movlenebis, kerZod ki talRebis gavrcelebis principzea agebuli e.w. YsiganeSi ZebnisA
(Breadth-
meTodi. wyalSi Cagdebuli qvis mier gamowveuli talRebi, rogorc viciT, centridan
vrceldeba, pirvel rigSi uSualo siaxloveSi myof ares moicavs da Semdeg gadadis ufro Soreul
sivrceze (siganeSi Tanabrad vrceldeba). Cvens mier naxseneb meTodSic sawyisi wverodan jer yvela mis
uSualo aRmouCenel mezobels CaviniSnavT, Semdeg maTze rig-rigobiT gadavalT da igive proceduras
gavimeorebT.
V1
V2
V3
V2
V8
V9
V6
V5
V1
V4
V7
V1
V4
V3
V2
V8
V9
V6
V3
V2
V8
V9
V6
V7
V5
V1
V4
V7
V5
V3
V2
V8
V9
V6
V5
V1
V4
V7
V4
V3
V8
V9
V6
V5
V7
V4
V3
aRmouCenel uSualo
V9
mezobels da sawyis wveros siidan vSliT
(samagierod
viniSnavT Seswavlil wveroTa siaSi, romelSic
V
6
18
Seswavlili wverosaTvis unda CaviniSnoT aseve, Tu romeli wverodan gadmovediT masze, rom mere ukan
wasvla SevZloT.
am process vimeorebT manam, sanam grafis yvela wvero ar iqneba Seswavlili.
savarjiSo
2.5:
2.1.3
bmuli komponentebi
rogorc viciT, araa aucilebeli, rom grafSi yvela nawili bmuli iyos, anu SeiZleba arsebobdes ori
wvero, romelTa Soris SemaerTebeli gza ar moiZebneba. aseTi calkeuli komponentebis povna fundamenturi amocanaa grafTa TeoriaSi: rodesac raime amocana dayofil grafebze unda amoixsnas, umetes
SemTxvevaSi unda davadginoT damoukidebeli nawilebi da isini cal-calke davamuSaoT.
magaliTad, Tu mocemulia raime simravle, masze mocemuli eqvivalentobis mimarTeba, rogorc viciT,
am simravles eqvivalenturobis klasebad yofs da Tu am mimarTebas grafis saxiT gamovxatavT, TiTo
klasi am grafis bmulobis komponenti iqneba.
rogorc siRrmeSi, aseve siganeSi Zebnis algoriTmebis gamoyenebiT advilad SeiZleba grafis bmulobis
komponentebis gamoyofa: avirCevT nebismier wveros da am romelime algoriTmiT SemovivliT danarCen
SesaZlo wveroebs, romlebsac erTi da igive niSans davadebT (magaliTad, mTvlelis ricxvi). Tu grafSi
sxva wveroebic darCa, mTvlels erTiT gavzrdiT da igive proceduras gavimeorebT manam, sanam grafis
yvela wveros raime niSani ar daedeba.
savarjiSo
2.6:
xeebi - acikluri (uciklo) grafebi - saintereso grafTa yvelaze martiv klass qmnian. siRrmeSi Zebnis
meTodi pirdapir gvaZlevs imis pasuxs, aris Tu ara mocemuli grafi xe: Tu Zebnis procesSi ganvlil
wibos aRvniSnavT rogorc Yxis wibosA, xolo iseT wibos, romelsac ar gadavivliT (magaliTad iseTs,
romelsac erTi wverodan ukve Seswavlil wveroSi mivyavarT) aRvniSnavT, rogorc YdamatebiTsA, mocemuli grafi iqneba xe maSin da mxolod maSin, Tu siRrmeSi Zebnis Semdeg damatebiTi wiboebi ar aqvs.
radgan nebismieri xisaTvis
|E| = |V | 1,
O(|V |).
Tu grafi Seicavs cikls, misi aRmoCena SeiZleba pirvelive damatebiTi wibos povniT: Tu aRmoCnda da-
(u, v),
matebiTi wibo
wverodan
wveroSi da igi
(u, v)
(u, v)
2.7:
2.8:
beli gza.
savarjiSo
2.9:
ganixileT wina amocanaSi dawerili algoriTmi. SeiZleba Tu ara misi saSualebiT yvela
ciklis aRmoCena?
savarjiSo
2.10:
grafis SeRebvis zogad amocanaSi grafis wveroebi ise unda SeiRebos, rom wiboTi SeRebil or wveros
sxvadasxva feri qondes. cxadia, Tu yvela wveros sxvadasxva frad SevRebavT, es amocana gadaiWreba,
19
magram sainteresoa grafis rac SeiZleba cota frad SeRebvis amocana - mokled: grafis SeRebvis amocana
- romelic farTod gamoiyeneba algoriTmebis Teoriasa Tu praqtikaSi:
radiotalRebis sixSireebis efeqtur dadgenaSi - magaliTad, Tu ori momxmarebeli radiogadamcems xmarobs, axlos mdgomebs sxvadasxva sixSireebi unda qondeT, Sors mdgomebs SeiZleba erTi
da igive;
RAM
cvladTa raodenoba registrebis raodenobas aWarbebs, saWiroa imis dadgena, ra dros romeli
cvladi Caiweros registrebSi;
arqeologiuri an biologiuri masalis analizi - rogorc biologiaSi, aseve arqeologiaSi monacemebi xis saxiT SegviZlia SevinaxoT: erTi saxeoba an kultura meoredan momdinareobs, erTi saxeoba
an kultura sxva ramodenimes warmoSobs.
zogadad, grafis minimalurad SeRebvis amocana (an misi qromatuli ricxvis dadgenis amocana, rogorc
mas uwodeben xolme), Zneli gadasaWrelia. misi erT-erTi mniSvnelovani qveamocanaa, SeiZleba Tu ara
mocemuli grafis or frad SeRebva, an, sxva sityvebiT rom vTqvaT, iseT or nawilad dayofa, romelSic
wveroebi erTmaneTisgan izolirebulni arian. aseTi grafis magaliTia moyvanili naxazSi 8.
orad SeRebil grafs zogjer orad dayofilsac uwodeben. imis dasadgenad, SeiZleba Tu ara mocemuli
grafis orad dayofa, Semdegi strategiiT SeiZleba moqmedeba:
virCevT erT-erT wveros, romelsac vRebavT romelime frad (davuSvaT, TeTrad). siRrmeSi an siganeSi
ZebniT axlad aRmoCenil wveros vRebavT misi mSoblis (im wverosi, romelTanac aris dakavSirebuli)
gansxvavebuli feriT (TeTri an Savi). Semdeg yoveli aRmouCeneli wverosaTvis vamowmebT, aris Tu ara
igi mierTebuli or erTsa da imave frad SeRebil wverosTan da Tu asea, es imas unda niSnavdes, rom
grafi ar SeiRebeba (ar daiyofa) orad. Tu algoriTmi am saxis konfliqtis gareSe dasruldeba, es imas
unda niSnavdes, rom grafi orad SeiReba.
savarjiSo
2.11:
2.12: am meTodze dayrdnobiT dawereT algoriTmi, romelic daadgens, SeiZleba Tu ara grafis
orad SeRebva.
topologiuri dalageba
20
(a)
(b)
(g)
(d)
pirveli grafi araa mimarTuli da Seicavs cikls; meore mimarTulia da cikls Seicavs, xolo mesame ki
mimarTulia, magram cikls ar Seicavs (acikluria), radgan ver movZebniT iseT daSvebul gzas, romelic
gayveba isrebs da romelime wverodan isev igive wveroSi dagvabrunebda.
aseT struqturas
acikluri mimarTuli grafi ewodeba da maTi daxazva SeiZleba ise, rom yvela wibo
topologiur dalagebas
uwodeben.
aRsaniSnavia, rom mxolod aciklur mimarTul grafebs SeiZleba movuZebnoT topologiuri dalageba,
radgan nebismieri cikli romelime kvanZidan ukan (anu marjvnidan marcxniv) dagvabrunebda, Tanac aciklur mimarTul grafebs yovelTvis movuZebniT erT topologiur dalagebas mainc.
topologiur dalagebas didi mniSvneloba aqvs mTel rig praqtikul amocanebSi, magaliTad zemoT
naxseneb cxrilis SedgenaSi.
SiRrmeSi Zebnis algoriTmiT advilad SegviZlia mimarTuli grafis aciklurobis dadgena (rac damokidebulia imaze, Segvxvdeba Tu ara muSaobis procesSi zemoT naxsenebi YdamatebiTi wiboebiA). Tu grafi
acikluria, maSin algoriTmis msvlelobisas Seqmnili
vrobas gvaZlevs.
savarjiSo
2.13: daamtkiceT, rom siRrmeSi Zebnis procesSi Seqmnili R mimdevroba topologiuri dalage-
saartikulacio kvanZebi
xSirad saWiroa imis dadgena, Tu minimum ramdeni kvanzis amogdebaa saWiro bmuli grafidan imisaTvis,
rom igi nawilebad daiSalos. qvemoT moyvanil naxazSi naCvenebia sami grafi, romelTa daSla
minimum
erTi (a), ori (b) da sami (g) kvanZis amogdebiT SeiZleba. am SemTxvevaSi ityvian, rom grafia erTad bmuli,
an orad bmuli, samad bmuli da, zogadad,
n-ad
bmuli.
(a)
n.
(b)
(g)
Tu grafis bmulobis koeficientia 1, maSin ityvian, rom mas aqvs e.w. saartikulacio kvanZi.
saartikulacio kvanZebis Zebna Zalian mniSvnelovania magaliTad sakomunikacio qselebis stabilurobis dadgenaSi. zogadad, rac ufro maRalia qselis Sesabamisi grafis bmulobis koeficienti, miT ufro
stabiluria igi.
advili SesamCnevia, rom saartikulacio kvanZebis Zebna grafidan rig-rigobiT wveroebis amogdebiTa da
darCenili struqturis bmulobaze SemowmebiT SeiZleba.
savarjiSo
2.14:
21
umciresi damfaravi xe
2.2
Tu mocemulia Sewonili grafi, Zalian mniSvnelovania e.w. Yminimaluri damfaravi xisA gamoyofa: iseTi
xisa, romelic grafis yvela wveros moicavs da romlis wiboTa wonebis jami minimaluria yveala SesaZlo damfaravi xis wiboTa wonebis jams Soris.
qvemoT moyvanil naxazSi naCvenebia aseTi damfaravi xis magaliTi.
2
1
2
3
3
1
es amocana xSirad wamoiWreba xolme ramodenime punqts Soris optimaluri qselis (mag. satelefono,
sakabelo, sagzao an sxva) Sedgenis dros.
garda amisa, mocemul grafSi minimaluri damfaravi xis gamoyofis Semdeg bevri rTuli amocanis miaxloebiTi amoxsnis povna SeiZleba.
cxadia, rom bev SemTxvevaSi erT grafs ramodenime minimaluri damfaravi xe SeiZleba qondes. Tu grafi
Sewonili araa, maSin miiCneven, rom misi wiboebi erTi da igive wonisaa (mag. 1).
minimaluri damfaravi xis sapovnelad ori YxarbiA algoriTmi gamoiyeneba, romelsac axla ganvixilavT
(xarbi ewodeba iseT algoriTms, romelic yovel jerze Seqmnil situaciaSi sauketeso arCevans eZebs,
globaluri suraTis gaTvaliswinebis gareSe).
2.2.1
primis algoriTmi
am algoriTmis principi sakmaod martivia: xis agebas viwyebT nebismieri wverodan da veZebT minimaluri
wonis mqone wibos, romelic ukve Sedgenili xis wverosa da darCenil wveroebs Soris (romlebsac Cven
Ygare wveroebsA vuwodebT) arsebobs. aseT wibos da masTan mierTebul gare wveros xes vumatebT (Tanac
axal wveros gare wveroTa simravlidan vSliT). am process vagrZelebT manam, sanam gare wveroTa simravle ar iqneba carieli.
2
3
2
1
3
1
5
3
5
4
5
4
22
2
3
2
3
5
4
5
4
1
3
2
2
2
2
5
4
3
1
1
3
2
2
2
1
2
2
G = (E, V )
wonaTa funqciiT
d : E Q;
Prim(G, d)
T V = ;
T E = ;
Out = V
v V;
T V = T V {v}
Out = Out {v};
while( Out 6= )
{
w1 T V , w2 Out,
d(w1 , w2 ) = min{d(x, y)|x T V, y Out}
T V = T V {w2 };
Out = Out {w2 };
T E = T E {(w1 , w2 )};
moZebne iseTi
rom
}
return(T = (T V, T E));
savarjiSo
2.15:
while
melTa raodenoba wiboTa raodenobis tolia) unda gadavaTvalieroT yvela is wibo, romelic gare
wveros xis wverosTan aerTebs da aseTebs Soris minimalur woniani avirCioT.
monacemTa struqturis sworad arCevis SemTxvevaSi primis algoriTmis realizacia
Zlebeli.
radgan zeda zRvris SefasebaSi wiboebis raodenoba ar figurirebs, es algoriTmi kargad unda muSaobdes e.w.
23
2.2.2
kraskalis algoriTmi
axla ganvixiloT kraskalis algoriTmi, romelic ufro swrafad e.w. YgauxSoebulA grafebze muSaobs:
iseTebze, romelTa wiboTa ricxvi wveroebis ricxvTan SedarebiT dabalia.
Tavidan
G = (V, E)
bmuli grafis yvela wvero ganvixiloT rogorc calke aRebuli erT elementiani xe
|V |
(u, v)
wibos, rom
da
u T1
da
v T2 , T1 6= T2 ,
am or xes
(u, v)
ris Sedegadac erTi xiT naklebs viRebT. am process vagZelebT mnam, sanam ar Seiqmneba erTi bmuli
komponenti (xe).
savarjiSo
2.16:
daamtkiceT, rom am proceduris Catarebis Sedegad aucileblad miviRebT xes (ar gve-
qneba ciklebi).
yovelive zemoT naTqvami ganvixiloT magaliTze (nax. 13).
2
3
2
1
5
3
2
2
5
4
1
3
2
2
2
2
1
3
2
2
2
2
2
2
5
3
Kruskal(G, d)
G grafis n wibosagan
Seadgine xe
G = (V, E)
wonis funqciiT
d : E Q.
/* Tavdapirvelad
xe
cali
for( i = 1, i < |V |, i + +)
{
wiboTa siidan amoarCie minimaluri wonis wibo
ekuTvnis
(u, v);
)
}
return(T )
SeniSvna: radgan yovel xes wveroebze erTiT naklebi wibo aqvs,
savarjiSo
xeSi
da
2.17:
for
O(|V | |E|).
savarjiSo
2.18:
savarjiSo
2.19:
suxi daasabuTeT.
24
2.3
Tu mocemulia Sewonili grafi, xSirad saWiroa xolme mis or wveros Soris umoklesi gzis dadgena
(or wveros SemaerTebel yvela SesaZlo gzas Soris iseTis arCeva, romlis wiboTa wonebis jami minimaluria).
am amocanis gadaWraze zalian bevri sxva amocanaa damokidebuli, maT Soris:
satransporto qselebSi or punqts Soris umoklesi gzis povna: Tu grafs ganvixilavT rogorc
qalaqebs (wveroebi) da maT SemaerTebel gzebs (wiboebi), an qalaqSi quCebs (wiboebi) da maT gadakveTebs (wveroebi), erTi punqtidan meoreSi gadasvlisaTvis umciresi gzis gamoTvla am amocanis
gadaWriT SeiZleba;
nalaparakevi teqstis amocnobis erT-erTi umTavresi amocana erTnairi JReradobis sityvebis (omofonebis) gansxvavebaa. aseT sityvebzea agebuli akaki wereTelis cnobili leqsi YaRmarT-aRmarTA:
grafTa ganlagebaSi: xSirad saWiroa xolme grafis YcentrisA dadgena da ise ganlageba, rom igi
mis SuagulSi moeqces.
manZilis codna.
aRsaniSnavia, rom umciresi damfaravi xe yovelTvis umcires manZils ar mogvcems, rogorc es Semdgom
naxazSia naCvenebi.
10
10
3
8
12
12
10
10
3
7
7
7
7
5
10
10
8
10
13
10
13
12
12
(a)
(b)
nax. 14: minimaluri damfaravi xe (a) da Semoxazuli wverodan umoklesi manZilis xe (b)
savarjiSo
2.20:
manZilebs.
u, v V
d(u, v) = ),
xolo grafis
wvero, romlisTvisac
s, x
d(u, v)
eE
d(s, x) + w(x, t)
s wverosa da
iqneba minimaluri da
wveroebs Seoris da
25
(x, t)
w(e).
YbolodanA
wibos.
s, t
t wveros iseTi x mezobeli, rom x wveros gavliT gza s wveros da x wveroebs Soris umoklesi gza
unda ganisazRvros yvela wveros YwinamorbediA - is wvero, romelic umokles gzaSi am wveros ukavSirdeba:
aqedan gamomdinare, umoklesi gzis povnis algoriTmis fsevdokodi Semdegnairad SeiZleba Caiweros:
sawyisi monacemi: bmuli Sewonili grafi
G = (V, E)
wonis funqciiT
ShortPathDijkstra(G, d, s)
for( v G)
{
d(v) = ;
p(v) = N U LL;
}
d(s) = 0;
p(s) = s;
Q=V;
d:EQ
da erT-erTi wvero
s.
/* mxolod
wverosTvis ganisazRvreba
while( Q 6= )
{
u = umciresi d(u) manZilis
if( d(u) = ) break;
u dasamuSavebeli
for( v Q, (u, v) E)
{
if( d(v) > d(u) + w(u, v))
{
d(v) = d(u) + w(u, v);
p(v) = u;
{
}
amoagde
wveroebis
simravlidan;
es algoriTmi pirvelad holandielma mecnierma edsger deiqstram gamoaqveyna da mis saxels atarebs.
uxeSad rom vTqvaT, es igive xarb princips iyenebs, rogorc primis algoriTmi im gansxvavebiT, rom primis
meTodi yvela wveros SemaerTebeli damfaravi xis, deiqstras algoriTmi ki or wveros Soris umokles
manZilis mqone xis Seqmnas cdilobs.
savarjiSo
2.21:
O(|V |2 ).
savarjiSo
2.22:
savarjiSo
2.23:
gaaanalizeT deiqstras algoriTmi uaryofiT wonian grafebze. ratom ver mogvcems igi
swor pasuxs?
26
SeniSvna:
amocanis pirobis wakiTxvis Semdeg, sanam kiTxvas gaagrZelebT, Tqven TviTon dafiqrdiT sa-
pirveli, rac TavSi SeiZleba mogvivides, Semdegi ideaa: oTaxis suraTs davadoT
bade, Semdeg amovyaroT is wertilebi (maTTan mierTebul wiboebTan erTad), romlebic sagnebis naxatebs
emTxveva. miviRebT grafs, romlis wiboebs Soris manZili erTis tolad SeiZleba miviCnioT (anu grafi
ar iqneba Sewonili).
agreTve iseTi (erTi an ramodenime) elementi, romlis ganTavsebac orive mxares SeiZleba. aRsaniSnavia,
rom ganlagebis wesi tranzitulia: Tu
f1
fragmenti
f1
f2
unda aRmoCndes
f3
fragmentis marjvniv).
27
Tu
f3
nawilis marcxniv.
mimdevrobis
yvela elementisagan
k < l,
(Sesabamisad,
il
fragmenti
unda idges
ik
R = {(i , j )|i
fragmentis marcxniv}.
cxadia, rom es mimarTeba Seqmnis (erT an ramodenime) mimarTul aciklur grafs, romlis topologiuri
dalageba saZiebo mimdevrobas mogvcems.
savarjiSo
3.1:
savarjiSo
3.2: daamtkiceT, rom am acikluri grafebis topologiuri dalageba marTlac geneturi kodis
il
(i1 , ..., in ),
rom Tu
k < l,
maSin
ik
fragmentis marcxniv).
(mag. marTkuTxedebis) iseTi dajgufeba, rom erT jgufSi myofi obieqtebi erTmaneTs ar kveTdnen (sxvadasxva jgufSi moxvedrili obieqtebi erTmaneTs SeiZleba kveTdnen).
M11
M11
M12
M1
M10
M8
M7
M2
M3
M1
M9
M4
M10
M2
M6
M3
M12
M9
M8
M7
M4
M6
M5
M5
grafis SeRebvaSi
Semcireba. magaliTad, Tu gvaqvs grZel sityvaTa simravle (davuSvaT, ramodenime aseuli 32 simbolosagan
Semdgari), maTi sigrZis Semcireba SeiZleba (magaliTad 8 simboloianze) ise, rom sxvadasxva sityva iseve
sxvadasxva darCes. am SemTxvevaSi pirveli 8 asos aReba ar gamodgeba, radgan YmagaliTi1A da YmagaliTi2A
gansxvavebuli aRar iqneba. ra wesiT unda SevamokloT sityvebi ise, rom Sedegebi erTmaneTs ar daemTxvas?
yovel Sesamoklebel sityvas
wi
0
vi , vi,j
yvela SesaZlo
da
0
wi,j
vi .
Semdeg yoveli
da SevusabamoT wveroebi
0
vi,j
.
wi
sityvisaTvis
cxadia, rom Tu am grafSi aviRebT iseT wiboebs, romlebic erTmaneTTan ar iqneba dakavSirebuli (izolirebul wiboebs), calsaxa Semoklebebis siis Sedgenas SevZlebT. ase, nax. 17-Si moyvanil magaliTSi
SeiZleba aviRoT wiboebi
{(magaliTi1,
28
maai
magl
magaliTi1
maTi
mglT
magaliTi2
gaTi
magaliTi3
glTi
liTi
magaliTi4
xdeba xolme, rom gamyalbeblebi maT mier Seqmnil sabuTebs gzavnian (bankebSi, sagadasaxado sistemebSi gadasaxadebis asanazRaureblad, benzogasamarT sadgurebSi an sxva dawesebulebebSi gayalbebuli vauCerebiT saqonlis misaRebad da a.S.), romlebic identuri araa, magram garkveuli TvalsazrisiT
erTmaneTis msgavsia. rogor SeiZleba maTi aRmoCena?
pirvel rigSi dasadgenia, rogori sabuTebi iTvleba msgavsad (sxvadasxva amocanisaTvis es sxvadasxva
SeiZleba iyos, rogorc mag. msgavsi nomrebi, formebi, misamarTebi, saxelebi, gvarebi da a.S.).
yovel sabuTs grafis erTi wvero SevusabamoT da or wveros Soris wibo gavavloT, Tu Sesabamisi
sabuTebi msgavsia. cxadia, rom Tu aseT grafSi vipovniT wveroTa simravles, romelic
bevri wiboTi
iqneba SeerTebuli (magaliTad yvela yvelasTan - sruli qvegrafi), Sesabamisi sabuTebis ufro detaluri Seswavla SeiZleba Rirdes. am amocanis gadasawyvetad grafSi maqsimaluri sruli qvegrafis
amorCevis algoriTmebi SeiZleba gamogvadges.
29
radgan Cven orobiT sistemaSi moqmedebas vapirebT, aucilebelia Sesabamisi operaciebis gansazRvrac.
Tu Cven aTobiT ariTmetikaSi (Sesabamisad algebraSi) mimatebis, gamravlebis, gayofis operaciebi gvaqvs
SemoRebuli, analogiuri operaciebi unda SemoviRoT orobiT algebraSic, anu
gorc amas misi fuZemdeblis, ingliseli maTematikosis jorj bulis (George
4.1
, ro-
bulis algebraSi
gadad rom vTqvaT, es klasikuri logikis maTematikur enaze gadatanis erT-erTi (yvelaze gavrcelebuli) magaliTia. logikaSi gvaqvs WeSmariti da mcdari gamonaTqvamebi: yoveli gamonaTqvami (magaliTad, Y3 + 4
SeuZlebelia.
bulis ZiriTadi idea gamonaTqvamebis maTematikur cvladebze gadatana iyo: yoveli gamonaTqvami
WeSmaritia (maSin
X = 1),
an mcdari (X
= 0).
an
2 7 = 1A.
Z =YguSin mze
amovida da amavdroulad wvimdaA maTematikurad Semdegnairad Caiwereba: Z = X&Y . saboloo jamSi,
Tu guSin marTla amovida mze (X = 1) da am dros marTlac wvimda (Y = 1), maSin Z = X&Y = 1 WeSmariti
Tad: YguSin mze amovida da amavdroulad wvimdaA, an Y2
am magaliTebSi, Tu
X =YguSin
mze amovidaA,
+ 3 = 5 da
Y =YwvimdaA, maSin
amavdroulad
sruli gamonaTqvami
iqneba.
Sesrulebuliyo, an meore.
mesame mniSvnelovani operacia uaryofaa: gamonaTqvamis Sebrunebulis aReba.
magaliTad, Yxval iwvimebsAYxval
ar
iwvimebs; Y3
+ 7 = 13 3 + 7 6= 13A
da a.S.
gamonaTqvamis
X .
bulis algebris es sami operacia qarTul enaze Semdegnairad SeiZleba CamovayaliboT: gamonaTqvami
Z = X&Y
WeSmaritia, Tu
WeSmaritia;
Z = X
da
WeSmaritia, Tu
X 0, Y 0
f : B2 B
gamonaTqvamis
h:BB
WeSmaritia, Tu
an
X, Y
gamonaTqvamis koniunqcia
X&Y
diziunqcia
XY
or cvladian funqcias
Z = XY
mcdaria.
g : B2 B
ewodeba, romlis
Z gamonaTqvamis uaryofa Z
Z cvladis mniSvnelobaa 0.
erT cvladian
X
0
0
1
1
Y
0
1
0
1
X&Y
0
0
0
1
X Y
0
1
1
1
X
1
1
0
0
da
Y)
yvela
SesaZlo kombinaciisaTvis.
SeniSvna:
X&Y = X Y = X Y , X = X .
bulis algebraSi usasrulod bevri funqciis moyvana SeiZleba, magram mTavari isaa, rom yvela es funqcia zemoT moyvanili diziunqciis, koniunqciisa da uaryofis saSualebiT gamoisaxeba.
funqciebis magaliTad SegviZlia moviyvanoT:
30
f (x1 , x2 , x3 )
= x1 x2 x3 ,
g(x1 , x2 , x3 , x4 ) = (x1 x2 x3 x4 , x1 x2 ),
h(x1 , x2 )
= (x1 x2 , x1 x2 , x1 x2 x1 x2 )
am magaliTSi
pasuxad (igive
f : B3 B.
g funqcia 4
g : B4 B2 ,
xolo
hB2 B3 .
raime A simravlidan
torSi).
maTematikurad es Semdegnairad Caiwereba:
am TavSi Cven
f :B B
: An C m .
z1 = x2 x3 ;
2.
z2 = x1 z1 = x1 x2 x3 ;
3.
z3 = z2 x4 = x1 x2 x3 x4 ;
4.
z4 = z1 = x2 x3 ;
5.
z5 = x2 ;
6.
z6 = x1 z5 = x1 x2 ;
7.
z7 = z6 x3 = x1 x2 x3 ;
8.
z8 = z7 x4 = x1 x2 x3 x4 ;
9.
z9 = z8 z4 = x1 x2 x3 x4 x2 x3 ;
10.
z10 = z9 z3 = x1 x2 x3 x4 x2 x3 x1 x2 x3 x4 .
logikurad ismis ori SekiTxva: ramdeni operaciis Catareba gvixdeba am gamosaxulebis gamosaTvlelad? ramdeni bijia (droa) saWiro am gamosaxulebis gamosaTvlelad? am SekiTxvebze pasuxis gacema
Semdegnairad SeiZleba:
operaciaTa raodenobis dasaTvlelad sakmarisia logikuri operaciebis (koniunqcia, diziunqcia, uaryofa) daTvla:
(x1 x3 ), x2 da (x2 x3 gamosaxulebebis gamoTvla, radgan isini erTmaneTze damokidey1 = x1 x2 da y2 = x1 x2 x3 gamosaxulebelisagan, romelTa gamoTvla
1.
z1 = x2 x3
2.
z3 = z1 z2 = x1 x2 x3 x4
3.
z8 = z7 x4 = x1 x2 x3 x4
4.
z10 = z8 z9 = x1 x2 x3 x4 x2 x3 x1 x2 x3 x4 .
da amavdroulad
z2 = x1 x4
da amavdroulad
da amavdroulad
z4 = z1 = x2 x3
da amavdroulad
z5 = x2
da amavdroulad
da amavdroulad
z7 = z5 z6 = x1 x2 x3 ;
z9 = z4 z3 = x2 x3 x1 x2 x3 x4 ;
31
z6 = x1 x3 ;
aq mniSvnelovania is faqti, rom garkveuli operaciebi erTdroulad sruldeba, ris xarjzec funqciis
siRrme
4.1: f : Bn Bm
misi
x2 ) = 3, C(x2 ) = 0
C(f (x1 , x2 )) = 3 + 0 = 3,
gamoviangariSoT TiToeulis siRrme da aviRoT maTi maqsimumi (funqiis yoveli mniSvnelobis gamoTvla
SeiZleba erTdroulad):
savarjiSo
4.1:
ganixileT funqciebi
h(x1 , x2 ) = (x1 x2 , x1 x2 , x1 x2 x1 x2 ).
da
im amocanebSi, romelTa ganxilvas Cven vapirebT, mniSvnelovan rols oris moduliT mimateba asrulebs.
es ganpirobebulia imiT, rom kompiuteruli sistemebi orobiT anbanzea agebuli.
orobiTi mimateba (rogorc mas sxvanairad uwodeben) gansazRvrulia Semdegnairad:
f (x, y) = x y = 1 maSin da
0 0 = 0, 0 1 = 1, 1 0 = 1, 1 1 = 0.
funqcia
rogor SeiZleba am funqciis koniunqiis, diziunqciisa da uaryofis meSveobiT Cawera? pirvel rigSi
qarTul enaze CamovayaliboT, Tu cvladebis ra mniSvnelobebisaTvis xdeba funqcia
f (x, y) = x y
xy
da
y=0
1:
an
x=0
da
y = 1.
=
x = 1 da y = 1 an x = 1 da y = 1. es Semdeg
= 0A (analogiurad Yy = 0A) gamonaTqvamebis
dagvWirda, rom x y gamosaxuleba gamosuliyo 1, Tu
funqcias ganapirobebs:
Yx
1,
x=1
= 1A
zustad
(Yy
= 1A)
f (x, y) = x y = x y x y .
erTi cvladia
aq Yx
1.
zogadad, Tu raime ucnobi funqcia mocemulia cxrilis saxiT, misi formulebiT Cawera Semdegnairad
SeiZleba:
mocemulia funqcia
0, y = 1
da
ci ,
x =
x = 1, y = 0);
f (x1 , x2 , ..., xn );
ci
x y
da
ci = 0,
x y );
x y x y).
aseTi saxiT Caweril funqciebs, sadac koniunqciebiT Sekruli cvladebiT (an maTi uaryofebiT) gamosaxulebebi SeerTebulia diziunqciebiT, diziunqciuri normaluri forma ewodeba.
savarjiSo
4.2:
32
x0
0
0
0
0
1
1
1
1
x1
0
0
1
1
0
0
1
1
x2
0
1
0
1
0
1
0
1
f1
1
0
0
1
1
1
0
0
f2
0
1
1
0
1
1
0
0
f3
1
0
1
1
0
1
1
0
f4
1
0
0
1
0
1
0
0
x(y z) = x y x z; x 0 = x; x 1 = 1; x 0 = 0; x 0 = x.
savarjiSo
4.3:
4.4:
daamtkiceT:
x x y = 1; x x y = x y .
rogorc simravleTa TeoriaSi, aseve bulis logikaSic mniSvnelovania e.w. de morganis kanonebi:
xy = xy; xy = xy.
savarjiSo
4.5:
savarjiSo
4.6:
risi tolia
(x) ?
de morganis kanonebze dayrdnobiT disiunqciuri normaluri formis gadayvana SeiZleba e.w. koniunqciur normalur formaSi - iseT gamosaxulebaSi, romelic Sedgeba cvladebis diziunqciuri gaerTianebebiT da am gamosaxulebaTa koniunqciebiT gaerTianebebisagan. koniunqciuri normaluri formiT
da
Tu mocemuli gvaqvs raime funqcia, zogjer misi operaciebisa da bijebis raodenobis Semcireba SeiZleba zemoT moyvanili tolobebis meSveobiT:
(x1 x2 x3 x4 x1 x2 ) = x1 (1 x4 x2 ) x2 x3 = x1 x2 x3 .
4.7:
4.2
mimatebis operacia imdenad xSiria Cvens yoveldRiur cxovrebaSi, rom bevr adamians, albaT, arc ki
mosvlia TavSi azrad is faqti, rom es procesi arc Tu ise martivia. magaliTad, yvela scrafad gamogviTvlis
5 + 3 = 8,
magram
yuradRebas moiTxovs. zogadad, rac ufro grZelia Sesakrebi ricxvebi, miT ufro did dros vandomebT
gamoTvlas.
miuxedavad imisa, rom Sekrebis yvelaze martivi algoriTmi - qveS miweriT mimateba - sayovelTaod cnobilia, Cven mainc SevecdebiT mis ganxilvasa da gaanalizebas da amas rogorc aTobiT, aseve orobiTi
ricxvebis magaliTze gavakeTebT.
33
4.2.1
427
613
0
427
613
40
427
613
040
427
613
1040
n cifriani ricxvi an1 ...a0 da bn1 ...b0 , misi jami dn ...d0 Semdegi algoriTmiT
SeiZleba gamoviangariSoT:
c0 = 0;
for( i = 0, i < n, i + +)
{
zi = ai + bi + ci mod 10;
if( ai + bi + ci > 9 )
ci+1 = 1;
else ci+1 = 0;
}
dn = cn ;
imis dasamtkiceblad, rom moyvanili algoriTmi marTlac swor Sedegs mogvcems, saWiroa Semdegi maTematikuri formula:
savarjiSo
4.8:
daamtkiceT toloba
savarjiSo
4.9:
a = (an1 ...a0 )2
da
b = (bn1 ...b0 )2 .
(dn ...d0 )2 :
+
dn
an1
bn1
dn1
... a1
... b1
... d1
a0
b0
d0
c0 = 0;
for( i = 0, i < n, i + +)
{
zi = ai + bi + ci mod 2;
if( ai + bi + ci > 2 )
ci+1 = 1;
else ci+1 = 0;
}
dn = cn ;
(xn xn1 ...x0 )2 = 2n xn + 2n1 xn1 + ... + 20 x0 .
savarjiSo
4.10:
savarjiSo
4.11: wina savarjiSos Sedegis gamoyenebiT daamtkiceT zemoT moyvanili algoriTmis siswore.
daamtkiceT toloba
aRsaniSnavia, rom
tolia.
ci+1 = 1
ai , bi da ci
ai = bi = 1,
cvladidan zustad erTia erTis toli, maSin amavdroulad mesame cvladic (anu
ci )
Tu am ori
dadgena, aris Tu ara ori cvladidan zustad erTi erTianis toli, SeiZleba oris moduliT mimatebiT:
ai bi .
aqedan gamomdinare, imis dadgena, gvxvdeba Tu ara ori an sami erTiani sam cvladSi, Semdegi
formuliT SeiZleba:
cvladi aris
(aRsaniSnavia, rom
1).
34
ai bi = 1
aqedan gamomdinare
zi
da
ci (i = 1, ..., n 1)
zi = xi yi ci ,
ci+1 = ai bi (xi yi )ci ,
dn = cn .
magaliTi:
7
1
1
1
1
a
b
d
c
6
1
1
0
1
5
0
1
1
0
4
0
1
1
0
3
1
0
1
0
2
0
0
0
0
1
0
1
1
0
0
1
0
1
0
a b
&
a& b
a b
zi
da
ci
ai bi
&
ci
&
c i+1
nax. 19:
aRsaniSnavia, rom
zi
da
ci+1
zi
cvladebis gamosaTvleli sqema
operacia imdenad xSirad gamoiyeneba, rom misi sqema erTi simboloTia aRniSnuli,
4.12:
T ()
da
C().
35
an bn
cn+1 FA
ai bi
c i+1 FA
...
cn
zn
a1 b1
...
ci
FA
c2
zi
n
a0 b0
FA
c1
z1
c0
z0
CRAn
savarjiSo
4.13:
T () = 0
C() = 0,
da
gamo, rom maTi realizacia sxva elementebis realizaciasTan SedarebiT sakmaod mcirea da, amave dros,
uaryofebs xSirad iyeneben damxmare elementebad (sxvadasxva teqnikuri mizezebiT or erTmaneTze miyolebul uaryofas svamen xolme). amas garda, teqnikurad SesaZlebelia elementebis sqemis iseTi realizacia, rom
savarjiSo
4.14:
iswinebiT, rom
T (), C()
T (F A)
imis gaTval-
T () = C() = 0.
z1 cvladi ar gamoiTvleba, sanam ar iqneba gamoTvlili c1 da, zogadad, zi cvladis
ci1 . aqedan gamomdinare, T (CRAn ) = 4n, C(CRAn ) = 9n
davuSvebT, rom T () = C() = 0).
4.15:
daamtkiceT
savarjiSo
4.16:
daxazeT
T (CRAn ) = 4n
da
C(CRAn ) = 9n
da
CRA4
tolobebi.
sqemebi.
bunebrivia Semdegi SekiTxva: SesaZlebelia Tu ara bijebis raodenobisa da elementebis ricxvis Semcireba?
Tu davakvirdebiT nax. 21 (a)-Si pirvel or
FA
elementi, romelic
z1
da
c1
a1 b1
a1 b1
c2
FA
FA
a0 b0
c1
FA
z1
1
2
c0
z0
c2
FA
1
1
1
Mux 2
0
2
z1
(a)
a0 b0
FA
0
0
1
c0
c1
z0
(,)
z1
c12 ).Semdeg,
da
c2
im SemTxvevisaTvis, rodesac
rodesac
c1
21 (b)).
36
z1 =
zogadad,
M uxn
a1
bn . . . b1
an . . . a1
bn+1
a n+1
b1
c
&
&
Mux 1
z1
Mux n
zn . . . z1
z n+1
Mux 1
Muxn
zi =
nax. 21 -Si moyvanil sqemas uwodeben
+1
CSA2n+1 ,
ori
n+1
bi ,
ai ,
Tu
Tu
c = 0,
c = 1.
bitian ricxvs
ewodeba,
Select
bitian ricxvs
b2 n+1-1 a2 n+1-1
b2 n a2 n
...
CSA 2 n
a0 b0
FA
c0
1
2 n+1
...
1
2 n+1-1
c 21n+1
z0
1
2n
CSA 2 n
c
z
Mux 2 n+1
0
2 n+1
b2 n-1 a2 n-1
...
...
0
2 n+1-1
0
2n
...
da
a0 b0
CSA 2 nc
c2 n
z 2n
z 2 n+1-1
z 2 n-1
z0
CSA 2 n+1
CSA1
nax. 23:
CSA1 ,
i = 1; n + 1.
romelic or
bitian ricxvs
c1
Mux n+1
nax. 22:
zogadad,
CSA2n+1
ori
2n+1
F A.
Z0 = A0 + B0
da
amavdroulad
Z10 = A1 + B1 + 0
37
da
Z11 = A1 + B1 + 1.
amis Semdeg,
c2n
Z1 =
aq
Z0 = (z2n 1 , ..., z0 )
da
Z10 ,
Z11 ,
Tu
Tu
c2n = 0,
c2n = 1
c2n+1 =
c02n+1 ,
c12n+1 ,
Tu
Tu
c2n = 0,
c2n = 1
induqciis Semowmeba: Tu
savarjiSo
Sekrebs or
4.17:
CSA2n
daamtkiceT, rom Tu
n+1
CSA2n+1
CSA2n
2n
bitian ricxvs;
sworad Sekrebs or
sworad Sekrebs or
2n
2n+1
bitian ricxvs.
CSA2n+1
sworad
bitian ricxvs.
C(CSA2n+1 )
4.18:
daamtkiceT toloba
T (M ux2n +1 ) = 2
O(n),
aramed
O(log n)
ori
noba. es gasakviri ar aris: met operacias vatarebT, oRond erTdroulad da amis xarjze vigebT dros.
SesaZlebelia logariTmul droSi gamoTvla ise, rom elementebis raodenoba Zalian ar gaizardos),
magram maTi ganxilva Cveni kursis programas cdeba.
4.3
n N bitiani sistemebis ageba SeiZleba. roden bitiani orobiTi ricxvebis dasamuSaveblad, maqsimaluri ricxvi,
n
rac SeiZleba warmovadginoT, iqneba 2 1: (11...1)2 . masze erTiT meti ricxvi ukve n + 1 bitiani iqneba:
(100...0), sadac marjvena n biti nulis tolia, anu Tu Cven mxolod n bitian ricxvebs ganvixilavT da
n
ufro maRal bitebs ubralod vagdebT, nebismier ariTmetikul operacias 2
moduliT ariTmetikaSi
n
vatarebT, rac imas niSnavs, rom nebismieri 0 x < 2 ricxvisaTvis SegviZlia gamoviangariSoT iseTi
n
Sesabamisi y , rom x + y = 0 mod 2 , an, sxva sityvebiT rom vTqvaT, x ricxvis Sebrunebuli (uaryofiTi)
n
moduliT 2 .
bunebrivia SekiTxva: rogor SeiZleba gamoviangariSoT mocemuli x ricxvis Sebrunebuli y ? Tu ganvin
n
n
xilavT ricxvs 0 mod 2 = 2 = (11...1)2 + 12 mod 2 , SeiZleba davaskvnaT, rom x ricxvis Sebrunebulis
gamosaTvlelad unda gamoviangariSoT iseTi z ricxvi, rom x + z = (11...1)2 da Semdeg y = z + 1.
38
savarjiSo
4.20:
x + z = (11...1)2 ,
4.21:
maSin
WeSmaritia toloba
aqedan gamomdinare,
x ricxvisTvis movZebniT
2n ) iqneba y = z + 1.
bitiani
cxadia, Tu aviRebT
savarjiSo
iseT
ricxvs, rom
da
ricxvebisaTvis
x + z = 0 mod 2n .
x = (xn1 xn2 ...x0 )2 ricxvis Sebrunebulia y = x+1 mod 2n = (xn1 xn2 ...x0 )2 +1 mod 2n .
a = (an1 an2 ...a0 )2 da b = (bn1 bn2 ...b0 )2
n
n
jami: d = a b mod 2 = a + b + 1 mod 2 .
B
Add n
B
Add n
aq
Addn
ori
Add n
(a)
nax. 24: ori
(b)
(g)
bitiani ricxvis gamoklebis sqema (a), (b) da mimateba-gamoklebis kombinirebuli sqema (g)
lovani araa.
savarjiSo
radgan
x = x 1,
24(a) da 24(b) naxazebSi naCvenebi sqemebi erTsa da igive Sedegs iZleva. aqedan gamom-
dinare, SesaZlebelia 24(g) naxazSi naCvenebi sqemiT Sekrebisa da gamoklebis erTiani sqemis Seqmna: Tu
makontrolebeli signali
L = 1,
x = x 1
L=0
mimateba.
x = x 0.
savarjiSo
4.23:
daamtkiceT, rom
savarjiSo
4.24:
L=0
da
dn
n
Cven 2
L = 1,
Ses-
mimateba.
niSans gviCvenebs: Tu
gareSe), riTic ufro advilia ZiriTadi principebis gageba da Semdgom sxvadasxva praqtikuli realizaciis aTviseba.
4.4
39
427
613
1281
427
613
1281
4270
427
613
1281
4270
256200
427
613
1281
4270
256200
261751
A = (an1 ...a0 ) da B = (bn1 ...b0 ) ricxvebis gadasamravleblad gamoiangariSe Ck = 10k A bk da maTi jami
C = C0 +C1 + +Cn1 . aRsaniSnavia, rom Abk ricxvis gamosaTvlelad calke algoriTmia saWiro, xolo
10k x mocemuli x ricxvis k poziciiT marcxniv YCaCoCebasA niSnavs (an marjvniv Sesabamisi raodenobis
nulebis miweras).
savarjiSo
4.25:
daamtkiceT, rom zemoT moyvanili qveS miweriT gamravlebis meTodi marTlac swor pa-
suxs iZleva.
B = (bn1 ...b0 )
miniSneba:
cxadia, rom
A = (an1 ...a0 )
da
10110
10011
10110
101100
0000000
00000000
101100000
110100010
4.26:
savarjiSo
4.27:
daamtkiceT, rom qveS miweriT gamravlebis meTodis operaciaTa raodenobis zeda zRva-
ria
O(n2 ).
ra aris misi bijebis raodenobis zeda zRvari? SeiZleba Tu ara am meTodis paralelizacia?
n bitiani ricxvebis qveS miweriT gamravlebis algoM ultBinn , romelic orobiTSi Caweril n bitian ricxvebs amra gansxvavebaa C(M ultDecn ) da C(M ultBinn ) zeda zRvrebs Soris? T (M ultDecn ) da T (M ultBinn )
savarjiSo
riTmi
4.28:
M ultDecn
ravlebs.
4.4.1
(Wallace Tree)
Ci
C0
C1
C2
C3
C4
C
daxsomebuli
10110
10011
10110
101100
0000000
00000000
101100000
110100010
001111100
C0
C1
C2
C3
C4
C
40
Ci = (ci,4 ci,3 ci,2 ci,1 ci,0 )2 da yovel aseT ci,j cvlads vuwodoT 2i+j
0
1
2
3
rigis. aqedan gamomdinare, gveqneba 1 cali 2 = 1 rigis, 2 cali 2 rigis, sami 2 rigis, oTxi 2 rigis,
4
5
6
7
8
xuTi 2 rigis, iseve oTxi 2 rigis, sami 2 rigis, ori 2 rigis da erTi 2 rigis cvladi.
c0,0 cvladi pirdapir unda gadavides, rogorc saboloo pasuxis yvelaze dabali biti: c0 = c0,0 (20 rigis
21
21
22
rigis pasuxs (daxsomebul bits, romelic SemdegSi ufro maRali bitebis jams daemateba).
analogiurad vajamebT
am wesiT vajamebT
22
22
rigis da erT
23
da
rigis bits.
2i+1
rigis bitebs,
bolos Cveulebrivi
C0
C0, 0
C0, 1
C1, 0
C0, 2
C1, 1
C2, 0
d 1, 1
HA
d 1, 2
FA
C0, 4
C1, 3
C2, 2
C3, 1
C4, 0
FA
FA
C2, 4
C3, 3
C4, 2
C3, 4
C4, 3
HA
aRsaniSnavia, rom
HA
FA
d 1, 4
d 1, 4
FA
FA
HA
d 1, 6
d 1, 6
d 1, 7
d 1, 7
d 1, 8
d 1, 8
d 2,3
HA
d 2,4
HA
HA
HA
C3
d 3, 4
C4
HA
d 3, 5
C5
d 3, 5
C6
d 2,5
d 2,5
FA
d 3, 3
d 3,4
d 2,4
FA
d 1, 5
d 1, 5
FA
C2
d 1, 5
d 1, 5
C4, 4
d 1, 3
d 2,2
d 2,3
d 1, 4
C4, 1
C1, 4
C2, 3
C3, 2
HA
d 1, 3
d 1, 3
C3, 0
C0, 3
C1, 2
C2, 1
d 1, 2
C1
d 2,5
d 2,6
d 2,6
d 2,7
d 2,7
d 3,6
HA
HA
d 2,8
d 2,8
d 3,6
C7
Add6
d 3, 7
C8
d 3, 7
d 3,8
C9
d 3, 8
HA
d 3, 9
d 2,9
C10
FA
41
da
sqemaa, sadac
C = 0.
savarjiSo
4.29: FA
HA
sqema.
zemoT moyvanil meTods volesis xe ewodeba, radgan mis sqemas xis struqtura aqvs: yovel SreSi SesakrebTa
raodenoba iklebs. uxeSad rom daviTvaloT, sami Sesakrebi orze dadis.
misi ZiriTadi ideac esaa:
rom
daviyvanoT,
a + b + c = x + 2y .
savarjiSo
4.30:
Sedegad?
42