Dalam bidang geometri pengiraan dan teori graf, penjanaan graf planar adalah tugas yang menarik dan praktikal. Grafik planar, yang boleh ditarik pada satah tanpa sebarang tepi yang melintasi satu sama lain, mempunyai banyak aplikasi dalam bidang seperti reka bentuk litar, analisis rangkaian, dan pemetaan geografi. Sebagai pembekal penjana, saya bukan sahaja berpengalaman di sisi perkakasan penjana tetapi juga memahami aspek yang berkaitan dengan perisian, terutama bagaimana menggunakan penjana di Python untuk menghasilkan urutan graf planar.
Memahami graf planar
Sebelum menyelidiki pelaksanaan Python, penting untuk mempunyai pemahaman yang jelas tentang graf planar. Grafik (g = (v, e)) terdiri daripada satu set simpul (v) dan satu set tepi (e) yang menyambung pasangan simpul. Grafik adalah planar jika ia boleh tertanam dalam satah, yang bermaksud bahawa ia boleh ditarik pada permukaan rata sedemikian rupa sehingga tidak dua tepi bersilang kecuali pada titik akhir mereka.
Salah satu hasil yang paling baik mengenai graf planar ialah formula Euler: (V - E + F = 2), di mana (v) adalah bilangan simpang, (e) adalah bilangan tepi, dan (f) adalah bilangan muka (termasuk muka luar) graf planar yang bersambung. Formula ini berfungsi sebagai kekangan asas apabila menghasilkan graf planar.
Perpustakaan Python untuk Generasi Grafik
Python menawarkan beberapa perpustakaan yang kuat untuk bekerja dengan graf, dan salah satu yang paling popular adalahNetworkx.Networkxadalah perpustakaan yang komprehensif untuk penciptaan, manipulasi, dan kajian struktur, dinamik, dan fungsi rangkaian kompleks.
Untuk memulakan, anda perlu memasangNetworkxSekiranya anda belum melakukannya. Anda boleh menggunakanPipuntuk memasangnya:
PIP Pasang NetworkX
Menjana Graf Planar di Python
Berikut adalah langkah langkah - dengan cara menggunakanNetworkxUntuk menghasilkan urutan graf planar:
Langkah 1: Import perpustakaan yang diperlukan
Import Networkx sebagai import Nx matplotlib.pyplot sebagai PLT
Langkah 2: Menjana graf planar yang mudah
Salah satu cara paling mudah untuk menghasilkan graf planar adalah menggunakangrid_2d_graphberfungsi dalamNetworkx. Fungsi ini mewujudkan graf grid dua dimensi, yang sentiasa planar.
# Buat graf grid 3x3 g = nx.grid_2d_graph (3, 3) # Lukis graf pos = nx.spring_layout (g) nx.draw (g, pos, with_labels = true) plt.show ()
Dalam kod ini, kita mula -mula membuat graf grid 3x3. Kemudian, kami menggunakanSpring_layoutfungsi untuk mengira kedudukan simpul untuk tujuan visualisasi. Akhirnya, kami melukis graf menggunakannx.drawdan memaparkannya menggunakanplt.show.
Langkah 3: Menjana graf planar yang lebih kompleks
Kami juga boleh menghasilkan graf planar yang lebih kompleks dengan menggunakan algoritma seperti triangulasi Delaunay. Triangulasi Delaunay dari satu set mata dalam pesawat adalah graf planar di mana tiada titik terletak di dalam lingkaran mana -mana segitiga yang dibentuk oleh mata.
import numpy sebagai np # menjana satu set titik titik rawak = np.random.rand (10, 2) # Buat grafik triangulasi delaunay g = nx.graph () dari scipy.spatial import delaunay tri = delaunay (mata) G.add_edge (tuple (points [simplex [i]]), tuple (points [simplex [j]])) # lukis graf pos = {node: node for node dalam g.nodes ()} nx.draw (g, pos, with_labels = false) plt.show ()
Dalam kod ini, kita mula -mula menjana satu set 10 mata rawak dalam pesawat. Kemudian, kami menggunakanDelaunayfungsi dariscipy.spatialUntuk mengira triangulasi Delaunay dari mata ini. Akhirnya, kami membuat graf dengan menambahkan tepi antara simpang setiap segitiga dalam triangulasi dan lukis graf.
Menggunakan penjana untuk menghasilkan urutan graf planar
Di Python, penjana adalah jenis iterator khas yang membolehkan anda menghasilkan urutan nilai - terbang tanpa perlu menyimpannya dalam ingatan sekaligus. Kita boleh menggunakan penjana untuk menghasilkan urutan graf planar.
def planar_graph_generator (): n = 2 manakala benar: # menjana graf grid g = nx.grid_2d_graph (n, n) hasil g n += 1 # cipta objek penjana graph_gen = planar_grage_generator () pos, with_labels = true) plt.show ()
Dalam kod ini, kami menentukan fungsi penjanaplanar_graph_generatorItu menghasilkan urutan graf grid dengan saiz yang semakin meningkat. Kami kemudian membuat objek penjana dan menggunakanSeterusnyaberfungsi untuk menjana dan memaparkan graf 3 pertama dalam urutan.
Aplikasi Generasi Graf Planar
Keupayaan untuk menjana graf planar mempunyai banyak aplikasi praktikal. Sebagai contoh, dalam reka bentuk litar, graf planar boleh digunakan untuk mewakili susun atur litar elektronik, di mana simpang mewakili komponen dan tepi mewakili sambungan di antara mereka. Dalam analisis rangkaian, graf planar boleh digunakan untuk memodelkan rangkaian pengangkutan atau rangkaian sosial.


Produk penjana kami
Sebagai pembekal penjana, kami menawarkan pelbagai penjana berkualiti tinggi untuk memenuhi keperluan kuasa anda. Sama ada anda memerlukan penjana mudah alih kecil untuk aktiviti luar atau penjana kuasa skala besar untuk kegunaan industri, kami mempunyai penyelesaian yang tepat untuk anda.
KamiPenjana kuasa 125kvaadalah pilihan yang boleh dipercayai untuk keperluan kuasa skala besar - besar. Ia menyediakan output kuasa yang stabil dan cekap, menjadikannya sesuai untuk kemudahan perindustrian, tapak pembinaan, dan kuasa sandaran kecemasan.
Sekiranya anda mencari penjana dengan kecekapan bahan api yang tinggi dan tahap bunyi yang rendah, kamiPenjana diesel yang perlahanadalah pilihan yang sangat baik. Ia direka untuk beroperasi pada kelajuan yang lebih perlahan, yang mengurangkan haus dan lusuh pada enjin dan memanjangkan jangka hayatnya.
Bagi mereka yang memerlukan penyelesaian kuasa mudah alih, kami7KVA Portable Generatoradalah ringan dan mudah diangkut. Ia sesuai untuk perkhemahan, tailgating, dan aktiviti luar yang lain.
Hubungi kami untuk perolehan
Jika anda berminat dengan produk penjana kami atau mempunyai sebarang soalan mengenai penjanaan graf planar di Python, jangan ragu untuk menghubungi kami. Kami berada di sini untuk memberikan anda produk dan perkhidmatan terbaik. Pasukan pakar kami dapat membantu anda memilih penjana yang tepat untuk keperluan khusus anda dan menawarkan sokongan teknikal sepanjang proses perolehan.
Rujukan
- Dokumentasi Networkx: https://networkx.org/documentation/stable/
- Dokumentasi Scipy: https://docs.scipy.org/doc/scipy/
- Teori Graf: Pengenalan, oleh Douglas B. West

