03.07.2013 Views

Euleriaanse grafen - Combinatorische algoritmen en algoritmische ...

Euleriaanse grafen - Combinatorische algoritmen en algoritmische ...

Euleriaanse grafen - Combinatorische algoritmen en algoritmische ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Euleriaanse</strong> <strong>graf<strong>en</strong></strong><br />

Karakterisaties<br />

Algoritme<br />

Toepassing in de bioinformatica<br />

Cursus Graf<strong>en</strong>theorie <strong>en</strong> <strong>Combinatorische</strong> Optimalisatie (2008–2009) – p.1/13


Karakterisaties<br />

Stelling<br />

zij G sam<strong>en</strong>hang<strong>en</strong>de multigraaf<br />

G euleriaans ⇔ elke top heeft ev<strong>en</strong> graad<br />

G heeft euleriaans spoor ⇔ G heeft precies<br />

twee topp<strong>en</strong> met onev<strong>en</strong> graad<br />

Cursus Graf<strong>en</strong>theorie <strong>en</strong> <strong>Combinatorische</strong> Optimalisatie (2008–2009) – p.2/13


Karakterisaties<br />

Stelling<br />

zij G sam<strong>en</strong>hang<strong>en</strong>de multigraaf<br />

G euleriaans ⇔ elke top heeft ev<strong>en</strong> graad<br />

G heeft euleriaans spoor ⇔ G heeft precies<br />

twee topp<strong>en</strong> met onev<strong>en</strong> graad<br />

Stelling<br />

zij G sam<strong>en</strong>hang<strong>en</strong>de multigraaf<br />

G euleriaans ⇔ elke boog ligt op onev<strong>en</strong><br />

aantal cykels van G<br />

Cursus Graf<strong>en</strong>theorie <strong>en</strong> <strong>Combinatorische</strong> Optimalisatie (2008–2009) – p.2/13


Algoritme<br />

Input: sam<strong>en</strong>hang<strong>en</strong>de multigraaf G, elke top<br />

ev<strong>en</strong> graad<br />

Output: euleriaans circuit C<br />

1: begin in willekeurige top v<br />

2: construeer circuit C dat start <strong>en</strong> eindigt in v<br />

3: while nog bog<strong>en</strong> in G <strong>en</strong> niet in C do<br />

4: kies w in C incid<strong>en</strong>t met ongebruikte boog<br />

5: start in w<br />

6: construeer circuit C ′ van ongebruikte<br />

bog<strong>en</strong><br />

7: voeg C ′ tuss<strong>en</strong> in C bij top w<br />

8: geef C terug<br />

Cursus Graf<strong>en</strong>theorie <strong>en</strong> <strong>Combinatorische</strong> Optimalisatie (2008–2009) – p.3/13


Toepassing in<br />

bioinformatica<br />

Cursus Graf<strong>en</strong>theorie <strong>en</strong> <strong>Combinatorische</strong> Optimalisatie (2008–2009) – p.4/13


DNA sequ<strong>en</strong>cing<br />

Sam<strong>en</strong>voeg<strong>en</strong> van fragm<strong>en</strong>t<strong>en</strong> van DNA<br />

experim<strong>en</strong>t<strong>en</strong> lez<strong>en</strong> korte fragm<strong>en</strong>t<strong>en</strong> van<br />

DNA-sequ<strong>en</strong>tie<br />

sequ<strong>en</strong>tie reconstruer<strong>en</strong> uit fragm<strong>en</strong>t<strong>en</strong><br />

Cursus Graf<strong>en</strong>theorie <strong>en</strong> <strong>Combinatorische</strong> Optimalisatie (2008–2009) – p.5/13


DNA sequ<strong>en</strong>cing<br />

Sam<strong>en</strong>voeg<strong>en</strong> van fragm<strong>en</strong>t<strong>en</strong> van DNA<br />

experim<strong>en</strong>t<strong>en</strong> lez<strong>en</strong> korte fragm<strong>en</strong>t<strong>en</strong> van<br />

DNA-sequ<strong>en</strong>tie<br />

sequ<strong>en</strong>tie reconstruer<strong>en</strong> uit fragm<strong>en</strong>t<strong>en</strong><br />

Experim<strong>en</strong>tele techniek<strong>en</strong> (biotechnologie)<br />

shotgun sequ<strong>en</strong>cing / shortest superstring<br />

DNA arrays / sequ<strong>en</strong>cing by hybridization<br />

Cursus Graf<strong>en</strong>theorie <strong>en</strong> <strong>Combinatorische</strong> Optimalisatie (2008–2009) – p.5/13


DNA sequ<strong>en</strong>cing<br />

Sam<strong>en</strong>voeg<strong>en</strong> van fragm<strong>en</strong>t<strong>en</strong> van DNA<br />

experim<strong>en</strong>t<strong>en</strong> lez<strong>en</strong> korte fragm<strong>en</strong>t<strong>en</strong> van<br />

DNA-sequ<strong>en</strong>tie<br />

sequ<strong>en</strong>tie reconstruer<strong>en</strong> uit fragm<strong>en</strong>t<strong>en</strong><br />

Experim<strong>en</strong>tele techniek<strong>en</strong> (biotechnologie)<br />

shotgun sequ<strong>en</strong>cing / shortest superstring<br />

DNA arrays / sequ<strong>en</strong>cing by hybridization<br />

Algoritmische techniek<strong>en</strong><br />

gebruik van <strong>graf<strong>en</strong></strong>theorie<br />

Cursus Graf<strong>en</strong>theorie <strong>en</strong> <strong>Combinatorische</strong> Optimalisatie (2008–2009) – p.5/13


Sequ<strong>en</strong>cing by hybridization (SBH)<br />

Achterligg<strong>en</strong>d idee<br />

voor niet-gek<strong>en</strong>de DNA-sequ<strong>en</strong>tie s<br />

gegev<strong>en</strong> is spectrum, d.i. alle deelstrings van<br />

l<strong>en</strong>gte ℓ (d.i. ℓ-mer<strong>en</strong>) uit s<br />

ge<strong>en</strong> informatie over positie in sequ<strong>en</strong>tie<br />

Cursus Graf<strong>en</strong>theorie <strong>en</strong> <strong>Combinatorische</strong> Optimalisatie (2008–2009) – p.6/13


Sequ<strong>en</strong>cing by hybridization (SBH)<br />

Achterligg<strong>en</strong>d idee<br />

voor niet-gek<strong>en</strong>de DNA-sequ<strong>en</strong>tie s<br />

gegev<strong>en</strong> is spectrum, d.i. alle deelstrings van<br />

l<strong>en</strong>gte ℓ (d.i. ℓ-mer<strong>en</strong>) uit s<br />

ge<strong>en</strong> informatie over positie in sequ<strong>en</strong>tie<br />

Voorbeeld (ℓ = 3)<br />

DNA-sequ<strong>en</strong>tie s = TATGGTGC<br />

spec(s,ℓ) = {TAT, ATG, TGG, GGT, GTG, TGC}<br />

Cursus Graf<strong>en</strong>theorie <strong>en</strong> <strong>Combinatorische</strong> Optimalisatie (2008–2009) – p.6/13


Sequ<strong>en</strong>cing by hybridization (SBH)<br />

Achterligg<strong>en</strong>d idee<br />

voor niet-gek<strong>en</strong>de DNA-sequ<strong>en</strong>tie s<br />

gegev<strong>en</strong> is spectrum, d.i. alle deelstrings van<br />

l<strong>en</strong>gte ℓ (d.i. ℓ-mer<strong>en</strong>) uit s<br />

ge<strong>en</strong> informatie over positie in sequ<strong>en</strong>tie<br />

Voorbeeld (ℓ = 3)<br />

Hier<br />

DNA-sequ<strong>en</strong>tie s = TATGGTGC<br />

spec(s,ℓ) = {TAT, ATG, TGG, GGT, GTG, TGC}<br />

algoritme voor reconstructie s uit spectrum<br />

Cursus Graf<strong>en</strong>theorie <strong>en</strong> <strong>Combinatorische</strong> Optimalisatie (2008–2009) – p.6/13


Overlapp<strong>en</strong>de strings<br />

Overlap van strings<br />

overlap(p,q) = l<strong>en</strong>gte van langste prefix van p<br />

dat overe<strong>en</strong>komt met e<strong>en</strong> suffix van q<br />

Cursus Graf<strong>en</strong>theorie <strong>en</strong> <strong>Combinatorische</strong> Optimalisatie (2008–2009) – p.7/13


Overlapp<strong>en</strong>de strings<br />

Overlap van strings<br />

overlap(p,q) = l<strong>en</strong>gte van langste prefix van p<br />

dat overe<strong>en</strong>komt met e<strong>en</strong> suffix van q<br />

Overlap van ℓ-mer<strong>en</strong><br />

twee ℓ-mer<strong>en</strong> p <strong>en</strong> q overlapp<strong>en</strong> als<br />

overlap(p,q) = ℓ − 1<br />

d.i. laatste ℓ − 1 letters van p kom<strong>en</strong> overe<strong>en</strong><br />

met eerste ℓ − 1 letters van q<br />

Cursus Graf<strong>en</strong>theorie <strong>en</strong> <strong>Combinatorische</strong> Optimalisatie (2008–2009) – p.7/13


SBH als hamiltoniaans pad<br />

Construeer gerichte graaf<br />

gegev<strong>en</strong> spec(s,ℓ) voor niet-gek<strong>en</strong>de s<br />

topp<strong>en</strong> zijn ℓ-mer<strong>en</strong> in spec(s,ℓ)<br />

gerichte boog van p naar q als ze overlapp<strong>en</strong><br />

Cursus Graf<strong>en</strong>theorie <strong>en</strong> <strong>Combinatorische</strong> Optimalisatie (2008–2009) – p.8/13


SBH als hamiltoniaans pad<br />

Construeer gerichte graaf<br />

gegev<strong>en</strong> spec(s,ℓ) voor niet-gek<strong>en</strong>de s<br />

topp<strong>en</strong> zijn ℓ-mer<strong>en</strong> in spec(s,ℓ)<br />

gerichte boog van p naar q als ze overlapp<strong>en</strong><br />

Dan 1-1-correspond<strong>en</strong>tie tuss<strong>en</strong><br />

hamiltoniaans pad in graaf<br />

DNA-sequ<strong>en</strong>ties met gegev<strong>en</strong> spectrum<br />

Cursus Graf<strong>en</strong>theorie <strong>en</strong> <strong>Combinatorische</strong> Optimalisatie (2008–2009) – p.8/13


Voorbeeld 1<br />

Spectrum<br />

S1 = {ATG, AGG, TGC, TCC, GTC, GGT, GCA, CAG}<br />

Cursus Graf<strong>en</strong>theorie <strong>en</strong> <strong>Combinatorische</strong> Optimalisatie (2008–2009) – p.9/13


Voorbeeld 1<br />

Spectrum<br />

S1 = {ATG, AGG, TGC, TCC, GTC, GGT, GCA, CAG}<br />

Graaf <strong>en</strong> hamiltoniaans pad voor S1<br />

CAG<br />

GCA<br />

ATG AGG<br />

GGT<br />

GTC<br />

TGC<br />

TCC<br />

ATG → TGC → GCA → CAG →<br />

AGG → GGT → GTC → TCC<br />

Cursus Graf<strong>en</strong>theorie <strong>en</strong> <strong>Combinatorische</strong> Optimalisatie (2008–2009) – p.9/13


Voorbeeld 1<br />

Spectrum<br />

S1 = {ATG, AGG, TGC, TCC, GTC, GGT, GCA, CAG}<br />

Graaf <strong>en</strong> hamiltoniaans pad voor S1<br />

CAG<br />

GCA<br />

ATG AGG<br />

GGT<br />

GTC<br />

TGC<br />

TCC<br />

Gereconstrueerde sequ<strong>en</strong>tie<br />

ATGCAGGTCC<br />

ATG → TGC → GCA → CAG →<br />

AGG → GGT → GTC → TCC<br />

Cursus Graf<strong>en</strong>theorie <strong>en</strong> <strong>Combinatorische</strong> Optimalisatie (2008–2009) – p.9/13


Voorbeeld 2<br />

Spectrum<br />

S2 = {ATG, TGG, TGC, GTG, GGC, GCA, GCG, CGT}<br />

Cursus Graf<strong>en</strong>theorie <strong>en</strong> <strong>Combinatorische</strong> Optimalisatie (2008–2009) – p.10/13


Voorbeeld 2<br />

Spectrum<br />

S2 = {ATG, TGG, TGC, GTG, GGC, GCA, GCG, CGT}<br />

Graaf <strong>en</strong> hamiltoniaans pad voor S2<br />

CGT<br />

GCG<br />

ATG TGG<br />

GCA<br />

GGC<br />

TGC<br />

GTG<br />

ATG → TGG → GGC → GCG<br />

→ CGT → GTG → TGC →<br />

GCA<br />

ATG → TGC → GCG → CGT<br />

→ GTG → TGG → GGC →<br />

GCA<br />

Cursus Graf<strong>en</strong>theorie <strong>en</strong> <strong>Combinatorische</strong> Optimalisatie (2008–2009) – p.10/13


Voorbeeld 2<br />

Spectrum<br />

S2 = {ATG, TGG, TGC, GTG, GGC, GCA, GCG, CGT}<br />

Graaf <strong>en</strong> hamiltoniaans pad voor S2<br />

CGT<br />

GCG<br />

ATG TGG<br />

GCA<br />

GGC<br />

TGC<br />

GTG<br />

Gereconstrueerde sequ<strong>en</strong>ties<br />

ATGCGTGGCA <strong>en</strong> ATGGCGTGCA<br />

ATG → TGG → GGC → GCG<br />

→ CGT → GTG → TGC →<br />

GCA<br />

ATG → TGC → GCG → CGT<br />

→ GTG → TGG → GGC →<br />

GCA<br />

Cursus Graf<strong>en</strong>theorie <strong>en</strong> <strong>Combinatorische</strong> Optimalisatie (2008–2009) – p.10/13


Opmerking<br />

Oploss<strong>en</strong> SBH-probleem<br />

door bepal<strong>en</strong> van hamiltoniaans pad in<br />

gerichte graaf<br />

Cursus Graf<strong>en</strong>theorie <strong>en</strong> <strong>Combinatorische</strong> Optimalisatie (2008–2009) – p.11/13


Opmerking<br />

Oploss<strong>en</strong> SBH-probleem<br />

Maar<br />

door bepal<strong>en</strong> van hamiltoniaans pad in<br />

gerichte graaf<br />

ge<strong>en</strong> efficiënt algorithm<br />

in de praktijk niet bruikbaar voor grote<br />

overlap<strong>graf<strong>en</strong></strong><br />

Cursus Graf<strong>en</strong>theorie <strong>en</strong> <strong>Combinatorische</strong> Optimalisatie (2008–2009) – p.11/13


Opmerking<br />

Oploss<strong>en</strong> SBH-probleem<br />

Maar<br />

door bepal<strong>en</strong> van hamiltoniaans pad in<br />

gerichte graaf<br />

ge<strong>en</strong> efficiënt algorithm<br />

in de praktijk niet bruikbaar voor grote<br />

overlap<strong>graf<strong>en</strong></strong><br />

Zoek<strong>en</strong> naar andere oplossing<br />

vertal<strong>en</strong> naar probleem van euleriaans spoor<br />

in (andere) graaf<br />

Cursus Graf<strong>en</strong>theorie <strong>en</strong> <strong>Combinatorische</strong> Optimalisatie (2008–2009) – p.11/13


SBH als euleriaans spoor<br />

Achterligg<strong>en</strong>d idee<br />

construeer graaf waarbij ℓ-mer<strong>en</strong><br />

corresponder<strong>en</strong> met bog<strong>en</strong> i.p.v. topp<strong>en</strong><br />

Cursus Graf<strong>en</strong>theorie <strong>en</strong> <strong>Combinatorische</strong> Optimalisatie (2008–2009) – p.12/13


SBH als euleriaans spoor<br />

Achterligg<strong>en</strong>d idee<br />

construeer graaf waarbij ℓ-mer<strong>en</strong><br />

corresponder<strong>en</strong> met bog<strong>en</strong> i.p.v. topp<strong>en</strong><br />

Constructie van graaf<br />

topp<strong>en</strong> zijn alle (ℓ − 1)-mer<strong>en</strong><br />

gerichte boog van p naar q als spec(s,ℓ) e<strong>en</strong><br />

ℓ-meer met prefix p <strong>en</strong> suffix q bevat<br />

Cursus Graf<strong>en</strong>theorie <strong>en</strong> <strong>Combinatorische</strong> Optimalisatie (2008–2009) – p.12/13


SBH als euleriaans spoor<br />

Achterligg<strong>en</strong>d idee<br />

construeer graaf waarbij ℓ-mer<strong>en</strong><br />

corresponder<strong>en</strong> met bog<strong>en</strong> i.p.v. topp<strong>en</strong><br />

Constructie van graaf<br />

topp<strong>en</strong> zijn alle (ℓ − 1)-mer<strong>en</strong><br />

gerichte boog van p naar q als spec(s,ℓ) e<strong>en</strong><br />

ℓ-meer met prefix p <strong>en</strong> suffix q bevat<br />

Dan 1-1-correspond<strong>en</strong>tie tuss<strong>en</strong><br />

euleriaans spoor in graaf<br />

DNA-sequ<strong>en</strong>ties met gegev<strong>en</strong> spectrum<br />

Cursus Graf<strong>en</strong>theorie <strong>en</strong> <strong>Combinatorische</strong> Optimalisatie (2008–2009) – p.12/13


Voorbeeld<br />

Spectrum<br />

S2 = {ATG, TGG, TGC, GTG, GGC, GCA, GCG, CGT}<br />

Cursus Graf<strong>en</strong>theorie <strong>en</strong> <strong>Combinatorische</strong> Optimalisatie (2008–2009) – p.13/13


Voorbeeld<br />

Spectrum<br />

S2 = {ATG, TGG, TGC, GTG, GGC, GCA, GCG, CGT}<br />

Graaf voor S2<br />

AT<br />

GT CG<br />

TG<br />

GG<br />

GC<br />

CA<br />

AT → TG → GG → GC<br />

→ CG → GT → TG →<br />

GC → CA<br />

AT → TG → GC → CG<br />

→ GT → TG → GG →<br />

GC → CA<br />

Cursus Graf<strong>en</strong>theorie <strong>en</strong> <strong>Combinatorische</strong> Optimalisatie (2008–2009) – p.13/13


Voorbeeld<br />

Spectrum<br />

S2 = {ATG, TGG, TGC, GTG, GGC, GCA, GCG, CGT}<br />

Graaf voor S2<br />

AT<br />

GT CG<br />

TG<br />

GG<br />

GC<br />

Gereconstrueerde sequ<strong>en</strong>ties<br />

CA<br />

ATGCGTGGCA <strong>en</strong> ATGGCGTGCA<br />

AT → TG → GG → GC<br />

→ CG → GT → TG →<br />

GC → CA<br />

AT → TG → GC → CG<br />

→ GT → TG → GG →<br />

GC → CA<br />

Cursus Graf<strong>en</strong>theorie <strong>en</strong> <strong>Combinatorische</strong> Optimalisatie (2008–2009) – p.13/13

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!