[QPC2] Basic Components of Computation
ส่วนประกอบพื้นฐานของการคำนวณ
Last updated
Was this helpful?
ส่วนประกอบพื้นฐานของการคำนวณ
Last updated
Was this helpful?
ตามที่เราเรียนกันมาตั้งแต่เด็กๆ เราก็คงจะพอทราบกันทั่วไปเนอะว่าส่วนประกอบพื้นฐานของการคำนวณมันประกอบไปด้วย 3 อย่างคือ input process และ output โดยเรื่องของ quantum computing นั้นจะมีรายละเอียดที่แตกต่างจาก classical computing อยู่หลายอย่าง แต่จะมีอะไรบ้าง เดี๋ยวเราจะไปดูทีละส่วนกัน
เริ่มจากส่วนแรกเลยก็คือ…
ใน classical computing นั้น เราจะใช้ bit ในการจัดเก็บข้อมูล 1 หน่วย โดยมีสถานะเป็นได้แค่ 0 หรือ 1 เท่านั้น
แต่ใน quantum computing เราจะใช้ qubit มาใช้ในการเก็บข้อมูล โดยความพิเศษของมันคือ มันจะสามารถเป็น 0 เป็น 1 หรือเป็นทั้งสองค่าในเวลาเดียวกันก็ได้ โดยเราจะเรียกสมบัตินี้ว่า "Superposition"
Superposition เป็นคุณสมบัติข้อหนึ่งที่ทำให้ quantum computer มีความเหนือกว่า classical computer เป็นอย่างมาก เราจะเห็นว่า 1 qubit สามารถเก็บข้อมูลได้ 2 สถานะในเวลาเดียวกัน ไม่เหมือนกับ bit ที่เก็บได้แค่ 1 สถานะเท่านั้น ด้วยเหตุนี้จึงทำให้ qubit มีข้อได้เปรียบในเรื่องนี้ โดยเวลาเราเขียน bit เราก็จะเขียนด้วย 0 หรือ 1 เนอะ แต่สำหรับ qubit เราจะเขียนในรูปนี้
โดยจะแทนสถานะที่เป็น 0 และจะแทนสถานะที่เป็น 1 ซึ่งเราจะเห็นว่าสมการจะเป็นการเอาสองสถานะมาผสมกัน (ก็คือ superposition นั่นเอง) โดยเรามักจะใช้สิ่งที่เรียกว่า "Bloch Sphere" มาเป็นตัวช่วยให้เราเห็นภาพของสถานะมากขึ้น โดยหน้าตาของ bloch sphere จะเป็นแบบนี้…
จากภาพ เราจะเห็นว่า bloch sphere เอาสถานะและไปไว้บนขั้วเหนือกับขั้วใต้เนอะ (มันอาจจะขัดกับความคิดกับยักษ์แบบเราหน่อยแต่เรียนๆ ไปเดี๋ยวมันจะ make sense เอง) แล้วก็จะมีจุดอยู่บนผิว ซึ่งทุกๆ จุดบนผิวเนี่ยจะเป็นสถานะที่เป็นไปได้หมดเลย
เดี๋ยวเรื่องคณิตศาสตร์จะตามมาทีหลังอีกเยอะเลย เอาเป็นว่าเราพูดเรื่อง input โดยคร่าวไปละ เราไปดูส่วนตัวไปกันเลยนั่นก็คือ…
ใน classical computing เมื่อเราต้องการทำการเปลี่ยนแปลงข้อมูลเราก็จะทำการเปลี่ยน bit ของข้อมูลโดยอาจจะใช้ logic gate ต่างๆ มาทำการเปลี่ยนแปลงข้อมูล
ส่วนใน quantum computing หรอ…
หมุนมันนนนน
ถ้าเรามองว่า qubit เป็นลูกบอลลูกหนึ่ง (แบบ bloch sphere) สิ่งที่เราทำกับมันได้ก็คือทำการหมุน โดยเราจะทำการหมุนโดยใช้ quantum gate ต่างๆ มาหมุนมันเพื่อเปลี่ยนแปลงข้อมูลไปตามที่เราต้องการ
และข้อได้เปรียบอีกข้อหนึ่งของ qubit ก็คือ เราสามารถทำ operation แบบ parallel ได้ เรียกว่า "Quantum Parallelism"
Quantum parallelism คือสมบัติที่จะพูดถึงการที่เราสามารถคำนวณทุกคำตอบที่เป็นไปได้ออกมาได้ในเวลาเดียวกันอันเนื่องมาจากความเป็น superposition ของ qubit ซึ่งเมื่อคำนวณแล้วเราจะนำข้อมูลออกมายังไงก็จะมีวิธีของมันแยกออกไปอีก เอาเป็นว่านี่เป็นหนึ่งในข้อได้เปรียบเลยล่ะ
เอาเป็นว่า เมื่อเราทำการ process ข้อมูลแล้ว เราก็ต้องทำการ…
เวลาเราอยากรู้ข้อมูลเราทำยังไงครับ?
ก็อ่านมันสิเนอะ ¯\_(ツ)_/¯
ทั้ง classical และ quantum computing ก็ทำแบบนี้เหมือนกันทั้งคู่ โดยในทาง quantum เราจะเรียกการอ่านว่าการทำ "Quantum Measurement"
แต่การทำ quantum measurement นั้นมีข้อจำกัดอยู่คือ เมื่อทำการวัดแล้ว ทุกๆ superposition จะสลาย (collapse) เป็นสถานะหรือเท่านั้น
อ้าว… ถ้าวัดแล้วเหลือแค่หรือแล้ว superposition จะมีประโยชน์ยังไงล่ะ 🤔
ถ้าเราจำกันได้ สมการของ qubit จะอยู่ในรูปแบบของสองสถานะรวมกันใช่ไหมล่ะ?
ถ้าสมการมีผลลัพธ์ค่อนไปทางสถานะเมื่อเราทำการวัดหลายๆ ครั้ง เราก็จะได้สถานะในอัตราส่วนที่มากกว่าสถานะซึ่งถ้าเรามีการวัดที่มากพอก เราก็สามารถสรุปผลลัพธ์ออกมาได้
ดังนั้น ถ้าเราสามารถออกแบบอัลกอริทึมที่สามารถใช้ประสิทธิภาพการคำนวณแบบ parallel ได้สูงสุด สามารถให้ความน่าจะเป็นของผลลัพธ์ได้ใกล้เคียงผลลัพธ์จริงมากที่สุด ก็จะสามารถทำงานเหนือ classical computer ได้ครับ
ฟังดูทะเยอทะยานมาก ก่อนที่จะสมองไหลไปมากกว่านี้เราสรุปเนื้อหากันก่อนดีกว่า
Input
Classical ใช้ bit
Quantum ใช้ qubit
Qubit เก็บสองสถานะพร้อมกันได้ เรียกว่า superposition
Process
Classical เปลี่ยนแปลง bit ด้วยการเปลี่ยนค่าด้วย logic gates
Quantum เปลี่ยนแปลง qubit ด้วยการหมุนด้วย quantum gates
Qubit สามารถทำ operation แบบ parallel ได้ (quantum parallelism)
Output
Classical ก็แค่อ่านข้อมูล
Quantum ใช้การวัด (quantum measurement)
เมื่อวัด qubit แล้วจะกลายเป็นสถานะหรือเท่านั้น
Superposition ที่มีสถานะฝั่งใดมากกว่า ก็มีความน่าจะเป็นที่จะกลายเป็นสถานะนั้นมากกว่า จึงต้องวัดหลายๆ ครั้งเพื่อยืนยันผลลัพธ์ที่ได้
ถ้าเราออกแบบ algorithm ดี ใช้การคำนวณ parallel คุ้ม ก็จะทำให้ process ได้ไวขึ้น คำตอบตกถูกมากขึ้น
อาทิตย์นี้จริงๆ เนื้อหาดูไม่เยอะแต่ต้องใช้ความเข้าใจมากหน่อย ในครั้งหน้าเราจะมาดูในเรื่องของคณิตศาสตร์ของ qubit กัน อย่าลืมติดตามกันด้วยนะครับ สวัสดีครับ