คำถามติดแท็ก reference-request

คำถามที่ขอเอกสารในวรรณคดีในประเด็นเฉพาะเจาะจงและแคบ

3
หนังสืออัลกอริทึมในหัวข้อต่างๆ
ต้องการปรับปรุงโพสต์นี้หรือไม่? ให้คำตอบโดยละเอียดสำหรับคำถามนี้รวมถึงการอ้างอิงและคำอธิบายว่าทำไมคำตอบของคุณถึงถูกต้อง คำตอบที่ไม่มีรายละเอียดเพียงพออาจแก้ไขหรือลบออกได้ ฉันได้รับมอบหมายให้สร้างห้องสมุดหนังสือเกี่ยวกับอัลกอริทึมสำหรับ บริษัท ขนาดเล็กของเรา (ประมาณ 15 คน) งบประมาณมากกว่า 5k แต่น้อยกว่า 10k แน่นอนดังนั้นฉันสามารถซื้อหนังสือได้พอใช้ ทุกคนที่นี่มีอย่างน้อยปริญญาตรีใน CS หรือสาขาที่เกี่ยวข้องอย่างใกล้ชิดดังนั้นในขณะที่ฉันจะได้รับหนังสือเรียนพื้นฐานเช่น Cormen ฉันสนใจหนังสือที่ดีในหัวข้อขั้นสูง (ฉันจะได้รับเล่ม 4 ของ Knuth, BTW) รายการหัวข้อบางส่วนจะเป็น: ขั้นตอนวิธีการเรียงลำดับ อัลกอริธึมกราฟ อัลกอริธึมสตริง อัลกอริทึมแบบสุ่ม อัลกอริทึมแบบกระจาย อัลกอริทึม Combinatorial เป็นต้น โดยพื้นฐานแล้วฉันกำลังมองหาคำแนะนำที่ดีเกี่ยวกับหนังสือในหัวข้อที่สำคัญภายใน CS ที่เกี่ยวข้องกับอัลกอริทึมและโครงสร้างข้อมูล โดยเฉพาะอย่างยิ่งสิ่งที่นอกเหนือไปจากสิ่งที่ครอบคลุมโดยทั่วไปในชั้นเรียนอัลกอริทึมและโครงสร้างข้อมูลซึ่งเป็นส่วนหนึ่งของปริญญาตรีในโรงเรียนที่ดี ฉันรู้ว่าคำถามนั้นค่อนข้างคลุมเครือเนื่องจากฉันกำลังมองหาวัสดุที่มีประโยชน์โดยทั่วไป ซอฟต์แวร์ที่เราพัฒนานั้นส่วนใหญ่เป็นระบบที่จัดการกับข้อมูลจำนวนมาก อุดมคติก็คือการค้นหาสิ่งใดก็ตามที่จะครอบคลุมโครงสร้างและอัลกอริธึมเจ๋ง ๆ ล่าสุดที่คนส่วนใหญ่อาจไม่เคยได้ยินมาก่อน แก้ไข: นี่คือหนังสือเบื้องต้นที่ฉันคิดว่าฉันควรได้รับ: รู้เบื้องต้นเกี่ยวกับอัลกอริทึมโดย Cormen และคณะ การออกแบบอัลกอริทึมโดย Kleinberg, Tardos …

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

3
การอ้างอิงการเปรียบเทียบระหว่างคอมพิวเตอร์ควอนตัมและเครื่องทัวริง
ฉันได้รับการบอกว่าคอมพิวเตอร์ควอนตัมไม่ได้คำนวณประสิทธิภาพมากกว่าเครื่องทัวริง ใครช่วยกรุณาให้การอ้างอิงวรรณกรรมอธิบายความจริงที่ว่า?

1
การแยกประเภทการปรับแต่ง
ที่ทำงานฉันได้รับมอบหมายให้อนุมานข้อมูลบางประเภทเกี่ยวกับภาษาแบบไดนามิก ฉันเขียนลำดับของข้อความไปยังletนิพจน์ที่ซ้อนกันเช่น: return x; Z => x var x; Z => let x = undefined in Z x = y; Z => let x = y in Z if x then T else F; Z => if x then { T; Z } else { F; Z } เนื่องจากฉันเริ่มต้นจากข้อมูลประเภททั่วไปและพยายามอนุมานประเภทที่เฉพาะเจาะจงมากขึ้นตัวเลือกที่เป็นธรรมชาติคือประเภทการปรับแต่ง ตัวอย่างเช่นตัวดำเนินการตามเงื่อนไขส่งคืนการรวมของประเภทของสาขาที่เป็นจริงและเท็จ …
11 programming-languages  logic  type-theory  type-inference  machine-learning  data-mining  clustering  order-theory  reference-request  information-theory  entropy  algorithms  algorithm-analysis  space-complexity  lower-bounds  formal-languages  computability  formal-grammars  context-free  parsing  complexity-theory  time-complexity  terminology  turing-machines  nondeterminism  programming-languages  semantics  operational-semantics  complexity-theory  time-complexity  complexity-theory  reference-request  turing-machines  machine-models  simulation  graphs  probability-theory  data-structures  terminology  distributed-systems  hash-tables  history  terminology  programming-languages  meta-programming  terminology  formal-grammars  compilers  algorithms  search-algorithms  formal-languages  regular-languages  complexity-theory  satisfiability  sat-solvers  factoring  algorithms  randomized-algorithms  streaming-algorithm  in-place  algorithms  numerical-analysis  regular-languages  automata  finite-automata  regular-expressions  algorithms  data-structures  efficiency  coding-theory  algorithms  graph-theory  reference-request  education  books  formal-languages  context-free  proof-techniques  algorithms  graph-theory  greedy-algorithms  matroids  complexity-theory  graph-theory  np-complete  intuition  complexity-theory  np-complete  traveling-salesman  algorithms  graphs  probabilistic-algorithms  weighted-graphs  data-structures  time-complexity  priority-queues  computability  turing-machines  automata  pushdown-automata  algorithms  graphs  binary-trees  algorithms  algorithm-analysis  spanning-trees  terminology  asymptotics  landau-notation  algorithms  graph-theory  network-flow  terminology  computability  undecidability  rice-theorem  algorithms  data-structures  computational-geometry 

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

1
การรวบรวมปัญหา APX-hard
ทุกคนรู้ว่า "Garey & Johnson" ซึ่งเป็นข้อมูลอ้างอิงแบบ go-to ของฉันเมื่อใดก็ตามที่ฉันต้องการปัญหาในการเปลี่ยนจากการพิสูจน์ความกระด้าง NP อย่างไรก็ตามเมื่อเร็ว ๆ นี้ฉันพบว่าตัวเองต้องมีการพิสูจน์ความแข็งของ APX และฉันสงสัยว่ามีชุดของปัญหาที่คล้ายกัน (และมากขึ้นถึงวันที่ .. ?) ที่แสดงว่าเป็น APX-hard ไม่มีใครรู้เรื่องนี้บ้าง ฉันพบว่ามันยากที่จะเชื่อว่าไม่มีเว็บไซต์ที่รวบรวมปัญหาดังกล่าวอย่างเป็นระบบ แต่ทักษะ Google ของฉันดูเหมือนจะไม่เพียงพอ

2
หนังสือคณิตศาสตร์ที่ดีเกี่ยวกับอัลกอริทึม [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ฉันเป็นคนดูดความสง่างามทางคณิตศาสตร์และความแม่นยำและตอนนี้ฉันกำลังมองหาวรรณกรรมดังกล่าวเกี่ยวกับอัลกอริทึมและการวิเคราะห์อัลกอริทึม ตอนนี้มันไม่สำคัญอะไรสำหรับฉันว่าอัลกอริธึมจะครอบคลุมอะไรมาก แต่วิธีการที่พวกมันถูกนำเสนอและได้รับการปฏิบัติมากที่สุด "ฉันให้ความสำคัญกับภาษาที่ชัดเจนและแม่นยำมากซึ่งกำหนดความคิดที่ใช้ทั้งหมดในลักษณะที่เข้มงวด ฉันพบว่าคลาสสิกรู้เบื้องต้นเกี่ยวกับอัลกอริทึมโดย Cormen, Leiserson, Rivest และ Stein ค่อนข้างเรียบร้อย แต่ไม่สามารถจัดการกับคณิตศาสตร์ได้ดีและค่อนข้างเป็นทางการพร้อมหลักฐานและคำจำกัดความของมัน Sipser's Introduction to Theory of Computed ดูเหมือนจะดีกว่าในเรื่องนั้น แต่ก็ยังไม่มีการเปลี่ยนจากคณิตศาสตร์เป็นอัลกอริทึม มีใครแนะนำอะไรได้บ้าง ¹: อย่างน้อยที่สุดอัลกอริธึมควรจัดการการจัดการข้อมูลที่ต้องการโดยใช้โครงสร้างข้อมูลนามธรรมแบบไม่ธรรมดาเช่นกราฟ, อาร์เรย์, ชุด, รายการ, ต้นไม้และอื่น ๆ - โดยเฉพาะควรใช้กับโครงสร้างข้อมูลเช่นนั้น ฉันจะไม่สนใจเช่นกันหากปัญหาการใช้งานและการจัดการโครงสร้างข้อมูลถูกละเลยไปโดยสิ้นเชิง แม้ว่าฉันจะไม่สนใจปัญหาที่แก้ไขได้มากนัก

3
อัลกอริทึมสำหรับการลดขนาดออโตเมติกของ Moore
อัลกอริธึมของ Brzozowski สามารถขยายไปยังออโตเมตของมัวร์ได้ แต่ความซับซ้อนของเวลานั้นมีความซับซ้อนโดยทั่วไป มีอัลกอริธึมอื่น ๆ สำหรับการลดขนาดออโตเมติกให้เล็กที่สุดหรือไม่? อะไรคือเวลาทำงานของอัลกอริทึมเหล่านี้ถ้ามี?

2
วิธีการรับตัวกำจัดที่พิมพ์ได้อย่างพึ่งพา?
ในการโปรแกรมแบบพิมพ์อย่างพึ่งพามีสองวิธีหลักในการย่อยสลายข้อมูลและดำเนินการเรียกซ้ำ: การจับคู่รูปแบบขึ้นอยู่กับ : คำจำกัดความของฟังก์ชั่นจะได้รับเป็นคำสั่งหลาย ๆ การรวมทำให้แน่ใจว่าทุกกรณีที่ถูกละเว้นนั้นเป็นไปไม่ได้และตัวแก้ไขภายนอกช่วยให้มั่นใจว่าการเรียกซ้ำนั้นได้รับการพิสูจน์แล้ว กำจัด : ประเภทข้อมูลอุปนัยแต่ละมีค่าคงที่เกี่ยวข้องE Dซึ่งทำหน้าที่เป็นหลักการเหนี่ยวนำและเป็นฟังก์ชันเวียนที่สลายตัวค่าประเภทD สิ่งเหล่านี้มีความละเอียดมากกว่า แต่มีความได้เปรียบในการรวม (ทุกกรณีถูกปกคลุมด้วยE D ) และยกเลิกโดยการก่อสร้างDDDEDEDE_DDDDEDEDE_D ผมเคยเห็นกำจัดสำหรับประเภทข้อมูลทั่วไปเช่นที่กำจัดเป็นพื้นอุปนัยทางคณิตศาสตร์หรือL ฉันs Tที่กำจัดเป็นพื้นพับยังไม่มีข้อความทียังไม่มีข้อความaเสื้อNatL ฉันs TLผมsเสื้อList ฉันได้อ่านเอกสารหลายฉบับเกี่ยวกับการจับคู่รูปแบบขึ้นอยู่กับและหลายคนอ้างถึงทฤษฎีประเภทที่สามารถกำหนดประเภทข้อมูลและทฤษฎีกำจัด ยกตัวอย่างเช่นการขจัดรูปแบบการจับคู่ขึ้นอยู่กับอธิบายวิธี UTT จะขึ้นอยู่กับเครื่องกำจัดและวิธีการจับคู่รูปแบบสามารถแปลงไปกำจัดในการปรากฏตัวของความจริงKความเข้าใจของฉันคือว่าเมื่อมีการกำหนดประเภทข้อมูลทฤษฎีให้ตัวกำจัดKKK สิ่งที่ฉันไม่พบ (หรืออย่างน้อยไม่รู้จักถ้าฉันเห็นมัน) เป็นคำอธิบายที่ดีว่าใครจะได้รับผู้กำจัดทั้งประเภทและความหมายของพวกเขา ใครบางคนสามารถชี้ให้ฉันอ้างอิงถึงวิธีการที่จะได้รับตัวกำจัดจากคำจำกัดความของประเภทข้อมูลหรือไม่?

2
มีมาตรฐานใดสำหรับการเปรียบเทียบรันไทม์ที่ทดลอง
สถานการณ์ของฉัน ฉันกำลังเขียนบทความที่นำเสนอโมดูลซอฟต์แวร์ที่ฉันพัฒนาและฉันต้องการเปรียบเทียบรันไทม์ของมันกับโมดูลอื่นสำหรับงานเดียวกัน ฉันตระหนักถึงข้อเสียของการทดสอบรันไทม์แต่โปรดสมมติว่าไม่มีทางแก้ไขในกรณีของฉัน (ฉันสามารถและอนุมานคุณสมบัติบางอย่างในทางทฤษฎี แต่มันก็ไม่พอเพียงสำหรับทุกสิ่ง) สถานการณ์ที่เฉพาะเจาะจงฉันต้องการที่จะใช้สำหรับการเปรียบเทียบมีสองพารามิเตอร์: ความซับซ้อน ของปัญหาและเมล็ดสุ่ม ซึ่งกำหนดปัญหารายละเอียด ส่วนใหญ่ผมต้องการที่จะแสดงให้เห็นการพึ่งพา nโดยการตรวจสอบเบื้องต้นและทฤษฎีอิทธิพลของต่อรันไทม์มีน้อยหรือไม่สำคัญ งานเดียวใช้เวลาดำเนินการไม่เกินสิบนาทีnnnRRrnnnRRr คำถามจริง ฉันกำลังมองหาขั้นตอนที่เป็นที่ยอมรับหรือเผยแพร่โดยทั่วไปเกี่ยวกับการดำเนินการทดลองดังกล่าวหรืออย่างน้อยรายการของข้อผิดพลาดทั่วไป สิ่งที่ฉันพบจนถึง ไม่มีอะไร การค้นหาทางอินเทอร์เน็ตทำให้เกิดผลลัพธ์ที่ไม่เกี่ยวข้องทั้งหมด แต่ฉันอาจไม่ได้ใช้คำศัพท์ที่ถูกต้อง การรวมคำหลักขั้นต่ำซึ่งฉันรู้ว่าเป็นมาตรฐานที่ดี (ดูด้านล่าง) ก็ไม่ได้ช่วยอะไรเช่นกัน ฉันจะทำอย่างไร ดำเนินการทดลองทั้งหมดในเครื่องเดียวกันด้วยซอฟต์แวร์ที่อาจรบกวนเช่น GUI ถูกปิดใช้งานเท่าที่จะทำได้ ขึ้นอยู่กับโมดูลทั้งหมดในการเลือกสถานการณ์เดียวกันคือและ เดียวกันnnnRRr สำหรับแต่ละสถานการณ์ทดสอบโมดูลต่าง ๆ โดยตรงหลังจากกันตามลำดับแบบสุ่ม ด้วยคำอื่น ๆ การวนรอบโมดูลที่ต่างกันนั้นเป็นส่วนที่อยู่ด้านในสุด สิ่งนี้ควรหลีกเลี่ยงอคติกับโมดูลที่แตกต่างกันเนื่องจากความผันผวนของประสิทธิภาพของเครื่องช้า (เช่นเนื่องจากการเปลี่ยนแปลงของอุณหภูมิ) ลำดับแบบสุ่มควรหลีกเลี่ยงอคติผ่านเอฟเฟกต์เช่นการแคชหรือหนึ่งโมดูลที่ถูกทดสอบเสมอหลังจากที่เดียวกัน สำหรับแต่ละให้ใช้เวลารันไทม์ขั้นต่ำในหลาย ๆ สถานการณ์ด้วยเมล็ดที่แตกต่างกันเป็นเกณฑ์มาตรฐาน สิ่งนี้ควรหลีกเลี่ยงอคติกับโมดูลที่แตกต่างกันเนื่องจากความผันผวนของประสิทธิภาพการทำงานของเครื่องในระยะเวลาอันสั้นnnn

2
ชื่อของปัญหาการเรียงลำดับใหม่ / การเรียงลำดับ?
คุณจะได้รับอาร์เรย์ของความยาวnแต่ละองค์ประกอบของอาเรย์เป็นของหนึ่งในคลาสคุณควรจะจัดเรียงอาร์เรย์ใหม่โดยใช้จำนวนการสลับขั้นต่ำเพื่อให้องค์ประกอบทั้งหมดจากคลาสเดียวกันถูกจัดกลุ่มเข้าด้วยกันเสมอ ตัวอย่างเช่น: ยังมีข้อตกลงที่ใช้ได้อีกสามข้อที่เหลืออยู่nnnKKK[2,1,3,3,2,2]⟶[2,2,2,1,3,3], or[2,1,3,3,2,2]⟶[1,2,2,2,3,3], or[2,1,3,3,2,2]⟶[3,3,2,2,2,1].[2,1,3,3,2,2]⟶[2,2,2,1,3,3], or[2,1,3,3,2,2]⟶[1,2,2,2,3,3], or[2,1,3,3,2,2]⟶[3,3,2,2,2,1]. \begin{align*} &[2, 1, 3, 3, 2, 2] \longrightarrow [2, 2, 2, 1, 3, 3], \text{ or} \\ &[2, 1, 3, 3, 2, 2] \longrightarrow [1, 2, 2, 2, 3, 3], \text{ or} \\ &[2, 1, 3, 3, 2, 2] \longrightarrow [3, 3, 2, …

1
วรรณกรรมเกี่ยวกับแนวทางไร้เดียงสาในการวาดกราฟมอร์ฟิซึ่มส์โดยการตรวจสอบพหุนามของเมทริกซ์คำคุณศัพท์
ฉันอธิบายวิธีการทำกราฟมอร์ฟิซึ่มส์ซึ่งอาจมีผลบวกปลอมและฉันอยากรู้ว่ามีวรรณกรรมระบุว่ามันไม่ทำงาน ให้สอง adjacency เมทริกซ์ , วิธีการไร้เดียงสาที่เป็นที่ยอมรับในการตรวจสอบมอร์ฟิซึ่มส์คือการตรวจสอบว่าแต่ละแถวของมีแถวของซึ่งเป็นแถวเรียงตัวของแถวซึ่งแสดงโดย[V] คำถามที่เข้มงวดกว่านี้เล็กน้อยคือมี "isomorphism ท้องถิ่น"ซึ่งสำหรับแถวทั้งหมด การผลิต isomorphism ท้องถิ่นสามารถทำได้ในเวลาพหุนามโดยการสร้าง matrixด้วย ; ตามด้วยและG,HG,HG, HuuuGGGvvvGGGuuuG[u]∼H[v]G[u]∼H[v]G[u] \sim H[v]ππ\piG[u]∼H[π(u)]G[u]∼H[π(u)]G[u] \sim H[\pi(u)]n×nn×nn\times nAAAA[u,v]=(G[u]∼H[v])A[u,v]=(G[u]∼H[v])A[u,v] = (G[u]\sim H[v])GGGHHHมีเฉพาะที่ isomorphic iffมีการครอบคลุมรอบและทุกรอบการครอบคลุมเป็น isomorphism ท้องถิ่นAAA กราฟปกติทั้งหมดหลอกวิธีนี้อย่างเห็นได้ชัดดังนั้นวิธีที่ไร้เดียงสาเล็กน้อยคือการคำนวณพลังของเมทริกซ์และตรวจสอบพวกมันว่าเป็นมอร์ฟิซึ่มท้องถิ่น คุณมีเมทริกซ์หลายตัวด้วยการตั้งค่าเมื่อคุณพบพลังใด ๆเช่นและตรวจสอบฝาครอบรอบที่ปลายเท่านั้น วิธีแม้ไร้เดียงสาน้อยคือการหาชุดของพหุนามจริงชุดของวงจรทางคณิตศาสตร์และการตั้งค่า[U, V] = 0เมื่อเราพบใด ๆพหุนามPกับP (G) [u] \ ไม่ \ ซิมพี ( H) [วี]G2,H2,G3,H3,…G2,H2,G3,H3,…G^2, H^2, G^3, H^3,\ldotsA[u,v]=0A[u,v]=0A[u,v] = 0Gk[u]≁Hk[v]Gk[u]≁Hk[v]G^k[u]\not\sim …

4
เทคนิคทางการทั่วไปสำหรับการพิสูจน์รหัสฟังก์ชั่นที่ถูกต้องคืออะไร?
ฉันต้องการแสดงหลักฐานสำหรับส่วนของโปรแกรม Haskell ที่ฉันเขียนเป็นส่วนหนึ่งของวิทยานิพนธ์ของฉัน ถึงตอนนี้ฉันไม่สามารถหางานอ้างอิงที่ดีได้ การเขียนโปรแกรมเบื้องต้นเกี่ยวกับหนังสือของ Graham Hutton ใน Haskell ( Google Books ) - ซึ่งฉันอ่านขณะเรียนรู้ Haskell— สัมผัสกับเทคนิคสองสามประการสำหรับการให้เหตุผลเกี่ยวกับโปรแกรมเช่น การใช้เหตุผลเชิงสมการ ใช้รูปแบบที่ไม่ทับซ้อนกัน รายการเหนี่ยวนำ ในบทที่ 13 แต่มันไม่เชิงลึกมาก มีหนังสือหรือบทความใดบ้างที่คุณสามารถแนะนำซึ่งให้ภาพรวมรายละเอียดเพิ่มเติมของเทคนิคการพิสูจน์อย่างเป็นทางการสำหรับ Haskell หรือรหัสการทำงานอื่น ๆ

2
มีกระบวนทัศน์สำหรับการเขียนฟังก์ชั่น“ การอัพเดทที่เพิ่มขึ้น” ในสไตล์ดาต้าโฟลที่แท้จริงหรือไม่?
ฉันไม่รู้คำศัพท์ที่ถูกต้องสำหรับการถามคำถามนี้ดังนั้นฉันจะอธิบายด้วยคำจำนวนมากแทนอดทนกับฉัน พื้นหลังดังนั้นเราจึงอยู่ในหน้าเดียวกัน: โปรแกรมมักจะมีแคช - การแลกเปลี่ยนเวลา / หน่วยความจำ ความผิดพลาดของโปรแกรมเมอร์ทั่วไปคือการลืมปรับปรุงค่าแคชหลังจากเปลี่ยนหนึ่งในแหล่งข้อมูลต้นกำเนิด / ทำนอง แต่กระบวนทัศน์การเขียนโปรแกรม dataflow หรือ FRP นั้นเป็นภูมิคุ้มกันต่อความผิดพลาดดังกล่าว หากเรามีฟังก์ชั่นบริสุทธิ์จำนวนมากและเชื่อมต่อเข้าด้วยกันในกราฟอ้างอิงโดยตรงจากนั้นโหนดสามารถมีค่าเอาต์พุตแคชและนำกลับมาใช้ใหม่ได้จนกว่าอินพุตใด ๆ ของฟังก์ชั่นจะเปลี่ยนไป สถาปัตยกรรมระบบนี้อธิบายไว้ในเอกสารการแคชในสภาพแวดล้อมที่ใช้ดาต้าโฟลว์และในภาษาที่จำเป็นต้องมีความคล้ายคลึงกับการบันทึกข้อมูลมากหรือน้อย ปัญหา : เมื่อหนึ่งในอินพุตของฟังก์ชั่นเปลี่ยนแปลงเรายังคงต้องใช้งานฟังก์ชั่นโดยรวมแล้วทิ้งเอาต์พุตแคชและคำนวณใหม่อีกครั้งตั้งแต่เริ่มต้น ในหลายกรณีดูเหมือนว่าจะสิ้นเปลืองสำหรับฉัน ลองพิจารณาตัวอย่างง่ายๆที่สร้างรายการ "5 อันดับแรก" ข้อมูลอินพุตเป็นรายการที่ไม่เรียงลำดับของอะไรก็ตาม มันถูกส่งผ่านเป็นอินพุตไปยังฟังก์ชันที่เอาต์พุตรายการที่เรียงลำดับ ซึ่งในทางกลับกันจะมีการป้อนฟังก์ชั่นที่ใช้ 5 รายการแรกเท่านั้น ใน pseudocode: input = [5, 20, 7, 2, 4, 9, 6, 13, 1, 45] intermediate = sort(input) final_output = …

4
มีวิธีสำหรับการวิเคราะห์อัลกอริธึมอัตโนมัติหรือไม่?
ฉันสงสัยว่ามีวิธีการวิเคราะห์รันไทม์อัตโนมัติที่ทำงานอย่างน้อยในชุดย่อยที่เกี่ยวข้องของอัลกอริทึม (อัลกอริทึมที่สามารถวิเคราะห์ได้) หรือไม่ ฉัน googled "การวิเคราะห์อัลกอริทึมอัตโนมัติ" ซึ่งทำให้ผมนี้แต่มันเป็น Mathy เกินไป ฉันแค่ต้องการตัวอย่างง่ายๆใน psuedocode ที่ฉันเข้าใจ อาจจะเฉพาะเจาะจงเกินไป แต่ฉันคิดว่ามันคุ้มค่ากับการยิง

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