กราฟที่ทำให้ DFS และ BFS ประมวลผลโหนดตามลำดับที่แน่นอน


11

สำหรับกราฟบางอันกระบวนการอัลกอริทึมการค้นหา DFS และ BFS ในลำดับเดียวกันโดยมีเงื่อนไขว่าพวกเขาทั้งคู่เริ่มต้นที่โหนดเดียวกัน สองตัวอย่างคือกราฟที่เป็นเส้นทางและกราฟที่มีรูปร่างเป็นรูปดาว (ต้นไม้ที่มีความลึกพร้อมจำนวนลูกโดยพลการ) มีวิธีในการจัดหมวดหมู่กราฟที่ตอบสนองคุณสมบัตินี้หรือไม่?1


6
โปรดทราบว่าในทั้งสองกรณีนี้จะทำงานได้ก็ต่อเมื่อคุณเริ่มต้นที่โหนดที่ระบุ หากคุณเลือกโหนดกลางในเส้นทางที่มีความยาวตัวอย่างเช่นคุณจะได้รับลำดับที่แตกต่างจาก DFS และ BFS กลับมา
templatetypedef

1
มีความเป็นไปได้อื่น ๆ ที่น่าสนใจกว่าดาวหรือเส้นทางหรือไม่? เมื่อมองดูครั้งแรกดูเหมือนว่าหากคุณมีจุดสุดยอดที่มีทั้งพี่น้องและเด็กคุณจะได้รับการสำรวจเส้นทางที่แตกต่างกันทันทีดังนั้นไม่มีจุดสุดยอดมีลูก (นอกเหนือจากราก) และคุณได้ดาวหรือไม่มีจุดยอดมีพี่น้อง และคุณได้รับเส้นทาง ฉันเดาว่ากลุ่มคนใช้งานได้ แต่มันมีทั้งดาวและเส้นทางฝังอยู่
ลุคแมททีสัน

2
@LukeMathieson ฉันกำลังคิดถึงดาวที่มีลูกที่ถนัดที่สุดซึ่งเป็นรากของดาวดวงอื่น ฉันเดาว่ามันก็ใช้ได้เหมือนกัน เรายังสามารถทำคำสั่งทั่วไป: ถ้าตอบสนองคุณสมบัติเมื่อเริ่มต้นการค้นหาที่โหนดv∈Vแล้วจึงไม่เป็นดาวที่มีเด็กขวาสุดvยิ่งไปกว่านั้นถ้าและเป็นไปตามคุณสมบัติและโหนดเป็นสิ่งสุดท้ายที่ประมวลผลในและคือตำแหน่งที่การค้นหาเริ่มต้นในจากนั้นเพิ่มขอบสะพานสร้างกราฟที่ตอบสนองคุณสมบัติ เปลี่ยนโดยยังทำงานผมคิดว่า= v G 1 G 2 v 1 G 1 v 2 G 2 ( v 1 , v 2 ) v 1 v 2G=(V,E)=vG1G2v1G1v2G2(v1,v2)v1v2
saadtaame

2
จุดที่ดีดังนั้นจึงมีองค์ประกอบเรียงลำดับแบบเวียนเกิดซ้ำซึ่งคุณสามารถระบุใบไม้ที่ถูกต้องของกราฟแรกด้วยรากที่สอง
Luke Mathieson

@LukeMathieson ดูเหมือนว่าคุณสามารถแก้ไขกรณีที่โหนดมีพี่น้องและเด็กโดยการเพิ่มขอบระหว่างเด็กและผู้ปกครองของโวลต์นี่คือข้อเสนอของฉัน: ให้กราฟE) , ถ้าเช่นนั้น , จากนั้นทรัพย์สินที่ถือสำหรับGขั้นตอนต่อไปคือการพิสูจน์หรือพิสูจน์ข้อเสนอนี้ v G = ( V , E ) x V y , z , w V ( y , x ) , ( z , y ) , ( x , w ) E ( x , z ) EvvG=(V,E)xVy,z,wV(y,x),(z,y),(x,w)E(x,Z)EG
saadtaame

คำตอบ:


6

สมมติว่า BFS และ dfs ของเรามีกฎที่จะเริ่มต้นจากโหนดที่เฉพาะเจาะจงและในสองทางที่พวกเขาเข้าชมโหนดแรกที่มีระดับต่ำสุด:

DFS-BFS

เริ่มจากโหนดสีดำส่วนใหญ่ด้านซ้ายจากนั้น (BFS และ DFS) จะไปที่โหนดสีแดงส่วนใหญ่ด้านซ้ายจากนั้นพวกเขาจะไปที่โหนดสีดำถัดไปและเพื่อให้ทั่วไปมากขึ้นคุณสามารถเพิ่มเส้นทางบางส่วนระหว่างสามเหลี่ยมหรือเพิ่มดาว หลังจากเสร็จรูปสามเหลี่ยม ...


ถูกต้องภายใต้สมมติฐานของคุณ คุณยกประเด็นที่ดีจริง เราควรระบุว่าโหนดใดที่เพิ่มให้กับระเบียบวาระ (สแต็กหรือคิว) ในลำดับใดเมื่อเผชิญกับตัวเลือก
saadtaame

โปรดจำไว้ว่า LIFO และ FIFO สำหรับการกำหนดตารางเวลาให้ผลตอบแทน DFS และ BFS ตามลำดับเราอาจยืนยันว่าการกำหนดเวลาเช่นนี้ (ซึ่งการกำหนดเวลาอาจไม่ใช่แบบสแต็ก - หรือคิวเหมือน) ไม่ใช่การค้นหาเชิงลึกและกว้าง ในบางกรณีคุณสามารถอธิบายแนวโน้มที่จะมีลักษณะหนึ่งหรืออื่น ๆ
Niel de Beaudrap

1
ฉันคิดว่ามันสามารถนำมาใช้ในแง่ของสแต็คหรือคิว ไม่เปลี่ยนวิธีการถอดสิ่งต่าง ๆ (LIFO หรือ FIFO) เปลี่ยนลำดับการเพิ่มลูก (ในกรณีนี้คือระดับต่ำสุดก่อน)
SamM

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