คอมพิวเตอร์ DNA ที่เป็นประเด็นกันอยู่ตอนนี้ หมายถึงเครื่องคำนวณที่ใช้ DNA มาเป็นกลไกหลักในการทำงาน คือ DNA ของสิ่งมีชีวิตจริงๆ เนี่ยะแหละ ไม่ใช่พวก Dynamics Network Architecture หรือ Digital Numerical Automatic (หลังๆ มานี่ตัวย่อเยอะมาก จนผมเริ่มหัดเสกคำย่อใหม่ๆ จนเป็นนิสัย) แต่เป็น Deoxyribo Necleic Acid ของเราเอง ความพยายามเอา DNA ซึ่งเป็นสารชีวภาพมาช่วยการคำนวณได้นั้นนับเป็นเรื่องที่น่ามหัศจรรย์อย่างยิ่ง ยิ่งพิสูจน์ได้ว่าน่าจะเร็วว่าคอมพิวเตอร์ซิลิคอนอีกต่างหาก ก็ยิ่งน่ามหัศจรรย์เข้าไปใหญ่ ประมาณว่าแม้แต่เส้นผมของเรายังเร็วกว่าเพนเทียมทรี แต่ความจริงมีรายละเอียดข้างในให้ติดตามอีกมาก อย่าเพิ่งทึกทักแบบนั้น
ความจริงถ้าพวกเราได้ติดตามข่าวคราววงการคอมพิวเตอร์มาเป็นเวลานาน ก็จะพบว่าไม่ใช่เรื่องแปลกใหม่ที่จะมีคนออกมาทำนายว่า Moore's Law อาจจะไม่เป็นจริงอีกต่อไป คือพูดกันมาหลายครั้งแล้ว คนที่ทักคนแรกๆ ก็คงจะอารมณ์ประมาณว่า วิศวกรไม่น่าจะลดขนาดได้ทันตามกำหนดการณ์นั้นทุกครั้งไป หรือน่าจะมีสักครั้งที่ติดปัญหาอะไรที่น่าจะแก้ไม่ตก แต่ก็น่าแปลกอีกเช่นกันที่เหมือนว่ากฎนี้จะเอาตัวรอดมาได้ทุกครั้งในช่วงหลายปีที่ผ่านมา
แต่ในความคิดของผม กลับมองว่าความจริงแล้วกฎของ Moore นั้นไม่ได้เป็นกฎที่คาดการณ์เทคโนโลยี คือ ไม่ได้ทำนายว่านักวิทยาศาสตร์จะสามารถเพิ่มพลังให้กับซิลิคอนได้สองเท่าทุก 18 เดือน แต่เป็นกฎที่บอกใบ้นักการตลาดทราบว่า ถ้าคุณเพิ่มพลังให้กับซิลิคอนทุกๆ 18 เดือน รับรองว่าอัตรานี้ขายของดีที่สุด ถ้าเพิ่มเร็วกว่านี้ผู้ซื้ออาจจะเกิดอาการงงและปรับตัวไม่ทัน ส่งผลให้ระงับการตัดสินใจซื้อ (เหมือนกับที่เรามีแผ่น MP3 เยอะและเร็วมาก จนเราไม่มีความคิดจะตามเก็บให้หมดอีกต่อไป) แต่ถ้าปรับช้ากว่านี้ก็จะไม่มีแรงจูงใจพอให้ซื้อเครื่องใหม่ ทำนองว่าเครื่องเราก็ไม่เห็นจะแตกต่างกับเครื่องใหม่ซักเท่าใด ซึ่งประชาชนชาวซิลิคอนวัลลี่ย์ก็ดูเหมือนจะปฏิบัติตามกฎข้อนี้กันด้วยดีเป็นเวลานาน ผลก็คือพวกเราก็ซื้อเครื่องใหม่กันเป็นว่าเล่น โปรแกรมสำเร็จรูปก็อ้วนขึ้นอย่างรวดเร็ว จากแผ่นดิสค์แผ่นเดียวเก็บได้หลายโปรแกรม กลายเป็นโปรแกรมละหลายแผ่น และในที่สุดก็กลายเป็นโปรแกรมละหลายซีดี
คิดดูซิครับว่าอะไรจะบังเอิญปานนั้น ที่อินเทลสามารถเพิ่มซิลิคอนลงในซีพียูของตนได้สองเท่าทุกๆ 18 เดือนมาเป็นเวลา 20 กว่าปีแล้ว ความจริงทีม R&D ของอินเทลทำการบ้านล่วงหน้าไปไกลกว่านั้น แต่อินเทลเลือกที่จะทยอยปล่อยหมัดของตนในอัตราที่เหมาะสม แต่มาช่วงหลังนี้ นักทำนายให้เหตุผลที่ค่อนข้างจะน่าฟังว่าการพัฒนาด้วยซิลิคอนน่าจะมาถึงกำแพงจริงๆ ไม่ว่าจะเป็นเรื่องความละเอียดในการสร้างทรานซิสเตอร์ และสายเชื่อมสัญญานในซีพียูอาจจะมาถึงระดับที่ไม่น่าจะเล็กลงกว่านี้ได้อีก เพราะข้อจำกัดคือ ไม่สามารถเล็กกว่าความยาวคลื่นของรังสีเอ็กซ์เรยได้ หรือจะเป็นข้อจำกัดเรื่องความเร็วสัญญาณคล็อกของซีพียูซึ่งโยงไปกับเรื่องขนาดของชิป ฯลฯ
เมื่อปี 1994 มีนักวิจัยคนหนึ่งชื่อว่า Professor Leonard Adleman จากมหาวิทยาลัย Southern California ท่านนี้คือผู้ร่วมสร้างอัลกอริทึมเข้ารหัส RSA อันโด่งดัง ตัว A ก็คือ Adleman นั่นเอง นอกจากนั้นท่านยังเป็นคนคิดคำว่า "ไวรัสคอมพิวเตอร์" ขึ้นเป็นคนแรก เพราะลูกศิษย์ของท่านเอาโปรแกรมมาให้ดูในห้องเรียนของท่านในปี 1983 บทเลกเชอร์ในหนังเรื่อง Sneaker ที่เกี่ยวกับเทคนิคขั้นสูงในการแยกตัวประกอบ เพื่อใช้ในการแฮกก็เป็นฝีมือของท่านอีก ท่านเล่าให้ฟังว่าตอนทำเลกเชอร์นี้อุตส่าห์วาดในเครื่องแมคเสียสวยงามใช้เวลาตั้งหลายชั่วโมง แต่ผู้กำกับกลับอยากได้เป็นลายมือหวัดๆ ทำให้ถึงกลับรำพึงออกมาว่า อยากได้หวัดๆ ก็ไม่บอกมีตั้งเยอะ ไม่ต้องเสียเวลาทำ
แต่งานนี้ท่านเป็นคนแรกที่สร้างแนวคิดว่า ความจริงแล้ว DNA ที่เป็นพิมพ์เขียวของสิ่งมีชีวิตนั้นสามารถนำมาสร้างเป็นเครื่องคำนวณได้ แรกๆ ความคิดนี้ดูเหมือนจะเป็นความคิดแผลงๆ ที่พยายามทำเรื่องง่ายให้เป็นเรื่องยาก แต่พอเห็นวิธีการจริงๆ แล้ว โลกทั้งโลกก็ต้องตะลึงกับผลที่ออกมา เพราะกลายเป็นว่า DNA มีพลังการคำนวณที่น่าตกใจมาก มากจนเล็งเห็นแนวโน้มว่าอาจจะเป็นคอมพิวเตอร์ยุคต่อไปเลยก็ได้ จากนั้นเป็นต้นมา งานวิจัยที่พยายามเอาทั้ง DNA หรือ RNA มาช่วยคำนวณก็แตกตัวให้เห็นมากมาย ว่ากันว่าปัจจุบันมีมากถึง 15 สายแล้ว เราจะมาดูตัวอย่างกันว่าโลกนี้ไปถึงไหนกันบ้าง ขลุกอยู่กับม็อบเขื่อนซะนาน ต้องเปิดตาซะหน่อย
เปิดตัวครั้งแรก
อย่างที่กล่าวไปแล้วว่า DNA นั้นเริ่มถูกจุดประกายเป็นครั้งแรกโดยฝีมือของนาย Adleman และการจุดประกายนั้นนับได้ว่าเป็นการเปิดศักราชของสาขาวิชานี้เลย ดังนั้น Adleman ก็ต้องกลายเป็นบิดาไปอย่างไม่มีปัญหา โดยโจทย์แรกที่เขานำมาตั้งเป็นตัวอย่างก็คือปัญหา Traveling Salesman ที่เป็นปัญหา Classic ของคนเรียนวิชาอัลกอริทึม ปัญหานี้มีอยู่ว่า มีเมืองอยู่จำนวนหนึ่ง เช่น A ถึง F มีระยะเชื่อมต่อกันแตกต่างกันไป เซลล์แมนคนหนึ่งต้องเดินทางไปขายของทุกเมือง จะเลือกเดินทางอย่างไรจึงจะได้ทางสั้นที่สุด ดังนั้นคำตอบที่เป็นไปได้ถึงมีอาจเป็นตั้งแต่ ABCDEF ไปจนถึง FEDCBA
ลักษณะปัญหาแบบนี้เป็นปัญหาเชิงทฤษฎีกราฟ ซึ่งการแก้ปัญหามักใช้อัลกอริทึมเดียว (ผมใช้คำว่ามักจะ เพราะไม่อยากปิดทางอัจฉริยะชาวไทย ด้วยการใช้คำว่า "ต้อง") คือลองผสมดูทุกๆ วิธีที่เป็นได้ แล้วเลือกเส้นทางที่ดีที่สุด ในวงการเรียกวิธีแบบนี้ว่า "bruce-force" แปลเป็นไทยได้ว่า "แรงควาย" ลักษณะเดียวกับการทดลองเดาพาสเวิร์ด ถ้าเป็นการคำนวณโดยใช้คอมพิวเตอร์ธรรมดาก็สามารถทำได้ แถมบอกได้เลยด้วยว่าจะใช้เวลาในการหาคำตอบนานเท่าใด ปัญหาที่เกิดขึ้นก็คือ ถ้าเมืองมีซัก 6 เมืองก็ไม่เท่าไร แต่ถ้ามีซัก 100 ละก็ มันบอกว่าขอเวลาคิดซักล้านปี คอยหน่อยนะ !?!?!
แต่กับการใช้ DNA มาแก้ปัญหานั้นจะต่างออกไป สิ่งที่เป็นประเด็นสำคัญประเด็นแรกเลยก็คือ เราจะสามารถโมเดลปัญหาให้มาอยู่ในรูปของ DNA ได้อย่างไร? เราจะเอา DNA มาเกี่ยวกับเซลล์แมนได้อย่างไร? คำตอบของ Adleman ออกมาดังนี้ครับ คือ ขั้นแรกต้องทราบก่อนว่าข้อมูลในสายพันธุกรรมนั้นจะประกอบด้วยหน่วยพื้นฐาน 4 ตัวด้วยกันคือ A, T, C และ G (Adenine, Thymine, Cytosine และ Guanine) หลายคนอาจจะเห็นทันทีว่าอย่างนี้ก็เป็นเลขฐานสี่นั่นเอง เหมือนกับที่คอมพิวเตอร์ในปัจจุบันเป็นเลขฐานสองที่ประกอบด้วย 0 กับ 1 ดังนั้นการแทนชื่อเมืองด้วยรหัส ATCG ก็ไม่น่าจะยาก