หนังสือคณิตศาสตร์ที่ดีเกี่ยวกับอัลกอริทึม [ปิด]


11

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

ฉันพบว่าคลาสสิกรู้เบื้องต้นเกี่ยวกับอัลกอริทึมโดย Cormen, Leiserson, Rivest และ Stein ค่อนข้างเรียบร้อย แต่ไม่สามารถจัดการกับคณิตศาสตร์ได้ดีและค่อนข้างเป็นทางการพร้อมหลักฐานและคำจำกัดความของมัน Sipser's Introduction to Theory of Computed ดูเหมือนจะดีกว่าในเรื่องนั้น แต่ก็ยังไม่มีการเปลี่ยนจากคณิตศาสตร์เป็นอัลกอริทึม

มีใครแนะนำอะไรได้บ้าง


¹: อย่างน้อยที่สุดอัลกอริธึมควรจัดการการจัดการข้อมูลที่ต้องการโดยใช้โครงสร้างข้อมูลนามธรรมแบบไม่ธรรมดาเช่นกราฟ, อาร์เรย์, ชุด, รายการ, ต้นไม้และอื่น ๆ - โดยเฉพาะควรใช้กับโครงสร้างข้อมูลเช่นนั้น ฉันจะไม่สนใจเช่นกันหากปัญหาการใช้งานและการจัดการโครงสร้างข้อมูลถูกละเลยไปโดยสิ้นเชิง แม้ว่าฉันจะไม่สนใจปัญหาที่แก้ไขได้มากนัก


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

คำถามที่เกี่ยวข้อง
Raphael

@ ราฟาเอลขอบคุณ ฉันแค่ใช้คำว่า "ดี" ในชื่อในคำถามของฉันฉันระบุสิ่งที่ฉันต้องการ ในขณะที่ผมจงใจไม่ได้เฉพาะเจาะจงเกินไปก็อย่างน้อยควรมีความชัดเจนว่าโฟกัสของฉันคือ (ตามนัย) ที่ความสง่างามทางคณิตศาสตร์และความรุนแรง ฉันไม่คิดว่าคำตอบนี้จะกรีดร้องเพราะรายชื่อหนังสือเพราะไม่ควรมีหนังสือมากเกินไปที่ตกอยู่ในหมวดหมู่นั้น - และถึงแม้ว่าฉันจะไม่เชื่อว่า“ รักษาความบริสุทธิ์ของคำถามที่เข้มงวด - โครงสร้างคำตอบ” เกิดขึ้นที่ไซต์ stackexchange หลายแห่งที่นี่ - แต่ไม่ใช่การโทรของฉันฉันเดา ฉันไม่แน่ใจว่าฉันสามารถปรับปรุงคำถามได้หรือไม่
k.stm

นอกจากนี้ฉันไม่คิดว่า“ คำขออ้างอิง” เหมาะสมกับคำถาม อย่างน้อยไม่เป็นไปตามคำอธิบาย: ฉันกำลังมองหาเอกสารหรือฉันไม่สนใจในปัญหาเฉพาะและแคบ ในความเป็นจริงฉันค่อนข้างเปิดกว้างว่าเนื้อหาใดครอบคลุมอยู่ดูประโยคที่สองของฉัน ไม่เป็นไรถ้าฉันลบแท็กอีกครั้ง? บางทีฉันสามารถและควรแคบลงด้วยอัลกอริทึมที่ฉันจะเป็นเนื้อหา?
k.stm

2
บางทีคุณควรพิจารณาความหมายเชิง Denotational และการตรวจสอบโปรแกรม
Yuval Filmus

คำตอบ:


7

Hendrik Lenstra เขียนในปี 1992 :

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

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

ความอุดมสมบูรณ์ของมุมมองในทางปฏิบัติที่เรามีเนื่องจาก Knuth, Gries , Stepanov และคนอื่น ๆ มีจุดประสงค์เพื่อช่วยเหลือโปรแกรมเมอร์มากกว่าคณิตศาสตร์และหลีกเลี่ยงความยากลำบากและความอดทนนาน

อย่างไรก็ตามงานของ Stepanov ได้รับการยอมรับอย่างกว้างขวางใน Silicon Valley ว่าเป็นหนึ่งในความพยายามที่ดีที่สุดในการสังเคราะห์ทางวิทยาศาสตร์

ในองค์ประกอบของการเขียนโปรแกรม Alexander Stepanov และ Paul McJones พยายามวางรากฐานเชิงพีชคณิตนามธรรมของอัลกอริทึม หนังสือเล่มนี้เริ่มต้นด้วยคำจำกัดความที่เป็นจริงซึ่งค่อนข้างเป็นทางการของหน่วยงานค่านิยมและคุณลักษณะของพวกเขา แต่ในหน้า 288 หน้าจะดำเนินการอย่างหักลดหย่อนผ่านชุดของบทแทรกต่อฐานรากของไลบรารีแม่แบบมาตรฐาน

สารบัญคำนำและบทตัวอย่างในการแปลงและวงโคจรของพวกเขาสามารถพบได้ที่นี่และการบรรยายเบื้องต้นที่นี่

หนังสือเล่มล่าสุดและผ่อนคลายของ Stepanov ตั้งแต่คณิตศาสตร์จนถึงการเขียนโปรแกรมทั่วไปมีโครงสร้างมากขึ้นโดยแผนงานของประวัติศาสตร์คณิตศาสตร์การสร้างจากการคูณของอียิปต์ไปจนถึง monoids, semigroup และทฤษฎีบทของ Lagrange ในที่สุดการพัฒนาโครงสร้างข้อมูลที่ทันสมัย STL


?!? "ปัจจุบันไม่มีแนวคิดทางคณิตศาสตร์ที่แม่นยำสง่างามและสะดวกสบายสำหรับแนวคิดของอัลกอริทึม ... " แล้วเครื่องจักรทัวริงล่ะ!
vzn

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

Ofc น / ได้รับการตระหนักถึงคุณ quoting Lenstra แต่คุณสามารถเพิ่มคำพูดหรือข้อความที่ยกมานานน่าทึ่ง / ถกเถียงกัน / ยืนยันสงสัยของเขา
vzn

คิดว่าเครื่องจักรทัวริงไม่สามารถได้มาซึ่งตรงกันข้ามกับที่พวกเขาก่อให้เกิดความจริงของระบบคอมพิวเตอร์ (เช่นวิทยานิพนธ์ของโบสถ์ทัวริง ) มันคือทั้งหมดของการวิเคราะห์ Lenstras และ CS โดยทั่วไปที่ได้มาจากความจริงของการมีอยู่ของ TM
vzn

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

7

ฉันคิดว่าหนังสือที่คุณอธิบายมีชื่อ มันมีอยู่ในเจ็ดเล่มมีเพียงสามและครึ่งเท่านั้นที่ได้รับการตีพิมพ์ มันถูกเรียกว่าThe Art of Computer Programming (TAOCP) และเขียนโดย Donald Knuth

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


ฉันเกรงว่าคำตอบนี้อาจเกิดขึ้น ฉันลองมองดูมันและมันก็ไม่เหมาะกับฉัน “ คุณไม่ควรผิดหวังกับคณิตศาสตร์” - บางที แต่ Knuth ก็ไม่ได้ดูเหมือนจะกำหนดเนื้อหา แต่เขาค่อนข้างจะแนะนำมันอย่างไม่เป็นทางการและอธิบายมัน ดีมากที่ได้รับความคิดข้ามไม่ใช่สิ่งที่ฉันคาดหวังจากคณิตศาสตร์
k.stm

บางทีคุณอาจมีส่วนร่วมในสนามด้วยการเผยแพร่ผลงานของเขาในทางคณิตศาสตร์ที่สับสน แต่ถ้าสิ่งที่คุณสนใจคือ "การเปลี่ยนจากคณิตศาสตร์ไปเป็นอัลกอริธึม" อย่างราบรื่นหัวข้อที่ดีกว่าสำหรับคุณอาจเป็นทฤษฎีประเภท ความสัมพันธ์ระหว่างคณิตศาสตร์และอัลกอริทึมยังคงเป็นหัวข้อการวิจัย
Babou

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

มันมาหาฉันหลังจากถามคำถามเมื่อฉันไม่อยู่ที่คอมพิวเตอร์ คำพูดของฉันเกี่ยวกับหนังสือของ Knuth ไม่ควรถูกดูถูก (ซึ่งเป็นวิธีที่ฉันคิดว่าคุณได้เขียนไว้สำหรับ "การเผยแพร่ความคิดเห็นทางคณิตศาสตร์ที่ทำให้เข้าใจผิด") - อาจเป็นเรื่องที่ดูหมิ่นต่อไป ทางของเขาไม่ใช่สิ่งที่ฉันกำลังมองหา อาจจะมีอะไรไม่เหมือนอย่างที่ฉันจินตนาการเอาไว้ที่นั่น ...
k.stm

2
@ k.stm ดีลืมสิ่งที่ทำให้งงซึ่งเป็นหัวข้อทั้งหมดในตัวเอง ประเด็นก็คือฉันเชื่อว่าอัลกอริทึมไม่ใช่คณิตศาสตร์ (หรือยัง) อาจเป็นไปได้ว่าคุณสามารถรับการทำให้เป็นระเบียบได้ แต่พวกมันมีแนวโน้มที่จะเข้ารหัสแบบง่าย ๆ ที่สูญเสียสารเคมีไปพร้อมกับผลประโยชน์เพียงเล็กน้อย ขึ้นอยู่กับหัวข้อ มันอาจเป็นจริงน้อยกว่ามากสำหรับทฤษฎีออโตมาตะซึ่งมีอัลกอริทึมที่สำคัญ ประเด็นก็คือการระบุลักษณะทางคณิตศาสตร์ที่เป็นนามธรรมของโครงสร้างไม่เพียงพอ มันเป็นเรื่องของความเข้าใจไม่ใช่การทำเป็นระเบียบและใช้เวลาหลายปี คิดว่ามันเหมือนฟิสิกส์
babou
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.