I grafteori är en matchande , eller en oberoende uppsättning kanter i en graf, en uppsättning av parvisa icke-angränsande kanter.
Låt en graf G = ( V , E ) ges, en matchande M i G är en uppsättning av parvisa icke-intilliggande kanter, det vill säga kanter som inte har gemensamma hörn, d.v.s. .
En maximal matchning är en matchande M i en graf G som inte ingår i någon annan matchning av denna graf, det vill säga det är omöjligt att lägga till en enda kant till den som inte ligger intill alla kanter av matchningen. Med andra ord, en matchande M av en graf G är maximal om någon kant i G har en icke-tom skärningspunkt med minst en kant från M . Nedan finns exempel på maximala matchningar (röda kanter) i tre grafer [1] .
Den största matchningen (eller maximal storleksmatchning [2] ) är matchningen som innehåller det maximala antalet kanter. Matchningstalet [3] för en graf är antalet kanter i den största matchningen. En graf kan ha en uppsättning största matchningar. Dessutom är varje största matchning maximal, men inte något maximum kommer att vara störst. De följande tre figurerna visar de största matchningarna i samma tre kolumner [1] .
Vissa författare använder termen "maximal matchning" för den största matchningen [4] [5] [6] [7] .
En perfekt matchning (eller 1-faktor ) är en matchning där alla hörn i grafen deltar. Det vill säga att varje hörn av grafen faller in mot exakt en kant som ingår i matchningen. Figur (b) i figuren ovan är ett exempel på en sådan matchning. Varje perfekt matchning är störst och maximal. En perfekt matchning är också en kantbeläggning av minsta storlek. I det allmänna fallet , var är grafens kantskyddsnummer , med andra ord, storleken på den största matchningen överstiger inte storleken på den minsta kanttäckningen.
En nästan perfekt matchning är en matchning där exakt en vertex inte deltar. Detta kan hända om grafen har ett udda antal hörn. I figuren ovan är matchningen i kolumn (c) nästan perfekt. Om det för någon vertex i grafen finns en nästan perfekt matchning som inte innehåller exakt denna vertex, kallas grafen faktor kritisk .
Låt ett matchande M ges .
Berges lemma säger att en matchning är maximal om och bara om det inte finns någon komplementär väg.
Den genererande funktionen av antalet k -kantsmatchningar i en graf kallas matchande polynom . Låt G vara en graf och m k vara antalet k -kantmatchningar. Det matchande polynomet i grafen G är
Det finns en annan definition av det matchande polynomet
,där n är antalet hörn i grafen. Båda definitionerna har sina egna tillämpningsområden.
Matchningsproblem uppstår ofta när man arbetar med tvådelade grafer . Att hitta den största matchningen i en tvådelad graf [9] är kanske det enklaste problemet. Algoritmen för utfyllnadsväg får det genom att hitta utfyllnadsvägen från varje vertex in och lägga till den i matchningen om en väg hittas. En alternativ lösning är att matchningen kommer att kompletteras så länge det finns expanderande kompletterande vägar:
En förstärkande sökväg är en sökväg av formuläret som är sant för . En utökad bana kallas en expanderande bana om .
Lemma: För varje graf , matchande och kompletteringsväg gäller matchningen och . Bevis: Låt , och vara den initiala hörn av , så och , och vara den sista vertex av , så att och , och vara en mellanliggande vertex av , så . Det följer av detta att ytterligare en kant kommer att läggas till i grafen än att den tas bort från den.
Lemma: För alla grafer och matchningar så att följande är sant: grafen innehåller ett minimum av kompletteringsvägar som inte skär varandra vid hörn med avseende på . Bevis: Låt och , medan verkligen och och sålunda följer . Låt för de sammankopplade komponenterna i grafen . Från följer
Topparna i kommer växelvis från och . Låta
, men bara om är en utökad väg. och detta innebär att det måste finnas ett minimum av komponenter med och som en konsekvens kompletterande vägar. Enligt definitionen av anslutna komponenter kommer sådana komplementära vägar inte att skära varandra vid hörn.
Du kan hitta den kompletterande vägen så här:
Eftersom den utökade sökvägen kan hittas i DFS-tid är algoritmens körtid . Denna lösning är likvärdig med att lägga till en superkälla med kanter till alla hörn och en superstock med kanter från alla hörn (grafomvandlingen tar , och hitta det maximala flödet från till . Alla kanter som flyter från för att bilda en maximal matchning, och storleken av den största matchningen kommer att vara lika med Den tidsbaseradeHopcroft-Karps snabbare. Ett annat tillvägagångssätt är baserat på den snabba matrismultiplikationsalgoritmen och ger komplexitet [10] , vilket är bättre i teorin för tillräckligt täta grafer , men i praktiken Algoritmen är långsammare [11]
I en viktad tvådelad graf tilldelas varje kant en vikt. En maximal viktmatchning i en tvådelad graf [9] definieras som en matchning för vilken summan av vikterna av matchningens kanter har ett maximalt värde. Om grafen inte är en fullständig tvådelad , läggs de saknade kanterna till med noll vikt. Problemet med att hitta en sådan matchning kallas uppdragsproblemet . Den anmärkningsvärda ungerska algoritmen löser tilldelningsproblemet och var en av de första kombinatoriska optimeringsalgoritmerna . Problemet kan lösas med en modifierad sökning av kortaste vägen i algoritmen för utökad väg. Om Bellman-Ford-algoritmen används kommer körtiden att vara , eller så kan priset på kanten flyttas för att nå tiden när Dijkstras algoritm tillämpas med en Fibonacci-hög [12] . [13]
Det finns en polynomtidsalgoritm för att hitta den största matchningen eller maximal viktmatchning i en icke-tvådelad graf. Efter Jack Edmonds kallas det för väg-, träd- och färgmetoden eller helt enkelt Edmonds matchningsalgoritm . Algoritmen använder dubbelriktade bågar . En generalisering av samma teknik kan användas för att hitta den maximala oberoende uppsättningen i grafer utan klor . Edmods algoritm förbättrades därefter till körtid , vilket motsvarar algoritmer för tvådelade grafer [14] . En annan (randomiserad) algoritm utvecklad av Mucha och Sankovsim (Mucha, Sankowski) [10] , baserad på den snabba produkten av matriser , ger komplexitet .
Den maximala matchningen kan hittas med en enkel girig algoritm . Den största maximala matchningen är den största matchningen som kan hittas i polynomtid. Implementering med pseudokod:
Emellertid är ingen polynom-tidsalgoritm känd för att hitta den minsta maximala matchningen , d.v.s. den maximala matchningen som innehåller minsta möjliga antal kanter.
Observera att den största matchningen av k kanter är en kantdominerande uppsättning med k kanter. Omvänt, givet en minimal kantdominerande mängd med k kanter, kan vi bygga den största matchningen med k kanter i polynomtid. Således är problemet med att hitta den minsta storleken för den maximala matchningen ekvivalent med problemet med att hitta den minsta kantdominerande uppsättningen [15] . Båda dessa optimeringsproblem är kända som NP-hard , och deras igenkänningsversioner är klassiska exempel på NP-kompletta problem [16] . Båda problemen kan approximeras med en faktor 2 med polynomtid - hitta bara ett godtyckligt maximalt matchande M [17] .
Antalet matchningar i en graf kallas Hosoyya-index . Att beräkna detta nummer är #P-komplett . Problemet förblir #P-komplett i det speciella fallet att lista perfekta matchningar i en tvådelad graf , eftersom att beräkna permanenten för en slumpmässig 0-1-matris (ett annat #P-komplett problem) är detsamma som att beräkna antalet perfekta matchningar i en tvådelad graf med en given matris som en närliggande matris . Det finns emellertid ett randomiserat polynom-tidsapproximationsschema för att beräkna antalet matchningar i en tvådelad graf [18] . Ett underbart teorem från Casteleyn som säger att antalet perfekta matchningar i en plan graf kan beräknas exakt i polynomtid med FKT-algoritmen .
Antalet perfekta matchningar i en komplett graf K n (med jämnt n ) ges av dubbelfaktorialen ( n − 1)!! [19] . Antalet matchningar i en komplett graf utan begränsning, så att matchningen blir perfekt, ges av telefonnummer [20] .
Ett av huvudproblemen i teorin om matchningar är att hitta alla kanter som kan utökas till den största matchningen. Den bästa deterministiska algoritmen för att lösa detta problem går i tid [21] . Det finns en randomiserad algoritm som löser problemet i tid [22] . I fallet med en tvådelad graf kan du hitta den största matchningen och använda den för att hitta alla maximalt matchande kanter i linjär tid [23] ; vilket kommer att resultera för allmänna tvådelade grafer och för täta tvådelade grafer med . Om en av de största matchningarna är känd i förväg [24] kommer den totala körtiden för algoritmen att vara .
Königs teorem säger att i tvådelade grafer är storleken på den största matchningen lika med storleken på det minsta vertextäcket . Av detta följer att för tvådelade grafer kan problemen med att hitta det minsta vertextäcket , den största oberoende uppsättningen och den maximala vertex biclique lösas i polynomtid .
Halls teorem (eller bröllopssatsen) ger en karakterisering av tvådelade grafer som har perfekt matchning, medan Tutts teorem ger en karakterisering av godtyckliga grafer.
En perfekt matchning genererar en sträckande 1-regelbunden subgraf, det vill säga en 1-faktor . I allmänhet är en spännande k -reguljär subgraf en k -faktor .
Kekules strukturformel för aromatiska föreningar består av perfekta matchningar av deras kolskelett , vilket visar placeringen av dubbelbindningarna i den kemiska strukturen . Dessa strukturer är uppkallade efter Friedrich August Kekule , som visade att bensen (i termer av grafteorin är det en cykel med 6 hörn) kan representeras som en sådan struktur [25] .
Hosoyya-indexet är antalet icke-tomma matchningar plus en. Det används i beräknings- och matematisk kemi för att studera organiska föreningar.