รับรายการแบบขนานในการแก้ปัญหาการพึ่งพา


13

ฉันได้จัดเรียงทอพอโลยีตามบทความ Wikipediaซึ่งฉันใช้สำหรับการแก้ปัญหาการพึ่งพา แต่มันจะส่งกลับรายการเชิงเส้น อัลกอริทึมชนิดใดที่ฉันสามารถใช้เพื่อค้นหาเส้นทางที่เป็นอิสระ


1
วิธีหนึ่งในการแก้ไขปัญหานี้คือการสร้างแบบจำลองโหนดในกราฟในฐานะนักแสดงและให้ห้องสมุดนักแสดงบางคนดูแลการสั่งซื้อ
svick

คำตอบ:


16

ฉันคิดว่าขอบหมายความว่ามึงจะต้องมีการดำเนินการก่อนที่โวลต์ หากไม่ใช่กรณีนี้ให้หมุนรอบขอบทั้งหมด ฉันยังสมมติว่าคุณสนใจเส้นทางน้อยกว่า (สิ่งเหล่านั้นได้รับจาก DAG) กว่าในกลยุทธ์การดำเนินการที่ดีที่ได้รับการอ้างอิง(u,v)uv

SiG=(V,E)

S0={vVuV.(u,v)E}Si+1={vVuV.(u,v)Euk=0iSk}

k

for i=0 to k
  parallel foreach T in S_k
    execute T

S0

parallel foreach T in S_0
  recursive_execute T

ที่ไหน

recursive_execute T {
  atomic { if T.count++ < T.indeg then return }
  execute T
  parallel foreach T' in T.succ
    recursive_execute T'
}

และT.countเป็นตัวนับจำนวนอย่างง่ายซึ่งถือไว้ก่อนหน้าTซึ่งมีการดำเนินการแล้วT.indegจำนวนของตัวประมวลผลล่วงหน้าและT.succชุดของผู้สืบทอด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.