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

อัลกอริทึมเป็นลำดับขั้นตอนที่กำหนดไว้อย่างดีซึ่งกำหนดวิธีแก้ปัญหาแบบนามธรรมให้กับปัญหา ใช้แท็กนี้เมื่อปัญหาของคุณเกี่ยวข้องกับการออกแบบและวิเคราะห์อัลกอริทึม

2
ความซับซ้อนในการค้นหาลูกที่เพิ่มจำนวนคะแนนให้อยู่ในนั้น
x1,…,xn∈R2x1,…,xn∈R2x_1, \ldots, x_n \in \mathbb{R}^2rrrrrr∑ni=11∥x−xi∥≤r∑i=1n1‖x−xi‖≤r\sum_{i=1}^n \mathbb{1}_{\|x - x_i\| \leq r} ขั้นตอนวิธีการบังคับเดรัจฉานจะไปกว่าทุกจุดและนับจำนวนจุดที่อยู่ในระยะทางที่มีขนาดเล็กกว่าRที่จะให้ความซับซ้อนของ2)rrrO(n2)O(n2)\mathcal{O}(n^2) มีแนวทางที่ดีกว่านี้ไหม?

1
Earley Parser สามารถสร้างเป็น parser fuzzy คล้ายกับ Levenshtein Automata Algo สำหรับ DFA ได้หรือไม่?
มีวิธีการแยกวิเคราะห์แบบคลุมเครือ (ยอมรับสตริงแม้มีความผิดพลาดในการแก้ไขระยะทางที่แน่นอน) ด้วย DFA และ Levenshtein Automata ที่สร้างขึ้นในเวลาทำงานของคำที่ป้อนเข้า สิ่งที่คล้ายกันสามารถทำได้ด้วยการแยกวิเคราะห์ Earley? ฉันพบว่ามันยากที่จะเข้าใจอัลกอริทึมให้ตอบคำถามนี้โดยลำพัง

2
ปัญหาการเพิ่มประสิทธิภาพ combinatorial นี้คล้ายกับปัญหาที่ทราบหรือไม่?
ปัญหาดังต่อไปนี้: เรามีอาร์เรย์ / ตารางจำนวนสองมิติแต่ละอันแสดงถึง "ผลประโยชน์" หรือ "ผลกำไร" นอกจากนี้เรายังมีสองจำนวนเต็มคงและ (สำหรับ "กว้าง" และ "ความสูง".) และเป็นจำนวนเต็มคงnH nwwwhhhnnn ตอนนี้เราต้องการที่จะซ้อนทับสี่เหลี่ยมขนาดในตารางดังกล่าวว่าผลรวมของค่าของเซลล์ในรูปสี่เหลี่ยมเหล่านี้เป็น maximizedw × hnnnw×hw×hw \times h ภาพต่อไปนี้เป็นตัวอย่างของตารางสองมิติที่มีรูปสี่เหลี่ยมผืนผ้าสองรูปซ้อนทับอยู่บนภาพ (รูปภาพไม่ได้แสดงวิธีแก้ปัญหาที่ดีที่สุดเพียงหนึ่งภาพซ้อนทับที่เป็นไปได้โดยที่และ )n = 2w=h=2w=h=2w = h = 2n=2n=2n = 2 รูปสี่เหลี่ยมผืนผ้าไม่สามารถตัดกันได้ (ไม่เช่นนั้นเราแค่ต้องการหาตำแหน่งที่เหมาะสมที่สุดสำหรับหนึ่งรูปสี่เหลี่ยมผืนผ้าแล้วใส่รูปสี่เหลี่ยมทั้งหมดในตำแหน่งนั้น) ในตัวอย่างข้างต้นผลรวมของค่าทั้งหมดในเซลล์จะเป็น−2+4.2+2.4+3.14+2.3−1.4+1−3.1−2+4.2+2.4+3.14+2.3−1.4+1−3.1-2 + 4.2 + 2.4 + 3.14 + 2.3 -1.4 + 1 - 3.1 สิ่งนี้คล้ายกับปัญหาใด ๆ ที่ทราบกันดีในการเพิ่มประสิทธิภาพ …

4
มีวิธีสำหรับการวิเคราะห์อัลกอริธึมอัตโนมัติหรือไม่?
ฉันสงสัยว่ามีวิธีการวิเคราะห์รันไทม์อัตโนมัติที่ทำงานอย่างน้อยในชุดย่อยที่เกี่ยวข้องของอัลกอริทึม (อัลกอริทึมที่สามารถวิเคราะห์ได้) หรือไม่ ฉัน googled "การวิเคราะห์อัลกอริทึมอัตโนมัติ" ซึ่งทำให้ผมนี้แต่มันเป็น Mathy เกินไป ฉันแค่ต้องการตัวอย่างง่ายๆใน psuedocode ที่ฉันเข้าใจ อาจจะเฉพาะเจาะจงเกินไป แต่ฉันคิดว่ามันคุ้มค่ากับการยิง

4
การตัดไม้ที่เท่าเทียมกันจากไม้ที่แตกต่างกัน
คุณมีแท่งของความยาวโดยพลการไม่จำเป็นต้องเป็นหนึ่งnnn โดยการตัดไม้บางส่วน (หนึ่งตัดตัดหนึ่งแท่ง แต่เราสามารถตัดได้บ่อยเท่าที่เราต้องการ) คุณต้องการที่จะได้รับแท่งเช่นนั้น:k&lt;nk&lt;nk<n ทั้งหมดเหล่านี้แท่งมีความยาวเดียวกัน;kkk แท่งทั้งหมดอย่างน้อยก็เท่ากับแท่งอื่น ๆ ทั้งหมดkkk โปรดทราบว่าเราได้รับแท่งหลังจากทำการตัดCn+Cn+Cn + CCCC คุณใช้อัลกอริทึมแบบใดที่จำนวนการตัดที่จำเป็นน้อยที่สุด? และหมายเลขนั้นคืออะไร? ยกตัวอย่างเช่นใช้และใด ๆ อัลกอริทึมต่อไปนี้สามารถใช้ได้:n ≥ 2k=2k=2k=2n≥2n≥2n\geq 2 สั่งซื้อไม้โดยการเรียงลำดับของความยาวดังกล่าวว่าL_nL1≥L2≥…≥LnL1≥L2≥…≥LnL_1\geq L_2 \geq \ldots \geq L_n ถ้าตัดแปะ # 1 ถึงสองชิ้นเท่ากัน ขณะนี้มีสองแท่งความยาวซึ่งเป็นอย่างน้อยเป็นเวลานานเป็นไม้ที่เหลือnL 1 / 2 2 ... nL1≥2L2L1≥2L2L_1\geq 2 L_2L1/2L1/2L_1 / 22…n2…n2 \ldots n มิฉะนั้น ( ) ตัดติด # 1 ถึงสองชิ้นไม่เท่ากันขนาดและL_1-L_2ขณะนี้มีสองแท่งความยาวซึ่งมีความยาวมากกว่าและไม้อื่น …

1
ความซับซ้อนของอัลกอริทึมที่ไร้เดียงสาในการค้นหาสตริงย่อย Fibonacci ที่ยาวที่สุด
เมื่อได้รับสองสัญลักษณ์และbให้นิยามสตริงk -th Fibonacci ดังนี้aa\text{a}bb\text{b}kkk F(k)=⎧⎩⎨baF(k−1)⋆F(k−2)if k=0if k=1elseF(k)={bif k=0aif k=1F(k−1)⋆F(k−2)else F(k) = \begin{cases} \text{b} &\mbox{if } k = 0 \\ \text{a} &\mbox{if } k = 1 \\ F(k-1) \star F(k-2) &\mbox{else} \end{cases} ด้วย denoting string concatenation⋆⋆\star ดังนั้นเราจะมี: F(0)=bF(0)=bF(0) = \text{b} F(1)=aF(1)=aF(1) = \text{a} F(2)=F(1)⋆F(0)=abF(2)=F(1)⋆F(0)=abF(2) = F(1) \star F(0) = \text{ab} F(3)=F(2)⋆F(1)=abaF(3)=F(2)⋆F(1)=abaF(3) …

2
ปัญหาความสัมพันธ์ที่เท่าเทียมกันครอบคลุม (ในทฤษฎีกราฟ)
ความสัมพันธ์ที่เท่าเทียมกันบนเซตจุดสุดยอดที่ จำกัด สามารถแสดงด้วยกราฟที่ไม่ได้บอกทิศทางซึ่งเป็นสหภาพที่แยกออกจากกัน ชุดจุดสุดยอดแสดงให้เห็นถึงองค์ประกอบและขอบแสดงให้เห็นว่าทั้งสององค์ประกอบจะเทียบเท่า ถ้าฉันมีกราฟและกราฟเราบอกว่าถูกปกคลุมด้วยถ้าชุดของขอบของเท่ากับชุดของขอบของ, ชุดขอบของไม่จำเป็นต้องแยกออก โปรดทราบว่ากราฟที่ไม่ได้บอกทิศทางใด ๆสามารถครอบคลุมได้โดยมีจำนวนเท่ากันของความสัมพันธ์ที่เท่ากันGGGG1,…,GkG1,…,GkG_1,\dots,G_kGGGG1,…,GkG1,…,GkG_1,\dots,G_kGGGG1,…,GkG1,…,GkG_1,\dots,G_kG1,…,GkG1,…,GkG_1,\dots,G_kGGG ฉันมีคำถามหลายข้อ: สิ่งที่สามารถพูดได้เกี่ยวกับความสัมพันธ์จำนวนเท่ากันที่น้อยที่สุดที่จำเป็นสำหรับการครอบคลุมกราฟ ?GGG เราจะคำนวณจำนวนขั้นต่ำนี้ได้อย่างไร? เราจะคำนวณการครอบคลุมขั้นต่ำที่ชัดเจนของอย่างไรเช่นชุดของความสัมพันธ์ที่เท่าเทียมซึ่งมีขนาดน้อยที่สุดและครอบคลุมใดGGGGGG ปัญหานี้มีแอปพลิเคชันนอกเหนือจากโลจิคัลพาร์ติชัน ( คู่ของตรรกะของชุดย่อย ) หรือไม่? ปัญหานี้มีชื่อที่ยอมรับแล้วหรือไม่? จากความเข้าใจผิดต่างๆที่ระบุโดยความคิดเห็นต่อไปนี้เป็นภาพบางส่วนที่แสดงให้เห็นถึงแนวคิดเหล่านี้ หากคุณมีความคิดที่จะเข้าใจคำศัพท์ได้ง่ายขึ้น (แทนที่จะเป็น "ปก", "ความสัมพันธ์ที่เท่าเทียมกัน", "disjoint union of cliques" และ "ไม่จำเป็นต้องแยกจากกัน" ชุดของขอบ) อย่าลังเลที่จะแจ้งให้เราทราบ นี่คือภาพของกราฟและความสัมพันธ์หนึ่งอันที่ครอบคลุม: นี่คือภาพของกราฟและความสัมพันธ์ที่เท่าเทียมกันสองตัวที่ครอบคลุม: มันควรจะค่อนข้างชัดเจนว่าต้องมีความสัมพันธ์อย่างน้อยสองความสัมพันธ์ นี่คือรูปภาพของกราฟและความสัมพันธ์ที่เท่าเทียมกันสามค่าที่ครอบคลุม: มันชัดเจนน้อยกว่าว่าต้องมีความสัมพันธ์อย่างเท่าเทียมกันอย่างน้อยสามอย่าง Lemma 1.9 จากDual of the Logic of Subsetsสามารถนำมาใช้เพื่อแสดงให้เห็นว่านี่เป็นเรื่องจริง ลักษณะทั่วไปของบทแทรกนี้ไปยังการดำเนินการ nand ที่มีมากกว่าสองอินพุตเป็นแรงจูงใจสำหรับคำถามนี้

3
ทำไมต้อง Miller-Rabin แทนการทดสอบแบบดั้งเดิมของแฟร์มาต์?
จากการพิสูจน์ของมิลเลอร์ - ราบินหากตัวเลขผ่านการทดสอบแบบดั้งเดิมของแฟร์มาต์มันจะต้องผ่านการทดสอบมิลเลอร์ - ราบินด้วยฐานเดียวกัน (ตัวแปรในการพิสูจน์) และความซับซ้อนในการคำนวณก็เหมือนกันaaa ต่อไปนี้มาจากการทดสอบแบบดั้งเดิมของแฟร์มาต์ : ในขณะที่ตัวเลขร์ไมเคิลเป็นอย่างมากที่ทำได้ยากยิ่งกว่าตัวเลขที่สำคัญ, 1มีเพียงพอของพวกเขาว่าการทดสอบ primality แฟร์มาต์มักจะไม่ได้ใช้ในรูปแบบดังกล่าวข้างต้น แต่ส่วนขยายที่มีประสิทธิภาพมากขึ้นอื่น ๆของการทดสอบแฟร์มาต์เช่นเบลลี-PSW, มิลเลอร์ราบินและ Solovay Strassen-มีการใช้กันอย่างแพร่หลาย ประโยชน์ของ Miller-Rabin คืออะไรและเหตุใดจึงกล่าวได้ว่ามีประสิทธิภาพมากกว่าการทดสอบแบบดั้งเดิมของแฟร์มาต์?

1
การพิสูจน์แบบสั้นและลื่นไหลของทฤษฎีคู่ที่แข็งแกร่งสำหรับการเขียนโปรแกรมเชิงเส้น
พิจารณาโปรแกรมเชิงเส้น D u a l : → c ≤ → y T APr i m a l :A x⃗ ≤ b⃗ สูงสุดc⃗ Tx⃗ Primal:Ax→≤b→maxc→Tx→\begin{array}{|ccc|} \hline Primal: & A\vec{x} \leq \vec{b} \hspace{.5cm} & \max \vec{c}^T\vec{x} \\ \hline \end{array} D ยูลิตร:ค⃗ ≤ y⃗ TAขั้นต่ำy⃗ Tข⃗ Dual:c→≤y→TAminy→Tb→\begin{array}{|ccc|} \hline Dual: & \vec{c} \leq \vec{y}^TA …

1
วิธีง่ายๆในการพิสูจน์ว่าอัลกอริทึมนี้สิ้นสุดลงในที่สุด
บทนำและสัญลักษณ์: นี่คืออัลกอริทึมใหม่และเรียบง่ายของฉันซึ่งดูเหมือนว่าจะยุติ (ตามการทดลองของฉัน) และตอนนี้ฉันอยากจะพิสูจน์มัน ปล่อยสัญกรณ์อ้างถึงจุดข้อมูลมิติ (เวกเตอร์) ฉันมีสามชุด A, B และ C เช่นนั้น , , : x i ∈ R pxผม∈ Rพีx_i \in \mathbb{R}^p p พีp| A | = n | A | =n|A| = n| B | = m | B | =m|B| = m| C | = l | …

3
การลดความยาวสายไฟ
ปัญหาของฉันเป็นเช่นนี้: ฉันมีรูปแบบทางกายภาพที่แสดงเป็นกราฟ โหนดแสดงถึง hooks / ducts ที่ลวดสามารถยึดและขอบเป็นการเชื่อมต่อที่เป็นไปได้ระหว่าง 2 โหนดจากที่ลวดสามารถไป มีโหนดพิเศษบางอย่างที่เรียกว่าตัวแยกซึ่งสามารถแยกลวดเส้นเดียวได้ถึง 2 เส้นหรือมากถึง k k สามารถคงที่ได้ในตอนนี้ แต่จะแตกต่างกันไปในแต่ละโหนด ไม่ใช่ทุกโหนดที่เป็นตัวแยก มีแหล่งพลังงานหนึ่งแหล่งที่สายจะเกิดขึ้น มันเป็นแหล่งที่มา ลวดจะต้องถูกนำไปที่อ่างล้างมือ n ขอบสามารถนำลวดจำนวนเท่าใดก็ได้ที่ผ่านเข้าไปในทิศทางใดก็ได้ ความยาวลวดทั้งหมดจะต้องลดลง ธรรมชาติของกราฟระนาบหรือยูคลิดไม่เป็นที่รู้จัก ตัวอย่าง : ด้านล่างเป็นเครือข่ายตัวอย่าง โหนดถูกตั้งชื่อเป็นตัวเลขและขอบมีน้ำหนักเท่ากับ 1 ที่มาคือ Node1 และ Sinks เป็น Node5, Node9 และ Node13 ในกรณีที่ 1 Node6 เป็นโหนดตัวแยก ในกรณีที่ 2 Node6 และ Node4 เป็นโหนดตัวแยก k = …

4
ตัวอย่างของอัลกอริทึมที่คำสั่งต่ำมีอิทธิพลเหนือรันไทม์สำหรับการใช้งานจริงหรือไม่?
สัญกรณ์ Big-O ซ่อนปัจจัยที่คงที่ดังนั้นอัลกอริทึมตัวจึงไม่สามารถใช้ได้กับขนาดอินพุตที่เหมาะสมใด ๆ เนื่องจากสัมประสิทธิ์ของเทอมnนั้นมีขนาดใหญ่มากO(n)O(n)O(n)nnn จะมีผู้ใดขั้นตอนวิธีการที่รู้จักกันมี runtime คือแต่มีบางใบสั่งต่ำo ( F ( n ) )คำที่มีขนาดใหญ่เพื่อให้สำหรับการป้อนข้อมูลที่เหมาะสมขนาดมันสมบูรณ์ครอบงำรันไทม์? ฉันต้องการใช้อัลกอริทึมเช่นนี้เป็นตัวอย่างในหลักสูตรอัลกอริทึมเพราะมันให้เหตุผลที่ดีว่าทำไมสัญกรณ์ O-Big ไม่ใช่สิ่งใดเลยต( f( n ) )O(ฉ(n))O(f(n))o (f( n ) )โอ(ฉ(n))o(f(n)) ขอบคุณ!

3
เมื่อทำการทดสอบไอเท็ม n จะครอบคลุม t-subset ทั้งหมดให้น้อยที่สุดเท่าที่จะทำได้?
ปัญหานี้เกิดขึ้นจากการทดสอบซอฟต์แวร์ ปัญหาเป็นเรื่องยากที่จะอธิบาย ฉันจะให้ตัวอย่างก่อนจากนั้นพยายามสรุปปัญหา มี 10 รายการที่จะทดสอบพูด A ถึง J และเครื่องมือทดสอบที่สามารถทดสอบ 3 รายการได้ในเวลาเดียวกัน ลำดับของรายการในเครื่องมือทดสอบไม่สำคัญ แน่นอนว่าสำหรับการทดสอบแบบละเอียดเราจำเป็นต้องมีรายการรวมกันเป็นรายการ10C310C3^{10}C_{3} ปัญหาซับซ้อนมากขึ้น มีเงื่อนไขเพิ่มเติมว่าเมื่อคู่ของรายการได้รับการทดสอบร่วมกันกว่าคู่เดียวกันไม่จำเป็นต้องมีการทดสอบอีกครั้ง ตัวอย่างเช่นเมื่อเราดำเนินการทดสอบสามข้อต่อไปนี้: เอบีซี ADE BDF เราไม่จำเป็นต้องดำเนินการ: ABD เนื่องจากคู่ A, B ถูกครอบคลุมโดยกรณีทดสอบครั้งแรก A, D ถูกครอบคลุมโดยวินาทีและ B, D ถูกครอบด้วยอันดับที่สาม ดังนั้นปัญหาคือจำนวนกรณีทดสอบขั้นต่ำที่เราต้องการเพื่อให้แน่ใจว่าทุกคู่ทดสอบ? ในการพูดคุยทั่วไปหากเรามีรายการ n รายการ s สามารถทดสอบได้ในเวลาเดียวกันและเราต้องแน่ใจว่า tuples ที่เป็นไปได้ทั้งหมดได้รับการทดสอบ (เช่น s&gt; t) จำนวนกรณีทดสอบขั้นต่ำที่เราต้องการคืออะไร เงื่อนไขของ n, s และ t? และท้ายที่สุดสิ่งที่จะเป็นอัลกอริทึมที่ดีในการสร้างกรณีทดสอบที่จำเป็น?

1
มีวิธีทดสอบว่า NFA สองแห่งยอมรับภาษาเดียวกันหรือไม่
หรืออย่างน้อยก็สร้างชุดของสตริงที่ NFA หนึ่งยอมรับดังนั้นฉันสามารถป้อนลงใน NFA อื่นได้ หากฉันค้นหาทุกเส้นทางของ NFA จะสามารถใช้งานได้หรือไม่ ถึงแม้ว่าจะใช้เวลานาน

2
หนึ่งจะสร้างลำดับไบนารีทั้งหมดได้อย่างมีประสิทธิภาพด้วยจำนวนที่เท่ากันของ 0 และ 1 อย่างไร
ลำดับไบนารีของความยาวเป็นเพียงลำดับเพื่อให้แต่ละเป็นทั้งหรือ1เพื่อสร้างลำดับไบนารีดังกล่าวทั้งหมดเราสามารถใช้โครงสร้างต้นไม้ไบนารีที่เห็นได้ชัดในวิธีต่อไปนี้: รากคือ "ว่าง" แต่ลูกซ้ายแต่ละคนสอดคล้องกับการเพิ่มถึงสตริงที่มีอยู่และแต่ละลูกที่เหมาะสมกับ . ทีนี้ลำดับของไบนารีแต่ละคู่เป็นเพียงเส้นทางที่มีความยาวเริ่มต้นที่รูทและจบที่ลีฟnnnx1,…,xnx1,…,xnx_1,\ldots,x_nxjxjx_j000111000111n+1n+1n+1 นี่คือคำถามของฉัน: เราสามารถทำได้ดีกว่าถ้าเราเพียง แต่ต้องการสร้างสตริงไบนารีทั้งหมดของความยาวที่มีได้อย่างแม่นยำศูนย์และคน?2n2n2nnnnnnn โดย "เราทำได้ดีกว่า" ฉันหมายความว่าเราควรมีความซับซ้อนต่ำกว่าอัลกอริธึมโง่ที่สร้างต้นไม้ทั้งหมดขึ้นด้านบนแล้วพยายามหาเส้นทางเหล่านั้นด้วยขอบซ้ายและขวา

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