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

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


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

1
แปลง CFG เป็น PDA
มีชุดของกฎหรือวิธีการใด ๆ ในการแปลงไวยากรณ์อิสระให้เป็นออโตมาต้าหรือไม่ ฉันพบสไลด์ออนไลน์แล้วแต่ไม่สามารถเข้าใจได้ ในสไลด์ที่ 10 เขาพูดถึงกฎบางอย่างที่ทุกคนสามารถอธิบายได้หรือไม่

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

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

2
เครื่องทัวริงสองสถานะสำหรับการจับคู่วงเล็บ
ในวิทยาลัยเราได้เรียนรู้เกี่ยวกับทฤษฎีการคำนวณโดยทั่วไปและเครื่องทัวริงโดยเฉพาะ ผลลัพธ์ทางทฤษฎีที่ยอดเยี่ยมอย่างหนึ่งคือค่าใช้จ่ายของตัวอักษรขนาดใหญ่ (สัญลักษณ์) คุณสามารถลดจำนวนสถานะลงเหลือเพียง 2 ฉันกำลังมองหาตัวอย่างของเครื่องจักรทัวริงที่แตกต่างกันและตัวอย่างที่นำเสนอโดยทั่วไปคือเครื่องมือจับคู่วงเล็บ / ตัวตรวจสอบ โดยพื้นฐานแล้วมันจะตรวจสอบว่าสตริงของวงเล็บเช่น(()()()))()()()สมดุลหรือไม่ (ตัวอย่างก่อนหน้านี้จะคืนค่า 0 สำหรับการไม่สมดุล) ลองเป็นฉันฉันจะได้รับสิ่งนี้เป็นเครื่องสามรัฐ ฉันชอบที่จะรู้ว่าถ้าใครสามารถลดสิ่งนี้ลงให้เหลือน้อยที่สุดในทางทฤษฎีของ 2 และสิ่งที่วิธี / รัฐ / สัญลักษณ์ของพวกเขาเป็นอย่างไร เพียงเพื่อชี้แจงวงเล็บคือ "แซนวิช" ระหว่างเทปเปล่าดังนั้นในตัวอย่างข้างต้น - - - - - - - (()()()))()()() - - - - - - -จะเป็นอินพุตบนเทป ตัวอักษรจะรวมถึง(, ), 1, 0, -และ*halt*รัฐไม่นับเป็นของรัฐ สำหรับการอ้างอิงสามสถานะของฉันมีดังนี้: คำอธิบายของรัฐ: State s1: Looks for Closing …

1
ความแตกต่างระหว่างภาษาที่ DFA สองภาษายอมรับซึ่งมีสถานะเริ่มต้น / รัฐที่ยอมรับแตกต่างกันอย่างไร
เมื่อเร็ว ๆ นี้ฉันถามคำถามเกี่ยวกับ Math SE ยังไม่มีคำตอบ คำถามนี้เกี่ยวข้องกับคำถามนั้น แต่รายละเอียดทางเทคนิคเพิ่มเติมเกี่ยวกับวิทยาการคอมพิวเตอร์ รับ DFAsสองและโดยที่ชุดของรัฐตัวอักษรอินพุตและฟังก์ชันการเปลี่ยนแปลงของและเหมือนกันสถานะเริ่มต้นและสถานะสุดท้าย (การยอมรับ) อาจแตกต่างกัน ให้และเป็นภาษาที่และยอมรับตามลำดับA=(Q,Σ,δ,q1,F1)A=(Q,Σ,δ,q1,F1)A = (Q, \Sigma, \delta, q_1, F_1)B=(Q,Σ,δ,q2,F2)B=(Q,Σ,δ,q2,F2)B = (Q, \Sigma, \delta, q_2, F_2)AAABBBL1L1L_1L2L2L_2AAABBB มีสี่กรณี: q1=q2q1=q2q_1 = q_2และF_2F1=F2F1=F2F_1 = F_2 q1≠Q2q1≠q2q_1 \neq q_2และF_2F1=F2F1=F2F_1 = F_2 Q1=Q2q1=q2q_1 = q_2และF_2F1≠F2F1≠F2F_1 \neq F_2 Q1≠Q2q1≠q2q_1 \neq q_2และF_2F1≠F2F1≠F2F_1 \neq F_2 คำถามของฉันคือ อะไรคือข้อแตกต่างระหว่างและ ในกรณีที่ 2, …

2
โครงสร้างข้อมูลการค้นหาที่น่าจะเป็นประโยชน์หรือไม่
SkipList ให้เหมือนกัน O ( บันทึกn )O(เข้าสู่ระบบ⁡n)O(\log n)ขอบเขตสำหรับการค้นหาเป็นโครงสร้างที่สมดุลพร้อมข้อดีที่ไม่จำเป็นต้องปรับสมดุล เนื่องจาก SkipList ถูกสร้างขึ้นโดยใช้การสุ่มเหรียญแบบพลิกกลับขอบเขตเหล่านี้จะเก็บไว้ได้ตราบใดที่โครงสร้างของ SkipList นั้น "สมดุล" เพียงพอ โดยเฉพาะกับความน่าจะเป็น1 /nค1/nค1/n^cสำหรับค่าคงที่โครงสร้างที่สมดุลอาจหายไปหลังจากใส่องค์ประกอบc > 0ค>0c>0 สมมติว่าฉันต้องการใช้รายการข้ามเป็นแบ็กเอนด์พื้นที่เก็บข้อมูลในเว็บแอปพลิเคชันที่อาจทำงานได้ตลอดไป ดังนั้นหลังจากการดำเนินการจำนวนพหุนามจำนวนหนึ่งโครงสร้างที่สมดุลของ SkipList น่าจะหายไปมาก เหตุผลของฉันถูกต้องหรือไม่ โครงสร้างการค้นหา / จัดเก็บข้อมูลความน่าจะเป็นดังกล่าวมีแอปพลิเคชันที่ใช้งานได้จริงหรือไม่และถ้าเป็นเช่นนั้นแล้วปัญหาดังกล่าวจะหลีกเลี่ยงได้อย่างไร? แก้ไข: ฉันทราบว่ามีตัวแปรที่กำหนดขึ้นของ SkipList ซึ่งมีความซับซ้อนมากกว่าที่จะนำมาใช้เปรียบเทียบกับ SkipList แบบสุ่ม (คลาสสิก)

2
มีอัลกอริทึม "การเรียงลำดับ" ซึ่งส่งกลับค่าการสุ่มเมื่อใช้ตัวเปรียบเทียบแบบพลิกเหรียญหรือไม่?
แรงบันดาลใจจากคำถามนี้ที่ผู้ถามต้องการทราบว่าเวลาทำงานเปลี่ยนไปเมื่อตัวเปรียบเทียบที่ใช้ในอัลกอริธึมการค้นหามาตรฐานถูกแทนที่ด้วยการพลิกเหรียญอย่างยุติธรรมและความล้มเหลวที่โดดเด่นของ Microsoft ในการเขียนเครื่องกำเนิดการเปลี่ยนแปลงแบบสม่ำเสมอ : มีอัลกอริทึมการเรียงลำดับแบบอิงซึ่งจะขึ้นอยู่กับการนำไปใช้ของตัวเปรียบเทียบ: คืนองค์ประกอบในลำดับที่เรียงเมื่อใช้ตัวเปรียบเทียบที่แท้จริง (นั่นคือการเปรียบเทียบทำตามที่เราคาดหวังในอัลกอริทึมการเรียงลำดับมาตรฐาน) ส่งคืนการเปลี่ยนแปลงการสุ่มอย่างสม่ำเสมอขององค์ประกอบเมื่อตัวเปรียบเทียบถูกแทนที่ด้วยการพลิกเหรียญอย่างยุติธรรม (นั่นคือกลับx < y = trueด้วยความน่าจะเป็น 1/2 โดยไม่คำนึงถึงค่าของ x และ y) รหัสสำหรับอัลกอริทึมการเรียงลำดับจะต้องเหมือนกัน มันเป็นเพียงรหัสในการเปรียบเทียบ "กล่องดำ" ที่ได้รับอนุญาตให้เปลี่ยน

2
ความซับซ้อนในการค้นหาสูงสุดแบบสองมิติ (MIT OCW 6.006)
ในวิดีโอการบรรยายสำหรับMIT OCW 6.006เวลา 43:30 ได้รับ m × nm×nm \times n มดลูก AAA กับ ม.mm คอลัมน์และ nnn แถวซึ่งเป็นอัลกอริธึมการค้นหาสูงสุดแบบสองมิติซึ่งค่าสูงสุดคือค่าใด ๆ ที่มากกว่าหรือเท่ากับเพื่อนบ้านที่อยู่ติดกันอธิบายว่า: หมายเหตุ: หากมีความสับสนในการอธิบายคอลัมน์ผ่าน nnnฉันขอโทษ แต่นี่เป็นวิธีที่วิดีโอการบรรยายอธิบายและฉันพยายามที่จะสอดคล้องกับวิดีโอ มันทำให้ฉันสับสนมาก เลือกคอลัมน์กลาง n / 2n/2n/2// มีความซับซ้อนΘ ( 1 )Θ(1)\Theta(1) ค้นหาค่าสูงสุดของคอลัมน์ n/2n/2n/2// มีความซับซ้อน Θ(m)Θ(m)\Theta(m) เพราะมี mmm แถวในคอลัมน์ ตรวจสอบขอบเขต แถวเพื่อนบ้านของค่าสูงสุดหากมีค่ามากกว่าจะพบจุดสูงสุดมิฉะนั้นจะเรียกเก็บเงินคืนT(n/2,m)T(n/2,m)T(n/2, m)// มีความซับซ้อนT(n/2,m)T(n/2,m)T(n/2,m) จากนั้นเพื่อประเมินการสอบถามซ้ำผู้สอนการบรรยายกล่าว T(1,m)=Θ(m)T(1,m)=Θ(m)T(1,m) = \Theta(m) เพราะมันพบค่าสูงสุด T(n,m)=Θ(1)+Θ(m)+T(n/2,m)(E1)(E1)T(n,m)=Θ(1)+Θ(m)+T(n/2,m) T(n,m) …

1
การแปลงต่อไปนี้รักษาบริบทที่ไม่เป็นอันตรายหรือไม่
ฉันพบปัญหานี้เกี่ยวกับการใช้ภาษาที่ไม่มีบริบท ปล่อยLLLเป็นภาษาที่ไม่มีบริบท กำหนดL#= { x :xผม∈ ลL#={x:xi∈LL^{\#} = \{ x : x^i \in L สำหรับทุกคน ฉัน= 0 , 1 , 2 , . . }i=0,1,2,...}i=0,1,2,...\}. คือL#L#L^{\#}ไม่มีบริบทเสมอหรือ ฉันเดาว่ามันจะรักษาบริบท - freeness ใครสามารถแสดงหลักฐานเบื้องต้นเกี่ยวกับเรื่องนี้ได้บ้าง

3
CPU Cache ได้รับการจัดการโดยองค์ประกอบซอฟต์แวร์ใด
แคชของ CPU ถูกใช้โดยหาประโยชน์จากพื้นที่ชั่วคราวและพื้นที่ คำถามของฉันคือใครรับผิดชอบการจัดการแคชเหล่านี้ ระบบปฏิบัติการนี้เป็นตัวระบุรูปแบบการเข้าถึงที่เฉพาะเจาะจงหรือไม่แล้วจัดการ (เช่นเก็บข้อมูลไว้) แคชโดยใช้การเรียกฟังก์ชั่นระบบปฏิบัติการระดับต่ำ

1
ความแข็งของการประมาณโปรแกรมจำนวนเต็ม 0-1
รับโปรแกรมจำนวนเต็ม (ไบนารี) ของแบบฟอร์ม:0,10,10,1 mins.t.f(x)Ax=bxi≥0xi∈{0,1}∀i∀iminf(x)s.t.Ax=bxi≥0∀ixi∈{0,1}∀i \begin{array}{lll} \text{min} & f(x) & \\ \text{s.t.} & A x = b \\ & x_i \ge 0 & \quad \forall i\\ & x_i \in \{0,1\} & \quad \forall i \end{array} โปรดทราบว่าขนาดของไม่ได้ถูกแก้ไขในมิติใดมิติหนึ่งAAA ผมเชื่อว่าปัญหานี้ได้รับการแสดงที่จะยากที่จะใกล้เคียง (ขอสมบูรณ์) โดยGarey และจอห์นสัน ถ้าเป็นเช่นนี้จะยังคงเป็นกรณีเมื่อมีรายการไบนารีและเป็นฟังก์ชันเชิงเส้น ( )?NPNP{\sf NP}A,bA,bA, bf(x)f(x)f(x)f(x)=∑icixif(x)=∑icixif(x) = \sum_i c_i x_i

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

2
ตัวแปรของฟังก์ชันบีเวอร์ไม่ว่าง
การอ่านคำถามนี้ " ปัญหาที่ไม่อาจเกิดขึ้นได้อย่างเป็นธรรมชาติ แต่ไม่ทัวริงสมบูรณ์ " ภาษาต่อไปนี้อยู่ในใจของฉัน: ถ้าเป็นฟังก์ชั่นบีเวอร์ไม่ว่าง (คะแนนสูงสุดที่สามารถทำได้ในระหว่างการหยุดเครื่องทัวริง 2 สัญลักษณ์ n-state ประเภทที่อธิบายข้างต้นเมื่อเริ่มต้นด้วยเทปเปล่า) ให้กำหนดฟังก์ชัน:Σ(⋅)Σ(⋅)\Sigma(\cdot) BB(⟨M⟩)={10⟨M⟩ computes Σ(⋅) otherwiseBB(⟨M⟩)={1⟨M⟩ computes Σ(⋅)0 otherwiseBB(\langle M \rangle) = \begin{cases} 1 & \text{$\langle M \rangle$ computes $\Sigma(\cdot)$}\\ 0 & \text{ otherwise} \end{cases} ตอนนี้กำหนดภาษา: L={⟨M⟩|⟨M⟩ halts and BB(⟨M⟩)=0}L={⟨M⟩|⟨M⟩ halts and BB(⟨M⟩)=0}L = \{ \langle M \rangle \; …

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