來自青少年之思,一個能解魔方機器人的誕生

一位自學成才的程式設計天才加入了技術愛好者的行列,他們將數字系統應用於終極模擬謎題


關於支援科學新聞報道

如果您喜歡這篇文章,請考慮訂閱我們的屢獲殊榮的新聞報道以示支援 訂閱。透過購買訂閱,您將幫助確保有關塑造我們當今世界的發現和思想的具有影響力的故事的未來。


魔方在 1980 年席捲美國時,它引發了人們對這種謎題的迷戀,這種迷戀一直持續到今天,甚至在魔方首次亮相幾十年後出生的粉絲中也是如此。不同的是,今天許多魔方愛好者不是嘗試在 10 秒內“速擰”來解決問題,而是構建機器人來為他們做這件事。這種對人工智慧的熱情帶來了額外的挑戰,不僅要解決謎題,還要建立一個能夠根據解決方案物理操作魔方的機器人。

對於 12 歲的康納·阿博特來說,構建一個解魔方機器人讓他有機會練習計算機程式設計技能,並向其他有成就的機器人制造者學習。阿博特的機器人還可以作為挑戰 10 歲弟弟瑞恩的速擰技術的競爭對手。兄弟倆都是在父親邁克爾·阿博特的介紹下接觸到這個謎題的,邁克爾·阿博特是通用電氣金融的一位高管,曾是 IBM 研究工程師。

康納·阿博特從閱讀有關魔方愛好者的文章中獲得了製作機器人的想法,這些人使用樂高 Mindstorms NXT 套件構建機器人來解決這個謎題。“我說,‘嘿,我有一個 NXT 套件,’”康納說,他是康涅狄格州新迦南本地人,今年秋天開學時將上八年級。對於不熟悉的人來說,Mindstorms 是一種樂高產品,它包括構建機器人所需的大部分元件,包括該公司的標誌性積木以及三個伺服電機、四個感測器(超聲波、聲音、觸控和光線)、齒輪和軸。

“起初我不知道 [Mindstorms] 可以用來解魔方,因為我認為它沒有足夠的電機,”康納說。這種情況在去年發生了改變,當時康納透過網路發現了一個機器人,該機器人由 Daniele Benedettelli(24 歲)用單個 NXT 套件構建,Daniele Benedettelli 是義大利錫耶納大學研究機器人技術和自動化的程式設計師。(Benedettelli 的機器人可以在 他的網站上看到。)“人們對樂高(因此是玩具)機器人可以如此輕鬆地解決如此複雜的謎題感到驚訝,”Benedettelli 說,並補充說,魔方已經成為“可以應用‘智慧和靈巧’來解決”的複雜問題的“象徵”。

當然,如果沒有關於如何解決謎題的明確說明,機器人就無法解決謎題。在軟體方面,康納使用了由德國達姆施塔特的數學和物理教師 Herbert Kociemba(55 歲)建立的免費魔方解算程式 Optimal Cube Solver in the Quarter Turn Metric (OPTIQTM)。Kociemba 對康納選擇使用 OPTIQTM 表示驚訝,因為該程式可能需要幾分鐘到幾小時才能找到解決魔方的“最佳”解決方案,具體取決於謎題被扭曲和轉動了多少次。他說,如果謎題使用 19 步或更少的步數打亂,該程式可以在“合理的時間內”計算出解決方案。

這對康納來說完全沒問題,他說他用 C++ 計算機程式語言編寫了自己的程式,以使 OPTIQTM 解算器與他的系統一起工作。康納的機器人和 Benedettelli 的機器人一樣,使用網路攝像頭讀取魔方的不同顏色(以及它們在打亂的魔方上的配置),然後將資料傳送到解謎軟體。

多年來,魔方愛好者一直在構建機器人來解決這個謎題,他們互相學習彼此的工作是很常見的。最早的 解魔方機器人 示例之一是由芝加哥菲爾德博物館的考古文物保護員 Jonathan Brown(45 歲)於 2001 年使用早期版本的 Mindstorm 建立的。

儘管康納也從其他幾位魔方愛好者的工作中受益,但他的程式設計能力引起了人們的關注。19 歲的特拉華大學計算機科學專業大二學生羅伯特·湯普森說,康納“顯然是一位精通 C++ 的程式設計師”,他本月早些時候在一個為期一週的計算機訓練營中向康納講授了 Java。“他一開始就談論 C++ 中的一些事情,而這些事情甚至在我的大學課程中都沒有涉及過。”

康納的機器人在與瑞恩的對決中表現如何?儘管康納付出了艱苦的努力,但機器人的最佳時間是 90 秒,在五次中只贏了瑞恩一次。瑞恩在人機對戰中的最佳時間是 75 秒,儘管康納說他弟弟後來將時間縮短到了 45 秒。(機器人獲勝的影片可以在 YouTube 上觀看,瑞恩復仇的影片也可以觀看。)

康納透過閱讀 Bradley Jones 和 Peter Aitken 編寫的《Sams Teach Yourself C in 21 Days》等書籍自學程式設計,他並沒有氣餒。他現在正在編寫自己的魔方解算軟體,最終取代他系統中的 Kociemba 軟體。他說,“我想使用我自己的演算法而不是別人的演算法的原因是因為它的複雜性,並且能夠說是我編寫了一個版本。”

© .