วิทยาศาสตร์คอมพิวเตอร์

ถาม - ตอบสำหรับนักเรียนนักวิจัยและผู้ปฏิบัติงานด้านวิทยาการคอมพิวเตอร์

6
การหาค่า XOR สูงสุดของตัวเลขสองตัวในช่วงเวลาหนึ่ง: เราจะทำได้ดีกว่าสมการกำลังสองหรือไม่?
สมมติว่าเรากำลังได้รับสองหมายเลขและและที่เราต้องการที่จะหาสำหรับL \ le i, \, J \ le Rlllrrrmax(i⊕j)max(i⊕j)\max{(i\oplus j)}l≤i,j≤rl≤i,j≤rl\le i,\,j\le r อัลกอริทึมnaïveเพียงตรวจสอบคู่ที่เป็นไปได้ทั้งหมด เช่นในทับทิมเรามี: def max_xor(l, r) max = 0 (l..r).each do |i| (i..r).each do |j| if (i ^ j > max) max = i ^ j end end end max end ฉันรู้สึกว่าเราสามารถทำได้ดีกว่าสมการกำลังสอง มีอัลกอริทึมที่ดีกว่าสำหรับปัญหานี้หรือไม่?

3
“ ข้อมูลที่ไม่ใช่ทางพยาธิวิทยา” หมายความว่าอะไร?
ฉันเข้าคลาสอัลกอริทึมบน Coursera ศาสตราจารย์ในวิดีโอเกี่ยวกับตารางแฮชกล่าวว่า สิ่งที่เป็นจริงคือสำหรับข้อมูลที่ไม่ใช่ทางพยาธิวิทยาคุณจะได้รับการดำเนินการเวลาคงที่ในตารางแฮชที่นำมาใช้อย่างเหมาะสม "ข้อมูลที่ไม่ใช่ทางพยาธิวิทยา" หมายความว่าอะไร? คุณยกตัวอย่างได้บ้าง

2
อะไรคืออัลกอริธึมที่ล้ำสมัยสำหรับการค้นหาเส้นทางบนแผนที่ต่อเนื่องของโลก?
สมมติว่าฉันมีเรือสำเภาด้วยตนเองที่ใช้พลังงานแสงอาทิตย์อยู่ที่ไหนสักแห่งในฟยอร์ดของนอร์เวย์ซึ่งมาพร้อมกับแผนที่ชุดล่าสุดตัวรับสัญญาณ GPS และไม่มีคำสั่งรายละเอียดเกี่ยวกับการลิงก์จากฉัน เรือลำนี้ต้องไปถึงให้ได้ถึงเกาะไหหลำในช่วงเวลาที่เร็วที่สุดเท่าที่จะเป็นไปได้ อะไรคืออัลกอริทึมที่กำหนดไว้สำหรับการค้นหาเส้นทางการเดินเรือในโลก? ความซับซ้อนของเวลาและหน่วยความจำคืออะไร ยกตัวอย่างเช่นฉันสามารถใช้ A * หลังจากเปลี่ยนแผนที่ของโลกเป็นแผนภาพที่มีรูปหลายเหลี่ยมที่เชื่อมต่อกัน (เช่น Delaunay triangulation บนทรงกลม / ทรงรี) และอะไรคือวิธีการอื่นที่เป็นไปได้? คำตอบควรให้การอ้างอิงไปยังเอกสารด้วยการอภิปรายคำถามที่กล่าวถึงข้างต้น ตามที่Rob Langชี้ให้เห็นอัลกอริทึมจะต้องตรงกับเกณฑ์ปกติ: ในกรณีที่ไม่มีเวลา จำกัด นำไปสู่เส้นทางที่สั้นที่สุดระหว่างจุดสองจุดใด ๆ บนมหาสมุทรและทะเลของโลกหรือบ่งบอกถึงความล้มเหลวในการหาเส้นทาง มีหัวข้อย่อยที่น่าสนใจที่นี่ (ซื้อขายเวลาคำนวณล่วงหน้า / พื้นที่เก็บข้อมูลสำหรับการคำนวณออนไลน์ให้เส้นทางที่ไม่ดีเล็กน้อยก่อนที่จะถึงกำหนดส่งใน ฯลฯ ) แต่สิ่งเหล่านี้เป็นส่วนเสริมของปัญหาหลัก

1
จำนวนภาษาปกติที่แตกต่างกัน
เมื่อได้รับตัวอักษรΣ={a,b}Σ={a,b}\Sigma = \{ a,b \}มีภาษาปกติที่แตกต่างกันจำนวนกี่ตัวที่สามารถยอมรับได้โดยnnn state non-deterministic เป็นตัวอย่างให้เราพิจารณาn=3n=3n=3 3 แล้วเรามี2182182^{18}การกำหนดค่าการเปลี่ยนแปลงที่แตกต่างกันและ23232^3ที่แตกต่างกันที่เริ่มต้นและสิ้นสุดการกำหนดค่าของรัฐเพื่อให้เราได้ผูกพันบนของ2242242^{24}ภาษาที่แตกต่างกัน อย่างไรก็ตามสิ่งเหล่านี้จะเทียบเท่าและเนื่องจากการทดสอบสำหรับ PSPACE-Complete จึงอาจไม่สามารถทดสอบแต่ละการตั้งค่าได้ มีวิธีการอื่นหรือข้อโต้แย้งแบบ combinatorial ซึ่ง จำกัด จำนวนภาษาที่แตกต่างกันซึ่งได้รับการยอมรับจากทรัพยากรที่ให้ไว้หรือไม่?

1
ทำไมอัลกอริทึม Hindley-Milner จะไม่ให้ผลเช่น t1 -> t2
ฉันกำลังอ่านเกี่ยวกับอัลกอริทึมการพิมพ์ของ Hindley-Milnerในขณะที่เขียนการนำไปใช้และดูว่าตราบใดที่ตัวแปรทุกตัวถูกผูกไว้คุณจะได้รับประเภทอะตอมมิกหรือประเภทที่อาร์กิวเมนต์จะกำหนดประเภทสุดท้ายเช่นt1 -> t1หรือ(t1 -> t2) -> (t1 -> t2)ที่ไหนt1และt2เป็นตัวแปรประเภท ฉันไม่สามารถคิดวิธีที่คุณจะได้รับสิ่งที่ชอบt1 -> t2หรือง่ายๆt1ซึ่งฉันเข้าใจว่าหมายความว่าอัลกอริทึมเสียเนื่องจากไม่มีวิธีกำหนดประเภทของนิพจน์ที่แท้จริง คุณจะรู้ได้อย่างไรว่าคุณจะไม่ได้รับประเภทเช่นคนที่ "เสีย" เหล่านี้ตราบใดที่ตัวแปรทุกตัวถูกผูกไว้ ฉันรู้ว่าประเภทอัตราผลตอบแทนขั้นตอนวิธีการที่มีตัวแปร t1 -> t2แต่เหล่านี้ได้รับการแก้ไขเสมอเมื่อคุณผ่านการขัดแย้งกับการทำงานซึ่งจะไม่เป็นกรณีในการทำงานกับชนิด นี่คือเหตุผลที่ฉันต้องการทราบว่าเรารู้ได้อย่างไรว่าอัลกอริทึมจะไม่ให้ผลเช่นนั้น (ดูเหมือนว่าคุณจะได้รับประเภท "เสีย" ใน MLแต่ฉันถามเกี่ยวกับแคลคูลัสแลมบ์ดา)

4
จำเป็นต้องมีการโอนถ่ายสำหรับอัลกอริทึมการเรียงลำดับหรือไม่
เป็นไปได้หรือไม่ที่จะใช้อัลกอริธึมการจัดเรียงที่มีการเปรียบเทียบแบบไม่ใช้สกรรมกริยาและถ้าใช่ทำไมความไวแสงมีการระบุไว้เป็นข้อกำหนดสำหรับการเรียงลำดับการเปรียบเทียบ? พื้นหลัง: อัลกอริทึมการเรียงลำดับโดยทั่วไปเรียงลำดับองค์ประกอบของรายการตามฟังก์ชันตัวเปรียบเทียบ C (x, y) ด้วย C(x,y)=⎧⎩⎨−10+1if x≺yif x∼yif x≻yC(x,y)={−1if x≺y0if x∼y+1if x≻y\begin{array}{ll} C(x,y) = \begin{cases} -1 & {\text{if}}\ x\prec y \\ 0 & {\text{if}}\ x\sim y \\ +1 & {\text{if}}\ x\succ y \\ \end{cases} \end{array} ข้อกำหนดสำหรับเครื่องมือเปรียบเทียบนี้เท่าที่ฉันเข้าใจ: สะท้อนกลับ: ∀x:C(x,x)=0∀x:C(x,x)=0\forall x: C(x,x)=0 antisymmetric: ∀x,y:C(x,y)=−C(y,x)∀x,y:C(x,y)=−C(y,x)\forall x,y: C(x,y) = - C(y,x) สกรรมกริยา: …

3
ความซับซ้อนของปัญหาการยอมรับลูกแมว
นี้ขึ้นมาในขณะที่ผมพยายามที่จะตอบคำถามนี้ได้ที่ สายไฟความยาวลด ฉันจะเรียกสิ่งนี้ว่า "ปัญหาการแต่งงานหลายคน" แต่อินเทอร์เน็ตดังนั้นลูกแมว เย้! สมมติว่าเรามีMMMลูกแมวที่จะต้องนำไปใช้โดยNNNคนM>NM>NM > N N สำหรับแต่ละลูกแมวiiiและแต่ละคนjjjมีค่าใช้จ่ายcijcijc_{ij}เจ เราต้องการลดค่าใช้จ่ายโดยรวมในการรับลูกแมวทั้งหมดที่นำมาใช้ นอกจากนี้ยังมีชุดของข้อ จำกัด : แต่ละคนjjjสามารถที่จะนำมาใช้ไม่เกินujuju_jลูกแมว ปัญหาจะง่ายมากหากไม่มีข้อ จำกัด ลูกแมวแต่ละตัวiiiไปกับบุคคลjjjซึ่งcijcijc_{ij}นั้นน้อยที่สุด ด้วยข้อ จำกัด มีอัลกอริธึมที่มีประสิทธิภาพสำหรับปัญหานี้หรือว่าเป็นปัญหา NP-hard

4
การคำนวณความแตกต่างระหว่างชุดใหญ่สองชุด
ฉันมีจำนวนเต็มและB จำนวนมาก แต่ละชุดมีประมาณหนึ่งล้านรายการและแต่ละรายการเป็นจำนวนเต็มบวกที่มีความยาวสูงสุด 10 หลัก AAABBB อัลกอริทึมที่ดีที่สุดในการคำนวณและB ∖ Aคืออะไร กล่าวอีกนัยหนึ่งฉันจะคำนวณรายการของAที่ไม่มีในBและในทางกลับกันได้อย่างมีประสิทธิภาพได้อย่างไร อะไรคือโครงสร้างข้อมูลที่ดีที่สุดในการเป็นตัวแทนของสองชุดนี้เพื่อให้การดำเนินการเหล่านี้มีประสิทธิภาพA∖BA∖BA\setminus BB∖AB∖AB\setminus AAAABBB วิธีที่ดีที่สุดที่ฉันสามารถทำได้คือเก็บสองชุดนี้เป็นรายการที่เรียงลำดับแล้วเปรียบเทียบทุกองค์ประกอบของกับทุกองค์ประกอบของBในแบบเชิงเส้น เราทำได้ดีกว่านี้ไหมAAABBB

1
Universal Hashing ในทางปฏิบัติ
ตระกูลของฟังก์ชันแฮชเป็นสากลถ้า คุณสามารถค้นหาข้อมูลเพิ่มเติมเกี่ยวกับวิกิพีเดียคร่ำเครียดสากลนี้บทความHHHh : คุณ→ { 0 , … , M- 1 }ชั่วโมง:ยู→{0,...,M-1}h: U \rightarrow \{0,\ldots,M-1\}∀ x , y∈ คุณ, x ≠ y⇒ ประชาสัมพันธ์h ∈ H[ h ( x ) = h ( y) ] ≤ 1M∀x,Y∈ยู,x≠Y⇒ราคาชั่วโมง∈H[ชั่วโมง(x)=ชั่วโมง(Y)]≤1M\forall x,y \in U, x \neq y \Rightarrow \Pr_{h \in H}[h(x) = h(y)] \leq \frac{1}{M} …

1
คุณจะผูกข้อผิดพลาดของการประมาณโดยไม่ทราบวิธีแก้ปัญหาที่ดีที่สุดได้อย่างไร
ฉันดูที่เว็บไซต์นี้และบอกว่าผู้คนค้นพบวิธีแก้ปัญหาสำหรับทัวร์ TSP ที่สูงกว่าทัวร์ที่ดีที่สุดเพียง 0.031% โดยไม่ต้องค้นหาทัวร์ที่ดีที่สุดพวกเขารู้ว่าความยาวที่ควรจะเป็นอย่างไร

2
ได้อย่างมีประสิทธิภาพการสุ่มตัวอย่างที่สั้นที่สุด
ให้เป็นกราฟและให้sและเสื้อมีสองจุดของG เราสามารถได้อย่างมีประสิทธิภาพตัวอย่างที่สั้นที่สุดs - เสื้อเส้นทางสม่ำเสมอและเป็นอิสระโดยการสุ่มจากชุดของเส้นทางที่สั้นที่สุดทั้งหมดระหว่างsและเสื้อ ? เพื่อความง่ายเราสามารถสรุปได้ว่าGนั้นง่ายไม่ได้บอกทิศทางและไม่มีน้ำหนักGGGssstttGGGssstttssstttGGG แม้ในกราฟที่ จำกัด จำนวนมากจำนวนเส้นทางที่สั้นที่สุดระหว่างและtสามารถเป็นเลขชี้กำลังเป็นขนาดGได้ ดังนั้นเราจึงจะเป็นธรรมชาติเหมือนจริงหลีกเลี่ยงการคำนวณทั้งหมดที่สั้นที่สุดs - เสื้อเส้นทาง ฉันไม่รู้เกี่ยวกับกรณีทั่วไป แต่สำหรับฉันแล้วเราสามารถทำสิ่งนี้เพื่อเรียนกราฟพิเศษได้ssstttGGGsssttt รู้สึกเหมือนมีบางสิ่งที่บางคนต้องพิจารณาก่อน มีการวิจัยที่มีอยู่ในเรื่องนี้หรืออันที่จริงแล้วมันง่ายที่จะทำแม้กระทั่งกราฟทั่วไป?

2
เส้นทางที่ไม่ตัดกันสั้นที่สุดสำหรับกราฟที่ฝังอยู่ในระนาบแบบยุคลิด (2D)
อัลกอริธึมอะไรที่คุณจะใช้เพื่อค้นหาเส้นทางที่สั้นที่สุดของกราฟซึ่งฝังอยู่ในระนาบแบบยุคลิดซึ่งเส้นทางนั้นไม่ควรมีจุดตัดด้วยตนเอง (ในการฝัง) ยกตัวอย่างเช่นในกราฟด้านล่างที่คุณต้องการจะไปจากที่ ) โดยปกติอัลกอริทึมอย่างอัลกอริทึมของ Dijkstra จะสร้างลำดับดังนี้:( 0 , 0 ) → ( - 3 , 2 )(0,0)→(-3,2)(0,0) \rightarrow (-3,2) [ ( 0 , 0 ) →3( 0 , 3 ) →2√( 1 , 2 ) →4( - 3 , 2 ) ] = 7 + 2-√.[(0,0)→3(0,3)→2(1,2)→4(-3,2)]=7+2.\left[ (0,0) \stackrel {3}{\rightarrow} …

2
มีเอกสารที่ผ่านการตรวจสอบโดยผู้เชี่ยวชาญเพื่อศึกษาข้อดีข้อเสียของการเขียนโปรแกรมเชิงหน้าที่หรือไม่?
ใครบางคนสามารถแนะนำให้ฉันดูเอกสารที่ผ่านการตรวจสอบโดยการศึกษาข้อดีหรือข้อเสียของการเขียนโค้ดในรูปแบบการทำงานได้หรือไม่? มีเอกสารที่พูดถึงการใช้งานของแลมบ์ดาแคลคูลัสในสาขาต่าง ๆ เช่นการเรียนรู้ของเครื่องการออกแบบภาษา ฯลฯ หรือไม่?

4
กดปุ่ม Automatons“ เดา” - นั่นหมายความว่าอย่างไร
ฉันรู้ว่าออโตเมต้าที่ไม่สามารถกำหนดค่าได้สามารถปรับปรุงให้ดีขึ้นกว่าที่กำหนดได้เนื่องจากพวกเขาสามารถ "เลือก" ในหลาย ๆ รัฐและมีภาษาที่ไม่มีบริบทซึ่งไม่สามารถยอมรับได้โดยการกดลงที่กำหนดขึ้นมา แต่ฉันก็ยังไม่เข้าใจวิธีการที่พวกเขา "เลือก" สำหรับ Palindormes เช่นทุกแหล่งที่ฉันพบเพียงว่าหุ่นยนต์ "เดา" ตรงกลางของคำ นั่นหมายความว่าอย่างไร? ฉันสามารถคิดถึงความหมายที่เป็นไปได้หลายประการ: มันจะเข้าสู่สถานะหนึ่งโดยการสุ่มดังนั้นจึงอาจไม่ยอมรับคำศัพท์ซึ่งจริงๆแล้วเป็นภาษา "ไปได้ทุกทาง" ดังนั้นถ้าคนแรกผิดก็ทำการทดสอบว่าอีกคนหนึ่งอาจถูก มีกลไกบางอย่างที่ฉันไม่ทราบซึ่งเลือกตรงกลางของคำและดังนั้นจึงไม่ใช่แบบสุ่ม แต่หุ่นยนต์จะค้นหาจุดกึ่งกลางที่ถูกต้องเสมอ นี่เป็นเพียงตัวอย่างเท่านั้น สิ่งที่ฉันอยากรู้ก็คือมันทำงานอย่างไรสำหรับหุ่นยนต์ที่มีสถานะต่อไปนี้หลายสถานะสำหรับสถานะหนึ่งและสถานะเดียวกันก่อนหน้านี้

3
เหตุใดการลดขนาด NFA จึงเป็นปัญหายากเมื่อการย่อขนาด DFA ไม่ได้
ฉันรู้ว่าเราสามารถลด DFAs ได้ด้วยการค้นหาและผสานสถานะเทียบเท่า แต่ทำไมเราไม่ทำเช่นเดียวกันกับ NFA ฉันไม่ได้มองหาข้อพิสูจน์หรืออะไรแบบนั้น - เว้นแต่จะพิสูจน์ได้ง่ายกว่าที่จะเข้าใจ ฉันแค่ต้องการที่จะเข้าใจอย่างถ่องแท้ว่าเหตุใดการลดขนาด NFA จึงเป็นเรื่องยากเมื่อ DFA ย่อขนาดไม่

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