将棋のプログラムは作った経験がありませんが。 ある時点の状況では「何をもって最適なのか」が判断できませんから、 遺伝的アルゴリズムのような「最適化問題」とは違う。 だとすると単純な「ルート検索」の問題であり、これって、 単純な再帰アルゴリズムとコンピューターのパワー(速度、記憶容量) さえあればできそうな気がするのですが、そう簡単な話ではないのかな。 分岐するルートの数が無限にあり過ぎて、ディスク容量に限界が来る だろうし、ある程度プログラムの制作者が条件分岐を入れてやらないと、 再帰スタックを保持するのが困難だろうか。 少なくとも、プロと対決する場合、「定石」のような「パターン化」は あまり意味を持たないと思う。 おそらく、プログラマー側は、棋士とは間逆の発想(推論)が必要で、 如何に不要・無駄なルートを潰して、コンピューターの負担を減らすか が肝になる気がする。 その場合、戦況(有利、不利)を何かの基準で定量化する必要があると 思うが、何を変数とするのだろうか。 まあ、将棋プログラムなど沢山転がってるので、 わざわざ作る気もないですけどね。 でもそう考えると、人間の頭脳って凄いですね。 目先の問題を処理することだけでなく、処理した経験から副産物として、 さらなる高次の哲学(=経験則)まで生み出すことができる。
チャンネルに入会
フォロー
孫崎享チャンネル
(ID:9443972)
将棋のプログラムは作った経験がありませんが。
ある時点の状況では「何をもって最適なのか」が判断できませんから、
遺伝的アルゴリズムのような「最適化問題」とは違う。
だとすると単純な「ルート検索」の問題であり、これって、
単純な再帰アルゴリズムとコンピューターのパワー(速度、記憶容量)
さえあればできそうな気がするのですが、そう簡単な話ではないのかな。
分岐するルートの数が無限にあり過ぎて、ディスク容量に限界が来る
だろうし、ある程度プログラムの制作者が条件分岐を入れてやらないと、
再帰スタックを保持するのが困難だろうか。
少なくとも、プロと対決する場合、「定石」のような「パターン化」は
あまり意味を持たないと思う。
おそらく、プログラマー側は、棋士とは間逆の発想(推論)が必要で、
如何に不要・無駄なルートを潰して、コンピューターの負担を減らすか
が肝になる気がする。
その場合、戦況(有利、不利)を何かの基準で定量化する必要があると
思うが、何を変数とするのだろうか。
まあ、将棋プログラムなど沢山転がってるので、
わざわざ作る気もないですけどね。
でもそう考えると、人間の頭脳って凄いですね。
目先の問題を処理することだけでなく、処理した経験から副産物として、
さらなる高次の哲学(=経験則)まで生み出すことができる。