A számítási geometria és a gráfelmélet területén a síkgráfok generálása lenyűgöző és gyakorlatias feladat. A síkgráfok, amelyek egy síkra rajzolhatók anélkül, hogy élek keresztezik egymást, számos alkalmazási területük van, például áramkör-tervezésben, hálózatelemzésben és földrajzi leképezésben. Generátorszállítóként nem csak a generátorok hardveres oldalát ismerem, hanem a szoftverrel kapcsolatos szempontokat is, különösen azt, hogy Pythonban hogyan lehet generátort használni síkgráfok sorozatának generálására.
A síkgrafikonok megértése
Mielőtt belemerülne a Python megvalósításába, elengedhetetlen, hogy világosan megértse a síkgráfokat. A gráf (G=(V, E)) csúcsok halmazából (V) és élek halmazából (E) áll, amelyek csúcspárokat kötnek össze. Egy gráf akkor sík, ha beágyazható a síkba, ami azt jelenti, hogy sík felületre úgy rajzolható meg, hogy két él nem metszi egymást, kivéve a végpontjait.
A síkgráfokkal kapcsolatban az egyik legismertebb eredmény az Euler-képlet: (v - e + f=2), ahol (v) a csúcsok száma, (e) az élek száma, és (f) az összekapcsolt síkgráf lapjainak száma (beleértve a külső felületet is). Ez a képlet alapvető megkötésként szolgál síkgráfok generálásakor.
Python könyvtárak gráfgeneráláshoz
A Python számos hatékony könyvtárat kínál a grafikonokkal való munkavégzéshez, és az egyik legnépszerűbbnetworkx.networkxegy átfogó könyvtár komplex hálózatok szerkezetének, dinamikájának és funkcióinak létrehozására, manipulálására és tanulmányozására.
A kezdéshez először telepítenie kellnetworkxha még nem tetted meg. Használhatodcsipogtelepítéséhez:
pip install networkx
Síkgrafikonok generálása Pythonban
Itt van egy lépésről lépésre útmutató a használatáhoznetworkxsíkgrafikonok sorozatának létrehozásához:
1. lépés: Importálja a szükséges könyvtárakat
networkx importálása nx-ként import matplotlib.pyplot plt-ként
2. lépés: Hozzon létre egy egyszerű síkgráfot
A síkgráf létrehozásának egyik legegyszerűbb módja agrid_2d_graphfunkció benetworkx. Ez a függvény egy kétdimenziós rács gráfot hoz létre, amely mindig sík.
# Hozzon létre egy 3x3-as rácsgráfot G = nx.grid_2d_graph(3, 3) # Rajzolja meg a grafikont pos = nx.spring_layout(G) nx.draw(G, pos, with_labels=True) plt.show()
Ebben a kódban először egy 3x3-as rácsgrafikont készítünk. Ezután használjuk atavasz_elrendezésfüggvény a csúcsok pozícióinak kiszámításához vizualizációs célból. Végül megrajzoljuk a grafikont a segítségévelnx.rajzés segítségével jelenítse megplt.show.
3. lépés: Hozzon létre bonyolultabb síkgrafikonokat
Bonyolultabb síkgráfokat is generálhatunk olyan algoritmusok használatával, mint a Delaunay-háromszögelés. A síkban lévő ponthalmaz Delaunay-háromszögelése egy sík gráf, ahol egyetlen pont sem található a pontok által alkotott háromszög körülírt körében.
import numpy as np # Véletlen pontok halmazának generálása pontok = np.random.rand(10, 2) # Delaunay háromszögelési gráf létrehozása G = nx.Graph() a scipy.spatial importból Delaunay tri = Delaunay(pontok) szimplexhez tri.simplices: for i 1 tartományban,(3): for i 1 tartományban G.add_edge(tuple(pontok[simplex[i]]), tuple(pontok[simplex[j]])) # Rajzolja meg a grafikont pos = {csomópont: csomópont a G.nodes()} csomóponthoz nx.draw(G, pos, with_labels=False) plt.show()
Ebben a kódban először egy 10 véletlenszerű pontból álló halmazt generálunk a síkban. Ezután használjuk aDelaunayfunkciótólscipy.térbelihogy kiszámítsuk ezeknek a pontoknak a Delaunay-háromszögletét. Végül létrehozunk egy gráfot úgy, hogy a háromszögelés egyes háromszögeinek csúcsai közé éleket adunk, és megrajzoljuk a gráfot.
Generátor használata síkgrafikonok sorozatának generálására
A Pythonban a generátor az iterátor egy speciális típusa, amely lehetővé teszi, hogy menet közben értéksorozatot generáljon anélkül, hogy egyszerre kellene tárolnia a memóriában. Egy generátor segítségével síkgráfok sorozatát állíthatjuk elő.
def planar_graph_generator(): n = 2 while True: # Rács gráf generálása G = nx.grid_2d_graph(n, n) hozam G n += 1 # Generátor objektum létrehozása graph_gen = planar_graph_generator() # Generálja és jelenítse meg a G i első 3 grafikonját a következő tartományban(3): po(3) nx.spring_layout(G) nx.draw(G, poz, with_labels=True) plt.show()
Ebben a kódban egy generátorfüggvényt definiálunkplanar_graph_generatoramely növekvő méretű rácsdiagramok sorozatát állítja elő. Ezután létrehozunk egy generátor objektumot, és használjuk akövetkezőfüggvény a sorozat első 3 grafikonjának létrehozásához és megjelenítéséhez.
A síkgráf-generálás alkalmazásai
A síkgráfok létrehozásának képességének számos gyakorlati alkalmazása van. Például az áramkörök tervezésében sík gráfok használhatók az elektronikus áramkörök elrendezésének ábrázolására, ahol a csúcsok az összetevőket, az élek pedig a köztük lévő kapcsolatokat. A hálózatelemzés során síkgráfok használhatók közlekedési hálózatok vagy közösségi hálózatok modellezésére.


Generátor termékeink
Generátor beszállítóként kiváló minőségű generátorok széles választékát kínáljuk az Ön energiaszükségleteinek kielégítésére. Akár egy kisméretű hordozható generátorra van szüksége szabadtéri tevékenységekhez, akár egy nagyméretű áramfejlesztőre ipari felhasználásra, nálunk megtalálja a megfelelő megoldást.
A miénk125kva áramfejlesztőMegbízható választás közepes és nagy teljesítményigényekhez. Stabil és hatékony teljesítményt biztosít, így alkalmas ipari létesítményekre, építkezésekre és vészhelyzeti tartalék áramellátásra.
Ha magas üzemanyag-hatékonyságú és alacsony zajszintű generátort keres, a miLassan forgó dízel generátorkiváló lehetőség. Úgy tervezték, hogy lassabb sebességgel működjön, ami csökkenti a motor kopását és meghosszabbítja élettartamát.
Azok számára, akiknek hordozható áramellátásra van szükségük, a mi7kva hordozható generátorkönnyű és könnyen szállítható. Tökéletes kempingezéshez, csomagtartózáshoz és egyéb szabadtéri tevékenységekhez.
Beszerzésért forduljon hozzánk
Ha érdeklődik generátortermékeink iránt, vagy kérdése van a síkgráf Pythonban történő generálásával kapcsolatban, forduljon hozzánk bizalommal. Azért vagyunk itt, hogy a legjobb termékeket és szolgáltatásokat kínáljuk Önnek. Szakértői csapatunk segíthet kiválasztani a megfelelő generátort az Ön egyedi igényeinek megfelelően, és technikai támogatást kínál a beszerzési folyamat során.
Hivatkozások
- NetworkX dokumentáció: https://networkx.org/documentation/stable/
- Scipy dokumentáció: https://docs.scipy.org/doc/scipy/
- Gráfelmélet: Bevezetés, Douglas B. West

