Permanenten Aeen m n-matrix en noteer A(ic;jc) voor de matrix verkregen uit Adoor rij ien kolom jweg...

51
Permanenten Hanneke van der Beek 19 november 2014 Bachelorscriptie Begeleiding: Dr. J.H. Brandts Korteweg-de Vries Instituut voor Wiskunde Faculteit der Natuurwetenschappen, Wiskunde en Informatica Universiteit van Amsterdam

Transcript of Permanenten Aeen m n-matrix en noteer A(ic;jc) voor de matrix verkregen uit Adoor rij ien kolom jweg...

Permanenten

Hanneke van der Beek

19 november 2014

Bachelorscriptie

Begeleiding: Dr. J.H. Brandts

Korteweg-de Vries Instituut voor Wiskunde

Faculteit der Natuurwetenschappen, Wiskunde en Informatica

Universiteit van Amsterdam

Samenvatting

De permanentfunctie kent aan elke m × n-matrix een getal uit R toe. Deze functielijkt in veel opzichten op de determinant, maar doordat de permanent geen alternerendemaar een symmetrische functie is, is deze niet invariant onder rijvegen. De permanentkan dus niet worden uitgerekend door de matrix terug te brengen tot echelonvorm. Welis de permanent in sommige gevallen door een specifiek nulpatroon eenvoudiger uit terekenen. Een voorbeeld hiervan is de stelling van Frobenius en Konig. Deze zegt datde permanent van een niet-negatieve matrix 0 is, dan en slechts dan als de matrix eenvoldoende grote deelmatrix met enkel nullen bevat.

Een belangrijke toepassing van de permanent ligt binnen de grafentheorie. Het aantalperfecte koppelingen van een bipartiete graaf is namelijk gelijk aan de permanent van deverbindingsmatrix. Veel van de stellingen over de permanent kunnen ook geformuleerdworden in de context van grafen. Zo bevat een bipartiete graaf een perfecte koppelingdan en slechts dan als elk punt voldoende buren heeft.

In 1812 had Binet al formules om de permanent van een m × n-matrix uit te rekenenvoor m ≤ 4. Later heeft Minc deze formules uitgebreid tot een uitdrukking voor allem. In complexiteit is deze methode iets beter dan volgens de definitie te werken, maarniet veel. De methode van Ryser daarentegen levert een algoritme met exponentieelalgoritme, wat wel een noemenswaardige verbetering is.

Titel: PermanentenAuteur: Hanneke van der Beek, [email protected], 6135943Begeleiding: Dr. J.H. BrandtsTweede beoordelaar: Dr. G. RegtsEinddatum: 19 november 2014

Korteweg-de Vries Instituut voor WiskundeUniversiteit van AmsterdamScience Park 904, 1098 XH Amsterdamhttp://www.science.uva.nl/math

2

Inhoudsopgave

1. Inleiding 4

2. Combinatorische matrixtheorie 62.1. De permanent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.2. Dubbelstochastische matrices . . . . . . . . . . . . . . . . . . . . . . . . 112.3. Het nulpatroon van matrices . . . . . . . . . . . . . . . . . . . . . . . . . 152.4. De permanent binnen de grafentheorie . . . . . . . . . . . . . . . . . . . 18

3. Het uitrekenen van de permanent 223.1. De methode van Binet-Minc . . . . . . . . . . . . . . . . . . . . . . . . . 223.2. De methode van Ryser . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293.3. Vergelijking van beide methodes . . . . . . . . . . . . . . . . . . . . . . . 32

4. Conclusie 37

5. Populaire samenvatting 38

Bibliografie 40

A. Berekening volgens de definitie 43

B. Algoritme van Ryser 44B.1. Vierkante matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44B.2. Niet-vierkante matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

C. Algoritme van Binet-Minc 46C.1. Vinden van de opdelingen . . . . . . . . . . . . . . . . . . . . . . . . . . 46C.2. Berekenen van de permanent . . . . . . . . . . . . . . . . . . . . . . . . . 47

D. Stelling van Birkhoff-Von Neumann 48

E. Aanvulling op het bewijs van stelling 4.3 50

3

1. Inleiding

In 1812 schreef Augustin Louis Cauchy [6] over permanent symmetrische functies enalternerend symmetrische functies. Onder de eerste verstond hij functies waarvan deuitkomst niet verandert door een permutatie op de variabelen. Functies waarvan deuitkomst alleen in teken verandert door een permutatie noemde hij alternerend symme-trische functies, deze worden nu simpelweg alternerend genoemd. Een voorbeeld hiervanis de determinant gezien als functie op de rijen of kolommen van de matrix. Zeventig jaarlater kwam Thomas Muir [13] met een artikel waarin hij een klasse van de permanentsymmetrische functies beschouwde, namelijk de permanent symmetrische tegenhangervan de determinant, en noemde dit de permanent.

Definitie 1.1. Laat Sn de symmetrische groep van permutaties op n objecten zijn. Vooreen n× n-matrix A is de permanent dan als volgt gedefinieerd:

per(A) =∑σ∈Sn

n∏i=1

aiσ(i).

Op het eerste gezicht lijkt de permanent eenvoudiger dan de determinant, maar nietsis minder waar. Door het alternerende karakter geldt namelijk dat de determinant vaneen matrix onveranderd blijft onder rijvegen, waardoor de determinant uitgerekend kanworden door de matrix terug te brengen tot echelonvorm. Bij de permanent is dit nietmogelijk.

Dit is een belangrijk verschil tussen de determinant en de permanent. Welke verschillenzijn er nog meer, en wat zijn de overeenkomsten? Zijn er voor de permanent ook matricesdie een bepaalde structuur hebben waardoor het uitrekenen eenvoudiger is? En watvoor betekenis heeft de permanent van een matrix? Deze vragen worden in het volgendehoofdstuk beantwoord. We zullen het daar hebben over combinatorische matrixtheorie,een wiskundig vakgebied dat combinatoriek, matrixtheorie en grafenleer combineert. Zozal worden laten zien dat de permanent van een matrix gelijk is aan het aantal perfectmatchings van de bijbehorende bipartiete graaf. Hierdoor kunnen veel stellingen enbegrippen geformuleerd worden in de context van zowel matrices als grafen. Een goedvoorbeeld hiervan is de volgende stelling

Stelling 1.2. Frobenius-Konig De permanent van een niet-negatieve n × n -matrixA is nul, dan en slechts dan als A een r × s-deelmatrix A′ bevat met r + s = n + 1 enA′ = 0.

4

Deze stelling wordt in Paragraaf 2.1 al bewezen. Later, in Paragraaf 2.4, wordt latenzien dat deze stelling equivalent is aan de volgende stelling, die eerder bewezen werddoor Konig [10] en Egervary [7].

Stelling 1.3. De grootte van een maximale koppeling in een bipartiete graaf is gelijk aandie van een minimale knopenbedekking.

Voor willekeurige matrices is er geen boven- of ondergrens van de permanent. Voordubbelstochastische matrices is deze er wel. In 1926 formuleerde de Nederlandse wis-kundige Bartel Leendert van der Waerden [17] een vermoeden over een ondergrens voorde permanent van dubbelstochastische matrices. Dit vermoeden is pas vele jaren later,in 1979 en 1980 bewezen.

Na de publicatie van dit vermoeden nam de interesse voor de permanent nog verder toe,en met de opkomst van de computers werd het ook steeds interessanter hoe de permanentzo efficient mogelijk kan worden uitgerekend. Hier wordt in Hoofdstuk 3 aandacht aanbesteed. In 1812 formuleerde Jacques Philippe Marie Binet [4] al enkele identiteitenvoor de permanent van 2 × n-, 3 × n- en 4 × n-matrices. Later, in 1979, heeft HenrykMinc [12] deze methode uitgebreid en kwam zo tot een uitdrukking voor alle matrices.Minc merkt echter zelf ook al op [11, p. 126] dat deze methode nog altijd een grootaantal berekeningen vereist en daardoor niet erg geschikt is om te implementeren in eencomputerprogramma. Hiervoor is de methode van Ryser wel geschikt. In 1963 beweesHerbert John Ryser in 1963 [15] een uitdrukking waardoor de permanent aanzienlijksneller, namelijk exponentieel in plaats van factorieel, kon worden uitgerekend. Maarhoe veel sneller is sneller? Hoeveel ruimte is er nog voor verbetering?

5

2. Combinatorische matrixtheorie

In dit hoofdstuk worden enkele basisbegrippen en stellingen uit de combinatorische ma-trixtheorie behandeld. In de eerste paragraaf wordt de permanent geıntroduceerd, eenfunctie die een matrix naar een reeel getal stuurt en veel weg heeft van de determi-nant. Daarna worden speciaal types matrices, namelijk de dubbelstochastische matricesin paragraaf 2 en matrices met specifieke nulpatronen in paragraaf 3, belicht. Aan heteind, in paragraaf 4, worden de begrippen in de context van grafentheorie geplaatst. Dithoofdstuk is gebaseerd op een boek van Minc [11] en het tweede hoofdstuk van een boekvan Bapat en Raghavan [1].

2.1. De permanent

Schrijf Sn voor de symmetrische groep van alle permutaties van n objecten, en laatG ⊂ Sn een ondergroep zijn. Gegeven een groepshomomorfisme χ : G → C, definierenwe de functie fχ met als domein de vectorruimte Rn×n van reele n× n-matrices, als

fχ : Rn×n → R, A 7→∑σ∈G

χ(σ)n∏i=1

aiσ(i). (2.1)

Een dergelijke functie fχ heet een Schurfunctie. Een voorbeeld van een Schurfunctiewordt verkregen door de keuze G = Sn en χ : σ 7→ sgn(σ), het teken van σ. Deze functiestaat bekend als de determinant.

In het vervolg zullen we een andere Schurfunctie bestuderen, namelijk de functie dieontstaat door opnieuw G = Sn te kiezen, met ditmaal de keuze χ : σ 7→ 1. Dezefunctie heet de permanent. Er zal blijken dat de permanent in sommige opzichten sterkgerelateerd is aan de determinant. Echter, in sommige andere opzichten kunnen beideconcepten erg verschillend zijn. Zo is de definitie van de permanent, in tegenstelling totde determinant, uit te breiden tot een definitie voor rechthoekige matrices.

Definitie 2.1. Schrijf Sm,n voor de verzameling zijn van injectieve functies σ van1, ...,m naar 1, ..., n. Gegeven een m × n-matrix A, definieren we de permanentals volgt.

per(A) =∑

σ∈Sm,n

m∏i=1

aiσ(i). (2.2)

6

Gegeven een functie σ ∈ Sm,n, wordt de rij (a1σ1, ..., amσ(m)) een diagonaal van A ge-noemd. De permanent is dus, zoals in het volgende voorbeeld te zien is, niets meer dande som over de diagonaalproducten.

Voorbeeld 2.2. Laat A =

[3 2 42 1 5

]. In figuur 2.1 zien we de diagonalen van deze

matrix. De permanent kan dan als volgt worden berekend:

per(A) = 3 · 1 + 2 · 2 + 4 · 2 + 3 · 5 + 2 · 5 + 4 · 1= 44.

Figuur 2.1.: De diagonalen van een 2× 3-matrix

Een aantal van de eigenschappen die we van de determinant kennen geldt ook voor depermanent. Zo kunnen we de permanent ook berekenen door te ontwikkelen naar eenrij - en voor vierkante matrices, zoals we later zullen zien, ook naar een kolom.

Lemma 2.3. Laat A een m× n-matrix en noteer A(ic, jc) voor de matrix verkregen uitA door rij i en kolom j weg te halen. Dan geldt voor alle i ∈ 1, ...,m

per(A) =n∑j=1

aij perA(ic, jc).

Bewijs. Dit is eenvoudig in te zien door te bedenken dat elke diagonaal van A die aijbevat, zonder aij een diagonaal is van A(ic, jc).

Voorbeeld 2.4. Laat A =

3 2 42 1 51 1 1

, dan geldt

per(A) = 3 · per

[1 51 1

]+ 2 · per

[2 51 1

]+ 4 · per

[2 11 1

]= 3 · (1 · 1 + 5 · 1) + 2 · (2 · 1 + 5 · 1) + 4 · (2 · 1 + 1 · 1) = 44

7

Vaak wordt de permanent beschouwd als functie in de rijen van de matrix. Als A = (aij)een m × n-matrix is noteren we ai voor de ie rij (de vector [ai1ai2...ain]) en zeggen datper(A) = per(a1, ..., am). We zien de permanent dan als een functie van (Rn)m naar Ren deze functie blijkt - net als de determinant - multilineair te zijn.

Lemma 2.5. De permanent is multilineair in de rijen van de matrix.

Bewijs. Hiervoor moet worden laten zien dat per(a1, ..., λai, ..., am) = λ per(a1, ..., am)en dat per(a1, ..., ai + a′i, ..., am) = per(a1, ..., ai, ..., am) + per(a1, ..., a

′i, ..., am). Dit is

direct in te zien door te ontwikkelen naar rij i.

Merk op dat de permanent van een matrix die een rij met enkel nullen bevat, hiermeenul is.

Als een matrix twee dezelfde rijen heeft is de determinant van die matrix ook nul. Dedeterminant blijft daardoor gelijk op het moment dat je de ene rij van de matrix opteltbij een andere rij. Er geldt immers

det(a1 + a2, a2, ..., an) = det(a1, ..., an) + det(a2, a2, ..., an) = det(a1, ..., an).

Hierdoor kan de determinant relatief snel, in polynomiale tijd, berekend worden doorhem terug te brengen tot echelonvorm. Voor de permanent geldt dit echter niet, zoals

door een eenvoudig voorbeeld te zien is. Zo is de permanent van de matrix

[1 23 4

]niet gelijk aan die van

[1 20 −2

]. In 1979 bewees Valiant [16] dat het berekenen van de

permanent een #P-probleem is. Als er een algoritme gevonden wordt dat de permanentin polynomiale tijd kan uitrekenen zou dat P = NP bewijzen, wat een van de nogonopgeloste milleniumproblemen is1. Er zijn wel snellere methodes om de permanentuit te rekenen bekend dan te ontwikkelen naar een rij of door over Sn te sommeren. InHoofdstuk 3 wordt hier meer aandacht aan besteed.

De determinant is een alternerende functie. Dat wil zeggen dat het verwisselen van tweerijen kan zorgen voor het veranderen van het teken. De permanent daarentegen is eensymmetrische functie zoals uit het volgende lemma blijkt.

Lemma 2.6. Gegeven een m × n-matrix A. Laat Π1 en Π2 respectievelijk m ×m- enn× n-permutatiematrices zijn, dan geldt per(A) = per(Π1AΠ2).

Bewijs. Door het permuteren van de rijen of kolommen blijven alle diagonalen gelijk, zehoren hooguit bij een andere functie σ - maar dat heeft geen invloed op de permanent.

Hetzelfde geldt voor het transponeren van een vierkante matrix, dus geldt ook datper(A) = per(A>). Een vierkante matrix kan hierdoor behalve naar de rijen ook naarde kolommen ontwikkeld worden en is ook multilineair in de kolommen.1http://www.claymath.org/millennium-problems

8

Lemma 2.7. Laat A een n × n-matrix van de volgende vorm: A =

[B 0C D

], waarbij

zowel B als D vierkante deelmatrices zijn. Dan geldt

per(A) = per(B) per(D).

Bewijs. Neem aan dat B een r× r matrix is. Herinner je de definitie van een diagonaaluit Definitie 2.1. Elke niet-nul term uit per(A) wordt gegeven door een permutatieσ ∈ Sn zodanig dat aiσ(i) 6= 0 voor alle i. Dat kan alleen als voor i ∈ 1, ..., r geldt datσ(i) ∈ 1, ..., r. Dit geeft een permutatie σ1 ∈ Sr en daarmee een diagonaal van B. Opdezelfde manier vinden we ook σ2 ∈ Sn−r en dus een diagonaal van D. Voor deze termgeldt dan

n∏i=1

aiσ(i) =r∏i=1

biσ1(i)

n−r∏i=1

ciσ2(i).

Dus is het ook een term in per(B) per(D).Omgekeerd geldt dat elke term uit per(B) per(D) het product is van twee diagonaalpro-ducten, die samen een diagonaalproduct van A geven.

Door gebruik te maken van deelmatrices kan dit resultaat ook meer algemeen geformu-leerd worden.

Definitie 2.8. Gegeven een m×n-matrix A = (aij). Laat γ ⊆ 1, ..,m en δ ⊆ 1, ..., nmet γ = γ1, .., γr en δ = δ1, ..., δs. Dan is de r × s-matrix B = (bij) met bij = aγiδjeen deelmatrix van A. We schrijven dit als B = A(γ, δ). Met A(γ, :) bedoelen wede r × n-deelmatrix bestaande uit rijen γ1, ..., γr van A. Verder schrijven we γc voor1, ..., n \ γ.

Laat bijvoorbeeld A =

[2 3 64 5 2

], γ = 1 en δ = 1, 3. Hiermee kunnen onder andere

de volgende deelmatrices beschreven worden.

A(γ, δ) =[2 6

]A(:, δ) =

[2 64 2

]A(γ, :) =

[2 3 6

]A(γc, δc) =

[3].

Gevolg 2.9. Laat A een n× n-matrix zijn. Als er γ, δ ⊆ 1, ..., n bestaan zodanig datA(γ, δ) = 0 en |γ|+ |δ| = n, dan geldt

per(A) = per(A(γ, δc)) per(A(γc, δ)).

9

Bewijs. Als |γ| + |δ| = n, geldt dat |γc| = n − |γ| = |δ|. De deelmatrices A(γc, δ) enA(γ, δc) zijn dus vierkant. Omdat de permanent volgens Lemma 2.6 invariant is onderpermutatie, volgt het resultaat uit Lemma 2.7.

Deze eigenschap wordt ook in de volgende stelling gebruikt.

Stelling 2.10. (Frobenius-Konig) De permanent van een niet-negatieve n×n-matrixA is nul, als en alleen als er γ, δ ⊆ 1, ..., n bestaan met |γ| = r en |δ| = s zodatA(γ, δ) = 0 en r + s = n+ 1.

Bewijs. We bewijzen eerst het ’alleen als’- gedeelte. Dit gaat met inductie naar n. Voorn = 1 is het direct duidelijk - de permanent van een 1 × 1-matrix is nul alleen als dematrix nul is. Stel dat de stelling geldt voor n < N en laat A een N × N -matrix zijnmet per(A) = 0. We zullen aantonen dat er dan γ, δ bestaan met |γ| + |δ| = N + 1 enA(γ, δ) = 0.Als A = 0 valt er niks te bewijzen, dus kunnen we aannemen dat er een aij > 0bestaat. Beschouw nu de matrix A(ic, jc) verkregen uit A door rij i en kolom j weg tehalen. Omdat elk diagonaalproduct van A nul is, is ook elk diagonaalproduct en dus depermanent van deze matrix nul. Door de inductiehypothese weten we dat dit betekentdat er ι en κ bestaan met |ι|+ |κ| = N en A(ι, κ) = 0. Uit gevolg 2.9 volgt dan dat

per(A) = per(A(ι, κc)) perA(ιc, κ)) = 0.

We kunnen nu twee gevallen onderscheiden, namelijk ofwel per (A(ι, κc)) = 0 ofwelper (A(ιc, κ)) = 0. Neem eerst aan dat per (A(ι, κc)) = 0.Merk op dat, omdat |ι|+ |κ| = N , de deelmatrix A(ι, κc) een |ι| × |ι|-matrix is. Omdat|ι| < N volgt uit de de inductiehypothese dat deze matrix een u× v 0-deelmatrix heeftmet u + v = |ι| + 1. Oftewel er bestaan ι′ en κ′ (respectievelijk van grootte u en v)zodanig dat A(ι′, κ′) = 0 en ι′ ⊆ ι en κ′ ⊆ κc. Laat nu γ = ι′ en δ = κ ∪ κ′. Dan geldtdat A(γ, δ) = 0 en |γ|+ |δ| = |ι′|+ |κ′|+ |κ| = |ι|+ 1 + |κ| = N + 1.Voor het geval dat per (A(ιc, κ)) = 0, kan op dezelfde manier een geschikte γ en δgevonden worden.

Rest nog te bewijzen dat de permanent van een niet-negatieve n×n-matrix A nul is alser γ en δ bestaan zodanig dat A(γ, δ) = 0 en |γ|+ |δ| = n+ 1.Laat A een n× n-matrix zodanig dat er γ = γ1, ..., γr en δ = δ1, ..., δs bestaan metA(γ, δ) = 0 en r + s = n + 1. Laat nu ι = γ1, ..., γr−1. Dan geldt A(ι, δ) = 0 en|ι|+ |δ| = n, dus uit gevolg 2.9 volgt dat

per(A) = per(A(ι, δc)) perA(ιc, δ)) = 0.

Merk op dat A(γr, δ) een rij van A(ιc, δ) is, dus dat A(ιc, δ) een rij met enkel nullenbevat. De permanent van deze matrix is dus nul en dus geldt per(A) = 0.

10

2.2. Dubbelstochastische matrices

In het algemeen is er geen boven- of ondergrens te geven voor de permanent van matrices.Omdat de permanent een continue functie is, ligt dat voor een compacte deelverzamelingvan de matrices anders. Een zo’n deelverzameling is die van de dubbelstochastischematrices.

Definitie 2.11. Een n × n-matrix A ≥ 0 heet dubbelstochastisch als zowel de rijen alskolommen optellen tot 1. Oftewel, A = aij is een dubbelstochastische matrix als

n∑i=1

aij =n∑j=1

aij = 1.

We schrijven Ωn voor de verzameling van alle n× n dubbelstochastische matrices.

Voorbeelden zijn permutatiematrices of een n × n matrix met op elke positie 1/n. Deverzameling Ωn is compact, en dus heeft de permanent binnen die ruimte een boven- enondergrens.

Claim 2.12. Voor een matrix A ∈ Ωn geldt dat per(A) ≤ 1. Er geldt dat per(A) = 1dan en slechts dan als A een permutatiematrix is.

Bewijs. We zullen een sterker resultaat bewijzen, namelijk dat deze bovengrens geldtvoor alle rijstochastische matrices, matrices waarvan alleen de rijen optellen tot 1. Hetis duidelijk dat de permanent van een permutatiematrix gelijk is aan 1. We hoeven dusalleen te laten zien dat de permanent van een rijstochastische matrix ongelijk aan eenpermutatiematrix strikt kleiner is dan 1. Een rijstochastische 2 × 2-matrix is van devorm

A =

[λ 1− λ

1− µ µ

],

met λ, µ < 1. De permanent hiervan is per(A) = 1 + 2λµ−λ−µ < 1. Stel dat de claimwaar is voor alle n× n-matrices met n < N . Laat A = (aij) een N ×N rijstochastischematrix zijn. Als aij = 1, is A(ic, jc) een enkelstochastische matrix en volgt uit deinductiehypothese dat per(A) = aij per(A(ic, jc)) < 1. Neem nu aan dat de matrix geen1 bevat. Merk op dat de matrix A(1c, jc) strikt kleiner is dan een rijstochastische matrix(namelijk de matrix verkregen door de elementen uit de eerste rij van A op te tellen bijde elementen uit de eerste rij van A(1c, jc)). Bovendien is dit geen permutatiematrix,zodoende is de permanent hiervan kleiner dan 1. Als we de permanent van A uitrekenendoor te ontwikkelen naar de eerste rij vinden we nu

per(A) =n∑j=1

a1j per(A(1c, jc)) <n∑j=1

aij = 1.

11

Een ondergrens voor de permanent in Ωn is een stuk minder eenvoudig te bewijzen. In1926 had de Nederlander Bartel Leendert van der Waerden [17] al het vermoeden dat dieondergrens alleen aangenomen wordt door de n × n-matrix waarvan elk element gelijkis aan 1

n(en dus gelijk is aan n!

nn). Dit werd echter pas in 1980 [8] bewezen.

Het is gemakkelijk na te gaan dat Ωn convex is. Elke convexe combinatie van per-muatiematrices is dus dubbelstochastisch. Om het omgekeerde hiervan, dat ook elkedubbelstochastische matrix te schrijven is als convexe combinatie van permutatiematri-ces, te bewijzen is eerst het volgende lemma nodig.

Lemma 2.13. Als A ∈ Ωn dan geldt per(A) 6= 0.

Bewijs. Laat A een dubbelstochastische matrix zijn. Stel dat per(A) = 0, dan geldtvolgens stelling 2.10 dat A een r × s 0-deelmatrix bevat met r + s = n + 1. Zonderverlies van algemeenheid mogen we aannemen dat deze deelmatrix rechtsboven staat,dus dat A van de volgende vorm is.

B 0

C D

n− s s rn− r

Omdat A dubbelstochastisch is telt elke rij op tot 1. De som van alle elementen van dedeelmatrix B is dus gelijk aan het aantal rijen, r. Tegelijk telt ook elke kolom op tot 1,dus is de som van alle elementen van B en C samen gelijk aan n − s. Maar dan geldtdat r ≤ n− s, wat in tegenspraak is met r + s = n+ 1.

Uit de volgende stelling zal blijken dat elke dubbelstochastische matrix geschreven kanworden als convexe combinatie van permutatiematrices. Deze stelling is door Birkhoffin 1946 [5] bewezen en later opnieuw bewezen door Von Neumann in 1953 [14].

Stelling 2.14. (Birkhoff - Von Neumann) Elke dubbelstochastische matrix kangeschreven worden als convexe combinatie van eindig veel permutatiematrices. Oftewel,als A ∈ Ωn dan zijn er λ1, ..., λn ≥ 0 met

∑ni=1 λi = 1 en waarvoor geldt dat

A = λ1Π1 + ...+ λnΠn.

Bewijs. Laat A = (aij) een dubbelstochastische matrix zijn. Als A een permutatiematrixis, is de stelling bewezen. Neem aan dat A geen permutatiematrix is. Uit Lemma 2.13weten we dat per(A) 6= 0, dus heeft A een positieve diagonaal. Laat σ de permutatie

12

zijn die hoort bij deze diagonaal en Π1 de corresponderende permutatiematrix. Definieernu

µ1 := mina1σ(1), ..., anσ(n),

A(1) :=1

1− µ1

(A− µ1Π1).

Voor λ = 11−µ1 geldt dat A(1) = λA+ (1−λ)Π1. Doordat Ωn convex is, is de matrix A(1)

ook dubbelstochastisch. Bovendien geldt dat

A = µ1Π1 + (1− µ1)A(1),

dus als A(1) een permutatiematrix is zijn we klaar. In het algemeen, als A(k−1) = (a(k−1)ij )

geen permutatiematrix is, vinden we een permutatie σ die een positieve diagonaal geeften de bijbehorende permutatiematrix Πn. We definieren

µn := mina(k−1)1σ(1) , ..., a

(k−1)nσ(n),

A(k) :=1

1− µk(A(k−1) − µkΠk).

Merk op dat A(k) een nul meer heeft dan A(k−1), dus dit proces is eindig. Bovendienblijft de matrix dubbelstochastisch, dus zal het uiteindelijk naar een permutatiematrixleiden.Stel dat we na r stappen op een permutatiematrix uitkomen, dus dat A(r) een permuta-tiematrix is. Definieer dan µr+1 = 1 en Πr+1 = A(r). Voor λk = µk ·

∏k−1i=1 (1− µi) geldt

danr∑

k=1

λk =r−1∑k=1

λk +r−1∏i=1

(1− µi)

=r−2∑k=1

λk + µr−1

r−2∏i=1

(1− µi) + (1− µr−1)r−2∏i=1

(1− µi)

=r−2∑k=1

λk +r−2∏i=1

(1− µi)

= ...

=1∑

k=1

λk +1∏i=1

(1− µi) = 1.

Dus is

A = µ1Π1 + (1− µ1)A(1)

= λ1Π1 + (1− µ1)µ2Π2 + (1− µ1)(1− µ2)A(2) .

= ...

= λ1Π1 + ...+ λrΠr

een convexe combinatie van eindig veel permuatiematrices.

13

Deze stelling is op vele manieren bewezen. Het voordeel van dit bewijs is dat het con-structief is - het geeft direct een algoritme om de convexe combinatie te vinden. Hierdooris het erg geschikt om door een computer te laten uitvoeren, zie ook Appendix D. In hetvolgende voorbeeld wordt nog eens zichtbaar wat er precies gebeurt.

Voorbeeld 2.15. Bekijk de matrix

A =

815

115

615

315

515

715

415

915

215

.Deze matrix is dubbelstochastisch en dus kunnen we stelling 2.14 toepassen. Als eerstemoeten we een permutatiematrix vinden die een positieve diagonaal in A geeft. Wekiezen bijvoorbeeld

Π1 =

1 0 00 1 00 0 1

.Dan geldt µ1 = min 8

15, 5

15, 2

15 = 2

15en dus λ1 = µ1 = 2

15. We maken nu de nieuwe

matrix A(1) door

A(1) =1

1− 2/15

(A− 2

15Π1

)=

613

113

613

313

313

713

413

913

0

.Nu zoeken we opnieuw een positieve diagonaal in A(1). We kiezen

Π2 =

1 0 00 0 10 1 0

.Hiermee vinden we µ2 = min 6

13, 7

13913 = 6

13en dus λ2 = µ2(1 − µ1) = 6

15. Nu kunnen

we A(2) maken door

A(2) =1

1− µ2

(A(1) − µ2Π2

)=

0 17

67

37

37

17

47

37

0

.Dit proces nog twee keer herhalen levert het volgende op.

Stap 3: Π3 =

0 0 11 0 00 1 0

, µ3 = 37, λ3 = 3

15, A(3) =

0 14

34

0 34

14

1 0 0

,

Stap 4: Π4 =

0 0 10 1 01 0 0

, µ4 = 34, λ4 = 3

15, A(4) =

0 1 00 0 11 0 0

.

14

We zien nu dat A(4) een permutatiematrix is, dus definieren we Π5 = A(4) en λ5 =∏4i=1(1− µi) = 1

15. We zien dat er inderdaad geldt dat

A = λ1Π1 + λ2Π2 + λ3Π3 + λ4Π4 + λ5Π5

enλ1 + λ2 + λ3 + λ4 + λ5 = 1.

We hebben A dus geschreven als convexe combinatie van eindig veel permutatiematrices.

2.3. Het nulpatroon van matrices

Voor veel eigenschappen van de permanent doet het er niet echt toe wat de waardesvan de matrixelementen zijn, maar enkel op welke plek de niet-nul elementen staan. Ditzagen we onder andere al in de stelling van Frobenius-Konig, Stelling 2.10. Allereerstzullen we een manier definieren, om matrices die nullen op dezelfde posities hebben staante benoemen.

Definitie 2.16. Twee matrices A = (aij) en B = (bij) hebben hetzelfde nulpatroon alsaij = 0 dan en slechts dan als bij = 0. We zeggen dat een matrix A een dubbelstochastischpatroon heeft als er een dubbelstochastische matrix bestaat met hetzelfde nulpatroon alsA.

We zien bijvoorbeeld dat de matrix

[1 2−3 5

]een dubbelstochastisch patroon heeft, na-

melijk hetzelfde nulpatroon als de matrix

[1/2 1/21/2 1/2

]. De matrix

[1 10 1

]heeft daaren-

tegen geen dubbelstochastisch patroon. We zagen al dat een (eindige) som van permu-tatiematrices ook een dubbelstochastisch patroon heeft.

Stelling 2.17. Laat A een niet-negatieve n×n-matrix ongelijk aan nul zijn. Dan heeft Aeen dubbelstochastisch patroon dan en slechts dan als elke positieve entry in een positievediagonaal bevat is.

Bewijs. Laat A 6= 0 een niet-negatieve n × n-matrix zijn met een dubbelstochastischpatroon. Dan is er een dubbelstochastische matrix B die hetzelfde patroon als A heeften is het voldoende de stelling te bewijzen voor B. Volgens Stelling 2.14 kan B geschrevenworden als convexe combinatie van permutatiematrices. Voor elke positie waar B nietnul is, is er dan een permutatiematrix Πk in deze som die een 1 heeft op deze positie.Doordat alle λj > 0, betekent dit dat de 1-diagonaal van Πk positief is in B.

Voor de implicatie in de andere richting nemen we aan dat A een niet-negatieve n× n-matrix is, waarbij elke positieve entry in een positieve diagonaal bevat is. Voor elkepositieve entry aij kunnen we dus een permutatiematrix Π vinden die 1 is op een van

15

deze diagonalen. De matrix gevormd door de som van al deze permutatiematrices heeftdan hetzelfde patroon als A. We zagen al dat een eindige som van permutatiematrices,en dus ook A, een dubbelstochastisch patroon heeft.

Een belangrijke parameter van een matrix is de rank, het aantal lineair onafhankelijkerijen of kolommen ervan. Dit is gelijk aan de maximale grootte van een vierkante deel-matrix met determinant ongelijk aan nul. Een begrip dat hier sterk op lijkt is de termrank van een matrix.

Definitie 2.18. Laat A een m × n-matrix. De term rank van A is gelijk aan hetmaximale aantal niet-nul elementen waarvan er geen twee in dezelfde rij of kolom liggen.

De term rank kan, net als de rank, ook gedefinieerd worden door gebruik te maken vandeelmatrices.

Gevolg 2.19. Voor A ≥ 0 is de term rank gelijk aan de maximale grootte van eenvierkante deelmatrix van A met de permanent ongelijk aan nul.

Bewijs. Als de permanent van een niet-negatieve matrix ongelijk aan nul is betekent datdat er een diagonaal is waarvan het product ongelijk aan nul is, dus waarvan alle elemen-ten ongelijk aan nul zijn. Een deelmatrix van A met maximale grootte en permanentongelijk aan nul, geeft dus de diagonaal met het minste aantal niet-nul elementen.

Definitie 2.20. Gegeven is een matrix A = (aij). Twee niet-nul elementen van A, aijen ai′j′ heten chainable als er rijen I = (i1, ..., ik) en J = (j1, ..., jk) bestaan zodanig dat

• aij = ai1j1 en ai′j′ = aikjk ,

• voor alle q ∈ 1, ..., k geldt dat aiqjq 6= 0,

• voor alle q ∈ 1, ..., k − 1 geldt ofwel iq = iq+1 ofwel jq = jq+1.

Met andere woorden, er is een pad van de een naar de ander, over de matrix heen enwaarbij alleen op een niet-nul element van richting gewisseld kan worden.We noemen een matrix chainable als alle niet-nul elementen chainable zijn.

Bekijk de matrix uit Figuur 2.2. In Figuur 2.2a zie je dat de elementen a22 en a55

chainable zijn via het pad gegeven door I = 2, 2, 5, 5 en J = 2, 4, 4, 5. In Figuur 2.2bkun je zien dat de matrix zelf niet chainable is; zo is er bijvoorbeeld geen pad van a11

naar a22. De matrix kan eenvoudig chainable gemaakt worden, bijvoorbeeld door a23 teveranderen naar een 1.

Definitie 2.21. Een n× n-matrix A heet partly decomposable als er γ, δ bestaan zodat|γ|+ |δ| = n en A(γ, δ) = 0. Oftewel als A een r × s deelmatrix bevat die overal nul is.Als een matrix niet partly decomposable is heet de matrix fully indecomposable.

16

1 0 1 0 0

0 1 0 1 0

1 0 1 0 0

0 1 0 1 0

0 0 0 1 1

(a) Route van a22 naar a55.

1 0 1 0 0

0 1 0 1 0

1 0 1 0 0

0 1 0 1 0

0 0 0 1 1

(b) De ketens van de matrix

Figuur 2.2.: Voorbeeld van een matrix die niet chainable is.

In Lemma 2.7 en Gevolg 2.9 zagen we al waarom deze matrices het bestuderen waard zijn.De permanent ervan is namelijk makkelijker uit te rekenen. Daarnaast zal de volgendestelling laten zien dat het ook een manier is om te zien of een matrix dubbelstochastischpatroon heeft of chainable is.

Stelling 2.22. Een niet-negatieve matrix A is fully indecomposable dan en slechts danals A een dubbelstochastisch patroon heeft en chainable is.

Bewijs. Laat A een fully indecomposable matrix. Eerst zal worden aangetoond dat Aeen dubbelstochastisch patroon heeft. Volgens Stelling 2.17 is het voldoende te latenzien dat elk positief element in een positieve diagonaal bevat zit. De matrix A is fullyindecomposable, dus geldt A 6= 0. Laat aij > 0 en beschouw de matrix A(ic, jc). OmdatA fully indecomposable is, volgt uit Stelling 2.10 dat de determinant hiervan ongelijkaan nul is. Dus heeft A(ic, jc) een positieve diagonaal. Door aij aan deze diagonaal toete voegen, hebben we een positieve diagonaal van A waar aij zich in bevindt.Vervolgens zal worden aangetoond dat A chainable is. Stel dat dit niet het geval is, danbevat A minstens twee ketens, zoals ook te zien is in Figuur 2.2b. Er bestaan dus γ1 enγ2 met |γ1|+|γ2| = n en δ1 en δ2 met |δ1|+|δ2| = n, zodanig dat de deelmatrices A(γ1, δ1)en A(γ2, δ2) niet met elkaar te verbinden zijn met een pad zoals in Definitie 2.20. Danis het zo dat A(γ1, δ2) = 0 en A(γ2, δ1) = 0. Er geldt dat

|γ1|+ |γ2|+ |δ1|+ |δ2| = 2n,

dus geldt |γ1| + |δ2| ≥ n of |γ2| + |δ1| ≥ n. Dit is een tegenspraak met het fullyindecomposable zijn van de matrix A.

Als laatste willen we nog aan tonen dat een niet-negatieve matrix fully indecomposableis als deze een dubbelstochastisch patroon heeft en chainable is. Laat hiervoor A eendubbelstochastische, niet-negatieve matrix zijn die chainable is en neem aan dat A partlydecomposable is. Dat betekent dat er γ, δ bestaan met |γ| + |δ| = n en A(γ, δ) = 0.Dan is de deelmatrix A(γ, δc) vierkant. Omdat A dubbelstochastisch is volgt hieruit datA(γc, δc) = 0.

17

2.4. De permanent binnen de grafentheorie

Veel van de begrippen die tot nu toe in dit hoofdstuk behandeld zijn, vinden hun oor-sprong in - of hebben in ieder geval veel toepassingen binnen - de grafentheorie.

Definitie 2.23. Een graaf is een tweetal G = (V,E) waarbij V een verzameling is diede knopen voorstelt en waarbij E ⊂ V × V lijnen tussen de knopen voorstelt. In eenongerichte graaf geldt dat (v1, v2) ∈ E impliceert dat (v2, v1) ∈ E.We noemen een graaf bipartiet als V = V1 ∪ V2 en E ⊂ V1 × V2.

In deze paragraaf zullen we het hebben over ongerichte bipartiete grafen. Een bipartietegraaf kan geassocieerd worden met een matrix door de verbindingsmatrix.

Definitie 2.24. Gegeven een bipartiete graaf G = (V ∪ U,E) met V = v1, ..., vn enU = u1, ..., un. Dan is de n× n-matrix A = (aij) een verbindingsmatrix van G als

aij =

1 als (vi, uj) ∈ E0 als (vi, uj) 6∈ E

.

Elke v ∈ V correspondeert met een rij van de matrix die we zullen aangeven met v, opdezelfde manier geeft elke u ∈ U de kolom u.

A

B

C

D

E

V

W

X

Y

Z

(a) Bipartiete graaf

1 1 0 1 0

1 1 1 1 0

0 1 0 1 0

1 0 1 1 1

0 0 1 1 1

V W X Y Z

A

B

C

D

E

(b) De verbindingsmatrix

Figuur 2.3.: Een bipartiete graaf en bijbehorende verbindingsmatrix.

In Figuur 2.3a zie je de bipartiete graaf G = (V,E), gegeven door V = A,B,C,D,E∪V,W,X, Y, Z en E = (A, V ), (A,W ), (A, Y ), (B, V ), (B,X), (B, Y ), (C,W ), (C, Y ),(D, V ), (D,X), (D,Z), (E, V ), (E, Y ), (E,Z). Een bipartiete graaf kan voor van allessymbool staan, zo lees je in Hoofdstuk 5 een voorbeeld over een datingshow. In veel vandie gevallen is het interessant of alle punten gekoppeld kunnen worden, oftewel of er eenperfecte koppeling bestaat.

18

Definitie 2.25. Gegeven een bipartiete graaf G = (V ∪ U,E). Een deelverzameling Mvan E heet een koppeling als geen van de lijnen uit M een gemeenschappelijke knoophebben.Een koppeling M heet maximaal als er geen koppeling M ′ is met |M | < |M ′|.Een perfecte koppeling is een koppeling M waarin voor alle knopen geldt dat er precieseen lijn uit M incident aan is.

Voor een koppeling geldt dat elke knoop incident is aan maximaal een lijn uit de kop-peling. In de matrix zie je dit terug doordat er uit elke rij en elke kolom maximaal eenniet-nulelement wordt gekozen - een deel van een diagonaal. Een koppeling is maximaalals er in de verbindingsmatrix geen diagonaal is met meer niet-nulelementen, oftewelals er geen grotere deelmatrix is met permanent ongelijk aan nul. De grootte van eenmaximale koppeling in een graaf is dus gelijk aan de term rank van de verbindingsmatrixzoals deze in Definitie 2.18 gedefinieerd is. Een perfecte koppeling geeft in de verbin-dingsmatrix een diagonaal met alleen enen zoals in Figuur 2.4 te zien is. Het aantalperfecte koppelingen van een bipartiete graaf dus gelijk is aan de permanent van deverbindingsmatrix.

A

B

C

D

E

V

W

X

Y

Z

(a) Perfecte koppeling

1 1 0 1 0

1 1 1 1 0

0 1 0 1 0

1 0 1 1 1

0 0 1 1 1

V W X Y Z

A

B

C

D

E

(b) De verbindingsmatrix

Figuur 2.4.: Een perfecte koppeling in een bipartiete graaf geeft een diagonaal met enkelenen in de bijbehorende verbindingsmatrix.

Stelling 2.26. Laat G = (V ∪ U,E) een bipartiete graaf zijn met |U | = |V |. De graafG bevat een perfecte koppeling als en alleen als voor alle X ⊆ V geldt dat |X| ≤ |Γ(X)|

Bewijs. Laat A de verbindingsmatrix zijn die hoort bij graaf G, dan bevat G een perfectekoppeling dan en slechts dan als perA 6= 0. Volgens Stelling 2.10 is dit het geval dan enslechts dan als voor alle X ⊆ V en Y ⊆ U met A(X,Y ) = 0 geldt dat |X| + |Y | ≤ n.Voor alle X ⊆ V geldt A(X,Γ(X)c) = 0. Dit betekent dat |X| + (n − |Γ(X)|) ≤ n endus |X| ≤ |Γ(X)|. Anderszijds, als A(X,Y ) = 0, dan geldt Y ⊆ Γ(X)c. Dus als vooralle X ⊆ V geldt dat |X| ≤ |Γ(X)|, dan geldt ook |X|+ |Y | ≤ |X|+ |Γ(X)c| ≤ n.

19

Een ander belangrijk begrip bij grafen is de minimale bedekking van een graaf, hoeveelknopen er nodig zijn om alle lijnen te bereiken.

Definitie 2.27. Gegeven een graaf G = (V,E) heet een deelverzameling van de knopenC ⊂ V een knopenbedekking van G als elke lijn uit E incident is aan minstens een knoopuit C. Oftewel, als voor alle e = (v1, v2) ∈ E geldt dat ofwel v1 ∈ C ofwel v2 ∈ C.We noemen een bedekking C minimaal als voor elke bedekking C ′ geldt dat |C| ≤ |C ′|.

Merk op dat in de verbindingsmatrix elke rij en kolom voor een knoop staat. Een kno-penbedekking C is dus een verzameling rijen γ en kolommen δ, zodanig dat wanneerde bijbehorende knopen -en dus ook aangrenzende lijnen- uit de graaf zouden wordengehaald er geen lijnen overblijven - oftewel, zodanig dat A(γc, δc) = 0.

A

B

C

D

E

V

W

X

Y

Z

(a) Graaf

1 1 0 0 0

0 1 0 0 0

0 1 1 1 0

0 0 0 0 1

0 0 0 0 1

V W X Y Z

A

B

C

D

E

(b) De verbindingsmatrix

Figuur 2.5.: In deze graaf geeft de verzameling van omcirkelde punten een knopenover-dekking. Links zie je dat deze punten weghalen inderdaad een nulmatrixoverlaat.

De volgende stelling is in 1931 door Egervary [7] en Konig [10] gepubliceerd en is equi-valent aan de stelling van Frobenius en Konig (Stelling 2.10, Stelling 2.26)

Stelling 2.28. Laat G = (V ∪ U,E) een bipartiete graaf. Dan is de grootte van eenmaximale koppeling gelijk aan de grootte van een minimale knopenbedekking.

Bewijs. Het is duidelijk dat de grootte van een koppeling kleiner of gelijk is aan degrootte van een knopenbedenking. Om alle lijnen van een koppeling M te bedekkenzijn namelijk precies |M | knopen nodig. Laat nu C een knopenbedekking met minimalegrootte. Om te bewijzen dat er gelijkheid geldt is het voldoende om een koppeling Mte kunnen construeren met |M | = |C|.Beschouw de deelgraaf G1 gegeven door de punten V ∩ C en U \ C. In deze graafgeldt voor alle X ⊂ V ∩ C dat |X| ≤ |Γ(X)|, als dit niet het geval zou zijn zou de

20

koppeling C namelijk kleiner worden door X te vervangen door Γ(X). Dit betekent datook |V ∩ C| ≤ |U \ C|. Door voldoende punten toe te voegen aan de graaf en dezete verbinden met alle punten uit |U \ C| kunnen we zorgen dat beide kanten van degraaf evenveel punten hebben en kunnen we met behulp van Stelling 2.26 een perfectekoppeling M1 vinden. Dit geeft vervolgens een koppeling van grootte |V ∩C| in de graafG1. Op dezelfde manier kunnen we een koppeling M2 in G2 = (V \ C ∪ U ∩ C,E ′)vinden van grootte |U ∩ C|. Maar dan is M1 ∪M2 een koppeling van M met grootte|V ∩ C|+ |U ∩ C| = |C| en daarmee is de stelling bewezen.

A

C

B

D

E

V

X

Y

W

Z

(a) De twee deelgraven

A

B

C

D

E

V

W

X

Y

Z

(b) De uiteindelijke koppeling

Figuur 2.6.: De constructie van een koppeling zoals beschreven in het bewijs van Stel-ling 2.28.

Een voorbeeld van de constructie van een koppeling zoals in dit bewijs is te zien inFiguur 2.6.

We weten nu wat de permanent is en we kennen de betekenis ervan binnen de grafen-theorie. Ook hebben we gezien dat als een matrix een bepaald nulpatroon heeft, depermanent eenvoudiger is uit te rekenen. Maar de meeste matrices hebben niet zo’npatroon. Om de permanent van deze matrices toch snel uit te rekenen zijn er algoritmesbekend die we in het volgende hoofdstuk zullen bekijken

21

3. Het uitrekenen van de permanent

In het vorige hoofdstuk hebben we de permanent gedefinieerd. In Lemma 2.3 zagen wedat de permanent in enkele gevallen eenvoudiger uit te rekenen is door een geschikte rijof kolom te kiezen en daar naar te ontwikkelen. Echter, in de meeste gevallen is datniet het geval. In dit hoofdstuk zullen we twee algoritmes bekijken en laten zien dat depermanent hiermee sneller berekend kan worden.

3.1. De methode van Binet-Minc

In 1812 introduceerden Binet [4] en Cauchy [6] bijna gelijktijdig de permanent. Binetgaf in zijn artikel ook formules voor het berekenen van de permanent in het geval vaneen m×n-matrix met m ≤ 4. In het kort kwam het er op neer dat hij om de permanentvan een m× n-matrix A = (aij) te berekenen eerst het product van de rijsommen namen vervolgens voor het teveel compenseerde. Dit principe staat ook wel bekend als hetprincipe van inclusie en exclusie. Met behulp van deze formules kon Binet de permanentuitrekenen met minder optellingen en vermenigvuldigingen dan wanneer hij de definitiezou gebruiken. De formules voor m = 2 en m = 3 worden in deze paragraaf naderbekeken.

Laat A = (aij) ∈ R2×n. De diagonaalproducten van deze matrix zijn van de vorm a1sa2t

met s 6= t. De permanent is dus gelijk aan

per(A) =∑s 6=t

a1sa2t.

We bekijken eerst het product van alle rijsommen,∏2

i=1

∑nj=1 aij =

∑ns,t=1 a1sa2t. Deze

som kunnen we splitsen in een gedeelte waar s = t en waar s 6= t. Op deze manier zienwe dat

2∏i=1

n∑j=1

aij =∑s 6=t

a1sa2t +n∑s=1

a1sa2s. (3.1)

Hiermee vinden we dat voor een 2× n-matrix het volgende geldt,

per(A) =2∏i=1

n∑j=1

aij −n∑s=1

a1sa2s.

22

We zien nu ook waarom Binet deze formule gebruikte. Om de permanent hiermee uit terekenen zijn er n+ 1 vermenigvuldigingen en 3(n− 1) + 1 optellingen nodig. Het aantaldiagonalen in een 2 × n-matrix is gelijk aan n(n − 1), dus hiermee kost het uitrekenenvan de permanent n(n− 1) vermenigvuldigingen en n(n− 1)− 1 optellingen.

Om deze uitdrukking korter te schrijven introduceren we eerst wat notatie. Hiervoormoeten we weten wat een verzamelingspartitie is.

Definitie 3.1. Voor een zekere n ∈ N zeggen we dat een verzameling o = o1, ..., okbestaande uit deelverzamelingen van 1, ..., n een verzamelingspartitie (vaak kortwegpartitie), met lengte k, van n is als

- De vereniging van alle elementen gelijk is aan de verzameling 1, ..., n,k⋃i=1

oi = 1, ..., n.

- Alle elementen paarsgewijs disjunct zijn,

∀i, j(i 6= j =⇒ oi ∩ oj = ø).

De verzameling van alle verzamelingpartities van n noteren we met On.

Merk op dat voor een partitie o ∈ Om van lengte k geldt dat∑k

i=1 |oi| = n.

Definitie 3.2. Voor een m × n-matrix A = (aij) en een verzameling q ⊆ 1, ...,mdefinieren we

rq =n∑j=1

∏x∈q

axj.

Hiermee definieren we voor een verzamelingspartitie o = o1, ..., ok van m

sr(o) =k∏i=1

roi .

De verzameling O2 bestaat uit twee partities, namelijk 1, 2 en 1, 2. Hiermeekunnen we de uitdrukking die we net hebben gevonden voor de permanent herschrijventot

per(A) = r(1, 2)− r(1, 2).

Voorbeeld 3.3. Laat A =

[3 2 42 1 5

]. Dan vinden we

per(A) = r(1, 2)− r(1, 2)

=3∑j=1

a1j

3∑j=1

a2j −3∑j=1

a1sa2s

= (3 + 2 + 4)(2 + 1 + 5)− (3 · 2 + 2 · 1 + 4 · 5) = 44.

23

Beschouw nu een positieve 3 × n-matrix A = (aij) (het bewijs voor een niet-positievematrix gaat volledig analoog). Opnieuw kijken we eerst naar het product van de rijsom-men, r(1, 2, 3). Dit bevat de diagonaalproducten, maar daarnaast ook termenmet twee of drie factoren afkomstig uit dezelfde kolom. Er geldt dus dat

per(A)− r(1, 2, 3) < 0.

We beschouwen vervolgens de verzamelingspartities met lengte 2. Er geldt datr(1, 2, 3) =

∑nx,y=1 a1xa2xa3y. Dit kan op dezelfde manier worden herschreven als

gebeurde in uitdrukking (3.1) voor m = 2,

n∑x,y=1

a1xa2xa3y =∑x 6=y

a1xa2xa3y +n∑x=1

a1xa2xa3x.

Hetzelfde kunnen we doen voor r(1, 3, 2) en r(2, 3, 1), zo vinden we dat desom van deze drie, r(1, 2, 3) + r(1, 3, 2) + r(2, 3, 1), gelijk is aan

∑x 6=y

(a1xa2xa3y + a1xa2ya3x + a1ya2xa3x) + 3n∑x=1

a1xa2xa3x.

Dit zijn allemaal termen die wel in r(1, 2, 3) voorkomen, maar niet in per(A).Echter, termen uit de meest rechter som kwamen in r(1, 2, 3) maar een enkelekeer voor. Er geldt dus dat

per(A)−(r(1, 2, 3)− r(1, 2, 3)− r(1, 3, 2)− r(2, 3, 1)) > 0.

Dit is namelijk precies gelijk aan 2∑n

x=1 a1xa2xa3x = 2r1,2,3 = 2r(1, 2, 3). Oftewel,

per(A) = r(1, 2, 3)− r(1, 2, 3)− r(1, 3, 2)− r(2, 3, 1) + 2r(1, 2, 3).

Voorbeeld 3.4. Laat A =

1 2 34 5 67 8 9

. In dit voorbeeld laten we de · bij vermenigvul-

diging weg, we noteren dus 123 voor 1 · 2 · 3 en zo verder.We beschouwen de verzamelingpartities van 3:

O3 =1, 2, 3

,1, 2, 3

,1, 3, 2

,2, 3, 1

,1, 2, 3

.

Als we voor elk van deze partities r(o) uitwerken vinden we het volgende.

24

r(1, 2, 3) = 147 + 148 + 149

+ 157 + 158 + 159

+ 167 + 168 + 169

+ 247 + 248 + 249

+ 257 + 258 + 259

+ 267 + 268 + 269

+ 347 + 348 + 349

+ 357 + 358 + 359

+ 367 + 368 + 369

r(1, 2, 3) =147 + 148 + 149

+ 257 + 258 + 259

+ 367 + 368 + 369

r(1, 3, 2) =147 + 157 + 167

+ 248 + 258 + 268

+ 349 + 359 + 369

r(2, 3, 1) =147 + 247 + 347

+ 158 + 258 + 358

+ 169 + 269 + 369

r(1, 2, 3) = 147 + 258 + 369

We zien dat r(1, 2, 3) alle diagonaalproducten bevat en we die verder ner-gens terugvinden (aangegeven in groen / dikgedrukt). De overige termen correspon-deren bijna allemaal een-op-een met de termen uit r(1, 2, 3), r(1, 3, 2) ofr(2, 3, 1). De enige uitzonderingen hierop zijn de termen waarbij alledrie de facto-ren uit dezelfde kolom afkomstig zijn (aangegeven in rood / schuingedrukt), deze komenin zowel r(1, 2, 3) als r(1, 3, 2) als r(2, 3, 1) voor. Deze kunnen ge-compenseerd worden door r(1, 2, 3), die precies bestaat uit deze termen. We ziendus dat

per(A) = 159 + 168 + 249 + 267 + 348 + 357

= r(1, 2, 3)− r(1, 2, 3)− r(1, 3, 2)− r(2, 3, 1) + 2r(1, 2, 3).

We zien hier dat r(o) telkens de som is van enkele termen van r(1, 2, 3). Dit zijntermen van de vorm

∏3i=1 aiσ(i), waarbij σ een (niet noodzakelijk injectieve) functie van

1, 2, 3 naar 1, 2, 3 is. Dit geldt ook meer in het algemeen. Laat Sm,n de verzamelingzijn van alle functies σ : 1, ...,m → 1, ..., n. Dan geldt voor alle o ∈ Om dat r(o)te schrijven is als som van enkele van de producten

∏ni=1 aiσ(i) en wel op de volgende

manier,

r(o) = λo(σ)n∏i=1

ai,σ(i), (3.2)

waarbij

λo(σ) =

1 als σ(i) 6= σ(j) impliceert dat er geen ok ∈ o is zodanig dat i, j ∈ ok0 als anders

.

Voorbeeld 3.5. Voor o = 1, 2, 3 geldt λo(σ) = 1 voor alle σ met σ(1) = σ(2).Zo zagen we net in Voorbeeld 3.4 dat 148 = a11a21a32 een term was in r(1, 2, 3),

25

dus dat λo(σ) = 1 voor de functie σ gegeven door 1 7→ 1, 2 7→ 1, 3 7→ 2 (we zullen ditin het vervolg schrijven als σ = (1, 1, 2)). Voor deze functie geldt dat σ(1) 6= σ(3) enσ(2) 6= σ(3) en we zien dat inderdaad 1 en 3 en 2 en 3 niet bij elkaar in een verzamelingin 1, 2, 3 zitten.

Omgekeerd kunnen we, gegeven een σ ∈ Sm,n, ook alle verzamelingspartities o ∈ Om

beschouwen waarvoor λo(σ) 6= 0. Noteer deze verzameling als

O(σ) := o ∈ Om | λo(σ) = 1.

Voorbeeld 3.6.

- Voor σ1 = (1, 1, 2) geldt dat λo(σ1) = 1 als er geen ok ∈ o is met 1, 3 ∈ ok of2, 3 ∈ ok. We zien dus dat

O(σ1) =1, 2, 3

,1, 2, 3

.

Merk op dat de positie van 1 en 2 ten opzichte van elkaar er niet toe doet, zolangze maar niet in dezelfde verzameling met 3 zitten. Deze verzameling is dus gelijkaan o ∪ 3 | o ∈ O2. Dit principe gaan we later ook gebruiken.

- Laat σ2 een injectieve functie zijn, dan geldt σ(i) 6= σ(j) voor alle i, j ∈ 1, ...,m.Dit betekent dat als λo(σ2) = 1 moet gelden dat o =

1, ..., m

, dus

O(σ2) =1, ..., m

.

- Laat σ3 een constante functie zijn. Dan geldt nooit dat σ(i) 6= σ(j) en dus hebbenwe λo(σ) = 1 voor alle o ∈ Om. Dus

O(σ) = Om.

Op de verzameling van verzamelingspartities kunnen we een partiele ordening definieren.Voor twee partities o en o ∈ On zeggen we dat o ≤ o′ als voor iedere oi ∈ o er een o′j ∈ o′bestaat zodat oi ⊆ o′j.

Voorbeeld 3.7. De verzamelingen uit Voorbeeld 3.6 hebben allemaal een grootste ele-ment. Er geldt namelijk

O(σ1) =o ∈ Om | o ≤

1, 2, 3

,

O(σ2) =o ∈ Om | o ≤

1, ..., m

,

O(σ3) =o ∈ Om | o ≤

1, ..,m

.

In het volgende lemma zullen we zien dat O(σ) altijd een grootste element bevat.

Lemma 3.8. Voor iedere σ ∈ Sm,n bestaat er een o zodanig dat O(σ) = o ∈ Om | o ≤ o.

26

Bewijs. Laat σ ∈ Sm,n en laat o de verzamelingspartitie zijn zodanig dat voor allei, j ∈ 1, ...,m geldt dat σ(i) = σ(j) dan en slechts dan als er een x is met i, j ∈ ox. Degrootte van deze partitie is dus exact gelijk aan het aantal verschillende waardes dat σaanneemt. We zullen laten zien dat deze o het grootste element in de verzameling O(σ)

is.Laat hiertoe eerst o ∈ O(σ). Er geldt dat als i, j ∈ ok voor zekere ok ∈ o dan σ(i) = σ(j).Maar dat betekent dat deze elementen ook bij elkaar zitten in o, oftewel, er is een yzodat ox ⊂ oy. Er geldt dus o ≤ o.Omgekeerd, stel dat o een opdeling is met o ≤ o. Dan geldt dat voor alle i, j metσ(i) 6= σ(j) er geen ok ∈ o bestaat met i, j ∈ ok. Maar dat betekent dat i, j ook niet bijelkaar kunnen zitten in o, dus er is ook geen ok ∈ o zodanig dat i, j ∈ ok.

In 1976 heeft Henryk Minc [12] de bestaande formules van Binet uitgebreid tot eenalgemene uitdrukking voor de permanent.

Stelling 3.9. Laat A een m× n-matrix zijn met 2 ≤ m ≤ n. Dan geldt

per(A) =∑o∈Om

(−1)m+kr(o)k∏i=1

(|oi| − 1)!

waar k de lengte van de opdeling is.

Bewijs. Met behulp van uitdrukking (3.2) kunnen we de stelling herfomuleren tot hetvolgende,

per(A) =∑o∈Om

(−1)m+k

k∏i=1

(|oi| − 1)!∑

σ∈Sm,n

λo(σ)n∏j=1

ajσ(j)

=∑

σ∈Sm,n

∑o∈Om

(−1)m+k

k∏i=1

(|oi| − 1)!λo(σ)n∏j=1

ajσ(j).

Herinner je Definitie 2.1 van de permanent,

per(A) =∑

σ∈Sm,n

m∏i=1

aiσ(i).

Om de stelling te bewijzen moet dus worden aangetoond dat

∑o∈Om

(−1)m+k

k∏i=1

(|oi| − 1)!λo(σ) =

1 als σ injectief is

0 als σ niet injectief is. (3.3)

27

Eerst zullen we laten zien dat het linkerdeel van gelijkheid (3.3) gelijk is aan 1 als σinjectief is. We zagen al dat O(σ) = (1, ...m). Dit betekent∑

o∈Om

(−1)m+k

k∏i=1

(|oi| − 1)!λo(σ) =∑o∈O(σ)

(−1)m+k

k∏i=1

(|oi| − 1)!

= (−1)m+m

m∏i=1

(1− 1)! = 1.

Nu bekijken we de uitdrukking voor σ ∈ Sm,n \ Sm,n, een niet-injectieve functie. Laat ohet maximum zijn van O(σ). Met behulp van de opmerking in Voorbeeld 3.6 kunnen wehet linkerdeel van (3.3) herschrijven tot het volgende∑

o≤o

(−1)m+k

k∏i=1

(|oi| − 1)! =

q∏j=1

∑o∈O|oj |

(−1)m+k

k∏i=1

(|oi| − 1)!.

Het is dus voldoende aan te tonen dat∑o∈Om

(−1)m+k

k∏i=1

(|oi| − 1) = 0

Dit zullen we bewijzen met inductie. We hebben in de voorbeelden het basisgeval albewezen. Stel nu dat de vergelijking waar is voor alle m < M . De verzamelingspartitiesvan M worden gevormd door het element M toe te voegen aan een verzamelingspartitieuit OM−1. Dit kan op twee manieren: als losse verzameling of in een van de bestaandeverzamelingen.

OM =⋃o∈OM

(o1, ..., ok, M + 1) | (o1, .., ok) ∈ OM

k⋃j=1

(o1, ..., ok) |M + 1 ∈ oj en (o1, ..., oj \ M + 1, ..., ok) ∈ OM)

.

We kunnen dan de som herschrijven tot∑o∈OM

(−1)M+k

k∏i=1

(|oi| − 1)! =∑

o∈OM−1

(−1)M+k · 1 ·k−1∏i=1

(oi − 1)! +k∑j=1

(−1)M+koj

k∏i=1

(|oi| − 1)!

=∑

o∈OM−1

(−1)M−1+k−1

k−1∏i=1

(oi − 1)! −

∑o∈OM−1

(M − 1)(−1)m−1+k

k∏i=1

(|oi| − 1)!.

= 0 + (M − 1) · 0 = 0.

Hiermee hebben we uitdrukking (3.3) en dus de uitdrukking uit de stelling bewezen.

28

3.2. De methode van Ryser

Eerder, in 1963, had Ryser ook al een uitdrukking gevonden waarmee de permanentuitgerekend kon worden [15]. Ook deze is gebasseerd op het principe van inclusie enexclusie. Net als in de methode van Binet-Minc start hij met het product van de rijsom-men,

∏mi=1 ri. Dit bevat alle diagonaalproducten precies een keer, maar daarnaast ook

termen waarbij twee of meer factoren uit dezelfde kolom afkomstig zijn. Om hiervoor tecompenseren maakt Ryser gebruik van deelmatrices.

Definitie 3.10. Voor A een m× n-matrix definieren we de verzameling van alle m× k-deelmatrices als volgt:

Λk = A(:, γ) | 1 ≤ γ1 < ... < γk ≤ n.

Bedenk dat voor A′ ∈ Λk met k < m geldt dat∏m

i=1 ri(A′) geen diagonalen meer

bevat, maar enkel termen bestaande uit factoren afkomstig uit maximaal k verschillendekolommen. Deze gebruikt Ryser in zijn methode dan ook om te compenseren voor determen uit het product van rijsommen. We zullen opnieuw eerst bekijken wat de aanpakis voor 2× n- en 3× n-matrices.

Voor een 2× n-matrix A geldt dat de overbodige termen in∏m

i=1 ri(A) termen zijn vande vorm a1xa2x, termen waarbij beide factoren uit dezelfde kolom afkomstig zijn. Om ditte compenseren beschouwen we Λ1, dit zijn matrices die precies uit een kolom bestaan.Het product van de rijsommen van een dergelijke matrix compenseert dus precies vooreen van de overbodige termen. Op deze manier vinden we

per(A) =2∏i=1

ri(A)−∑X∈Λ1

2∏i=1

ri(X).

Merk op dat dit dezelfde formule is als Binet had gevonden zoals we ook in het volgendevoorbeeld zien.

Voorbeeld 3.11. Laat A opnieuw gelijk zijn aan

[3 2 42 1 5

]. Dan geldt

Λ1 =

[32

],

[21

],

[45

].

Hiermee vinden we dat

per(A) =2∏i=1

ri(A)−∑X∈Λ1

r1(X)r2(X)

= (3 + 2 + 4)(2 + 1 + 5)− (3 · 2 + 2 · 1 + 4 · 5) = 44.

Dit is dezelfde uitdrukking als we gevonden hadden in Voorbeeld 3.3.

29

Voor het geval van m = 3 kijken we eerst naar een specifiekere matrix, namelijk een3× 3-matrix.

Laat A =

1 2 34 5 67 8 9

. We bekijken opnieuw het product van rijsommen van A en alle

deelmatrices van A, de elementen uit Λ1 = X11 , X

12 , X

13 en Λ2 = X2

1 , X22 , X

23.

Λ1 =

1

47

,

258

,

369

Λ2 =

1 2

4 57 8

,

1 34 67 9

,

2 35 68 9

Hieronder zie je het product van de rijsommen van deze matrices uitgewerkt. We ziendat r1r2r3(A) onder andere alle diagonaalproducten geeft en dat die verder nergensmeer terugkomen (hieronder aangegeven in groen / dikgedrukt). Daarnaast levert dezematrix termen waarbij twee of meer factoren afkomstig zijn uit dezelfde kolom, dezecorresponderen bijna allemaal een-op-een met de termen uit

∑X∈Λ2

r1r2r3(X). De enigeuitzonderingen hierop zijn de termen waarbij alledrie de factoren uit dezelfde kolomafkomstig zijn (aangegeven in rood / schuingedrukt), die komen namelijk in twee van dedrie matrices terug. Maar doordat deze elk voortkomen uit een van de matrices uit Λ1

kunnen we∑

X∈Λ1r1r2r3(X) gebruiken om dit weer te compenseren.

r1r2r3 = 147 + 148 + 149

+ 157 + 158 + 159

+ 167 + 168 + 169

+ 247 + 248 + 249

+ 257 + 258 + 259

+ 267 + 268 + 269

+ 347 + 348 + 349

+ 357 + 358 + 359

+ 367 + 368 + 369

r1r2r3(X21 ) = 147 + 148 + 157 + 158

+ 247 + 248 + 257 + 258

r1r2r3(X22 ) = 147 + 149 + 167 + 169

+ 347 + 349 + 367 + 369

r1r2r3(X23 ) = 258 + 259 + 268 + 269

+ 358 + 359 + 368 + 369

r1r2r3(X11 ) + r1r2r3(X1

2 ) + r1r2r3(X13 )+ = 147 + 258 + 369

Er geldt dus dat

3∏i=1

ri(A)−∑X∈Λ2

3∏i=1

ri(X) +∑X∈Λ1

3∏i=1

ri(X) = 159 + 168 + 249 + 267 + 348 + 357

30

Als we een bredere matrix bekijken, krijgen we uiteraard ook meer deelmatrices. LaatA = (aij) een 3 × n-matrix en laat Λ1 = X1

1 , ..., X1p alle 3 × 1-matrices en Λ2 =

X21 , ..., X

2q . Merk op dat p = n en q =

(n2

).

De uitdrukking r1r2r3(A) geeft ook in dit geval de diagonaalproducten en daarbij alletermen met twee of drie factoren uit dezelfde kolom. Om dit te compenseren gebruikenwe∑

X∈Λ2

∏3i=1 ri(X). Deze geeft alle termen met exact twee van de drie factoren uit

dezelfde kolom, deze komen precies een keer voor, en daarnaast de termen met driefactoren uit dezelfde kolom.Laat k een kolom zijn, we willen weten hoevaak de term met alle factoren uit kolom k,a1ka2ka3k, voorkomt in

∑X∈Λ2

∏3i=1 ri(X). Deze komt precies net zo vaak voor als dat

er matrices X ∈ Λ2 zijn die kolom k bevatten. Dit zijn er n− 1 en dus moeten we voorn− 2 van deze termen compenseren.We vinden dus voor een 3× n-matrix dat

per(A) =m∏i=1

ri(A)−∑X∈Λ2

3∏i=1

ri(X) + (n− 2)∑X∈Λ1

3∏i=1

ri(X).

Dit idee wordt in de volgende stelling veralgemeniseerd.

Stelling 3.12. Als A een m× n-matrix is met 2 ≤ m ≤ n , dan geldt

per(A) =m∏i=1

ri(A) +m−1∑t=1

ct∑

X∈Λm−t

m∏i=1

ri(X),

waarbij ct recursief gedefinieerd is door

c1 = −1,

ct = −1−t−1∑r=1

(n−m+ t

t− r

)cr.

Bewijs. Zoals gezegd bevat de eerste term,∏m

i=1 ri(A), alle diagonaalproducten en daar-naast termen met meerdere factoren uit dezelfde kolom. De linkerterm bevat alleentermen van de tweede soort. Het enige dat moet worden laten zien is dus dat voor dezetermen de coefficient gelijk is aan nul.Laat ω = (ω1, ..., ωm) precies k verschillende elementen hebben, dus a1ω1 ...amωm heeftk factoren die afkomstig zijn uit verschillende kolommen. Deze term komt alleen voorin∏m

i=1 ri(X) als X een submatrix van A is met die k kolommen, in dat geval komthet precies een keer voor. We vinden deze term dus in

∑X∈Λm−t

∏mi=1 ri(X) met t ∈

1, ...,m− k en wel(

n−km−t−k

)keer.

31

De coefficient voor a1ω1 ...amωm is dus gelijk aan

1 +m−k∑t=1

(n− k

m− t− k

)ct = 1 + cm−k +

(m−k)−1∑t=1

(n−m+ (m− k)

(m− k)− t

)ct

= 1 + cm−k + (−1− cm−k)= 0

Voor een vierkante matrix kan deze formule nog vereenvoudigd worden zoals uit volgendlemma zal blijken.

Claim 3.13. Als A een vierkante n× n-matrix is, geldt

per(A) =n−1∑t=0

(−1)t∑

X∈Λn−t

n∏i=1

ri(X).

Bewijs. Merk op dat we A kunnen beschouwen als enige element uit Λn. Het is dusvoldoende om aan te tonen dat ct = (−1)t. Dit gebeurt met inductie. Voor t = 1 is hetduidelijk. Stel dat de claim waar is voor alle t ≤ N , merk op dat we voor t ≤ N dankunnen zeggen dat ct = −ct−1. Hiermee geldt voor t = N + 1 het volgende.

ct = −1−N∑r=1

(N + 1

r

)cr

= −1−N∑r=1

(N

r

)cr −

N∑r=1

(N

r − 1

)cr

= −1−N−1∑r=1

(N

r

)cr − cN −

N−1∑r=0

(N

r

)cr−1

= cN − cN −N−1∑r=1

(N

r

)cr−1 + 1

= 1 +N−1∑r=1

(N

r

)cr

= −cN = (−1)N+1.

3.3. Vergelijking van beide methodes

Om te zien hoe efficient een bepaald algoritme is, kijk je naar het aantal berekeningen datnodig is. Onder een berekinng verstaan we het uitvoeren van een elementaire operator,

32

dus een optelling of vermenigvuldiging. In hoofdstuk 2 definieerden we de permanentals som van de diagonaalproducten,

per(A) =∑σ∈Sn

n∏i=1

aiσ(i).

Een algoritme gebaseerd op deze definitie is dan als volgt:

1. Bepaal alle permutaties σ ∈ Sn.

2. Bereken voor elke σ het product∏m

i=1 aiσ(i).

3. Neem de som over al deze producten.

Het aantal berekeningen dat dit algoritme maakt om de permanent van een n×n-matrixte berekenen noteren we met A(n). Het aantal berekeningen in stap x noteren we metx(n). Voor het totale aantal berekeningen geldt dat

A(n) = 1(n) + 2(n) + 3(n).

In stap 2. berekenen we voor elke σ een product. Dit geeft n berekeningen per σ. Wezien dus dat 2(n) = n|Sn| = n ·n!. In stap 3. wordt de som over alle diagonaalproductenberekend. Er geldt dus dat 3(n) = |Sn| = n!.In het algemeen zijn we echter niet zo genteresseerd in het exacte aantal berekeningen,maar in welke orde van grootte het aantal berekeningen toeneemt als n groter wordt.Hiervoor wordt de zogenaamde big-O-notatie gebruikt.

Definitie 3.14. Van een functie g : N→ N zeggen we g(n) = O(f(n)) als er een c > 0en een n ∈ N bestaan zodat voor alle n ≥ N geldt dat g(n) ≤ cf(n).We zeggen dat de complexiteit van een algoritme A gelijk is aan O(f(n)) als geldt datA(n) = O(f(n))

Uiteraard kunnen we f(n) heel groot maken. Zo zouden we voor de constante functieg(n) = 1 kunnen zeggen dat g(n) = O(n2), maar we zijn nu juist geinteresseerd in eenzo klein mogelijke functie f .Zo zien we dat voor de complexiteit van stap 2. en 3. geldt

2(n) + 3(n) = n · n! + n! = (n+ 1)!.

Het is mogelijk om alle n! permutaties te genereren door slechts n! − 1 verwisselingen[9], dus 1(n) = O(n!). Hiermee vinden we

A(n) = n! + (n+ 1)! ≤ 2(n+ 1)! = O((n+ 1)!).

Dit is nog langzamer dan exponentieel, zoals ook te zien is in Figuur 3.1 waar de grafiek-ondanks de logaritmische schaal- enorm snel stijgt.

In Paragraaf 3.1 bestudeerden we de formule van Binet en Minc,

per(A) =∑o∈On

(−1)n+kr(o)k∏i=1

(|oi| − 1)!.

33

2 3 4 5 6 7 8 9 1010

−5

10−4

10−3

10−2

10−1

100

101

102

Figuur 3.1.: De tijd die nodig is om de permanent uit te rekenen gebruik makend vande definitie.

In Appendix C.2 is een algoritme te vinden gebasseerd op deze formule. Om te wetenwat de complexiteit is van dit algoritme moeten we eerst de complexiteit kennen van deverschillende onderdelen. Het algoritme ziet er als volgt uit

1. Bepaal alle opdelingen.

2. Bereken voor elke opdeling:a. (−1)n+k,

b. r(o),

c.∏k

i=1(|oi| − 1)!.

Het aantal berekeningen in stap 2. hangt af van het aantal verzamelingspartities, |On|.Dit aantal staat ook wel bekend als het Bell number, genoemd naar Eric Temple Belldie er in 1938 een artikel over schreef [2]. In 2010 vonden Daniel Berend en Tamir Tassaeen bovengrens hiervoor [3], namelijk

|On| ≤(

0.792n

ln(n+ 1)

)n= O

((n

ln(n+ 1)

)n).

Het genereren van de opdelingen kan in relatief korte tijd. Deze stap verandert decomplexiteit van het gehele algoritme niet. Er geldt dus

A(n) = O(2(n)) ≤ O((

n

ln(n+ 1)

)n(2a(n) + 2b(n) + 2c(n))

).

Voor stap 2a. zijn n+k ≤ 2n berekeningen, namelijk 1 optelling en n+k−1 vermenigvul-digingen nodig. Het berekenen van r(o) =

∏ki=1

∑nj=1

∏x∈oi axj kost

∑ki=1

∑nj=1

∑x∈oi 1 =∑n

j=1

∑ki=1 |oi| = n2 berekeningen, dus 2b(n) = n2. Op dezelfde manier zien we dat

34

2c(n) ≤∑k

i=1 |oi| = n. We zien nu dat de complexiteit van dit algoritme gelijk is aan

2(n) <

(0.792n

ln(n+ 1)

)n(2n+ n2 + n)

≤ 0.793

(n

ln(n+ 1)

)n· 4n2

= O(

nnn2

ln(n+ 1)n

).

0 10 20 30 40 50 60 70 80 90 10010

0

1020

1040

1060

1080

10100

10120

10140

10160

n2(n/log(n+1))n

(n+1)!

Figuur 3.2.: Vergelijken van de complexiteit van beide algoritmes.

In Figuur 3.2 kun je zien dat voor grote n, geldt dat n2(n/ ln(n+ 1))n ≤ (n+ 1)!, dus isde complexiteit van dit algoritme (iets) beter dan die van het vorige algoritme waarin weuitgingen van de defiinitie. Omdat dit pas te zien is voor grote n kan dit niet vergelekenworden met de algoritmes uit Appendices A en C.2, deze programma’s hebben te veelrekentijd nodig als n groter wordt.

In Paragraaf 3.2 bekeken we Rysers formule voor de permanent:

per(A) =n−1∑t=0

(−1)t∑

X∈Λn−t

n∏i=1

ri(X).

Voor elke (n − t) × n-submatrix X van A moeten we dus (−1)t∏n

i=1 ri(X) uitrekenen.Het uitrekenen van ri, een rijsom van X, kost maximaal n − 1 berekeningen. Deze nrijsommen moeten vervolgens weer met elkaar vermenigvuldigd worden en zo zien wedat we voor elke deelmatrix maximaal (n− 1)2 + 1 = O(n2) berekeningen moeten doen.Het aantal deelmatrices is gelijk aan 2n − 1 (het aantal niet-lege deelverzamelingen vande hoeveelheid rijen), dus de totale complexiteit van dit algoritme is

A(n) = O(2nn2).

35

5 10 15 20 25

10−4

10−3

10−2

10−1

100

101

102

103

Figuur 3.3.: De tijd die nodig is om de permanent uit te rekenen volgens Rysers formule.

Dit is wel exponentieel, zoals te zien is in Figuur 3.3. In deze grafiek is de benodigdetijd uitgezet tegen de grootte van de matrix. Omdat er op de y-as (waar de tijd staat)een logaritmische schaal gebruikt is lijkt de lijn bijna recht te lopen.

36

4. Conclusie

De permanent ontstond pas enkele eeuwen geleden. Ondanks dat het begrip nog relatiefjong is, is er toch al veel over bekend. Net als de determinant is de permanent ook eenSchurfunctie. Beide functies hebben dan ook veel overeenkomsten. Zo zijn ze beiden,beschouwd als functie in de rijen, multilineair en kunnen ze uitgerekend worden door teontwikkelen naar een rij of kolom. Er zijn echter ook veel verschillen waarvan de belang-rijkste is dat de permanent niet uitgerekend kan worden door de matrix terug te brengentot echelonvorm. De determinant kan hiermee uitgerekend worden in polynomiale tijd,maar voor de permanent heeft het uitrekenen veel meer voeten in de aarde.

Wel zijn er matrices waarvan de permanent, door een bepaald nulpatroon van de ma-trix, eenvoudiger is om te berekenen. Als een rij veel nullen bevat kun je bijvoorbeeldontwikkelen naar die rij, of als de matrix een blokpatroon zoals in Lemma 2.7 heeft,is de permanent gelijk aan het product van de permanenten van de deelmatrices. Ookzagen we dat het soms al voldoende is om enkel het nulpatroon van de matrix te ken-nen. Zo is de permanent van een niet-negatieve n × n-matrix ongelijk aan nul, dan enslechts dan als A een r × s-deelmatrix bevat met enkel nullen en waarbij r + s = n + 1(Frobenius-Konig Stelling 2.10).

Omdat het aantal koppelingen van een graaf gelijk is aan de permanent van de verbin-dingsmatrix, konden we deze stelling herformuleren tot Stelling 2.26: een bipartiete graafG = (V ∪ U,E) bevat een perfecte koppeling, als en alleen als voor alle X ⊆ V geldtdat de punten uit X gemiddeld minstens 1 buur hebben. Deze stelling was bovendienequivalent aan Stelling 2.28: de grootte van een maximale koppeling van een graaf isgelijk aan de minimale knopenbedekking.

Vervolgens hebben we bekeken hoe we de permanent zo efficient mogelijk kunnen uitre-kenen. We bekeken de methodes van Binet-Minc en Ryser. Deze maken het uitrekenenvan de permanent allebei sneller, maar vooral Rysers methode leverde een verbeteringop. In plaats van dat de tijd om de permanent uit te rekenen factorieel groeit, groeit hetmet zijn methode exponentieel. De vraag blijft of er nog veel ruimte voor verbeteringis. In 1979 bewees Valiant dat de permanent een NP probleem is. Het valt dus in de-zelfde categorie als onder andere het Traveling Salesman Problem. Het vinden van eenalgoritme dat problemen uit deze categorie in polynomiale tijd oplost is al door velengeprobeerd, maar het is nog steeds niet bekend of het mogelijk is. Mocht je een algoritmevinden die de permanent in polynomiale tijd uitrekent los je een van de openstaandemillenniumproblemen op en kun je een miljoen dollar opstrijken, of je kunt je algoritmeaan Google verkopen voor nog veel meer.

37

5. Populaire samenvatting

Stel je voor dat er een datingshow wordt georganiseerd. Er zijn vijf mannen: Abel,Ben, Caspar, Dirk-Jan en Evert, en vijf vrouwen: Vera, Wendy, Xanthe, Yolande enZelina, geselecteerd. De organisatie maakt vooraf, op basis van eigenschappen van de

A

B

C

D

E

V

W

X

Y

Z

Figuur 5.1.: De voorselectievan de datingshow

deelnemers, een selectie welke man aan welke vrouw zoukunnen worden gekoppeld en wie er absoluut niet bijelkaar passen. Dit is te zien in de graaf in Figuur 6.1.De lijnen stellen hier de mogelijke koppels voor. Wezien dat er een lijn van A naar W loopt, dat betekentdat Abel en Wendy bij elkaar zouden kunnen passen.Het feit dat er geen lijn loopt tussen A en X wil zeggendat Abel en Xanthe geen match vormen.

De organisatie is op zoek naar een manier om elkeman aan een vrouw te koppelen - en omgekeerd na-tuurlijk. Oftewel, een verzameling mogelijke koppels(lijnen) zonder dat er een man of vrouw in twee ver-schillende koppels zit. Dit heet ook wel een perfectekoppeling. In de voorselectie van de datingshow zien wedat er veel mogelijke matches zijn, je verwacht dus ookdat er veel mogelijkheden zullen zijn voor zo’n perfectekoppeling. Twee mogelijke perfecte koppelingen zijn te zien in Figuur 6.2.

A

B

C

D

E

V

W

X

Y

Z

A

B

C

D

E

V

W

X

Y

Z

Figuur 5.2.: Twee mogelijke perfecte koppelingen

Bij een dergelijke situatie zal bij een wiskundige al snel vragen opkomen als ”zijndit alle manieren?” en ”hoe kun je snel alle koppelingen vinden?”. Een manier om

38

dit probleem op te lossen is te kijken naar de verbindingsmatrix. In deze matrix

1 1 0 1 0

1 1 1 1 0

0 1 0 1 0

1 0 1 1 1

0 0 1 1 1

V W X Y Z

A

B

C

D

E

Figuur 5.3.: De verbindingsmatrixvan de graaf uit Figuur

6.1

stelt elke rij een van de mannen voor en elke kolomstaat voor een van de vrouwen. Vervolgens wordtop elke positie aangegeven of de desbetreffende manen vrouw een match vormen. In Figuur 6.3 zie jede verbindingsmatrix die hoort bij de datingshow.

We hadden al gezien dat Abel en Wendy een goedstel zouden kunnen vormen, daarom zien we in dematrix ook op positie (1, 2), of (A,W ), dat er een1 staat. Op positie (1, 3) staat een 0 omdat Abelen Xanthe niet bij elkaar passen.

Een perfecte koppeling is een verzameling mogelijkekoppels, waarvoor geldt dat elke man en vrouw aanprecies een persoon van het andere geslacht wordtgekoppeld. In de matrix is dit een selectie van enenzodanig dat er precies een in elke kolom en rij zit.In Figuur 6.4 zie je een mogelijke koppeling in dematrix weergegeven.

A

B

C

D

E

V

W

X

Y

Z

(a) Perfecte koppeling

1 1 0 1 0

1 1 1 1 0

0 1 0 1 0

1 0 1 1 1

0 0 1 1 1

V W X Y Z

A

B

C

D

E

(b) De verbindingsmatrix

Figuur 5.4.: Een perfecte koppeling in de matrix.

Een selectie van elementen uit de matrix waarbij er precies een in elke rij en kolom zitnoemen we ook wel een diagonaal. Om te weten hoeveel perfecte koppelingen er zijn wilje dus weten hoeveel diagonalen er zijn waarin zich alleen enen bevinden. Een begripdat hierbij van pas komt is de permanent van een matrix. Deze is als volgt gedefinieerd.

Definitie 5.1. Laat Sn de symmetriegroep zijn. Gegeven een n×n-matrix A, definierenwe de permanent als volgt.

per(A) =∑σ∈Sn

m∏i=1

aiσ(i). (5.1)

39

Wat dit zegt is dat je om de permanent te berekenen de som van de diagonaalproductenneemt. Omdat het product 1 is als de diagonaal uit alleen enen bestaat en 0 als er eennul tussen staat, geeft dit precies het aantal diagonalen dat uit enkel enen bestaat. Depermanent van een verbindingsmatrix geeft dus precies het aantal perfecte koppelingenvan de bijbehorende graaf!

Deze definitie lijkt vrij eenvoudig, maar om de permanent te berekenen heb je voor ditvoorbeeld al 5! = 120 berekeningen nodig, dat is namelijk hoeveel diagonalen een 5× 5-matrix heeft. Dit aantal berekeneningen wordt ook heel snel groter, zo zijn er, als eenman en een vrouw meer mee zou doen aan de datingshow, al 6! = 720 berekeningen nodig.Er zijn weliswaar methodes die sneller zijn - deze behandel ik in Hoofdstuk 3 - maar ookbij deze methodes neemt het aantal berekeningen snel toe naarmate de matrix groterwordt. In 1979 bewees Valiant[16] dat het berekenen van de permanent een NP-probleemis. Op het moment dat iemand een algoritme vindt die de permanent in polynomiale tijdkan berekenen (wat relatief snel is) zou daarmee bewezen zijn dat de complexiteitsklassenP en NP gelijk zijn aan elkaar. Dit is een van de milleniumproblemen en het oplossenhiervan levert 1 miljoen dollar op.

Een bijzonder soort matrix is de dubbelstochastische matrix, in deze matrix telt elke rij enelke kolom op tot 1. Een n×n-matrix met op elke positie de waarde 1/n is bijvoorbeeldeen dubbelstochastische matrix. De permanent hiervan is makkelijk uit te rekenen. Eenn × n-matrix heeft n! diagonalen en het product van elke diagonaal in deze matrix is( 1n)n. De permanent is dus gelijk aan n!

nn. In 1926 uitte de Nederlandse wiskundige

Van der Waerden het vermoeden dat dit een ondergrens is voor de permanent van alledubbelstochastische matrices. Deze stelling is uiteindelijk in 1979 en 1980 bewezen doorEgorychev en Falikman.

40

Bibliografie

[1] Bapat, R.B. & Raghavan, T., Nonnegative Matrices and Applications , volume 12of Encyclopedia of Mathematics and its Applications (1997). ISBN 0-521-57167-7.

[2] Bell, E. (1938). The Iterated Exponential Integers. Annals of Mathematics(39):539–557.

[3] Berend, D. & Tassa, T. (2010). Improved Bounds on Bell Numbers and on Move-ments of Sums of Random Variables. Probability and Mathematical Statistics (vol.30, fasc. 2):185–205.

[4] Binet, J. (1812). Memorie sur un systeme de formules analytiques, et leur applica-tion a des considerations geometriques. Journal de l’ecole de polytechnique (9, cah.17):280–302.

[5] Birkhoff, G. (1946). Tres observaciones sobre el algebra lineal. Univ. Nac. TucumanRev. (Ser. A, 5):147–151.

[6] Cauchy, A. (1812). Memoire sur les fonctions qui ne peuvent obtenir que deuxvaleurs egales et de signes contraires par suite des transpositions operees entre lesvariables qu’elles renferment. J. Ec. Polyt. (10, cah 17):29–112.

[7] Egervary, E. (1931). Matrixok kombinatorius tulajdonsagairol. Mat. Fiz. Lapok(38):16–18.

[8] Gyires, B. (1980). The common source of several inequalities concerning doublystochastic matrices. Publicationes mathematicae institutum mathematicum univer-sitatis debreceniensis (27(3-4)):291–304.

[9] Knuth, D., Generating all tuples and permutations , volume 4, fasc.2 of The Art ofComputer Programming (2005). ISBN 0-201-85393-0.

[10] Konig, D. (1931). Graphok es matrixok. Mat. Fix. Lapok (38):116 – 119.

[11] Minc, H., Permanents , volume 6 of Encyclopedia of Mathematics and its Applica-tions (1978). ISBN 0-521-86565-4.

[12] Minc, H. (1979). Evaluation of Permanents. Proc. Edinburgh Math. Soc. 22:27–32.

[13] Muir, T. (1882). On a Class of Permanent Symmetric Functions. Proc. Roy. Soc.Edinburgh 11:409–418.

41

[14] von Neumann, J. (1953). A certain zero-sum two-person game equivalent to anoptimal assignment problem. Ann. Math. Studies .

[15] Ryser (1963). Combinatorial Mathematics. Math. Assoc. Amer. .

[16] Valiant, L. (1979). The Complexity of Computing the Permanent. TheoreticalComputer Science (Elsevier) 8(2):189–201.

[17] van der Waerden, B. Aufgave 45. Jber. Deutsch Math Verein. 35:117.

42

A. Berekening volgens de definitie

1 f unc t i on per = Permanent sym (A)2 s i z e = length (A) ;3 per = 0 ;4 v = 1 : s i z e ;5 permutat ies = perms (v ) ;6 f o r i = 1 : l ength ( permutat ies )7 s = permutat ies ( i , : ) ;8 f o r k = 1 : s i z e9 s ( k ) = A( s (k ) , k ) ;

10 end11 per = per+prod ( s ) ;12 end13 end

43

B. Algoritme van Ryser

B.1. Vierkante matrices

1 f unc t i on per = Ryser (A)2 %Input : een v i e rkante matrix A,3 %Output : de permanent van de matrix A,4 %Werking : e l k e dee lmatr ix wordt gegeven door een b i n a i r g e t a l tus sen 1 en

2ˆn−1. Volgt verder de formule5 per = 0 ;6 n = length (A) ;7 f o r k = 1:2ˆn−18 index = l o g i c a l ( b i t g e t (k , 1 : n ) ) ;9 t = n − sum( index ) ; %Dus submatrix in Lambda n−t

10 submatrix = A( : , index ) ;11 per = per+(−1)ˆ t ∗prod (sum( submatrix , 2 ) )12 end13 end

44

B.2. Niet-vierkante matrices

1 f unc t i on per = Ryser2 (A)2 %Input : een matrix A,3 %Output : de permanent van de matrix A,4 %Werking : berekent e e r s t de c o e f f i c i e n t voor de de e lmat r i c e s ( in

c o e f f i c i e n t s ) , vo l g t ve rvo lgens de formule .5 per = prod (sum(A, 2 ) ) ;6 [m n ] = s i z e (A) ;7 c = c o e f f i c i e n t s (m, n) ;8 f o r t = 1 : m−19 Lambda = nchoosek ( 1 : n ,m−t ) %Al l e de e lmat r i c e s van A met m−t kolommen

10 term = 0 ;11 f o r x = 1 : s i z e (Lambda , 1 )12 term = term + prod (sum(A( : , Lambda(x , : ) ) , 2 ) ) ;%r i van dee lmatr ix13 end14 per = per+term∗c ( t ) ;15 end16 end17

18 f unc t i on c = c o e f f i c i e n t s (m, n)19 %Input : d imens ie van de matrix ,20 %Output : een vec to r met de c o e f f i c i e n t e n voor de de e lmat r i c e s van 1 to t

m−1 kolommen breed ,21 %Werking : vo l g t de r e c u r s i e v e d e f i n i t i e door over de reeds berekende

c o e f f i c i e n t e n in de vec to r te lopen .22 c = [−1 z e ro s (1 ,m−2) ] ;23 f o r t = 1 :m−124 c ( t ) = −1;25 f o r r = 1 : t−126 c ( t ) = c ( t ) − nchoosek (n−m+t , t−r ) ∗c ( r ) ;27 end28 end29 end

45

C. Algoritme van Binet-Minc

C.1. Vinden van de opdelingen

1 f unc t i on l i s t = Se tPa r t i t i on (n)2 %Input : n a t uu r l i j k g e t a l n ,3 %Output : Ce l l array met in e l k e c e l l een opde l ing in de vorm van een

verzamel ing vectoren ,4 %Werking : Recurs i e f , beg int met de opde l ingen van 1 (1 ) om vervo lgens

met behulp van i n s e r t aan e l k e opde l ing het volgende g e t a l toe tevoegen .

5 i f n==16 l i s t = 1 ;7 e l s e8 bn = Be l l (n ) ; %Berekent het aanta l opde l ingen9 l i s t = c e l l (bn , 1) ; %maakt array van l eng t e bn

10 pos = 0 ;11 lp = Se tPa r t i t i on (n−1) ;12 f o r i =1: s i z e ( lp , 1 )13 p a r t i = i n s e r t ( lp i , n ) ;14 l i s t ( pos+(1: s i z e ( pa r t i , 1 ) ) ) = p a r t i ;15 pos = pos + s i z e ( pa r t i , 1 ) ;16 end17 end18 end19

20

21 f unc t i on p a r t i = i n s e r t ( part , n )22 %Input : opde l ing en een na tuu r l i j k g e t a l n ,23 %Output : a l l e moge l i j ke opde l ingen d i e ontstaan door het g e t a l n toe te

voegen aan de bestaande opdel ing ,24 %Werking : voegt aan een opde l ing een g e t a l toe , d i t kan op twee

v e r s c h i l l e n d e manieren , namel i jk toevoegen aan een bestaand component(12 −−> 123) o f a l s l o s component (12−−>123) .

25 l = s i z e ( part , 2 ) ;26 p a r t i = c e l l ( l +1 ,1) ;27 [ p a r t i 1 : l ] = dea l ( part ) ;28 f o r j = 1 : l %Toevoegen aan een bestaand component29 p a r t i j j = [ p a r t i j j n ] ;30 end31 p a r t i l +1 = [ part n ] ; %Toevoegen a l s l o s component32 end

46

C.2. Berekenen van de permanent

1 f unc t i on per = Minc (A)2 %Input : een matrix A,3 %Output : de permanent van de matrix ,4 %Werking : l oopt over de opde l ingen ( n i e t over de p a r t i t i e s z o a l s in de

u i t e i n d e l i j k e formule ) .5 [m ∼] = s i z e (A) ;6 per = 0 ;7 a l l p a r t i t i o n s = Se tPa r t i t i on (m) ; %Al l e opde l ingen8 f o r k = 1 : s i z e ( a l l p a r t i t i o n s , 1 )9 pa r t i t i o n = a l l p a r t i t i o n s k ;

10 pe r d e e l = 1 ;11 s i z e p a r t = s i z e ( pa r t i t i on , 2 ) ;12 c o e f f i c i e n t = (−1) ˆ(m+s i z e p a r t ) ;13 f o r i = 1 : s i z e p a r t14 %prod ( r o i ∗ ( | o i |−1) ! ) = r ( o ) ∗prod ( | o i |−1) !15 part = pa r t i t i o n i ;16 c o e f f i c i e n t = c o e f f i c i e n t ∗ f a c t o r i a l ( s i z e ( part , 2 )−1) ;17 pe r d e e l = pe r d e e l ∗ sum( prod (A( part , : ) , 1 ) , 2 ) ;18 end19 per = per + c o e f f i c i e n t ∗ pe r d e e l ;20 end21 end

47

D. Stelling van Birkhoff-VonNeumann

1 f unc t i on [ lambdas , Perms ] = BvN(A)2 %Input : dubbe l s t o cha s t i s ch e matrix A.3 %Output : vec to r met lambda ’ s en matrix met permutat ies , vormen samen een

convexe combinat ie van A.4 %Werking : Zolang A geen permutat iematr ix i s wordt een d iagonaa l gezocht

met behulp van vind diag , daarvoor wordt de b i jbehorende mu/lambdau i tge rekend en de nieuwe matrix A gemaakt .

5 lambdas = [ ] ;6 Perms = [ ] ;7 n = length (A) ;8 mem l = 1 ;9 whi le ∼(n == sum(sum(A > 5∗ eps ) ) ) ;

10 %A i s een permutat iematr ix a l s het p r e c i e s n n ie t−nule lementen bevat11 [P, d iag ] = v ind d iag (A, n) ;12 Perms = [ Perms ; P ] ;13 mu = min( diag ) ;14 lambdas = [ lambdas ; mem l∗mu ] ;15 mem l = mem l∗(1−mu) ;16 perm mat = eye ( l ength (A) ) ;17 perm mat = perm mat (P , : ) ;18 A = 1/(1−mu) ∗(A−mu∗perm mat ) ;19 end20 [ x ,∼] = f i nd (A>1−5∗eps ) ;21 lambdas = [ lambdas ; mem l ] ;22 Perms = [ Perms ; x ’ ] ;23 end24

25 f unc t i on [P, diag ] = v ind d iag (A, n)26 %Input : matrix A, g roo t t e van de matrix n .27 %Output : permutat ie d d i e p o s i t i e v e ( n ie t−nul ) d iagonaa l g e e f t .28 %Werking : l oopt over a l l e permutat ies to t de d iagonaa l een nul bevat hoe f t

d i e permutat ie n i e t verder bekeken te worden , a l s het een goeded iagonaa l b e t r e f t hoeven er n i e t meer permutat ies bekeken te worden .

29 f o r p = perms ( 1 : n) ’30 diag = ones (1 , n) ;31 counter = 1 ;32 whi le ∼( ismember (0 , d iag ) )33 diag ( counter ) = A( counter , p ( counter ) ) ;34 counter = counter+1;35 i f counter > n && diag ( counter −1) ∼= 036 %Goede d iagonaa l

48

37 P = p ’ ;38 re turn39 end40 end41 end42 end

49

E. Aanvulling op het bewijs vanstelling 4.3

Ontwikkelen van Aε naar kolom k + 1 geeft het volgende.

per(Aε) =n∑i=1

aεi,k+1 per(Aε(ic, (k + 1)c))

=n∑i=1

ai,k+1 perAε(ic, (k + 1)c)

− ε perAε((k + 1)c, (k + 1)c)

+ ε per(Aε(kc, (k + 1)c))

Door Aε(ic, (k + 1)c) en Aε((k + 1)c, (k + 1)c) vervolgens te ontwikkelen naar kolom kvinden we het volgende.

per(Aε) =n∑i=1

ai,k+1

n∑j=1j 6=i

aεjk perAε(i, jc, k, k + 1c)

− εn∑j=1

j 6=k+1

aεjk perAε(k + 1, jc, k, k + 1c)

+ ε per(A(kc, (k + 1)c))

=n∑i=1

ai,k+1

n∑j=1j 6=i

ajk perAε(i, jc, k, k + 1c)

− εn∑i=1

ai,k+1 perAε(i, kc, k, k + 1c)

+ εn∑i=1

ai,k+1 perAε(i, k + 1ck, k + 1c

− εn∑j=1

j 6=k+1

ajk perAε(k + 1, jc, k, k + 1c)

+ ε2 perAε(k + 1, kc, k, k + 1c)+ ε per(A(kc, (k + 1)c))

50

Merk op dat Aε(:, k, k + 1c) = A(:, k, k + 1c). We zien nu dat

per(Aε) =n∑i=1

ai,k+1

n∑j=1j 6=i

ajk perA(i, jc, k, k + 1c)

− εn∑i=1

ai,k+1 perA(i, kc, k, k + 1c)

+ ε

n∑i=1

ai,k+1 perA(i, k + 1ck, k + 1c

− εn∑j=1

j 6=k+1

ajk perA(k + 1, jc, k, k + 1c)

+ ε2 perA(k + 1, kc, k, k + 1c)+ ε per(A(kc, (k + 1)c))

=n∑i=1

ai,k+1 perA(ic, (k + 1)c)

− ε(perA(kc, kc) + perA((k + 1)c, (k + 1)c))

+ ε(perA((k + 1)c, kc) + perA(kc, (k + 1)c)

+ ε2 perA(k, k + 1c, k, k + 1c)= perA− ε(perA(kc, kc) + perA((k + 1)c, (k + 1)c))

+ ε(perA((k + 1)c, kc) + perA(kc, (k + 1)c) +O(ε2)

51