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

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

1
มีบริบทที่ไม่ใช่ภาษาที่ไม่ใช่ภาษาปกติ
ฉันรู้ว่ามีภาษาที่ไม่ปกติเพื่อให้เป็นปกติ แต่ตัวอย่างทั้งหมดที่ฉันสามารถค้นหานั้นมีความอ่อนไหวต่อบริบท แต่ไม่ใช่บริบทที่ฟรีL* * * *L∗L^* ในกรณีที่ไม่มีคุณจะพิสูจน์ได้อย่างไร

1
ความสอดคล้องแสดงให้เห็นว่าฮิวริสติกนั้นยอมรับได้อย่างไร
ฟังก์ชันการแก้ปัญหาคือ ...h(n)h(n)h (n) สอดคล้องกันถ้าค่าใช้จ่ายโดยประมาณจากโหนดถึงเป้าหมายนั้นไม่สูงกว่าต้นทุนขั้นตอนจนถึงตัวตายตัวแทนบวกกับต้นทุนโดยประมาณจากตัวตายตัวแทนไปยังเป้าหมายnnnn′n′n' ยอมรับได้ถ้าไม่เคยประเมินค่าใช้จ่ายที่แท้จริงกับสถานะเป้าหมายh(n)h(n)h(n) ตำราเรียนสำหรับหลักสูตรปัญญาประดิษฐ์ของฉันระบุว่าความมั่นคงแข็งแกร่งกว่าการยอมรับได้ แต่ไม่ได้พิสูจน์และฉันมีปัญหาในการหาคำอธิบายทางคณิตศาสตร์

1
POSIX BRE สามารถแสดงภาษาปกติทั้งหมดได้หรือไม่
ปรากฏว่า "นิพจน์ธรรมดาพื้นฐาน" ตามที่กำหนดโดยPOSIX.1-2008ไม่สนับสนุนการสลับกันa|b(แม้ว่าการใช้ grep บางตัวจะรู้จักเวอร์ชันหลบหนี\|) เนื่องจากภาษาปกติถูกปิดภายใต้การรวมกันตามคำนิยามนี่หมายความว่า POSIX BRE มีพลังในการแสดงออกน้อยกว่าออโตเมติก จำกัด ? หรือมีวิธีการจำลองการสลับโดยใช้โครงสร้างอื่น ๆ ?

2
สถาปัตยกรรมซีพียูมีอคติต่อการดำเนินการตามขั้นตอนหรือไม่?
มีการเปลี่ยนแปลงใด ๆ ที่ทำให้ซีพียูทำงานได้ดีขึ้นสำหรับรันไทม์ที่เกิดขึ้นพร้อมกันเช่น Rust หรือไม่? ตัวอย่างเช่นมีการเปลี่ยนแปลงการนำไปใช้การทำนายสาขาหรือขนาดแคชที่จะช่วยรันไทม์พร้อมกันหรือไม่ ฉันรู้สึกว่าการออกแบบ CPU ในปัจจุบันอาจได้รับการปรับให้เหมาะสมยิ่งขึ้นสำหรับ runtimes แบบโพรซีเดอร์เช่น C หากเราต้องการปรับให้เหมาะสมสำหรับ runtimes ที่เกิดขึ้นพร้อมกัน CPU จะดูแตกต่างกันอย่างไร สำหรับ isntance การคาดคะเนสาขาถูกนำมาใช้บนพื้นฐานของการสรุปทั่วไปในเอกสารงานวิจัยที่วิเคราะห์รหัสขั้นตอน ฉันสงสัยว่าสิ่งที่เป็นนามธรรมที่เกิดขึ้นพร้อมกันจะเพิ่มชุดการทำงานที่สำคัญให้กับรันไทม์ที่ส่งผลเสียต่ออัลกอริทึมการทำนายสาขาที่มีอยู่หรือไม่ ตัวอย่างเช่นการคาดการณ์ใน for for loop เป็นสิ่งหนึ่ง แต่เมื่อเป้าหมายของสาขาเป็นส่วนใหม่ของหน่วยความจำเสมอ (กราฟิก, ข้อความ, ฯลฯ ) มันจะเป็นแคชที่พลาดเสมอและจะไม่มีสาขา ประวัติศาสตร์สำหรับมัน - เพราะยังไม่ได้แตะต้องเลย นี่อาจเป็นคำถามที่งี่เง่าเพราะเนื้อหาแม้ว่ามันอาจจะอยู่ใน RAM เสมอ แต่จะถูกแยกเป็นลำดับความสำคัญน้อยกว่าที่จะใช้ (เมื่อโหลดไปยังแคช) ... แต่ยังมี ควรเป็นขอบเขตชั่วคราวที่สามารถสังเกตได้กับบริบทที่เก็บไว้ในแคชและตัวทำนายสาขาในรันไทม์ของขั้นตอนซึ่งจะแสดงให้เห็นว่าเป็นนามธรรม - ขอบเขตในสภาพแวดล้อมที่ขนานกันมากขึ้น ดังนั้นฉันสงสัย ... มีการปฏิบัติตามขอบเขตเหล่านี้หรือไม่? มีงานวิจัยใดบ้างที่วิเคราะห์สิ่งนี้? สถาปัตยกรรมของ …

2
เราได้อะไรจากการมี“ ประเภทพึ่งพา”
ฉันคิดว่าฉันเข้าใจการพิมพ์ที่ถูกต้อง (DT) อย่างถูกต้อง แต่คำตอบสำหรับคำถามนี้: /cstheory/30651/why-was-there-a-need-for-martin-l%C3%% ทฤษฎีเกี่ยวกับการสร้างประเภทสัญชาตญาณ B6fทำให้ฉันคิดอย่างอื่น หลังจากอ่าน DT และพยายามเข้าใจว่าพวกเขาคืออะไรฉันพยายามสงสัยว่าเราจะได้อะไรจากความคิดของ DT นี้ ดูเหมือนว่าพวกเขาจะมีความยืดหยุ่นและมีประสิทธิภาพมากกว่าแลมบ์ดาแคลคูลัส (STLC) ที่พิมพ์ได้ง่าย ๆ ถึงแม้ว่าฉันจะไม่เข้าใจ "วิธี / เหตุผล" ก็ตาม เราสามารถทำอะไรกับ DT ที่ไม่สามารถทำได้ด้วย STLC ดูเหมือนว่าการเพิ่ม DTs ทำให้ทฤษฎีมีความซับซ้อนมากขึ้น แต่ประโยชน์คืออะไร จากคำตอบของคำถามด้านบน: ประเภทที่ขึ้นอยู่กับถูกเสนอโดยเดอ Bruijn และโฮเวิร์ดที่ต้องการที่จะขยายการติดต่อกันของแกงกะหรี่ - Howard จากแคลคูลัสเชิงประพจน์เพื่อตรรกะแรก ดูเหมือนว่าจะสมเหตุสมผลในบางระดับ แต่ฉันก็ยังไม่สามารถเข้าใจภาพรวมของ "อย่างไร / ทำไม" บางทีตัวอย่างที่แสดงให้เห็นอย่างชัดเจนว่าส่วนขยายของจดหมายโต้ตอบ CH กับตรรกะ FO นี้อาจช่วยให้ถึงจุดที่บ้านในการทำความเข้าใจเรื่องใหญ่กับ DTs คืออะไร? ฉันไม่แน่ใจว่าฉันเข้าใจสิ่งนี้ด้วยหรือไม่

2
ทำไมเราถึงเป็นมอร์ฟิซึ่มส์ออโตมอร์ฟิซึมและโฮโมมอร์ฟิซึม?
อะไรคือความแตกต่างที่สำคัญระหว่างคำสามคำนี้คือมอร์ฟิซึมออโตมอร์ฟิซึมและโฮโมมอร์ฟิซึมในภาษาธรรมดา ๆ และทำไมเราถึงเป็นมอร์ฟมอร์ฟิซึ่มส์

2
การพิสูจน์ DOUBLE-SAT นั้นสมบูรณ์แล้ว
ปัญหา SAT ที่เป็นที่รู้จักกันดีถูกกำหนดไว้ที่นี่เพื่อประโยชน์ในการอ้างอิง ปัญหา DOUBLE-SAT ถูกกำหนดเป็น DOUBLE-SAT={⟨ϕ⟩∣ϕ has at least two satisfying assignments}DOUBLE-SAT={⟨ϕ⟩∣ϕ has at least two satisfying assignments}\qquad \mathsf{DOUBLE\text{-}SAT} = \{\langle\phi\rangle \mid \phi \text{ has at least two satisfying assignments}\} เราจะพิสูจน์ได้อย่างไรว่าเป็นปัญหาสมบูรณ์ มากกว่าหนึ่งวิธีในการพิสูจน์จะได้รับการชื่นชม

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

4
อัลกอริทึมของ Dijsktra นำไปใช้กับปัญหาพนักงานขายที่เดินทาง
ฉันเป็นสามเณร (มือใหม่รวมถึงทฤษฎีความซับซ้อนในการคำนวณ) และฉันมีคำถาม ช่วยบอกว่าเรามี 'ปัญหาพนักงานขายที่ต้องเดินทาง' การใช้อัลกอริทึมของ Dijkstra ต่อไปนี้จะแก้ปัญหาได้หรือไม่? จากจุดเริ่มต้นเราคำนวณระยะทางที่สั้นที่สุดระหว่างสองจุด เราไปที่จุด เราลบจุดต้นทาง จากนั้นเราคำนวณจุดระยะทางที่สั้นที่สุดถัดไปจากจุดปัจจุบันและอื่น ๆ ... ทุกขั้นตอนเราทำให้กราฟเล็กลงในขณะที่เราย้ายจุดระยะทางสั้นที่สุดที่มีอยู่ถัดไป จนกว่าเราจะไปทุกจุด สิ่งนี้จะช่วยแก้ปัญหาพนักงานขายที่เดินทาง

3
มีเครื่องนามธรรมที่สามารถจับการใช้พลังงานหรือไม่
เมื่อรายงานความซับซ้อนของอัลกอริทึมของอัลกอริทึมเราจะถือว่าการคำนวณพื้นฐานดำเนินการกับเครื่องนามธรรม (เช่น RAM) ที่ใกล้เคียงกับ CPU ที่ทันสมัย โมเดลดังกล่าวช่วยให้เราสามารถรายงานเวลาและพื้นที่ที่ซับซ้อนของอัลกอริทึม ตอนนี้ด้วยการแพร่กระจายของGPGPUsหนึ่งสงสัยว่ามีรูปแบบที่รู้จักกันดีที่หนึ่งสามารถคำนึงถึงการใช้พลังงานเช่นกัน GPU เป็นที่รู้จักกันดีในการใช้พลังงานจำนวนมากและคำแนะนำบางอย่างแบ่งเป็นหมวดหมู่ของการใช้พลังงานตามความซับซ้อนและตำแหน่งของชิปที่ซับซ้อน ดังนั้นคำแนะนำจากพลังงานในมุมมองจึงไม่ได้เป็นต้นทุนต่อหน่วย (หรือแม้แต่ค่าคงที่) ส่วนขยายเล็กน้อยจะกำหนดน้ำหนักให้กับค่าใช้จ่ายในการดำเนินการ แต่ฉันกำลังมองหาแบบจำลองที่ทรงพลังซึ่งการดำเนินการ / การเรียนการสอนอาจมีค่าหน่วยพลังงานที่ไม่คงที่เช่นจำนวนพหุนาม (หรือซับซ้อนกว่าเช่น: ของอัลกอริทึมหรือคำนึงถึงความน่าจะเป็นของความล้มเหลวของระบบทำความเย็นซึ่งจะทำให้ชิปร้อนขึ้นและชะลอความถี่สัญญาณนาฬิกาเป็นต้น) มีโมเดลดังกล่าวที่สามารถรวมค่าใช้จ่ายและความผิดพลาดที่ไม่สำคัญได้หรือไม่

1
อะไรคือความแตกต่างระหว่างชุดและประเภทใน Coq [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Computer Science Stack Exchange ปิดให้บริการใน2 ปีที่ผ่านมา ประเภท AFAIU สามารถเป็นSetองค์ประกอบที่มีโปรแกรมหรือpropositionองค์ประกอบที่มีการพิสูจน์ ดังนั้นตามความเข้าใจนี้: Inductive prod (X Y: Type) : Set := | pair: X -> Y -> prod X Y. รหัสต่อไปนี้ควรรวบรวม แต่มันไม่ได้เกิดจากข้อผิดพลาดดังต่อไปนี้ ถ้าฉันเปลี่ยนSetด้วยTypeหรืออื่น ๆTypeด้วยSetมันรวบรวมดี ใครสามารถช่วยฉันเข้าใจว่าข้อผิดพลาดต่อไปนี้หมายถึงอะไร ฉันพยายามสอนตัวเอง Coq โดยใช้หนังสือ Software Foundations ข้อผิดพลาด: Error: Large non-propositional inductive types must be …

2
การคูณเมทริกซ์โซ่และการยกกำลัง
ถ้าฉันมีเมทริกซ์และสองขนาดและตามลำดับและต้องการคำนวณมันมีประสิทธิภาพมากกว่าที่จะเขียนนิพจน์ใหม่เป็นและเพียงแล้วประเมินตัวเลขเพราะเป็นมิติแต่เป็นของมิติ2B 1,000 × 2 2 × 1,000 ( A B ) 5,000 A ( B A ) 4999 B A B 1,000 × 1000 B A 2 × 2AAABBB1000×21000×21000\times22×10002×10002\times1000(AB)5000(AB)5000(AB)^{5000}A(BA)4999BA(BA)4999BA(BA)^{4999}BABABAB1000×10001000×10001000\times1000BABABA2×22×22\times2 ฉันต้องการแก้ปัญหานี้โดยทั่วไป มีอัลกอริธึมที่มีประสิทธิภาพพอสมควร (ไม่ใช่แรงเดรัจฉาน) เพื่อปรับการแสดงออกที่มี: ตัวแปรเมทริกซ์อิสระของขนาดที่รู้จัก ผลิตภัณฑ์ของ subexpressions โดยพลการ subexpressions โดยพลการยกกำลังธรรมชาติ ... เพื่อที่จะใช้เวลาน้อยที่สุดในการประเมินตัวเลขหลังจากการแทนที่ตัวแปรเมทริกซ์อิสระด้วยค่าเมทริกซ์คอนกรีต? ห่วงโซ่คูณเมทริกซ์ปัญหาเป็นกรณีพิเศษของปัญหาของฉัน แก้ไข: นี่คือคำตอบเบื้องต้น ดูเหมือนว่าเหมาะสมกับฉัน แต่ฉันก็ไม่มีข้อพิสูจน์ว่าถูกต้อง หากปรากฎว่าถูกต้องฉันยังคงสนใจในการพิสูจน์ (หากมันไม่ถูกต้องแน่นอนโปรดแก้ไขให้ถูกต้อง) สำหรับทุกผลิตภัณฑ์ที่ยกระดับพลังงานให้พูดว่าให้พิจารณาการเปลี่ยนรูปแบบวนรอบของปัจจัยทั้งหมด:(A1A2…Ak)n(A1A2…Ak)n(A_1 A_2 …

2
คำจำกัดความ PTAS เทียบกับ FPTAS
จากสิ่งที่ฉันอ่านใน preliminary version of a chapter of the book “Lectures on Scheduling” edited by R.H. M¨ohring, C.N. Potts, A.S. Schulz, G.J. Woeginger, L.A. Wolsey, to appear around 2011 A.D. นี่คือนิยามPTAS : รูปแบบการประมาณเวลาพหุนาม ( PTAS ) สำหรับปัญหาเป็นรูปแบบการประมาณซึ่งความซับซ้อนของเวลาคือพหุนามในขนาดอินพุตXXX และนิยามของ FPTAS เวลาพหุนามอย่างเต็มที่ประมาณโครงการ ( FPTAS ) สำหรับปัญหา เป็นโครงการที่มีความซับซ้อนประมาณเวลาพหุนามในขนาดการป้อนข้อมูลและยังพหุนามใน 1 / εXXXϵϵ\epsilon จากนั้นผู้เขียนพูดว่า: ดังนั้นสำหรับ PTAS …

1
ทำไมต้องใช้ SIMD ถ้าเรามี GPGPU
ฉันคิดว่าคำถามนี้ตอบสนองได้ดีขึ้นในส่วน CS ของ Stack Exchange ตอนนี้เรามี GPGPU ที่ใช้ภาษาเช่น CUDA และ OpenCL แล้วส่วนขยาย SIMD มัลติมีเดีย (SSE / AVX / NEON) ยังมีจุดประสงค์หรือไม่ ฉันอ่านบทความเมื่อเร็ว ๆ นี้เกี่ยวกับวิธีการใช้คำสั่ง SSE เพื่อเร่งการคัดแยกเครือข่าย ฉันคิดว่ามันค่อนข้างเรียบร้อย แต่เมื่อฉันบอกอาจารย์วิชาคอมพ์เขาก็หัวเราะแล้วบอกว่าการใช้รหัสที่คล้ายกันบน GPU จะทำลายรุ่น SIMD ฉันไม่สงสัยเลยว่าเพราะ SSE นั้นง่ายมากและ GPU เป็นตัวเร่งความเร็วสูงที่มีความซับซ้อนสูงพร้อมความขนานมากขึ้น แต่ฉันคิดว่ามีสถานการณ์มากมายที่ส่วนขยาย SIMD มัลติมีเดียมีประโยชน์มากกว่าการใช้ GPU หรือไม่ ถ้า GPGPU ทำ SIMD ซ้ำซ้อนเหตุใด Intel จะเพิ่มการรองรับ SIMD ของพวกเขา SSE …

5
คอมพิวเตอร์ควอนตัมในอนาคตจะใช้ระบบเลขฐานสองสามส่วนหรือสามส่วนหรือไม่
คอมพิวเตอร์ปัจจุบันของเราใช้บิตดังนั้นพวกเขาจึงใช้ระบบเลขฐานสอง แต่ฉันได้ยินมาว่าคอมพิวเตอร์ควอนตัมในอนาคตจะใช้ qubits แทนบิตง่าย ๆ เนื่องจากในคำว่า "qubit" มีคำว่า "bi" ฉันแรกคิดว่านี่หมายความว่าคอมพิวเตอร์ควอนตัมจะใช้ไบนารี (ฐาน 2) แต่จากนั้นฉันได้ยินว่า qubits มีสถานะเป็นไปได้สามสถานะ: 0, 1, หรือการทับซ้อนของ 0 และ 1 ดังนั้นฉันจึงคิดว่านี่ต้องหมายความว่าพวกเขาจะใช้ไตรภาค (ฐาน 3) แต่ฉันเห็นว่าหนึ่ง qubit สามารถเก็บข้อมูลได้มากถึงสองบิต ดังนั้นฉันคิดว่านี่อาจหมายความว่าพวกเขาจะใช้สี่ (ฐาน 4) คอมพิวเตอร์ระบบควอนตัมในอนาคตจะใช้ระบบตัวเลขแบบไหน: ไบนารี่ไตรภาคหรือควอเทอร์นารี

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