
Networkit هو مجموعة أدوات مفتوحة المصدر لتحليل الشبكة عالي الأداء. هدفها هو توفير أدوات لتحليل الشبكات الكبيرة في الحجم من الآلاف إلى مليارات الحواف. لهذا الغرض ، يقوم بتنفيذ خوارزميات الرسم البياني الفعالة ، وكثير منها موازية لاستخدام البنية متعددة الأوساط. هذه تهدف إلى حساب المقاييس القياسية لتحليل الشبكة. يركز Networkit على قابلية التوسع والشمولية. Networkit هي أيضًا اختبار لهندسة الخوارزمية وتحتوي على خوارزميات جديدة من الأبحاث المنشورة مؤخرًا (انظر قائمة المنشورات أدناه).
Networkit هي وحدة بيثون. تتم كتابة خوارزميات عالية الأداء في C ++ وتعرض للبيثون عبر Cython Toolchain. يمنحنا Python بدورها القدرة على العمل بشكل تفاعلي وبيئة غنية من الأدوات لتحليل البيانات والحوسبة العلمية. علاوة على ذلك ، يمكن بناء نواة Networkit واستخدامها كمكتبة أصلية إذا لزم الأمر.
ستحتاج إلى البرنامج التالي لتثبيت Networkit كحزمة Python:
apt-get install python3-devdnf install python3-develpip3 install cmake )pip3 install cython ) من أجل استخدام NetworkIt ، يمكنك إما تثبيته عبر مديري الحزم أو إنشاء وحدة Python من المصدر.
على الرغم من أن الإصدار الأحدث متاح بشكل عام لجميع مديري الحزم ، فإن عدد الإصدارات القديمة القابلة للتنزيل يختلف.
pip3 install [--user] networkit
conda config --add channels conda-forge
conda install networkit [-c conda-forge]
brew install networkit
spack install py-networkit
يمكن العثور هنا على المزيد من المعلومات الخاصة بالنظام حول كيفية تثبيت Networkit على Linux و MacOs (كل من Intel و M1) و Windows-Systems.
git clone https://github.com/networkit/networkit networkit
cd networkit
python3 setup.py build_ext [-jX]
pip3 install -e .
سيقوم البرنامج النصي بالاتصال بـ cmake و ninja ( make as Wardback) لتجميع NetworkIt كمكتبة ، وإنشاء ملحقات ونسخها إلى المجلد الأعلى. بشكل افتراضي ، سيتم بناء NetworkIt مع كمية النوى المتاحة في الوضع الأمثل. من الممكن إضافة الخيار -jN عدد مؤشرات الترابط المستخدمة للتجميع.
للحصول على نظرة عامة ومعرفة وظائف/فئات NetworkIt المختلفة ، إلقاء نظرة على مقاطعنا التفاعلية ، وخاصة Userguide Networkit. ملاحظة: لعرض وتحرير الإخراج المحسوب من دفاتر الملاحظات ، يوصى باستخدام دفتر Jupyter Notebook. هذا يتطلب التثبيت السابق لشبكة NetworkIt. يجب عليك التحقق من ذلك قبل البدء في العمل على تحليل الشبكة.
نحن نقدم أيضًا موثقًا من أجهزة الكمبيوتر المحمولة الخاصة بنا. للوصول إلى هذه الخدمة ، يمكنك إما النقر على الشارة في الأعلى أو متابعة هذا الرابط. إخلاء المسئولية: نظرًا لإعادة بناء الصورة الأساسية ، قد يستغرق الأمر بعض الوقت حتى يصبح مثيل الموثق جاهزًا للاستخدام.
إذا كنت تريد فقط أن ترى باختصار كيفية استخدام NetworkIt - يوفر المثال التالي climpse في ذلك. هنا ننشئ رسمًا بيانيًا زائديًا عشوائيًا مع 100 ألف عقد وحساب مجتمعاتها باستخدام طريقة PLM:
>>> import networkit as nk
>>> g = nk.generators.HyperbolicGenerator(1e5).generate()
>>> communities = nk.community.detectCommunities(g, inspect=True)
PLM(balanced,pc,turbo) detected communities in 0.14577102661132812 [s]
solution properties:
------------------- -----------
# communities 4536
min community size 1
max community size 2790
avg. community size 22.0459
modularity 0.987243
------------------- -----------
في حال كنت ترغب فقط في العمل مع CORN من Networkit ، يمكنك إما تثبيته عبر مديري الحزم أو إنشاءه من المصدر.
conda config --add channels conda-forge
conda install libnetworkit [-c conda-forge]
brew install libnetworkit
spack install libnetworkit
نوصي Cmake ونظام الإنشاء المفضل لديك لبناء جزء C ++ من NetworkIt.
يوضح الوصف التالي كيفية استخدام Cmake من أجل إنشاء C ++ Core فقط:
يجب عليك أولاً إنشاء وتغيير دليل البناء: (في هذه الحالة المسماة build )
mkdir build
cd build
ثم اتصل بـ Cmake لإنشاء ملفات لنظام إنشاء make ، تحديد دليل ملف CMakeLists.txt الجذر (على سبيل المثال ، .. ). بعد هذا ، يتم استدعاء make لبدء عملية الإنشاء:
cmake ..
make -jX
لتسريع التجميع من خلال إنشاء جهاز متعدد النواة ، يمكنك إلحاق -jX حيث يشير X إلى عدد المواضيع التي يجب تجميعها معها.
تشرح هذه الفقرة كيفية استخدام مكتبة Networkit Core C ++ في حالة إنشائها من المصدر. لكيفية استخدامه عند تثبيته عبر مديري الحزم ، أشير إلى أفضل الرجوع إلى الوثائق الرسمية (Brew ، Conda ، Spack).
من أجل استخدام مكتبة NetworkIt المترجمة السابقة ، تحتاج إلى تثبيتها ، وربطها أثناء تجميع مشروعك. استخدم هذه التعليمات لتجميع وتثبيت Networkit في /usr/local :
cmake ..
make -jX install
بمجرد تثبيت NetworkIt ، يمكنك استخدام تضمين التوجيهات في التطبيق C ++ الخاص بك على النحو التالي:
#include <networkit/graph/Graph.hpp>
يمكنك تجميع مصدرك على النحو التالي:
g++ my_file.cpp -lnetworkit
إن بناء وتشغيل اختبارات وحدة الشبكة ليس إلزاميًا. ومع ذلك ، بصفتك مطورًا ، قد ترغب في كتابة وتشغيل اختبارات الوحدة للرمز الخاص بك ، أو إذا واجهت أي مشكلات مع NetworkIt ، فقد ترغب في التحقق مما إذا كانت NetworkIt تعمل بشكل صحيح. لا يمكن تشغيل اختبارات الوحدة إلا من استنساخ أو نسخة من المستودع وليس من تثبيت PIP. من أجل إجراء اختبارات الوحدة ، تحتاج إلى تجميعها أولاً. يتم ذلك عن طريق تعيين علامة CMake NETWORKI_BUILD_TESTS ON :
cmake -DNETWORKIT_BUILD_TESTS=ON ..
يتم تنفيذ اختبارات الوحدة باستخدام وحدات الماكرو GTEST مثل TEST_F(CentralityGTest, testBetweennessCentrality) . يمكن تنفيذ اختبارات واحدة مع:
./networkit_tests --gtest_filter=CentralityGTest.testBetweennessCentrality
بالإضافة إلى ذلك ، يمكن للمرء تحديد مستوى مخرجات السجلات عن طريق إضافة --loglevel <log_level> ؛ مستويات السجل المدعومة هي: TRACE ، DEBUG ، INFO ، WARN ، ERROR ، FATAL .
المطهرات هي أدوات رائعة لتصحيح الكود الخاص بك. يوفر NetworkIT أعلام CMAKE إضافية لتمكين العنوان ، والتسرب ، ومطهرات السلوك غير المحددة. لتجميع الكود الخاص بك مع المطهرات ، قم بتعيين cmake NETWORKIT_WITH_SANITIZERS على address أو leak :
cmake -DNETWORKIT_WITH_SANITIZERS=leak ..
من خلال تعيين هذه العلامة على address ، سيتم تجميع الكود الخاص بك مع address والمطهرات undefined . إعداده leak أيضا يضيف معقم leak .
يمكن العثور على أحدث إصدار من الوثائق عبر الإنترنت.
بالنسبة للأسئلة المتعلقة بـ NetworkIt ، ألق نظرة على قسم القضايا لدينا ومعرفة ما إذا كان هناك بالفعل مناقشة مفتوحة. إذا لم تكن هناك حرية في فتح مشكلة جديدة. للبقاء على اطلاع دائم حول هذا المشروع ، اشترك في قائمتنا البريدية.
نحن نشجع المساهمات في رمز مصدر Networkit. انظر دليل التطوير للتعليمات. للحصول على الدعم ، يرجى الاتصال بالقائمة البريدية.
يمكن العثور على قائمة المساهمين على صفحة اعتمادات موقع الويب.
يشمل مصدر البرنامج:
يتم إصدار رمز المصدر لهذا البرنامج ضمن رخصة معهد ماساتشوستس للتكنولوجيا. نطلب منك الاستشهاد بنا إذا كنت تستخدم هذا الرمز في مشروعك (راجع قسم المنشورات أدناه وخاصة التقرير الفني). ردود الفعل موضع ترحيب أيضا.
تسرد صفحة منشورات NetworkIT المنشورات على NetworkIt كمجموعة أدوات ، على الخوارزميات المتوفرة في NetworkIt ، وببساطة استخدام NetworkIt. نطلب منك أن تستشهد بالألواح المناسبة إذا وجدت NetworkIt مفيدة لبحثك الخاص.