[QPC2] Basic Components of Computation

ส่วนประกอบพื้นฐานของการคำนวณ

ตามที่เราเรียนกันมาตั้งแต่เด็กๆ เราก็คงจะพอทราบกันทั่วไปเนอะว่าส่วนประกอบพื้นฐานของการคำนวณมันประกอบไปด้วย 3 อย่างคือ input process และ output โดยเรื่องของ quantum computing นั้นจะมีรายละเอียดที่แตกต่างจาก classical computing อยู่หลายอย่าง แต่จะมีอะไรบ้าง เดี๋ยวเราจะไปดูทีละส่วนกัน

เริ่มจากส่วนแรกเลยก็คือ…

Input

ใน 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|\psi\rangle=\alpha|0\rangle+\beta|1\rangle

โดย0|0\rangleจะแทนสถานะที่เป็น 0 และ1|1\rangleจะแทนสถานะที่เป็น 1 ซึ่งเราจะเห็นว่าสมการจะเป็นการเอาสองสถานะมาผสมกัน (ก็คือ superposition นั่นเอง) โดยเรามักจะใช้สิ่งที่เรียกว่า "Bloch Sphere" มาเป็นตัวช่วยให้เราเห็นภาพของสถานะมากขึ้น โดยหน้าตาของ bloch sphere จะเป็นแบบนี้…

Bloch Sphere (https://en.wikipedia.org/wiki/Qubit)

จากภาพ เราจะเห็นว่า bloch sphere เอาสถานะ0|0\rangleและ1|1\rangleไปไว้บนขั้วเหนือกับขั้วใต้เนอะ (มันอาจจะขัดกับความคิดกับยักษ์แบบเราหน่อยแต่เรียนๆ ไปเดี๋ยวมันจะ make sense เอง) แล้วก็จะมีจุดψ|\psi\rangleอยู่บนผิว ซึ่งทุกๆ จุดบนผิวเนี่ยจะเป็นสถานะที่เป็นไปได้หมดเลย

เดี๋ยวเรื่องคณิตศาสตร์จะตามมาทีหลังอีกเยอะเลย เอาเป็นว่าเราพูดเรื่อง input โดยคร่าวไปละ เราไปดูส่วนตัวไปกันเลยนั่นก็คือ…

Process

ใน classical computing เมื่อเราต้องการทำการเปลี่ยนแปลงข้อมูลเราก็จะทำการเปลี่ยน bit ของข้อมูลโดยอาจจะใช้ logic gate ต่างๆ มาทำการเปลี่ยนแปลงข้อมูล

ส่วนใน quantum computing หรอ…

หมุนมันนนนน

https://giphy.com/gifs/spinning-swimming-enj50kao8gMfu

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

และข้อได้เปรียบอีกข้อหนึ่งของ qubit ก็คือ เราสามารถทำ operation แบบ parallel ได้ เรียกว่า "Quantum Parallelism"

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

เอาเป็นว่า เมื่อเราทำการ process ข้อมูลแล้ว เราก็ต้องทำการ…

Output

เวลาเราอยากรู้ข้อมูลเราทำยังไงครับ?

ก็อ่านมันสิเนอะ ¯\_(ツ)_/¯

ทั้ง classical และ quantum computing ก็ทำแบบนี้เหมือนกันทั้งคู่ โดยในทาง quantum เราจะเรียกการอ่านว่าการทำ "Quantum Measurement"

แต่การทำ quantum measurement นั้นมีข้อจำกัดอยู่คือ เมื่อทำการวัดแล้ว ทุกๆ superposition จะสลาย (collapse) เป็นสถานะ0|0\rangleหรือ1|1\rangleเท่านั้น

อ้าว… ถ้าวัดแล้วเหลือแค่0|0\rangleหรือ1|1\rangleแล้ว superposition จะมีประโยชน์ยังไงล่ะ 🤔

ถ้าเราจำกันได้ สมการของ qubit จะอยู่ในรูปแบบของสองสถานะรวมกันใช่ไหมล่ะ?

ถ้าสมการมีผลลัพธ์ค่อนไปทางสถานะ1|1\rangleเมื่อเราทำการวัดหลายๆ ครั้ง เราก็จะได้สถานะ1|1\rangleในอัตราส่วนที่มากกว่าสถานะ0|0\rangleซึ่งถ้าเรามีการวัดที่มากพอก เราก็สามารถสรุปผลลัพธ์ออกมาได้

ดังนั้น ถ้าเราสามารถออกแบบอัลกอริทึมที่สามารถใช้ประสิทธิภาพการคำนวณแบบ 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 แล้วจะกลายเป็นสถานะ0|0\rangleหรือ1|1\rangleเท่านั้น

    • Superposition ที่มีสถานะฝั่งใดมากกว่า ก็มีความน่าจะเป็นที่จะกลายเป็นสถานะนั้นมากกว่า จึงต้องวัดหลายๆ ครั้งเพื่อยืนยันผลลัพธ์ที่ได้

    • ถ้าเราออกแบบ algorithm ดี ใช้การคำนวณ parallel คุ้ม ก็จะทำให้ process ได้ไวขึ้น คำตอบตกถูกมากขึ้น

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

Last updated

Was this helpful?