คำถามติดแท็ก ds.algorithms

คำถามเกี่ยวกับคำแนะนำที่กำหนดไว้อย่างดีสำหรับการทำงานให้สำเร็จและการวิเคราะห์ที่เกี่ยวข้องในแง่ของเวลา / หน่วยความจำ / ฯลฯ

2
จุดเริ่มต้นของอัลกอริธึมที่ลืมเลือน?
ฉันสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับอัลกอริธึมที่หลงลืมแคชและโครงสร้างข้อมูล แต่มีเอกสารมากมายที่นั่นที่ฉันไม่รู้จะเริ่มต้นตรงไหน ฉันได้พบวิทยานิพนธ์ต้นฉบับของ Prokup เกี่ยวกับเรื่องนี้ซึ่งดูเหมือนว่าเป็นจุดเริ่มต้นที่ดี แต่ถ้ามีการแนะนำที่ง่ายและสามารถเข้าถึงได้ในเรื่องที่ฉันต้องการเริ่มต้นที่นั่น มีการอ้างอิง "go-to" มาตรฐานในเรื่องหรือไม่ ขอบคุณ!

1
ปัญหาที่ตั้งสถานที่เก็บประจุยูคลิด
ในปัญหาสถานที่เก็บประจุ (CFLP)เราได้รับชุดของลูกค้าคCC และสิ่งอำนวยความสะดวกที่มีศักยภาพ FFF. ลูกค้าแต่ละรายj∈Cj∈Cj \in C มีความต้องการ djdjd_jที่ต้องให้บริการโดยสิ่งอำนวยความสะดวกแบบเปิดหนึ่งแห่งขึ้นไป แต่ละสถานที่i∈Fi∈Fi \in F มีค่าใช้จ่ายในการเปิด fifif_i และมีความจุ uiuiu_iซึ่งเป็นความต้องการสูงสุดของสถานที่นั้น iiiสามารถให้บริการ ต้นทุนการให้บริการความต้องการของลูกค้าหนึ่งหน่วยjjj ในสถานที่ iii คือ cijcijc_{ij}. เราต้องการเปิดส่วนย่อยของสิ่งอำนวยความสะดวกและกำหนดความต้องการของลูกค้าเพื่อเปิดสิ่งอำนวยความสะดวกเช่นความต้องการของลูกค้าทั้งหมดจะได้พบกับไม่มีข้อ จำกัด กำลังการผลิตและลดต้นทุนรวมของสิ่งอำนวยความสะดวกเปิดและลูกค้าบริการลดลง ต้นทุนการบริการนั้นเป็นค่าลบไม่สมมาตรและสนองความไม่เท่าเทียมของสามเหลี่ยม Arora ใน [ 1 , หน้า 21] ระบุว่า "Arora, Raghavan และ Rao [ 2 ] ให้ PTAS สำหรับกรณีเรขาคณิตพวกเขาขยายอัลกอริทึมไปยังกรณีที่เก็บประจุ แต่ทางออกสุดท้ายอาจละเมิดข้อ จำกัด ของความจุเล็กน้อย เขามีความหมายว่าอะไร "จำนวนเล็กน้อย"? ฉันเดาว่าหมายความว่าพวกเขาให้ …

2
เส้นทางที่สั้นที่สุดไม่อนุญาตให้แต่ละขอบ
ฉันขอขอบคุณพอยน์เตอร์หรือคำศัพท์ใด ๆ ที่ทำให้ฉันเริ่มต้นในทิศทางที่ถูก เรามีกราฟกำกับ G=(V,E)G=(V,E)G=(V,E) และความยาว lijlijl_{ij} สำหรับแต่ละขอบ ijijijที่สามารถถือว่าเป็นบวก มีโหนดเริ่มต้นพิเศษsss และโหนดสิ้นสุด ttt. สำหรับแต่ละขอบ ijijijเราต้องการคำนวณความยาวของเส้นทางที่สั้นที่สุดจาก sss ถึง ttt ที่ไม่ได้ใช้ขอบ ijijij. อัลกอริทึมแรงเดรัจฉานอย่างง่าย ๆ คือเรียกใช้อัลกอริธึมพา ธ ที่สั้นที่สุดสำหรับแต่ละขอบแต่ละครั้งจะทำการลบขอบที่แตกต่างจากกราฟดั้งเดิม มีอัลกอริทึมที่มีประสิทธิภาพมากกว่าที่ใช้ประโยชน์จากความจริงที่ว่ามีการคำนวณซ้ำหลายครั้งเกิดขึ้นในอัลกอริทึมกำลังดุร้ายนี้หรือไม่? ขอบคุณล่วงหน้า.

1
การฝังกราฟเป็นชุดของเตตราฮิดราภายในที่ไม่ปะติดปะต่อ
กำหนดตาข่ายในแบบ 3 มิติเป็นคอลเล็กชั่นที่เชื่อมต่อของ Tetrahedra กับการตกแต่งภายในที่แยกจากกัน (ดังนั้น Tetrahedra จึงแบ่งปันเพียงใบหน้า k k ≤ 2k≤2k \le 2) ให้กราฟโดยพลการมีขั้นตอนที่มีประสิทธิภาพในการทดสอบว่ามันสามารถฝังตัวเป็นตาข่าย? ที่นี่การฝังคือการทำแผนที่จุดยอดของกราฟไปยังจุดต่างๆ R3R3R^3 และขอบถึงเส้นตรงที่ขอบตัดที่จุดยอดเท่านั้นและหันหน้าตัดที่ขอบเท่านั้นและไม่มีใบหน้าสองใบหน้าตัดกันในการตกแต่งภายใน

2
มีโครงสร้างข้อมูลสำหรับการจัดการรายการด่วนและแบบสอบถามคำสั่งซื้อหรือไม่
เรามีชุด, , ของรายการขององค์ประกอบจากชุด\} องค์ประกอบจากแต่ละปรากฏในรายการเดียวในLฉันกำลังมองหาโครงสร้างข้อมูลที่สามารถทำการปรับปรุงต่อไปนี้:LLLN= { 1 , 2 , 3,...,n}N={1,2,3,...,n}N = \{ 1, 2, 3, ..., n \}NNNLLL concat(x,y)concat(x,y)concat(x, y) : เชื่อมต่อรายการที่มีเข้าท้ายรายการที่มีyyyxxx s p l ฉันt(x)split(x)split(x) : แยกรายการที่มีโดยตรงหลังxxxxxx นอกจากนี้ยังต้องดำเนินการค้นหาต่อไปนี้: fo l l ows(x,y)follows(x,y)follows(x, y) : ผลตอบแทนถ้าและอยู่ในรายการเดียวกันและมาหลังจาก (แต่ไม่จำเป็นต้องอยู่ติดกับ )t r uetruetruexxxYyyYyyxxxxxx fฉันR s T ( x )first(x)first(x) : ส่งคืนองค์ประกอบแรกของรายการที่มีxxx n e …

1
ฮิวริสติกเพื่อการเพิ่มประสิทธิภาพ
เนื่องจากเป็นวันศุกร์ถึงเวลาถามคำถาม CW ฉันกำลังมองหาฮิวริสติกที่ใช้อย่างกว้างขวางในปัญหาการปรับให้เหมาะสม หากต้องการ จำกัด ขอบเขตให้กับการวิเคราะห์พฤติกรรมที่เป็นมิตรกับทฤษฎีมากกว่านี้นี่คือกฎ (บางข้อก็ได้บางข้อ) ควรเป็นวิธีที่กำหนดไว้อย่างดีโดยไม่มีพารามิเตอร์จำนวนมากและมีเวลาในการทำงานที่เป็นรูปธรรม มันควรจะมีผลทางทฤษฎีที่รู้จักกันที่เกี่ยวข้องกับมัน (อัตราการบรรจบกันการประมาณขอบเขตถ้ามีคุณสมบัติเครื่องเขียนและอื่น ๆ ) ควรมีการบังคับใช้ที่กว้างขวางและแอปพลิเคชั่นหลักอย่างน้อยหนึ่งตัวซึ่งเป็นวิธีการเลือกหรือหนึ่งในไม่กี่ตัว มันไม่ควรได้รับแรงบันดาลใจจากธรรมชาติ (ในขณะนี้ดูเหมือนว่าเป็นการคัดค้านเล็ก ๆ น้อย ๆ ฉันกำลังพยายามแยกอัลกอริธึมทางพันธุกรรมการเพิ่มประสิทธิภาพฝูงมดและสิ่งที่คล้ายกัน) คำตอบควรอยู่ในรูปแบบต่อไปนี้: นี่คือตัวอย่าง ชื่อ : การสลับ optimizaton เป้าหมาย : ย่อขนาด a (โดยทั่วไปไม่ใช่แบบ nonconvex)f(x,y)f(x,y)f(x,y) เงื่อนไข : ฟังก์ชั่นที่เกี่ยวข้องg(x)=minyf(x,y)g(x)=minyf(x,y)g(x) = \min_y f(x,y)และนูนh(y)=minxf(x,y)h(y)=minxf(x,y)h(y) = \min_x f(x,y) อัลกอริทึม :ย้ำเริ่มต้นด้วยy_iithithi^{\text{th}}xi,yixi,yix_i, y_i xi+1←argminxf(x,yi)xi+1←arg⁡minxf(x,yi)x_{i+1} \leftarrow \arg \min_x f(x, y_i) yi+1←argminyf(xi+1,y)yi+1←arg⁡minyf(xi+1,y)y_{i+1} …

1
การตัดสินใจว่าสตริง wildcard ถูกจับคู่โดยสตริง wildcard อื่นในชุดหรือไม่
นี่คือปัญหาที่ทำให้ฉันดักฟังมาระยะหนึ่งแล้ว สมมุติว่าสตริงเป็นลำดับ 1 และ 0 และสตริงตัวแทนคือ 1 และ 0 สตริงและสตริงตัวแทนทั้งหมดมีความยาวเท่ากัน นี่คือสัญลักษณ์ตัวแทน UNIX มาตรฐาน 10 ?? 1 การแข่งขัน 10011, 10111, ฯลฯ -? ตรงกับ 1 หรือ 0 ในตำแหน่งนั้น ถ้าโวลต์โวลต์v และ WWw เป็นสตริงไวด์การ์ดจากนั้นเราเขียน v ≤ wโวลต์≤Wv \leq w ถ้าทุกสายจับคู่ด้วย โวลต์โวลต์v ถูกจับคู่โดย WWw. ปัญหา : ได้รับชุดSSS ของสายอักขระตัวแทนและแบบสอบถาม vโวลต์v (เช่นสตริงตัวแทน) ซึ่งมีอยู่ w∈SW∈Sw \in S ดังนั้น …

1
อัลกอริทึมที่ทรงพลังที่ยากเกินกว่าจะนำไปใช้ได้จริงจะแน่ใจได้อย่างไรว่าถูกต้อง?
ผมหมายถึงคำถามที่นี่: ขั้นตอนวิธีการที่มีประสิทธิภาพที่ซับซ้อนเกินไปที่จะใช้ หากอัลกอริทึมมีประสิทธิภาพ แต่ซับซ้อนเกินกว่าจะนำไปใช้ได้คุณจะมั่นใจได้อย่างไรว่าอัลกอริทึมนั้นถูกต้อง? หากไม่มีการใช้งานคุณจะไม่สามารถทดสอบอัลกอริทึมในสถานการณ์จริงและอัลกอริธึมที่ซับซ้อนเช่นนั้นอาจมีข้อบกพร่องซึ่งอาจทำให้ขั้นตอนวิธีนั้นไม่ถูกต้อง นี่คือสิ่งที่ฉันไม่เข้าใจ หากคุณมีเทคนิคในการพิสูจน์ความถูกต้องของอัลกอริทึมแล้วคุณจะมีอัลกอริทึมที่จะใช้มันแล้วใช่ไหม? หรืออย่างอื่นเราจะแน่ใจได้อย่างไรว่าเทคนิคการพิสูจน์นั้นถูกต้อง? ฉันขอโทษถ้าฉันฟังประถม! อัปเดตจาก Kaveh (ทำซ้ำที่นี่เพราะอาร์กิวเมนต์ดีกว่า!): หากคุณสามารถพิสูจน์ความถูกต้องของอัลกอริทึมอย่างเป็นทางการในระบบที่เป็นทางการเช่น Coq คุณสามารถแยกอัลกอริทึม (เพราะคุณได้ใช้อัลกอริทึมเป็นหลัก) แต่ความจริงสำคัญคืออัลกอริธึมส่วนใหญ่นั้น ความถูกต้องสำหรับอัลกอริทึมเราใช้การพิสูจน์อย่างไม่เป็นทางการของความถูกต้อง หลักฐานอาจเป็นเท็จซึ่งเกิดขึ้นเป็นครั้งคราวและแม้แต่การพิสูจน์ความถูกต้องอย่างเป็นทางการจะไม่ทำให้เรามั่นใจอย่างแน่นอนว่าอัลกอริทึมนั้นถูกต้อง

3
อัลกอริทึมสำหรับการหารูปหลายเหลี่ยมโพลีกอน
ฉันมีปัญหาในการค้นหาอัลกอริทึมหรือเอกสารที่ตีพิมพ์ในรูปหลายเหลี่ยม Self intersecting (รูปหลายเหลี่ยมที่มีโครงสร้างรู) ผู้ใดช่วยแนะนำฉันให้ค้นหาเอกสาร / อัลกอริทึมที่ตีพิมพ์ได้ไหม ป.ล. : ใครบางคนติดแท็กคำถามนี้อย่างเหมาะสมฉันไม่มีคะแนนชื่อเสียงพอที่จะทำ

3
ฉันจะสร้างต้นไม้ทอดข้ามความสูงได้อย่างไร
สำหรับโครงการที่ฉันกำลังดำเนินการอยู่ฉันควรสร้างต้นสแปนแบบสุ่มที่มีความสูงล้อมรอบ โดยพื้นฐานแล้วฉันจะทำสิ่งต่อไปนี้: 1) สร้างทรีสแปนนิ่ง 2) ตรวจสอบความเป็นไปได้ถ้าเก็บไว้ได้ 1) เริ่มต้นจากต้นไม้ที่ขยายน้อยที่สุด (Prim's หรือ Kruskal's) ฉันเพิ่มขอบที่ไม่มีอยู่แล้วและนี่เป็นการสร้างรอบฉันตรวจพบรอบนี้และลบหนึ่งในขอบของรอบนี้ที่ให้ต้นไม้ทอดใหม่และดำเนินการต่อด้วย ต้นไม้ที่ขยายออกไปนี้โดยการเพิ่มขอบใหม่ ... 2) สมมติว่ามีจุดสุดยอดพิเศษ vcentervcenterv_{center}. สำหรับทุกจุดสุดยอดvvvความยาวของเส้นทางจาก vvv ถึง VcenterVcenterV_{center} ควรจะน้อยกว่านั้น δδ\deltaที่ไหน δδ\delta เป็นพารามิเตอร์ที่กำหนด มีวิธีที่ดีกว่า (ฉลาด) ในการทำเช่นนี้? ป.ล. ฉันลืมระบุข้อ จำกัด อื่น ๆ (ความผิดพลาดของฉัน): ระดับของจุดยอดควรถูก จำกัด ขอบเขตด้วย

2
ความซับซ้อนของเวลาของอัลกอริทึม Held-Karp สำหรับ TSP
เมื่อฉันดู " วิธีการเขียนโปรแกรมแบบไดนามิกเพื่อแก้ไขปัญหาลำดับ " โดย Michael Held และ Richard M. Karp ฉันพบคำถามต่อไปนี้: เหตุใดความซับซ้อนของอัลกอริธึมสำหรับ TSP จึงเป็น(∑n−1k=2k(k−1)(n−1k))+(n−1)(∑k=2n−1k(k−1)(n−1k))+(n−1)(\sum_{k=2}^{n-1}k(k-1)\binom{n-1}{k})+(n-1) (หน้า 199) ฉันหมายถึงพวกเขาใช้ปัจจัยkkkที่ไหน? หากฉันเข้าใจถูกต้องk−1k−1k-1หมายถึงจำนวนการเพิ่มสำหรับแต่ละชุดย่อยของเมือง แล้วทำไมการดำเนินการแต่ละนอกจากเป็นคู่กับรู้จักกับผมkkkการดำเนินงาน? ฉันคิดว่ามันเชื่อมต่อกันเพื่อลดขั้นต่ำ แต่การคำนวณขั้นต่ำดูเหมือนจะไม่ต้องการการดำเนินการมากมาย อัลกอริธึมการเขียนโปรแกรมแบบไดนามิกโดย Held และ Karp และเป็นอิสระจาก Bellman ทำงานดังนี้: สำหรับแต่ละคู่(S,ci)(S,ci)(S,c_i)หมายถึงเส้นทางที่จะผ่านc1c1c_1องค์ประกอบทั้งหมดของSSSและสิ้นสุดที่การคำนวณcicic_i OPT[S,ci]=min{OPT[S∖{ci},cj]+d(cj,ci):cj∈S∖{ci}},OPT[S,ci]=min{OPT[S∖{ci},cj]+d(cj,ci):cj∈S∖{ci}},OPT[S,c_i]=min\{OPT[S\setminus\{c_i\},c_j]+d(c_j,c_i):c_j\in S\setminus\{c_i\}\}, ที่d(cj,ci)d(cj,ci)d(c_j,c_i)หมายถึงระยะทางระหว่างเมืองcjcjc_jและC_icicic_iจากนั้นในสูตรจากกระดาษkkkหมายความว่าขนาดของSSSS

1
สูตร SAT / SMT ใด ๆ ของ VRP / VRPTW (TSP, Job-Shop-Scheduling)?
ฉันสงสัยว่าพวกเขามีวิธีการใด ๆ ในการกำหนดเส้นทางเดินรถ - ปัญหากับ Time-Windows ( VRPTW ) (เป็นปัญหาการตัดสินใจ) ในฐานะอินสแตนซ์ SAT / SMT หรือไม่? (ทางเลือก: TSP) ตัวอย่างเช่น: "มีวิธีแก้ไขปัญหาที่ถูกต้องในการเยี่ยมชมลูกค้าทั้งหมดภายในหน้าต่างเวลาของพวกเขาด้วยยานพาหนะ n = 10 หรือไม่" ปัญหาการตัดสินใจนี้อาจมีประโยชน์สำหรับขั้นตอนแรกที่ลดจำนวนยานพาหนะที่ใช้ ฉันไม่มีประสบการณ์เกี่ยวกับ SMT แต่ฉันคาดหวังว่ามันจะจำเป็นถ้าเราต้องการจัดการพิกัด / ครั้งเป็นตัวเลขจริง โดยทั่วไปสูตร TSP / VRP ทั้งหมดจะทำในโดเมนการเขียนโปรแกรมแบบผสมจำนวนเต็ม แต่ฉันสงสัยว่าสูตร sat / smt สามารถแข่งขันได้ (ในแง่ของการแก้ปัญหาเวลาในการปฏิบัติ) สำหรับปัญหาการตัดสินใจข้างต้น ดังนั้นสิ่งที่คุณคิดว่า: คุณรู้การอ้างอิงใด ๆ คุณคิดว่าวิธีการแบบ sat / smt สามารถแข่งขันได้หรือไม่ อะไรอีกที่คุณต้องการพูดถึง? …

3
การสลายตัวของต้นไม้สำหรับกราฟระนาบ
ครั้งแรกที่ถามเกี่ยวกับคณิตศาสตร์ไม่มีคำตอบ สมมติว่าฉันมีกราฟระนาบกับการฝังภาพถ่ายฉันจะหาการสลายตัวของต้นไม้ได้อย่างไร การสลายตัวของต้นไม้ที่เหมาะสมคืออะไร ddd-by-dddตารางสี่เหลี่ยม ไม่แน่ใจว่าจะกำหนด "ดีที่สุด" ได้อย่างสมบูรณ์ แต่ควรแยกความแตกต่างระหว่างการย่อยสลายด้วยถุงใบใหญ่และการย่อยสลายด้วยถุงขนาดใหญ่หลายใบ

1
ความซับซ้อนของการหา Eigendecomposition ของเมทริกซ์ * Symmetric *
นี้เป็นรุ่นพิเศษของคำถามก่อนหน้านี้: ความซับซ้อนของการหา Eigendecomposition ของเมทริกซ์ สำหรับเมทริกซ์สมมาตร NxN เป็นที่ทราบกันว่าเวลา O (N ^ 3) เพียงพอต่อการคำนวณการสลายตัวของไอเก็น คำถามคือเราสามารถบรรลุความซับซ้อนย่อยลูกบาศก์? ขอบคุณ

2
การทดสอบคุณสมบัติสำหรับชุดอิสระ
สมมติว่าเราได้รับกราฟ GGG และพารามิเตอร์ k,ϵk,ϵk,\epsilon. มีช่วงของค่าสำหรับkkk (หรือเป็นไปได้สำหรับทุกคน kkk) ซึ่งเป็นไปได้ที่จะทดสอบว่า GGG คือ ϵϵ\epsilon- ห่างจากการมีชุดขนาดอิสระอย่างน้อยที่สุด kkk ภายในเวลาที่กำหนด O(n+poly(1/ϵ))O(n+poly(1/ϵ))O(n + \text{poly}(1/\epsilon)) ? หากเราใช้ความคิดตามปกติของ ϵϵ\epsilon- ไกล (เช่นที่มากที่สุด ϵn2ϵn2\epsilon n^2 ขอบจะต้องมีการเปลี่ยนแปลงเพื่อให้ได้ชุดดังกล่าว) จากนั้นปัญหาเป็นเรื่องไม่สำคัญสำหรับ k=O(nϵ√)k=O(nϵ)k = O(n\sqrt{\epsilon}). ดังนั้น ดูเหมือนว่าถ้า kkkมีขนาดใหญ่แนวคิดการสุ่มตัวอย่างบางอย่างควรแก้ไขปัญหา มันเป็นเรื่องจริงเหรอ? มีความคิดอื่น ๆ ϵϵ\epsilon- ไกล (เช่นอาจจะ ϵ|E|ϵ|E|\epsilon |E| ขอบแทน) ภายใต้ซึ่งมีผลที่ไม่น่าสนใจ? โดยทั่วไปฉันกำลังมองหาการอ้างอิง ณ จุดนี้

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