Grafuri bipartite

Embed Size (px)

Citation preview

  • 8/10/2019 Grafuri bipartite

    1/9

  • 8/10/2019 Grafuri bipartite

    2/9

    Dmian Constantin-Sebastian

    Informatic zi, Grupa 431

    1

    Grafuri bipartite

    Algoritmul Ungar

    1. Noiuni introductive

    Un graf (neorientat sau orientat) este o pereche ordonat de mulimi G(V, E).Mulimea V este o mulime nevid i finit de elemente denumite vrfurile grafului.Mulimea E este o mulime de perechi de vrfuri din graf. n cazul grafurilor neorientate,

    perechile de vrfuri din mulimea E sunt neordonate i sunt denumite muchii. Perecheaneordonat format din vrfurile x i y se noteaz [x, y]; vrfurile x i y se numescextremitile muchiei [x, y]. Vom considera c extremitile unei muchii sunt distincte (adicgraful nu coninebucle). n practic, informaiile asociate unui graf pot fi orict de complexe,dar, pentru a simplifica, vom considera c vrfurile grafului sunt etichetate cu numere naturale

    de la 1 la n (unde cu n vom nota numrul de vrfuri din graf). Aceast numerotare nu este orestrngere a generalitii (de exemplu, numrul vrfului poate fi considerat poziia pe caresunt memorate ntr-un vector informaiile asociate vrfului). n unele lucrri de specialitate,un vrf al grafului se numete nod.

    Se numete grad al unui vrf x numrul de muchii incidente cu vrful respectiv.Gradul vrfului x se noteaz d(x). Un vrf care are grad 0se numete vrf izolat. Un vrf careare grad 1 se numete vrf terminal.

    Se numete lan ntr-un graf neorientat, o secven de vrfuri [x1, x2, , xp], cuproprietatea c oricare dou vrfuri consecutive din secven sunt adiacente. Un lan esteelementardac el nu conine de mai multe ori acelai vrf. Un lan este simpludac el nuconine de mai multe ori aceeai muchie.Se numete lungimea unui lan numrul de muchiiconinute.

    Se numete ciclu un lan simplu pentru care extremitatea iniial coincide cuextremitatea final. Ciclul se numete elementardac nu conine de mai multe ori acelaivrf (exceptnd extremitile sale).

    Un lan / ciclu elementar se numete hamiltoniandac el trece prin toate vrfurilegrafului. Un lan / cicluelementar se numete eulerian dac el trece prin fiecare muchie a

    grafului o singur dat.

    2. Introducerea subiectului

    Un graf neorientat G = (V, E) se numete bipartitdac mulimea vrfurilor sale poatefi partiionat n dou submulimi A i B nevide ( BAVBA , ) astfel nct oricemuchie are o extremitate n A i una n B.

    Un graf bipartit se numete completdac fiecare vrf din mulimea A este adiacent cufiecare vrf din mulimea B (exist muchie ntre A i B). Dac numrul de vrfuri dinmulimea A este p, iar numrul de vrfuri din mulimea B este q, graful bipartit completconine p*qmuchii.

  • 8/10/2019 Grafuri bipartite

    3/9

    Dmian Constantin-Sebastian

    Informatic zi, Grupa 431

    2

    3. Exemple

    S lum ca exemplu urmtorul graf bipartit G(V, E) avnd V = {1, 2, 3, 4, 5} i E = {(1, 2); (2, 4); (3, 5)} Se observ din desen cele 2 mulimi de vrfuri A = {1, 3, 4} i B = {2,5}respectnd relaiile ( BAVBA , ).Acest exemplu a fost unul abstract. S lum ins un exemplu

    din viaa real. S considerm 4 persoane care doresc s-i cumperefiecare cte un autoturism, avnd la alegere o list ce cuprinde 4 tipuride maini. Cunoscnd preferinele fiecrei persoane, s se determine graficul realizat de firmade vnzri n vederea repartizrii autoturismelor prezente n stoc.

    Matricea preferinelor Graful bipartit rezultat

    Mulimile V i E Graful bipartit rezultat

  • 8/10/2019 Grafuri bipartite

    4/9

  • 8/10/2019 Grafuri bipartite

    5/9

    Dmian Constantin-Sebastian

    Informatic zi, Grupa 431

    4

    int primul(){

    int i;for (i = 1; i n;citire_matrice();do{

    v = primul();}while (v && bipart(v));

    if(v == 0){cout

  • 8/10/2019 Grafuri bipartite

    6/9

    Dmian Constantin-Sebastian

    Informatic zi, Grupa 431

    5

    elementar este M - alternant dacmuchiile sale aparin alternativ cuplajului M i mulimiiMEM . Dacacesta are capetele nesaturate l numimlan (ciclu) deschis.

    O mulime de noduri VK se numete transversaldac orice muchie a grafului Gare cel puin unul din noduri n muimea K. Spunem c o mulime de noduri VA poate fisaturatdac exist un cuplaj M care s conin toate nodurile mulimii A. Un cuplajMsenumete perfectdac acesta satureaz mulimea V. Dac din mulimea de noduri V rmneexact un nod nesaturat, numim cuplajulMaproape perfect.

    Notaii:

    [M] - grafulindusde mulimea M. M* - cuplaj de cardinal maxim (cuplaj maximal).

    K~

    - transversal de cardinal minim (transversal minimal).

    Observaii:

    I. Un graf cu numrul de noduri impar nu poate conine un cuplaj perfect.

    II. Fie21 MM diferena simetric a dou cuplaje M1, M2. Componentele

    conexe ale grafului [21 MM ] sunt de patru tipuri (M1- negru i M2- rou):

    ciclu M1, M2- alternant (component de tip C).

    lan M1, M2- alternant cu un capt M1- saturat icellalt capt M2 - saturat (component de tip(M1, M2)).

    lan M1, M2 - alternant cu ambele capeteM1 - saturate (component de tip (M1, M1))

    lan M1, M2- alternant cu ambele capeteM2 - saturate (component de tip (M2, M2))

    III. 21 MM = numrul componentelor conexe din [ 21 MM ] de tip (M1, M1) -

    numrul componentelor conexe din [ 21 MM ] de tip (M2, M2).

    Notaii:

    Pentru G = (V, E) un graf simplu i VX , notm cu NG(X) mulimea noduriloradiacente celor din X.

  • 8/10/2019 Grafuri bipartite

    7/9

    Dmian Constantin-Sebastian

    Informatic zi, Grupa 431

    6

    Pentru G un graf bipartit cu mulimea nodurilor dat de partiiile A i B i mulimeamuchiilor E vom folosi notaia G = (AB, E)

    c. Teoreme

    Teorema 1 (Berge)

    Fie G = (V, E) un graf simplu cu E i M un cuplaj al acestuia. Atunci M este uncuplaj maximal dac i numai dac nu exist n G nici un lan M - alternant deschis.

    Teorema 2 (Hall, 1935)

    Fie G = (AB, E) graf bipartit. Atunci mulimea de noduri A poate fi saturat dac i

    numai dac XXNAXG

    )(, .

    Teorema 3 (Tutte)

    Un graf G = (V, E) are un cuplaj perfect daci numai dac pentru orice submulimede noduri VX numrul de componente conexe cu un numr impar de noduri n subgraful

    indus de mulimea V \X este mai mic sau egal dect U .

    Teorema 4 (Knig)

    Fie G = (AB, E) graf bipartit. Atunci *~

    MK .

    d.

    Algoritmul ungar

    Cu pregtirile anterioare putem trece la rezolvarea problemei descrise. Pentru aceastavom nota mulimea lucrtorilor cu X = {x1, , xn} i mulimea locurilor de munc cuY = {y1, , yn}. Construim, cu ajutorul acestora, graful bipartit G = (XY, E), undee = (xiyj)E daci numai daclucrtorul xieste calificat pentru locul de muncyj. Problemase reduce astfel la determinarea unui cuplaj perfect al grafului G. n condiiile acestei

    probleme teorema lui Hall asigurexistena unui astfel de cuplaj. Pentru determinarea lui vomfolosi un algoritm de rezolvare numit algoritmul ungar. Acesta decide dac, n general, ungraf bipartit admite un cuplaj perfect sau nu. n caz afirmativ, metodadeterminun astfel de

    cuplaj, iar n caz contrar aceasta returneaz (conform teoremei lui Hall) o submulime XS cu proprietatea c SSN

    G )( .

    Algoritmul pornete cu un cuplaj arbitrar M (de exemplu, prima muchie n ordinea lexicografica etichetelor nodurilor). Dacacesta satureaz toate nodurile mulimiiX, atuncialgoritmul se oprete, pentru ca fost determinat un cuplaj perfect. Altfel, se alege n ordinea etichetelor un nodzX,M- nesaturat i se ncearcconstruirea unui lanM- alternant deschiscu extremitatea iniialn nodulzales. Mai nti se alege un (primul) vecin(nod adiacent)yal luiz. Dacacesta esteM- nesaturat am aflat deja un lanM - alternant deschis de lungimeunu, cu extremitatea iniialn nodulzales i extremitatea finalny. Altfel, adugm lanului

    LmuchiazydinE - M, muchiayz'din cuplajulMi continum procedeul cu noulz'pe post dez, ocolind nodurile din mulimea Ycare aparin deja lanuluiL. Dac lanulLconstruit astfel

  • 8/10/2019 Grafuri bipartite

    8/9

    Dmian Constantin-Sebastian

    Informatic zi, Grupa 431

    7

    pas cu pas este M - alternant deschis, atunci este determinat cuplajul )(' LEMM care

    satureazdin mulimeaXun nod n plus fade cuplajul anterior, dupcare se reia procedeulcu noul cuplaj M' n locul lui M. n cazul n care lanul L nu este M - alternant deschis(extremitatea final este nod al cuplajului M) nseamn cmulimea S = V(L) Xverificinegalitatea SSN

    G )( , deci, conform teoremei lui Hall, graful nu admite un cuplaj perfect.

    Pentru o mai bunnelegere a algoritmului contruim schema logica acestuia.

  • 8/10/2019 Grafuri bipartite

    9/9

    Dmian Constantin-Sebastian

    Informatic zi, Grupa 431

    8

    Bibliografie

    Popescu, D.R., Combinatoric i teoria grafurilor, Societatea de tiineMatematice din Romnia, 2005

    Tomescu, I.,Probleme de combinatoric i teoria grafurilor, Ed. Didactic iPedagogic, Bucureti, 1981

    Enciclopedia online Wikipedia: http://en.wikipedia.org/ ihttp://ro.wikipedia.org/

    Colectia de lecii interactive AEL 2005

    http://en.wikipedia.org/http://en.wikipedia.org/http://ro.wikipedia.org/http://ro.wikipedia.org/http://ro.wikipedia.org/http://en.wikipedia.org/