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

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

7
ตัวอย่างของความไม่สอดคล้องและความไม่สมบูรณ์ใน Unix / C คืออะไร
ในบทความที่โด่งดังของ Richard Gabriel เรื่องThe Rise of Worse is Betterเขาได้เปรียบเทียบกับปรัชญาการออกแบบของ MIT / Stanford (Lisp) และ New Jersey (C / Unix) ตามแนวแกนของความเรียบง่ายความถูกต้องความสอดคล้องและความสมบูรณ์ เขายกตัวอย่างของ "ปัญหาผู้แพ้ PC" ( พูดถึงที่อื่นโดย Josh Haberman ) เพื่อยืนยันว่า Unix ให้ความสำคัญกับความเรียบง่ายของการใช้งานมากกว่าความเรียบง่ายของอินเตอร์เฟส อีกตัวอย่างหนึ่งที่ฉันคิดขึ้นมาก็คือแนวทางที่แตกต่างกับตัวเลข เสียงกระเพื่อมสามารถแสดงตัวเลขขนาดใหญ่โดยพลการ (ขึ้นอยู่กับขนาดของหน่วยความจำ) ในขณะที่ C จำกัด ตัวเลขไว้ที่จำนวนบิตคงที่ (โดยทั่วไปคือ 32-64) ฉันคิดว่านี่แสดงให้เห็นถึงแกนความถูกต้อง ตัวอย่างบางประการของความสอดคล้องและความสมบูรณ์มีอะไรบ้าง นี่คือคำอธิบายทั้งหมดของ Gabriel (ซึ่งเขายอมรับว่าเป็นการ์ตูนล้อเลียน): วิธีการของ MIT / Stanford ความเรียบง่าย …

1
สนับสนุนโครงสร้างข้อมูลสำหรับการค้นหาในท้องถิ่นของ SAT
WalkSAT และ GSATเป็นอัลกอริทึมการค้นหาในท้องถิ่นที่รู้จักกันดีและเรียบง่ายสำหรับการแก้ปัญหาความพึงพอใจบูลีน pseudocode สำหรับอัลกอริทึม GSAT ถูกคัดลอกมาจากคำถามการใช้อัลกอริทึม GSAT - วิธีการเลือกตัวอักษรที่จะพลิก? และนำเสนอด้านล่าง procedure GSAT(A,Max_Tries,Max_Flips) A: is a CNF formula for i:=1 to Max_Tries do S <- instantiation of variables for j:=1 to Max_Iter do if A satisfiable by S then return S endif V <- the variable whose flip yield the …

3
วิธีที่มีประสิทธิภาพมากที่สุดในการคำนวณแฟคทอเรียลโมดูโลคืออะไร?
คุณรู้จักอัลกอริธึมที่คำนวณแฟคทอเรียลหลังจากโมดูลัสอย่างมีประสิทธิภาพหรือไม่? ตัวอย่างเช่นฉันต้องการโปรแกรม: for(i=0; i<5; i++) sum += factorial(p-i) % p; แต่pเป็นจำนวนมาก (นายก) สำหรับการใช้ปัจจัยโดยตรง8)(p≤108)(p≤108)(p \leq 10^ 8) ใน Python งานนี้ง่ายมาก แต่ฉันอยากรู้วิธีเพิ่มประสิทธิภาพ

1
อัลกอริทึมในการไล่ล่าเป้าหมายที่กำลังเคลื่อนที่
สมมติว่าเรามีกล่องดำfffซึ่งเราสามารถสอบถามและรีเซ็ต เมื่อเราตั้งค่าfffรัฐfSfSf_Sของfffถูกตั้งค่าเป็นองค์ประกอบได้รับการแต่งตั้งอย่างสม่ำเสมอโดยการสุ่มจากชุดที่{0,1,...,n−1}{0,1,...,n−1}\{0, 1, ..., n - 1\}ที่nnnได้รับการแก้ไขและรู้จักการให้Ffffในแบบสอบถามfff , องค์ประกอบxxx (เดา) จาก{0,1,...,n−1}{0,1,...,n−1}\{0, 1, ..., n - 1\}ให้บริการและความคุ้มค่าที่ส่งกลับเป็นn นอกจากนี้สถานะของถูกกำหนดเป็นค่าโดยที่ถูกเลือกแบบสุ่มโดยสุ่มจาก(fS−x)modn(fS−x)modn(f_S - x) \mod nfSfSf_Sffff′S=fS±kfS′=fS±kf_S' = f_S \pm kkkk{0,1,2,...,⌊n/2⌋−((fS−x)modn)}{0,1,2,...,⌊n/2⌋−((fS−x)modn)}\{0, 1, 2, ..., \lfloor n/2 \rfloor - ((f_S - x) \mod n)\} โดยการคาดเดาสุ่มเหมือนกันกับแต่ละแบบสอบถามคาดว่าจะต้องให้คาดเดาก่อนที่จะเดินทางกับความแปรปรวน (ตามที่ระบุไว้โดยไม่ต้องพิสูจน์)nnnfS=xfS=xf_S = xn2−nn2−nn^2 - n อัลกอริทึมสามารถออกแบบให้ดีขึ้นได้อย่างไร (เช่นทำการเดาน้อยลงอาจมีความแปรปรวนน้อยลงในจำนวนการเดา) จะดีกว่านี้ได้อีก (เช่นอัลกอริธึมที่เหมาะสมที่สุดและประสิทธิภาพของมันคืออะไร) การแก้ปัญหาที่มีประสิทธิภาพสำหรับปัญหานี้อาจมีผลกระทบต่อการประหยัดต้นทุนที่สำคัญสำหรับการถ่ายภาพที่กระต่าย

3
ครึ่งหนึ่ง CLIQUE - ปัญหาที่สมบูรณ์ของ NP
ผมขอเริ่มต้นจากการสังเกตปัญหานี้เป็นปัญหาบ้านกรุณาให้คำแนะนำเท่านั้นและข้อสังเกตที่เกี่ยวข้องไม่ตรงคำตอบโปรด จากที่กล่าวมานี่เป็นปัญหาที่ฉันดู: ให้ HALF-CLIQUE = { | เป็นกราฟที่ไม่ได้บอกทิศทางมีกราฟย่อยสมบูรณ์ที่มีอย่างน้อยโหนดโดยที่ n คือจำนวนโหนดใน } แสดงว่า HALF-CLIQUE นั้นสมบูรณ์ NPG n / 2 G⟨ G ⟩⟨G⟩\langle G \rangleGGGn / 2n/2n/2GGG นอกจากนี้ฉันรู้ดังต่อไปนี้: ในแง่ของปัญหานี้กลุ่มถูกกำหนดให้เป็นกราฟย่อยที่ไม่ได้บอกทิศทางของกราฟอินพุตซึ่งทุกโหนดจะเชื่อมต่อกันด้วยขอบ -cliqueเป็นก๊กที่มีโหนดkkkkkk จากหนังสือของเรา Michael Sipser's " รู้เบื้องต้นเกี่ยวกับทฤษฎีการคำนวณ " หน้า 268 ว่าปัญหา CLIQUE = { | เป็นกราฟที่ไม่ได้บอกทิศทางด้วย -clique} อยู่ใน NPG k⟨ G , k ⟩⟨G,k⟩\langle …

1
ประเภทของผู้ให้บริการทฤษฎีบทอัตโนมัติ
ฉันเรียนรู้โดยอัตโนมัติพิสูจน์ทฤษฎีบท / แก้ SMT / ผู้ช่วยพิสูจน์ด้วยตัวเองและโพสต์ชุดของคำถามเกี่ยวกับขั้นตอนเริ่มต้นที่นี่ ทฤษฎีบทอัตโนมัติที่เกี่ยวข้องมีข้อพิสูจน์อะไร? ฉันพบบทวิจารณ์ของผู้ให้บริการทฤษฎีบท ปัจจุบันนี้ยังคงอยู่หรือไม่? มีคนใดบ้างที่ยังใช้งานอยู่มากซึ่งปัจจุบันใช้งานนอกเหนือจากกลุ่มที่สร้างขึ้น ค้นหาคำถามต่อไปของซีรีส์ที่นี่

2
การสร้างแผนภูมิต้นไม้สั่งซื้อด้วยตนเอง
ฉันมีการมอบหมายที่ฉันต้องใช้ต้นไม้ค้นหาแบบทวิภาคและปรับเปลี่ยนเพื่อเรียงลำดับตัวเองเช่นรายการที่เข้าถึงได้มากที่สุด (มีลำดับความสำคัญสูงกว่า) อยู่ที่ด้านบนของต้นไม้รากเป็นโหนดที่เข้าถึงได้มากที่สุด . ศาสตราจารย์ให้ BST และโหนดโครงสร้างเพื่อทำงานร่วมกับฉัน แต่การพยายามเอาสมองของฉันไปรอบ ๆ อัลกอริทึมเพื่ออัปเดตต้นไม้เมื่อสิ่งต่าง ๆ แทรกอยู่ทำให้ฉันสับสน ฉันรู้ว่าเมื่อมีการแทรกเกิดขึ้นมันจะตรวจสอบว่าข้อมูลของโหนดปัจจุบันน้อยกว่าหรือมากกว่าโหนดปัจจุบันจากนั้นจะวนซ้ำในทิศทางที่ถูกต้องจนกว่าจะพบตัวชี้ null และแทรกตัวเองที่นั่น และหลังจากใส่แล้วจะเพิ่มระดับความสำคัญเป็น 1 template <class Type> void BinarySearchTree<Type> :: insert( const Type & x, BinaryNode<Type> * & t ) { if( t == NULL ) t = new BinaryNode<Type>( x, NULL, NULL ); else if( x …

3
เส้นทางไปยังวิธีการที่เป็นทางการ
ไม่ใช่เรื่องแปลกที่จะเห็นนักเรียนเริ่มปริญญาเอกด้วยพื้นฐานที่ จำกัด ในวิชาคณิตศาสตร์และด้านวิทยาศาสตร์คอมพิวเตอร์อย่างเป็นทางการ เห็นได้ชัดว่ามันยากมากสำหรับนักเรียนที่จะกลายเป็นนักวิทยาศาสตร์คอมพิวเตอร์เชิงทฤษฎี แต่มันจะดีถ้าพวกเขาสามารถเข้าใจด้วยการใช้วิธีการที่เป็นทางการและการอ่านเอกสารที่มีวิธีการที่เป็นทางการ เส้นทางระยะสั้นที่ดีที่เริ่มต้นนักศึกษาปริญญาเอกสามารถทำตามเพื่อให้ได้รับการเปิดเผยเพื่อให้พวกเขาอ่านเอกสารที่เกี่ยวข้องกับวิธีการที่เป็นทางการและในที่สุดการเขียนเอกสารที่ใช้วิธีการทางการดังกล่าว? ในแง่ของบริบทฉันคิดมากขึ้นในแง่ของทฤษฎี B และการตรวจสอบอย่างเป็นทางการว่าเป็นสิ่งที่พวกเขาควรเรียนรู้ แต่ยังมีหัวข้อ TCS แบบคลาสสิกเช่นทฤษฎีออโตมาตะ

3
เมื่อใดที่การจำลองทั้งสองไม่ได้เป็นการแบ่งครึ่ง
เมื่อได้รับการเปลี่ยนระบบ โดยที่คือชุดของรัฐเป็นชุดของป้ายกำกับและเป็นความสัมพันธ์แบบไตรภาค ตามปกติการเขียนสำหรับ(P,การเปลี่ยนเลเบลแสดงว่าระบบในสถานะเปลี่ยนสถานะเป็นด้วยเลเบลซึ่งหมายความว่าเป็นการกระทำที่สังเกตได้ซึ่งทำให้เกิดการเปลี่ยนแปลงสถานะS Λ → ⊆ S × Λ × S P α → Q ( P , α , Q ) ∈ → P α →คิวพีคิวα α( S, Λ , → )(S,Λ,→)(S,\Lambda,\to)SSSΛΛ\Lambda→ ⊆ S× Λ × S→⊆S×Λ×S\to\subseteq S\times\Lambda\times Sp →αQp→αqp \stackrel\alpha\rightarrow q( p , α , q) ∈ →(p,α,q)∈→(p,\alpha,q)\in\top …

1
อัตราส่วนของปัญหาที่ตัดสินใจได้
พิจารณาปัญหาการตัดสินใจที่ระบุไว้ในภาษาทางการ“ สมเหตุสมผล” บางภาษา สมมุติว่าสูตรใน Peano เลขคณิตที่สูงกว่าซึ่งมีตัวแปรอิสระหนึ่งตัวเป็นกรอบอ้างอิง แต่ฉันก็สนใจในการคำนวณแบบอื่น ๆ : สมการไดโอแฟนไทน์, ปัญหาคำจากการเขียนกฎใหม่โดยใช้เครื่องทัวริงเป็นต้นคำตอบใด ๆ การทำให้เป็นระเบียบแบบดั้งเดิมนั้นเป็นเรื่องปกติ แต่ถ้าคุณรู้ว่าตัวเลือกของการทำให้เป็นระเบียบมีอิทธิพลต่อคำตอบมากแค่ไหนนั่นก็น่าสนใจเช่นกัน ได้รับความยาวของคำสั่งของปัญหาการตัดสินใจที่เราสามารถกำหนดหมายเลขของงบ decidable ของความยาวและหมายเลขของงบ undecidable ของความยาวNNNND(N)D(N)D(N)NNNU(N)U(N)U(N)NNN สิ่งที่เป็นที่รู้จักกันเกี่ยวกับการเติบโตของและ ? กล่าวอีกนัยหนึ่งถ้าฉันใช้ปัญหาการตัดสินใจที่มีรูปแบบสุ่มความน่าจะเป็นที่จะตัดสินใจได้สำหรับความยาวของข้อความที่กำหนดคืออะไรU(N)U(N)U(N)D(N)D(N)D(N) ได้รับแรงบันดาลใจจากคำถามนี้ซึ่งถามว่า“ ปัญหาและอัลกอริธึมส่วนใหญ่ [เป็น] ตัดสินใจได้” ถ้าคุณไม่กรองตามความสนใจ


1
การใช้อัลกอริทึม GSAT - วิธีการเลือกตัวอักษรที่จะพลิก?
GSAT อัลกอริทึมส่วนใหญ่ส่งตรง: คุณได้รับสูตรในรูปแบบปกติซึ่งเชื่อมต่อกันและพลิกตัวอักษรของอนุประโยคจนกว่าคุณจะพบวิธีแก้ปัญหาที่ตรงกับสูตรหรือถึงขีด จำกัด สูงสุดของ max_tries / max_flips และไม่พบวิธีแก้ปัญหา ฉันใช้อัลกอริทึมต่อไปนี้: procedure GSAT(A,Max_Tries,Max_Flips) A: is a CNF formula for i:=1 to Max_Tries do S <- instantiation of variables for j:=1 to Max_Iter do if A satisfiable by S then return S endif V <- the variable whose flip yield the most …

5
ทำไมการเข้ารหัสด้วยแผ่นแบบครั้งเดียวเหมือนกันไม่ดี?
การเข้ารหัสข้อความมีเพียงครั้งแป้นkคุณทำ E n ค( ม. 1 , k ) = ม. 1 ⊕ kม.1ม.1m_1kkkEn c ( m1, k ) = m1⊕ kEnค(ม.1,k)=ม.1⊕kEnc(m_1,k) = m_1 \oplus k หากคุณใช้เดียวกันในการเข้ารหัสข้อความที่แตกต่างm 2คุณจะได้รับ E n c ( m 2 , k ) = m 2 ⊕ kและถ้าคุณทำ Xor ของ crypttext ทั้งสองคุณจะได้รับ ( m 1 ⊕ …

3
หน่วยประมวลผลแบบขนานขนาดใหญ่ในปัจจุบันสามารถเรียกใช้ออโตมาตาเซลลูลาร์ได้อย่างมีประสิทธิภาพหรือไม่?
ฉันสงสัยว่าหน่วยการคำนวณแบบขนานขนาดใหญ่ที่มีอยู่ในการ์ดกราฟิกในปัจจุบัน (ตัวอย่างที่ตั้งโปรแกรมได้ในOpenCLเป็นต้น) ดีพอที่จะจำลองออโตเซล 1D เซลลูลาร์ (หรืออาจเป็นออโตเซล 2D)? หากเราเลือกกริดที่ จำกัด ใด ๆ ที่จะพอดีกับหน่วยความจำของชิปเราสามารถคาดหวังการเปลี่ยนแปลงของออโตเมติกเซลลูลาร์ที่กำหนดบนกริดนี้เพื่อคำนวณได้ในเวลาคงที่ (เสมือน) หรือไม่? ฉันคิดว่าออโตมาร์เซลลูลาร์ 2D จะต้องใช้แบนด์วิดท์มากขึ้นสำหรับการสื่อสารระหว่างส่วนต่าง ๆ ของชิปมากกว่าออโตมาตา 1D ฉันสนใจคำถามเดียวกันในกรณีของการเขียนโปรแกรม FPGA หรือชิปที่กำหนดเอง


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