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

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

2
กลุ่มมอร์ฟิซึ่มกับกราฟมอร์ฟิซึ่ม
ในการอ่านบล็อกบางอย่างเกี่ยวกับความซับซ้อนในการคำนวณ (ตัวอย่างที่นี่ ) ฉันหลอมรวมความคิดที่ตัดสินใจว่าสองกลุ่มที่มี isomorphic นั้นง่ายกว่าการทดสอบกราฟสองกราฟสำหรับ isomorphism ตัวอย่างเช่นในหน้าระบุว่ามันบอกว่ากราฟ isomorphism เป็นปัญหาทั่วไปมากกว่ากลุ่ม isomorphism ดังนั้นฉันกำลังวางตัวต่อไปนี้ ให้กลุ่มสามารถสร้างกราฟ ของพหุนามขนาดในเช่นนั้นสำหรับกลุ่มและGGGΓ(G)Γ(G)\Gamma(G)|G||G||G|Γ(G)≅Γ(H)⟺G≅HΓ(G)≅Γ(H)⟺G≅H\Gamma(G) \cong \Gamma(H) \iff G \cong HGGGH?H?H?

1
ทำไมเราไม่ค้นคว้าเพิ่มเติมเกี่ยวกับการรับประกันเวลารวบรวม?
ฉันรักทุกสิ่งที่รวบรวมเวลาและฉันชอบความคิดที่ว่าเมื่อคุณรวบรวมโปรแกรมการรับประกันจำนวนมากเกี่ยวกับการดำเนินการของมัน โดยทั่วไปการพูดระบบประเภทคงที่ (Haskell, C ++, ... ) ดูเหมือนจะให้การรับประกันเวลาคอมไพล์ที่แข็งแกร่งกว่าระบบประเภทแบบไดนามิกใด ๆ จากสิ่งที่ฉันเข้าใจ Ada ดำเนินการตรวจสอบเวลาให้ดียิ่งขึ้นไปอีกและสามารถตรวจจับช่วงของข้อผิดพลาดที่มากกว่าก่อนดำเนินการ มันยังถือว่าปลอดภัยพอสมควร ณ เวลาใดเวลาหนึ่งมันถูกเลือกสำหรับฟิลด์ที่ละเอียดอ่อน (เมื่อข้อผิดพลาดในการเขียนโปรแกรมอาจทำให้เสียชีวิต) ตอนนี้ฉันสงสัยว่า: ถ้าการค้ำประกันแบบคงที่ที่ดีกว่านำไปสู่รหัสที่มีเอกสารและปลอดภัยกว่าแล้วทำไมเราไม่ค้นคว้าเพิ่มเติมในทิศทางนั้น ตัวอย่างของสิ่งที่ดูเหมือนว่าจะหายไปจะเป็นภาษาที่แทนที่จะกำหนดintประเภททั่วไปที่มีช่วงที่กำหนดโดยจำนวนบิตของสถาปัตยกรรมพื้นฐานหนึ่งอาจมีช่วง (ในตัวอย่างต่อไปนี้Int [a..b]อธิบายถึงชนิดจำนวนเต็มระหว่าง รวม a และ b): a : Int [1..24] b : Int [1..12] a + b : Int [2..36] a - b : Int [-11..23] b - a : Int …

4
การรวมกันของภาษาปกติที่ไม่ปกติ
ฉันเจอคำถามนั้น: "ยกตัวอย่างภาษาสองภาษาปกติซึ่งสหภาพของพวกเขาไม่ได้แปลภาษาปกติ" นี่เป็นเรื่องที่ค่อนข้างน่าตกใจสำหรับฉันเพราะฉันเชื่อว่าภาษาปกติถูกปิดลงภายใต้สหภาพ ซึ่งหมายความว่าสำหรับฉันถ้าฉันใช้สองภาษาปกติและรวมพวกเขาฉันต้องได้รับภาษาปกติ และฉันคิดว่าฉันเข้าใจหลักฐานของสิ่งนั้น: ในคำพูดของฉันหากภาษาเป็นปกติ หากเรารับสถานะทั้งหมด (ยูเนี่ยน) และเราเพิ่มสถานะใหม่สำหรับจุดเริ่มต้นและเราแก้ไขฟังก์ชั่นการเปลี่ยนภาพสำหรับสถานะใหม่ด้วย epsilon เราก็โอเค เรายังแสดงให้เห็นว่ามีเส้นทางจากทุกรัฐ ฯลฯ คุณบอกฉันได้ไหมว่าฉันผิดตรงไหนหรืออาจเป็นอีกวิธีหนึ่งในการถามคำถาม แหล่งที่มาของคำถามแบบฝึกหัดที่ 4 ในภาษาฝรั่งเศส นอกจากนี้คำถามเดียวกันจะถูกถามกับทางแยก

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

5
2 ** x เร็วกว่าในการคำนวณกว่า exp (x) หรือไม่
ยกโทษให้naïvetéที่จะชัดเจนในวิธีที่ฉันถามคำถามนี้รวมทั้งความจริงที่ว่าฉันถามมัน นักคณิตศาสตร์มักใช้เนื่องจากเป็นฐานที่ง่ายที่สุด / อร่อยที่สุดในทางทฤษฎี (เนื่องจากแคลคูลัส) แต่คอมพิวเตอร์ดูเหมือนว่าจะทำทุกอย่างเป็นเลขฐานสองดังนั้นคอมพิวเตอร์จะคำนวณได้เร็วกว่าหรือเปล่าexpexp\exp2**xMath::exp(x)

1
ปัญหา NP-Complete ใดที่มีอัลกอริทึมที่รู้จักกันเร็วที่สุด
ในแง่ของ runtime แบบ asymptotic ที่เลวร้ายที่สุดปัญหา NP-complete ใดที่มีอัลกอริทึม (แน่นอน) ที่รู้จักกันเร็วที่สุดและอัลกอริทึมคืออะไร มีบางสิ่งที่รู้ไหมว่าเร็วกว่า ?O(n2∗2n)O(n2∗2n)O(n^2*2^n)

2
เหตุใดปัญหา spanning tree ของ k-bounded NP-complete
-bounded ทอดปัญหาต้นไม้ที่คุณต้อง undirected กราฟและคุณจะต้องตัดสินใจหรือไม่ก็มีต้นไม้ทอดเช่นกันว่าจุดสุดยอดมีปริญญาอย่างมากที่สุดkkkkG(V,E)G(V,E)G(V,E)kkk ฉันรู้ว่าสำหรับกรณีนี่คือปัญหาเส้นทางมิลโตเนียน แต่ฉันมีปัญหากับกรณีที่ 2 ฉันพยายามคิดในแง่ที่ว่าคุณสามารถเพิ่มโหนดเพิ่มเติมลงในต้นไม้ที่ทอดที่มีอยู่ซึ่งและอาจเป็นเพราะฐานเป็น NP ที่สมบูรณ์การเพิ่มสิ่งต่าง ๆ จะทำให้มันสมบูรณ์ - NP แต่ดูเหมือนจะไม่ ขวา. ฉันเรียน CS ด้วยตนเองและมีปัญหากับทฤษฎีดังนั้นความช่วยเหลือใด ๆ จะได้รับการชื่นชม!k=2k=2k=2k>2k>2k>2k=2k=2k=2

9
อัลกอริทึมคืออะไร?
ฉันรู้ว่านี่อาจฟังดูแปลกไปหน่อยในความเป็นจริงฉันเคยคิดเสมอในกล่อง แต่เมื่อเร็ว ๆ นี้ฉันได้คิดว่าอาจเป็นเพราะวิทยาการคอมพิวเตอร์ให้อิสระในระดับสูงเกี่ยวกับวิธีการประดิษฐ์โปรแกรมอื่นที่ไม่ใช่ สิ่งที่สอนในมหาวิทยาลัย พิจารณาฟังก์ชันแฟกทอเรียล โดยทั่วไปแล้วเรากำหนดฟังก์ชั่นนี้เช่น int fact(int n) { int r = 1; for(int i=2;i<=n;i++) r = r*i; return r; } ฉันจะเรียกมันว่าอัลกอริทึมและไม่ต้องสงสัยเลยว่านี่เป็นวิธีที่ถูกต้องที่จะทำ จากนั้นฉันสงสัยว่า "ฉันสามารถทำสิ่งนี้ในเวลาคงที่ได้หรือไม่" ซึ่งปล่อยให้แนวคิดต่อไปนี้เกิดอะไรขึ้นถ้าฉันมีอาร์เรย์ของจำนวนเต็มโดยที่อาร์เรย์ [n] เป็นบ้านของแฟคทอเรียลของ n? เมื่ออาร์เรย์นี้เต็มไปฉันสามารถนิยามข้อเท็จจริงได้ดังนี้ int fact(int n) { return array[n]; } ถึงกระนั้นฉันก็ไม่สามารถคิดอัลกอริทึมนี้ได้แม้ว่ามันจะให้ผลลัพธ์ที่ถูกต้องและทำงานในเวลาคงที่ O (1) สิ่งนี้เรียกว่าอัลกอริทึมหรือไม่? มิฉะนั้นทำไมไม่ ฉันอาจโต้เถียงว่าการเติมอาร์เรย์จะต้องใช้อัลกอริทึมในการดำเนินการในบางครั้งแม้ว่ามันจะอยู่ในสมองของเราเพื่อให้เราสามารถเติมอาร์เรย์ได้ แต่นี่อาจเป็นเกณฑ์หรือไม่? ลักษณะเหล่านี้มีการจัดการอย่างเป็นทางการอย่างไร โปรดทราบว่าแนวคิดนี้สามารถขยายไปยังฟังก์ชั่นใด ๆ ที่ทำงานบนจำนวนเต็มอิสระของจำนวนข้อโต้แย้งของมันฉันจะต้องใช้เมทริกซ์ถ้าฟังก์ชั่นมี 2 …
12 algorithms 

4
Quantum Computer analog หรือไม่?
เราเคยมีคอมพิวเตอร์แอนะล็อกเมื่อหลายสิบปีก่อน คอมพิวเตอร์ยุคใหม่เป็นดิจิตอล คอมพิวเตอร์ควอนตัมล่ะ? มันเป็นแบบอะนาล็อกหรือดิจิตอล ฉันถามสิ่งนี้เนื่องจากควิบิตอาจมีหลายสิ่งในเวลาเดียวกัน

1
การเลือกเซตย่อยเพื่อเพิ่มระยะห่างต่ำสุดระหว่างจุดสูงสุด
ฉันมีชุดของจุดCCCและฉันมีระยะห่างระหว่างจุดแต่ละD(Pi,Pj)D(Pi,Pj)D(P_i,P_j) ) ระยะทางเหล่านี้เป็นแบบยุคลิด แต่จุดต่างๆอยู่ในพื้นที่ของคุณลักษณะ จากคะแนนCCCฉันต้องการเลือกชุดย่อยของnnnคะแนน โทรเซตนี้ssssฉันต้องการที่จะเลือกเซตนี้เพื่อเพิ่มระยะทางขั้นต่ำระหว่างจุดทั้งหมดที่อยู่ในชุดใหม่ssss maxs⊂C|s|=n⎛⎝⎜mini,j∈si≠jD(Pi,Pj)⎞⎠⎟maxs⊂C|s|=n(mini,j∈si≠jD(Pi,Pj)) \max_{\substack{s \subset C \\ |s| = n}} \left( \min_{\substack{i,j \in s \\ i \neq j} } D \left( P_i, P_j \right) \right) ตอนนี้ฉันกำลังใช้การปีนเขาเพื่อแก้ไขปัญหานี้ ฉันเข้าใจว่าการหลอมจำลองอาจให้ทางออกที่ดีกว่า มีวิธีการแก้ปัญหาที่รู้จักกันในประเภทนี้? หรือสามารถแก้ไขปัญหานี้เป็นปัญหาอื่นที่สามารถแก้ไขได้อย่างง่ายดายหรือไม่

2
แคลคูลัสแลมบ์ดา: ความแตกต่างระหว่างบริบทและบริบทการประเมิน
ประการแรกฉันอยากจะบอกว่าข้อความของฉันด้านล่างอาจมีข้อผิดพลาดดังนั้นโปรดชี้ข้อผิดพลาดใด ๆ ในการกำหนดคำถามของฉัน พิจารณาแคลคูลัสแลมบ์ดาที่ไม่ได้พิมพ์ด้วย booleans และ if-statement ซึ่งคำเหล่านี้ให้ไว้โดยไวยากรณ์นี้: t ::= v | t t | if t t t | x v ::= \x.t | #t | #f บริบท C ในกรณีนี้จะได้รับตามไวยากรณ์นี้: C ::= [-] | \x. C | C t | t C | if C t t | if …

2
มีนักสะสมขยะที่คำนึงถึงการเพจหรือไม่
การรวบรวมขยะต้องไปที่วัตถุทั้งหมดที่ยังมีชีวิตอยู่เพื่อค้นหาหน่วยความจำที่สามารถเรียกคืนได้ (มีหลายชั่วอายุคนที่ล่าช้าไปนิดหน่อย) ทุกสิ่งเท่ากันจะเป็นการดีกว่าถ้าคุณเข้าชมออบเจกต์ที่ได้รับการเพจเป็น RAM ก่อนแล้วจึงเพจเพจบล็อกอื่น ๆ ความเป็นไปได้อีกอย่างคือเมื่อ OS ต้องการลบหน่วยความจำออกจากกระบวนการ GC จะถูกถามก่อนว่ามีเพจที่สามารถยกเลิกได้หรือไม่โดยไม่ต้องทำการเพจออก GC อาจใช้วัตถุเคลื่อนที่จากหน้าเป็นส่วนใหญ่ดังนั้นสามารถล้างหน้าภายในระยะเวลาที่ระบบปฏิบัติการต้องการสำหรับหน้า แต่ฉันไม่สามารถเรียกคืนตัวรวบรวมข้อมูลขยะใด ๆ ที่ทำงานร่วมกับระบบเพจจิ้ง OS ที่ขับเคลื่อนการสั่งซื้อที่ GC ทำงานได้

1
ภาษาใดบ้างที่สามารถแปลภาษาทัวริงของคอมไพเลอร์ได้?
ความคิดเห็นมากกว่าบน tex.SEทำให้ฉันประหลาดใจ คำสั่งเป็นหลัก: ถ้าฉันสามารถเขียนคอมไพเลอร์สำหรับภาษา X ในภาษา X แล้ว X คือทัวริงสมบูรณ์ ในแง่ความสามารถในการคำนวณและภาษาที่เป็นทางการนี่คือ: หากตัดสินใจL ⊆ L T Mและ⟨ M ⟩ ∈ Lแล้วF L = R EMMML ⊆ LT ML⊆LTML \subseteq L_{\mathrm{TM}}⟨ M⟩ ∈ L⟨M⟩∈L\langle M \rangle \in LFL= R EFL=REF_L = \mathrm{RE} นี่หมายถึงภาษาของทั่วเข้ารหัสเครื่องทัวริงและF Lหมายถึงชุดของฟังก์ชั่นคำนวณโดยเครื่องในLLT MLTML_{\mathrm{TM}}FLFLF_LLLL มันเป็นเรื่องจริงเหรอ?

2
เครื่องทัวริงเทปเดี่ยวที่มีอินพุตป้องกันการเขียนจะรับรู้เฉพาะภาษาปกติ
นี่คือปัญหา: พิสูจน์ว่าเครื่องทัวริงเทปเดี่ยวที่ไม่สามารถเขียนบนส่วนของเทปที่มีสตริงป้อนข้อมูลจะรับรู้เฉพาะภาษาปกติ ความคิดของฉันคือการพิสูจน์ว่า TM นี้โดยเฉพาะเทียบเท่ากับ DFA การใช้ TM นี้เพื่อจำลอง DFA นั้นตรงไปตรงมามาก อย่างไรก็ตามเมื่อฉันต้องการใช้ DFA นี้เพื่อจำลอง TM ฉันพบปัญหา สำหรับการเปลี่ยนแปลง TM , DFA สามารถจำลองได้อย่างแน่นอนโดยการอ่านเทปทางด้านขวาและทำการเปลี่ยนสถานะเดียวกันδ( q, a ) = ( q', a , R )δ(q,a)=(q′,a,R)\delta(q,a)=(q',a,R) สำหรับ , ฉันไม่สามารถหาวิธีใช้ DFA หรือ NFA นี้เพื่อจำลองการย้ายทางซ้ายเนื่องจาก DFA อ่านไปทางซ้ายเท่านั้นและไม่มีสแต็กหรืออะไรที่จะเก็บδ( q, a ) = ( q', a , L )δ(q,a)=(q′,a,L)\delta(q,a)=(q',a,L) …

3
Multicore SAT Solver
ฉันกำลังพยายามที่จะแก้ปัญหา SAT ข้อ 25k 5k เนื่องจากมันทำงานมาเป็นเวลาหนึ่งชั่วโมง (precosat) และฉันต้องการแก้ปัญหาที่ใหญ่กว่าหลังจากนั้นฉันกำลังมองหา SAT-Solver แบบมัลติคอร์ ดูเหมือนว่าจะมี SAT-Solvers หลายคนฉันจึงค่อนข้างแพ้ ใครช่วยชี้ให้ฉันดีที่สุดสำหรับกรณีของฉัน ฉันก็จะมีความสุขถ้ามีคนให้เวลาฉันโดยประมาณ (ถ้าเป็นไปได้)

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