บ้าน การเงินส่วนบุคคล 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 อัลกอริทึมปัญหายังคงแก้ปัญหา

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

ใช้สำเนียงกระดาษในการจัดเตรียมอาหารและการถ่ายภาพอาหาร - มัดหนังสือ

ใช้สำเนียงกระดาษในการจัดเตรียมอาหารและการถ่ายภาพอาหาร - มัดหนังสือ

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

ใช้ขาตั้งกล้องเพื่อลดการสั่นของกล้อง - มัมมี่

ใช้ขาตั้งกล้องเพื่อลดการสั่นของกล้อง - มัมมี่

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

การใช้ภาพถ่ายและผ้าลินินเพื่อจัดเตรียมอาหารและการถ่ายภาพอาหาร - มัมมี่

การใช้ภาพถ่ายและผ้าลินินเพื่อจัดเตรียมอาหารและการถ่ายภาพอาหาร - มัมมี่

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

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

การเพิ่มข้อมูลลงในภาพเดียวบน Canon EOS 6D ของคุณ - หุ่น

การเพิ่มข้อมูลลงในภาพเดียวบน Canon EOS 6D ของคุณ - หุ่น

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

การปรับช่องมองภาพบนกล้อง Canon EOS 70D - Dummies

การปรับช่องมองภาพบนกล้อง Canon EOS 70D - Dummies

ใน Canon EOS 70D, ใกล้ด้านขวาบนของสายยางที่ล้อมรอบช่องมองภาพเป็นปุ่มหมุน (ดูรูปต่อไปนี้) ที่ช่วยให้คุณปรับโฟกัสของช่องมองภาพให้ตรงกับสายตาของคุณ ปุ่มหมุนนี้เป็นที่รู้จักอย่างเป็นทางการว่าเป็นตัวควบคุมการปรับสายตา หากไม่ใช้ขั้นตอนนี้ฉากที่ปรากฏ ...

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

สิ่งที่ควรค้นหาในซอฟต์แวร์การถ่ายภาพ HDR - ดัมมี่

สิ่งที่ควรค้นหาในซอฟต์แวร์การถ่ายภาพ HDR - ดัมมี่

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

เมื่อต้องการแปลง HDR เป็นขาวดำ - ม้วน

เมื่อต้องการแปลง HDR เป็นขาวดำ - ม้วน

หนึ่งตัวเลือกเพื่อสร้างสีดำและสีขาวสูง ภาพช่วงไดนามิก (HDR) คือการแปลงภาพถ่ายสีของคุณให้เป็นขาวดำก่อนใช้ภาพเหล่านี้เพื่อสร้างภาพ HDR คุณมีสองตัวเลือกเพื่อเลือกว่านี่คือทิศทางที่คุณต้องการหรือไม่: แปลงระหว่าง Conversion ดิบ แปลงระหว่างการทำแผนที่โทน หากเลือก ...

สิ่งที่ควรนำมาสู่การถ่ายภาพอาหารนอกสถานที่ - มัมมี่

สิ่งที่ควรนำมาสู่การถ่ายภาพอาหารนอกสถานที่ - มัมมี่

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