ötszín-tétel (matematika, gráfelmélet) Az ötszín-tétel a síkbarajzolható gráfok csúcsszínezésére vonatkozó állítás, amely a négyszín-tétel gyengébb változata. A tétel kimondja:
Bármely síkbarajzolható gráf csúcsai kiszínezhetők legfeljebb öt színnel úgy, hogy bármely két szomszédos csúcs különböző színt kapjon.
Ez azt jelenti, hogy minden síkban rajzolt térkép színezésére elegendő öt szín.
- Egy gráf síkbarajzolható, ha síkban rajzolható úgy, hogy élei nem metszik egymást.
- Egy gráf csúcsszínezése olyan hozzárendelés, amelyben minden csúcs kap egy színt úgy, hogy két szomszédos csúcs színe különböző.
Az ötszín-tétel bizonyítása egyszerűbb, mint a négyszín-tételé, és nem igényel számítógépes segítséget. A bizonyítás a síkbarajzolható gráfok strukturális tulajdonságaira épül.
- Az Euler-tétel szerint egy síkbarajzolható gráfban: ahol a csúcsok, az élek, és a régiók száma. - Ebből következik, hogy a síkbarajzolható gráfokban a csúcsok átlagos fokszáma legfeljebb 6: - Így mindig van legalább egy csúcs, amelynek fokszáma legfeljebb 5.
A bizonyítást indukcióval végezzük a gráf csúcsainak számára ().
- Ha , akkor a gráf legfeljebb 5 csúcsot tartalmaz, és nyilvánvalóan kiszínezhető 5 színnel.
- Tegyük fel, hogy minden -nél kevesebb csúcsú síkbarajzolható gráf kiszínezhető legfeljebb 5 színnel. - Tekintsünk egy gráfot csúccsal. - Válasszunk ki egy csúcsot, amelynek fokszáma legfeljebb 5 (létezik ilyen csúcs a síkbarajzolhatóság miatt). - Távolítsuk el -t a gráfból, és jelöljük a maradék gráfot -vel.
- kiszínezhető legfeljebb 5 színnel az indukciós feltétel alapján.
- Adjunk -nek egy olyan színt, amely eltér a szomszédos csúcsok színétől.
- Mivel -nek legfeljebb 5 szomszédja van, mindig marad egy elérhető szín a színezéshez.
Ezzel a gráf is kiszínezhető legfeljebb 5 színnel.
import networkx as nx
import matplotlib.pyplot as plt
def five_color_theorem(graph):
"""
Az ötszín-tétel megvalósítása: kiszínezi a síkbarajzolható gráfot legfeljebb 5 színnel.
"""
coloring = nx.coloring.greedy_color(graph, strategy="largest_first")
return coloring
# Példa gráf
G = nx.Graph()
edges =
G.add_edges_from(edges)
# Színezés
coloring = five_color_theorem(G)
print("Csúcsszínezés:", coloring)
# Gráf ábrázolása
pos = nx.planar_layout(G)
nx.draw(G, pos, with_labels=True, node_color= for node in G.nodes()])
plt.show()
Csúcsszínezés: {'A': 0, 'B': 1, 'C': 2, 'D': 3, 'E': 4}
Az **ötszín-tétel** a síkbarajzolható gráfok színezésére vonatkozó fontos eredmény, amely egyszerű bizonyítással és széles körű alkalmazási lehetőségekkel bír. Bár a négyszín-tétel erősebb állítás, az ötszín-tétel bizonyítása kevésbé összetett, és nem igényel számítógépes segítséget. Az ötszín-tétel gyakorlati jelentőséggel bír a gráfelmélet és a különféle optimalizálási problémák területén.