MAC0328 Algoritmos m Gros MAC328 Algoritmos m Gros Arnlo Mnl 1º Smstr 2012 http://spikmth.om/250.html Algoritmos m Gros 1º sm 2012 1 / 1 Págin isiplin: Aministrção Algoritmos m Gros 1º sm 2012 2 / 1 Liro: www.im.usp.r/ ~ m/328 Os slis usos nst urso são rios o mtril prouzio plo Pro. José Colho Pin Jr. PF = Pulo Foilo, Algoritmos pr Gros m C i Sgwik www.im.usp.r/ ~ p/lgoritmos_pr_gros S = Rort Sgwik, Algorithms in C (prt 5: Grph Algorithms) CLRS = Cormn-Lisrson-Rist-Stin, Introutions to Algorithms Algoritmos m Gros 1º sm 2012 3 / 1 Prossor lunos grm s já! Algoritmos m Gros 1º sm 2012 4 / 1
MAC0328 MAC0328 MAC0328 Algoritmos m gros é: um isiplin introutóri m projto nális lgoritmos sor gros um lortório lgoritmos sor gros MAC0328 omin ténis progrmção struturs os nális lgoritmos tori os gros pr rsolr prolms sor gros. Algoritmos m Gros 1º sm 2012 5 / 1 Pré-rquisitos O pré-rquisito oiil MAC0328 é MAC0122 Prinípios Dsnolimnto Algoritmos. No ntnto, é romnál qu já tnhm urso MAC0211 Lortório progrmção; MAC0323 Estruturs os Costum sr onnint ursr MAC0328 simultnmnt om MAC0338 Anális lgoritmos. Algoritmos m Gros 1º sm 2012 6 / 1 gros irigios struturs os pr gros onstrução gros ltórios lorsts árors minhos ilos Prinipis tópios us m lrgur us m lrgur minhos mínimos gros iprtios us m prouni us m prouni gros irigios ílios ornção topológi ponts ilos gros onxos omponnts gros ionxos árors grors mínims luxo m rs Algoritmos m Gros 1º sm 2012 7 / 1 Algoritmos m Gros 1º sm 2012 8 / 1
Digros Digros Um igro (irt grph) onsist um onjunto értis (ols) um onjunto ros (lhs) Exmplo: rprsntção um gro S 17.0, 17.1 Algoritmos m Gros 1º sm 2012 9 / 1 Aros Um ro é um pr orno értis Exmplo: w são értis -w é um ro Algoritmos m Gros 1º sm 2012 10 / 1 Pont iniil inl Pr ro -w, o érti é pont iniil w é pont inl Exmplo: é pont iniil w é pont inl -w w w w Algoritmos m Gros 1º sm 2012 11 / 1 Algoritmos m Gros 1º sm 2012 12 / 1
Aros nti-prllos Dois ros são nti-prllos s pont iniil um é pont inl o outro Exmplo: -w w- são nti-prllos Digros simétrios Um igro é simétrio s um sus ros é nti-prllo outro Exmplo: igro simétrio w Algoritmos m Gros 1º sm 2012 13 / 1 Grus ntr sí gru ntr = nº ros om inl gru sí = nº ros om iníio Exmplo: tm gru ntr 1 sí 2 Algoritmos m Gros 1º sm 2012 14 / 1 Númro ros Quntos ros, no máximo, tm um igro om V értis? A rspost é V (V 1) = Θ(V 2 ) igro omplto = too pr orno értis istintos é ro igro nso = tm muitos muitos ros igro sprso = tm pouos ros Algoritmos m Gros 1º sm 2012 15 / 1 Algoritmos m Gros 1º sm 2012 16 / 1
Espiição Digros pom sr spiios trés su list ros Exmplo: Gros - - - - - - S 17.0, 17.1 Algoritmos m Gros 1º sm 2012 17 / 1 Gros Um gro é um igro simétrio Exmplo: um gro Algoritmos m Gros 1º sm 2012 18 / 1 Gros Um gro é um igro simétrio Exmplo: rprsntção usul Algoritmos m Gros 1º sm 2012 19 / 1 Algoritmos m Gros 1º sm 2012 20 / 1
Arsts Um rst é um pr ros nti-prllos. Exmplo: - - são msm rst Espiição Gros pom sr spiios trés su list rsts Exmplo: - - - - - - Algoritmos m Gros 1º sm 2012 21 / 1 Grus értis Em um gro gru = númro rsts om pont m Exmplo: tm gru 3 Algoritmos m Gros 1º sm 2012 22 / 1 Númro rsts Qunts rsts, no máximo, tm um gro om V értis? A rspost é V (V 1)/2 = Θ(V 2 ) gro omplto = too pr não-orno értis istintos é rst Algoritmos m Gros 1º sm 2012 23 / 1 Algoritmos m Gros 1º sm 2012 24 / 1
Estruturs os Vértis Vértis são rprsntos por ojtos o tipo Vrtx. Os értis um igro são 0,1,...,V-1. S 17.2 #in Vrtx int Algoritmos m Gros 1º sm 2012 25 / 1 Aros Algoritmos m Gros 1º sm 2012 26 / 1 ARC Um ojto o tipo Ar rprsnt um ro om pont iniil pont inl w. typ strut { Vrtx ; Vrtx w; } Ar; A unção ARC r ois értis w ol um ro om pont iniil pont inl w. Ar ARC (Vrtx, Vrtx w) { 1 Ar ; 2.= ; 3.w= w; 4 rturn ; } Algoritmos m Gros 1º sm 2012 27 / 1 Algoritmos m Gros 1º sm 2012 28 / 1
Arsts Arsts Um ojto o tipo Eg rprsnt um rst om ponts w. A unção EDGE r ois értis w ol um rst om ponts w. #in Eg Ar #in EDGE ARC Algoritmos m Gros 1º sm 2012 29 / 1 Gros no omputor Algoritmos m Gros 1º sm 2012 30 / 1 Funçõs ásis Usrmos us rprsntçõs lássis: mtriz jêni (gor) tor lists jêni (próxims uls) Há áris outrs mnirs, omo, por xmplo mtriz iniêni qu é propri pr MAC0315 Prog. Linr. S 17.3 Algoritmos m Gros 1º sm 2012 31 / 1 Algoritmos m Gros 1º sm 2012 32 / 1
MATRIXint Alo um mtriz om linhs 0..r-1 oluns 0..-1, lmnto mtriz r lor l linh Consumo tmpo númro xuçõs linh int **MATRIXint (int r, int, int l) { 0 Vrtx i, j; 1 int **m = mllo(r * sizo(int *)); 2 or (i = 0; i < r; i++) 3 m[i] = mllo( * sizo(int)); 4 or (i = 0; i < r; i++) 5 or (j = 0; j < ; j++) 6 m[i][j] = l; 7 rturn m; } Algoritmos m Gros 1º sm 2012 33 / 1 Conlusão Supono qu o onsumo tmpo unção mllo é onstnt O onsumo tmpo unção MATRIXint é Θ(r ). 1 = 1 = Θ(1) 2 = r + 1 = Θ(r) 3 = r = Θ(r) 4 = r + 1 = Θ(r) 5 = r ( + 1) = Θ(r ) 6 = r = Θ(r ) totl Θ(1) + 3 Θ(r) + 2 Θ(r ) = Θ(r ) Algoritmos m Gros 1º sm 2012 34 / 1 DIGRAPHinit Dol (o nrço ) um noo igro om értis 0,..,V-1 nnhum ro. Digrph DIGRAPHinit (int V) { 0 Digrph G = mllo(sizo *G); 1 G >V = V; 2 G >A = 0; 3 G >j = MATRIXint(V,V,0); 4 rturn G; } Algoritmos m Gros 1º sm 2012 35 / 1 Algoritmos m Gros 1º sm 2012 36 / 1