如何撰寫解3x3六面的魔術方塊程式(編號:1774)

請問如何撰寫解3x3六面的魔術方塊(Rubik's Cube)程式,
程式需求為輸入目前方塊各面對應的顏色組合,然後由程
式解出旋轉步驟,請問有演算法可用嗎?
謝謝.