A Hall-tétel egy alapvető eredmény a kombinatorikus gráfelméletben, amely a bipartit gráfokhoz kapcsolódik. A tétel kimondja, hogy egy bipartit gráfban létezik tökéletes illeszkedés, ha és csak ha minden részhalmaz az egyik részhalmaznak legalább annyi szomszédot tartalmaz, mint ahány elem van benne.
Hall-tétel: Egy bipartit gráfban létezik tökéletes illeszkedés, ha és csak ha minden részhalmazra: ahol az -tól elérhető csúcsok halmaza a -ban, és az ezeknek a csúcsoknak a száma.
- A bipartit gráf olyan gráf, amelynek csúcsai két diszjunkt halmazra oszthatók, úgy hogy minden él egy csúcsból az egyik halmazból és egy csúcsból a másik halmazból indul ki. Nincsenek élek, amelyek két csúcsot ugyanabból a halmazból kapcsolnak össze.
- A tökéletes illeszkedés egy olyan illeszkedés, amely minden csúcsot tartalmaz a gráfban. Más szóval, minden csúcs egy másik csúcshoz van kapcsolva, és nincs csúcs, amely ne lenne része az illeszkedésnek.
- A részhalmaz egy halmaz olyan elemeinek gyűjteménye, amelyek az eredeti halmaz részei. A szomszédság azt jelenti, hogy két csúcs között él van, tehát egy csúcs elérhetősége más csúcsokból származik.
A Hall-tétel bizonyítása indukcióval történik. Az alábbiakban a bizonyítás lépéseit ismertetem:
- Tekintsük a bipartit gráfot , ahol és . - A cél annak bizonyítása, hogy létezik tökéletes illeszkedés, ha és csak ha minden részhalmaz -ra igaz, hogy .
- Ha a fenti feltétel teljesül, akkor építsünk fel egy illeszkedést lépésről lépésre. Először bemutatjuk, hogy a tétel igaz egy kis értékre, például . Ezután az indukciós lépést alkalmazva kimutatjuk, hogy a tétel igaz nagyobb értékekre is.
- Ha nincs tökéletes illeszkedés, akkor létezik olyan részhalmaz, amelynek , ami ellentmondásba kerül a Hall-tétel feltételével.
- A bizonyítás így azt mutatja, hogy a Hall-tétel érvényes, ha és csak ha minden részhalmazra teljesül a fenti feltétel.
Tekintsünk egy egyszerű bipartit gráfot, ahol és , és az élek a következőképpen vannak: .
A Hall-tétel szerint a részhalmazokra: - esetén , tehát , - esetén , tehát , - esetén , tehát .
Mivel minden részhalmazra teljesül a Hall-tétel feltétele, a gráfban létezik tökéletes illeszkedés.
A Hall-tétel egy egyszerű alkalmazása a bipartit gráfoknak. Az alábbi Python kód a NetworkX könyvtárat használja a bipartit gráfok és azok illeszkedéseinek vizsgálatára:
import networkx as nx
# Gráf létrehozása
G = nx.Graph()
# Csúcsok és élek hozzáadása
U =
V =
edges =
G.add_nodes_from(U + V)
G.add_edges_from(edges)
# Ellenőrzés, hogy van-e tökéletes illeszkedés
def is_perfect_matching(G, U, V):
# A bipartit gráf illeszkedésének vizsgálata
matching = nx.bipartite.maximum_matching(G)
# Ha az illeszkedés tartalmazza az összes csúcsot
return len(matching) == 2 * len(U)
# Tökéletes illeszkedés ellenőrzése
if is_perfect_matching(G, U, V):
print("A gráfban létezik tökéletes illeszkedés!")
else:
print("A gráfban nincs tökéletes illeszkedés!")
A gráfban létezik tökéletes illeszkedés!
Ebben a példában a Python kód a bipartit gráf maximum illeszkedését vizsgálja, és megtalálja, hogy létezik tökéletes illeszkedés, mivel minden részhalmazra teljesül a Hall-tétel feltétele.
- A Hall-tétel alapvető fontosságú a bipartit gráfok és a maximális illeszkedések területén, például a munkaerőpiaci párosítások vagy feladat-alkalmazott párosítások problémáinál.
- A Hall-tétel felhasználható olyan algoritmusokban, amelyek bipartit gráfokban keresnek illeszkedéseket, például a maximum bipartite matching algoritmusokban.
- A tétel segíthet a közlekedési hálózatok optimalizálásában vagy a gazdasági párosítások (például kereslet-kínálat) modellezésében.
A Hall-tétel alapvető eredmény a gráfelméletben, amely a bipartit gráfok tökéletes illeszkedését vizsgálja. A tétel azt mondja ki, hogy egy bipartit gráfban akkor és csak akkor létezik tökéletes illeszkedés, ha minden részhalmazra teljesül a Hall-tétel feltétele. A tétel alkalmazásai széleskörűek a kombinatorikai számelméletben és más területeken, mint a közlekedés, gazdaság és munkaerőpiaci problémák.