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

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

2
ก่อนและหลังมีการตั้งค่าสำหรับไวยากรณ์ที่ไม่มีบริบทหรือไม่
ให้GGGเป็นไวยากรณ์ที่ไม่มีบริบท สตริงของอาคารและ nonterminals ของGGGบอกว่าจะเป็นรูปแบบ sententialของGGGถ้าคุณสามารถรับมันได้โดยการใช้โปรดักชั่นของGGGศูนย์ครั้งหรือมากกว่าที่จะเป็นสัญลักษณ์ของการเริ่มต้นของSSSSให้SF(G)SF⁡(G)\operatorname{SF}(G)เป็นชุดของรูปแบบ sentential ของGGGG ให้α∈SF(G)α∈SF⁡(G)\alpha \in \operatorname{SF}(G)และปล่อยให้ββ\betaเป็นย่อยของαα\alpha - เราเรียกส่วนของเอสเอฟ( G ) ตอนนี้ให้ββ\betaSF(G)SF⁡(G)\operatorname{SF}(G) Before(β)={γ | ∃δ.γβδ∈SF(G)}Before⁡(β)={γ | ∃δ.γβδ∈SF⁡(G)}\operatorname{Before}(\beta) = \{ \gamma \ |\ \exists \delta . \gamma \beta \delta \in \operatorname{SF}(G) \} และ After(β)={δ | ∃γ.γβδ∈SF(G)}After⁡(β)={δ | ∃γ.γβδ∈SF⁡(G)}\operatorname{After}(\beta) = \{ \delta \ |\ \exists \gamma . \gamma \beta …

3
มีอะไรผิดปกติกับจำนวนเงินของเงื่อนไขรถม้าสี่ล้อ?
ฉันเขียน ∑i=1n1i=∑i=1nO(1)=O(n)∑i=1n1i=∑i=1nO(1)=O(n)\qquad \displaystyle \sum\limits_{i=1}^n \frac{1}{i} = \sum\limits_{i=1}^n \cal{O}(1) = \cal{O}(n) แต่เพื่อนของฉันบอกว่านี่มันผิด จากแผ่นโกง TCS ฉันรู้ว่าผลรวมจะเรียกว่าซึ่งมีการเจริญเติบโตในลอการิทึมn ดังนั้นขอบเขตของฉันจึงไม่คมมาก แต่ก็เพียงพอสำหรับการวิเคราะห์ที่ฉันต้องการHnHnH_nnnn ฉันทำอะไรผิด? แก้ไข : เพื่อนของฉันบอกว่าด้วยเหตุผลเดียวกันเราสามารถพิสูจน์ได้ ∑i=1ni=∑i=1nO(1)=O(n)∑i=1ni=∑i=1nO(1)=O(n)\qquad \displaystyle \sum\limits_{i=1}^n i = \sum\limits_{i=1}^n \cal{O}(1) = \cal{O}(n) เห็นได้ชัดว่านี่ผิด! เกิดขึ้นที่นี่คืออะไร?

2
'คีย์' ในวิทยาศาสตร์คอมพิวเตอร์คืออะไร?
ฉันสับสนเล็กน้อยเกี่ยวกับความหมายของ 'คีย์' ในวิทยาศาสตร์คอมพิวเตอร์ ฉันเข้าใจคู่คีย์ - ค่า, คีย์หลัก, ฯลฯ ... แต่ฉันไม่สามารถหาคำจำกัดความของคำว่า 'คีย์' ได้ด้วยตัวเอง เท่าที่ฉันสามารถบอกได้ว่ามันหมายถึงชิ้นส่วนของข้อมูล ใน CLRS ข้อมูลที่เกี่ยวข้องกับโหนดต้นไม้จะถูกเรียกว่า 'keys' ข้อมูลในการค้นหาตารางแฮชเรียกว่า 'กุญแจ' นี่คือสิ่งที่ 'สำคัญ' คืออะไร?

1
ขั้นตอนที่รับประกันว่าจะออกจากเขาวงกต
ให้เขาวงกตแบบสองมิติซึ่งคุณสามารถให้คำสั่ง 4 คำสั่ง "เลื่อนขึ้น / ลง / ขวา / ซ้าย" การรู้จักเขาวงกต แต่ไม่ใช่ตำแหน่งของบุคคลเราจะค้นหาลำดับขั้นต่ำของคำสั่งที่รับประกันการออกจากเขาวงกตได้อย่างไร ฉันกำลังมองหาชุดคำสั่งลำดับเดียวที่จะทำงานไม่ว่าคุณจะเริ่มจากเขาวงกตที่ไหน สมมติว่าหากพันธมิตรของเราได้รับคำสั่ง "ย้ายไปทางขวา" เมื่อมีกำแพงอยู่ด้านขวาเขาจะอยู่ในที่ที่เขาอยู่ กล่าวอีกนัยหนึ่งเราจะได้รับเขาวงกตและเราจะต้องเลือกลำดับของคำสั่ง จากนั้นพันธมิตรของเราจะถูกวางไว้ที่ไหนสักแห่งในเขาวงกตและจะทำตามลำดับของคำสั่งที่เราเลือกไว้ล่วงหน้า เราต้องการลำดับนี้เพื่อให้แน่ใจว่าพันธมิตรของเราจะหลบหนีไม่ว่าพันธมิตรของเราจะวางไว้ที่ไหน โปรดทราบว่าคำสั่งที่อนุญาตไม่มีคำสั่งแบบมีเงื่อนไขใด ๆ ดังนั้นจึงไม่สามารถทำตามลำดับที่แตกต่างกันขึ้นอยู่กับคู่ของคุณ มีวิธีคิดแบบพหุนามเวลาในการสร้างลำดับดังกล่าวให้คำอธิบายของเขาวงกตหรือไม่? Yuval Filmus กล่าวถึงกรณีนี้เป็นกรณีพิเศษของปัญหาการซิงโครไนซ์คำและอาจเกี่ยวข้องกับลำดับการข้ามผ่านสากล ฉันยังพบกระดาษที่ดูเหมือนว่าเกี่ยวข้อง: ปัญหาพร้อมกันเขาวงกตแก้ Stefan Funke, André Nusser, Sabine Storandt AAAI 2017 น่าเสียดายสำหรับกราฟทั่วไปนี่ดูเหมือนจะเป็นปัญหาที่ยังไม่แก้ แต่ฉันสงสัยว่าอาจมีอัลกอริทึมที่ดีสำหรับกรณีเฉพาะนี้หรือไม่ ฉันมาพร้อมกับวิธีการของผู้สมัคร: ติดป้ายทุกตำแหน่งด้วยจำนวนขั้นต่ำที่ต้องการออกและติดตามทุกตัวแทนในเขาวงกต อาจเป็นไปได้ที่จะทำการค้นหาด้วยวิธีนี้

1
“ นักบันทึกที่มีชื่อเสียงได้สร้างข้อผิดพลาดที่น่าอับอายที่นี่” บรรทัดจาก SICP สิ่งนี้หมายถึงอะไร
นี่คือบริบท ( โครงสร้างและการแปลความหมายของโปรแกรมคอมพิวเตอร์หัวข้อ 1.1.8 ภายใต้หัวข้อ "ชื่อท้องถิ่น"): พารามิเตอร์ทางการของโพรซีเดอร์มีบทบาทพิเศษมากในนิยามโพรซีเดอร์ซึ่งไม่สำคัญว่าชื่อพารามิเตอร์อย่างเป็นทางการจะมีอะไร ชื่อดังกล่าวเรียกว่าตัวแปรที่ถูกผูกไว้และเราบอกว่าคำจำกัดความของกระบวนการผูกพารามิเตอร์ทางการของมัน ความหมายของนิยามโพรซีเดอร์ไม่เปลี่ยนแปลงหากตัวแปรขอบเขตถูกเปลี่ยนชื่ออย่างสม่ำเสมอตลอดทั้งนิยาม ในตอนท้ายของบรรทัดสุดท้ายนั้นจะมีเชิงอรรถ (26) ซึ่งกล่าวว่า: แนวคิดของการเปลี่ยนชื่อที่สอดคล้องกันนั้นแท้จริงแล้วเป็นเรื่องยากและยากที่จะกำหนดอย่างเป็นทางการ นักบันทึกข้อมูลที่มีชื่อเสียงได้สร้างข้อผิดพลาดที่น่าอับอายที่นี่ ข้อความอ้างอิงถึงอะไรหรือใคร ทำไมการกำหนด "การเปลี่ยนชื่อที่สอดคล้องกัน" จึงยากซึ่งนักบันทึกข้อผิดพลาดที่พยายามกำหนดสิ่งนี้และข้อผิดพลาดเหล่านั้นคืออะไร
14 logic 

1
ปัญหาทางคณิตศาสตร์แบบใดที่สามารถแก้ไขได้โดยผู้พิสูจน์ทฤษฎีบทอัตโนมัติ
ฉันสามารถพิสูจน์ข้อความต่อไปนี้โดยใช้ผู้พิสูจน์ทฤษฎีบทอัตโนมัติที่มีอยู่ได้หรือไม่? (a+b)2=a2+b2+2ab(a+b)2=a2+b2+2ab(a+b)^2=a^2+b^2+2ab(A ถ้าแล้ว7a-5B11∣2a−3b11∣2a−3b 11 \mid 2a-3b11∣7a−5b11∣7a−5b 11 \mid 7a-5b ถ้าแล้ว2-4ac}}}ax2+bx+c=0ax2+bx+c=0 ax^2+bx+c=0x=−b±b2−4ac√2ax=−b±b2−4ac2ax=\frac{-b\pm\sqrt{b^2-4ac} }{2a} หากคือค่าแม้จะเป็นเช่นนั้นaaa4a4a4a และอื่น ๆ ! ฉันถามคำถามนี้เพราะฉันเพิ่งค้นพบการประยุกต์ใช้ทฤษฎีบทอัตโนมัติในการพิสูจน์ทฤษฎีบทด้วยเหตุผล

2
มีแนวคิดสำหรับอัลกอริทึมที่คำนวณฟังก์ชันโดยค้นหาอัลกอริทึมอื่นก่อนหรือไม่?
ถ้าฉันเข้าใจอย่างถูกต้องอัลกอริทึมที่คำนวณค่าของฟังก์ชันมีความซับซ้อนในการคำนวณO ( g ( n ) )ถ้ามีค่าต่อไปนี้: เมื่อเราคำนวณfถึงความแม่นยำδต้องใช้ลำดับของg ( n )ขั้นตอนfffO(g(n))O(g(n))O(g(n))fffδδ\deltag(n)g(n)g(n) อย่างไรก็ตามถ้าเรามีอัลกอริทึมที่แรก "พบอัลกอริทึมที่มีประสิทธิภาพมากขึ้นในการคำนวณ " แล้วคำนวณf ?ffffff กล่าวอีกนัยหนึ่งถ้าเรามีอัลกอริทึมที่ทำสิ่งต่อไปนี้:AAA ค้นหาอัลกอริทึมที่มีประสิทธิภาพสำหรับการคำนวณฉBBBfff ใช้เพื่อคำนวณฉBBBfff ในกรณีนี้เราไม่สามารถพูดถึงเวลาในการคำนวณได้อีกต่อไปตัวอย่างเช่นเพราะมันขึ้นอยู่กับว่าอัลกอริทึมAได้ค้นพบอัลกอริทึมBแล้วหรือไม่ กล่าวอีกนัยหนึ่งเวลาคำนวณที่ต้องใช้ในการคำนวณf ( 5 )ถ้า5คือจำนวนที่คำนวณครั้งแรกมีค่ามากกว่าเวลาคำนวณที่ต้องใช้ในการคำนวณf ( 5 )หลังจากคำนวณf ( 3 )แล้วf(5)f(5)f(5)AAABBBf(5)f(5)f(5)555f(5)f(5)f(5)f(3)f(3)f(3) คำถามของฉันคือมีแนวคิด / ทฤษฎีเกี่ยวกับอัลกอริธึมชนิดนี้ก่อนที่จะค้นหาอัลกอริธึมอื่นก่อนคำนวณฟังก์ชันหรือไม่? โดยเฉพาะฉันสงสัยเกี่ยวกับการวิเคราะห์ความซับซ้อนของการคำนวณของอัลกอริทึมดังกล่าว

1
อนุพันธ์ของกราฟเกี่ยวข้องกับรายการคำนามหรือไม่?
ผลงานบางส่วนของ Conor McBride, Diff , Dissect , เชื่อมโยงอนุพันธ์ของชนิดข้อมูลกับ "ชนิดของบริบทหนึ่งหลุม" ของพวกเขา นั่นคือถ้าคุณหาอนุพันธ์ของประเภทที่คุณเหลือด้วยชนิดข้อมูลซึ่งจะแสดงให้คุณเห็นว่าชนิดข้อมูลดูจากด้านใน ณ จุดใดก็ตาม ตัวอย่างเช่นถ้าคุณมีรายการ (ใน Haskell) data List a = [] | a : List a สิ่งนี้สอดคล้องกับ data List a = 1 + a * List a และด้วยเวทมนตร์ทางคณิตศาสตร์เล็กน้อยอนุพันธ์คือ data ListDeriv a = List a * List a ซึ่งตีความว่าหมายความว่า ณ จุดใดในรายการจะมีรายการทางด้านซ้ายและรายการทางด้านขวา …

2
กราฟที่เหลือในการไหลสูงสุด
ฉันกำลังอ่านเกี่ยวกับปัญหาการไหลสูงสุดที่นี่ ฉันไม่สามารถเข้าใจสัญชาตญาณที่อยู่เบื้องหลังกราฟส่วนที่เหลือ เหตุใดเราจึงพิจารณาด้านหลังขณะคำนวณการไหล ทุกคนสามารถช่วยฉันเข้าใจแนวคิดของกราฟที่เหลือได้หรือไม่ อัลกอริทึมเปลี่ยนไปอย่างไรในกราฟที่ไม่ได้บอกทิศทาง

3
เหตุใดผู้ดำเนินการดาว Kleene จึงเรียกผู้ดำเนินการ Kleene 'ปิด'?
ฉันพบว่าหากฉันไม่เข้าใจนิรุกติศาสตร์ที่อยู่เบื้องหลังคำศัพท์ cs / programming มันมักจะหมายความว่าฉันพลาดหรือเข้าใจผิดแนวคิดพื้นฐานที่สำคัญบางอย่าง ฉันไม่เข้าใจว่าทำไมดาว Kleene จึงถูกเรียกว่าการปิด Kleene มันเกี่ยวข้องกับการปิดในการเขียนโปรแกรมฟังก์ชั่นที่มีตัวแปรที่ไม่ใช่ท้องถิ่นที่ถูกผูกไว้หรือไม่? ... ในการไตร่ตรองอาจเป็นเพราะมันอนุญาตให้เขียนชุดเปิดปลายในรูปแบบนิพจน์ปิด? ... ในแบบเป็ดยางอธิบายได้ดีตอนนี้ฉันเดาว่ามัน แต่ก็ยังคงยินดีต้อนรับคำตอบที่มีสิทธิ์

2
ฉันสามารถมี "ประเภท coproduct ที่พึ่งพา"
ฉันกำลังอ่านหนังสือ HoTTและฉันมีคำถาม (อาจไร้เดียงสามาก) เกี่ยวกับเนื้อหาในบทที่หนึ่ง แนะนำบทประเภทฟังก์ชั่น แล้วเอามันโดยการทำBขึ้นอยู่กับx : B : → U ,f:A→Bf:A→B f:A\to B BBBx:Ax:Ax:A และที่เรียกว่าประเภทฟังก์ชั่นขึ้นอยู่กับB:A→U,g:∏x:AB(x)B:A→U,g:∏x:AB(x)B:A\to\mathcal{U},\qquad g:\prod_{x:A}B(x) ย้ายบทที่แล้วแนะนำประเภทของผลิตภัณฑ์ แล้วเอามันโดยการทำBขึ้นอยู่กับx : B : → U ,f:A×Bf:A×B f:A\times BBBBx:Ax:Ax:A และที่เรียกว่าประเภทคู่ขึ้นB:A→U,g:∑x:AB(x)B:A→U,g:∑x:AB(x)B:A\to\mathcal{U},\qquad g:\sum_{x:A}B(x) ฉันเห็นรูปแบบที่นี่แน่นอน บทต่อไปจะแนะนำประเภท coproduct และ ... combobreaker ... ไม่มีการพูดถึงรุ่นที่ขึ้นต่อกันของประเภทนี้f:A+Bf:A+B f:A+B มีข้อ จำกัด พื้นฐานบางประการหรือไม่เกี่ยวข้องกับหัวข้อของหนังสือเล่มนี้หรือไม่? ในกรณีใด ๆ บางคนสามารถช่วยฉันด้วยสัญชาตญาณว่าทำไมฟังก์ชั่นและประเภทผลิตภัณฑ์? อะไรที่ทำให้ทั้งสองมีความพิเศษเพื่อที่พวกเขาจะได้รับการวางนัยให้เป็นประเภทที่ขึ้นต่อกันแล้วใช้ในการสร้างทุกอย่างขึ้นมา?

1
ความซับซ้อนในการคำนวณเทียบกับลำดับชั้นของชัมสกี
ฉันสงสัยเกี่ยวกับความสัมพันธ์ระหว่างความซับซ้อนในการคำนวณและลำดับชั้นของ Chomsky โดยทั่วไป โดยเฉพาะอย่างยิ่งถ้าฉันรู้ว่าปัญหาบางอย่างเป็นปัญหาแบบ NP เสร็จสมบูรณ์แล้วมันจะตามด้วยภาษาของปัญหานั้นหรือไม่ ตัวอย่างเช่นปัญหากลุ่มคือ NP-complete มันเป็นไปตามที่ว่าภาษาที่สอดคล้องกับแบบจำลองที่มีกลุ่มเป็นความซับซ้อนน้อยที่สุดในลำดับชั้น Chomsky (สำหรับวิธีการเข้ารหัสแบบจำลอง / ทั้งหมดเป็นสตริงหรือไม่?)

2
การลดเวลาแบบโพลีจาก ILP เป็น SAT?
ดังนั้นจึงเป็นที่ทราบกันดีว่าปัญหาการตัดสินใจที่ 0-1 ของ ILP นั้นสมบูรณ์แบบ การแสดงว่าใน NP เป็นเรื่องง่ายและการลดค่าดั้งเดิมมาจาก SAT; ตั้งแต่นั้นมาปัญหา NP-Complete อื่น ๆ อีกมากมายแสดงให้เห็นว่ามีสูตร ILP (ซึ่งทำหน้าที่เป็นการลดจากปัญหาเหล่านั้นถึง ILP) เนื่องจาก ILP เป็นประโยชน์โดยทั่วไป ลดจาก ILP ดูเหมือนยากมากที่จะทำอย่างใดอย่างหนึ่งกับตัวเองหรือติดตาม ดังนั้นคำถามของฉันคือไม่มีใครรู้ว่าการลดเวลาโพลีจาก ILP เป็น SAT คือแสดงให้เห็นถึงวิธีการแก้ปัญหาการตัดสินใจ 0-1 ILP โดยใช้ SAT หรือไม่

2
ความถูกต้อง - พิสูจน์ความโลภ - อัลกอริธึมสำหรับจุดสุดยอดขั้นต่ำของต้นไม้
มีอัลกอริทึมโลภสำหรับการค้นหาจุดสุดยอดขั้นต่ำของต้นไม้ซึ่งใช้ DFS traversal สำหรับแต่ละใบไม้ของต้นไม้ให้เลือกพาเรนต์ของมัน (เช่นพาเรนต์อยู่ในฝาครอบจุดต่ำสุด) สำหรับแต่ละโหนดภายใน: หากไม่มีโหนดย่อยใด ๆ ให้เลือกโหนดนี้ ฉันจะพิสูจน์ได้อย่างไรว่ากลยุทธ์โลภนี้ให้คำตอบที่ดีที่สุด? มีจุดยอดที่เล็กกว่าขนาดที่อัลกอริธึมข้างต้นสร้างขึ้นหรือไม่?

2
การค้นหาเส้นทางที่สั้นและยาวที่สุดระหว่างจุดยอดสองจุดใน DAG
ให้ DAG ที่ไม่มีน้ำหนัก (กำกับด้วยกราฟ acyclic)และสองจุดยอดและเป็นไปได้ไหมที่จะหาเส้นทางที่สั้นและยาวที่สุดจากถึงในเวลาพหุนาม ความยาวเส้นทางวัดจากจำนวนขอบD=(V,A)D=(V,A)D = (V,A)ssstttsssttt ฉันสนใจที่จะหาช่วงของความยาวเส้นทางที่เป็นไปได้ในเวลาพหุนาม Ps. คำถามนี้เป็นซ้ำของ StackOverflow คำถามเส้นทางที่ยาวที่สุดใน DAG

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