สวัสดีครับ วันนี้ทางทีม QuTE จะพาไปทำความเข้าเกี่ยวกับ ควอนตัมคอมพิวเตอร์ อย่างง่ายๆกันครับ
ประเด็นที่ 1 คอมพิวเตอร์ในปัจจุบันมีหลักการทำงานพื้นฐานอย่างไร
การทำงานของคอมพิวเตอร์ในปัจจุบันคือการประมวณผลของข้อมูลที่อยู่ในรูปของ บิต ได้แก่ 0 และ 1 ในหน่วยประมาณผลนั้นจะประกอบไปด้วยชิป (Chip) ในชิปนั้นจะประกอบไปด้วยโมดูลพื้นฐาน ในโมดูลนั้นประกอบข้ึนมาจากลอจิกเกตชนิดต่างๆ ได้แก่ AND GATE, OR GATE, NAND GATE, XOR GATE, NOR GATE และ NOT GATE ส่วนเจ้าลอจิกเกตเหล่านี้ประกอบขึ้นมาจากทรานซิสเตอร์ แสดงดังรูปที่ 1

โดยเจ้าทรานซิสเตอร์มีหน้าที่ในการเปิดปิดสัญญาณไฟฟ้า เหมือนที่บอกไปว่าเมื่อนำทรานซิสเตอร์มีประกอบกันในรูปเฉพาะบางอย่างทำให้เราสามารถสร้างลอจิกเกตออกมาได้ ดังรูปที่ 2


และแน่นอนว่าทำให้เราสามารถดำเนินการกับข้อมูลได้ตามรูปที่ 3 (https://www.instructables.com/id/Basic-Logic-Gates/)
เมื่อเรานำเอาเกตในรูปแบบต่างๆนำมาประกอบในรูปแบบจำเพาะบางอย่างทำให้เราได้โมดูลและสามารถทำการบวกเลข 2 ตัวเข้าด้วยกันได้ ดังรูปที่ 4

และแน่นอนว่าเมื่อเราบวกเลขได้ เราก็สามารถทำการคูณเลขได้เช่นได้ดังรูปที่ 5

หากเราลองจิตนาการ การดำเนินทางคณิตศาสตร์ในคอมพิวเตอร์นั้นโดยพื้นฐานง่ายมากเปรียบเหมือนมีเด็กเล็กๆมานั้งบวกลบคูณตัวเลขให้กับเราดังรูปที่ 6

หากเราขยายขนาดไปให้มีเด็กเล็กๆเต็มห้องเรียน เมื่อร่วมมือกันพวกเขาก็สามารถคำนวนอะไรที่ยากๆได้ ดังรูปที่ 7

แต่การเพิ่มเด็กๆเข้าไปเหมือนกับการที่เราต้องเพิ่มจำนวนชิป ภาพง่ายๆในพื้นที่ห้องเท่าเดิมแต่เราเพิ่มจำนวนเด็กๆเข้าไปอีกๆ เรื่อย เพื่อให้คอมพิวเตอร์ทำงานได้เร็วขึ้น แนวโน้มการเพิ่มเข้าเร็วในการทำงานของคอมพิวเตอร์นี้เป็นไปตามกฏของมัวร์ (Moore’s Law) ตามชื่อ กอร์ดอน มัวร์ (Gordon E. Moore) ผู้ที่ทำการบุกเบิกบริษัทอินเทล (Intel) เขาทำนายไว้ว่า “ปริมาณของทรานซิสเตอร์บนวงจรรวม โดยจะเพิ่มเป็นเท่าตัวประมาณทุก ๆ สองปี” ตามรูปที่ 8

ประเด็นที่ 2 ขอต้อนรับเข้าสู่โลกของควอนตัม !
ขนาดของทรานซิสเตอร์ในปัจจุบันเท่ากับ 14 nm ซึ่งเล็กว่าไวรัส HIV

และก็เล็กกว่าเซลล์เม็ดเลือดแดงหลายเท่านัก !!

อย่างที่ได้กล่าวไปก่อนหน้านี้ว่าหากกฏของมัวร์ยังคงดำเนินต่อไปเรื่อยๆ คือ ย่อขนาดของทรานซิสเตอร์ให้เล็กลงเรื่อยๆ เมื่อถึงจุดๆหนึ่ง ผลทางควอนตัมฟิสิกส์ที่เรียกว่า อุโมงค์ควอนตัม (Quantum tunnelling) จะเข้ามามีบทบาท (รูปเปรียบเทียบที่ 11) ทำให้อิเล็กตรอนกระโดนกันไปมาระหว่างทรานซิสเตอร์แทนที่จะไหลของใครของมัน ซึ่งไม่ดีแน่นอน

ดังนั้นแนวทางใหม่จึงมีความจำเป็น อย่างว่าในเมื่อควอนตัมสร้างปัญหา เราก็แก้ปัญหาด้วยควอนตัม (หนามยอกต้องเอาหนามบ่ง)
ประเด็นที่ 3 พฤติกรรมอันแปลกประหลาดทำให้เกิดบิตแบบใหม่เรียกว่า “ควอนตัมบิต”
โลกควอนตัมนั้นมีพฤติกรรมที่แตกต่างและไม่เป็นไปตามสามัญสำนึกของเราต่อโลกขนาดใหญ่รอบหลายอย่าง อย่างแรกคือ อนุภาคควอนตัม เช่น อิเล็กตรอน นั้นอยู่ในสภาวะซ้อนทับ (superposition) หากอิเล็กตรอนอยู่ภายใต้สนามแม่เหล็กภายนอกที่ชี้ไปในทิศ +z อิเล็กตรอนนั้นมีสมบัติติดตัวอันหนึ่งเรียกว่า สปิน (Spin) ซึ่งสปินของอิเล็กตรอนจะวางตัวตามทิศของสนามแม่เหล็กโดยมี 2 รูปแบบคือ สปินอัป(วางตัวตาม) และ สปินดาวน์(วางตัวตรงข้าม)
โดยที่ α และ β เป็นจำนวนเชิงซ้อนที่เกี่ยวข้องกับความน่าจะเป็นดังสมการด้านบน เช่น หากสถานะอยู่ใน
นั้นหมายความว่า หากเราทำการวัดสถานะสปินของอิเล็กตรอน มีโอกาส 50% ที่จะได้สปินอัป และ 50% ที่จะได้สปินดาวน์ #สถานะสปินที่ออกมาจากการวัดนั้นเกิดขึ้นแบบสุ่ม โอกาสที่จะออกมากน้อยขนาดไหนขึ้นกับตัวเลขสัมประสิทธิ์หน้าสถานะนั้นๆ#
จากสมการที่ (1) เราสามารถบิตแบบควอนตัมได้ หากเราให้ |0>=|up> และ |1>=|down> ดังนั้นสถานะควอนตัมเขียนใหม่ได้เป็น
เราเรียกสถานะด้านบนว่า “คิวบิต” (Qubit) ซึ่งอยู่ในสถานะซ้อนทับระหว่าง |0> และ |1> พร้อมๆกัน เราสามารถแสดงบ้าน 2 มิติของคิวบิตได้ดังรูปที่ 12

หากปรับค่า α และ β ทำให้เราได้สถานะใหม่จำนวนมากมายที่วางตัวอยู่ตามแนวเส้นรอบวงของวงกลม นอกจากวิธีในการแสดงที่อยู่ของคิวบิตดังรูปที่ 12 แล้วเรายังมีอีกทางเลือกที่เรียกว่า ทรงกลมบล๊อค (Bloch sphere) ดังรูปที่ 13

สถานะคิวบิตเขียนใหม่ในรูปของตัวแปรพิกัดทรงกลมดังนี้
โดยสถานะ |0> อยู่ที่ขั้วเหนือและ |1> อยู่ที่ขั้วใต้
หากตอนนี้เราเพิ่มจำนวนคิวบิตเข้าไปเป็น 2 คิวบิต ดังนั้นสถานะของระบบเขียนได้เป็น
หรือ
จริงเราเขียนแบบย่อได้ดังนี้ |0>|0>=|00> ดังนั้นเราจะได้ระบบอยู่ในสภาวะซ้อนทับของ 4 สถานะย่อย ได้แก่ |00>, |01>, |10> และ |11> (หากเป็นกรณีบิตปกติเราจะไม่ได้แค่ 1 ใน 4 สถานะเท่านั้น)
ตอนหากเราเพิ่มจำนวนคิวบิตเข้าไปอีกเป็น 4 คิวบิต ดังนั้นสถานะย่อยทั้งหมดที่เป็นไปได้คือ 16 สถานะย่อยดังรูปที่ 14

หากเรามีทั้งหมด N คิวบิตนั้นหมายความว่าเรามีจำนวนสถานะย่อยทั้งหมด 2^N สถานะย่อย ลองคิดว่าหากเรามี 100 คิวบิตหรือมากกว่านั้นเราจะมีสถานะย่อยเท่าไร เรียกว่ามหาศาลที่เดี่ยว !
# การสร้างคิวบิตนั้นสามารถทำได้หลายรูปแบบ ดังตัวอย่างที่ได้กล่าวไปนั้นใช้สปินของอิเล็กตรอน นอกนั้นเราอาจจะใช้สถานะโพราไลเซชันของโฟตอนก็ได้ หรือสถานะพลังงานของอิเล็กตรอน หรืออื่นๆดังตารางในรูปที่ 14.1

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

ตัวอย่างสถานะพัวพันทางควอนตัมที่หลายคนรู้จักกันดีคือ สถานะของเบลล์ (Bell states)
ซึ่งทั้งหมดอยู่ในสถานะพัวพันสูงสุด (maximally entangled states) สำหรับระบบคู่ (Bipartite system) หากเราลองพิจารณาสถานะแรกซึ่งอยู่ในสภาวะซ้อนทับระหว่าง |00> และ |11> นั้นหมายความว่า หากอนุภาคตัวที่ 1 มีสถานะ 0 ตัวที่ 2 ก็อยู่ในสถานะ 0 ด้วยเช่นกัน หรือหากตัวที่ 1 อยู่สถานะ 1 ตัวที่ 2 ก็อยู่ในสถานะ 1 เหมือนกัน เมื่อเราทำการวัดสถานะของอนุภาคตัวที่ 1 (เราสนใจที่ตัวที่ 1 หรือจะเลือกตัวที่ 2 ก็ได้) แล้วผลของการวัดออกมาให้สถานะ |00> นั้นหมมายความว่า เรารู้ว่าอนุภาคที่ 1 อยู่ในสถานะ 0 และอนุภาคที่ 2 อยู่ในสถานะที่ 0 โดยที่เราไม่ต้องไปทำการวัดอนุภาคที่ 2 เลย ! (เอาไว้ทางทีมจะมาขยายความเรื่องนี้อย่างละเอียดอีกทีภายหลัง)
เจ้าความพัวพันนี้ถือว่าสำคัญมากๆเพราะเครื่องปรุงหลักในการที่เราจะดำเนินกระบวนการทางควอนตัมหลายๆอย่าง เช่น การเข้ารหัสทางควอนตัม หรือ ควอนตัมเทเลพอเทชัน เป็นต้น
ประเด็นที่ 4 การดำเนินการกับคิวบิตเพื่อให้ทำภาระกิจบางอย่าง
แน่นอนว่าสำหรับคอมพิวเตอร์ที่เราใช้ๆกันนั้นเราทำการส่งบิตเข้าไปยังลอจิกเกตแบบต่างๆเพื่อให้บรรลุภาระกิจ ดังนั้นสำหรับกรณีควอนตัมก็เหมือนกันเราก็จะมีควอนตัมลอจิกเกตพื้นฐานและอื่นๆเพิ่มเติม เราสามารถมองได้ว่าการที่เราส่งคิวบิต(สถานะซ้อนทับ)เข้าไปผ่านควอนตัมเกตนั้นทำให้เกิดการบิดไปของคิวบิต(ได้สถานะซ้อนทับใหม่เนื่องจาก สปส เปลี่ยนไป) ดังรูปที่ 15

หากเราควอนตัมเกตแบบต่างๆมาประกอบกันเราจะได้วงจรควอนตัม(รูปแบบของวงจรขึ้นกับเราจะทำอะไร) ดังรูปที่ 16

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

จากรูปเราเริ่มต้นจากสถานะ |010001> จากนั้นเราส่งสถานะผ่านควอนตัมเกตอันแรกทำให้เกิดสถานะซ้อนทับของ |010100>, |111001>, |001110> และ |101100> ด้วย สปส หน้าแต่ล่ะสถานะค่าหนึ่งๆ จากนั้นก็ส่งผ่านควอนตัมเกตอีกครั้ง และอีกครั้ง และอีกครั้ง สุดท้ายเราจะได้สถานะซ้อนทับของ |011101>, |011011>, |001010>, |101100>, |101001>, |010100> และ |111001> จากนั้นเราก็ทำการวัดเพื่อให้ได้สถานะออกมา แต่ประเด็นคือผลลัพธ์จะออกมาอย่างสุ่มตามค่าความน่าจะเป็นที่กำกับอยู่ อันนี้จริงเราสามารถปรับจูนเฟสของสถานะให้ค่าความน่าจะเป็นของสถานะที่เราต้องการนั้นมีค่าสูงๆได้

โอเคตอนนี้เราลองคิดแบบปกติดูแสดงดังรูปที่ 18 เราเริ่มต้นจาก 010001 เราส่งผ่านเกตไปเรื่อยๆสุดท้ายจะให้ 011101 หากเราต้องการได้ผลลัพธ์อย่างอื่นก็ต้องทำใหม่อีกครั้ง
ประเด็นที่ 5 แล้วควอนตัมคอมพิวเตอร์น่าจะทำอะไรได้บ้าง
แน่นอนว่าการที่เราสร้างควอนตัมคอมพิวเตอร์ขึ้นมาเพื่อช่วยในการแก้ปัญหาที่คอมพิวเตอร์ปกติทำไม่ได้ ปัญหาแรกคือ ปัญหาแยกตัวประกอบของจำนวนเฉพาะในการเข้ารหัสแบบ RSA ในปัจจุบันการเข้ารหัสแบบ RSA นั้นถือได้ว่ามีความปลอดภัยสูงเพราะมีกุญแจ 2 ชุด คือ กุญแจสาธารณะ (public key) และ กุญแจส่วนตัว(private key) ดังรูปที่ 19

หากคนต้องการดักเอาข้อความต้องรู้กุญแจส่วนตัว และหากเขาต้องการเดาว่ากุญแจส่วนตัวคืออะไรจากข้อมูลของกุญแจสาธารณะ เขาต้องการหาว่าตัวเลขเช่น 15 ประกอบขึ้นมาจากการคูณของจำนวนเฉพาะ 2 ค่าอะไรบ้าง สำหรับ 15 นั้นง่ายมากคือ 3*5 หรือดังในรูปที่ 20 แต่หากว่าจำนวนตำแหน่งของตัวเลขเพิ่มมากขึ้นมากๆ ปัญหานี้ไม่ใช้ปัญหาที่ง่ายเลย เช่น
108123048120091723472140979310934791237981234790123498123409781234908712398712398471234789
123497812349781234987123498721349078123498712349780123479812378912348971234781275671259078
เป็นต้น !

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

ทั้งนี้ยังมีด้านอื่นๆอีก เพิ่มเติมดูได้ที่ 1 และ 2
ประเด็นที่ 6 เราจะสร้างควอนตัมคอมพิวเตอร์ได้สำเร็จจริงเหรอ และมันจะเจ๋งจริงๆเหรอ
จริงๆตอนนี้เราเถียงไม่ได้เลยว่าใครก็พูดถึงควอนตัมคอนพิวเตอร์โน้นนี้นั้น มันจะทำโน้นทำนี้ได้ หรือว่าง่ายๆว่ามีการประโคมข่าวทางการตลาดมากๆ และแน่นอนว่าเม็ดเงินมหาศาลก็จะไหลลงมายังงานวิจัยทางด้านนี้ แต่ก็ไม่ใช่ว่าทุกคนจะเห็นด้วยเสมอได้เพราะมีคนเห็นต่าง ซึ่งผู้อ่านเพิ่มได้จาก ตรงนี้เลยครับ ซึ่งประเด็นหลักๆคือ สิ่งรบกวน (Noise) นั้นเอง หรือแม้แต่หากเราสร้างสำเร็จแล้วก็ไม่ได้หมายความมันจะสุดยอดเหมือนไปกว่าคอมพิวเตอร์ปกติไปหมดซะทุกอย่าง อ่านเพิ่มเติมจาก ตรงนี้เลยครับ
อันนี้รายชื่อบริษัทต่างๆที่มีการลงทุนและทำวิจัยทาด้านคอมพิวเตอร์หรือเทคโนโลยีที่เกี่ยวข้อง
ยังไงเราก็รอดูกันต่อไปครับว่าสุดท้ายเราจะมีควอนตัมคอมพิวเตอร์หรือไม่ หากมี หน้าตาจะเป็นอย่างไร จบด้วยภาพเครื่องต้นแบบควอนตัมคอมพิวเตอร์ของ IBM เครื่องเท่าห้อง !

ลองนึกเปรียบเทียบกับคอมพิวเตอร์เครื่องแรกของโลกดูว่าต่างกันมั้ย !

อ้างอิง ภาพสวยๆเอามาจากคลิปอธิบาย 2 อันนี้เลยครับ เข้าไปฟังกันได้
[1]
[2]
เรียบเรียง
สิขรินทร์ อยู่คง (QuTE Co-Founder)
วิทยาลัยเพื่อการค้นคว้าระดับรากฐาน (Institute for Fundamental Study: IF)
มหาวิทยาลัยนเรศวร