• No results found

Permanenten

N/A
N/A
Protected

Academic year: 2021

Share "Permanenten"

Copied!
51
0
0

Bezig met laden.... (Bekijk nu de volledige tekst)

Hele tekst

(1)

Permanenten

Hanneke van der Beek

19 november 2014

Bachelorscriptie

Begeleiding: Dr. J.H. Brandts

Korteweg-de Vries Instituut voor Wiskunde

(2)

Samenvatting

De permanentfunctie kent aan elke m × n-matrix een getal uit R toe. Deze functie lijkt in veel opzichten op de determinant, maar doordat de permanent geen alternerende maar een symmetrische functie is, is deze niet invariant onder rijvegen. De permanent kan dus niet worden uitgerekend door de matrix terug te brengen tot echelonvorm. Wel is de permanent in sommige gevallen door een specifiek nulpatroon eenvoudiger uit te rekenen. Een voorbeeld hiervan is de stelling van Frobenius en K¨onig. Deze zegt dat de permanent van een niet-negatieve matrix 0 is, dan en slechts dan als de matrix een voldoende grote deelmatrix met enkel nullen bevat.

Een belangrijke toepassing van de permanent ligt binnen de grafentheorie. Het aantal perfecte koppelingen van een bipartiete graaf is namelijk gelijk aan de permanent van de verbindingsmatrix. Veel van de stellingen over de permanent kunnen ook geformuleerd worden in de context van grafen. Zo bevat een bipartiete graaf een perfecte koppeling dan 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 rekenen voor m ≤ 4. Later heeft Minc deze formules uitgebreid tot een uitdrukking voor alle m. In complexiteit is deze methode iets beter dan volgens de definitie te werken, maar niet veel. De methode van Ryser daarentegen levert een algoritme met exponentieel algoritme, wat wel een noemenswaardige verbetering is.

Titel: Permanenten

Auteur: Hanneke van der Beek, hanneke12345@gmail.com, 6135943 Begeleiding: Dr. J.H. Brandts

Tweede beoordelaar: Dr. G. Regts Einddatum: 19 november 2014

Korteweg-de Vries Instituut voor Wiskunde Universiteit van Amsterdam

Science Park 904, 1098 XH Amsterdam http://www.science.uva.nl/math

(3)

Inhoudsopgave

1. Inleiding 4

2. Combinatorische matrixtheorie 6

2.1. De permanent . . . 6

2.2. Dubbelstochastische matrices . . . 11

2.3. Het nulpatroon van matrices . . . 15

2.4. De permanent binnen de grafentheorie . . . 18

3. Het uitrekenen van de permanent 22 3.1. De methode van Binet-Minc . . . 22

3.2. De methode van Ryser . . . 29

3.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 44 B.1. Vierkante matrices . . . 44

B.2. Niet-vierkante matrices . . . 45

C. Algoritme van Binet-Minc 46 C.1. Vinden van de opdelingen . . . 46

C.2. Berekenen van de permanent . . . 47

D. Stelling van Birkhoff-Von Neumann 48

(4)

1. Inleiding

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

Definitie 1.1. Laat Snde symmetrische groep van permutaties op n objecten zijn. Voor

een n × n-matrix A is de permanent dan als volgt gedefinieerd:

per(A) = X σ∈Sn n Y i=1 aiσ(i).

Op het eerste gezicht lijkt de permanent eenvoudiger dan de determinant, maar niets is minder waar. Door het alternerende karakter geldt namelijk dat de determinant van een matrix onveranderd blijft onder rijvegen, waardoor de determinant uitgerekend kan worden door de matrix terug te brengen tot echelonvorm. Bij de permanent is dit niet mogelijk.

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

Stelling 1.2. Frobenius-K¨onig De permanent van een niet-negatieve n × n -matrix A is nul, dan en slechts dan als A een r × s-deelmatrix A0 bevat met r + s = n + 1 en A0 = 0.

(5)

Deze stelling wordt in Paragraaf 2.1 al bewezen. Later, in Paragraaf 2.4, wordt laten zien dat deze stelling equivalent is aan de volgende stelling, die eerder bewezen werd door K¨onig [10] en Egerv´ary [7].

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

Voor willekeurige matrices is er geen boven- of ondergrens van de permanent. Voor dubbelstochastische matrices is deze er wel. In 1926 formuleerde de Nederlandse wis-kundige Bartel Leendert van der Waerden [17] een vermoeden over een ondergrens voor de 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 permanent zo effici¨ent mogelijk kan worden uitgerekend. Hier wordt in Hoofdstuk 3 aandacht aan besteed. In 1812 formuleerde Jacques Philippe Marie Binet [4] al enkele identiteiten voor de permanent van 2 × n-, 3 × n- en 4 × n-matrices. Later, in 1979, heeft Henryk Minc [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 groot aantal berekeningen vereist en daardoor niet erg geschikt is om te implementeren in een computerprogramma. Hiervoor is de methode van Ryser wel geschikt. In 1963 bewees Herbert John Ryser in 1963 [15] een uitdrukking waardoor de permanent aanzienlijk sneller, namelijk exponentieel in plaats van factorieel, kon worden uitgerekend. Maar hoe veel sneller is sneller? Hoeveel ruimte is er nog voor verbetering?

(6)

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, een functie die een matrix naar een re¨eel getal stuurt en veel weg heeft van de determi-nant. Daarna worden speciaal types matrices, namelijk de dubbelstochastische matrices in paragraaf 2 en matrices met specifieke nulpatronen in paragraaf 3, belicht. Aan het eind, in paragraaf 4, worden de begrippen in de context van grafentheorie geplaatst. Dit hoofdstuk is gebaseerd op een boek van Minc [11] en het tweede hoofdstuk van een boek van Bapat en Raghavan [1].

2.1. De permanent

Schrijf Sn voor de symmetrische groep van alle permutaties van n objecten, en laat

G ⊂ Sn een ondergroep zijn. Gegeven een groepshomomorfisme χ : G → C, defini¨eren

we de functie fχ met als domein de vectorruimte Rn×n van re¨ele n × n-matrices, als

fχ: Rn×n → R, A 7→ X σ∈G χ(σ) n Y i=1 aiσ(i). (2.1)

Een dergelijke functie fχ heet een Schurfunctie. E´en voorbeeld van een Schurfunctie

wordt verkregen door de keuze G = Snen χ : σ 7→ sgn(σ), het teken van σ. Deze functie

staat bekend als de determinant.

In het vervolg zullen we een andere Schurfunctie bestuderen, namelijk de functie die ontstaat door opnieuw G = Sn te kiezen, met ditmaal de keuze χ : σ 7→ 1. Deze

functie heet de permanent. Er zal blijken dat de permanent in sommige opzichten sterk gerelateerd is aan de determinant. Echter, in sommige andere opzichten kunnen beide concepten erg verschillend zijn. Zo is de definitie van de permanent, in tegenstelling tot de determinant, uit te breiden tot een definitie voor rechthoekige matrices.

Definitie 2.1. Schrijf Sm,n voor de verzameling zijn van injectieve functies σ van

{1, ..., m} naar {1, ..., n}. Gegeven een m × n-matrix A, defini¨eren we de permanent als volgt. per(A) = X σ∈Sm,n m Y i=1 aiσ(i). (2.2)

(7)

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 dan de som over de diagonaalproducten.

Voorbeeld 2.2. Laat A = 3 2 4 2 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 de permanent. Zo kunnen we de permanent ook berekenen door te ontwikkelen naar een rij - 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 uit

A door rij i en kolom j weg te halen. Dan geldt voor alle i ∈ {1, ..., m}

per(A) =

n

X

j=1

aijper A(ic, jc).

Bewijs. Dit is eenvoudig in te zien door te bedenken dat elke diagonaal van A die aij

bevat, zonder aij een diagonaal is van A(ic, jc).

Voorbeeld 2.4. Laat A =   3 2 4 2 1 5 1 1 1  , dan geldt per(A) = 3 · per1 5 1 1  + 2 · per2 5 1 1  + 4 · per2 1 1 1  = 3 · (1 · 1 + 5 · 1) + 2 · (2 · 1 + 5 · 1) + 4 · (2 · 1 + 1 · 1) = 44

(8)

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 dat

per(A) = per(a1, ..., am). We zien de permanent dan als een functie van (Rn)m naar R

en 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 + a0i, ..., am) = per(a1, ..., ai, ..., am) + per(a1, ..., a0i, ..., 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, hiermee nul is.

Als een matrix twee dezelfde rijen heeft is de determinant van die matrix ook nul. De determinant blijft daardoor gelijk op het moment dat je de ene rij van de matrix optelt bij 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 door hem 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 2

3 4 

niet gelijk aan die van1 2 0 −2



. In 1979 bewees Valiant [16] dat het berekenen van de permanent een #P-probleem is. Als er een algoritme gevonden wordt dat de permanent in polynomiale tijd kan uitrekenen zou dat P = NP bewijzen, wat ´e´en van de nog onopgeloste milleniumproblemen is1. Er zijn wel snellere methodes om de permanent uit te rekenen bekend dan te ontwikkelen naar een rij of door over Sn te sommeren. In

Hoofdstuk 3 wordt hier meer aandacht aan besteed.

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

Lemma 2.6. Gegeven een m × n-matrix A. Laat Π1 en Π2 respectievelijk m × m- en

n × n-permutatiematrices zijn, dan geldt per(A) = per(Π1AΠ2).

Bewijs. Door het permuteren van de rijen of kolommen blijven alle diagonalen gelijk, ze horen 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 dat per(A) = per(A>). Een vierkante matrix kan hierdoor behalve naar de rijen ook naar de kolommen ontwikkeld worden en is ook multilineair in de kolommen.

(9)

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

C 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 diagonaal uit 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. Op

dezelfde manier vinden we ook σ2 ∈ Sn−r en dus een diagonaal van D. Voor deze term

geldt dan n Y i=1 aiσ(i) = r Y i=1 biσ1(i) n−r Y 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, ..., n}

met γ = {γ1, .., γr} en δ = {δ1, ..., δs}. Dan is de r × s-matrix B = (bij) met bij = aγiδj

een deelmatrix van A. We schrijven dit als B = A(γ, δ). Met A(γ, :) bedoelen we de r × n-deelmatrix bestaande uit rijen γ1, ..., γr van A. Verder schrijven we γc voor

{1, ..., n} \ γ.

Laat bijvoorbeeld A =2 3 6 4 5 2 

, γ = {1} en δ = {1, 3}. Hiermee kunnen onder andere de volgende deelmatrices beschreven worden.

A(γ, δ) =2 6 A(:, δ) =2 6 4 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 dat A(γ, δ) = 0 en |γ| + |δ| = n, dan geldt

(10)

Bewijs. Als |γ| + |δ| = n, geldt dat |γc| = n − |γ| = |δ|. De deelmatrices A(γc, δ) en

A(γ, δc) zijn dus vierkant. Omdat de permanent volgens Lemma 2.6 invariant is onder

permutatie, volgt het resultaat uit Lemma 2.7.

Deze eigenschap wordt ook in de volgende stelling gebruikt.

Stelling 2.10. (Frobenius-K¨onig) De permanent van een niet-negatieve n × n-matrix A is nul, als en alleen als er γ, δ ⊆ {1, ..., n} bestaan met |γ| = r en |δ| = s zodat A(γ, δ) = 0 en r + s = n + 1.

Bewijs. We bewijzen eerst het ’alleen als’- gedeelte. Dit gaat met inductie naar n. Voor n = 1 is het direct duidelijk - de permanent van een 1 × 1-matrix is nul alleen als de matrix nul is. Stel dat de stelling geldt voor n < N en laat A een N × N -matrix zijn met per(A) = 0. We zullen aantonen dat er dan γ, δ bestaan met |γ| + |δ| = N + 1 en A(γ, δ) = 0.

Als A = 0 valt er niks te bewijzen, dus kunnen we aannemen dat er een aij > 0

bestaat. Beschouw nu de matrix A(ic, jc) verkregen uit A door rij i en kolom j weg te

halen. Omdat elk diagonaalproduct van A nul is, is ook elk diagonaalproduct en dus de permanent van deze matrix nul. Door de inductiehypothese weten we dat dit betekent dat er ι en κ bestaan met |ι| + |κ| = N en A(ι, κ) = 0. Uit gevolg 2.9 volgt dan dat

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

We kunnen nu twee gevallen onderscheiden, namelijk ofwel per (A(ι, κc)) = 0 ofwel per (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 heeft met u + v = |ι| + 1. Oftewel er bestaan ι0 en κ0 (respectievelijk van grootte u en v) zodanig dat A(ι0, κ0) = 0 en ι0 ⊆ ι en κ0 ⊆ κc. Laat nu γ = ι0 en δ = κ ∪ κ0. Dan geldt

dat A(γ, δ) = 0 en |γ| + |δ| = |ι0| + |κ0| + |κ| = |ι| + 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 als er γ en δ bestaan zodanig dat A(γ, δ) = 0 en |γ| + |δ| = n + 1.

Laat A een n × n-matrix zodanig dat er γ = {γ1, ..., γr} en δ = {δ1, ..., δs} bestaan met

A(γ, δ) = 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)) per A(ιc, δ)) = 0.

Merk op dat A({γr}, δ) een rij van A(ιc, δ) is, dus dat A(ιc, δ) een rij met enkel nullen

(11)

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 deelverzameling van de matrices anders. E´en zo’n deelverzameling is die van de dubbelstochastische matrices.

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

n X i=1 aij = n X 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. De verzameling Ωn is compact, en dus heeft de permanent binnen die ruimte een boven- en

ondergrens.

Claim 2.12. Voor een matrix A ∈ Ωn geldt dat per(A) ≤ 1. Er geldt dat per(A) = 1

dan en slechts dan als A een permutatiematrix is.

Bewijs. We zullen een sterker resultaat bewijzen, namelijk dat deze bovengrens geldt voor alle rijstochastische matrices, matrices waarvan alleen de rijen optellen tot 1. Het is duidelijk dat de permanent van een permutatiematrix gelijk is aan 1. We hoeven dus alleen te laten zien dat de permanent van een rijstochastische matrix ongelijk aan een permutatiematrix strikt kleiner is dan 1. Een rijstochastische 2 × 2-matrix is van de vorm A =  λ 1 − λ 1 − µ µ  ,

met λ, µ < 1. De permanent hiervan is per(A) = 1 + 2λµ − λ − µ < 1. Stel dat de claim waar is voor alle n × n-matrices met n < N . Laat A = (aij) een N × N rijstochastische

matrix zijn. Als aij = 1, is A(ic, jc) een enkelstochastische matrix en volgt uit de

inductiehypothese dat per(A) = aijper(A(ic, jc)) < 1. Neem nu aan dat de matrix geen

1 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 bij de 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 uitrekenen door te ontwikkelen naar de eerste rij vinden we nu

per(A) = n X j=1 a1jper(A(1c, jc)) < n X j=1 aij = 1.

(12)

Een ondergrens voor de permanent in Ωn is een stuk minder eenvoudig te bewijzen. In

1926 had de Nederlander Bartel Leendert van der Waerden [17] al het vermoeden dat die ondergrens alleen aangenomen wordt door de n × n-matrix waarvan elk element gelijk is aan n1 (en dus gelijk is aan nn!n). 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 elke dubbelstochastische 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 geldt volgens stelling 2.10 dat A een r × s 0-deelmatrix bevat met r + s = n + 1. Zonder verlies van algemeenheid mogen we aannemen dat deze deelmatrix rechtsboven staat, dus dat A van de volgende vorm is.

B 0 C D        n − s n s  r  n − r

Omdat A dubbelstochastisch is telt elke rij op tot 1. De som van alle elementen van de deelmatrix 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 geldt dat r ≤ n − s, wat in tegenspraak is met r + s = n + 1.

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

Stelling 2.14. (Birkhoff - Von Neumann) Elke dubbelstochastische matrix kan geschreven worden als convexe combinatie van eindig veel permutatiematrices. Oftewel, als A ∈ Ωn dan zijn er λ1, ..., λn≥ 0 met Pni=1λi = 1 en waarvoor geldt dat

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

Bewijs. Laat A = (aij) een dubbelstochastische matrix zijn. Als A een permutatiematrix

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

(13)

zijn die hoort bij deze diagonaal en Π1 de corresponderende permutatiematrix. Definieer nu µ1 := min{a1σ(1), ..., anσ(n)}, A(1) := 1 1 − µ1 (A − µ1Π1). Voor λ = 1 1−µ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 geeft en de bijbehorende permutatiematrix Πn. We defini¨eren

µn:= min{a (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. Bovendien

blijft de matrix dubbelstochastisch, dus zal het uiteindelijk naar een permutatiematrix leiden.

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·

Qk−1 i=1(1 − µi) geldt dan r X k=1 λk= r−1 X k=1 λk+ r−1 Y i=1 (1 − µi) = r−2 X k=1 λk+ µr−1 r−2 Y i=1 (1 − µi) + (1 − µr−1) r−2 Y i=1 (1 − µi) = r−2 X k=1 λk+ r−2 Y i=1 (1 − µi) = ... = 1 X k=1 λk+ 1 Y 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

(14)

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. Hierdoor is het erg geschikt om door een computer te laten uitvoeren, zie ook Appendix D. In het volgende voorbeeld wordt nog eens zichtbaar wat er precies gebeurt.

Voorbeeld 2.15. Bekijk de matrix

A =   8 15 1 15 6 15 3 15 5 15 7 15 4 15 9 15 2 15  .

Deze matrix is dubbelstochastisch en dus kunnen we stelling 2.14 toepassen. Als eerste moeten we een permutatiematrix vinden die een positieve diagonaal in A geeft. We kiezen bijvoorbeeld Π1 =   1 0 0 0 1 0 0 0 1  .

Dan geldt µ1 = min{158 ,155,152} = 152 en dus λ1 = µ1 = 152. We maken nu de nieuwe

matrix A(1) door A(1) = 1 1 − 2/15  A − 2 15Π1  =   6 13 1 13 6 13 3 13 3 13 7 13 4 13 9 13 0  .

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

Π2 =   1 0 0 0 0 1 0 1 0  .

Hiermee vinden we µ2 = min{136,137 139} = 136 en dus λ2 = µ2(1 − µ1) = 156 . Nu kunnen

we A(2) maken door A(2)= 1 1 − µ2 A(1)− µ2Π2 =   0 17 67 3 7 3 7 1 7 4 7 3 7 0  .

Dit proces nog twee keer herhalen levert het volgende op.

Stap 3: Π3 =   0 0 1 1 0 0 0 1 0  , µ3 = 37, λ3 = 153, A(3) =   0 14 34 0 34 14 1 0 0  , Stap 4: Π4 =   0 0 1 0 1 0 1 0 0  , µ4 = 34, λ4 = 153, A(4) =   0 1 0 0 0 1 1 0 0  .

(15)

We zien nu dat A(4) een permutatiematrix is, dus defini¨eren we Π5 = A(4) en λ5 =

Q4

i=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 waardes van de matrixelementen zijn, maar enkel op welke plek de niet-nul elementen staan. Dit zagen we onder andere al in de stelling van Frobenius-K¨onig, Stelling 2.10. Allereerst zullen we een manier defini¨eren, om matrices die nullen op dezelfde posities hebben staan te benoemen.

Definitie 2.16. Twee matrices A = (aij) en B = (bij) hebben hetzelfde nulpatroon als

aij = 0 dan en slechts dan als bij = 0. We zeggen dat een matrix A een dubbelstochastisch

patroon heeft als er een dubbelstochastische matrix bestaat met hetzelfde nulpatroon als A.

We zien bijvoorbeeld dat de matrix 1 2 −3 5 

een dubbelstochastisch patroon heeft, na-melijk hetzelfde nulpatroon als de matrix 1/2 1/2

1/2 1/2  . De matrix 1 1 0 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 A een dubbelstochastisch patroon dan en slechts dan als elke positieve entry in een positieve diagonaal bevat is.

Bewijs. Laat A 6= 0 een niet-negatieve n × n-matrix zijn met een dubbelstochastisch patroon. Dan is er een dubbelstochastische matrix B die hetzelfde patroon als A heeft en is het voldoende de stelling te bewijzen voor B. Volgens Stelling 2.14 kan B geschreven worden als convexe combinatie van permutatiematrices. Voor elke positie waar B niet nul 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 elke positieve entry aij kunnen we dus een permutatiematrix Π vinden die 1 is op ´e´en van

(16)

deze diagonalen. De matrix gevormd door de som van al deze permutatiematrices heeft dan 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 onafhankelijke rijen 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 term rank van een matrix.

Definitie 2.18. Laat A een m × n-matrix. De term rank van A is gelijk aan het maximale 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 van deelmatrices.

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

Bewijs. Als de permanent van een niet-negatieve matrix ongelijk aan nul is betekent dat dat 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 permanent ongelijk 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, aij

en ai0j0 heten chainable als er rijen I = (i1, ..., ik) en J = (j1, ..., jk) bestaan zodanig dat

• aij = ai1j1 en ai0j0 = 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 en waarbij 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.2b kun 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 te

veranderen 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.

(17)

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 volgende stelling laten zien dat het ook een manier is om te zien of een matrix dubbelstochastisch patroon heeft of chainable is.

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

Bewijs. Laat A een fully indecomposable matrix. Eerst zal worden aangetoond dat A een dubbelstochastisch patroon heeft. Volgens Stelling 2.17 is het voldoende te laten zien dat elk positief element in een positieve diagonaal bevat zit. De matrix A is fully indecomposable, dus geldt A 6= 0. Laat aij > 0 en beschouw de matrix A(ic, jc). Omdat

A fully indecomposable is, volgt uit Stelling 2.10 dat de determinant hiervan ongelijk aan nul is. Dus heeft A(ic, jc) een positieve diagonaal. Door a

ij aan deze diagonaal toe

te 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, dan bevat A minstens twee ketens, zoals ook te zien is in Figuur 2.2b. Er bestaan dus γ1 en

γ2met |γ1|+|γ2| = n en δ1en δ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. Dan

is 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 fully

indecomposable zijn van de matrix A.

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

(18)

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 die de knopen voorstelt en waarbij E ⊂ V × V lijnen tussen de knopen voorstelt. In een ongerichte 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 bipartiete graaf kan geassocieerd worden met een matrix door de verbindingsmatrix.

Definitie 2.24. Gegeven een bipartiete graaf G = (V ∪ U, E) met V = {v1, ..., vn} en

U = {u1, ..., un}. Dan is de n × n-matrix A = (aij) een verbindingsmatrix van G als

aij =

(

1 als (vi, uj) ∈ E

0 als (vi, uj) 6∈ E

.

Elke v ∈ V correspondeert met een rij van de matrix die we zullen aangeven met v, op dezelfde 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 alles symbool staan, zo lees je in Hoofdstuk 5 een voorbeeld over een datingshow. In veel van die gevallen is het interessant of alle punten gekoppeld kunnen worden, oftewel of er een perfecte koppeling bestaat.

(19)

Definitie 2.25. Gegeven een bipartiete graaf G = (V ∪ U, E). Een deelverzameling M van E heet een koppeling als geen van de lijnen uit M een gemeenschappelijke knoop hebben.

Een koppeling M heet maximaal als er geen koppeling M0 is met |M | < |M0|.

Een perfecte koppeling is een koppeling M waarin voor alle knopen geldt dat er precies ´e´en lijn uit M incident aan is.

Voor een koppeling geldt dat elke knoop incident is aan maximaal ´e´en lijn uit de kop-peling. In de matrix zie je dit terug doordat er uit elke rij en elke kolom maximaal ´e´en niet-nulelement wordt gekozen - een deel van een diagonaal. Een koppeling is maximaal als er in de verbindingsmatrix geen diagonaal is met meer niet-nulelementen, oftewel als er geen grotere deelmatrix is met permanent ongelijk aan nul. De grootte van een maximale koppeling in een graaf is dus gelijk aan de term rank van de verbindingsmatrix zoals 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 aantal perfecte koppelingen van een bipartiete graaf dus gelijk is aan de permanent van de verbindingsmatrix. 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 enkel enen in de bijbehorende verbindingsmatrix.

Stelling 2.26. Laat G = (V ∪ U, E) een bipartiete graaf zijn met |U | = |V |. De graaf G 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 perfecte koppeling dan en slechts dan als per A 6= 0. Volgens Stelling 2.10 is dit het geval dan en slechts 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 en

dus |X| ≤ |Γ(X)|. Anderszijds, als A(X, Y ) = 0, dan geldt Y ⊆ Γ(X)c. Dus als voor

(20)

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

Definitie 2.27. Gegeven een graaf G = (V, E) heet een deelverzameling van de knopen C ⊂ V een knopenbedekking van G als elke lijn uit E incident is aan minstens ´e´en knoop uit 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 C0 geldt dat |C| ≤ |C0|. 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 wanneer de bijbehorende knopen -en dus ook aangrenzende lijnen- uit de graaf zouden worden gehaald 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 nulmatrix overlaat.

De volgende stelling is in 1931 door Egerv´ary [7] en K¨onig [10] gepubliceerd en is equi-valent aan de stelling van Frobenius en K¨onig (Stelling 2.10, Stelling 2.26)

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

Bewijs. Het is duidelijk dat de grootte van een koppeling kleiner of gelijk is aan de grootte van een knopenbedenking. Om alle lijnen van een koppeling M te bedekken zijn namelijk precies |M | knopen nodig. Laat nu C een knopenbedekking met minimale grootte. Om te bewijzen dat er gelijkheid geldt is het voldoende om een koppeling M te kunnen construeren met |M | = |C|.

Beschouw de deelgraaf G1 gegeven door de punten V ∩ C en U \ C. In deze graaf

(21)

koppeling C namelijk kleiner worden door X te vervangen door Γ(X). Dit betekent dat ook |V ∩ C| ≤ |U \ C|. Door voldoende punten toe te voegen aan de graaf en deze te verbinden met alle punten uit |U \ C| kunnen we zorgen dat beide kanten van de graaf evenveel punten hebben en kunnen we met behulp van Stelling 2.26 een perfecte koppeling M1 vinden. Dit geeft vervolgens een koppeling van grootte |V ∩ C| in de graaf

G1. Op dezelfde manier kunnen we een koppeling M2 in G2 = (V \ C ∪ U ∩ C, E0)

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 in Figuur 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, de permanent eenvoudiger is uit te rekenen. Maar de meeste matrices hebben niet zo’n patroon. Om de permanent van deze matrices toch snel uit te rekenen zijn er algoritmes bekend die we in het volgende hoofdstuk zullen bekijken

(22)

3. Het uitrekenen van de permanent

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

3.1. De methode van Binet-Minc

In 1812 introduceerden Binet [4] en Cauchy [6] bijna gelijktijdig de permanent. Binet gaf in zijn artikel ook formules voor het berekenen van de permanent in het geval van een m × n-matrix met m ≤ 4. In het kort kwam het er op neer dat hij om de permanent van een m × n-matrix A = (aij) te berekenen eerst het product van de rijsommen nam

en vervolgens voor het teveel compenseerde. Dit principe staat ook wel bekend als het principe van inclusie en exclusie. Met behulp van deze formules kon Binet de permanent uitrekenen met minder optellingen en vermenigvuldigingen dan wanneer hij de definitie zou gebruiken. De formules voor m = 2 en m = 3 worden in deze paragraaf nader bekeken.

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) = X

s6=t

a1sa2t.

We bekijken eerst het product van alle rijsommen, Q2

i=1

Pn

j=1aij =

Pn

s,t=1a1sa2t. Deze

som kunnen we splitsen in een gedeelte waar s = t en waar s 6= t. Op deze manier zien we dat 2 Y i=1 n X j=1 aij = X s6=t a1sa2t+ n X s=1 a1sa2s. (3.1)

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

per(A) = 2 Y i=1 n X j=1 aij − n X s=1 a1sa2s.

(23)

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

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

Definitie 3.1. Voor een zekere n ∈ N zeggen we dat een verzameling o = {o1, ..., ok}

bestaande uit deelverzamelingen van {1, ..., n} een verzamelingspartitie (vaak kortweg partitie), 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

Pk

i=1|oi| = n.

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

defini¨eren we rq = n X j=1 Y x∈q axj.

Hiermee defini¨eren we voor een verzamelingspartitie o = {o1, ..., ok} van m

sr(o) =

k

Y

i=1

roi.

De verzameling O2 bestaat uit twee partities, namelijk {{1}, {2}} en {{1, 2}}. Hiermee

kunnen we de uitdrukking die we net hebben gevonden voor de permanent herschrijven tot per(A) = r({{1}, {2}}) − r({{1, 2}}). Voorbeeld 3.3. Laat A =3 2 4 2 1 5  . Dan vinden we per(A) = r({{1}, {2}}) − r({{1, 2}}) = 3 X j=1 a1j 3 X j=1 a2j − 3 X j=1 a1sa2s = (3 + 2 + 4)(2 + 1 + 5) − (3 · 2 + 2 · 1 + 4 · 5) = 44.

(24)

Beschouw nu een positieve 3 × n-matrix A = (aij) (het bewijs voor een niet-positieve

matrix 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 termen met 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 dat r({{1, 2}, {3}}) =Pn

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

gebeurde in uitdrukking (3.1) voor m = 2,

n X x,y=1 a1xa2xa3y = X x6=y a1xa2xa3y+ n X x=1 a1xa2xa3x.

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

X x6=y (a1xa2xa3y+ a1xa2ya3x+ a1ya2xa3x) + 3 n X 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 enkele keer 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 2Pn

x=1a1xa2xa3x= 2r{1,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 3 4 5 6 7 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 =

n

{1}, {2}, {3} , {1, 2}, {3} , {1, 3}, {2} , {2, 3}, {1} , {1, 2, 3} o. Als we voor elk van deze partities r(o) uitwerken vinden we het volgende.

(25)

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 ´e´en-op-´e´en met de termen uit r({{1, 2}, {3}}), r({{1, 3}, {2}}) of r({{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 komen in 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 zien dus 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 zijn termen van de vorm Q3

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

{1, 2, 3} naar {1, 2, 3} is. Dit geldt ook meer in het algemeen. Laat eSm,n de verzameling

zijn 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 Qn

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

manier, r(o) = λo(σ) n Y i=1 ai,σ(i), (3.2) waarbij λo(σ) = (

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

0 als anders .

Voorbeeld 3.5. Voor o = {{1, 2}, {3}} geldt λo(σ) = 1 voor alle σ met σ(1) = σ(2).

(26)

dus dat λo(σ) = 1 voor de functie σ gegeven door 1 7→ 1, 2 7→ 1, 3 7→ 2 (we zullen dit

in 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 verzameling in {{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 of

2, 3 ∈ ok. We zien dus dat

O(σ1)=

n

{1, 2}, {3} , {1}, {2}, {3} o.

Merk op dat de positie van 1 en 2 ten opzichte van elkaar er niet toe doet, zolang ze maar niet in dezelfde verzameling met 3 zitten. Deze verzameling is dus gelijk aan {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) =n{1}, ..., {m} o.

- Laat σ3 een constante functie zijn. Dan geldt nooit dat σ(i) 6= σ(j) en dus hebben

we λo(σ) = 1 voor alle o ∈ Om. Dus

O(σ) = Om.

Op de verzameling van verzamelingspartities kunnen we een parti¨ele ordening defini¨eren. Voor twee partities o en o ∈ Onzeggen we dat o ≤ o0 als voor iedere oi ∈ o er een o0j ∈ o0

bestaat zodat oi ⊆ o0j.

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

O(σ1) = n o ∈ Om | o ≤1, 2}, {3} o , O(σ2) = n o ∈ Om | o ≤1}, ..., {m} o , O(σ3) =no ∈ O m | o ≤{1, .., m} o .

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

(27)

Bewijs. Laat σ ∈ eSm,n en laat o de verzamelingspartitie zijn zodanig dat voor alle

i, j ∈ {1, ..., m} geldt dat σ(i) = σ(j) dan en slechts dan als er een x is met i, j ∈ ox. De

grootte 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 ∈ o

k voor zekere ok∈ o dan σ(i) = σ(j).

Maar dat betekent dat deze elementen ook bij elkaar zitten in o, oftewel, er is een y zodat 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 bij

elkaar 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 een algemene uitdrukking voor de permanent.

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

per(A) = X o∈Om (−1)m+kr(o) k Y 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 het volgende, per(A) = X o∈Om (−1)m+k k Y i=1 (|oi| − 1)! X σ∈ eSm,n λo(σ) n Y j=1 ajσ(j) = X σ∈ eSm,n X o∈Om (−1)m+k k Y i=1 (|oi| − 1)!λo(σ) n Y j=1 ajσ(j).

Herinner je Definitie 2.1 van de permanent,

per(A) = X σ∈Sm,n m Y i=1 aiσ(i).

Om de stelling te bewijzen moet dus worden aangetoond dat X o∈Om (−1)m+k k Y i=1 (|oi| − 1)!λo(σ) = ( 1 als σ injectief is

(28)

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

X o∈Om (−1)m+k k Y i=1 (|oi| − 1)!λo(σ) = X o∈O(σ) (−1)m+k k Y i=1 (|oi| − 1)! = (−1)m+m m Y i=1 (1 − 1)! = 1.

Nu bekijken we de uitdrukking voor σ ∈ eSm,n\ Sm,n, een niet-injectieve functie. Laat o

het maximum zijn van O(σ). Met behulp van de opmerking in Voorbeeld 3.6 kunnen we

het linkerdeel van (3.3) herschrijven tot het volgende X o≤o (−1)m+k k Y i=1 (|oi| − 1)! = q Y j=1 X o∈O|oj | (−1)m+k k Y i=1 (|oi| − 1)!.

Het is dus voldoende aan te tonen dat X o∈Om (−1)m+k k Y i=1 (|oi| − 1) = 0

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

verzamelingen. OM = [ o∈OM n (o1, ..., ok, {M + 1}) | (o1, .., ok) ∈ OM o ∪ k [ j=1 n (o1, ..., ok) | M + 1 ∈ oj en (o1, ..., oj\ {M + 1}, ..., ok) ∈ OM) o . We kunnen dan de som herschrijven tot

X o∈OM (−1)M +k k Y i=1 (|oi| − 1)! = X o∈OM −1 (−1)M +k· 1 · k−1 Y i=1 (oi− 1)! + k X j=1 (−1)M +koj k Y i=1 (|oi| − 1)! = X o∈OM −1 (−1)M −1+k−1 k−1 Y i=1 (oi− 1)! − X o∈OM −1 (M − 1)(−1)m−1+k k Y i=1 (|oi| − 1)!. = 0 + (M − 1) · 0 = 0.

(29)

3.2. De methode van Ryser

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

i=1ri. Dit bevat alle diagonaalproducten precies ´e´en keer, maar daarnaast ook

termen waarbij twee of meer factoren uit dezelfde kolom afkomstig zijn. Om hiervoor te compenseren 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 A0 ∈ Λk met k < m geldt dat

Qm

i=1ri(A0) geen diagonalen meer

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

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

i=1ri(A) termen zijn van

de vorm a1xa2x, termen waarbij beide factoren uit dezelfde kolom afkomstig zijn. Om dit

te compenseren beschouwen we Λ1, dit zijn matrices die precies uit ´e´en kolom bestaan.

Het product van de rijsommen van een dergelijke matrix compenseert dus precies voor ´e´en van de overbodige termen. Op deze manier vinden we

per(A) = 2 Y i=1 ri(A) − X X∈Λ1 2 Y i=1 ri(X).

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

Voorbeeld 3.11. Laat A opnieuw gelijk zijn aan3 2 4 2 1 5  . Dan geldt Λ1 = 3 2  ,2 1  ,4 5  . Hiermee vinden we dat

per(A) = 2 Y i=1 ri(A) − X 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.

(30)

Voor het geval van m = 3 kijken we eerst naar een specifiekere matrix, namelijk een 3 × 3-matrix. Laat A =   1 2 3 4 5 6 7 8 9 

. We bekijken opnieuw het product van rijsommen van A en alle deelmatrices van A, de elementen uit Λ1 = {X11, X21, X31} en Λ2 = {X12, X22, X32}.

Λ1 =      1 4 7  ,   2 5 8  ,   3 6 9      Λ2 =      1 2 4 5 7 8  ,   1 3 4 6 7 9  ,   2 3 5 6 8 9     

Hieronder zie je het product van de rijsommen van deze matrices uitgewerkt. We zien dat r1r2r3(A) onder andere alle diagonaalproducten geeft en dat die verder nergens

meer terugkomen (hieronder aangegeven in groen / dikgedrukt). Daarnaast levert deze matrix termen waarbij twee of meer factoren afkomstig zijn uit dezelfde kolom, deze corresponderen bijna allemaal ´e´en-op-´e´en met de termen uit P

X∈Λ2r1r2r3(X). De enige

uitzonderingen hierop zijn de termen waarbij alledrie de factoren uit dezelfde kolom afkomstig zijn (aangegeven in rood / schuingedrukt), die komen namelijk in twee van de drie matrices terug. Maar doordat deze elk voortkomen uit ´e´en van de matrices uit Λ1

kunnen weP

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(X12) =147+ 148 + 157 + 158 + 247 + 248 + 257 +258 r1r2r3(X22) =147+ 149 + 167 + 169 + 347 + 349 + 367 +369 r1r2r3(X32) =258+ 259 + 268 + 269 + 358 + 359 + 368 +369 r1r2r3(X11) + r1r2r3(X21) + r1r2r3(X31)+ = 147 + 258 + 369

Er geldt dus dat

3 Y i=1 ri(A) − X X∈Λ2 3 Y i=1 ri(X) + X X∈Λ1 3 Y i=1 ri(X) = 159 + 168 + 249 + 267 + 348 + 357

(31)

Als we een bredere matrix bekijken, krijgen we uiteraard ook meer deelmatrices. Laat A = (aij) een 3 × n-matrix en laat Λ1 = {X11, ..., Xp1} alle 3 × 1-matrices en Λ2 =

{X2

1, ..., Xq2} . Merk op dat p = n en q = n 2.

De uitdrukking r1r2r3(A) geeft ook in dit geval de diagonaalproducten en daarbij alle

termen met twee of drie factoren uit dezelfde kolom. Om dit te compenseren gebruiken we P

X∈Λ2

Q3

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

dezelfde kolom, deze komen precies ´e´en keer voor, en daarnaast de termen met drie factoren uit dezelfde kolom.

Laat k een kolom zijn, we willen weten hoevaak de term met alle factoren uit kolom k, a1ka2ka3k, voorkomt in PX∈Λ2Q3i=1ri(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 voor

n − 2 van deze termen compenseren. We vinden dus voor een 3 × n-matrix dat

per(A) = m Y i=1 ri(A) − X X∈Λ2 3 Y i=1 ri(X) + (n − 2) X X∈Λ1 3 Y 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 Y i=1 ri(A) + m−1 X t=1 ct X X∈Λm−t m Y i=1 ri(X),

waarbij ct recursief gedefinieerd is door

c1 = −1, ct= −1 − t−1 X r=1 n − m + t t − r  cr.

Bewijs. Zoals gezegd bevat de eerste term,Qm

i=1ri(A), alle diagonaalproducten en

daar-naast termen met meerdere factoren uit dezelfde kolom. De linkerterm bevat alleen termen van de tweede soort. Het enige dat moet worden laten zien is dus dat voor deze termen de co¨effici¨ent gelijk is aan nul.

Laat ω = (ω1, ..., ωm) precies k verschillende elementen hebben, dus a1ω1...amωm heeft

k factoren die afkomstig zijn uit verschillende kolommen. Deze term komt alleen voor in Qm

i=1ri(X) als X een submatrix van A is met die k kolommen, in dat geval komt

het precies ´e´en keer voor. We vinden deze term dus in P

X∈Λm−t

Qm

i=1ri(X) met t ∈

(32)

De coefficient voor a1ω1...amωm is dus gelijk aan 1 + m−k X t=1  n − k m − t − k  ct= 1 + cm−k+ (m−k)−1 X 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 volgend lemma zal blijken.

Claim 3.13. Als A een vierkante n × n-matrix is, geldt per(A) = n−1 X t=0 (−1)t X X∈Λn−t n Y i=1 ri(X).

Bewijs. Merk op dat we A kunnen beschouwen als enige element uit Λn. Het is dus

voldoende om aan te tonen dat ct= (−1)t. Dit gebeurt met inductie. Voor t = 1 is het

duidelijk. Stel dat de claim waar is voor alle t ≤ N , merk op dat we voor t ≤ N dan kunnen zeggen dat ct= −ct−1. Hiermee geldt voor t = N + 1 het volgende.

ct = −1 − N X r=1 N + 1 r  cr = −1 − N X r=1 N r  cr− N X r=1  N r − 1  cr = −1 − N −1 X r=1 N r  cr− cN − N −1 X r=0 N r  cr−1 = cN − cN − N −1 X r=1 N r  cr−1+ 1 = 1 + N −1 X r=1 N r  cr = −cN = (−1)N +1.

3.3. Vergelijking van beide methodes

Om te zien hoe effici¨ent een bepaald algoritme is, kijk je naar het aantal berekeningen dat nodig is. Onder een berekinng verstaan we het uitvoeren van een elementaire operator,

(33)

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

per(A) = X σ∈Sn n Y 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 Qm

i=1aiσ(i).

3. Neem de som over al deze producten.

Het aantal berekeningen dat dit algoritme maakt om de permanent van een n × n-matrix te berekenen noteren we met A(n). Het aantal berekeningen in stap x noteren we met x(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 σ. We zien dus dat 2(n) = n|Sn| = n · n!. In stap 3. wordt de som over alle diagonaalproducten

berekend. Er geldt dus dat 3(n) = |Sn| = n!.

In het algemeen zijn we echter niet zo ge¨nteresseerd 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 > 0 en 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 dat A(n) = O(f (n))

Uiteraard kunnen we f (n) heel groot maken. Zo zouden we voor de constante functie g(n) = 1 kunnen zeggen dat g(n) = O(n2), maar we zijn nu juist geinteresseerd in een

zo 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) = X o∈On (−1)n+kr(o) k Y i=1 (|oi| − 1)!.

(34)

2 3 4 5 6 7 8 9 10 10−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 van de definitie.

In Appendix C.2 is een algoritme te vinden gebasseerd op deze formule. Om te weten wat de complexiteit is van dit algoritme moeten we eerst de complexiteit kennen van de verschillende 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. Qk

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 Bell die er in 1938 een artikel over schreef [2]. In 2010 vonden Daniel Berend en Tamir Tassa een 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 de complexiteit 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) =Qk

i=1 Pn j=1 Q x∈oiaxjkost Pk i=1 Pn j=1 P x∈oi1 = Pn j=1 Pk i=1|oi| = n

(35)

2c(n) ≤Pk

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 100 100 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 is

de complexiteit van dit algoritme (iets) beter dan die van het vorige algoritme waarin we uitgingen van de defiinitie. Omdat dit pas te zien is voor grote n kan dit niet vergeleken worden met de algoritmes uit Appendices A en C.2, deze programma’s hebben te veel rekentijd nodig als n groter wordt.

In Paragraaf 3.2 bekeken we Rysers formule voor de permanent:

per(A) = n−1 X t=0 (−1)t X X∈Λn−t n Y i=1 ri(X).

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

i=1ri(X) uitrekenen.

Het uitrekenen van ri, een rijsom van X, kost maximaal n − 1 berekeningen. Deze n

rijsommen moeten vervolgens weer met elkaar vermenigvuldigd worden en zo zien we dat 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 van

de hoeveelheid rijen), dus de totale complexiteit van dit algoritme is A(n) = O(2nn2).

(36)

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 benodigde tijd 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.

(37)

4. Conclusie

De permanent ontstond pas enkele eeuwen geleden. Ondanks dat het begrip nog relatief jong is, is er toch al veel over bekend. Net als de determinant is de permanent ook een Schurfunctie. Beide functies hebben dan ook veel overeenkomsten. Zo zijn ze beiden, beschouwd als functie in de rijen, multilineair en kunnen ze uitgerekend worden door te ontwikkelen 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 brengen tot 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 bijvoorbeeld ontwikkelen 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. Ook zagen 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 en slechts dan als A een r × s-deelmatrix bevat met enkel nullen en waarbij r + s = n + 1 (Frobenius-K¨onig 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 graaf G = (V ∪ U, E) bevat een perfecte koppeling, als en alleen als voor alle X ⊆ V geldt dat de punten uit X gemiddeld minstens 1 buur hebben. Deze stelling was bovendien equivalent aan Stelling 2.28: de grootte van een maximale koppeling van een graaf is gelijk aan de minimale knopenbedekking.

Vervolgens hebben we bekeken hoe we de permanent zo effici¨ent mogelijk kunnen uitre-kenen. We bekeken de methodes van Binet-Minc en Ryser. Deze maken het uitrekenen van de permanent allebei sneller, maar vooral Rysers methode leverde een verbetering op. In plaats van dat de tijd om de permanent uit te rekenen factorieel groeit, groeit het met zijn methode exponentieel. De vraag blijft of er nog veel ruimte voor verbetering is. 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 een algoritme dat problemen uit deze categorie in polynomiale tijd oplost is al door velen geprobeerd, maar het is nog steeds niet bekend of het mogelijk is. Mocht je een algoritme vinden die de permanent in polynomiale tijd uitrekent los je ´e´en van de openstaande millenniumproblemen op en kun je een miljoen dollar opstrijken, of je kunt je algoritme aan Google verkopen voor nog veel meer.

(38)

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 en Zelina, 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 voorselectie van de datingshow deelnemers, een selectie welke man aan welke vrouw zou

kunnen worden gekoppeld en wie er absoluut niet bij elkaar passen. Dit is te zien in de graaf in Figuur 6.1. De lijnen stellen hier de mogelijke koppels voor. We zien dat er een lijn van A naar W loopt, dat betekent dat Abel en Wendy bij elkaar zouden kunnen passen. Het feit dat er geen lijn loopt tussen A en X wil zeggen dat Abel en Xanthe geen match vormen.

De organisatie is op zoek naar een manier om elke man 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 perfecte koppeling. In de voorselectie van de datingshow zien we dat er veel mogelijke matches zijn, je verwacht dus ook dat er veel mogelijkheden zullen zijn voor zo’n perfecte

koppeling. 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 ”zijn dit alle manieren?” en ”hoe kun je snel alle koppelingen vinden?”. Een manier om

(39)

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 verbindingsmatrix van de graaf uit Figuur 6.1

stelt elke rij ´e´en van de mannen voor en elke kolom staat voor ´e´en van de vrouwen. Vervolgens wordt op elke positie aangegeven of de desbetreffende man en vrouw een match vormen. In Figuur 6.3 zie je de verbindingsmatrix die hoort bij de datingshow. We hadden al gezien dat Abel en Wendy een goed stel zouden kunnen vormen, daarom zien we in de matrix ook op positie (1, 2), of (A, W ), dat er een 1 staat. Op positie (1, 3) staat een 0 omdat Abel en Xanthe niet bij elkaar passen.

Een perfecte koppeling is een verzameling mogelijke koppels, waarvoor geldt dat elke man en vrouw aan precies ´e´en persoon van het andere geslacht wordt gekoppeld. In de matrix is dit een selectie van enen zodanig dat er precies ´e´en in elke kolom en rij zit. In Figuur 6.4 zie je een mogelijke koppeling in de matrix 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 ´e´en in elke rij en kolom zit noemen we ook wel een diagonaal. Om te weten hoeveel perfecte koppelingen er zijn wil je dus weten hoeveel diagonalen er zijn waarin zich alleen enen bevinden. Een begrip dat hierbij van pas komt is de permanent van een matrix. Deze is als volgt gedefinieerd. Definitie 5.1. Laat Snde symmetriegroep zijn. Gegeven een n × n-matrix A, defini¨eren

we de permanent als volgt.

per(A) = X σ∈Sn m Y i=1 aiσ(i). (5.1)

(40)

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

Deze definitie lijkt vrij eenvoudig, maar om de permanent te berekenen heb je voor dit voorbeeld 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 ´e´en man en ´e´en 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 ook bij deze methodes neemt het aantal berekeningen snel toe naarmate de matrix groter wordt. In 1979 bewees Valiant[16] dat het berekenen van de permanent een NP-probleem is. Op het moment dat iemand een algoritme vindt die de permanent in polynomiale tijd kan berekenen (wat relatief snel is) zou daarmee bewezen zijn dat de complexiteitsklassen P en N P gelijk zijn aan elkaar. Dit is ´e´en van de milleniumproblemen en het oplossen hiervan levert 1 miljoen dollar op.

Een bijzonder soort matrix is de dubbelstochastische matrix, in deze matrix telt elke rij en elke kolom op tot 1. Een n × n-matrix met op elke positie de waarde 1/n is bijvoorbeeld een dubbelstochastische matrix. De permanent hiervan is makkelijk uit te rekenen. Een n × n-matrix heeft n! diagonalen en het product van elke diagonaal in deze matrix is (n1)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 alle dubbelstochastische matrices. Deze stelling is uiteindelijk in 1979 en 1980 bewezen door Egorychev en Falikman.

Referenties

Outline

GERELATEERDE DOCUMENTEN

De europese Unie (EU) een Eerste Lijst van Indicatieve grenswaarden voor Beroepsmatige Blootstelling (IOELVs) (nederlands).. 1-methoxypropaan-2-ol 1-Methoxypropaan-2-ol 375 mg/m3 /

Helaas heeft de coalitie Human Driven Data maar kort bestaan, zodat we niet meer uit de praktijk hebben kunnen leren het voorgenomen systeem effectief was, en welke

In totaal zijn 14 boetewaardige overtredingen vastgesteld binnen het risicogebied Welzijn voor het slachten, waarvan er 2 nog niet volledig afgewikkeld zijn, omdat de

In Daniël 2 heeft God aan Nebukadnezar via een droom, waarin hem een beeld getoond werd, bekend gemaakt wat er in de toekomst zou gaan gebeuren met zijn koninkrijk en met de

Door deze verruiming niet toe te staan kan niet tegemoet worden gekomen aan het verzoek van de Dikke Prins, Fabel’s en Lamoraal.. Terras binnen de muur van

Het in behandeling nemen van een aanvraag tot het verlenen van een omgevingsvergunning voor het tijdelijk voor vijf jaar bewonen van de recreatiewoning Toelichting

Omdat de raad eerder heeft besloten geen planologische eisen te stellen behoudens parkeren en planschade, kan niet op voorhand geconcludeerd worden dat in alle gevallen sprake is

Voor hem zou een ontheffing van een verbod voor alle gemotoriseerd verkeer om gebruik te maken van het fietspad mogelijk moeten zijn.. Verder merken zij op dat indien voor