في عالم الهندسة الحسابية ونظرية الرسم البياني، يعد إنشاء الرسوم البيانية المستوية مهمة رائعة وعملية. الرسوم البيانية المستوية، تلك التي يمكن رسمها على مستوى دون أن تتقاطع أي حواف مع بعضها البعض، لها العديد من التطبيقات في مجالات مثل تصميم الدوائر، وتحليل الشبكات، ورسم الخرائط الجغرافية. كمورد للمولدات، فأنا لست على دراية جيدة بالجانب المادي للمولدات فحسب، بل أفهم أيضًا الجوانب المتعلقة بالبرمجيات، وخاصة كيفية استخدام مولد في بايثون لإنشاء سلسلة من الرسوم البيانية المستوية.
فهم الرسوم البيانية المستوية
قبل الخوض في تنفيذ بايثون، من الضروري أن يكون لديك فهم واضح للرسوم البيانية المستوية. يتكون الرسم البياني (G=(V, E)) من مجموعة من القمم (V) ومجموعة من الحواف (E) التي تربط أزواج القمم. يكون الرسم البياني مستويًا إذا كان من الممكن تضمينه في المستوى، مما يعني أنه يمكن رسمه على سطح مستو بطريقة لا تتقاطع فيها حافتان إلا عند نقاط النهاية.
إحدى أكثر النتائج المعروفة حول الرسوم البيانية المستوية هي صيغة أويلر: (v - e + f=2)، حيث (v) هو عدد الرؤوس، (e) هو عدد الحواف، و(f) هو عدد الوجوه (بما في ذلك الوجه الخارجي) للرسم البياني المستوي المتصل. تعمل هذه الصيغة كقيد أساسي عند إنشاء الرسوم البيانية المستوية.
مكتبات بايثون لإنشاء الرسوم البيانية
تقدم بايثون العديد من المكتبات القوية للتعامل مع الرسوم البيانية، وواحدة من أكثرها شعبية هيNetworkx.Networkxهي مكتبة شاملة لإنشاء ومعالجة ودراسة بنية وديناميكيات ووظائف الشبكات المعقدة.
للبدء، تحتاج أولاً إلى التثبيتNetworkxإذا لم تكن قد فعلت ذلك بالفعل. يمكنك استخدامنقطةلتثبيته:
نقطة تثبيت Networkx
توليد الرسوم البيانية المستوية في بيثون
فيما يلي دليل خطوة بخطوة حول كيفية الاستخدامNetworkxلإنشاء سلسلة من الرسوم البيانية المستوية:
الخطوة 1: استيراد المكتبات اللازمة
استيراد Networkx كـ nx استيراد matplotlib.pyplot كـ plt
الخطوة 2: إنشاء رسم بياني مستو بسيط
إحدى أبسط الطرق لإنشاء رسم بياني مستو هي استخدامGrid_2d_graphوظيفة فيNetworkx. تقوم هذه الدالة بإنشاء رسم بياني شبكي ثنائي الأبعاد، والذي يكون دائمًا مستويًا.
# إنشاء رسم بياني شبكي 3x3 G = nx.grid_2d_graph(3, 3) # ارسم الرسم البياني pos = nx.spring_layout(G) nx.draw(G, pos, with_labels=True) plt.show()
في هذا الكود، نقوم أولاً بإنشاء رسم بياني شبكي 3x3. وبعد ذلك نستخدمSpring_layoutوظيفة لحساب مواقف القمم لأغراض التصور. وأخيرا، نرسم الرسم البياني باستخدامnx.drawوعرضها باستخدامplt.show.
الخطوة 3: إنشاء رسوم بيانية مستوية أكثر تعقيدًا
يمكننا أيضًا إنشاء رسوم بيانية مستوية أكثر تعقيدًا باستخدام خوارزميات مثل تثليث ديلوناي. تثليث ديلوناي لمجموعة من النقاط في المستوى هو رسم بياني مستو حيث لا توجد نقطة تقع داخل الدائرة المحيطة لأي مثلث تشكله النقاط.
import numpy as np # إنشاء مجموعة من النقاط العشوائية point = np.random.rand(10, 2) # إنشاء رسم بياني لتثليث Delaunay G = nx.Graph() من scipy.spatial import Delaunay tri = Delaunay(points) for simplex in tri.simplices: for i in range(3): for j in range(i + 1, 3): G.add_edge(tuple(points[simplex[i]]), tuple(points[simplex[j]])) # ارسم الرسم البياني pos = {node: عقدة للعقدة في G.nodes()} nx.draw(G, pos, with_labels=False) plt.show()
في هذا الكود، نقوم أولاً بإنشاء مجموعة من 10 نقاط عشوائية في المستوى. وبعد ذلك نستخدمديلونايوظيفة منscipy.spatialلحساب تثليث ديلوناي لهذه النقاط. وأخيرًا، نقوم بإنشاء رسم بياني عن طريق إضافة حواف بين رؤوس كل مثلث في التثليث ورسم الرسم البياني.
استخدام مولد لتوليد تسلسل من الرسوم البيانية المستوية
في لغة Python، المولد هو نوع خاص من المكررات التي تسمح لك بإنشاء سلسلة من القيم بشكل سريع دون الحاجة إلى تخزينها جميعًا في الذاكرة مرة واحدة. يمكننا استخدام المولد لإنشاء سلسلة من الرسوم البيانية المستوية.
def Planar_graph_generator(): n = 2 while True: # إنشاء رسم بياني شبكي G = nx.grid_2d_graph(n, n) الإنتاجية G n += 1 # إنشاء كائن مولد graph_gen = Planar_graph_generator() # إنشاء وعرض الرسوم البيانية الثلاثة الأولى لـ i في النطاق(3): G = next(graph_gen) pos = nx.spring_layout(G) nx.draw(G, pos, with_labels=True) plt.show()
في هذا الكود، نحدد وظيفة المولدPlanar_graph_generatorالذي يولد سلسلة من الرسوم البيانية الشبكية ذات الأحجام المتزايدة. نقوم بعد ذلك بإنشاء كائن منشئ واستخدامالتاليوظيفة لإنشاء وعرض الرسوم البيانية الثلاثة الأولى في التسلسل.
تطبيقات توليد الرسم البياني المستوي
القدرة على إنشاء الرسوم البيانية المستوية لها العديد من التطبيقات العملية. على سبيل المثال، في تصميم الدوائر، يمكن استخدام الرسوم البيانية المستوية لتمثيل تخطيط الدوائر الإلكترونية، حيث تمثل القمم المكونات وتمثل الحواف الروابط بينها. في تحليل الشبكات، يمكن استخدام الرسوم البيانية المستوية لنمذجة شبكات النقل أو الشبكات الاجتماعية.


منتجاتنا من المولدات
باعتبارنا موردًا للمولدات، فإننا نقدم مجموعة واسعة من المولدات عالية الجودة لتلبية احتياجاتك من الطاقة. سواء كنت بحاجة إلى مولد كهربائي صغير محمول للأنشطة الخارجية أو مولد طاقة كبير الحجم للاستخدام الصناعي، فلدينا الحل المناسب لك.
ملكنامولد كهرباء 125 كيلو فولت أمبيريعد خيارًا موثوقًا به لمتطلبات الطاقة المتوسطة والكبيرة الحجم. إنه يوفر خرج طاقة مستقر وفعال، مما يجعله مناسبًا للمنشآت الصناعية، ومواقع البناء، والطاقة الاحتياطية في حالات الطوارئ.
إذا كنت تبحث عن مولد يتميز بكفاءة عالية في استهلاك الوقود ومستويات ضوضاء منخفضة، فلدينامولد ديزل بطيء الدورانهو خيار ممتاز. وهو مصمم للعمل بسرعة أبطأ، مما يقلل من تآكل المحرك ويطيل عمره.
بالنسبة لأولئك الذين يحتاجون إلى حل طاقة محمول، لدينامولد متنقل 7 كيلو فولت أمبيرخفيفة الوزن وسهلة النقل. إنه مثالي للتخييم والتخييم والأنشطة الخارجية الأخرى.
تواصل معنا للمشتريات
إذا كنت مهتمًا بمنتجات المولدات الخاصة بنا أو لديك أي أسئلة حول إنشاء الرسم البياني المستوي في Python، فلا تتردد في الاتصال بنا. نحن هنا لنقدم لك أفضل المنتجات والخدمات. يمكن لفريق الخبراء لدينا مساعدتك في اختيار المولد المناسب لاحتياجاتك الخاصة وتقديم الدعم الفني طوال عملية الشراء.
مراجع
- وثائق NetworkX: https://networkx.org/documentation/stable/
- وثائق سكيبي: https://docs.scipy.org/doc/scipy/
- نظرية الرسم البياني: مقدمة، بقلم دوجلاس بي ويست

