ปัญหานี้เป็นปัญหายาก เพื่อแสดงสิ่งนี้ฉันจะแก้ไขปัญหานี้ (การเพิ่มประสิทธิภาพ) เป็นปัญหาการตัดสินใจก่อน แล้วฉัน reformulate ปัญหาที่เป็นหนึ่งเทียบเท่าจากที่ที่มันค่อนข้างง่ายที่จะได้รับการลดลงจากที่kปัญหา -coloring ซึ่งเป็น NP-ยากสำหรับการใด ๆk ≥ 3kk≥3
การกำหนดปัญหาสั้น ๆ มีดังต่อไปนี้:
เมื่อมีบุคคลnคนและกราฟGที่เข้ารหัสความสัมพันธ์ 'การให้ของขวัญ' พบจำนวนการเดินทางขั้นต่ำที่ต้องการเพื่อให้ของขวัญทั้งหมดสามารถซื้อได้โดยไม่ทำลายความประหลาดใจใด ๆnG
อย่างไรก็ตามนี่คือปัญหาการปรับให้เหมาะสม โดยปกติคลาส NP จะถูกกำหนดไว้สำหรับปัญหาการจัดเรียง ตัวแปรการตัดสินใจของสิ่งนี้คือ:
ได้รับnคนและกราฟGที่ encodes ของพวกเขา 'ของขวัญ' ความสัมพันธ์และเป็นจำนวนเต็มTคือการทำให้มากที่สุดทีทริปเพียงพอที่จะซื้อของขวัญทั้งหมดโดยไม่ทำลายความผิดใด ๆnGtt
ฉันกำหนดปัญหาในการค้นหาt -multicoloring ที่เหมาะสมtของกราฟบางกราฟG = ( V , E )เป็นการหาฟังก์ชั่นมัลติคัลเลอร์c : V → P ( C )ซึ่งเหมาะสมโดยที่Cคือชุดของสี ' t ' ( เช่น| C | = t ) และP ( C )เป็นชุดพลังงานของC (เช่นชุดของเซตย่อยทั้งหมดของCG=(V,E) c:V→P(C)Ct|C|=tP(C)CC) ฟังก์ชั่นหลากสีเป็นที่เหมาะสมและถ้าหากทุกขอบ( U → วี) ∈ Eเรามีที่ค( U ) ⊈ ค( วี )(u→v)∈Ec(u)⊈c(v)
ฉันอ้างว่าปัญหาการเดินทางช็อปปิ้งนั้นเทียบเท่ากับปัญหาการตัดสินใจว่ามีกราฟกำกับตัว -multicoloringttในกราฟเดียวกัน GG
หลักฐาน : ถ้าเรามีผู้กำกับที่เหมาะสม -multicoloringสำหรับที่เราเปลี่ยนชื่อสีเช่นที่แล้วพิจารณาลำดับของเดินทางซึ่งเป็น เวอร์เท็กซ์ไปช็อปปิ้งในการเดินทางหากเท่านั้น แล้วสำหรับทุกขอบเรามีว่ามีการเดินทางดังกล่าวว่าและตั้งแต่(V) ดังนั้นทริปt c c ( u ) ⊈ c ( v ) T itcG C = { 1 , ... , T } เสื้อT 1 , ... , ทีทีวีทีฉันฉัน∈ ค( วี) ( U → วี) ∈ E T ฉันมึง∈ T ฉันวี∉ T ฉันGC={1,…,t}tT1,…,TtvTii∈c(v)(u→v)∈ETiu∈Tiv∉Tic(u)⊈c(v)Ti เพียงพอที่จะซื้อของขวัญทั้งหมด
หากเรามีลำดับการเดินทางจากนั้นสร้างฟังก์ชันหลายสีบนชุดสีเช่นนั้น\} จากนั้นสำหรับทุก ๆ ขอบมีการเดินทางเช่นนั้นที่และ (เนื่องจากสามารถซื้อของขวัญสำหรับในการเดินทาง) ซึ่งหมายความว่าและดังนั้น(V) T 1 , … , T t c C = { 1 , … , t } c ( u ) = { i ∈ N | ยู∈ T ฉัน } ( U → วี) ∈ E T ฉันมึง∈ T ฉันวี∉ T ฉัน U v ฉัน∈ ค( U ) ฉัน∉ ค(T1,…,TtcC={1,…,t}c(u)={i∈N|u∈Ti}(u→v)∈ETiu∈Tiv∉Tiuvi∈c(u)v ) c ( u ) ⊈ c ( v ) ◻i∉c(v)c(u)⊈c(v)□
การค้นหา -multicoloring ที่เหมาะสมนั้นเป็นวิธีการแปลกใหม่ของกรณีเฉพาะของ -coloring ดังนั้นฉันสามารถแสดงการลดเวลาแบบพหุนามจาก rfloorปัญหาการเปลี่ยนสี: เนื่องจากกราฟที่ไม่ได้บอกทิศทางอันดับแรกเปลี่ยนกราฟนี้เป็น กำกับกราฟเช่นนั้นและถ้าหากหรือ ( กล่าวอีกนัยหนึ่งเราเปลี่ยนขอบที่ไม่ได้บอกทิศทางเป็นสองขอบที่กำกับ)t k ( ttk⌊ t / 2 ⌋ ) G′=(V′,E′)G=(V,E)V=V′(u→v)∈E(u,v)∈E′(v,u)∈E′(t⌊t/2⌋)G′=(V′,E′)G=(V,E)V=V′(u→v)∈E(u,v)∈E′(v,u)∈E′
พิจารณาชุดใหญ่ที่สุดเช่นว่ามีอยู่ไม่มี ,เช่นว่าเซตข ชุดย่อยทั้งหมดของมีขนาดโดยที่เป็นชุดดังกล่าว ดังนั้นขนาดสูงสุดของส่วนย่อยดังกล่าวเป็นrfloor}K ⊂ P ( C ) a , b ∈ K a ≠ b a ⊂ b C ⌊ t / 2 ⌋ t = | C | ( tK⊂P(C)a,b∈Ka≠ba⊂bC⌊t/2⌋t=|C|⌊ t / 2 ⌋ )(t⌊t/2⌋)
ถ้ามี -multicoloring ที่เหมาะสมสำหรับดังนั้นจะมีการระบายสีที่เหมาะสมซึ่งใช้ไม่เกินองค์ประกอบที่ไม่เท่ากันจาก (*) ดังนั้นนี่คือ rfloor -coloring สำหรับต้องt G ( ttG⌊ t / 2 ⌋ ) P(C) ( t(t⌊t/2⌋) P(C) ⌊ t / 2 ⌋ ) G′(t⌊t/2⌋)G′
ถ้าเหมาะสม rfloorมีสีสำหรับแล้วก็มีชุด ,เช่นนั้นและมีไม่ได้อยู่ ๆ ,เช่นว่าเซตข ดังนั้นมี -multicoloring กำกับอย่างเหมาะสม( t⌊ t / 2 ⌋ ) G′K⊂P(C)| C| =t| K| ≥ ( t(t⌊t/2⌋)G′K⊂P(C)|C|=t⌊ t / 2 ⌋ ) a,b∈Ka≠ba⊂bGt|K|≥(t⌊t/2⌋)a,b∈Ka≠ba⊂bGt
ดังนั้นนี่คือการลดเวลาพหุนามที่ถูกต้องจาก rfloor - การแก้ไขปัญหาการช็อปปิ้งในปัจจุบันที่มีการเดินทางซึ่งหมายถึงปัญหาการช็อปปิ้งในปัจจุบันคือ NP-hard หมายเหตุว่าปัญหาการช้อปปิ้งในปัจจุบันคือรุ่น NP-สมบูรณ์เนื่องจากเราสามารถตรวจสอบได้ง่ายถ้าเป็นรายการที่ได้รับของที่มากที่สุดทริปช่วยให้เราสามารถที่จะซื้อของขวัญทั้งหมดโดยไม่ทำลายความผิด( t⌊ t / 2 ⌋ ) tt(t⌊t/2⌋)tt
(*): หากมีหลายสีใช้ชุดสีมากกว่าชุดสีที่ไม่ใช่ 'เซตย่อย' สูงสุดหลายสีเราสามารถ 'เปลี่ยนชื่อ'เช่นนั้นได้ มันเป็น superset ของ * ยังคงเหมาะสมเนื่องจากไม่มีองค์ประกอบจากอยู่ติดกับองค์ประกอบที่แตกต่างจากเป็นปัญหาและไม่มีชุดสีใดติดกันซึ่งกันและกัน เดิม{C} ดังนั้นไม่ต้องสูญเสียของทั่วไปเราสามารถสรุปได้{C}C C ∗ C C ∗ C C ∗ C ∗ C C ∗ ⊂ CCC∗CC∗CC∗C∗CC∗⊂C
จากนั้นให้สังเกตว่า 'การเปลี่ยนชื่อ'เป็นชุดย่อยของไม่ทำลายขอบระหว่างโหนดของชุดสีเนื่องจากไม่มีองค์ประกอบที่เป็นส่วนย่อยของอีก สิ่งเดียวที่เหลือคือเพื่อให้แน่ใจว่าขอบระหว่างและไม่ทำลาย 'ระบายสี'C ∖ C ∗ C ∗ C ∖ C ∗ C ∗ C ∖ C ∗ C ∗C∖C∗C∗C∖C∗C∗C∖C∗C∗
พิจารณาความสัมพันธ์ต่อไปกับสีชุดใน : สองชุดสีและมีการเชื่อมต่อและถ้าหากมีอยู่คู่ของจุดดังกล่าวว่ามีสีตั้งและสีชุดและE ความสัมพันธ์นี้สามารถแสดงโดยไม่มีทิศทางกราฟr)R C ∪ C * B , ขขB ( , ข) ∈ E G = ( C ∪ C * , R )RC∪C∗ABa,baAbB(a,b)∈EG=(C∪C∗,R)
อันดับแรกเราสามารถ 'ลด'โดยแทนที่คู่ใด ๆ ที่ไม่มีขอบในด้วยชุดสีเดียว สียังคงเหมาะสมเนื่องจากการเปลี่ยนชุดสีสองชุดที่ไม่ได้อยู่ติดกันเป็นสีเดียวกันจะไม่แนะนำขอบที่ไม่ถูกต้องใด ๆ ด้วยเหตุนี้เราจึงได้ลดเป็นกราฟสมบูรณ์C ∖ C ∗ G GC∖C∗GG
ซึ่งหมายความว่าหากมีจำนวนชุดสีน้อยกว่าหรือเท่ากับสีที่ต้องการมีอยู่ มิฉะนั้นจะไม่มีการระบายสีหลายสีที่เหมาะสมเลยเนื่องจากเป็นชุดที่ไม่ใช่ชุดย่อยที่ใหญ่ที่สุดดังนั้นเราจึงไม่สามารถระบายสีกลุ่มนี้ได้ ดังนั้นจึงจำเป็นต้องมีหลายสีG | C ∗ | C ∗G|C∗|C∗
ในฐานะที่เป็นกราฟที่สมบูรณ์แบบบนโหนดเป็นสีสามารถและถ้าหากเรามีอย่างน้อยสีเรามีคนสามารถไปช้อปปิ้งของขวัญสำหรับแต่ละอื่น ๆ ในทริปและถ้าหากn ซึ่งหมายความว่าหากการเดินทางเพียงครั้งก็เพียงพอแล้ว หากมีของกำนัลให้ซื้อน้อยลงไม่จำเป็นต้องเดินทางเพิ่มดังนั้นนี่จึงเป็นข้อ จำกัด ทั่วไปสำหรับทุกโซลูชันn K n n n t ( tnKnnnt⌊ t / 2 ⌋ ) ≥nn≤1287016(t⌊t/2⌋)≥nn≤1287016
ด้านล่างนี้คือ 'คำตอบ' ก่อนหน้าของฉันซึ่งให้อัลกอริทึมแบบฮิวริสติกซึ่งไม่รับประกันว่าจะได้รับประโยชน์สูงสุด แต่สามารถคำนวณได้ในเวลาพหุนาม
วิธีการกำหนดปัญหานี้ก็คือการหาที่ครอบคลุมของกราฟสองส่วนในพาร์ทิชันสำหรับบางกราฟกับโหนด เช่นปริมาณพาร์ติชั่น (เช่นการเดินทาง), ที่นี่ , น้อยที่สุดC = { ( S 1 , T 1 ) , … , ( S m , T m ) } ( S i , T i ) G n mC={(S1,T1),…,(Sm,Tm)}(Si,Ti)Gnm
ขั้นแรกให้สังเกตบางส่วนมาจากคำตอบอื่น ๆ :
- กลยุทธ์โลภที่เราเลือกด้วยกราฟ bipartite ที่ปริมาณของขอบที่เหมือนกันกับคือสูงสุดไม่นำไปสู่การแก้ปัญหาที่ดีที่สุด (ตัวอย่างเคาน์เตอร์ที่แข็งแกร่งคือกราฟเต็มรูปแบบที่มีโหนด เมื่อกลยุทธ์นี้ล้มเหลวไม่ว่าจะเลือกกราฟ bipartite สูงสุดเท่าใดก็ตาม)( S i , T i ) G 6(Si,Ti)G6
- กลยุทธ์โลภไม่เหมาะสมที่สุดสำหรับกราฟ acyclic ตามอำเภอใจพิจารณากราฟต่อไปนี้:
ทั้งสำหรับและกราฟ bipartite ลบขอบ แต่เพียงเหมาะสมที่สุดS i = { 3 , 5 , 6 } S i = { 1 , 3 , 6 } 4 { 3 , 5 , 6 }Si={3,5,6}Si={1,3,6}4{3,5,6}
- อัลกอริทึมโลภที่เหมาะสมที่สุดไม่สามารถเลือกขนาดของพาร์ติชันที่เลือกตามจำนวนรอบ ( ไม่ว่าขนาดใด ) ลบโดยพาร์ติชัน หากต้องการดูนี้พิจารณากราฟที่มีโหนดที่มีเป็นหนึ่งในวงจรของโหนดและโหนดในวงจรทุกคนได้ขอบขาออกเพิ่มเติมต่อโหนดเพิ่มเติมซึ่งมีขอบขาออก (ดูรูปด้านล่างนี้ ตัวอย่างที่ ) ตัวเลือกโลภที่ต้องการเพิ่มจำนวนของขอบบนวงรอบความยาวจะส่งจุดยอดทั้งหมดในรอบในการเดินทางครั้งแรก นี่เป็นสิ่งที่ไม่ดีเนื่องจากมันไม่ได้ลบขอบใด ๆ ของวัฏจักรออกและไม่สนใจn + 2 n 2 2 , B n = 4 n , B , Bn+2n22A,Bn=4nA,Bและการลบขอบทั้งหมดออกจากวงจรจะเป็นการลบขอบทั้งหมดไปยังเช่นกัน ดังนั้นตัวเลือกโลภที่ต้องการขนาดของพาร์ติชันมากกว่าการลบรอบจึงไม่เหมาะสมA,B
ตามข้อสังเกตเหล่านี้ผมเสนอทางเลือกที่โลภดังต่อไปนี้: เลือกดังกล่าวว่าปริมาณของรอบที่การเดินทางครั้งนี้ 'ลบ' จากเป็นสูงสุดและในกรณีของความสัมพันธ์ให้เลือกพาร์ทิชันที่มีการทับซ้อนกันสูงสุดกับหมู่ พวกเขา (เช่นดูที่ขอบไม่ได้อยู่ในรอบ)( S i , T i ) G G(Si,Ti)GG
เนื่องจากอัลกอริทึมนี้ไม่แตกต่างจากกลยุทธ์โลภ 'พื้นฐาน' ในกราฟ acyclic (ลบจำนวนสูงสุดของขอบในทุกการเดินทาง) ดังนั้นอัลกอริทึมโลภนี้จึงไม่เหมาะสม อย่างไรก็ตามสัญชาตญาณของการลบรอบยังคงเหมาะสมและเป็นการปรับปรุงกลยุทธ์โลภพื้นฐานดังนั้นจึงอาจเป็นวิธีแก้ปัญหาที่เหมาะสม