משפט קניג (תורת הגרפים)

משפט קניג הוא משפט בתורת הגרפים, העוסק בכיסוי מינימלי ובשידוך מקסימלי. הוא קובע שבגרף דו צדדי הם שווים. המשפט התגלה על ידי דנש קניג ונקרא על שמו. יהי G = ( V , E ) {\displaystyle G=(V,E)} גרף. כיסוי קודקודים היא קבוצת קודקודים T ⊂ V {\displaystyle T\subset V} המקיימת שלכל קשת e ∈ E {\displaystyle e\in E} יש קודקוד v ∈ T {\displaystyle v\in T} כך ש- v ∈ e {\displaystyle v\in e} . כיסוי מינימלי הוא כיסוי שאין כיסוי עם פחות קודקודים ממנו. מסמנים τ ( G ) {\displaystyle \tau (G)} להיות גודל הכיסוי המקסימלי. שידוך הוא קבוצת קשתות M ⊂ E {\displaystyle M\subset E} המקיימת שלכל קודקוד v ∈ V {\displaystyle v\in V} יש לכל היותר קשת אחת e ∈ M {\displaystyle e\in M} כך ש- v ∈ e {\displaystyle v\in e} . שידוך מקסימלי הוא שידוך שאין שידוך עם יותר קשתות ממנו. מסמנים ν ( G ) {\displaystyle \nu (G)} להיות גודל השידוך המקסימלי. תמיד τ ( G ) ≤ ν ( G ) {\displaystyle \tau (G)\leq \nu (G)} , שכן כל שידוך תמיד קטן שווה מכל כיסוי (כי מכל קשת חייב להיות לפחות קודקוד אחד שישתתף בכיסוי). משפט קניג קובע שאם הגרף דו-צדדי, גם τ ( G ) = ν ( G ) {\displaystyle \tau (G)=\nu (G)} . נשים לב שמציאת שידוך מקסימלי ניתנת לפתרון פולינומי, בעוד שבעיית כיסוי הקודקודים היא NP קשה. לכן, משפט קניג מוכיח שעבור גרף דו צדדי הבעיה איננה NP קשה. יהי T {\displaystyle T} כיסוי מינימלי בגרף הדו צדדי ( A ∪ B , E ) {\displaystyle (A\cup B,E)} . נמצא שידוך בגודל | T | {\displaystyle |T|} . זה יוכיח τ ( G ) ≥ ν ( G ) {\displaystyle \tau (G)\geq \nu (G)} , וביחד עם τ ( G ) ≤ ν ( G ) {\displaystyle \tau (G)\leq \nu (G)} כפי שהוזכר לעיל, ינבע τ ( G ) = ν ( G ) {\displaystyle \tau (G)=\nu (G)} . נסמן A 1 = A ∩ T , A 2 = A ∖ T , B 1 = B ∖ T , B 2 = B ∩ T {\displaystyle A_{1}=A\cap T,A_{2}=A\setminus T,B_{1}=B\setminus T,B_{2}=B\cap T} . נסמן ב- G 1 {\displaystyle G_{1}} את תת-הגרף המושרה על A 1 ∪ B 1 {\displaystyle A_{1}\cup B_{1}} . אז נראה שיש זיווג שמרווה את A1 (כלומר כל קודקוד ב-A1 נוגע בקשת שמשתתפת בזיווג). נעשה זאת בעזרת משפט החתונה של הול. תהי x ⊂ A 1 {\displaystyle x\subset A_{1}} . נטען ש T ′ := B 2 ⊎ ( A 1 ∖ x ) ⊎ N 1 ( x ) {\displaystyle T':=B_{2}\uplus (A_{1}\setminus x)\uplus N_{1}(x)} (כאשר N 1 ( x ) {\displaystyle N_{1}(x)} הם השכנים של x ב-G1) הוא כיסוי של G. אכן, כל קשת ב-G נחתכת על T (כי הוא כיסוי) שהוא A 1 ∪ B 2 {\displaystyle A_{1}\cup B_{2}} , ולכן יש לה קצה או ב- B 2 {\displaystyle B_{2}} , או ב- A 1 ∖ x {\displaystyle A_{1}\setminus x} , או ב-x ואז הקצה השני ב N 1 ( x ) {\displaystyle N_{1}(x)} . כיוון ש-T הוא כיסוי מינימלי, | T ′ | ≥ | T | {\displaystyle |T'|\geq |T|} . מצד שני, מתקיים | T ′ | = | B 2 | + | A 1 | − | x | + | N 1 ( x ) | {\displaystyle |T'|=|B_{2}|+|A_{1}|-|x|+|N_{1}(x)|} וכן | T | = | A 1 | + | B 2 | {\displaystyle |T|=|A_{1}|+|B_{2}|} . מצירוף כל אלה מתקבל: | N 1 ( x ) | ≥ | x | {\displaystyle |N_{1}(x)|\geq |x|} הראנו את תנאי הול על G 1 {\displaystyle G_{1}} . ממשפט החתונה של הול, יש בו זיווג המרווה את A 1 {\displaystyle A_{1}} . משיקולי סימטריה יש גם ב- G 2 {\displaystyle G_{2}} (הגרף המושרה על A 1 ∪ B 1 {\displaystyle A_{1}\cup B_{1}} ) יש זיווג המרווה את B 2 {\displaystyle B_{2}} . כיוון שהם זרים, איחודם הוא זיווג המרווה את A 1 ∪ B 2 {\displaystyle A_{1}\cup B_{2}} ובפרט גודלו לפחות | T | {\displaystyle |T|} כרצוי. ניתן להכליל את המשפט למקרים בהם הגרף ממושקל: קשתות ממושקלות: נניח שלכל קשת משקל אי שלילי. משקל של שידוך הוא סכום משקלי הקשתות. כיסוי ממושקל הוא פונקציה מהקודקודים למספרים אי שליליים, כך שסכום הקודקודים בקצות כל קשת הוא לפחות משקל הקשת. משקל של כיסוי כזה הוא סכום המשקלים. אז בגרף דו צדדי, משקל הכיסוי המינימלי שווה למשקל השידוך המקסימלי. קודקודים ממושקלים: נניח שלכל קודקוד משקל אי שלילי. משקל של כיסוי הוא סכום משקלי הקודקודים. שידוך ממושקל הוא פונקציה מהקשתות למספרים אי שליליים, כך שסכום הקשתות שיוצאות מקודקוד הוא לכל היותר משקל הקודקוד. משקל של שידוך כזה הוא סכום המשקלים. אז בגרף דו צדדי, משקל הכיסוי הקסימליי שווה למשקל השידוך המינימלי. שני המשפטים נובעים ממשפט הדואליות החזק. משפט קניג באתר mathworld משפט קניג, באתר MathWorld (באנגלית) [1]