+ All Categories
Home > Documents > Advanced Algorithmics (6EAP)...• ISBN-10:0201558025 ISBN-13:978-0201558029 • Bundle of...

Advanced Algorithmics (6EAP)...• ISBN-10:0201558025 ISBN-13:978-0201558029 • Bundle of...

Date post: 06-Mar-2021
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
42
Advanced Algorithmics (6EAP) courses.cs.ut.ee MTAT.03.238 Introduction Jaak Vilo 2016 Fall 1 Jaak Vilo
Transcript
Page 1: Advanced Algorithmics (6EAP)...• ISBN-10:0201558025 ISBN-13:978-0201558029 • Bundle of Algorithms in Java, Third Edition, Parts 1-5: Fundamentals, Data Structures, Sorting, Searching,

AdvancedAlgorithmics(6EAP)courses.cs.ut.eeMTAT.03.238Introduction

JaakVilo2016Fall

1JaakVilo

Page 2: Advanced Algorithmics (6EAP)...• ISBN-10:0201558025 ISBN-13:978-0201558029 • Bundle of Algorithms in Java, Third Edition, Parts 1-5: Fundamentals, Data Structures, Sorting, Searching,

Programmingononeslide• TRUE/FALSE,boolean operations• Data:3,7,2.47,.333e-02,‘a’,“textdata”, address…• Operations:+- */><=…• Variables:i,j,sum,A[5],B[7,8],a[i].surname,…

• if-then-else,for/while,…• function()

• Input/output• Standardlibraries:java.lang.Math.sqrt()

Page 3: Advanced Algorithmics (6EAP)...• ISBN-10:0201558025 ISBN-13:978-0201558029 • Bundle of Algorithms in Java, Third Edition, Parts 1-5: Fundamentals, Data Structures, Sorting, Searching,

Goals

• Tolearnthemainconceptsandtechniquesofthealgorithmanddatastructuredesignandanalysis– thepracticalskillsandbasictheoreticalbasis

• Tobeabletochoose,(design,)analyzeandcomparealgorithmsanddatastructures

• Tolearntolearn,usewisely,solve,read,write,andpresent

Page 4: Advanced Algorithmics (6EAP)...• ISBN-10:0201558025 ISBN-13:978-0201558029 • Bundle of Algorithms in Java, Third Edition, Parts 1-5: Fundamentals, Data Structures, Sorting, Searching,

Algorithms=basicsofCSeducation

• InyourfutureprofessionallifepeopleEXPECTyoutoknowelementarydatastructures,algorithms,andbeabletothinkinhighercategories.

• Weneedtodevelopthelanguagetotalkabouthigh-levelgoals,andyouneedtobeabletoimplementthem– ifsoneeded

• Atworkno-oneisgoingtoteachyoumathematicsorfundamentalsanymore

Page 5: Advanced Algorithmics (6EAP)...• ISBN-10:0201558025 ISBN-13:978-0201558029 • Bundle of Algorithms in Java, Third Edition, Parts 1-5: Fundamentals, Data Structures, Sorting, Searching,

Algorithms

• Al-Khwārizmī

• AbūʿAbdallāhMuḥammadibnMūsāal-Khwārizmī[1](Arabic:) (أبو عبد الله محمد بن موسى الخوارزمي c.780,Khwārizm[2][3][4] – c.850)wasaPersian[5][2][6]mathematician,astronomer andgeographer,ascholarintheHouseofWisdom inBaghdad.

Page 6: Advanced Algorithmics (6EAP)...• ISBN-10:0201558025 ISBN-13:978-0201558029 • Bundle of Algorithms in Java, Third Edition, Parts 1-5: Fundamentals, Data Structures, Sorting, Searching,

Example

• Windhasblownawaythe+,*,(,)signs• What’sthemaximalpossiblevalue?• Minimal?

2 1 7 1 4 3

Page 7: Advanced Algorithmics (6EAP)...• ISBN-10:0201558025 ISBN-13:978-0201558029 • Bundle of Algorithms in Java, Third Edition, Parts 1-5: Fundamentals, Data Structures, Sorting, Searching,

• 217143

• (2+1)*7*(1+4)*3=21*15=315• 2*1+7+1*4+3=16

Page 8: Advanced Algorithmics (6EAP)...• ISBN-10:0201558025 ISBN-13:978-0201558029 • Bundle of Algorithms in Java, Third Edition, Parts 1-5: Fundamentals, Data Structures, Sorting, Searching,

• Q:Howtomaximizethevalueofanyexpression?

2451981219872441123=?

Page 9: Advanced Algorithmics (6EAP)...• ISBN-10:0201558025 ISBN-13:978-0201558029 • Bundle of Algorithms in Java, Third Edition, Parts 1-5: Fundamentals, Data Structures, Sorting, Searching,

Schoolmathematics:11*13

Page 10: Advanced Algorithmics (6EAP)...• ISBN-10:0201558025 ISBN-13:978-0201558029 • Bundle of Algorithms in Java, Third Edition, Parts 1-5: Fundamentals, Data Structures, Sorting, Searching,

13x11

O( n2 )

Page 11: Advanced Algorithmics (6EAP)...• ISBN-10:0201558025 ISBN-13:978-0201558029 • Bundle of Algorithms in Java, Third Edition, Parts 1-5: Fundamentals, Data Structures, Sorting, Searching,

is the same as:

Page 12: Advanced Algorithmics (6EAP)...• ISBN-10:0201558025 ISBN-13:978-0201558029 • Bundle of Algorithms in Java, Third Edition, Parts 1-5: Fundamentals, Data Structures, Sorting, Searching,

Analysisofalgorithms

• Theoreticalstudyofcomputer-programperformanceandresourceusage.

• What elseis importantthanperformance?•Modularity•Correctness•Maintainability•Functionality•Robustness

•User-friendliness•Programmer time•Simplicity•Extensibility•Reliability

Page 13: Advanced Algorithmics (6EAP)...• ISBN-10:0201558025 ISBN-13:978-0201558029 • Bundle of Algorithms in Java, Third Edition, Parts 1-5: Fundamentals, Data Structures, Sorting, Searching,

Whystudyalgorithmsandperformance?• Algorithmshelpustounderstandscalability.• Performanceoftendrawsthelinebetweenwhatisfeasibleandwhatisimpossible.

• Algorithmicmathematicsprovidesalanguagefortalkingaboutprogrambehavior.

• Performanceisthecurrency ofcomputing.• Thelessonsofprogramperformancegeneralize toothercomputingresources.

• Speedisfun!

Page 14: Advanced Algorithmics (6EAP)...• ISBN-10:0201558025 ISBN-13:978-0201558029 • Bundle of Algorithms in Java, Third Edition, Parts 1-5: Fundamentals, Data Structures, Sorting, Searching,

SteveJürvetson onSkype:

• "Irememberwondering:howcantheybesogood?"hetoldme,speakingabouttheEstoniancoreofSkype."Howcansuchasmallgroupcandosomuchsoquickly,comparedtotypicaldevelopmenteffortsin,forexample,Microsoft?IhadtheimpressionthatmaybecomingoutofatimeofSovietoccupation,whencomputerswereunderpowered,youhadtoknowhowtoreallyprogram,effectively,parsimoniously,beingveryelegantinsculptingtheprogrammingcodetobetight,effective,andfast.[That's]notlikeinMicrosoft,whichhasaverylazyprogrammingenvironment,whereprogramsarecreatedthathavememoryleaksandallsortsofproblems,thatcrashallthetimeandnoonereallycares—becauseit'sMicrosoft!"

• http://arstechnica.com/business/2013/09/skypes-secrets/

Page 15: Advanced Algorithmics (6EAP)...• ISBN-10:0201558025 ISBN-13:978-0201558029 • Bundle of Algorithms in Java, Third Edition, Parts 1-5: Fundamentals, Data Structures, Sorting, Searching,

Contents• AlgorithmsandDatastructures– basics• Abstractdatatypes (+STL,LEDA,…)• Lists,trees,heaps,graphs(TSP;shortestpaths,diameter, …)

• Analysisofalgorithmcomplexity– O( nlogn),o(nlogn),Θ(nlogn),Ω(nlogn)– recurrences T(n)=2T(n/2)+n– Turingmachines,NP,NP-complete,P-SPACE,…– Verytough (NP)problems (“Monkeyproblem”;unsolvableproblems?)

Page 16: Advanced Algorithmics (6EAP)...• ISBN-10:0201558025 ISBN-13:978-0201558029 • Bundle of Algorithms in Java, Third Edition, Parts 1-5: Fundamentals, Data Structures, Sorting, Searching,

Contents(2)

• Basicdesigns: Divideandconquer,dynamicprogramming,randomised algorithms,…

• Deterministicornon-deterministic• Exactorapproximate• Heuristics(approximations):

– GreedyAlgorithms(packing,setcover,weightedsetcover,…)localsearch,tabusearch

– Simulated annealing(e.g.TSP),– Genetic algorithms(?),…– MonteCarlo,LasVegas

Page 17: Advanced Algorithmics (6EAP)...• ISBN-10:0201558025 ISBN-13:978-0201558029 • Bundle of Algorithms in Java, Third Edition, Parts 1-5: Fundamentals, Data Structures, Sorting, Searching,

Contents(3)

• Sorting,search,dictionary,…• Textalgorithms• Numericalalgorithms• Computationalgeometry

• Onlinealgorithmsvsoffline• Parallelalgorithms

Page 18: Advanced Algorithmics (6EAP)...• ISBN-10:0201558025 ISBN-13:978-0201558029 • Bundle of Algorithms in Java, Third Edition, Parts 1-5: Fundamentals, Data Structures, Sorting, Searching,

Skills/goals

• Bit-levelunderstandingoflow-levelimplementation

• Creativeuseofexistingimplementations• Formalanalysis,complexitytheory• Typicalheuristicsandalgorithmdesignelements

Page 19: Advanced Algorithmics (6EAP)...• ISBN-10:0201558025 ISBN-13:978-0201558029 • Bundle of Algorithms in Java, Third Edition, Parts 1-5: Fundamentals, Data Structures, Sorting, Searching,
Page 20: Advanced Algorithmics (6EAP)...• ISBN-10:0201558025 ISBN-13:978-0201558029 • Bundle of Algorithms in Java, Third Edition, Parts 1-5: Fundamentals, Data Structures, Sorting, Searching,

vs

Page 21: Advanced Algorithmics (6EAP)...• ISBN-10:0201558025 ISBN-13:978-0201558029 • Bundle of Algorithms in Java, Third Edition, Parts 1-5: Fundamentals, Data Structures, Sorting, Searching,

• 67+56=?

Page 22: Advanced Algorithmics (6EAP)...• ISBN-10:0201558025 ISBN-13:978-0201558029 • Bundle of Algorithms in Java, Third Edition, Parts 1-5: Fundamentals, Data Structures, Sorting, Searching,

SUM(1079882846662946257362655369837393771079882846662946257362655369837393111771079882846662946257362655361983111173937710798828466629462573626553698373937710798182666211946257362655369837319377107988284666294625736265536173937710798828466629462573165536983739377)=?

Page 23: Advanced Algorithmics (6EAP)...• ISBN-10:0201558025 ISBN-13:978-0201558029 • Bundle of Algorithms in Java, Third Edition, Parts 1-5: Fundamentals, Data Structures, Sorting, Searching,

Answer

• 13,000

• Ischecking fasterthanfinding thesolution?

Page 24: Advanced Algorithmics (6EAP)...• ISBN-10:0201558025 ISBN-13:978-0201558029 • Bundle of Algorithms in Java, Third Edition, Parts 1-5: Fundamentals, Data Structures, Sorting, Searching,

SATisfiability

• Canaboolean formulawithvariablesinstantiatedtobecome“TRUE”– (AorB)and(notAorB)

• Checkif(some)answersatisfiestheformula• veryquickascomparedtofindingananswer

Page 25: Advanced Algorithmics (6EAP)...• ISBN-10:0201558025 ISBN-13:978-0201558029 • Bundle of Algorithms in Java, Third Edition, Parts 1-5: Fundamentals, Data Structures, Sorting, Searching,

Subsetsum

• Doessome subsetofasetsumupto0?– Verifier/witness/certificate– Easytocheckifsomeonepointsout…– 2,-4,3,8,-1,9,-6

• IfverificationinPtime,thenprobleminNP

• Complementary:provethatnoneexists!– co-NP– Everysubsetisnon-0

Page 26: Advanced Algorithmics (6EAP)...• ISBN-10:0201558025 ISBN-13:978-0201558029 • Bundle of Algorithms in Java, Third Edition, Parts 1-5: Fundamentals, Data Structures, Sorting, Searching,
Page 27: Advanced Algorithmics (6EAP)...• ISBN-10:0201558025 ISBN-13:978-0201558029 • Bundle of Algorithms in Java, Third Edition, Parts 1-5: Fundamentals, Data Structures, Sorting, Searching,
Page 28: Advanced Algorithmics (6EAP)...• ISBN-10:0201558025 ISBN-13:978-0201558029 • Bundle of Algorithms in Java, Third Edition, Parts 1-5: Fundamentals, Data Structures, Sorting, Searching,
Page 29: Advanced Algorithmics (6EAP)...• ISBN-10:0201558025 ISBN-13:978-0201558029 • Bundle of Algorithms in Java, Third Edition, Parts 1-5: Fundamentals, Data Structures, Sorting, Searching,
Page 30: Advanced Algorithmics (6EAP)...• ISBN-10:0201558025 ISBN-13:978-0201558029 • Bundle of Algorithms in Java, Third Edition, Parts 1-5: Fundamentals, Data Structures, Sorting, Searching,

Maindatamodels

…Linear

Tree

Graph

Relational data model

Page 31: Advanced Algorithmics (6EAP)...• ISBN-10:0201558025 ISBN-13:978-0201558029 • Bundle of Algorithms in Java, Third Edition, Parts 1-5: Fundamentals, Data Structures, Sorting, Searching,

Allfittedonlinear RAM,disk,tape

…Linear

Tree

Graph

Relational

Linear storage: address of a “slot”

Page 32: Advanced Algorithmics (6EAP)...• ISBN-10:0201558025 ISBN-13:978-0201558029 • Bundle of Algorithms in Java, Third Edition, Parts 1-5: Fundamentals, Data Structures, Sorting, Searching,

Programminglanguages:

• Pseudocode– primarilythiscoursewillusepseudocode

• Pointers,arrays,memoryhandling– Low- andhighlevelabstractions

• C/C++• Java,Python,perl,go,…

– Explicitdatastructuresandalgorithms

• Whicheverchoice:youmustbeabletoexplainit• Clarityandsimplicityisakey

Page 33: Advanced Algorithmics (6EAP)...• ISBN-10:0201558025 ISBN-13:978-0201558029 • Bundle of Algorithms in Java, Third Edition, Parts 1-5: Fundamentals, Data Structures, Sorting, Searching,

“TheTextbook”• IntroductiontoAlgorithms,SecondEditionThomasH.Cormen,CharlesE.Leiserson,RonaldL.Rivest andCliffordStein

• http://mitpress.mit.edu/algorithms/• http://projects.csail.mit.edu/clrs/• http://books.google.com/books?id=NLngYyWFl_YC

Page 34: Advanced Algorithmics (6EAP)...• ISBN-10:0201558025 ISBN-13:978-0201558029 • Bundle of Algorithms in Java, Third Edition, Parts 1-5: Fundamentals, Data Structures, Sorting, Searching,

• FoundationsofComputerScience:CEdition

• AlfredV.Aho,JeffreyD.Ullman

• W.H.Freeman(October15,1994)

Page 35: Advanced Algorithmics (6EAP)...• ISBN-10:0201558025 ISBN-13:978-0201558029 • Bundle of Algorithms in Java, Third Edition, Parts 1-5: Fundamentals, Data Structures, Sorting, Searching,

• Algorithmics:TheSpiritofComputing(3rdEdition)

• DavidHarel,YishaiFeldman• AddisonWesley;3edition(June11,2004)

• http://books.google.com/books?id=txxLovFWkCUC• http://www.wisdom.weizmann.ac.il/~dharel/algorithmic

s.html

Page 36: Advanced Algorithmics (6EAP)...• ISBN-10:0201558025 ISBN-13:978-0201558029 • Bundle of Algorithms in Java, Third Edition, Parts 1-5: Fundamentals, Data Structures, Sorting, Searching,

• TheArtofComputerProgramming(TAOCP)• DonaldE.Knuth.• http://www-cs-faculty.stanford.edu/~knuth/taocp.html

Page 37: Advanced Algorithmics (6EAP)...• ISBN-10:0201558025 ISBN-13:978-0201558029 • Bundle of Algorithms in Java, Third Edition, Parts 1-5: Fundamentals, Data Structures, Sorting, Searching,

• TheAlgorithmDesignManual– StevenS.Skiena

• Algorithms[ILLUSTRATED]– SanjoyDasgupta,ChristosPapadimitriou,UmeshVazirani

Page 38: Advanced Algorithmics (6EAP)...• ISBN-10:0201558025 ISBN-13:978-0201558029 • Bundle of Algorithms in Java, Third Edition, Parts 1-5: Fundamentals, Data Structures, Sorting, Searching,

Mathematics

• ConcreteMathematics:AFoundationforComputerScience(2ndEdition)(Hardcover)

• RonaldL.Graham,DonaldE.Knuth, OrenPatashnik

• Hardcover: 672pages• Addison-WesleyProfessional;• 2edition(March10,1994)• ISBN-10: 0201558025ISBN-13: 978-0201558029

Page 39: Advanced Algorithmics (6EAP)...• ISBN-10:0201558025 ISBN-13:978-0201558029 • Bundle of Algorithms in Java, Third Edition, Parts 1-5: Fundamentals, Data Structures, Sorting, Searching,

• BundleofAlgorithmsinJava,ThirdEdition,Parts1-5:Fundamentals,DataStructures,Sorting,Searching,andGraphAlgorithms(3rdEdition)(Pts.1-5)

• RobertSedgewick

• SafariBookshelf!(UT)

Page 40: Advanced Algorithmics (6EAP)...• ISBN-10:0201558025 ISBN-13:978-0201558029 • Bundle of Algorithms in Java, Third Edition, Parts 1-5: Fundamentals, Data Structures, Sorting, Searching,

Morebooks

• Parallelalgorithms– AnIntroductiontoParallelAlgorithms JosephJaja

• Heuristics– HowtoSolveit:ModernHeuristics. ByZbigniewMichalewicz,DavidB.Fogel– Edition:2,illustrated PublishedbySpringer,2004– http://www.springer.com/computer/foundations/book/978-3-540-22494-5

• Randomizedalgorithms• Complexitytheory

– Garey,M.R.;Johnson,D.S. (1979).ComputersandIntractability:AGuidetotheTheoryofNP-Completeness.NewYork:W.H.Freeman.ISBN0-7167-1045-5.Thisbookisaclassic,developingthetheory,thencataloguingmanyNP-Completeproblems.

Page 41: Advanced Algorithmics (6EAP)...• ISBN-10:0201558025 ISBN-13:978-0201558029 • Bundle of Algorithms in Java, Third Edition, Parts 1-5: Fundamentals, Data Structures, Sorting, Searching,
Page 42: Advanced Algorithmics (6EAP)...• ISBN-10:0201558025 ISBN-13:978-0201558029 • Bundle of Algorithms in Java, Third Edition, Parts 1-5: Fundamentals, Data Structures, Sorting, Searching,

Wikipedia:

• http://en.wikipedia.org/wiki/Algorithm• http://en.wikipedia.org/wiki/List_of_algorithm_general_topics• http://en.wikipedia.org/wiki/List_of_algorithms• http://en.wikipedia.org/wiki/List_of_data_structures• http://en.wikipedia.org/wiki/Computational_complexity_theory• http://en.wikipedia.org/wiki/List_of_NP-complete_problems• http://en.wikipedia.org/wiki/Randomized_algorithm• http://en.wikipedia.org/wiki/Parallel_algorithm• …


Recommended