วิธีการกำหนดปัญหาการคำนวณอย่างจริงจัง?


20

ฉันมักจะโต้ตอบกับผู้ที่ต้องการขออัลกอริทึมสำหรับปัญหาการคำนวณ (หรือความซับซ้อนของมัน) แต่พวกเขาไม่ได้แสดงมันอย่างเข้มงวดเพื่อให้เรา (นักวิทยาศาสตร์คอมพิวเตอร์) เข้าใจ

การอ้างถึงหนังสือเช่น CLRS นั้นไม่เป็นประโยชน์เพราะตัวอย่างมักจะมีวิธีการที่ค่อนข้างตรงไปตรงมาในการระบุอย่างจริงจังเช่นให้รายชื่อของกราฟและสองจุดยอดในการคำนวณเส้นทางที่สั้นที่สุดระหว่างจุดเหล่านั้น

มีหนังสือดี ๆ (หรือแหล่งข้อมูลอื่น ๆ ) ที่บุคคลที่มีความรู้น้อยที่สุดของ CS สามารถเรียนรู้ได้อย่างไรว่าเราควรกำหนดและระบุปัญหาการคำนวณด้วยวิธีที่เข้มงวดซึ่งเป็นที่เข้าใจของนักวิทยาศาสตร์คอมพิวเตอร์หรือไม่

โดยเฉพาะอย่างยิ่งหนังสือควรมีตัวอย่างมากมายของวิธีการกำหนดปัญหาการคำนวณอย่างจริงจังจากตัวอย่างของโดเมนและโลกแห่งความจริงที่หลากหลาย


การอธิบาย

หากต้องการทำให้คำถามมีความเฉพาะเจาะจงมากขึ้นสมมติว่าพวกเขารู้คำศัพท์ทางคณิตศาสตร์ / CS พื้นฐานเช่นชุดฟังก์ชั่นกราฟรายการ ฯลฯ ในระดับชั้นปีที่ 1/2 นักศึกษาปริญญาตรี CS (ซึ่งเป็นกรณีของคนที่ฉันมี ใจ) ตัวอย่างเช่นพวกเขาได้อ่านตำราเรียนเบื้องต้นเช่น Aho และ Ullman (แม้ว่าพวกเขาอาจจะยังไม่เข้าใจทั้งหมดก็ตาม)


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

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

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

1
ที่กล่าวว่าฉันคิดว่ามันต้องมีวิธีการคิดที่ไม่ได้รับโดยเฉพาะอย่างยิ่งโดยผู้ใหญ่ ฉันพยายามทำให้คนตกหล่นเรื่องเทคนิคและอธิบายปัญหาให้ง่ายที่สุดเท่าที่จะทำได้ในแง่ของวัตถุประจำวัน ปัญหาคือพวกเขามักจะลืมข้อ จำกัด บางอย่างหรือพวกเขาจะทำให้มันเสียงเหมือนการดำเนินการที่เป็น O (N) ในระบบที่แท้จริงของพวกเขาคือ O (1) และอื่น ๆ ดังนั้นฉันจะจบลงด้วยสิ่งที่ใกล้เคียงกับคำจำกัดความที่เข้มงวดของปัญหาที่ไม่ถูกต้อง
svinja

2
ในทางสิ่งที่จะถามคือขัดแย้งเพราะการกำหนดปัญหาอย่างจริงจังเป็นสิ่งหนึ่งในกุญแจสำคัญในการเรียนรู้ทักษะที่แยกอุปัฏฐากจากผู้เชี่ยวชาญ / มืออาชีพ ...
vzn

คำตอบ:


3

ทรัพยากรที่ดีสำหรับ / นี้เป็นที่รู้จักกันดีโดยนักวิชาการ แต่ไม่เป็นที่รู้จักกันอย่างกว้างขวางนอกผู้เชี่ยวชาญคือการเขียนทางคณิตศาสตร์โดย Donald E. Knuth, Tracy L. Larrabee และ Paul M. Roberts มีหนังสือที่ตีพิมพ์วิดีโอการบรรยายและชุดของโน้ต มันถูกเขียนเพิ่มเติมจากมุมมองของผู้ที่พยายามเขียนเชิงคณิตศาสตร์เช่นการสร้างเอกสาร แต่คำแนะนำทั้งหมดนั้นสามารถนำไปใช้กับกรณีของฆราวาสที่พยายามกำหนดปัญหาอย่างแม่นยำ การเขียนเชิงคณิตศาสตร์ในขณะที่น่าเกรงขามในการเรียนรู้คือวิธีการทางวิทยาศาสตร์เพื่อกำหนด / กำหนดอย่างเข้มงวดและตามรายละเอียดของหนังสือการแก้ปัญหาเช่นผ่านอัลกอริทึมหรือการพิสูจน์ - ปัญหาการคำนวณ / อัลกอริทึม

นอกจากนี้ข้อความคลาสสิกของGarey & Johnson คอมพิวเตอร์ & Intractabilityไม่ได้อธิบายถึงวิธีการกำหนดปัญหาอย่างแม่นยำ แต่มันให้ตัวอย่างมากมายและ "รูปแบบ" เชิงทฤษฎี / แนวคิด / เทคนิคที่หลากหลายซึ่งจัดเป็นส่วนของปัญหาที่คล้ายกันซึ่งสามารถ ใช้เป็น "หน่วยการสร้าง" เพื่ออธิบายปัญหาการคำนวณ / อัลกอริทึม


ขอบคุณ vzn เหล่านี้เป็นแหล่งข้อมูลที่ดีเกี่ยวกับการเขียนคณิตศาสตร์ แต่ฉันไม่ได้มองหาสิ่งที่แตกต่าง ปัญหาไม่ได้เขียนได้ดีในวิชาคณิตศาสตร์ แต่แหล่งข้อมูลสำหรับคนที่จะเรียนรู้วิธีการกำหนดปัญหาการคำนวณอย่างชัดเจนเพียงพอเพื่อให้ผู้เชี่ยวชาญสามารถเข้าใจสิ่งที่ผู้ถามคำถามกำลังมองหาและช่วยเหลือพวกเขา
Kaveh

YW; คุณบอกว่ามันเป็นสองสิ่งที่แตกต่างกันและในคำ / วลีพวกเขาเป็น & ฉันบอกว่าพวกเขา [ยืมวลีวิศวกรรมซอฟต์แวร์] "คู่แน่น"
vzn

3

เพิ่งวิ่งข้ามการอ้างอิงที่ดี / เรียบร้อยแปลกประหลาดค่อนข้างใหม่ / ไม่เป็นที่รู้จักในหน้าแรกของเขาโดยEmmanuele Viola , ศาสตราจารย์ (T) CS ที่มหาวิทยาลัย Northeastern) เห็นได้ชัดว่าไม่ได้เผยแพร่ที่อื่น 41pp มันเริ่มออกมาพร้อมกับแนวคิดทางคณิตศาสตร์ขั้นพื้นฐานมากเช่นความหมายและจากนั้นช่วงเข้าไปในหัวข้อขั้นสูงเช่นแอร์ดิช-Szekeresทฤษฎีบทและทฤษฎีแรมซีย์


0

ซื้อหนังสืออัลกอริทึมและโครงสร้างข้อมูลจาก Robert Lafore

ในหนังสือเล่มนี้อัลกอริธึมทุกคำอธิบายเป็นเรื่องราวมากเหมือนบทกวี จากนั้นให้อัลกอริทึมเวอร์ชัน Lafore แก่บุคคลและหลังจากนั้นเวอร์ชัน CLRS

อาจจะเป็นเช่นนี้บุคคลนั้นจะได้รับความรู้สึกเกี่ยวกับวิธีการแปลจากคำอธิบายที่เข้าใจง่ายเป็นคำที่เข้มงวด

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