Sie sind auf Seite 1von 9

Paraqitja e propozim tezs pr fitimin e lejes pr pregatitje t tems s

magjistraturs

I
Krkes
(Krkesa i drejtohet kshillit Edukativo Shkencor t Fakultetit)
Prmbajtja e krkess:
E lus titullin e lartprmendur ta pranoj krkesn time pr paraqitje t tems s masterit dhe t
formoj komision pr notim dhe prshtatshmri t kandidatit dhe tems.
Emri dhe Mbiemri i kandidatit: Blerta Prevalla
Emri i programit t masterit: Zhvillimi i Softverve dhe Aplikacioneve
Fakulteti:
Fakulteti i Shkencave dhe Teknologjive Bashkkohore
Data e dorzimit:
02.10.2009
Shpjegim i shkurtr i krkess bashk me biografin e kandidatit:
Kam lindur n Ohr m 09.07.1985. Kam kryer shkollen fillore n Vllazrim Bashkim Ohr
ndrsa shkolln e mesme n Niko Nestor Strug. Prej 2003 2007 studiova n Univerzitetin e
Evrops Juglindore n Tetov, n Fakultetin e Shkencave dhe Teknologjive t Komunikimit dhe
mbarova me sukses studimet me mesatare 9.95.
Si tem diplome kisha Database security- analizn e shtjeve t siguris n Oracle databazat
dhe arrita sukses maksimal - notn 10, nn mentorimin e prof. d-r Margita Kon Poposka.
Gjat vitit t fundit t studimeve, kam punuar si IT support pr programin edukativ Angel
pran qendrs informatike n SEEU. Prej 01.10.2007 punoj si asistente me orar t plot n
Universitetin FON, dhe n t njjtn koh fillova studimet e magjistraturs pr Software and
Application Development pran UEJL-it, dhe me sukses i dhash t gjitha provimet e programit
studimor me mesatare 9.7.
Kam qn e inkuadruar n projektin e Ministris s Arsimit EDUBUNTU, (projekt pr trajnimin
e profesorve t shkollave t mesme pr shfrytzimin e Linux Edubuntu sistemit operativ) n
prgatitjen e materialeve dhe realizimin e projektit pr 2 muaj.
Prve kualiteteve profesionale, flas rrjedhshm gjuhn Maqedone dhe Angleze, dhe kam
njohuri mesatare t gjuhve: Italiane dhe Serbo Kroatishte.
Kam t pranuara 2 punime hulumtuese, njra n konferencn e IX t ETAI-t, dhe tjetra n
konferencn e dyt internacionale mbi Modulimet dhe Simulimet Kompjuterike (ICCMS 2010,
Sanya China)
Pasiq i kam prfunduar me sukses t gjitha provimet e parapara sipas programit t drejtimit n
fjal, krkoj nga kshilli edukativo - shkencor i fakultetit t punoj n temnAnaliza e
performancave t programeve n baz t kompleksitetit kohor dhe hapsiror t tyre.

II

Emri i programit studimor: Zhvillimi i Softverve dhe Aplikacioneve


Fakulteti: Fakulteti i Shkencave dhe Teknologjive Bashkkohore

PROPOZIM TEZA E MAGJISTRATURS

Analiza e performancave t programeve


n baz t kompleksitetit kohor dhe
hapsinor t tyre

Mentori i propozuar:

Kandidati

Prof. D-r Agni Dika

Blerta Prevalla

Data e dorzimit
02.12.2009

Prmbajtja e propozim - tezs


1. Formulimi i problemit
Me performanc t programit nnkuptojm sasin e memories s kompjuterit dhe kohn e
nevojshme pr t egzekutuar nj program.
Performancn e programit mund ta prcaktojm n mnyr analitike nprmejt analizs
s performancave t tij, ose edhe n mnyr eksperimentale prmes matjeve t ndryshme.
T analizohet nj program do t thot t parashikohet se far resurse do t'i nevoiten atij
programi. Resurset si q sht memorja kryesore ose periferike, brezi i komunikimit, apo edhe
komponentet tjera hardverike jan primare, por shpesh ajo q na intereson ne sht koha e
ekzekutimit t programit n kompjuter.
Pr t analizuar performancn e nj programi n kt punim do t:

Shihet se ka e prcakton s pari nj program se a ka ose jo performanc t mir.

Jepen n form informative parametrat q merren gjat prcaktimit t performancave


(madhsia e programit, nevoja pr hapsir memoruese pr t dhnat, etj.).

Krahasohen programe q kryejn nj pun t caktuar, por q mbshteten n algoritme t


ndryshme.

Kontrollohet ndikimi i shpejtsis s kompjuterit. Ktu do t merren programe dhe t


njjtit do t ekzekutohen n disa kompjuter me karakteristika t ndryshme, ashtu q t
shihet se sa koh nevojitet pr ekzekutimin e tyre, a i plotsojn krkesat pr memorie
operative etj.

Bhet matja e kohes q i nevoitet nj programi duke i prdorur funkcionet prkatse q


ofrohen nga vet gjuha programuese.

Gjinden rastet m t mira dhe m t kqija gjat egzekutimit t programeve, si q jan:


Big Oh, Omega, Theta dhe Litle Oh.

Mirret parasysh kompajleri si faktor shum i rndsishm pr t determinuar sa hapsir


i nevoitet programit etj.

Klasifikimi i algoritmeve n baz t kohs relative ose madhsis relative t hapsirs


memoruese q sht e nevojshme paraqet nj interes t veant pr shkruesit dhe shfrytzuesit e
programeve, n baz t t cilave pastaj mund t specifikohet rritja e krkesave pr koh dhe
hapsir n varshmri nga vlerat hyrse.

2. Qllimet i punimit
Si qllim kryesor i ktij punimi sht t analizohen performancat e programeve. Me
performanc t programit nnkuptojm madhsin e memories dhe kohs q nevoitet pr
egzekutimin e nj programi. Si t kemi analizuar performancn ne do t mundemi t krkojm
zgjidhje optimale sa i prket reduktimit t kohs s egzekutimit t nj programi, e cila mund t
jet edhe shum e gjat. T krahasohet kompleksiteti kohor i dy programeve q zgjidhin t njjtin
problem dhe t parashikohet rritja e kohs s egzekutimit duke ndryshuar karakteristikat e q
kan ndikim n shpejtsin e ekzekutimit.
N vijim jan numruar disa nga arsyet e analizs s performancave t nj programi.

Programin mund ta egzekutojm n multi-user system ku pr to kemi hapsir te


caktuar t memories.

Nj program mund t ket m tepr zgjidhje ku secils i ndryshon krkesa pr


hapsir.

Kompleksiteti hapsinor mund t na definoj kufirin e siprm t t dhnave q


programi mund t mbaj.

Disa programe kan nevoj pr rezultat n koh aktuale (real time response).

Nse kemi mundsi t shfrytzimit t disa programeve, ne t mundemi me zgjedhe


programin m t shpejt.

3. Fusha e hulumtimit

Do t analizohet kompleksiteti kohor dhe hapsinor si faktor t performancs s


programeve.
Kompleksiteti hapsinor paraqet madhsin e memories q nevoitet pr egzekutimin
komplet.Pr cdo sistem kompjuterik duhet t dim paraprakisht a kemi memorie t mjaftueshme
pr t egzekutuar (run) programin.
Kompleksiteti hapsinor ndahet n: hapsira q ndahet pr instruksionet, dhe hapsira q ndahet
pr t dhnat (vlerat e konstantave dhe variablave).
Hapsira pr t dhnat (data space) ndahet n hapsir pr: konstanta, variabla, environment
stack space hapsira n t ciln ruhen informatat pr vazhdimin e programeve t
pakompletuara, zakonisht kur prdoret rekurzioni.
N hapsirn e rezervuar pr t dhnat ne na intereson nr i bajtve q i nevoiten nga memoria pr
variablat dhe konstantat.
Kompleksiteti kohor paraqet kohn kompjuterike q i duhet nj programi t egzekutohet
komplet.
Kur programi arrin kufirin e siprm (Upper Limit) abortohet, shpton programin q mos hyj n
loop t pafundme, programet pr t cilat duhet t pritet nj koh e gjat nuk jan t pranueshme.
Varet nga faktort e njjt si varej edhe kompleksiteti hapsinor. Pra mund t themi se nj
program do t egzekutohet m shpejt n kompjuter i cili egzekuton
instruksione n
second, sesa n nj q egzekuton

instruksione n second.

Gjithashtu pr kompleksitetin kohor duhet t mirren parasysh kto fakte se:

Kompajler t ndryshm koh e ndryshme egzekutimi


Instanca problemesh t vogla marrin m pak koh!
Koha e kompajlimit nuk nvaret nga karakteristikat e instancave!
Supozojm se nj program mund t egzekutohet disa here pa u rikompajluar!

Gjithashtu si pjes studimi dhe analize do t mirret edhe: numrimi i operacioneve dhe numrimi
i hapave.
Numrimi i operacioneve
-

Gjen sa operand (operacion) ka dhe sa her secila prej tyre prsritet

Me kt detektojm cili operacion ndikon n kompleksitetin e kohs.


Numrimi i hapave

Ne na intereson si rritet koha e egzekutimit me rritjen e numrit t vlerave hyrse. N kt rast, nr


i hapave do t llogaritet si funksion i numrit t vlerave hyrse.
Nj hap sht cdo njsi e llogaritshme q sht e pavarur nga karakteristikat e selektuara.
Nj hap i programit sht nj segment i rndsishm i rndsishm i nj program pr t cilin
koha e egzekutimit sht e pavarur nga karakteristika e shembullit.

4. Realiteti dhe arsyetimi i tems s masterit


Nj problem i caktuar mund t zgjidhet duke shfrytzuar algoritme t ndryshme. Por, gjat
ksaj shtrohet pyetja se cila sht zgjidhja optimale e problemit, cili sht algorimi m i mir dhe
si prcaktohet ai? Duhet patur kujdes kur zgjedhet algoritmi m i mir sepse kjo sht dika
relative. Ajo ka llogaritet si opcion optimal pr nj algoritm nuk do t thot se vlen gjat
zgjidhjes s problemeve t ndryshm. Prandaj, gjithnj duhet t pyetemi se ka sht m e mir
pr zgjidhje t nj problemi t caktuar, a sht shpejtsia e ekzekutimit apo hasira memoruese q
nevojitet pr ekzekutim t tij.
Pra, performanca e programeve analizohet pr tu gjetur optimalja nse kemi zgjedhje
prej disa programesh apo algoritmesh dhe mundsisht edhe optimizimi i tyre, dhe t shihet se si
performanca e programeve mund t shprehet n mnyr matematikore.
Si t gjejm nse mundet q rendi i nj programi t dhn t modifikohet ose jo?
Kjo sht pyetje e vshtir pr tu prgjigjur. Nuk egziston ndonj teknin fikse e cila do t
prcaktoj nse algoritmi mund t optimizohet ose jo, ose nse egziston algoritm m optimal pr
zgjidhjen e ndonj problemi t dhn. Kjo m tepr drejtohet nga vet logjika.
5. Teori, qndrime hipotetike
Dy arsye te rndsishme prse ne determinojm numrin e operacioneve dhe numrin e hapave
jan:
- Pr t krahasuar kompleksitetin e kohs t dy programeve q llogarisin t njjtin funksion
dhe
-

Pr t parashikuar rritjen e kohs s egzekutimit duke ndryshuar karakteristikat e


instancs.

Asnjra prej ktyre numrimeve nuk na jep matje t sakt t kompleksitetit t kohs.
Kur prdorim numrimin e operacioneve ne fokusohemi n ndonj key operacion dhe i
ignorojm t tjerat. Step count-i (numruesi i hapave) prpiqet ta tejkaloj kt munges duke
llogaritur pr t gjith operacionet. Sidoqoft, nocioni pr hapin (step) sht vet i pasakt. Ashtu
si x=y edhe x=y+z+(x/y) llogariten si nj hap i vetm. Pr shkak t pasaktsis t asaj se cka
nje hap do t thot, hapi i sakt nuk sht shum i prdorshm pr qllime krahasuese.
Prjashtim nga ky observim bhet kur diferenca n step counts e dy programeve sht shume e
madhe si.p.sh. 3n+3 prkundr 100n+10. Me siguri t madhe mund t parashikojm se programi
me step count 3n+3 do t egzekutohet m shpejt se programi me step count 100n+10. N kt
rast nuk sht e patjetrsueshme t dim numrin e sakt t hapave, mjafton t dime se sht
prafrsisht si.psh sht mbi 80n ose 85n ose 75n pr t arritur n konkluzionin e njjt.
Nse kemi dy programe me kompleksitet c1
+ c2n dhe c3n, ather ne e dim se programi
me kompleksitet c3n do t jet m i shpejt se ai me kompleksitet c1

+ c2n pr vlera shum

t mdha t n-it. Ndrsa pr vlera t vogla t n-it secili prej tyre mund t jet m i shpejt

nvarsisht prej c1, c2, dhe c3-shit. Shembull, nse c1=1, c2=2 dhe c3=100, ather c1

c2n c3n pr n < 998.


Panvarsisht nga vlerat e c1, c2 dhe c3 do t ket nj n sipas t cilit programi me kompleksitet
c3n do t jet m i shpejt se programi me kompleksitet c1
+ c2n. Kjo vler e e quhet the
breakeven point. Nse breakeven point sht zero, ather programi me kompleksitet c3n sht
cdo her m i shpejt se (ose t paktn aq i shpejt sa) programi me kompleksitet c1
+ c2n.
Breakeven point-i i sakt nuk mund t determinohet n mnyre analitike. Programet duhet t
egzekutohen n kompjuter pr t determinuar breakeven point-in, prandaj egziston nj prparsi
n prcaktimin e vlerave t sakta pr c1, c2 dhe c3.

6. Metodat dhe Teknikat e hulumtimit


Me diskutimet e msiprme si motivim, do t shohim nocione q na mundsojn t bjm
formulime t plotkuptimta pr kompleksitetin e kohs dhe hapsirs t nj programi. Kto
nocione quhen nocione asimptotike, dhe prshkruan sjelljet e kompleksitetit t kohs dhe
hapsirs pr vlera t mdha. N diskutimet n vijim funksioni f(n) prcakton kompleksitetin e
kohs dhe hapsirs t nj programi i matur si funksion i karakteristiks s instancs n. Pasiq
krkesat pr koh dhe hapsir t programit jan madhsi jo negative, supozojm funksioni f ka
vlera jo negative pr t gjith vlerat e n-s. Mtutje, pasiq n paraqet nj karakteristik instance,
supozojm se n0. Nocionet asimptotike t cilat do t diskutohen n vijim do t na mundsojn
t gjejm kufijt e siprm dhe t poshtm pr vlerat e f ku n merr vlera t mdha.
Pra, pr analizn e algoritmeve do t prdorim kto nocione:
Worst case Running Time: Sjellja e algoritmit n raport me rastin m t keq t mundshm t
instancs hyrse (input). Rasti m i keq i egzekutimit i nj algoritmi sht kufiri i siprm i kohs
s egzekutimit pr cdo input. Duke e ditur at, na jep garanti q algoritmi asnjher nuk do t
zgjas m shum.
Average case Running Time: Sjellja qe pritet kur inputi vizatohet n mnyr random nga
shprndarja e dhn. Rasti mesatar i kohs s egzekutimit t nj algoritmi sht vlersimi i kogs
s egzekutimit pr nj input mesatar. Llogaritjet e rastit mesatar t kohs s egzekutimit detyron
t dihen t gjith sequencat hyrse (inputet), probabilitetin e shprndarjes t rastit t ktyre
sekuencave, dhe kohn e egzekutimit pr sekuenca individuale. Shpesh supozohet se t gjith
inputet e madhsis s dhn jan njlloj t mundshme.
Amortized Running Time: Ktu kemi kohn e nevojshme pr tu performuar nj sekuence e
operacioneve mesatare mbi t gjitha operacionet tjera t performuara. Analiza e amortizuar mund
t prdoret pr t treguar se cmimi mesatar i nj operacioni sht i vogl, nse gjindet mesatarja
mbi nj sekuence operacionesh, edhe pse nj operacion i thjesht mund t jet i shtrenjt. Analiza
e amortizuar garanton performanc mesatare t cdo operacioni gjat rastit m t keq.

Pasiq t kemi br analizn e performancs s programit t caktuar nprmjet nocioneve


asimptotike, duhet t egzekutohen programet pr tu matur koha reale dhe pr tu krahasuar me
rezultatet e fituara nga analiza analitike.
6. Shpjegime t shkurtra t nocioneve themelore t prdorura n tez
Performanca kompjuterike Karakterizohet nga sasia e puns s dobishme e kryer nga sistemi
kompjuterik krahasuar me kohn dhe resurset e prdorura.
Koha e egzekutimit Koha q i nevoitet nj programi pr tu egzekutuar.
Algoritm Hapat q duhet t ndiqen pr zgjidhjen e nj problemi.
Kompajler Program q shndrron kodin burimor n instruksione t kuptueshme pr
kompjuterin.
7. Struktura e punimit t masterit, kapitujt, pjest teorike, pjest empirike
N punimin e masterit n kapitullin e par do t spjegohen konceptet lidhur me analizn e
performancs s programeve dhe matjeve t ndryshme, do t spjegohen n pgjithsi nocionet
kompleksiteti kohor dhe ai hapsinor dhe si ndikojn ato drejtprdrejt n performancn e
programeve. N kapitullin e dyt do t spjegohet detalisht komponentat e kompleksitetit
hapsinor, hapsira pr instruksione dhe hapsira e nevojshme pr t dhnat, stack-u i mjedisit
dhe shembuj se si llogariten ato n programe reale. N kapitullin e tret detalisht do t spjegohet
kompleksiteti hapsinor, dhe si llogaritet me formula matematikore. Gjithashtu n kt kapitull
do t diskutohet pr numrimin e operacioneve t veanta duke analizuar rrugn q kalohet,
gjejm numrin minimal dhe maksimal t operacioneve etj. N kapitullin e katrt do t analizohet
numrimi i hapave, ku do t llogaritet koha e harxhuar n t gjitha pjest e programit/funksionit.
Pr t analizuar performancn kompjuterike do t mirren algoritme konkrete te t cilat do t
analizohen t gjitha opcionet e lartprmendura, do t programohen, do t egzekutohen dhe do t
gjindet optimalja e tyre.
N kapitullin e pest do t analizohen nocionet asimptotike si Big Oh, Omega dhe Theta nocioni.
N kapitullin e gjasht do t analizohet kompleksiteti i operacioneve elementare si dhe
kompleksiteti i shembujve konkret si algoritmet pr krkime, sortime etj.N kapitullin e shtat do
t shohim komplikimet q paraqiten gjat praktiks, do t analizojm vlerat e egzekutimit kohor
n kompjuter me performanca t ndryshme. N kapitullin e tet do t zhvillohen t dhna
testuese me t cilat do t gjindet rasti m i mire dhe m i keq i algoritmeve/programeve q do
prdoren paraprakisht. N kapitullin e nnt do t bhet nj prmbledhje e analizs dhe e
rezultateve t fituara duke prfunduar me bashkangjitjen e literaturs s shfrytzuar.

8. Bibliography

1. Sahni, S. (2002)Structures, Algorithms, and Applications in C++, University of FloridaData


McGraw-Hill
2. Cormen , Th. H.,& Leiserson, Ch. E., & Rivest, R. L., & Stein, C., (2001) Introduction to
Algorithms, Second Edition, McGraw-Hill Book Company
3. D. E. Knuth, The Art of Computer Programming, Vol. 1: Fundamental Algorithms, 2d ed.,
Addison-Wesley, Reading, Mass., 1973
4. Drozdek, A. (2001) Data Structures and Algorithms in C++ 2nd ed, USA.
5. Preiss, Bruno.R (1997) Data Structures and Algorithms with Object-Oriented Design Patterns
in C++
6. Weis, M. A. (1992) Data Structures and Algorithm Analysis in C
7. Dale, N. (2003) C++ Plus data structures, 3d ed.,Jones and Bartlett Publishers, Massachusetts
8. Baldwin, D., & Scragg, G.W., (2004) Algorithms and Data Structures: The Science of
Computing
9. Kruse, R. L., & Ryba,A. J., (2000) ProgramDesign in C++, PrenticeHall, New jersey
10. Hanan, S., (1990) The design and Analysis of Spatial Data Structures, Addison- Wesley
Publishing Company

Das könnte Ihnen auch gefallen