
Networkit เป็นชุดเครื่องมือโอเพนซอร์ซสำหรับการวิเคราะห์เครือข่ายประสิทธิภาพสูง จุดมุ่งหมายคือการจัดหาเครื่องมือสำหรับการวิเคราะห์เครือข่ายขนาดใหญ่ในขนาดตั้งแต่หลายพันถึงพันล้านขอบ เพื่อจุดประสงค์นี้มันใช้อัลกอริทึมกราฟที่มีประสิทธิภาพซึ่งหลายคนขนานไปกับการใช้สถาปัตยกรรมแบบมัลติคอร์ สิ่งเหล่านี้มีไว้เพื่อคำนวณมาตรการมาตรฐานของการวิเคราะห์เครือข่าย Networkit มุ่งเน้นไปที่ความสามารถในการปรับขนาดและความครอบคลุม Networkit ยังเป็น Testbed สำหรับอัลกอริทึมวิศวกรรมและมีอัลกอริทึมใหม่จากการวิจัยที่เผยแพร่เมื่อเร็ว ๆ นี้ (ดูรายการสิ่งพิมพ์ด้านล่าง)
Networkit เป็นโมดูล Python อัลกอริทึมประสิทธิภาพสูงเขียนใน C ++ และสัมผัสกับ Python ผ่าน 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 เป็นทางเลือก) เพื่อรวบรวม Networkit เป็นไลบรารีสร้างส่วนขยายและคัดลอกไปยังโฟลเดอร์ด้านบน โดยค่าเริ่มต้นเครือข่ายจะถูกสร้างขึ้นด้วยจำนวนคอร์ที่มีอยู่ในโหมดที่เหมาะสม เป็นไปได้ที่จะเพิ่มตัวเลือก -jN จำนวนเธรดที่ใช้สำหรับการรวบรวม
เพื่อให้ได้ภาพรวมและเรียนรู้เกี่ยวกับฟังก์ชั่น/คลาสที่แตกต่างกันของ Networkit ให้ดูที่ส่วนโน้ตบุ๊กแบบโต้ตอบของเราโดยเฉพาะอย่างยิ่งเครือข่าย userguide หมายเหตุ: หากต้องการดูและแก้ไขเอาต์พุตที่คำนวณได้จากสมุดบันทึกขอแนะนำให้ใช้ Jupyter Notebook สิ่งนี้ต้องมีการติดตั้ง NetworkIT ก่อนหน้านี้ คุณควรตรวจสอบว่าก่อนที่จะเริ่มการวิเคราะห์เครือข่ายของคุณ
นอกจากนี้เรายังให้บริการเครื่องผูกของสมุดบันทึกของเรา ในการเข้าถึงบริการนี้คุณสามารถคลิกที่ป้ายที่ด้านบนหรือไปตามลิงค์นี้ ข้อจำกัดความรับผิดชอบ: เนื่องจากการสร้างภาพพื้นฐานใหม่อาจใช้เวลาพอสมควรจนกว่าอินสแตนซ์ของสารยึดเกาะของคุณจะพร้อมสำหรับการใช้งาน
หากคุณต้องการดูสั้น ๆ ว่าการใช้ NetworkIt เป็นอย่างไรตัวอย่างต่อไปนี้จะให้ climpse ที่ ที่นี่เราสร้างกราฟไฮเพอร์โบลิกแบบสุ่มด้วยโหนด 100K และคำนวณชุมชนด้วยวิธี 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
------------------- -----------
ในกรณีที่คุณต้องการทำงานกับ C ++ Core ของ 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
ในการเพิ่มความเร็วในการรวบรวมด้วยเครื่อง Multi -core คุณสามารถผนวก -jX ได้โดยที่ X หมายถึงจำนวนเธรดที่จะรวบรวมด้วย
ย่อหน้านี้อธิบายวิธีการใช้ไลบรารี Core C ++ Networkit ในกรณีที่สร้างขึ้นจากแหล่งที่มา สำหรับวิธีการใช้งานเมื่อติดตั้งผ่านผู้จัดการแพ็คเกจโปรดดูเอกสารอย่างเป็นทางการที่ดีที่สุด (Brew, Conda, Spack)
ในการใช้ไลบรารี NetworkIt ที่รวบรวมก่อนหน้านี้คุณต้องติดตั้งและเชื่อมโยงในขณะที่รวบรวมโครงการของคุณ ใช้คำแนะนำเหล่านี้เพื่อรวบรวมและติดตั้งเครือข่ายใน /usr/local :
cmake ..
make -jX install
เมื่อติดตั้งเครือข่ายแล้วคุณสามารถใช้คำสั่งรวมในแอปพลิเคชัน C ++-แอปพลิเคชันดังนี้:
#include <networkit/graph/Graph.hpp>
คุณสามารถรวบรวมแหล่งที่มาของคุณได้ดังนี้:
g++ my_file.cpp -lnetworkit
การสร้างและเรียกใช้การทดสอบหน่วยเครือข่ายไม่ได้บังคับ อย่างไรก็ตามในฐานะนักพัฒนาคุณอาจต้องการเขียนและเรียกใช้การทดสอบหน่วยสำหรับรหัสของคุณหรือหากคุณพบปัญหาใด ๆ กับ NetworkIT คุณอาจต้องการตรวจสอบว่า NetworkIT ทำงานอย่างถูกต้องหรือไม่ การทดสอบหน่วยสามารถเรียกใช้จากโคลนหรือสำเนาของที่เก็บเท่านั้นและไม่ได้มาจากการติดตั้ง PIP ในการเรียกใช้การทดสอบหน่วยคุณต้องรวบรวมพวกเขาก่อน ทำได้โดยการตั้งค่า CMake NETWORKI_BUILD_TESTS Flag เป็น 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
sanitizers เป็นเครื่องมือที่ยอดเยี่ยมในการดีบักรหัสของคุณ NetworkIT ให้ธง CMake เพิ่มเติมเพื่อเปิดใช้งานที่อยู่การรั่วไหลและ sanitizers พฤติกรรมที่ไม่ได้กำหนด ในการรวบรวมรหัสของคุณด้วย sanitizers ให้ตั้งค่า CMAKE NETWORKIT_WITH_SANITIZERS เป็น address หรือ leak :
cmake -DNETWORKIT_WITH_SANITIZERS=leak ..
โดยการตั้งค่าสถานะนี้เป็น address รหัสของคุณจะถูกรวบรวมด้วย address และ sanitizers undefined การตั้งค่าให้ leak ยังเพิ่มการฆ่าเชื้อ leak
เอกสารเวอร์ชันล่าสุดสามารถพบได้ทางออนไลน์
สำหรับคำถามเกี่ยวกับ Networkit ให้ดูที่ปัญหาของเราและดูว่ามีการสนทนาแบบเปิดอยู่แล้วหรือไม่ หากไม่ลังเลที่จะเปิดปัญหาใหม่ หากต้องการอัปเดตเกี่ยวกับโครงการนี้สมัครรับจดหมายจดหมายของเรา
เราสนับสนุนให้มีส่วนร่วมในซอร์สโค้ดเครือข่าย ดูคู่มือการพัฒนาสำหรับคำแนะนำ สำหรับการสนับสนุนกรุณาติดต่อรายชื่อผู้รับจดหมาย
รายชื่อผู้สนับสนุนสามารถพบได้ในหน้าเครดิตเว็บไซต์เครือข่าย
แหล่งที่มาของโปรแกรมรวมถึง:
ซอร์สโค้ดของโปรแกรมนี้ถูกเผยแพร่ภายใต้ใบอนุญาต MIT เราขอให้คุณอ้างอิงเราหากคุณใช้รหัสนี้ในโครงการของคุณ (CF ส่วนสิ่งพิมพ์ด้านล่างและโดยเฉพาะอย่างยิ่งรายงานทางเทคนิค) ข้อเสนอแนะก็ยินดีต้อนรับ
หน้า Publications Networkit แสดงรายการสิ่งพิมพ์บน NetworkIt เป็นชุดเครื่องมือบนอัลกอริทึมที่มีอยู่ใน NetworkIt และเพียงแค่ใช้ NetworkIt เราขอให้คุณอ้างถึงสิ่งที่เหมาะสมหากคุณพบว่า Networkit มีประโยชน์สำหรับการวิจัยของคุณเอง