ทุกคนควรอ่านหนังสืออะไร


229

[ เส้นเวลา ]


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

หนังสือสามารถเป็นคณิตศาสตร์ได้ แต่คุณอาจพบว่ามันยอดเยี่ยมสำหรับนักวิทยาศาสตร์คอมพิวเตอร์ ตัวอย่าง:

  • ความน่าจะเป็น
  • ความไม่เท่าเทียมกัน
  • ตรรกะ
  • ทฤษฎีกราฟ
  • combinatorics
  • การออกแบบและวิเคราะห์อัลกอริทึม
  • ทฤษฎีการคำนวณ / ความซับซ้อนเชิงทฤษฎี

โปรดอุทิศแต่ละคำตอบสำหรับหนังสือในหัวข้อเดียวกัน (เช่นหนังสือเกี่ยวกับ combinatorics)

หมายเหตุ:ชื่ออาจทำให้เข้าใจผิด นี่คือคำอธิบาย: ให้ X และ Y เป็นสองสาขาในสาขาวิทยาศาสตร์คอมพิวเตอร์ มีหนังสือที่ทุกคนมี

  • ในฟิลด์ X ควรอ่าน
  • ในฟิลด์ Y ควรอ่าน
  • ควรอ่านทั้งสองฟิลด์

คำถามนี้ค้นหาทั้ง 3 ราย กล่าวอีกนัยหนึ่งมันไม่เฉพาะเจาะจงกับกรณีหลัง

แก้ไข: ตามคำแนะนำของDai Leโปรดเน้นเหตุผลที่คุณชอบหนังสือเช่นกัน


หัวข้อที่เกี่ยวข้อง:


เนื่องจากฉันไม่สามารถตอบคำถามฉันจะทำที่นี่ คณิตศาสตร์ไม่ต่อเนื่อง - TTC: คณิตศาสตร์ไม่ต่อเนื่องโดย Arthur T. Benjamin มันเป็นชุดการบรรยายในหัวข้อต่าง ๆ ตั้งแต่ Set Theory to Graphs และ Probability
Pithikos

มันอาจจะน่าสนใจที่จะเปรียบเทียบรายการของหนังสือที่น่าทึ่งนี้กับรายการของหนังสือเกริ่นนำจาก the มีรายการของตำราเรียนเบื้องต้นที่เป็นที่ยอมรับซึ่งครอบคลุมสาขาวิชาวิทยาศาสตร์คอมพิวเตอร์หรือไม่? คำถามเกี่ยวกับ Reddit / Compsci มีเหลื่อมกันบ้าง แต่โชคดีที่ความแตกต่างนั้นมีความสำคัญพอสมควร
Thomas Klimpel

คำตอบ:


91

ความซับซ้อนในการคำนวณ:

หากคุณกำลังมองหาตำราความซับซ้อนล่าสุด สองสิ่งต่อไปนี้ต้องมี

เนื้อหาส่วนใหญ่ระหว่างหนังสือทั้งสองเล่มนี้เปรียบได้ อย่างไรก็ตามมีความแตกต่างที่สำคัญบางประการ: Goldreich อุทิศพื้นที่ให้มากขึ้นในการสำรวจแนวคิดพื้นฐานและปรัชญาของทฤษฎีความซับซ้อนในขณะที่ Arora / Barak ครอบคลุมการเลือกหัวข้อที่กว้างขึ้นรวมถึงแบบจำลองที่มีรูปธรรมของความซับซ้อนการคำนวณควอนตัม จากอดีต

อีกทางเลือกหนึ่งตำราที่เก่ากว่า แต่ไร้กาลเวลาในความซับซ้อนคือ:

หนังสือของ Papadimitriou นั้นโดดเด่นสำหรับบทที่ครอบคลุมตรรกะอันดับหนึ่งเช่นเดียวกับคลาส SNP, MaxSNPและ APX (รากฐานทางทฤษฎีของความแข็งประมาณ) ซึ่งหายไปจากตำราที่ทันสมัยกว่า0

อีกรุ่นหนึ่งที่ค่อนข้างเก่า แต่ค่อนข้างน่าทึ่งคือ:

นี่เป็นหนึ่งในหนังสือสองสามเล่มแรกที่รวมถึง "Proof Idea:" ระหว่าง "Theorem:" และ "Proof:" และเป็นหนึ่งในตำราคณิตศาสตร์ที่ดีที่สุดที่เขียนในหัวข้อใด ๆ ในทางกลับกันมันเป็นเพียงบทนำเกี่ยวกับความซับซ้อนโดยอุทิศเพียง 50 บทเดียวกับ "หัวข้อขั้นสูง" (รวมถึงการประมาณขั้นตอนวิธีความน่าจะเป็น IP = PSPACE และ crypto) เป็นหนังสือเล่มแรกเกี่ยวกับความซับซ้อนหรือเป็นตัวอย่างของการเขียนที่ยอดเยี่ยมอย่างแท้จริงหนังสือเล่มนี้ดีมาก

Scott Aaronson เขียนว่าหนังสือเล่มนี้มี "ความสนุกของหนังสือยอดนิยมที่มีความสามารถทางด้านตำราเรียน" มันบอกเล่าเรื่องราวและให้ตัวอย่างความบันเทิงและการอ้างอิงมากมาย (เกมแห่งชีวิตและตัวอย่างอื่น ๆ อีกมากมายสำหรับเครื่องจักรทัวริงที่สมบูรณ์) มันไม่ได้ลึกไปกว่าทฤษฎีความซับซ้อน แต่มีความกว้างมาก โดยเฉพาะอย่างยิ่งจากการเชื่อมต่อกับฟิสิกส์เชิงสถิติ


2
สำหรับผู้ที่สนใจในการเปรียบเทียบหนังสือเหล่านี้กับอีกฉันยังสามารถเสนอรีวิวหนังสือของ Arora / Barak และ Goldreich ที่ฉันเพิ่งเขียนสำหรับคอลัมน์รีวิวหนังสือ SIGACT
Daniel Apon

1
ดูรายชื่อหนังสือการคำนวณเชิงซ้อน Lance Fortnow ที่เขาชื่นชอบใน Amazon: amzn.com/l/22R1UX0Y9YRT2
Alessandro Cosentino

5
ความคิดเห็นเพียงอย่างเดียวในหนังสือของ Sipser คือบางครั้งเขาใช้ชื่อที่ไม่ได้มาตรฐานเมื่อครอบคลุมทฤษฎีการคำนวณ ตัวอย่างเช่นเขาใช้ "รู้จัก" แทนที่จะเป็น "กึ่ง decidable" แต่ฉันเดาว่าเนื่องจากตำราเรียนมีการใช้กันอย่างแพร่หลายมันอาจจะกลายเป็นมาตรฐานในตอนนี้
Dai Le

4
จริงๆแล้วมันเป็นความเห็นที่ยอดเยี่ยมโดยทั่วไป @Dai Le ฉันสามารถนึกถึงความแตกต่างที่คล้ายคลึงกันระหว่าง Goldreich และ Arora / Barak ตัวอย่างเช่น Goldreich ใช้ชื่อและ Arora / Barak ใช้ชื่อแม้ว่าทั้งคู่จะพูดถึงแนวคิดเดียวกันก็ตาม F N PPCFNP
Daniel Apon

1
ฉันพบว่า Sipser มีประโยชน์มากกว่า Papadimitriou สำหรับการสอนทฤษฎีความซับซ้อนจริง ๆ ymmv
Jeff Burdges

49

NP-สมบูรณ์:

ฉันเดาว่าคอมพิวเตอร์ของ Garey และ Johnson และ Intractability: คำแนะนำเกี่ยวกับทฤษฎีความสมบูรณ์แบบจะพบได้ในหนังสือยอดนิยมในรายการนี้


6
ยังคงเป็นการแนะนำทฤษฎีความซับซ้อนที่ดีที่สุดหลังจาก 30 ปี
Emil

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

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

47

การออกแบบและวิเคราะห์อัลกอริทึม:

Cormen, Thomas H. , Charles E. Leiserson, Ronald L. Rivest และ Clifford Stein อัลกอริทึมเบื้องต้น

R. Motwani, P. Raghavan อัลกอริทึมแบบสุ่ม

ผมพบว่าหนังสือเล่มนี้แนะนำโดยไรอันวิลเลียมส์ใน MathOverflow: ขั้นตอนวิธีการออกแบบโดยKleinberg & Tardos

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


7
"ความรู้เบื้องต้นเกี่ยวกับการวิเคราะห์อัลกอริทึม" โดย Sedgewick และ Flajolet นั้นยอดเยี่ยม
Jay

Daniel Spielman ใช้หนังสือเล่มนี้โดย Kleinberg และ Tardos ในหลักสูตร "การออกแบบและการวิเคราะห์อัลกอริทึม" ของเขา ฉันหยิบมันมาและรักหนังสือจริงๆ ฉันพบว่ามันเข้าถึงได้ง่ายกว่า CLRS
อเล็กซ์ Reinking

43

คณิตศาสตร์ทั่วไปสำหรับวิทยาการคอมพิวเตอร์:


41

ประเภทระบบและการเขียนโปรแกรมภาษาความหมาย:

เบนจามินเพียร์ซของประเภทและการเขียนโปรแกรมภาษาและการติดตามปริมาณหัวข้อขั้นสูงในประเภทและการเขียนโปรแกรมภาษา พวกเขาให้ภาพรวมที่มั่นคง แต่เข้าใจในบทบาทของทฤษฎีประเภทในการออกแบบภาษาการเขียนโปรแกรมพร้อมกับการใช้ความหมายปฏิบัติการเพื่อแสดงความหมายภาษาการเขียนโปรแกรม


7
สำหรับมุมมองทางคณิตศาสตร์ที่มากขึ้นเกี่ยวกับทฤษฎีการพิมพ์ "การบรรยายเรื่อง Curry-Howard Isomorphism" โดย Sorensen และ Urzyczyn เป็นการเริ่มต้นที่ยอดเยี่ยมโดยให้ภาพรวมที่ดีของแลมบ์ดาแคลคูลัสที่พิมพ์ลงไปจนถึงแคลคูลัสของการก่อสร้างและอื่น ๆ
Dominic Mulligan

4
ฉันอยากจะแนะนำรากฐานของ John Mitchell สำหรับการเขียนโปรแกรมภาษาในหัวข้อนี้ ในความคิดเห็นก่อนหน้ามันครบกำหนดทางคณิตศาสตร์มากขึ้น
Artem Pelenitsyn

2
โหวตขึ้นสำหรับ TAPL FYI Benjamin Pierce เป็นหนึ่งในผู้แต่งหนังสือเล่มใหม่ "Software Foundation" ซึ่งใช้ Coq
kunjan kshetri

40

ความไม่เท่าเทียมกัน:

อีกหนึ่งหนังสือที่มีค่าสำหรับทุกคนในสาขาวิทยาศาสตร์คอมพิวเตอร์ที่ต้องการ จำกัด ปริมาณ (เช่นทุกคน!) คือ: The Master Cauchy-Schwarz: บทนำสู่ศิลปะของความไม่เท่าเทียมกันทางคณิตศาสตร์โดย Michael Steele

หนังสือสารานุกรมในหัวข้อคือพจนานุกรมอสมการ แม้ว่านี่จะไม่ใช่หนังสือสำหรับอ่านปกหน้าปก แต่ก็เป็นเรื่องดีที่มีไว้ให้ ดูเพิ่มเติมอาหารเสริมของหนังสือ

นอกจากนี้วิกิพีเดียมีดีรายชื่อของความไม่เท่าเทียมกัน

สำหรับหัวข้อที่เฉพาะเจาะจงคุณอาจปรึกษา:


1
หากฉันอาจเพิ่มลิงก์ไปยังสิ่งที่ฉันรวบรวมเอง (จากหลาย ๆ แหล่งรวมถึงบางส่วนข้างต้น) นี่คือเอกสารที่แสดงถึงความไม่เท่าเทียมกันทั่วไป: lkozma.net/inequalities_cheat_sheet
László Kozma

1
Hardy, Littlewood, Polya, "Inequalities", อัญมณีจากช่วงทศวรรษที่ 1930 (?)
kodlu

38

น่าสนใจ ไม่มีใครกล่าวถึงปริมาณของศิลปะของการเขียนโปรแกรมคอมพิวเตอร์โดยDonald E. Knuth การรักษารายละเอียดของหัวข้อด้วยแบบฝึกหัดที่ดีมาก

ฉันพบอัญมณีเช่น 'resorvoir sampling' ในหนังสือเล่มนี้เพื่อพูดถึงตัวอย่างหนึ่ง


4
TAOCP ยังคงมีความเกี่ยวข้องและฉบับที่ 4A เพิ่งเปิดตัว
dbasnett

33

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

ทฤษฎีโมเดล จำกัด

เราต้องการเรียนรู้เทคนิคที่เกี่ยวข้องกับโครงสร้าง จำกัด เป็นที่ทราบกันดีว่าเครื่องมือแบบดั้งเดิมจำนวนมากจากทฤษฎีแบบจำลองเช่นความกะทัดรัดและทฤษฎีบทLöwenheim-Skolem ไม่สามารถใช้ได้กับตัวแบบ จำกัด นี้นำเราไปสู่การศึกษาของFinite รุ่นทฤษฎี สำหรับบริเวณนี้ฉันแนะนำหนังสือดี ๆ ดังต่อไปนี้:

พื้นที่ย่อยของทฤษฎีแบบ จำกัด มีความซับซ้อนเชิงพรรณนาที่เราต้องการกำหนดลักษณะของคลาสความซับซ้อนตามประเภทของตรรกะที่จำเป็นในการกำหนดภาษา การอ้างอิงที่ชัดเจนสำหรับความซับซ้อนเชิงพรรณนาคือ:

  • นีลอิมเมอร์แมน, ความซับซ้อนเชิงพรรณนา

พิสูจน์ความซับซ้อน

ตรรกะที่สำคัญอีกประการหนึ่งในวิทยาการคอมพิวเตอร์คือการพิสูจน์ความซับซ้อน (Proof Complexity ) การศึกษาความสัมพันธ์สามทางระหว่างคลาสที่ซับซ้อนระบบตรรกะที่อ่อนแอและระบบพิสูจน์เชิงประพจน์ ต่อไปนี้สองด้านที่เกี่ยวข้องได้รับการพิจารณา: (i) ความซับซ้อนของการพิสูจน์ของสูตรประพจน์และ (ii) ศึกษาทฤษฎีที่อ่อนแอของคณิตศาสตร์ที่เรียกว่าเลขคณิต จำกัด

มุมมอง (i) จะทำอย่างไรกับคำถามต่อไปนี้: "มีระบบพิสูจน์แบบประพจน์ที่ทุกคนที่มีความซ้ำซากมีการพิสูจน์พหุนามขนาดพหุนามในขนาดของความซ้ำซ้อน?"

CVCVCC

PVPV

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

  • สตีเฟ่นคุกและ Phuong เหงียนฐานรากตรรกะของความซับซ้อนหลักฐาน (แบบร่างมีให้ที่นี่ )
  • ม.ค. Krajicek, ขอบเขตคณิตศาสตร์ประพจน์ลอจิกและทฤษฎีความซับซ้อน

PV0

หนังสือของKrajíčekค่อนข้างท้าทายเนื่องจากเขาคิดว่าผู้อ่านคุ้นเคยกับตรรกะทางคณิตศาสตร์และทฤษฎีแบบจำลองอยู่แล้ว (หรือเต็มใจที่จะเรียนรู้พื้นฐานที่จำเป็นตลอดทาง) แต่คุณจะได้เรียนรู้มากมายจากการอ่านและทำความเข้าใจหนังสือเล่มนี้


32

อัลกอริทึมแบบสุ่ม:

ความน่าจะเป็นและการคำนวณ: อัลกอริทึมแบบสุ่มและการวิเคราะห์ความน่าจะเป็นโดย Michael Mitzenmacher และ Eli Upfal

หนังสือที่ดีสำหรับการอธิบายพื้นฐานของอัลกอริทึมแบบสุ่ม ตัวอย่างและบทพิสูจน์ได้รับการอธิบายอย่างชัดเจนมากและง่ายต่อการติดตาม นอกจากนี้การออกกำลังกายยังสนุกมาก

(ตอบโดย Marcos Villagra)

การวิเคราะห์อัลกอริทึมแบบสุ่ม:

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


3
หนังสือเล่มนี้ถูกแนะนำในหัวข้ออื่น (ฉันคิดว่าโดย Suresh) ฉันพบว่ามันยอดเยี่ยม ขอบคุณ Aaron ที่พูดถึงมันที่นี่
MS Dousti

29

Cryptography:

หนังสือพื้นฐานการเข้ารหัสสองเล่มโดย Oded Goldreich ( เล่มที่ 1: เครื่องมือพื้นฐานและเล่ม 2: การใช้งานขั้นพื้นฐาน ) เป็นหนังสือที่ยอดเยี่ยมในเรื่อง (ฉบับร่างก่อนวางจำหน่ายจากหน้าแรกของผู้แต่ง ) นอกจากนี้ยังมีหนังสือฉบับย่อให้ย่อ

อีกหนึ่งหนังสือที่ยอดเยี่ยมคือรู้เบื้องต้นเกี่ยวกับการเข้ารหัสสมัยใหม่: หลักการและโปรโตคอลโดย Katz & Lindell

สำหรับผู้ที่สนใจภูมิหลังทางคณิตศาสตร์ของวิทยาการเข้ารหัสลับเบื้องต้นการเข้ารหัสทางคณิตศาสตร์โดย Hoffstein และคณะ เป็นทางเลือกที่เป็นธรรมชาติ

หนังสือที่ยอดเยี่ยมอื่น ๆ ได้แก่ :


หัวข้อเฉพาะ:


2
นับตั้งแต่เปิดตัวในปี 1993 มีการใช้ออราเคิลสุ่มในงานวรรณกรรมอย่างกว้างขวาง พิเศษในรูปแบบลายเซ็น ฉันไม่รู้หนังสือที่ครอบคลุมพื้นที่นี้อย่างเหมาะสม ข้อเสนอแนะยินดีต้อนรับ
MS Dousti

1
หนังสือเกี่ยวกับออราเคิลสุ่มจะเป็นประโยชน์อย่างมาก ฉันไม่ได้ทำงานใน crypto แต่ฉันอ่าน Katz / Lindell จากหน้าไปหลัง การเปลี่ยนจากตำราเรียนเป็นวรรณกรรม crypto นั้นหยาบเพราะเหตุผลเฉพาะนี้ นอกจากนี้ @Sadeq จากความอยากรู้: หนังสือใด ๆ ที่คุณอ่านมีความครอบคลุมที่ดีในการกรอกลับหรือไม่?
Daniel Apon

1
@Daniel: วิทยานิพนธ์ของ Martin Gagné "การศึกษาแบบสุ่มของ Oracle" (UC Davis, 2008) เป็นการอ้างอิงที่ค่อนข้างดีใน oracle สุ่ม (แม้ว่ายังห่างไกลจากความสมบูรณ์) เกี่ยวกับคำถาม "กรอกลับ": ฉันไม่รู้หนังสือเกี่ยวกับเรื่องนี้ แต่ฉันคิดว่าฉันเข้าใจแล้ว คุณช่วยอธิบายสิ่งที่เป็นปัญหาให้คุณได้ไหม คุณสามารถถามมันในหัวข้ออื่น
MS Dousti

@Sadeq ฉันมีแนวโน้มที่จะไม่เริ่มคำถามที่เป็นอิสระเกี่ยวกับมันเพราะมันจะมีจำนวนมากกว่า "ความช่วยเหลือสิ่งที่กรอกลับคืออะไร" :) ส่วนที่มีปัญหาคือการกรอกลับไม่ได้อยู่ในตำราเรียนที่ใช้ในหลักสูตร crypto ที่ฉันเรียน (เช่น Katz / Lindell) ดังนั้นฉันไม่เคยเห็นแนวคิดมาก่อน ฉันรู้ว่ามันแสดงให้เห็นเป็นประจำในวรรณกรรม crypto แต่ในขณะที่บางคนไม่ได้มีส่วนร่วมในการวิจัย crypto ฉันสงสัยว่าฉันจะอ่านเอกสารมากพอที่จะได้รับความเข้าใจที่มั่นคงในการกรอกลับเพียงแค่พบมันมากพอ บางทีฉันอาจจะถามคำถามเกี่ยวกับการกรอกลับของต้นกำเนิด ...
แดเนียลกาล

3
@Daniel: การแนะนำหนังสือของฉันที่มีความรู้ร่วมกันเป็นศูนย์จะอธิบายการกรอกลับและความยากลำบากที่เกิดขึ้นกับมันในบริบทของการจัดทำโปรโตคอล แหล่งข้อมูลอื่น ได้แก่ : (1) Oded Goldreich, Hugo Krawczyk: องค์ประกอบของระบบพิสูจน์ความรู้ที่เป็นศูนย์ SIAM J. Comput 25 (1): 169-192 (1996) และ (2) Cynthia Dwork, Moni Naor, Amit Sahai: ไม่มีศูนย์ความรู้พร้อมกัน J. ACM 51 (6): 851-898 (2004)
Alon Rosen

25

ฟังก์ชั่นการเขียนโปรแกรม

  • โครงสร้างข้อมูลการทำงานได้อย่างหมดจดโดยคริสโอคาสากิ หนังสือส่วนใหญ่เกี่ยวกับโครงสร้างข้อมูลถือว่าเป็นภาษาที่จำเป็นเช่น C หรือ C ++ อย่างไรก็ตามโครงสร้างข้อมูลสำหรับภาษาเหล่านี้อาจแปลได้ไม่ดีนักกับภาษาที่ใช้งานได้ หนังสือเล่มนี้เป็นหนึ่งใน expositions ที่ดีที่สุดในการใช้โครงสร้างข้อมูลและอัลกอริทึมในภาษาที่ใช้งานได้
  • หน้าที่ Programming: การปฏิบัติและทฤษฎีโดยบรูซเจ Maclennan แม้จะมีชื่อหนังสือเล่มนี้เป็นหนังสือเชิงทฤษฎีมากกว่าเชิงปฏิบัติ ผู้ที่อ่านหนังสือเล่มนี้จะมีมุมมองที่ดีในเรื่องนี้มากกว่าผู้ที่เรียนรู้โดยการเขียนโปรแกรมแบบเฉพาะกิจ
  • ไข่มุกของฟังก์ชั่นการออกแบบอัลกอริทึมโดยริชาร์ดเบิร์ด นิทรรศการใหม่ล่าสุดในเรื่องซึ่งใช้แนวทางการแก้ปัญหาและแสดงความงามของสนามโดยแสดงความคิดที่น่าสนใจในการออกแบบอัลกอริทึมการทำงาน
  • การเขียนโปรแกรมได้รับการรับรองด้วยขึ้นอยู่กับประเภทโดยอดัม Chlipala เป็นหนึ่งในแหล่งข้อมูลที่ดีที่สุดในการเรียนรู้ Coq และเน้นเป็นพิเศษเกี่ยวกับวิธีการรับรองโปรแกรมอัตโนมัติและทฤษฎีบทที่พิสูจน์โดยใช้ระบบตรรกะ / กฎแบบอิงกฎ ตัวอย่างมีมากมายและง่ายต่อการติดตาม

21

อัลกอริทึมการประมาณ

อัลกอริทึมการประมาณหนังสือโดย Vazirani เป็นหนังสือที่ดีที่สุดในเรื่อง หนังสืออีกเล่มหนึ่งคืออัลกอริทึมการประมาณสำหรับปัญหา NP-Hardโดย Hochbaum

ต่อไปนี้เป็นการเปรียบเทียบโดยผู้ตรวจสอบสองคน:

ฉันใช้หนังสือของ Dorit Hochbaum เกี่ยวกับอัลกอริทึมการประมาณสำหรับปัญหา NP-Hard เป็นแนวทางสำหรับการทำงานของฉัน หนังสือของ Hochbaum นั้นยอดเยี่ยมมาก อย่างไรก็ตามรูปแบบการสำรวจทำให้ผู้คนที่ดีที่สุดในสนามต้องเข้ากันได้อย่างราบรื่น หนังสือของ Vazirani แก้ไขโดยการเรียบเนียนและสง่างามตั้งแต่ต้นจนจบ ชุดปัญหาที่ยอดเยี่ยมคำแนะนำที่ยอดเยี่ยมสำหรับปัญหาส่วนใหญ่และมีส่วนท้ายของหนังสือที่อุทิศให้กับปัญหาแบบเปิดซึ่งเป็นคุณลักษณะที่ยอดเยี่ยมจริงๆ

และ

ฉันกำลังมองหาหนังสือที่เกี่ยวข้องกับการแก้ปัญหา NP-complete และ NP-hard โดยประมาณ มีหนังสืออีกเล่มหนึ่งโดย Hochbaum และฉันก็มีเช่นกัน น่าเสียดายที่หนังสือเล่มนี้เป็นหนังสือที่เน้นการวิจัยมากกว่าที่เขียนโดยนักวิจัยหลายคน มันเหมือนกับการอ่านงานวิจัยหลายฉบับภายในสองปกแข็ง ซึ่งหมายความว่าเราต้องมีประสบการณ์ระดับกลางด้วยอัลกอริธึมการประมาณ

หนังสือเล่มล่าสุดคือการออกแบบอัลกอริทึมโดยประมาณโดย Williamson และ Shmoys


21

combinatorics

หนังสือเบื้องต้น หนังสือต่อไปนี้สามารถใช้เป็นบทนำที่ยอดเยี่ยมสำหรับหัวข้อ:

ข้อความขั้นสูงเพิ่มเติม


21

combinatorics

ฉันต้องการอ้างถึงAnalytic Combinatoricsโดย Philippe Flajolet และ Robert Sedgewick มันมีพื้นฐานทางคณิตศาสตร์ที่แข็งแกร่งสำหรับการแจงนับและการวิเคราะห์อัลกอริทึม ฉันยังต้องการจ่ายส่วยให้ Philippe Flajolet ซึ่งเสียชีวิตเมื่อสองวันก่อนและเป็นนักคณิตศาสตร์และนักวิทยาศาสตร์คอมพิวเตอร์ที่ยอดเยี่ยม


20

1
หนังสือบางเล่ม (Manna และ Apt และคณะ) เป็นวันที่ค่อนข้างยุติธรรม (Manna มาจากปี 1977 และ Apt และคณะจากปี 1991) สาขาการตรวจสอบโปรแกรมตามตรรกะได้เห็นความก้าวหน้าที่สำคัญในทศวรรษที่ผ่านมา อนิจจาไม่มีข้อความที่เป็นปัจจุบัน
Martin Berger

@MartinBerger คำแนะนำใด ๆ เกี่ยวกับความก้าวหน้าครั้งสำคัญนี้ที่อาจได้รับการเรียนรู้เกี่ยวกับหากไม่ได้อยู่ในตำราเรียนล่าสุด
มิทช์

@ Mitch ฉันกลัวว่ายังไม่ได้เขียนในหนังสือเรียน อาจดูวรรณกรรมบางส่วนเกี่ยวกับเครื่องมือแบบอินเทอร์แอคทีฟเช่น Isabelle / HOL และ Coq ดูที่เครื่องมือตรวจสอบอัตโนมัติล่าสุดเช่น "อนุมาน" ของ Facebook และทฤษฎีที่อยู่เบื้องหลัง
Martin Berger

Huth & Ryan เป็นมิตรกับผู้เริ่มต้นมาก สำหรับคนที่ไม่คุ้นเคยกับคณิตศาสตร์ที่เข้มงวดทั้งหมดใน CS มันเป็นการเริ่มต้นที่ดี มันเป็นหนังสือเล่มแรกที่ฉันอ่านเกี่ยวกับด้านทางการของ CS และทำให้ฉันติดใจนับตั้งแต่! มันเป็นหนังสือเรียนเล่มแรกที่ฉันอ่านจบทั้งหมด
RexYuan

19

ทฤษฎีสารสนเทศ

ทฤษฎีข้อมูลการอนุมานและอัลกอริทึมการเรียนรู้โดย David MacKay

ตำราที่มีชื่อเสียงอื่น ๆ ในทฤษฎีข้อมูลที่สามารถพบได้ในวิกิพีเดีย


ชื่อคือ "ทุกคนควรอ่านหนังสืออะไรบ้าง" ดังนั้นคำแนะนำควรเลือก ทุกคนสามารถหารายการหนังสือเล่มใหญ่เกี่ยวกับ "ทฤษฎีข้อมูล" จาก Amazon / ห้องสมุด แต่ถ้าคุณมีเพียง 2-3 ตัวเลือกพวกเขาจะเป็นอย่างไร คุณควรแนะนำหนังสือหรือบทความที่คุณได้อ่านมาอย่างละเอียดถี่ถ้วนและแคบลงไปในรายการโปรดของคุณ
Dai Le

1
@Dai Le: คุณพูดถูก ฉันคิดว่ารายการควรแคบลง (ส่วนตัวฉันรับผิดชอบในการ bloating รายการ!) อย่างไรก็ตามนี่คือการโพสต์วิกิชุมชน ฉันเพิ่มรายการยาว ๆ เพื่อแนะนำว่าผู้สมัครคืออะไร โปรดตัดแต่งรายการเพื่อรวมเฉพาะหนังสือที่เหมาะสมที่สุดเท่านั้น
MS Dousti

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

@ ได: คุณพูดถูก แต่เนื่องจากฉันไม่ใช่ผู้เชี่ยวชาญใน "ทฤษฎีข้อมูล" ฉันไม่สามารถตัดรายการด้วยตัวเอง ฉันสามารถ: 1) ลบรายการที่ฉันเพิ่มทั้งหมด (ออกจากรายการเดิม) หรือ 2) เพิ่มประกาศในข้อความเพื่อดึงดูดความสนใจของผู้เชี่ยวชาญ คุณแนะนำอะไร?
MS Dousti

@Sadeq: ฉันไม่ได้ทำงานเกี่ยวกับทฤษฎีข้อมูลเช่นกันมิฉะนั้นฉันจะช่วยตัดรายการ ฉันรู้ว่าหนังสือ "Thomas M. Cover, Joy A. Thomas องค์ประกอบของทฤษฎีข้อมูล" แนะนำโดยหลายคนรวมถึง Lance Fortnow แต่ฉันไม่แน่ใจว่าทุกคนควรอ่านหรือไม่ ฉันคิดว่าเราควรเคารพโปสเตอร์ต้นฉบับเนื่องจากหนังสือเล่มนี้อาจเป็นที่ชื่นชอบที่สุดของเขา ดังนั้นการลบรายการทั้งหมดจึงเป็นตัวเลือกที่ดี ฉันขอโทษจริงๆที่ตรงไปตรงมาเกินไป คุณสามารถขอให้ผู้คนอธิบายว่าทำไมพวกเขาถึงแนะนำหนังสือของพวกเขา
Dai Le

19

อัลกอริทึมแบบกระจาย

อัลกอริทึมแบบกระจายโดย Nancy Lynch นี่คือข้อความแบบคลาสสิคที่เขียนโดยผู้บุกเบิกการคำนวณแบบกระจาย

รู้เบื้องต้นเกี่ยวกับอัลกอริทึมแบบกระจายโดย Gerard Tel การแนะนำที่ดีมากเหมาะสำหรับหลักสูตรระดับปริญญาตรี เน้นที่โมเดลการส่งข้อความ

คอมพิวเตอร์แบบกระจาย: ความรู้พื้นฐาน, สถานการณ์จำลองและหัวข้อขั้นสูงโดย Hagit Attiya และ Jennifer Welch เนื้อหานี้ประกอบด้วยวัสดุขั้นสูงที่เหมาะสำหรับหลักสูตรระดับปริญญาเอก ทั้งโมเดลการส่งผ่านข้อความและหน่วยความจำแบบแบ่งใช้ถูกกล่าวถึง

การออกแบบและวิเคราะห์อัลกอริทึมแบบกระจายโดย Nicola Santoro หนังสือเล่มล่าสุดอาจใช้ทั้งในระดับปริญญาตรีและปริญญาเอก วัสดุจะถูกนำเสนอโดยเน้นการออกแบบโปรโตคอล


19

ควอนตัมคอมพิวเตอร์

หนังสือแนะนำเบื้องต้นยอดเยี่ยมอีกสองเล่มเกี่ยวกับเรื่องนี้คือ:


17

การเพิ่มประสิทธิภาพ

ฉันชอบ Paul Nahin เมื่อ Least is Best

โดยพื้นฐานแล้วเป็นประวัติศาสตร์ที่น่ารักของการปรับให้เหมาะสมผ่านปัญหาและบุคลิกภาพ มีการทบทวนที่ดีในหน้า 32-36 ในหนึ่งในคอลัมน์ของBill Gasarch

eiπ=1


17

ความซับซ้อนของการสื่อสาร:


การสื่อสารที่ซับซ้อนโดย Eyal Kushilevitz และ Noam Nisan

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

ส่วนของความซับซ้อนของการสื่อสารแบบสุ่มควรเสริมด้วยส่วนของหนังสือเล่มแรก


ความซับซ้อนของการสื่อสารและการคำนวณแบบขนานโดย Juraj Hromkovič

สมบูรณ์มาก แต่บางครั้งก็ยากที่จะอ่าน คำอธิบายที่ใช้งานง่ายมีความชัดเจนและการออกกำลังกายที่ดีมาก ในส่วนที่สองนำเสนอการเชื่อมต่อกับการคำนวณแบบขนาน


16
  • หนังสือของMatousek & Chazelle on Discrepancy นั้นยอดเยี่ยมมาก

    ในความเป็นจริงแล้วหนังสือเกือบทุกเล่มของ Matousekมีคุณค่าในการอ่าน

  • หนังสือ Douglas West ในทฤษฎีกราฟ ( [1]และ[2] ) นั้นดี

  • Alon & Spencerก็ยอดเยี่ยมเช่นกัน
  • Pach & Agarwalเหมาะสำหรับเรขาคณิตที่ไม่ต่อเนื่องเช่นเดียวกับSharir & Agarwalหากคุณอยู่ในลำดับ DS
  • หนังสือ Brass, Moser และ Pachเกี่ยวกับปัญหาแบบเปิดในเรขาคณิตที่ไม่ต่อเนื่องก็ดีเช่นกัน
  • Vanderbeiหนังสือเกี่ยวกับแผ่นเสียงเป็นสิ่งที่ดีมาก
  • หนังสือของ Schrijver ( [1]และ[2] ) นั้นยอดเยี่ยมมาก

อีกหนึ่งที่ยอดเยี่ยมสำหรับการวิเคราะห์บูลีนฟูริเยร์ (ตามที่แนะนำ) และครอบคลุมทั้งพื้นฐานหัวข้อขั้นสูงและแอปพลิเคชั่น (มาก) คือการวิเคราะห์ฟังก์ชั่นบูลีนโดย Ryan O'Donnell (2014) มันสามารถออนไลน์ได้อย่างอิสระที่นี่เช่นกัน
ผ่อนผัน C.

16

พีชคณิตการคำนวณ

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

การวิเคราะห์เชิงคำนวณ

เขตข้อมูลที่น่าสนใจซึ่งเกี่ยวข้องกับการคำนวณในฟังก์ชันจริง หรือที่เรียกว่า "การวิเคราะห์คำนวณ" หรือ "แคลคูลัสคำนวณ"


16

combinatorics

generatefunctionologyโดย Herbert S. Wilf เป็นการแนะนำที่ยอดเยี่ยมเกี่ยวกับทฤษฎีการสร้างฟังก์ชั่นเขียนอย่างเรียบง่ายและเต็มไปด้วยการออกกำลังกาย หากเขาเขียนหนังสือทั้งหมดของเขาเช่นนั้นฉันก็อดใจไม่ไหวที่จะเริ่มต้นใหม่

Combinatorics นับไม่ถ้วนโดย Richard Stanley เป็นข้อมูลอ้างอิงที่ยอดเยี่ยม (ขั้นสูง)

Combinatorics: หัวข้อเทคนิคขั้นตอนวิธีโดย Peter Cameron และเชิญคณิตศาสตร์ไม่ต่อเนื่องโดย Matousek และ Nesetril เป็นคำแนะนำที่ดีในการ combinatorics

Applied Combinatoricsโดย Roberts and Tesman เป็นการอ้างอิงสารานุกรมเกี่ยวกับ combinatorics ประยุกต์


14

ตรรกะ:

นี่คือคำต่อคำของฉันสำหรับคำถามนี้

ความรู้เกี่ยวกับตรรกะทางคณิตศาสตร์ขั้นพื้นฐานคือในความคิดของฉันเป็นบวก คุณสามารถดูหนังสือสองเล่มโดย Cori และ Lascar

ตรรกะทางคณิตศาสตร์: หลักสูตรที่มีแบบฝึกหัดตอนที่ 1

ตรรกะทางคณิตศาสตร์: หลักสูตรที่มีแบบฝึกหัดตอนที่ 2


เฮอร์เบิร์ตเอนเดอร์ตันเป็นคณิตศาสตร์เบื้องต้นอย่างไร?
RexYuan

14

3
สิ่งนี้เปรียบเทียบกับ "วิธีแก้ปัญหา" โดย G. Polya หรือไม่ ฉันคิดว่าฉันอ่านคำแนะนำที่ Polya เป็นต้นฉบับและดีกว่ามาก แต่ฉันไม่แน่ใจและไม่สามารถปฏิเสธได้ใน interwebs;)
DaveBall aka user750378

2
Polya ของ "วิธีการแก้ปัญหา" (HTSI) เน้นเรื่องที่แตกต่างจากหนังสือของ Velleman Polya เป็นข่าวลือเกี่ยวกับวิธีการค้นหาวิธีการแก้ไขปัญหาอย่างหนักในขณะที่ Velleman เป็นหนังสือเกี่ยวกับวิธีการทำให้เป็นทางการแก้ไขปัญหาโดยใช้อนุสัญญาและภาษาของคณิตศาสตร์ HTSI มีข้อมูลเกี่ยวกับการพิสูจน์ แต่นำเสนอในรูปแบบ "อภิธานศัพท์" โดยไม่มีโครงสร้างในขณะที่ Velleman นำเสนอหลักสูตรที่มีระบบและแบบฝึกหัดให้คุณ ทั้งคู่เป็นสิ่งที่ควรค่าแก่การอ่าน แต่สิ่งหนึ่งไม่ได้มาแทนที่สิ่งอื่น
Nate CK

13

ทฤษฎีจำนวน

ฉันพบหนังสือหลายเล่มที่อ้างถึงบ่อยครั้งในเอกสารจำนวนมาก พวกเขาเก่งในเรื่องนี้ แต่บางคนก็ค่อนข้างแก่ นี่คือรายการสิ่งที่ฉันจำได้:

  • ทฤษฎีเบื้องต้นของตัวเลขโดย Hardy และคณะ Hardy เป็นนักคณิตศาสตร์ชาวอังกฤษที่มีชื่อเสียง เขาเป็นผู้ให้คำปรึกษาของนักคณิตศาสตร์ชาวอินเดียRamanujan ผลงานของเขาไปที่สนามของทฤษฎีจำนวนเป็นที่น่าตื่นตาตื่นใจมาก
  • ทฤษฎีเบื้องต้นของตัวเลขโดยนิเวน, ซัคเคอร์แมน, มอนต์โกเมอรี่ แนะนำคลาสสิกอื่นไปยังสนาม
  • แก้ไขและแก้ปัญหาในทฤษฎีจำนวนโดยพระสาทิสลักษณ์ นี่คือหนังสือสำหรับผู้ที่แสวงหาคาดเดาเลยเพื่อจะพิสูจน์ในสนาม
  • ฟังก์ชันซีตาของ Riemannโดย Edwards ส่วนที่สำคัญของทฤษฎีจำนวนที่ทันสมัยเช่นเดียวกับอัลกอริธึมที่น่าจะเป็นไปได้หลายประการสำหรับงานเชิงทฤษฎีเชิงตัวเลขถูกก่อตั้งขึ้นตามสมมติฐาน (ขยาย) ของ Riemann ตามที่อธิบายไว้ในหนังสือเล่มนี้

คุณคิดอย่างไรกับหนังสือของโรเซ็นหรือโดเวอร์พิมพ์ซ้ำ
ทำเครื่องหมาย C

@ Mark: พวกเขาก็ดีเหมือนกัน ทำไมไม่แก้ไขโพสต์และเพิ่มหนังสือเหล่านั้นด้วย?
MS Dousti


11

ทฤษฎีพิสูจน์

หนังสือพิสูจน์ขั้นพื้นฐานของทรอยสตราและชวิชเทนเบิร์กเป็นข้อความที่แท้จริงของหัวข้อนี้

หลักฐานและประเภทของ Girard, Taylor & LaFont เป็นหนังสือที่สั้นกว่าเกี่ยวกับหัวเรื่องและมีเวอร์ชันสำหรับดาวน์โหลดที่http://www.paultaylor.eu/stable/Proofs%2BTypes.html


11

ทฤษฎีกราฟ

สำหรับทฤษฎีกราฟเบื้องต้น : ทฤษฎีกราฟ เบื้องต้นโดยตะวันตก

เพิ่มเติมเกี่ยวกับทฤษฎีกราฟ : ทฤษฎี กราฟโดย Bondy และ Murty

หนังสือครอบคลุมซึ่งมีพัฒนาการใหม่ ๆ รวมถึงผลลัพธ์แบบคลาสสิกในทฤษฎีกราฟ:

ทฤษฎีกราฟ: ไรน์ฮาร์ดดสเตล

สำหรับกราฟบนพื้นผิวด้วยวิธี combinatorial:

กราฟบนพื้นผิว

และสำหรับ digraphs:

Digraphs: ทฤษฎีอัลกอริทึมและการประยุกต์


1
นอกจากนี้ยังมีทฤษฎีกราฟโดย Claude Berge หนึ่งในผู้ก่อตั้งทฤษฎีกราฟ และกราฟและอัลกอริทึมโดย Michel Minoux และ Michel Gondran
Lamine

9

การออกแบบ VLSI

ฉันไม่ได้อยู่ในฮาร์ดแวร์ อย่างไรก็ตามเนื่องจากคำถามที่พบบ่อยรวมถึง VLSI เป็นหนึ่งในสาขาย่อยของ TCS ฉันจึงถามผู้เชี่ยวชาญเกี่ยวกับหนังสือที่มีชื่อเสียงในการออกแบบ VLSI ที่นี่พวกเขาคือ:


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