การตรวจสอบความสลับซับซ้อนของ digraph ไม่ง่ายกว่า (ในแง่ของความซับซ้อนเชิงซีโมติก) หรือไม่ เรารู้ขอบเขตต่ำกว่าดีกว่าไหม การตรวจสอบว่า digraph เป็นสกรรมกริยาหรือไม่?
การตรวจสอบความสลับซับซ้อนของ digraph ไม่ง่ายกว่า (ในแง่ของความซับซ้อนเชิงซีโมติก) หรือไม่ เรารู้ขอบเขตต่ำกว่าดีกว่าไหม การตรวจสอบว่า digraph เป็นสกรรมกริยาหรือไม่?
คำตอบ:
ด้านล่างฉันจะแสดงต่อไปนี้: ถ้าคุณมี O () อัลกอริธึมเวลาสำหรับการตรวจสอบว่ากราฟมีการถ่ายทอดให้หรือไม่ แล้วคุณมี O () อัลกอริธึมเวลาสำหรับการตรวจจับสามเหลี่ยมใน กราฟโหนดและด้วยเหตุนี้ (โดยกระดาษจาก FOCS'10 ) คุณจะมี O () อัลกอริธึมเวลาสำหรับการคูณบูลีนสองรายการ เมทริกซ์และด้วยเหตุนี้จากFischer และ Meyer จากยุค 70นี่ก็หมายถึง O () อัลกอริทึมเวลาสำหรับการปิดสกรรมกริยา
สมมติว่าคุณต้องการตรวจจับสามเหลี่ยมใน ปม . ตอนนี้เราสามารถสร้างกราฟต่อไปนี้. คือไตรภาคีที่มีฉากกั้น บน แต่ละโหนด ที่นี่แต่ละโหนด ของ มีสำเนา ในส่วนต่างๆ . สำหรับแต่ละขอบ ของ เพิ่มขอบกำกับ และ . สำหรับแต่ละ nonedge ของ เพิ่มขอบกำกับ .
ก่อนอื่นถ้า มีรูปสามเหลี่ยม จากนั้น ไม่ใช่สกรรมกริยา นี่คือตั้งแต่ขอบ อยู่ใน แต่ ไม่ใช่. ประการที่สองถ้า ไม่ใช่สกรรมกริยาจากนั้นจะต้องมีเส้นทางบางเส้นทางจากบางโหนด ถึงบางโหนด ใน ดังนั้น ไม่ใช่ขอบชี้นำ . อย่างไรก็ตามเส้นทางที่ยาวที่สุดใน มี ขอบและเส้นทางดังกล่าวจะต้องอยู่ในรูปแบบ และ ไม่ได้อยู่ใน ดังนั้น รูปสามเหลี่ยมใน .
ดูเหมือนว่า เป็นขอบเขตล่างที่รู้จักกันเป็นอย่างดีเนื่องจากขอบเขตล่างหมายถึงขอบเขตล่างสำหรับการคูณเมทริกแบบบูล เรารู้ว่าสามารถตรวจสอบความไวได้โดยใช้การคูณเมทริกแบบบูลหนึ่งอันคือ เป็นสกรรมกริยาถ้าและเพียงถ้า .
การพิจารณาว่า DAG นั้นมีความสลับซับซ้อนหรือไม่นั้นยากที่จะตัดสินใจว่า digraph ทั่วไปเป็นสกรรมกริยา (ซึ่งนำเรากลับไปที่คำถามก่อนหน้านี้ของคุณ :))
สมมติว่าคุณมีอัลกอริทึมทำงานในเวลา สำหรับการตัดสินใจว่า DAG เป็นสกรรมกริยาหรือไม่
รับกราฟกำกับ คุณสามารถใช้อัลกอริทึมแบบสุ่มต่อไปนี้เพื่อตัดสินใจว่า เป็นสกรรมกริยาในเวลา และความน่าจะเป็นข้อผิดพลาด :
1. for $O(\log{\frac{1}{\delta}})$ iterations:
1.1. Compute a random permutation on $V$. Denote the result by $<v_1,v_2,...,v_n>$.
1.2. Set $G'=(V,E\cup \{(v_i,v_j)|i<j\})$ (i.e. compute a random acyclic orientation).
1.3. If $G'$ (which is acyclic) is not transitive return false.
2. return true.
ตอนนี้มันชัดเจนว่าถ้า เป็นสกรรมกริยาอัลกอริทึมนี้กลับมาจริง
ทีนี้สมมติ ไม่ใช่สกรรมกริยา ปล่อย ดังนั้น (จะต้องมีขอบเช่น ไม่ใช่สกรรมกริยา) ความน่าจะเป็นที่ คือ ดังนั้นในแต่ละการวนซ้ำความน่าจะเป็นที่อัลกอริทึมจะคิด ไม่ได้เป็นสกรรมกริยา และหลังจากนั้น ซ้ำความน่าจะเป็นความล้มเหลวได้มากที่สุด .
ฉันคิดว่านี่น่าจะเป็นไปได้ในเวลาเชิงเส้นคือ ที่ไหน คือจำนวนของจุดยอดและ จำนวนขอบ อาจเป็นการปรับรูปแบบการส่งผ่านกราฟบางอย่างให้เป็นการตั้งค่าที่กำกับ จุดเริ่มต้นอาจเป็นLexBFS / LexDFSอธิบายไว้ที่นี่ ; สำหรับกราฟกำกับดูเหมือนว่าเราควรใช้การจัดเรียงทอพอโลยีมากกว่า DFS ดังนั้นอาจเป็นไปได้ที่อัลกอริทึมLexTSAจะค้นพบได้หรือไม่
เกี่ยวกับคำตอบก่อนหน้านี่เป็นวิธีง่ายๆในการกำหนดอัลกอริทึมดังกล่าว กำหนดให้แต่ละจุดสุดยอด ดัชนี เริ่มต้นไปที่ . แต่ละ, ปล่อย แสดงดัชนีหลายชุดของเพื่อนบ้านของมัน เราจำลองการเรียงลำดับโทโพโลยีโดยการบำรุงรักษาชุดของจุดยอดที่ยังไม่ได้สำรวจซึ่งเริ่มต้นเป็นทั้งชุด ในแต่ละขั้นตอนเราทำดังต่อไปนี้:
เลือกจุดสุดยอด มัลติเซ็ตที่มี น้อยที่สุด (ตามลำดับชุดมัลติ);
ปรับปรุง ไปที่ตัวนับลูปปัจจุบันและนำออก จาก .
อัลกอริทึมนี้สามารถใช้กับปัญหาของคุณหรือสำหรับแอปพลิเคชันอื่นได้หรือไม่