บ้าน การเงินส่วนบุคคล 10 อัลกอริทึมปัญหายังคงแก้ปัญหา

10 อัลกอริทึมปัญหายังคงแก้ปัญหา

สารบัญ:

วีดีโอ: 10 Things Not To Do at the Playground.. 2024

วีดีโอ: 10 Things Not To Do at the Playground.. 2024
Anonim

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

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

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

การจัดการกับการค้นหาด้วยข้อความ

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

คำที่แตกต่าง

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

enlist และ ฟัง สำคัญกว่าคอมพิวเตอร์จะต้องใช้เวลาในการแยกแยะความแตกต่างระหว่างกัน ปัญหาการแยกคำพยายามหาขั้นตอนวิธีที่เล็กที่สุด (และเร็วที่สุด) ที่เป็นไปได้ (หุ่นยนต์ จำกัด deterministic, DFN ในกรณีนี้) เพื่อแยกคำเป้าหมายคือการยอมรับคำหนึ่งคำและปฏิเสธข้อความอื่นโดยให้คำสองคำมีความยาวโดยเฉพาะ การกำหนดว่าแอพพลิเคชันจะสิ้นสุดลง

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

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

การสร้างและการใช้งานทางเดียว

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

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

การคูณหมายเลขที่มีขนาดใหญ่จริงๆ

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

อัลกอริทึมการคูณที่ซับซ้อนของ Gauss

  • การคูณ Karatsuba
  • Toom-Cook
  • วิธีการแปลงฟูเรียร์
  • แม้ว่าหลายวิธีที่มีอยู่ในปัจจุบันจะทำให้ได้ผลลัพธ์ที่ยอมรับได้ เมื่อคุณมีการคำนวณจำนวนมากเพื่อดำเนินการปัญหาเวลาจะกลายเป็นเรื่องสำคัญ ดังนั้นการคูณจำนวนมากเป็นหนึ่งในปัญหาเหล่านั้นที่ต้องการโซลูชันที่ดีกว่าที่มีอยู่ในปัจจุบัน

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

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

การแก้ไข

ระยะห่าง

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

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

คำถามนี้ถูกกล่าวถึงในทศวรรษ 1950 โดย John Nash ในจดหมายถึง National Security Agency (NSA) และอีกครั้งในจดหมายระหว่าง Kurt Gödelกับ John von Neumann นอกเหนือจากการเรียนรู้ด้วยเครื่อง (และ AI โดยทั่วไปแล้ว) ปัญหานี้เป็นเรื่องที่ต้องกังวลกับสาขาอื่น ๆ ซึ่งรวมถึงคณิตศาสตร์การเข้ารหัสการวิจัยอัลกอริทึมทฤษฎีเกมการประมวลผลมัลติมีเดียปรัชญาและเศรษฐศาสตร์

การเล่นเกมปริยาย

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

การทำความเข้าใจเกี่ยวกับปัญหาในเชิงพื้นที่

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

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

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

10 อัลกอริทึมปัญหายังคงแก้ปัญหา

ตัวเลือกของบรรณาธิการ

สำรวจภาพพื้นผิวในภาพถ่ายอาหาร - หุ่น

สำรวจภาพพื้นผิวในภาพถ่ายอาหาร - หุ่น

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

ค้นหาภาพระยะใกล้และระยะใกล้ - Dummies

ค้นหาภาพระยะใกล้และระยะใกล้ - Dummies

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

แก้ไข Light Balance ของภาพ HDR ใน Photomatix - Dummies

แก้ไข Light Balance ของภาพ HDR ใน Photomatix - Dummies

เพื่อปรับสมดุลแสงและผลกระทบโดยรวมในภาพ ภาพ HDR ใน Photomatix Pro ใช้การตั้งค่า Strength และ Smoothing หากการตั้งค่าพื้นฐานของคุณได้รับการหมุนเวียนไปจนถึงจุดที่คุณพอใจกับภาพลักษณ์ของคุณคุณอาจไม่จำเป็นต้องปรับการตั้งค่า Strength และ Smoothing อย่างมีนัยสำคัญใด ๆ ...

ตัวเลือกของบรรณาธิการ

วิธีเลือกเลนส์สำหรับการถ่ายภาพสัตว์ป่า - หุ่น

วิธีเลือกเลนส์สำหรับการถ่ายภาพสัตว์ป่า - หุ่น

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

วิธีการถ่ายภาพสัตว์ที่เคลื่อนไหว - มัมมี่

วิธีการถ่ายภาพสัตว์ที่เคลื่อนไหว - มัมมี่

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

วิธีการถ่ายภาพวัตถุที่มีแสงด้านหลัง - ม.อ.

วิธีการถ่ายภาพวัตถุที่มีแสงด้านหลัง - ม.อ.

เมื่อดวงอาทิตย์ส่องลงด้านหลังของวัตถุ เมื่อกล้องวัดวัตถุหรือวัตถุที่มีแสงด้านหลังมันมืดกว่าฉากอื่น ๆ คุณสามารถจัดการวัตถุย้อนแสงได้สองวิธี: ใช้การชดเชยแสงเพื่อเพิ่มแสง

ตัวเลือกของบรรณาธิการ

เปลี่ยนขนาดภาพและความละเอียดใน Photoshop Elements 10 - Dummies

เปลี่ยนขนาดภาพและความละเอียดใน Photoshop Elements 10 - Dummies

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

การโคลนและการรักษาเครื่องมือใน Photoshop Elements 12 - Dummies

การโคลนและการรักษาเครื่องมือใน Photoshop Elements 12 - Dummies

เครื่องมือการทำสำเนาและการเยียวยาใน Photoshop Elements 12 ใช้สำหรับเอฟเฟ็กต์และเมื่อคุณต้องการทำความสะอาดภาพ การโคลนเกี่ยวข้องกับการทำซ้ำพื้นที่รูปภาพเพื่อสร้างเนื้อหารูปภาพที่ไม่ได้อยู่ในภาพต้นฉบับในขณะที่การรักษาหมายถึงการลบรอยขีดข่วนและความไม่สมบูรณ์ในภาพถ่าย เครื่องมือการโคลนเครื่องมือโคลนนิ่ง ...

โหมดผสมผสานใน Photoshop Elements 11 - Dummies

โหมดผสมผสานใน Photoshop Elements 11 - Dummies

Photoshop Elements 11 กีฬาโหมดตกแต่งที่น่าประทับใจ 25 โหมด โหมด Blend จะส่งผลต่อสีที่โต้ตอบระหว่างเลเยอร์และวิธีการที่สีต่างๆโต้ตอบเมื่อคุณใช้สีกับเลเยอร์ โหมดการผสมผสานสามารถสร้างความหลากหลายของผลที่น่าสนใจบางครั้งก็แปลกประหลาด นอกจากนี้คุณสามารถใช้แก้ไขหรือยกเลิกโหมด Blend ได้โดยไม่ต้องแก้ไขรูปภาพ