+ All Categories
Home > Documents > Introducci o - Computer Science Departmentmjserna/docencia/grauA/P17...Curs d’algor smia:...

Introducci o - Computer Science Departmentmjserna/docencia/grauA/P17...Curs d’algor smia:...

Date post: 10-Feb-2021
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
57
Introducci´o Curs 2017
Transcript
  • Introducció

    Curs 2017

  • Curs d’algoŕısmia:Continuació d’EDA

    Què veurem?

    I Eines matemàtiquesI Notació asimptòticaI RecurrènciesI Conceptes bàsics de probabilitat

    I Metodologia per a dissenyar algorismesI BacktrakingI Dividir i vencerI Estructura de dades avançades: Hashing, Cryptohashing,

    BlockchainI VoraçosI Programació dinàmicaI Algorismes per a fluxes en xarxes: AplicacionsI Introducció a les xarxes complexes

    I Problemes concrets

    I Problemes ”reals”

  • Bibliografia:

    Referències principals:

  • Algorismes.

    Algorisme: recepta per a resoldre un problema.

    Arrel (n)x0 = 1 y0 = nfor i = 1 to 6 doyi = (xi−1 + yi−1)/2xi = n/yi

    end for

    Babilònia (XVI BC)Avui coneixem que: limk→∞ xk →

    √n i ho fa ràpidament!

    Un algorisme és correcte si per a qualsevol entrada s’atura i dónauna resposta correctaHeuŕıstica: mètode per a resoldre un problema, que pot noaturar-se i pot no donar respostes exactes.

  • El primer algorisme no trivial

    Donats a, b ∈ Z:

    mcd(a, b)if b = 0 thenreturn a

    else if b = 1 thenreturn 1

    elsemcd(b, a mod b)

    end if

    Euclides 300 BC Proposició VII-2 als Elements

    Conseqüència que si b|a⇒ mcd(a, b) = b,altrament a = bt + r ⇒ mcd(a, b) = mcd(b, r)

  • ”The algorithmic lenses”

    L’algoŕısmia representa una nova manerade mirar els problemes en diferents àmbitsde la ciència i la tecnologia. L’algoŕısmiaestudia quines són les particularitats del’estructura interna del problemes queajudin a dissenyar algorismes més eficients.A més de la informàtica, l’algoŕısmia hacanviat la manera d’abordar i resoldre elsproblemes en camps com:

    I Matemàtiques

    I F́ısiques

    I Biologia i epidemiologia

    I Economia

    I Sociologia...

  • Donat un algorisme: Què volem estudiar?

    I Si és correcte,

    I Si és eficient (el seu cost)

    Què vol dir cost:

    I Temps

    I Memòria

    I Capacitat de comunicació...

    En aquest curs:Cost d’un algorisme = temps de computació T (n), parametrizatper grandària n.

  • Important

    Les mesures de complexitat han de ser independents de lestecnologies existents

  • Anàlisis d’algorismes

    :

    Anàlisis cas pitjor: El màxim temps per aresoldre un problema amb grandària n,assumint l’entrada ve donada per unadversari.

    Anàlisi mitjà: el nombre esperat de passos que un algorisme utilitzaper a resoldre un problema, sobre totes les possibles entrades ambgrandària n, agafades d’una distribució de probabilitat donada.

    Deter. Algo.→

  • Escollir un estudiant per ajudar a la recerca

    Tenim n estudiants, {1, . . . , n} i volem entrevistar-los per agafar elmés adient (cada estudiant ve identificat per un enter entre 1 i n)Després d’entrevistar cada estudiant hem de decidir si elpreseleccionem o no.A la fi del procés escollim un sol estudiant, però indemnitzem acadascun dels preseleccionats no escollits, amb S > 0 e. Volemminimitzar el cost de les indemnitzacions

    Hiring (n)best:=0for i = 1 to n do

    interview iif i is better than best then

    best:=i and pre-select iend if

    end for

  • Complexitat

    n1 2 3 4

    A la llista de l’adversari els estudiants estan escollits de maneraque ordenadament van de menys apte a més apte. A cada pasl’algorisme es veu forçat a pre-seleccionar cada estudiant

    Complexitat cas pitjor: T (n) ≤ c1Sn (a on c1 és una constant)

  • Notació asimptòtica.

    Estudiem el comportament de T (n) quan n pot prendre valorsmolt grans (n→∞)

    if n = 10, n2 = 100 i 2n: 1024;

    if n = 100, n2 = 10000 i2n = 12676506002282244014696703205376;

    if n = 103 n2 = 106 2n és un numero amb 302 d́ıgits

    1064 = nombre d’àtoms en la terra (< 2213)

    Notatció:lg ≡ log2; ln ≡ loge ; log ≡ log10.

  • Comparació dels temps de computació amb elsprocessadors actuals

    Assumint una entrada amb grandària n = 1 es pot resoldre en 1µsegon:26 THE BASICS

    100

    103

    106

    109

    1012

    1015

    1018

    1021

    1024

    0 10 20 30 40 50 60 70 80 90 100n

    µs

    n

    n 2n 3

    2n

    n !

    1 minute

    1 day

    1 year

    age of universe

    FIGURE 2.5: Running times of algorithms as a function of the size n . We assume that each one can solvean instance of size n = 1 in one microsecond. Note that the time axis is logarithmic.

    Eulerinput: a graph G = (V, E )output: “yes” if G is Eulerian, and “no” otherwisebegin

    y := 0 ;for all v ∈V do

    if deg(v ) is odd then y := y +1;if y > 2 then return “no”;

    endreturn “yes”

    end

    FIGURE 2.6: Euler’s algorithm for EULERIAN PATH. The variable y counts the number of odd-degree vertices.

    2.4.2 Details, and Why they Don’t Matter

    In the Prologue we saw that Euler’s approach to EULERIAN PATH is much more efficient than exhaustivesearch. But how does the running time of the resulting algorithm scale with the size of the graph? It turnsout that a precise answer to this question depends on many details. We will discuss just enough of thesedetails to convince you that we can and should ignore them in our quest for a fundamental understandingof computational complexity.

  • Temps de computació en funció de la grandària d’entrada n

    n n lg n n2 1.5n 2n

    10 < 1s < 1s < 1s < 1s < 1s50 < 1s < 1s < 1s 11m 36y

    100 < 1s < 1s < 1s 12000y 1017y1000 < 1s < 1s < 1s > 1025y > 1025y104 < 1s < 1s < 1s > 1025y > 1025y105 < 1s < 1s < 1s > 1025y > 1025y106 < 1s 20s 12d > 1025y > 1025y

  • Algorismes eficients i algorismes pràctics

    Temps de computació: n1010

    és un polinomi, però el temps decomputació pot ser elevat.De la mateixa manera, si tenim cn2 per una constant c = 1064, laconstant té rellevància fins a entrades amb grandària n = 1064.

    A l’algoŕısmia, factible (feasible)= temps polinòmic, altrament nofactible (unfeasible).

    A la pràctica és dif́ıcil implementar computacions amb valors mésgrans que n4, per a valors ”reals” de n.

    A la pràctica, les constants grans tenen rellevància, però quanconsiderem asimptòtiques (n→∞) sempre podem agafar valors den més grans que qualsevol constant.

  • Big Oh: O.

    DefinitionDonades f , g : R→ R, definim:

    O(g(n)) = {f (n)|∃c , n0 : 0 ≤ f (n) ≤ cg(n), ∀n ≥ n0}

    f (n) ∈ O(g(n)) or f (n) = O(g(n))

    n0

    f(x)

    cg(x)

    f(x) = O(g(x))

    lim supn→∞

    f (n)

    g(n)≤ c .

  • n10 = O(en): Escollir c = 1 and n0 = e5. Per tant,

    ∀n ≥ e5, 10 ln n ≤ n, ⇒ e10 ln n ≤ en.

    Notem que una constant k > 0, k = O(1), (si c = k , n0 = 1 ⇒k ≤ 1k).⇒ la funció constant f (x) = n per a un valor constant n també ésO(1).Però, la funció f (n) = n no és O(1)!!!

  • Omega: Ω.

    DefinitionDonades f , g : R→ R, definim:

    Ω(g(n)) = {f (n)|∃c , n0 : 0 ≤ cg(n) ≤ f (n),∀n ≥ n0}

    f (n) ∈ Ω(g(n)) o f (n) = Ω(g(n))

    n0

    f(x)

    cg(x)

    f(x) = ω(g(x))

    lim infn→∞

    f (n)

    g(n)≥ c > 0.

  • DefinitionDonades f , g : R→ R, definim:

    Θ(g(n)) = {f (n)|∃c1, c2, n0 : 0 ≤ c1g(n) ≤ f (n) ≤ c2g(n)∀n ≥ n0}

    f (n) = Θ(g(n)) sii f (n) = Ω(g(n)) i f (n) = O(g(n))

    f(x) = Θ(f(x))

    c1g(x)

    f(x)

    c2g(x)

    limn→∞

    f (n)

    g(n)= c , on c = max{c1, c2}

  • Donat f (x) = akxk + ak−1x

    k−1 + · · ·+ a1x + a0, llavorsf (x) = Θ(xk) (si ak 6= 0).

    Notem: La notació asimptòtica es pot utilitzar dintre d’una equació

    2n2 + 3n + 1 = 2n2 + Θ(n) = Θ(n2).

  • Little-oh: o

    DefinitionDonades f , g : R→ R, definim:

    o(g(n)) = {f (n)|∃n0,∀c > 0 : 0 ≤ f (n) ≤ cg(n), ∀n ≥ n0}.

    f (n) = o(g(n))

    lim supn→∞

    f (n)

    g(n)= 0.

    ∀� > 0, n1−� = o(n) però ∀� > 0, n1+� 6= o(n)

  • Little omega: ω

    DefinitionDonades f , g : R→ R, definim:

    ω(g(n)) = {f (n)|∀c > 0, ∃n0 : 0 ≤ cg(n) ≤ f (n)cg ,∀n ≥ n0}.

    f (n) = ω(g(n))

    lim infn→∞

    f (n)

    g(n)=∞.

    Notem: n2/2 = ω(n) però n2/2 6= ω(n2)

  • Quadre resum

    Śımbol L = limn→∞f (n)g(n) intüıció ..

    f (n) = O(g(n)) L 0 f ≥ gf (n) = Θ(g(n)) 0 < L g

  • Noms utilitzats per classes de funcions

    classe definition

    polylogarirthmic f = O(logc n) for cte. c

    polynomial f = O(nc) for cte. c or nO(1)

    subexponential f = o(2n�) ∀1 > � > 0

    exponential f = 2poly(n)

  • Igualtat asimptòtica

    DefinitionGiven functions f , g : R→ R, definim: f (n) ∼ g(n) iflimn→∞

    f (n)g(n) = 1

    Per tant, f (n) ∼ g(n) vol dir que quan n creix, les dues funcionsesdevenen molt similars.

  • Recordatori: Probabilitat

    Espai de probabilitat (Ω): Resultats d’un experiment.

    Examples:

    Llançar dues monedes, cara H o creu T:Ω = {HH,HT ,TH,TT}. |Ω| = 4.

    Llançar dos daus, cara H o creu T:Ω = {(1, 1), (1, 2), . . . , (1, 6), (2, 1), . . . , (6, 6)}.|Ω| = 36.

    Escollir aleatòriament un vector Boolea amb dimensió 4Ω = {(0, 0, 0, 0), (0, 0, 0, 1), . . . , (1, 1, 1, 1)}, |Ω| = 24.En el cas d’un vector Boolea n-dimensional:Ω = {(0, 0, . . . , 0), . . . , (1, 1, 1, . . . , 1)}, |Ω| = 2n.

  • Esdeveniments

    Esdeveniment: E ⊆ Ω.

    Donat un espai Ω, definim F com el conjunt de tots elsesdeveniments a Ω.

    Exemples:

    I Llancem 2 monedes, sigui E1 l’esdeveniment que hi hagi almenys una cara i sigui E2 l’esdeveniment que hi hagiexactament una cara:E1 = {HH,HT ,TH} i E2 = {HT ,TH}. Per tant,E1 ∩ E2 = {HT ,TH}.

    I llancem dos daus, sigui E1 l’esdeveniment que el primer dautingui un 1, i sigui E2 l’esdeveniment que el dau 2 tingui 1.E1 = {(1, 1), . . . , (1, 6)} i E2 = {(1, 1), . . . , (6, 1)}.Notem: E1 ∩ E2 = {(1, 1)},E1 ∪ E2 = {(1, 1), . . . , (1, 6), (2, 1), . . . , (6, 1)}.

  • Probabilitat

    Donat el conjunt d’esdeveniments F sobre un espai Ω, definim lafunció de probabilitat Pr : F → R+ tal que:

    I Per a tot esdeveniment E : 0 ≤ Pr [E ] ≤ 1,I Pr [Ω] = 1,I Per a tot E1 i E2 a F , Pr [E1 ∪ E2] = Pr [E1] + Pr [E2].

    Espai de probabilitat: (Ω,Pr []).

    Desigualtat de Boole (Union-Bound)Donat un conjunt finit d’esdeveniments E1,E2, . . . ,En

    Pr [∪ni=1Ei ] ≤n∑

    i=1

    Pr [Ei ]

  • Exemple

    Llancem 2 daus i sigui (x1, x2) el resultat.

    Considerem els esdeveniments E1 = {x1 ≥ 3} i E2 = {x2 ≥ 3}.

    Aleshores Pr [E1] =46 =

    23 = Pr [E2],

    En aquest cas és fàcil calcular Pr [E1 ∪ E2] = 3236 =89 = 0.7

    Alternativa: Fitar Pr [E1 ∪ E2]Sigui (x1, y2) el resultat de llancar 2 daus i considerem elsesdeveniments E1 = {x1 ≥ 3},E2 = {x2 ≥ 3}, aplicant Boole:

    Pr [E1 ∪ E2] ≤ Pr [E1] + Pr [E2] = 43 = 1.3

  • Esdeveniments independents

    Donat un esdeveniment E de Ω definim Ē = Ω− E

    Donats esdeveniments E1,E2 a Ω:

    Pr [E1 ∩ E2] = 1− Pr[Ē1 ∪ Ē2

    ]E1 i E2 són independents sii Pr [E1 ∩ E2] = Pr [E1]Pr [E2]

    Exemple Llancem 2 monedes i considerem els esdeveniments E1: hiha al menys una cara, i E2: hi ha al menys una creu.Ω = {HH,TT ,TH,HT} ⇒ Pr [E1] = 34 = Pr [E2] =

    34

    Són E1 i E2 independents?

    Notes que Pr [E1 ∩ E2] = 24 6=34

    34 =

    916 ,

    per tant, E1 i E2, no són independents.

  • Esdeveniments independents

    Donat un esdeveniment E de Ω definim Ē = Ω− E

    Donats esdeveniments E1,E2 a Ω:

    Pr [E1 ∩ E2] = 1− Pr[Ē1 ∪ Ē2

    ]E1 i E2 són independents sii Pr [E1 ∩ E2] = Pr [E1]Pr [E2]

    Exemple Llancem 2 monedes i considerem els esdeveniments E1: hiha al menys una cara, i E2: hi ha al menys una creu.Ω = {HH,TT ,TH,HT} ⇒ Pr [E1] = 34 = Pr [E2] =

    34

    Són E1 i E2 independents?Notes que Pr [E1 ∩ E2] = 24 6=

    34

    34 =

    916 ,

    per tant, E1 i E2, no són independents.

  • Taula de d́ıgits aleatoris

    Sigui A[10] una taula amb 10 registres. Distribüım uniformementels enters {0, 1, . . . 9},

    I Quina és Pr [A[i ] = 7]?

    I Si A[0] = 3,A[1] = 1,A[2] = 3,A[4] = 6, quina ésPr [A[5] > 7]?

    I Si A[0] = 3,A[1] = 1,A[2] = 3,A[4] = 6, quina ésPr [A[5] = 7] i Pr [A[6] = 8] i Pr [A[7] = 9]?

    I Quina és la probabilitat de que ∀i , 0 ≤ i ≤ 9, A[i ] = i?I Per 0 ≤ i ≤ 8, quina és la probabilitat de que

    Pr [A[i + 1] = 7|A[i ] = 7]?I Si tenim una taula A[n] i n enters, quina és la probabilitat que

    una assignació aleatoria amb una distribució uniforme sensesubstitucions produeixi una sequència ordenada ?

  • Probabilitat condicional

    Donats esdeveniments E1 i E2, la la probabilitat condicional que E1succëıx donat que E2 succëıx ve definida per

    Pr [E1|E2] =Pr [E1 ∩ E2]

    Pr [E2]

    Notem que si E1 i E2 són independents: Pr [E1|E2] = Pr [E1]

  • Probabilitat condicional: Exemple

    Una faḿılia té 2 fills. La probabilitat de tenir un noi és 12 que és lamateixa probabilitat de tenir una noia.

    1. Donat que el primer fill és un noi, quina és la probabilitat deel segon fill també sigui noi?

    2. Si un dels fills és noia, quina és la probabilitat que l’altretambé sigui noia?

  • Probabilitat condicional

    Una faḿılia té 2 fills. La probabilitat de tenir un noi és 12 que és lamateixa probabilitat de tenir una noia.

    1. Donat que el primer fill és un noi, quina és la probabilitat deel segon fill també sigui noi?Ser noi o noia són esdeveniments independents → 1/2

    2. Si un dels fills és noia, quina és la probabilitat que l’altretambé sigui noia?Sigui E1 esdeveniment de tenir al menys una noia, i E2esdeveniment de tenir dues noies. Aleshores,

    Pr [E2|E1] =Pr [E2 ∩ E1]

    Pr [E1]=

    1/4

    3/4=

    1

    3

  • Distribució de probabilitat

    Donat un espai de probabilitat, la distribució de probabilitat és elvalor de Pr [] sobre cada esdeveniment bàsic a Ω.

    Distribució uniforme cada esdeveniment bàsic a Ω té la mateixaprobabilitat 1|Ω| , independent dels altres esdeveniments bàsics.

    Exemple Llancem 2 daus, Ω = {(1, 1), . . . , (6, 6)}

    Pr [(1, 1)] = · · · = Pr [(1, 1)] = 136

  • Exemple: Taula amb d́ıgits aleatoris

    Dorada una taula A[n] i enters S = {0, 1, . . . , 9}, considerem lasegüent assignació de S a A[n]: Amb probabilitat 1/10, A[0] pottenir qualsevol enter de S .Per a tot 0 ≤ i < n − 1 i 0 ≤ j ≤ 9, si A[i ] = j aleshores

    Pr [A[i + 1] = k] =

    {1

    100 si j 6= k ,11

    100 altrament.

    Quin és el conjunt Ω d’esdeveniments bàsics? Que és |Ω|?

    Quina és la distribució de probabilitat sobre Ω? És uniforme?

    Sigui E1 l’esdeveniment A[3] = 4 i E2 l’esdeveniment A[4] = 3.

    Quina és Pr [A[5] = 4|E1]?

    Quina és la probabilitat de que l’enter 5 no aparegui?

  • Variable aleatòria

    Llancem una moneda 1000 cops, si surt cara paguem 1e, si surtcreu guanyem 1e, quan haurem guanyat or perdut?

    Donat un espai de probabilitat una variable aleatòria és una funcióX : Ω→ R.

    Pr [X = a] =∑

    {w∈Ω|X (w)=a}

    Pr [w ] .

    Exemple Llancem 2 daus i sigui (x , y) el resultat de l’experiment((x , y) ∈ Ω).Sigui X = max{x , y}, ej. Pr [X = 3] = 536

  • Valor esperat (expectation)

    Donat un espai de probabilitat (Ω,Pr []) i una variable aleatòria X ,definim el valor esperat de X

    E [X ] =∑

    x∈X (Ω)

    xPr [X = x ] .

    Notem E [X ] ∈ R

    Exemple (cont) Per a calcular el valor esperat del màxim que surtquan llancem 2 daus:E [X ] =

    ∑6i=1 xPr [X = x ] =

    136 1 +

    336 2 +

    536 3 +

    736 4 +

    936 5 +

    1136 6 =

    16136 = 4.46

  • Propietat important: Linealitat de l’esperança

    Si tenim variables aleatòries X ,Y :

    I E [X + Y ] = E [X ] + E [Y ]

    I Per qualsevol constant c , E [cX ] = cE [X ]

    X i Y són independents sii E [XY ] = E [X ]E [Y ]

    Exemple Volem calcular el valor esperat de la suma del resultat(x , y), de llançar dos daus.

    Sigui X el valor de x i Y el valor de y . Sigui Z = X + Y .

    E [X ] =∑6

    i=116 i =

    16

    6·72 =

    72 = E [Y ]

    E [Z ] = E [X ] + E [Y ] = 7

  • Distribució de Bernouilli i variables indicadoresProces de Bernoulli (s.XVII) seqüènciad’experiments, cadascun amb dues possiblessortides, èxit (1) o fracas (0).Per ex. llançar una moneda o generar un vectoraleatòria de bits.Amb probabilitat p l’experiment dona cert i ambprobabilitat q = 1− p dona fals.Si Ω ve definit per un proces de Bernoulli, una eina molt útil:variable aleatòries indicadoresDefinim una variable aleatòria indicadora:

    X =

    {1 si l’experiment té èxit

    0 altrament.

    Notem que E [X ] = 1Pr [X = 1] + 0Pr [X = 0]︸ ︷︷ ︸=0

  • Exemple

    Un mico tecleja 220 caràcters en un ordinador queté 48 tecles de caràcters (a cada cop de dit delmico, la probabilitat de prémer una teclaparticular és 1/48).

    Quin és el nombre esperat de cops que la seqüència mico apareixen aquest test?

    Per a i = 1, . . . , 220 − 3 sigui Xi la variable indicadora que té valor1 si els 4 caràcters, començant pel i-èsim, formen la seqüènciamico. Pr [X1 = 1] = 48−4 ⇒ Pr [Xi = 1] = 48−4.

    Sigui X el nombre de cops que ”mico” apareix al text, aleshoresX = X1 + X2 + · · ·+ X220−3.

    ⇒ E [X ] =∑220−3

    i=1 E [Xi ] =∑220−3

    i=11

    484∼ 0.19753

  • Exemple

    Un mico tecleja 220 caràcters en un ordinador queté 48 tecles de caràcters (a cada cop de dit delmico, la probabilitat de prémer una teclaparticular és 1/48).

    Quin és el nombre esperat de cops que la seqüència mico apareixen aquest test?

    Per a i = 1, . . . , 220 − 3 sigui Xi la variable indicadora que té valor1 si els 4 caràcters, començant pel i-èsim, formen la seqüènciamico. Pr [X1 = 1] = 48−4 ⇒ Pr [Xi = 1] = 48−4.

    Sigui X el nombre de cops que ”mico” apareix al text, aleshoresX = X1 + X2 + · · ·+ X220−3.

    ⇒ E [X ] =∑220−3

    i=1 E [Xi ] =∑220−3

    i=11

    484∼ 0.19753

  • Casos particulars de la distribució de Bernoulli

    Distribució binomial B(n, p). Una variable aleatòria X ∈ B(n, p),si repetim n cops un experiment tipus Bernoulli i volem comptar elnombre exacte d’èxits, quan p és la probabilitat d’èxit.

    Pr [X = k] =(nk

    )pk(1− p)n−k .

    Si X ∈ B(n, p) per a calcular E [X ], definim les variablesindicadores X1, . . . ,Xn, on Xi = 1 si i-èsima llançada és cara (H),altrament Xi = 0.X =

    ∑ni=1 Xi ⇒ E [X ] = E [

    ∑ni=1 Xi ] =

    ∑ni=1 E [Xi ]︸ ︷︷ ︸

    =p

    = np.

    Si X ∈ B(n, p), aleshores E [X ] = np.

  • Distribució Geomètrica G (p)

    Una variable aleatòria X ∈ G (p), on p és la probabilitat d’ èxit (1),si X compta el nombre de vegades que hem de repetir l’experimentfins tenir èxit

    Pr [X = k] = (1− p)k−1p.

    Si X ∈ G (p) aleshores E [X ] = 1p .

    Exemple Si tenim una moneda equilibrada (Pr [H] = Pr [T ] = 12 ),el nombre esperat de cops que hem de llançar fins a que surti caraés 2.

  • Complexitat mitjana

    Donat un algorisme AP per un problema P:I Selecciona una distribució Π de les entrades a P (amb la

    mateixa n)

    I Ω = espai de probabilitat definit per Π

    I Definim una variable aleatòria X : Ω→ R que represente elnombre que volem mesurar (temps, estudiants, . . .).

    I Computem µ = E [X ]

    I Per finalitzar necessitaŕıem concentració:Pr [X > µ+ α]→ 0.

  • Anàlisi probabiĺıstic de l’algorisme de contractació

    El nombre de diferents ordenacions del n estudiants són totes lespermutacions: n!n! ∼

    √2πn

    (ne

    ).

    Escollir una entrada amb distribució uniforme vol dir que laprobabilitat de escollir qualsevol d’elles és la mateixa = 1n! .

    Hire-Student (n)best:=0for i = 1 to n do

    interview iif i is better than best then

    best:=i and pre-select iend if

    end for

  • Cost esperat O(S lg n)

    LemmaDonada una entrada de la llista de candidats escollida u.a.r., elnombre esperat de alumnes pre-contractats per l’algorisme decontractació és O(ln n).

  • Demostració del Lema

    Sigui X una variable = nombre d’alumnes pre-contractatsPer cada 1 ≤ i ≤ n definim:

    Xi =

    {1 if i és pre-seleccionat;0 if i no és pre-seleccionat.

    Aleshores, X =∑n

    i=1 Xi

    Notem que E [Xi ] = Pr [estudiant i is pre-seleccionat]Com els estudiants arriben aleatòriament cada un dels i primersestudiants té la matrixa probabilitat de ser el millor. Per tantE [Xi ] = Pr [estudiant i is pre-seleccionat] = 1/i

    Com que X =∑n

    i=1 Xi ,E [X ] = E [

    ∑ni=1 1Pr [Xi = 1]] =

    ∑ni=1 E [Xi ] =

    ∑ni=1

    1i = ln n.

  • Algorismes aleatoris

    Algorisme on algunes decisions es prenen depenent de la sortida rd’un generador aleatori random (a, b), a, b ∈ N.

    Quan analitzem la complexitat d’un algorisme aleatori, el temps decomputació sobre una entrada donada x amb grandària n, esdevéuna variable aleatòria T (x , r).

    Volem calcular: maxx ,|x |=n E [T (x , r)]

    INPUT →0100100111010

  • Per què utilitzar algorismes aleatoris?

    L’adversari posa 1 e a una capsa, i nosaltres hem d’endevinarquina es la capsa, si ho fem guanyem l’euro, altrament paguem 1e.Repetim el joc moltes vegades (n gran)

    Estratègia determinista: Escollim sempre la mateixa capsa. Pervalors grans d’n, els nostres guanys seran < 0.

    Estratègia aleatòria: Llancem la moneda i amb probabilitat 1/2escollim la capsa. En aquest cas els nostres guanys seran 0.

  • La utilització d’algorismes aleatoris ha esdevingut clau en moltesarees de la informàtica, la matemàtica, la f́ısica, la biologia o lasociologia.

    I Xarxes socials

    I Sistemes de recomanació: Amazon, i-Tunes, . . .

    I Anuncis a la web

    I Control de ”spam”

    I Criptografia

    I Mineria de dades

    I Protocols de comunicació en xarxes

    I Models epidemiològics i d’infecció

    I Seqüenciació del DNA i el RNA

  • Exemple: contractar un estudiant

    Recordeu: després d’entrevistar el i-èsim estudiant, hem de decidirsi el precontractem o no.Si el precontractem i no és el seleccionat, li indemnitzem amb S e.Volem minimitzar els costos totals de precontractar.

    n

    4 37n n−4

    1 2 3 4

  • El problema de seleccionar un estudiant: Algorisme aleatori

    Rand-Hire-Student (n)Randomly permute the list [n]best:=0for i = 1 to n do

    interview iif i is better than best then

    best:=i and pre-select iend if

    end for

    Cost esperat: E [Cost] = O(S ln n)

  • Com dissenyem un algorisme per a produir u.a.r. unapermutació?

    Considerem una entrada amb n elements diferentsA = {a1, . . . , an}.

    Una permutació Π(A) = (Π(a1),Π(a2), . . . ,Π(an)

    Exemple: Donat A = {a, b, c, d , e}, tenim Π = (2, 4, 3, 5, 1)Π(A) = A′ = {e, a, c , b, d} and Π(A′) = {d , e, c , a, b}.

    Per a qualsevol conjunt amb n elements tenim n! permutacionsdiferents

    L’espai de probabilitat Ω = {Π1, . . . ,Πn!},⇒ |Ω| = n!

    Però n! ∼ nn (Per què?)Per a seleccionar una permutació u.a.r. d’A, escollim un Π ∈ Ωamb probabilitat = 1n! .

  • Algorisme per a produir una permutació uar

    Randomize-Perm (A)(A, n)for i = 1 to n do

    choose j := Random (i , n)do swap A[i ]↔ A[j ]

    end forAquest algorisme NO ÉS Determinista!, és un algorisme aleatorion l’entrada pot ser donada per un adversari.

    Un algorisme aleatori pren decisions d’acord amb el resultat d’ungenerador aleatori r = random (a, b), a, b ∈ N.Donada una entrada x amb grandària n, el temps de computacióés una r.v. T (x , r).

  • Complexitat

    LemmaRandomize-Perm (A) donà una permutació uniforme de A, enΘ(n) passos. I pot produir totes les n! permutacions.

    Demostració• Complexitat: Per cada element d’A amb cost Θ(n) seleccionemun altre element i el permutem (cost Θ(1)), i això ho fem en Θ(n).

    • Correctessa: El nombre total de combinacions amb j valors és n!.Hi ha n! permutacions de n elements, i una correspondència 1-1entre la generació de l’algorisme i el nombre de permutacions.

    La probabilitat de que a la 1ra iteració tinguem un valor particularde j és 1/n, a la segona iteració la probabilitat de tenir un altrevalor és 1/(n − 1), etc..

    Per tant, la probabilitat de produir una n-tupla particular d’ entersentre 1 i n és 1n ×

    1n−1 ×

    1n−2 · · · × 1 =

    1n! . 2


Recommended