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

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

2
จำนวนขั้นต่ำทางทฤษฎีของการลงทะเบียนสำหรับคอมพิวเตอร์ที่ทันสมัย?
ฉันลงเรียนหลักสูตรคอมไพเลอร์ในการศึกษาระดับปริญญาตรีของฉันซึ่งเราเขียนคอมไพเลอร์ที่คอมไพล์โปรแกรมต้นฉบับในภาษาจาวาของเล่นเหมือนภาษาแอสเซมบลีของเล่น (ซึ่งเรามีล่าม) ในโครงการเราได้ตั้งสมมติฐานบางอย่างเกี่ยวกับเครื่องเป้าหมายที่เกี่ยวข้องอย่างใกล้ชิดกับโปรแกรมดั้งเดิมที่ใช้งานจริง สแต็กรันไทม์ติดตามโดยการลงทะเบียนสแต็คพอยน์เตอร์ ("SP") เฉพาะ ฮีปสำหรับการจัดสรรอ็อบเจ็กต์แบบไดนามิกที่ติดตามโดยตัวชี้ฮีพเฉพาะ ("HP") ลงทะเบียน การลงทะเบียนตัวนับโปรแกรมเฉพาะ ("PC") เครื่องเป้าหมายมี 16 รีจิสเตอร์ การดำเนินการกับข้อมูล (ตรงข้ามกับเช่นการข้าม) เป็นการดำเนินการลงทะเบียนเพื่อลงทะเบียน เมื่อเราไปถึงหน่วยการใช้การจัดสรรการลงทะเบียนเพื่อทำให้เกิดประโยชน์สูงสุดมันทำให้ฉันประหลาดใจ: จำนวนการลงทะเบียนขั้นต่ำทางทฤษฎีสำหรับเครื่องดังกล่าวคืออะไร? คุณสามารถเห็นได้จากสมมติฐานของเราที่เราใช้การลงทะเบียนห้ารายการ (SP, HP, PC, และอีกสองสำหรับใช้เป็นที่เก็บข้อมูลสำหรับการทำงานแบบไบนารี) ในคอมไพเลอร์ของเรา ในขณะที่การเพิ่มประสิทธิภาพเช่นการจัดสรรการลงทะเบียนสามารถใช้ประโยชน์จากการลงทะเบียนมากขึ้นแต่มีวิธีที่จะได้รับน้อยลงในขณะที่ยังคงโครงสร้างเช่นสแต็คและกอง? ฉันคิดว่ามีการลงทะเบียนที่อยู่ (การลงทะเบียนเพื่อดำเนินการลงทะเบียน) เราต้องการอย่างน้อยสองทะเบียน แต่เราต้องการมากกว่าสอง?

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

1
Shift- แก้ไขการแยกวิเคราะห์ - คำถาม
ฉันเพิ่งเจอกระดาษอธิบายเทคนิคการแยกวิเคราะห์ที่กล่าวถึงในชื่อ น่าเสียดายที่คำศัพท์ที่ใช้ในกระดาษดังกล่าวค่อนข้างเกินความเข้าใจของฉันดังนั้นฉันจึงพยายามที่จะเข้าใจอัลกอริทึมการก่อสร้างมากขึ้นอย่างสังหรณ์ใจ ฉันเชื่อว่าฉันประสบความสำเร็จ ( การนำเสนอนี้เป็นที่มาของช่วงเวลา ah-ha) แต่การตรวจสอบความถูกต้องจากคนที่คุ้นเคยกับเทคนิคหรือคำศัพท์ที่อยู่ในนั้นจะได้รับการชื่นชมอย่างมาก ฉันจะอธิบายวิธีการแก้ปัญหาของฉัน (ถ้ามันถูกต้องฉันเชื่อว่ามันจะช่วยคนอื่นที่พยายามทำความเข้าใจกับเทคนิค) และถามคำถามเพิ่มเติมในภายหลัง เพื่อให้แน่ใจว่าไม่มีความเข้าใจผิดฉันจะใช้สัญลักษณ์มาตรฐานต่อไปนี้: , , ,และในกระดาษเพื่อแสดงถึงกฎ จำนวนฉันอย่างไรก็ตามฉันอาจใช้ชื่อที่แตกต่างกันสำหรับแนวคิดมากกว่ากระดาษต้นฉบับ, B , C , . . ∈ N . . X , Y , Z ∈ N ∪ T α , β , γ , . . ∈ { N ∪ T } * ฉัน …

1
การเพิ่มฟังก์ชั่นการนูนด้วยการ จำกัด เชิงเส้น
maximize f(x)subject to Ax=bmaximize f(x)subject to Ax=b\text{maximize } f(\mathbf{x}) \quad\text{subject to } \mathbf{Ax} = \mathbf{b} ที่ไหน f(x)=∑i=1N1+x4i(∑Ni=1x2i)2−−−−−−−−−−−−−⎷,f(x)=∑i=1N1+xi4(∑i=1Nxi2)2,f(\mathbf{x}) = \sum_{i=1}^N\sqrt{1+\frac{x_i^4}{\left(\sum_{i=1}^{N}x_i^2\right)^2}}, x=[x1,x2,...,xN]T∈RN×1x=[x1,x2,...,xN]T∈RN×1\mathbf{x} = [x_1,x_2,...,x_N]^T \in \mathbb{R}^{N\times 1}และN}A∈RM×NA∈RM×N\mathbf{A} \in \mathbb{R}^{M\times N} เราจะเห็นว่านูนและรูปแบบ2} ก็สามารถที่จะแสดงให้เห็นว่ากระโดดเข้ามา2] ฉันรู้ว่าปัญหาการขยายตัวแบบนูนเป็นปัญหาสูงสุดโดยทั่วไปfff1+y2−−−−−√1+y2\sqrt{1+y^2}fff[2–√,2][2,2][\sqrt{2}, 2] อย่างไรก็ตามการใช้ลักษณะเฉพาะของปัญหาเป็นไปได้หรือไม่ที่จะแก้ปัญหาโดยใช้ซอฟต์แวร์ / แพ็คเกจการเพิ่มประสิทธิภาพนูนแบบมาตรฐาน?

1
ฟังก์ชั่นที่มีศักยภาพไบนารีกองสกัดสูงสุด O (1)
ฉันต้องการความช่วยเหลือในการหาฟังก์ชั่นที่มีศักยภาพสำหรับ heap สูงสุดเพื่อให้แยก max เสร็จสมบูรณ์ในเวลาตัดจำหน่าย ฉันควรเพิ่มว่าฉันไม่มีความเข้าใจในวิธีการที่เป็นไปได้O( 1 )O(1)O(1) ฉันรู้ว่าฟังก์ชั่นการแทรกควร "จ่าย" มากขึ้นเพื่อลดค่าใช้จ่ายในการสกัดและสิ่งนี้จะต้องเกี่ยวกับความสูงของกอง (ถ้าให้ความสูงของกองควร ส่วนแทรกเป็น2 บันทึก( n )หรือ∑ n k = 1 2 บันทึก( k ) )⌊ บันทึก( n ) ⌋⌊เข้าสู่ระบบ⁡(n)⌋ \lfloor \log(n) \rfloor 2 บันทึก( n )2เข้าสู่ระบบ⁡(n)2\log(n)Σnk = 12 บันทึก( k )Σk=1n2เข้าสู่ระบบ⁡(k) \sum_{k=1}^n 2\log(k)

1
ภาษาการเขียนโปรแกรมที่สามารถใช้ฟังก์ชั่น bijective ที่คำนวณได้เท่านั้น?
มีภาษาโปรแกรม (หรือตรรกะ) ที่สามารถนำไปใช้ (หรือแสดง) ฟังก์ชันถ้าหากเป็นฟังก์ชัน bijective ที่คำนวณได้?f:N→Nf:N→Nf:\mathbb{N}\to \mathbb{N}fff

3
การปรับเปลี่ยนอัลกอริธึมของ Dijkstra สำหรับน้ำหนักขอบที่ดึงจากช่วง
สมมติว่าฉันมีกราฟกำกับที่มีน้ำหนักขอบถูกดึงมาจากช่วง[1,…,K][1,…,K][1,\dots, K]โดยที่KKKคงที่ หากฉันพยายามค้นหาเส้นทางที่สั้นที่สุดโดยใช้อัลกอริทึมของ Dijkstraฉันจะแก้ไขอัลกอริทึม / โครงสร้างข้อมูลและปรับปรุงความซับซ้อนของเวลาเป็นO(|V|+|E|)O(|V|+|E|)O(|V|+|E|)อย่างไร

7
จะหางานวิจัยที่ตีพิมพ์ที่ไหน?
มาจากมุมมองของคนที่กำลังคิดจะใฝ่หาปริญญาเอกสาขาวิทยาศาสตร์คอมพิวเตอร์ ฉันมีปัญหาในการตัดสินใจเลือกสิ่งที่ฉันจะมุ่งเน้นการวิจัยของฉันเมื่อฉันไปสำหรับปริญญาเอกของฉัน ดูยังมีคำถามเกี่ยวกับเรื่องนี้ academia.SE ดังนั้นฉันจึงคิดว่าการอ่าน / การทำให้เป็นปัจจุบันเกี่ยวกับการวิจัยที่กำลังทำอยู่และเอกสารการวิจัยอะไรบ้างที่ถูกปล่อยออกมาเป็นแหล่งที่ดีของแรงบันดาลใจ .... บวกกับความรู้ที่ดีที่ควรรู้ มีศูนย์กลาง / ฐานข้อมูลของ / สถานที่เริ่มต้นที่ดีที่จะดูเอกสารการวิจัย CS ที่ตีพิมพ์เมื่อเร็ว ๆ นี้หรือว่าซ่อนอยู่ในเว็บไซต์ของมหาวิทยาลัยที่พวกเขาเขียน

1
สัญชาตญาณเบื้องหลังความสัมพันธ์
ฉันเรียนหลักสูตร Computational Complexity ปัญหาของฉันคือฉันไม่เข้าใจวิธีการ Relativization ฉันพยายามหาปรีชาเล็กน้อยในหนังสือเรียนหลายเล่มน่าเสียดายที่ยังไม่ประสบความสำเร็จ ฉันจะซาบซึ้งถ้ามีใครสามารถกำจัดความสว่างในหัวข้อนี้เพื่อที่ฉันจะสามารถดำเนินการต่อด้วยตัวเอง ไม่กี่ประโยคต่อไปนี้เป็นคำถามและความคิดของฉันเกี่ยวกับความสัมพันธ์พวกเขาจะช่วยนำทางการสนทนา บ่อยครั้งที่การสัมพัทธภาพสัมพันธ์กันมากเมื่อเทียบกับแนวทแยงมุมซึ่งเป็นวิธีที่ช่วยแยกความแตกต่างระหว่างชุดที่นับได้และชุดที่นับไม่ได้ มันอย่างใดมาจาก relativization ที่PPPเมื่อเทียบกับคำถามไม่สามารถแก้ไขได้โดย diagonalization ฉันไม่เห็นความคิดที่ว่าทำไมการสร้างความสัมพันธ์แสดงไร้ประโยชน์ในแนวทแยงมุมและถ้ามันไร้ประโยชน์ทำไมที่ไร้ประโยชน์จริงๆNPยังไม่มีข้อความPNP แนวคิดเบื้องหลัง oracle ทัวริงเครื่องในตอนแรกนั้นชัดเจนมาก อย่างไรก็ตามเมื่อพูดถึงN P AและP Aสัญชาตญาณจะหายไป Oracle เป็นกล่องดำที่ออกแบบมาสำหรับภาษาพิเศษและตอบคำถามว่าสตริงในการป้อนข้อมูลของ oracle เป็นภาษาในเวลาที่ 1 ตามที่ฉันเข้าใจ TM ที่มี oracle เป็นเพียงการดำเนินการเสริมและถาม oracle ดังนั้นแกนกลางของ TM คือ oracle ทุกสิ่งทุกอย่างมีความสำคัญน้อยกว่า ความแตกต่างระหว่างP AและN P Aคืออะไรแม้แต่คิดว่าคำทำนายในทั้งสองทำงานในเวลา 1MAMAM^ANPAยังไม่มีข้อความPANP^APAPAP^APAPAP^ANPAยังไม่มีข้อความPANP^A สิ่งสุดท้ายที่จะพิสูจน์การดำรงอยู่ของออราเคิลดังกล่าวว่าP B ≠ N P B ฉันพบหลักฐานในหนังสือเรียนหลายเล่มและหลักฐานทั้งหมดดูเหมือนจะคลุมเครือมาก ฉันพยายามใช้"ความรู้เบื้องต้นเกี่ยวกับความซับซ้อน" …

1
ปัญหาการมอบหมายเป็นเวลาหลายวัน
ฉันมีปัญหาที่สามารถลดปัญหาการมอบหมาย (ในคำถามก่อนหน้านี้ฉันพบวิธีการดังกล่าว) ซึ่งหมายความว่าเรามีชุดของตัวแทนและชุดของงานเช่นเดียวกับฟังก์ชั่นค่าใช้จ่ายJ) เราต้องหางานที่ได้รับมอบหมายเพื่อให้ค่าใช้จ่ายทั้งหมดน้อยAAATTTc(i,j)c(i,j)c(i,j) อัลกอริทึมฮังการีสามารถหาทางออกที่ดีที่สุดในเวลาอย่างน้อย4) ซึ่งฟังดูดีสำหรับฉันO(n4)O(n4)O(n^4) ปัญหาใหม่ของฉันคือ: มีจำนวนวันที่กำหนด ผมต้องแก้ปัญหาที่ได้รับมอบหมายในแต่ละวันเพื่อให้งานทุกคนจะทำทุกวันและตัวแทนจะไม่มีงานเดียวกันสองครั้ง สิ่งที่ฉันได้ลอง: เราสามารถเรียกใช้อัลกอริธึมของฮังการีแยกกันในแต่ละวันและ จำกัด จำนวนของชุดค่าผสมที่เป็นไปได้ตามผลลัพธ์ของวันก่อนหน้า แต่สิ่งนี้จะทำให้เราเดือดร้อนในบางวันต่อมาซึ่งเป็นไปได้ยากที่จะหาวิธีแก้ปัญหาที่เป็นไปได้ อีกแนวคิดหนึ่งคือการรวมการค้นหาในท้องถิ่นเข้ากับการเปลี่ยนแปลงการตัดสินใจในวันก่อนหน้า แต่ฉันคิดว่าเราไม่สามารถวางใจได้ อินสแตนซ์ปัญหาที่ฉันต้องเผชิญจะอยู่ที่ใดที่หนึ่ง500 เมทริกซ์ต้นทุนจะมีค่าเท่ากันจำนวนมาก (เช่นส่วนใหญ่ 1 หรืออินฟินิตี้เพียงบาง 2 หรือ 3) ดังนั้นระหว่างอัลกอริธึมของฮังการีจึงมีพื้นที่มากมายในการสร้างโซลูชันที่ดีที่สุดที่แตกต่างกันในหนึ่งวัน|A|=|T|=500|A|=|T|=500|A| = |T| = 500C(i,j)C(i,j)C(i,j) ฉันยินดีที่จะรับฟังแนวคิดหรือคำแนะนำวิธีหาวิธีแก้ไขปัญหาที่ดี ขอบคุณล่วงหน้า.

3
พิสูจน์ว่าถ้า
ฉันต้องการความช่วยเหลือจากคุณในการพิสูจน์สิ่งต่อไปนี้ หากNTime(n100)⊆DTime(n1000)NTime(n100)⊆DTime(n1000)\mathrm{NTime}(n^{100}) \subseteq \mathrm{DTime}(n^{1000})แล้วP=NPP=NP\mathrm{P}=\mathrm{NP} P ที่นี่เป็นชั้นของทุกภาษาที่สามารถตัดสินใจโดยเครื่องทัวริง nondeterministic ในเวลาพหุนามของO ( n 100 )และD T ฉันm E ( n 1000 ) เป็นชั้นของทุกภาษา ซึ่งสามารถตัดสินใจโดยเครื่องทัวริงที่กำหนดในเวลาพหุนามของO ( n 1000 )NTime(n100)NTime(n100)\mathrm{NTime}(n^{100})O(n100)O(n100)O(n^{100})DTime(n1000)DTime(n1000)\mathrm{DTime}(n^{1000})O(n1000)O(n1000)O(n^{1000}) ความช่วยเหลือ / ข้อเสนอแนะ?

1
อะไรคือความแตกต่างระหว่างการหยุดยอมรับและตัดสินใจในบริบทของเครื่องจักรทัวริง
การยอมรับหมายความว่า TM จะอ่านและรับรู้อักขระจากเซลล์ที่กำลังอ่านอยู่หรือไม่ และเป็นกรณีที่ TM หยุดทำงานหากอินพุตสามารถตัดสินใจได้หรือไม่?

1
พิสูจน์ว่าแผนภูมิการค้นหาแบบไบนารีที่สร้างแบบสุ่มมีความสูงลอการิทึม
คุณจะพิสูจน์ได้อย่างไรว่าความสูงที่คาดหวังของแผนภูมิการค้นหาแบบไบนารีที่สร้างแบบสุ่มด้วยnnnโหนดคือ ? มีหลักฐานใน CLRS รู้เบื้องต้นเกี่ยวกับอัลกอริทึม (บทที่ 12.4) แต่ฉันไม่เข้าใจO(logn)O(log⁡n)O(\log n)

3
ปัญหาฮีป d-ary จาก CLRS
ฉันสับสนในขณะที่แก้ปัญหาต่อไปนี้ (คำถาม 1-3) คำถาม dกอง -ary เป็นเหมือนกองไบนารี แต่ (ยกเว้นที่เป็นไปได้อย่างใดอย่างหนึ่ง) โหนดที่ไม่ใช่ใบมีdเด็กแทนเด็ก 2 คุณจะเป็นตัวแทนของกองd -ary ในอาร์เรย์ได้อย่างไร? ความสูงของคืออะไรdกอง -ary ของnองค์ประกอบในแง่ของnและd ? ให้การใช้งาน EXTRACT-MAX อย่างมีประสิทธิภาพในd -ary max-heap วิเคราะห์เวลาในการทำงานในแง่ของdและn นำ INSERT ไปใช้อย่างมีประสิทธิภาพด้วยd -ary max-heap วิเคราะห์เวลาในการทำงานในแง่ของdและn ให้การนำไปใช้อย่างมีประสิทธิภาพของ INCREASE-KEY ( A , i , k ) ซึ่งทำเครื่องหมายข้อผิดพลาดหากk <A [i] = k จากนั้นอัพเดตโครงสร้างd -ary matrix heap อย่างเหมาะสม วิเคราะห์เวลาในการทำงานในแง่ของdและn …

1
การรวมเข้ากับตัวแก้ SAT
ฉันอ่านวิกิพีเดียว่าการรวมเป็นกระบวนการในการแก้ปัญหาความพึงพอใจ ในเวลาเดียวกันฉันรู้ว่าตัวแก้เช่นนี้เรียกว่า "SAT solvers" หรือ "SMT solvers" ดังนั้นพวกเขาต่างชื่อกันในสิ่งเดียวกันหรือไม่? ถ้าคุณบอกว่ามันแตกต่างกันโปรดชี้ให้เห็นข้อบกพร่องในการรักษาของฉัน

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