คำถามติดแท็ก optimization

คำถามเกี่ยวกับปัญหาที่เกี่ยวข้องกับการเลือกองค์ประกอบที่ดีที่สุดจากทางเลือกที่มีอยู่บางชุดและวิธีการในการแก้ปัญหา

8
อัลกอริธึมการเรียงลำดับที่เร็วที่สุดสำหรับอาเรย์ของจำนวนเต็มคืออะไร?
ฉันเจออัลกอริธึมการเรียงลำดับจำนวนมากในระหว่างที่เรียนอยู่มัธยม อย่างไรก็ตามฉันไม่เคยรู้ว่าอันไหนเร็วที่สุด (สำหรับอาร์เรย์จำนวนเต็มแบบสุ่ม) ดังนั้นคำถามของฉันคือ: อัลกอริทึมการเรียงลำดับที่รู้จักกันเร็วที่สุดในขณะนี้คืออะไร ในทางทฤษฎีมันเป็นไปได้ไหมที่จะมีคนที่เร็วขึ้น? ดังนั้นการเรียงลำดับที่ซับซ้อนน้อยที่สุดคืออะไร?

2
เหตุใด C ประเภทโมฆะจึงไม่คล้ายกับประเภทที่ว่าง / ด้านล่าง
Wikipedia ตลอดจนแหล่งข้อมูลอื่น ๆ ที่ฉันได้พบรายการvoidประเภทC เป็นหน่วยประเภทซึ่งตรงข้ามกับประเภทที่ว่างเปล่า ฉันพบว่ามันสับสนเพราะฉันคิดว่าvoidเหมาะกับนิยามของประเภทที่ว่าง / ล่าง ไม่มีค่านิยมใด ๆ อยู่voidเท่าที่ฉันจะบอกได้ ฟังก์ชั่นที่มีประเภทคืนค่าเป็นโมฆะระบุว่าฟังก์ชั่นจะไม่ส่งคืนสิ่งใดดังนั้นจึงสามารถทำงานได้เพียงผลข้างเคียงเท่านั้น ตัวชี้ชนิดvoid*เป็นชนิดย่อยของชนิดตัวชี้อื่นทั้งหมด นอกจากนี้การแปลงไปยังและจากvoid*ใน C นั้นเป็นนัย ผมไม่แน่ใจว่าถ้าจุดสุดท้ายมีบุญใด ๆ ที่เป็นข้อโต้แย้งสำหรับvoidการเป็นประเภทที่ว่างเปล่าเป็นมากหรือน้อยเป็นกรณีพิเศษที่มีความสัมพันธ์ไม่มากที่จะvoid*void ในทางกลับกันvoidตัวมันเองไม่ใช่ประเภทย่อยของประเภทอื่นทั้งหมดซึ่งเท่าที่ฉันสามารถบอกได้ว่าเป็นข้อกำหนดสำหรับประเภทที่จะเป็นประเภทด้านล่าง
28 type-theory  c  logic  modal-logic  coq  equality  coinduction  artificial-intelligence  computer-architecture  compilers  asymptotics  formal-languages  asymptotics  landau-notation  asymptotics  turing-machines  optimization  decision-problem  rice-theorem  algorithms  arithmetic  floating-point  automata  finite-automata  data-structures  search-trees  balanced-search-trees  complexity-theory  asymptotics  amortized-analysis  complexity-theory  graphs  np-complete  reductions  np-hard  algorithms  string-metrics  computability  artificial-intelligence  halting-problem  turing-machines  computation-models  graph-theory  terminology  complexity-theory  decision-problem  polynomial-time  algorithms  algorithm-analysis  optimization  runtime-analysis  loops  turing-machines  computation-models  recurrence-relation  master-theorem  complexity-theory  asymptotics  parallel-computing  landau-notation  terminology  optimization  decision-problem  complexity-theory  polynomial-time  counting  coding-theory  permutations  encoding-scheme  error-correcting-codes  machine-learning  natural-language-processing  algorithms  graphs  social-networks  network-analysis  relational-algebra  constraint-satisfaction  polymorphisms  algorithms  graphs  trees 

2
ขายบล็อกของช่วงเวลา
รับช่วงเวลาที่คนต้องการซื้อคนที่มีค่าแต่ละครั้งสล็อตเจแต่ละคนสามารถซื้อช่วงเวลาหนึ่งช่วงติดต่อกันเท่านั้นซึ่งอาจว่างเปล่าnnnkkkiiih(i,j)≥0h(i,j)≥0h(i,j)\geq 0jjj มีวิธีคิดแบบพหุนามเวลาในการคำนวณมูลค่าสูงสุดที่ผู้ขายสามารถทำได้หรือไม่? เราสามารถให้แต่ละช่วงเวลาแก่บุคคลที่เห็นคุณค่าได้มากที่สุด นอกจากนี้หากเราแก้ไขลำดับของช่วงเวลาของผู้คนดังนั้นการเขียนโปรแกรมแบบไดนามิกสามารถใช้เพื่อแก้ปัญหาสำหรับค่าสูงสุดของคนแรกที่ซื้อเวลาครั้งแรก สล็อตkkk0≤i≤k0≤i≤k0\le i \le k0≤j≤n0≤j≤n0\le j \le n

2
รุ่นการปรับให้เหมาะสมของปัญหาการตัดสินใจ
คำถามนี้ถูกย้ายจาก Theoretical Computer Science Exchange Exchange เพราะสามารถตอบได้ใน Computer Science Stack Exchange อพยพ 7 ปีที่ผ่านมา เป็นที่ทราบกันว่าปัญหาการเพิ่มประสิทธิภาพ / การค้นหาแต่ละรายการมีปัญหาในการตัดสินใจเทียบเท่า ตัวอย่างเช่นปัญหาเส้นทางที่สั้นที่สุด การเพิ่มประสิทธิภาพ / รุ่นค้นหา: สมมติว่าไม่มีทิศทางกราฟไม่ได้ชั่งและสองจุดหาเส้นทางที่สั้นที่สุดระหว่างและยูG=(V,E)G=(V,E)G = (V, E)v,u∈Vv,u∈Vv,u\in Vvvvuuu เวอร์ชันการตัดสินใจ: เนื่องจากกราฟถ่วงน้ำหนักที่ไม่ได้บอกทิศทาง , สองจุดยอด , และเลขจำนวนเต็มที่ไม่เป็นลบ , มีเส้นทางในระหว่างและที่มีความยาวสูงสุดหรือไม่?G=(V,E)G=(V,E)G = (V, E)v,u∈Vv,u∈Vv,u\in VkkkGGGuuuvvvkkk โดยทั่วไป "ค้นหา st !" กลายเป็น "มีx \ in X st f (x) …

7
อัลกอริทึมในการกระจายรายการ“ อย่างสม่ำเสมอ”
ฉันกำลังค้นหาอัลกอริทึมเพื่อแจกจ่ายค่าจากรายการเพื่อให้รายการผลลัพธ์เป็น "สมดุล" หรือ "กระจายอย่างสม่ำเสมอ" ที่สุด (ในเครื่องหมายคำพูดเพราะฉันไม่แน่ใจว่าสิ่งเหล่านี้เป็นวิธีที่ดีที่สุดในการอธิบาย ... ต่อมาฉันจะให้วิธีการวัดว่าผลลัพธ์ดีกว่าอื่น) ดังนั้นสำหรับรายการ: [1, 1, 2, 2, 3, 3] หนึ่งในผลลัพธ์ที่ดีที่สุดหลังจากการกระจายค่าอีกครั้งคือ: [1, 2, 3, 1, 2, 3] อาจมีผลลัพธ์อื่น ๆ ที่ดีเท่านี้และแน่นอนว่าสิ่งนี้จะซับซ้อนมากขึ้นด้วยชุดค่าที่น้อยกว่า นี่คือวิธีการวัดว่าผลลัพธ์ดีกว่าวิธีอื่นหรือไม่: นับระยะทางระหว่างแต่ละรายการและรายการถัดไปด้วยค่าเดียวกัน คำนวณค่าเบี่ยงเบนมาตรฐานสำหรับชุดของระยะทาง การกระจายตัวที่ต่ำกว่าหมายถึงผลลัพธ์ที่ดีกว่า ข้อสังเกต: เมื่อคำนวณระยะทางและถึงจุดสิ้นสุดของรายการโดยไม่ต้องค้นหารายการที่มีค่าเท่ากันเราจะกลับไปที่จุดเริ่มต้นของรายการ ดังนั้นในที่สุดรายการเดียวกันจะถูกพบและระยะทางสำหรับรายการนั้นจะเป็นความยาวของรายการ ซึ่งหมายความว่ารายการเป็นวงกลม ; รายการทั่วไปมี ~ 50 รายการที่มีค่าแตกต่างกัน ~ 15 ในปริมาณที่แตกต่างกัน ดังนั้น: สำหรับผลที่[1, 2, 3, 1, 2, 3]ระยะห่างอยู่[3, 3, 3, …

5
ทำไมคนที่มีสมรรถภาพร่างกายต่ำจึงมีโอกาสรอดชีวิตคนรุ่นต่อไป
ขณะนี้ฉันกำลังอ่านและดูเกี่ยวกับอัลกอริทึมทางพันธุกรรมและฉันคิดว่ามันน่าสนใจมาก (ฉันไม่ได้มีโอกาสศึกษาในขณะที่ฉันอยู่ที่มหาวิทยาลัย) ฉันเข้าใจว่าการกลายพันธุ์ขึ้นอยู่กับความน่าจะเป็น (การสุ่มเป็นรากฐานของวิวัฒนาการ) แต่ฉันไม่เข้าใจว่าทำไมการเอาชีวิตรอดจึงเป็นเช่นนั้น จากสิ่งที่ฉันเข้าใจบุคคลที่IIIมีฟิตเนสF(i)F(i)F(i)เช่นสำหรับบุคคลอีกคนที่JJJมีฟิตเนสเรามีจากนั้นมีโอกาสดีกว่าF(j)F(j)F(j)F(i)>F(j)F(i)>F(j)F(i) > F(j)IIIJJJเพื่อความอยู่รอด เพื่อรุ่นต่อไป ความน่าจะเป็นหมายความว่าJJJ อาจอยู่รอดและIII อาจไม่ (กับ "โชคร้าย") ฉันไม่เข้าใจว่าทำไมสิ่งนี้ถึงดีเลย? ถ้าIIIจะอยู่รอดสิ่งที่เลือกไว้เสมอสิ่งที่จะผิดพลาดในอัลกอริทึม? ฉันเดาว่าอัลกอริทึมจะคล้ายกับอัลกอริทึมโลภ แต่ฉันไม่แน่ใจ

2
อัลกอริทึมที่มีประสิทธิภาพสำหรับ 'unsumming' ชุดจำนวนเงิน
รับชุดของตัวเลขธรรมชาติ X พิจารณาชุดของผลรวมที่เป็นไปได้ทั้งหมด: จำนวนเงิน (X) = { ∑ฉัน∈ผม|A ⊆ X}sums(X)={∑i∈Ai|A⊆X}\textrm{sums}(X)= \left\{ \sum_{i \in A} i \,|\, A \subseteq X \right\} ยกตัวอย่างเช่นผลรวม ( { 1 , 5 } )= { 0 ,1,5,6}sums({1,5})={0,1,5,6}\textrm{sums}(\left\{1,5\right\}) = \left\{0, 1, 5, 6\right\}ในขณะที่ sums({1,1})={0,1,2}sums({1,1})={0,1,2}\textrm{sums}(\left\{1,1\right\}) = \left\{0, 1, 2\right\} } อัลกอริธึมที่มีประสิทธิภาพมากที่สุดสำหรับการคำนวณการดำเนินการผกผันคืออะไร โดยเฉพาะมันเป็นไปได้ที่จะคำนวณอย่างมีประสิทธิภาพต่อไปนี้: ไม่ว่าจะเป็นชุดที่กำหนดเป็นชุดผลรวมที่ถูกต้อง (ตัวอย่างเช่น{0,1,2}{0,1,2}\left\{0,1,2\right\}ถูกต้อง แต่{0,1,3}{0,1,3}\left\{0,1,3\right\}ไม่ถูกต้อง) เซ็ตมัลติเซตที่รวมกับเซ็ตที่กำหนด ชุดมัลติเซ็ตที่เล็กที่สุดที่รวมกับเซ็ตที่กำหนด (ตัวอย่างเช่น{1,2}{1,2}\left\{1,2\right\}และ{1,1,1}{1,1,1}\left\{1,1,1\right\}ทั้งผลรวมเป็น{0,1,2,3}{0,1,2,3}\left\{0,1,2,3\right\}แต่ตัวเก่ามีขนาดเล็กลง)

2
จ่ายรวมปัญหาการเรียกเก็บเงิน
มีคนคนที่โต๊ะ ฉันคนวันที่มีการจ่ายเงินหน้าฉันดอลลาร์nnnผมiiพีผมpip_i บางคนไม่ได้มีค่าใช้จ่ายที่เหมาะสมในการจ่ายตรงเพื่อให้พวกเขาขึ้นมาด้วยวิธีดังต่อไปนี้พีผมpip_i ก่อนอื่นทุกคนเอาเงินไปวางบนโต๊ะ จากนั้นแต่ละคนจะนำเงินที่ได้ชำระกลับมามากเกินไป ตั๋วเงินมีชุดราคาคงที่ (ไม่ใช่ส่วนหนึ่งของอินพุต) ตัวอย่าง: สมมติว่ามีสองคนคืออลิซและบ๊อบ อลิซเป็นหนี้$ 5 และมีห้า$ 1 ค่า บ๊อบเป็นหนี้$ 2 และมีบิลหนึ่งใบ$ 5 หลังจากอลิซกับบ็อบเอาเงินไปวางบนโต๊ะแล้วบ็อบก็จะได้เงินคืน3 ดอลลาร์และทุกคนก็มีความสุข แน่นอนมีบางครั้งที่ไม่ต้องใส่เงินทั้งหมดลงบนโต๊ะ ตัวอย่างเช่นหากอลิซมีตั๋วเงินหนึ่งพันดอลลาร์คุณไม่จำเป็นต้องให้เธอเก็บเงินทั้งหมดไว้บนโต๊ะแล้วเอาคืนส่วนใหญ่ ฉันต้องการค้นหาอัลกอริทึมที่มีคุณสมบัติดังต่อไปนี้: ข้อมูลป้อนเข้าจะระบุจำนวนคนจำนวนเงินที่แต่ละคนเป็นหนี้และจำนวนเงินของแต่ละสกุลเงินที่แต่ละคนมี อัลกอริธึมบอกให้แต่ละคนทราบว่าธนบัตรใบใดวางบนโต๊ะในรอบแรก อัลกอริทึมบอกให้แต่ละคนทราบว่าจะลบรายการใดออกจากตารางในรอบที่สอง จำนวนตั๋วเงินที่วางไว้บนโต๊ะ + จำนวนตั๋วเงินที่ลบออกจากตารางจะลดลง หากไม่มีวิธีแก้ปัญหาที่เป็นไปได้อัลกอริทึมก็จะส่งคืนข้อผิดพลาด

1
วิธีพื้นฐานคือ matroids และ greedoids ในการออกแบบอัลกอริทึม?
ในขั้นต้นmatroidsถูกนำไปพูดคุยความคิดของการเป็นอิสระเชิงเส้นของชุดของส่วนย่อยที่บางชุดพื้นดินฉันปัญหาบางอย่างที่มีโครงสร้างนี้อนุญาตให้อัลกอริทึมโลภค้นหาวิธีแก้ปัญหาที่ดีที่สุด แนวคิดของgreedoidsต่อมาได้รับการแนะนำให้รู้จักกับโครงสร้างทั่วไปนี้เพื่อจับปัญหามากขึ้นที่ช่วยให้การแก้ปัญหาที่ดีที่สุดที่จะพบได้โดยวิธีการโลภEEEผมผมI โครงสร้างเหล่านี้เกิดขึ้นบ่อยเพียงใดในการออกแบบอัลกอริทึม นอกจากนี้บ่อยครั้งที่อัลกอริทึมโลภมักจะไม่สามารถจับภาพสิ่งที่จำเป็นในการค้นหาคำตอบที่ดีที่สุด แต่อาจยังพบวิธีแก้ปัญหาที่ดีโดยประมาณ (ตัวอย่างเช่นการบรรจุในถังขยะ) ระบุว่ามีวิธีวัดว่า "ปิด" ปัญหาคือ greedoid หรือ matroid หรือไม่?

3
อัลกอริทึมเพื่อลดพื้นที่ผิวปริมาณที่กำหนด
พิจารณางานอัลกอริทึมต่อไปนี้: อินพุต: จำนวนเต็มบวกพร้อมกับการแยกตัวประกอบเฉพาะของการ ค้นหา: จำนวนเต็มบวกที่ลดขึ้นอยู่กับข้อ จำกัด ที่x , y , z x y + y z + x z x y z = nnnnx , y, zx,y,zx,y,zx y+ yZ+ x zxy+yz+xzxy+yz+xzx yZ= nxyz=nxyz=n ความซับซ้อนของปัญหานี้คืออะไร? มีอัลกอริธึมเวลาพหุนามหรือไม่? มันเป็น NP-hard หรือไม่? ปัญหานี้ถามโดยทั่วไปว่า: จากของแข็งที่เป็นรูปสี่เหลี่ยมผืนผ้าทั้งหมดที่มีปริมาตรเป็นและมิติใดเป็นจำนวนเต็มทั้งหมดอันใดที่มีพื้นที่ผิวน้อยที่สุดnnn ปัญหานี้เกิดขึ้นจาก Dan Meyer ภายใต้ชื่อThe Problem Problem ที่อาจารย์คณิตศาสตร์ 1,000 คนไม่สามารถแก้ไขได้ จนถึงขณะนี้ไม่มีครูคณิตศาสตร์ที่เขาทำงานด้วยได้พบอัลกอริทึมที่เหมาะสมสำหรับปัญหานี้ …

3
เหตุใดปัญหา NP-complete จึงแตกต่างกันในแง่ของการประมาณของพวกเขา
ฉันอยากเริ่มคำถามด้วยการบอกว่าฉันเป็นโปรแกรมเมอร์และฉันไม่มีพื้นฐานด้านทฤษฎีความซับซ้อนมากมาย สิ่งหนึ่งที่ฉันสังเกตเห็นคือในขณะที่ปัญหาหลายอย่างเป็นปัญหาแบบ NP- เมื่อขยายไปสู่ปัญหาการเพิ่มประสิทธิภาพ ตัวอย่างที่ดีคือ TSP ถึงแม้ว่า TSP ทุกประเภทจะมีปัญหา NP-complete แต่ปัญหาการปรับให้เหมาะสมที่ตรงกันนั้นง่ายขึ้นและง่ายขึ้นในการประมาณค่าด้วยการทำให้เรียบง่ายต่อเนื่อง กรณีทั่วไปคือ NPO-complete, กรณีเมทริกคือ APX-complete, และกรณี Euclidean มี PTAS จริง นี่ดูเหมือนจะขัดกับฉันและฉันก็สงสัยว่ามันมีเหตุผลไหม

1
จะบรรจุรูปหลายเหลี่ยมในรูปหลายเหลี่ยมอื่นได้อย่างไร
ฉันสั่งแผ่นหนังสองสามผืนซึ่งฉันต้องการสร้างลูกเล่นกลโดยเย็บขอบด้วยกัน ฉันใช้ของแข็งเพลโตโตเพื่อรูปร่างของลูกบอล ฉันสามารถสแกนแผ่นหนังและสร้างรูปหลายเหลี่ยมที่ใกล้เคียงกับรูปร่างของแผ่นหนัง (อย่างที่คุณรู้มันเป็นหนังสัตว์และมันไม่ได้เป็นรูปสี่เหลี่ยมผืนผ้า) ดังนั้นตอนนี้ฉันต้องการที่จะเพิ่มขนาดของลูกเล่นกล ในตัวอย่างของฉันรูปหลายเหลี่ยมเป็นรูปแบบปกติ แต่ฉันกำลังมองหาวิธีแก้ปัญหาด้วยรูปหลายเหลี่ยมอย่างง่าย ตัวประกอบสเกลที่ใหญ่ที่สุดที่ฉันสามารถใช้กับรูปหลายเหลี่ยมของฉันคืออะไรเพื่อให้พอดีกับแผ่นด้านใน ฉันพยายามลดขยะโดยใช้วัสดุให้ได้มากที่สุด เห็นได้ชัดว่าการตัดตาข่ายรูปทรงหลายเหลี่ยมเป็นรูปหลายเหลี่ยมแต่ละอันจะเพิ่มพื้นที่ของชุดค่าผสมที่เป็นไปได้ แต่ยังลดคุณภาพของรูปทรงเรขาคณิตสุดท้ายเนื่องจากมีการตัดเย็บที่เกี่ยวข้องมากขึ้นและมีข้อผิดพลาดสะสม แต่คำถามนี้ไม่ได้เกี่ยวกับการแจกแจงหลายวิธีในการตีแผ่รูปทรงหลายเหลี่ยม พวกเขาสามารถพิจารณาได้อย่างอิสระ รูปหลายเหลี่ยมจึงเป็นรูปหลายเหลี่ยมอย่างง่าย อย่างเป็นทางการ: การป้อนข้อมูล: PPP : รูปหลายเหลี่ยมแบบง่าย (เป้าหมาย) SSS : ชุดรูปหลายเหลี่ยมที่ฉันต้องการวาง GGG : กราฟของเหลี่ยมง่าย - แต่ละโหนดแสดงให้เห็นถึงรูปหลายเหลี่ยมที่เรียบง่ายในและมีขอบขอบหนึ่งระหว่างคู่ของรูปหลายเหลี่ยมแต่ละที่ใช้ขอบทั่วไป nnnSSS α > = 0 , β> = 0α>=0,β>=0\alpha >= 0, \beta >= 0 (การใช้วัสดุและการเชื่อมต่อ) เอาท์พุท: ปัจจัยขนาดฉff GHHH , กราฟย่อยของGGG : ตำแหน่งและมุมสำหรับแต่ละเหลี่ยมใน …

4
จะใช้อัลกอริทึมแบบโลภเพื่อค้นหาลำดับที่ไม่ลดลงใกล้เคียงกับลำดับที่ได้อย่างไร
a1,…,ana1,…,ana_1, \ldots, a_n000lllaiaia_ibibib_i000lllbibib_iสูงสุด( | a1- ข1| ,…, | n- ขn| )max(|a1−b1|,…,|an−bn|)\max(|a_1-b_1|, \ldots, |a_n-b_n|)ขผมbib_iO ( n l√4)O(nl4)O(n\sqrt[4]{l}) ฉันไม่มีเงื่อนงำอย่างจริงใจว่าจะเริ่มแก้ไขคำถามนี้อย่างไร ดูเหมือนว่าฉันจะถามคำถามเกี่ยวกับการเขียนโปรแกรมแบบไดนามิก แต่อาจารย์บอกว่าควรแก้ไขได้โดยใช้อัลกอริทึมโลภ มันคงจะดีมากถ้ามีคนชี้ให้ฉันไปในทิศทางที่ถูกต้องด้วยการบอกใบ้เล็ก ๆ

3
มีคุกกี้จำนวนเท่าใดในกล่องคุกกี้ - ปูกระเบื้องดาว
กับเทศกาลวันหยุดที่กำลังจะมาฉันตัดสินใจที่จะทำให้บางดาวอบเชย นั่นเป็นเรื่องสนุก (และผลลัพธ์ที่ออกมาอร่อย) แต่ความเบื่อหน่ายภายในของฉันเมื่อฉันใส่ถาดดาวดวงแรกลงในกล่องและพวกมันจะไม่พอดีในชั้นเดียว: เกือบ! มีวิธีที่พวกเขาจะพอดีหรือไม่? เราจะปูกระเบื้องดาวได้ดีแค่ไหนกันล่ะ? ระบุว่านี่เป็นดาวหกแฉกปกติเราสามารถใช้การเอียงของรูปหกเหลี่ยมที่รู้จักกันดีในการประมาณเช่น: messed up หนึ่งไปที่มุมขวาบนขออภัย แต่นี่เป็นสิ่งที่ดีที่สุดเหรอ? มีที่ว่างมากมายระหว่างคำแนะนำ สำหรับการพิจารณานี้ให้เรา จำกัด ตัวเราไว้ที่กล่องสี่เหลี่ยมและดาวหกแฉกนั่นคือมีสามสิบองศา (หรือ ) ระหว่างคำแนะนำทุกอย่างและเพื่อนบ้านของมัน ดาวฤกษ์นั้นโดดเด่นด้วยรัศมีภายในและรัศมีรอบนอกr_o :π6π6\frac{\pi}{6}RผมRผมr_iRโอRโอr_o [ แหล่งที่มา ] โปรดทราบว่าเรามีรูปหกเหลี่ยมสำหรับและ hexagrams สำหรับr_o ฉันคิดว่ามันสมเหตุสมผลที่จะพิจารณาถึงความสุดยอดเหล่านี้ (สำหรับคุกกี้) และ จำกัด ตัวเราให้อยู่ในช่วงระหว่างนั่นคือBigr]Rผม= 3√2⋅ rโอRผม=32⋅Rโอr_i = \frac{\sqrt{3}}{2} \cdot r_oRผม= 13√⋅ rโอRผม=13⋅Rโอr_i = \frac{1}{\sqrt{3}} \cdot r_oRผมR0∈ [ 13√, 3√2]RผมR0∈[13,32]\frac{r_i}{r_0} \in \Bigl[\frac{1}{\sqrt{3}}, \frac{\sqrt{3}}{2}\Bigr] …

6
การเขียนโปรแกรมแบบไดนามิกแตกต่างจากแรงเดรัจฉานอย่างไร
ฉันอ่านเกี่ยวกับการเขียนโปรแกรมแบบไดนามิกเมื่อฉันเจอข้อความอ้างอิงต่อไปนี้ อัลกอริทึมการเขียนโปรแกรมแบบไดนามิกจะตรวจสอบวิธีที่เป็นไปได้ทั้งหมดในการแก้ปัญหาและจะเลือกทางออกที่ดีที่สุด ดังนั้นเราจึงสามารถคิดคร่าว ๆ ของการเขียนโปรแกรมแบบไดนามิกเป็นอัจฉริยะวิธีแรงเดรัจฉานที่ช่วยให้เราไปถึงการแก้ปัญหาที่เป็นไปได้ทั้งหมดในการเลือกที่ดีที่สุด หากขอบเขตของปัญหาเป็นเช่นนั้นที่จะผ่านการแก้ไขปัญหาที่เป็นไปได้ทั้งหมดและเป็นไปได้อย่างรวดเร็วพอการเขียนโปรแกรมแบบไดนามิกรับประกันการหาทางออกที่ดีที่สุด ตัวอย่างต่อไปนี้ได้รับ ตัวอย่างเช่นสมมติว่าคุณต้องได้รับจากจุด A ถึงจุด B โดยเร็วที่สุดในเมืองที่กำหนดในช่วงชั่วโมงเร่งด่วน อัลกอริทึมการเขียนโปรแกรมแบบไดนามิกจะตรวจสอบรายงานการจราจรทั้งหมดโดยดูจากชุดค่าผสมที่เป็นไปได้ทั้งหมดของถนนที่คุณอาจจะใช้แล้วจะบอกให้คุณทราบว่าวิธีใดเป็นวิธีที่เร็วที่สุด แน่นอนว่าคุณอาจต้องรอสักครู่จนกว่าอัลกอริทึมจะเสร็จสิ้นและจากนั้นจึงเริ่มขับรถเท่านั้น เส้นทางที่คุณจะใช้จะเป็นเส้นทางที่เร็วที่สุด (สมมติว่าไม่มีอะไรเปลี่ยนแปลงในสภาพแวดล้อมภายนอก) Brute Force กำลังพยายามแก้ปัญหาที่เป็นไปได้ก่อนตัดสินใจเลือกทางออกที่ดีที่สุด การเขียนโปรแกรมแบบไดนามิกแตกต่างจาก Brute Force อย่างไรหากผ่านโซลูชั่นที่เป็นไปได้ทั้งหมดก่อนที่จะเลือกสิ่งที่ดีที่สุดความแตกต่างเดียวที่ฉันเห็นคือการเขียนโปรแกรมแบบไดนามิกคำนึงถึงปัจจัยเพิ่มเติม (สภาพการจราจรในกรณีนี้) ฉันถูกต้องหรือไม่ที่จะบอกว่า Dynamic Programming เป็นส่วนหนึ่งของวิธี Brute Force?

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