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

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

9
แคลคูลัสใช้กับวิทยาศาสตร์คอมพิวเตอร์อย่างไร
โปรแกรมวิทยาศาสตร์คอมพิวเตอร์หลายโปรแกรมต้องการเรียนแคลคูลัสสองหรือสามชั้น ฉันสงสัยว่าแคลคูลัสใช้กับวิทยาศาสตร์คอมพิวเตอร์อย่างไรและเมื่อไหร่? เนื้อหา CS ของปริญญาในสาขาวิทยาศาสตร์คอมพิวเตอร์มีแนวโน้มที่จะมุ่งเน้นไปที่อัลกอริธึมระบบปฏิบัติการโครงสร้างข้อมูลปัญญาประดิษฐ์วิศวกรรมซอฟต์แวร์ ฯลฯ มีเวลาที่แคลคูลัสมีประโยชน์ในสาขาเหล่านี้หรือสาขาอื่น ๆ ของวิทยาศาสตร์คอมพิวเตอร์หรือไม่?

5
อะไรคือเหตุผลในการเรียนรู้อัลกอริทึม / โครงสร้างข้อมูลที่แตกต่างกันซึ่งให้บริการเพื่อจุดประสงค์เดียวกัน
ฉันสงสัยเกี่ยวกับคำถามนี้ตั้งแต่ฉันเป็นนักเรียนระดับปริญญาตรี มันเป็นคำถามทั่วไป แต่ฉันจะทำอย่างละเอียดพร้อมตัวอย่างด้านล่าง ฉันได้เห็นอัลกอริทึมมากมาย - ตัวอย่างเช่นสำหรับปัญหาการไหลสูงสุดฉันรู้อัลกอริทึม 3 อย่างที่สามารถแก้ปัญหาได้: ฟอร์ด - ฟัลเกอร์สัน, เอ็ดมันด์ - คาร์ปและดินิกโดย Dinic มีความซับซ้อนที่สุด สำหรับโครงสร้างข้อมูล - ตัวอย่างเช่น heap - มี binary heaps, binomial heaps & Fibonacci heaps โดยที่ Fibonacci heap มีความซับซ้อนโดยรวมที่ดีที่สุด สิ่งที่ทำให้ฉันสับสนคือ: มีเหตุผลใดบ้างที่เราจำเป็นต้องรู้จักพวกเขาทั้งหมด? ทำไมไม่เพียงแค่เรียนรู้และทำความคุ้นเคยกับความซับซ้อนที่ดีที่สุด? ฉันรู้ว่ามันดีที่สุดถ้าเรารู้จักพวกเขาทั้งหมดฉันแค่อยากรู้ว่ามีเหตุผล "ที่ถูกต้องมากกว่า" เช่นปัญหา / อัลกอริทึมบางอย่างสามารถแก้ไขได้โดยใช้Aแต่ไม่ใช่Bเป็นต้น

5
ความแตกต่างระหว่างแผนภูมิการค้นหาแบบไบนารี่และฮีปแบบไบนารีคืออะไร
ทั้งสองดูเหมือนกันมากและมีโครงสร้างเกือบเหมือนกัน ความแตกต่างคืออะไร? ความซับซ้อนของเวลาสำหรับการดำเนินงานที่แตกต่างกันของแต่ละคนคืออะไร

3
เราจะรู้ได้อย่างไรว่าจะใช้การวิเคราะห์ความซับซ้อนของเวลาแบบใด
ในชั้นเรียนอัลกอริทึมเบื้องต้นส่วนใหญ่จะมีการแนะนำสัญลักษณ์เช่น (Big O) และและนักเรียนมักจะเรียนรู้ที่จะใช้สิ่งเหล่านี้เพื่อค้นหาความซับซ้อนของเวลาΘOOOΘΘ\Theta แต่มีสัญลักษณ์อื่น ๆ เช่น ,และ\มีสถานการณ์เฉพาะใดบ้างที่จะให้สัญกรณ์หนึ่งเป็นที่นิยมมากกว่าอีกรูปแบบหนึ่ง?โอห์มโอห์มโอooΩΩ\Omegaωω\omega

11
การแก้ไขหรือการประมาณความสัมพันธ์ที่เกิดซ้ำสำหรับลำดับของตัวเลข
ในวิทยาการคอมพิวเตอร์เรามักจะต้องแก้ปัญหาความสัมพันธ์ซ้ำซึ่งเป็นรูปแบบปิดสำหรับลำดับตัวเลขที่กำหนดซ้ำ เมื่อพิจารณาจากเวลาการทำงานเรามักจะให้ความสนใจส่วนใหญ่อยู่ในลำดับที่asymptoticการเจริญเติบโต ตัวอย่างคือ รันไทม์ของฟังก์ชั่น tail-recursive ลดลงเหลือจากซึ่งร่างกายใช้เวลา :000nnnf(n)f(n)f(n) T(0)T(n+1)=0=T(n)+f(n)T(0)=0T(n+1)=T(n)+f(n)\qquad \begin{align} T(0) &= 0 \\ T(n+1) &= T(n) + f(n) \end{align} ลำดับฟีโบนักชี : F0F1Fn+2=0=1=Fn+Fn+1F0=0F1=1Fn+2=Fn+Fn+1\qquad \begin{align} F_0 &= 0 \\ F_1 &= 1 \\ F_{n+2} &= F_n + F_{n+1} \end{align} จำนวนคำ Dyckกับคู่วงเล็บ:nnn C0Cn+1=1=∑i=0nCiCn−iC0=1Cn+1=∑i=0nCiCn−i\qquad\begin{align} C_0 &= 1 \\ C_{n+1}&=\sum_{i=0}^{n}C_i\,C_{n-i} \end{align} การเกิดซ้ำรันไทม์การผสานบนรายการความยาว :nnn T(1)T(n)=T(0)=0=T(⌊n/2⌋)+T(⌈n/2⌉)+n−1T(1)=T(0)=0T(n)=T(⌊n/2⌋)+T(⌈n/2⌉)+n−1\qquad \begin{align} …

5
จะพิสูจน์ได้อย่างไรว่าภาษานั้นไม่มีบริบท
เราได้เรียนรู้เกี่ยวกับการเรียนของภาษาบริบทฟรี L มันโดดเด่นด้วยทั้งไวยากรณ์ที่ไม่มีบริบทและออโตมาดาวน์C F LCFL\mathrm{CFL}ดังนั้นมันจึงง่ายต่อการแสดงให้เห็นว่าภาษาที่ให้นั้นไม่มีบริบท ฉันจะแสดงสิ่งที่ตรงกันข้ามได้อย่างไร? TA ของฉันได้ยืนกรานว่าในการที่จะทำเช่นนั้นเราจะต้องแสดงให้ทุกคนได้เห็นไวยากรณ์ (หรือออโตมาตะ) ว่าพวกเขาไม่สามารถอธิบายภาษาในมือ ดูเหมือนว่าจะเป็นงานใหญ่! ฉันได้อ่านเกี่ยวกับบทแทรกซึมบ้าง แต่มันดูซับซ้อนจริงๆ

7
ทำไมการเรียนรู้แบบเจาะลึกถึงแม้จะมีมิติ VC ไม่ดีล่ะ
สูตรVapnik – Chervonenkis (VC) -สำหรับเครือข่ายประสาทเทียมมีตั้งแต่ถึงโดยมีในกรณีที่แย่ที่สุดโดยที่คือจำนวนขอบและคือจำนวนโหนด จำนวนตัวอย่างการฝึกอบรมที่จำเป็นต้องมีการรับรองที่แข็งแกร่งของการวางนัยทั่วไปเป็นเส้นตรงกับมิติ VCO(E)O(E)O(E)O(E2)O(E2)O(E^2)O(E2V2)O(E2V2)O(E^2V^2)EEEVVV ซึ่งหมายความว่าสำหรับเครือข่ายที่มีขอบเป็นพันล้านเช่นเดียวกับในกรณีของโมเดลการเรียนรู้ลึกที่ประสบความสำเร็จชุดข้อมูลการฝึกอบรมนั้นต้องการตัวอย่างการฝึกอบรมนับพันล้านตัวอย่างในกรณีที่ดีที่สุดเพื่อ quadrillions ในกรณีที่แย่ที่สุด ชุดฝึกอบรมที่ใหญ่ที่สุดในปัจจุบันมีตัวอย่างประมาณหนึ่งแสนล้านตัวอย่าง เนื่องจากมีข้อมูลการฝึกอบรมไม่เพียงพอจึงไม่น่าเป็นไปได้ที่รูปแบบการเรียนรู้เชิงลึกจะเป็นเรื่องทั่วไป แต่พวกเขากำลังเตรียมข้อมูลการฝึกอบรมมากเกินไป ซึ่งหมายความว่าโมเดลจะทำงานได้ไม่ดีกับข้อมูลที่ไม่เหมือนกันกับข้อมูลการฝึกอบรมซึ่งเป็นคุณสมบัติที่ไม่พึงประสงค์สำหรับการเรียนรู้ของเครื่อง เนื่องจากการวิเคราะห์เชิงลึกของ VC ไม่สามารถให้การเรียนรู้ที่ลึกเกินจริงได้ การมีความแม่นยำสูงในชุดข้อมูลบางส่วนนั้นไม่ได้มีความหมายมากนัก มีบางสิ่งที่พิเศษเกี่ยวกับสถาปัตยกรรมการเรียนรู้ลึกที่ลดมิติ VC ลงอย่างมากหรือไม่? หากคุณไม่คิดว่าการวิเคราะห์มิติ VC มีความเกี่ยวข้องโปรดแสดงหลักฐาน / คำอธิบายว่าการเรียนรู้อย่างลึกซึ้งนั้นเป็นเรื่องทั่วไปและไม่ได้ทำให้เกินกำลัง คือมันมีการเรียกคืนที่ดีและมีความแม่นยำหรือเพียงแค่การเรียกคืนที่ดี? การเรียกคืน 100% นั้นง่ายมากที่จะบรรลุเช่นเดียวกับความแม่นยำ 100% การเข้าใกล้ทั้ง 100% นั้นยากมาก เป็นตัวอย่างที่ตรงกันข้ามนี่เป็นหลักฐานที่แสดงว่าการเรียนรู้ลึก overfitting ตัวแบบ overfit นั้นง่ายที่จะหลอกเพราะมันได้รวมเสียงรบกวนที่กำหนดไว้ ดูภาพต่อไปนี้สำหรับตัวอย่างการ overfitting นอกจากนี้โปรดดูคำตอบที่มีอันดับต่ำกว่าสำหรับคำถามนี้เพื่อทำความเข้าใจปัญหาของตัวแบบ overfit แม้จะมีความแม่นยำในข้อมูลการทดสอบ บางคนตอบว่าการทำให้เป็นมาตรฐานช่วยแก้ปัญหามิติ VC ขนาดใหญ่ ดูคำถามนี้สำหรับการอภิปรายเพิ่มเติม


5
เหตุใดภาษาการเขียนโปรแกรมบางภาษาจึง“ เร็วกว่า” หรือ“ ช้ากว่า” กว่าภาษาอื่น
ฉันสังเกตเห็นว่าบางแอปพลิเคชันหรืออัลกอริทึมที่สร้างขึ้นด้วยภาษาการเขียนโปรแกรมกล่าวว่า C ++ / Rust ทำงานได้เร็วขึ้นหรือเร็วกว่าแอปพลิเคชันที่สร้างขึ้นบน Java / Node.js ที่ทำงานบนเครื่องเดียวกัน ฉันมีคำถามสองสามข้อเกี่ยวกับเรื่องนี้: ทำไมสิ่งนี้ถึงเกิดขึ้น อะไรคือสิ่งที่ควบคุม "ความเร็ว" ของภาษาการเขียนโปรแกรม? สิ่งนี้เกี่ยวข้องกับการจัดการหน่วยความจำหรือไม่? ฉันจะซาบซึ้งจริงๆถ้ามีคนทำลายมันลงสำหรับฉัน

12
ทำไมหน่วยของขนาดภาพถึงไม่พิกเซล²
หากคุณคำนวณพื้นที่ของสี่เหลี่ยมคุณเพียงแค่คูณความสูงและความกว้างแล้วเอาหน่วยสี่เหลี่ยมกลับมา ตัวอย่าง: 5 ซม. * 10 ซม = 50 ซม ในทางตรงกันข้ามถ้าคุณคำนวณขนาดของรูปภาพคุณก็คูณความสูงและความกว้างด้วย แต่คุณจะได้หน่วยพิกเซลกลับมาเช่นเดียวกับที่เป็นหน่วยของความสูงและความกว้างก่อนที่จะทำการคูณ ตัวอย่าง: สิ่งที่คุณคำนวณจริงคือ: 3840 Pixel * 2160 Pixel = 8294400 Pixel สิ่งที่ฉันคาดหวังคือ: 3840 Pixel * 2160 Pixel = 8294400 Pixel² เหตุใดหน่วยโฆษณาที่คูณพิกเซลไม่ได้ถูกยกกำลังสอง

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

5
มีความสัมพันธ์ที่เป็นรูปธรรมระหว่างทฤษฎีบทความไม่สมบูรณ์ของGödelปัญหาการหยุดชะงักและเครื่องจักรทัวริงสากลหรือไม่?
ฉันมักจะคิดราง ๆ ว่าคำตอบของคำถามข้างต้นนั้นยืนยันตามบรรทัดต่อไปนี้ ทฤษฎีความไม่สมบูรณ์ของGödelและ undecidability ของปัญหาการหยุดชะงักทั้งสองเป็นผลเชิงลบเกี่ยวกับความสามารถในการตัดสินใจและสร้างขึ้นโดยการโต้แย้งในแนวทแยง (และในปี 1930) ดังนั้นพวกเขาจะต้องมีสองวิธีในการดูเรื่องเดียวกัน และฉันคิดว่าทัวริงใช้เครื่องทัวริงสากลเพื่อแสดงว่าปัญหาการหยุดชะงักไม่สามารถแก้ไขได้ (ดูคณิตศาสตร์นี้คำถามSE .) แต่ตอนนี้ที่ (สอนหลักสูตรในการคำนวณ) ฉันมองเข้าไปในเรื่องเหล่านี้ฉันค่อนข้างสับสนกับสิ่งที่ฉันพบ ดังนั้นฉันต้องการความช่วยเหลือในการยืดความคิดของฉันออกไป ฉันรู้ว่าในอีกด้านหนึ่งการโต้แย้งในแนวทแยงของGödelนั้นลึกซึ้งมาก: มันต้องใช้งานจำนวนมากเพื่อสร้างคำสั่งทางคณิตศาสตร์ที่สามารถตีความได้ว่าพูดอะไรบางอย่างเกี่ยวกับความสามารถในการเป็นของตัวเอง ในทางกลับกันการพิสูจน์ความลังเลของปัญหาการหยุดชะงักที่ฉันพบที่นี่นั้นง่ายมากและไม่ได้กล่าวถึงเครื่องจักรทัวริงอย่างชัดเจนแม้แต่การมีอยู่ของเครื่องจักรทัวริงสากล คำถามเชิงปฏิบัติเกี่ยวกับเครื่องจักรทัวริงสากลคือไม่ว่าจะมีความสำคัญใด ๆ ที่ตัวอักษรของเครื่องจักรทัวริงสากลเป็นเช่นเดียวกับเครื่องจักรทัวริงที่เลียนแบบ ฉันคิดว่ามันเป็นสิ่งที่จำเป็นเพื่อสร้างการโต้แย้งในแนวทแยงที่เหมาะสม (มีเครื่องจำลองตัวเอง) แต่ฉันไม่พบความสนใจใด ๆ กับคำถามนี้ในคอลเลกชันที่ทำให้สับสนของคำอธิบายของเครื่องจักรสากลที่ฉันพบในอินเทอร์เน็ต หากไม่ใช่สำหรับปัญหาการหยุดชะงักทัวริงของเครื่องจักรสากลมีประโยชน์ในการโต้แย้งแนวทแยงหรือไม่? ในที่สุดฉันก็สับสนโดยส่วนต่อไปนี้ของบทความ WP เดียวกันซึ่งบอกว่ารูปแบบที่อ่อนแอของความไม่สมบูรณ์ของGödelดังต่อไปนี้จากปัญหาการหยุดชะงัก: "axiomatisation axiomatisation ที่สมบูรณ์สอดคล้องและเสียงของคำสั่งทั้งหมดเกี่ยวกับตัวเลขธรรมชาติเป็นสิ่งที่ไม่สามารถทำได้" ที่ "เสียง" ควรจะอ่อนตัวลง ฉันรู้ว่าทฤษฎีนั้นมีความสอดคล้องกันหากเราไม่สามารถได้มาซึ่งความขัดแย้งและทฤษฎีที่สมบูรณ์เกี่ยวกับตัวเลขธรรมชาติดูเหมือนจะหมายความว่าข้อความจริงทั้งหมดเกี่ยวกับตัวเลขธรรมชาติสามารถได้มาในนั้น ฉันรู้ว่าGödelกล่าวว่าทฤษฎีดังกล่าวไม่มีอยู่จริง แต่ฉันล้มเหลวที่จะเห็นว่าสัตว์ในสมมุติฐานนั้นอาจจะฟังดูไม่เป็นเช่นกล่าวได้รับมาซึ่งเป็นเท็จสำหรับจำนวนธรรมชาติ: การปฏิเสธของคำสั่งดังกล่าวจะเป็นจริง และโดยสมบูรณ์แล้วก็สืบเนื่องซึ่งจะขัดแย้งกับความมั่นคง ฉันขอขอบคุณการชี้แจงใด ๆ ในประเด็นเหล่านี้

10
จะพิสูจน์ได้อย่างไรว่าภาษาไม่ปกติ
เราได้เรียนรู้เกี่ยวกับการเรียนของภาษาปกติ{} มันโดดเด่นด้วยแนวคิดใดแนวคิดหนึ่งในการแสดงออกปกติออโต้ จำกัด และไวยากรณ์ด้านซ้ายดังนั้นจึงเป็นเรื่องง่ายที่จะแสดงว่าภาษาที่กำหนดเป็นปกติREGREG\mathrm{REG} ฉันจะแสดงสิ่งที่ตรงกันข้ามได้อย่างไร? TA ของฉันได้รับการยืนยันว่าในการทำเช่นนั้นเราจะต้องแสดงให้เห็นสำหรับการแสดงออกปกติทั้งหมด (หรือสำหรับออโต้ จำกัด ทั้งหมดหรือสำหรับไวยากรณ์ซ้าย - เชิงเส้นทั้งหมด) ที่พวกเขาไม่สามารถอธิบายภาษาที่อยู่ในมือ ดูเหมือนว่าจะเป็นงานใหญ่! ฉันได้อ่านเกี่ยวกับบทแทรกซึมบ้าง แต่มันดูซับซ้อนจริงๆ นี่เป็นคำถามอ้างอิงที่รวบรวมวิธีการพิสูจน์ตามปกติและตัวอย่างการใช้ ดูที่นี่สำหรับคำถามเดียวกันเกี่ยวกับภาษาที่ไม่มีบริบท

4
แอพพลิเคชั่นที่สำคัญ / สำคัญในโลกแห่งความจริงใช้ blockchain
ในฐานะที่เป็นส่วนหนึ่งของงานวิจัยที่เกี่ยวข้องกับบล็อกเชนที่ฉันกำลังทำอยู่ความคิดในการใช้บล็อกเชนสำหรับแอพพลิเคชั่นในโลกแห่งความจริงต่างๆ ดังนั้นฉันเสนอคำถามต่อไปนี้: แอพพลิเคชั่นที่สำคัญ / สำคัญในโลกแห่งความจริงใช้ blockchain เพื่อเพิ่มคำถามแรกโดยเฉพาะเจาะจงว่าแอปพลิเคชันใดในโลกแห่งความเป็นจริงต้องมี blockchain - ใครบ้างที่อาจใช้หรือไม่ใช้มันในปัจจุบัน? จากความคิดเห็นฉันทราบเพิ่มเติมว่าสิ่งนี้ไม่คำนึงถึงความคิดของ cryptocurrencies อย่างไรก็ตามการใช้สัญญาอัจฉริยะสามารถมีแอปพลิเคชั่นที่มีศักยภาพอื่น ๆ นอกเหนือจากสิทธิประโยชน์ที่พวกเขาสามารถกำหนดให้กับพื้นที่ของ cryptocurrencies
74 blockchain 

2
“ แลมบ์ดา” ใน“ แลมบ์ดาแคลคูลัส” หมายถึงอะไร
เมื่อไม่นานมานี้ฉันได้อ่านเกี่ยวกับแคลคูลัสแลมบ์ดา แต่ฉันไม่สามารถหาคำอธิบายได้ว่าทำไมมันจึงเรียกว่า "แลมบ์ดา" หรือที่มาของนิพจน์ มีใครอธิบายต้นกำเนิดของคำศัพท์นี้ได้บ้าง

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