HOME | ドキュメント |  ブログ  |  BBS  |  瓦版  | 将棋プロジェクト |  物置小屋   

ドキュメント 象歩 Web瓦版
 BBSボード RDF
こんにちは (23)
おためし板 (321)
質問箱 (94)
テスト (30)
You散歩 (4)
建築 DIY (6)
MTB (32)
(9)
節電対策 (2)
このサイトに関する話 (186)
Linux (396)
PC用ハードウェア (6)
Vine Linux 野良系 (64)
PC 工作 (31)
ドローン (0)
自家製GAFA (0)
BBS の改良 (105)
Vine Seed (520)
Zope とプロダクト (95)
Web の利用技術 (131)
DB とファイルシステム (63)
Python と C/C++ と... (29)
Zopeプロダクト開発メモ (3)
UTF-8 化 (42)
Mail 環境 (8)
COREBlog (109)
Zope3 (51)
Windows 64bit (19)
Mac (2)
Squeak スクイーク (67)
Django ぶらり一人旅 (3)
64bits (52)
Mono 思いにふける (10)
Mint Linux (8)
CentOS (2)
ディスクトップ (4)
象歩将棋 (478)
将棋よもやま (210)
サイトのデザイン (31)
心配な話 (66)
うそ (21)
うそ総集編 (0)
昔のゲストブック (20)
ボート部 (23)
Web 日記 (199)
 スパム
逮捕しる (20)
スパムお溜り (47)
ごみ箱 (6)
 リンク
kiyoさんのサイト
ペンタ郎の漫漕ブログ
端艇部員日記
TIT漕艇部の練習動画 @YouTube
墨堤の雄 @FaceBook
ペンタ(五大学ミドル) @FaceBook
Facebook
Vine Seed パッケージビルド状況
Vine Linux パッケージ情報
VineLinux バグトラッキングセンタ
VineSeed 開発用 Trac
VineSeed Specs
RPMパッケージの作成方法
Linux Standard Base
Planet Vine
Vine Linux ユーザーフォーラム
Vine Users ML アーカイブ
VineSeed ML アーカイブ
twitter#VineLinux
勝手に将棋トピックス
詰将棋おもちゃ箱

象歩将棋

Webと将棋で何か具体的なもの作って行こうとしてます。


全476件 - 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
407  shu  2007/11/11 23:10 id: 3BVR6NRi4pQ  prob: 2.5%
フィクションですが
宇宙歴0x07df年4月1日ダーウィン将棋マッチを開催します。ルールは以下の通り。
; 参加希望者は自分の "代理思考モデル" を期日までuploadしてください。
; なお対戦の結果は公開されますが、思考モデルは公開されません。
このシナリオは思考モデルをプログラムと考えれば現在でも実現可能です。

ではルールを次のように置き換えたらどうなるでしょう。
; 参加者は "自分の思考モデルX" と "相手の思考モデルY" を期日までuploadしてください。
; 思考モデルX,Yは一般公開されているものを含め自由に指定することができます。
; なお対戦の結果と思考モデルは一般に公開します。

先手は自分の手番の時、自分の思考モデル AX を使い、次の手は AY を使い読みを進めます。
後手は自分の手番の時、自分の思考モデル BX を使い、次の手は BY を使い読みを進めます。
つまり A が負けたら AY を BX に置き換えて AX を教育しなおせば上達できるかもしれない。
ん〜なんかうまく説明できないなー;;
406  pon  2007/11/11 08:15 id: ou/hhkgTDac  prob: 0.5%
>一人将棋
同じような幼少の頃の思いです。
私の場合は一人詰め将棋と一人将棋観戦でした。(T_T)

将棋プログラムがプロを超えても、それが人を超えることにならない
このことは誤解されやすいですが、所詮、そのプログラムは一つの
ルール上で強くなるだけでそれ以上のものではないと考えればわかり
易いと思います。

一つのルール上で、ゲームの目的が勝つことであれば、下記の昔話が
語るとおりです。成長ロジックの優れたプログラムが勝つことになり
ます。プログラムが別のルールを創造ようにするためには、自然界の
乱数を入力する必要があるでしょう。

ただ、修ちゃんの言ってる意味では、長手数で勝つことや詰ませない
ことなどのパラメータを持たせればプログラム同士の面白い戦いを楽
しめそうです。^^;

405  shu  2007/11/07 22:46 id: 3BVR6NRi4pQ  prob: 0.0%
強いか弱いかでは無く...
僕が子供のころ回りに将棋の強い人が居なかったんですが、
将棋が好きだったのでしょうがなく一人で将棋指してたなんてことがありました。
自分が考えた手だけだと、ほんとつまらないと思いました (T_T)

> プログラムは擬似乱数しか作れない
今は各ソフトが独自に評価関数とかモデルを持ってますよね、
実際はわかりませんが、先手と後手については同じロジックで判断してる気がします。
でも将棋の解が現実的に無いとすれば、先手と後手は別人格と考えた方が自然だと思います。
乱数を持ち出さなくても組み合わせ的なそれゆえ複雑で面白い状況が実現されると云う発想です。
404  pon  2007/11/07 12:10 id: ou/hhkgTDac  prob: 0.2%
>後手番は誰が考えるのか?
30年ほど前になりますか、酒席で熱く語ったことがあります。

私 「コンピュータは人を越えられるかな~」
M氏「そりゃあんた、無理よ」
私 「ふーん、そんなもんかな~」
・・・以下続く

要約すると、
 ・プログラムを作るのは人なので、プログラムが人を超えることはない。
 ・プログラムは擬似乱数しか作れない。
 ・プログラムAがプログラムBを作ったとしても自然界の乱数を入力しない
  限り、プログラムBはプログラムAを超えることはない。
程度の話だったと思います。当時、プログラムどうしがネットワークを介して
互いに知恵を付けていくようなSFが流行でした。

403  shu  2007/11/02 23:57 id: 3BVR6NRi4pQ  prob: 10.7%
後手番は誰が考えるのか?
二手目を考えるのは誰かってことなんですが、
指した人と同じものが考えるのじゃ面白くありませんよね。
そんな将棋はつまらん。

先手 B は後手キャラ W を内包し読みを進めるけど、実際の相手は W' なので変化が生じて予測通りにはいかない。
そして勝負の結果、B は W' を取り込むけど W' は次の対局では W" に進化してるはず。

つまり先手は (B と過去の W) を手がかりに読み、後手は (W と過去の B) をもとに対戦することが普通。
その結果を見て B と W は進化を繰り返すことになりますが、
そういう過程を実現するには B なり W のモデルが必要と云うことになります。
402  shu  2007/10/27 23:29 id: 3BVR6NRi4pQ  prob: 0.3%
王様はブランチ
詰将棋の手は王手かどうかの単純な判定なので、やはりビット演算が有力な手段だと思う。
玉側の手の広さなどを考えると、どうしてもビットマップで一括処理したくなる。
そして汎用ロジックを考える前に、詰将棋のような特殊なケースでの練習も必要。
試しに考えて見ることが役に立たないことは無いだろう。
401  shu  2007/10/26 22:41 id: 3BVR6NRi4pQ  prob: 0.8%
> お疲れ
一応まとめ (備忘録ですスマソ)

下↓は現状のプロファイル出力です

  処理%  (積算%)  クラス::メソッド
A ----------------------------------------------------
  28.41% (28.41%) CMoveList::addMove(CMoveSet&)
  24.42% (52.83%) CMoveSet::getLongPath()
  22.61% (75.44%) CMoveSet::getShortPath()
B ----------------------------------------------------
   9.00% (84.44%) CMoveSet::setPiece(CPiece const*)
   7.43% (91.87%) CTraceMove::getMoveList(CMoveList&)
C ----------------------------------------------------
   8.13% (100.0%) その他
  ----------------------------------------------------

Aランクの処理はすべて移動可能手の抽出(CMoveSet)と保存処理(CMoveList)です。
現在バイト単位で可能手を判定してますが75%以上の時間を費やしています。
400  pon  2007/10/25 12:39 id: ou/hhkgTDac  prob: 0.4%
400GET
> このへんで作業はちと一休みします
お疲れ様でした^^
私も正月まではここを見るだけです。
399  shu  2007/10/24 22:24 id: 3BVR6NRi4pQ  prob: 0.5%
> なんとか1秒/1M局面くらいにならないかな
成りました
可能手44手リストアップするのに 0.92秒/100万
# 環境は Athlon 3700+ linux x86_64 メモリ1GB
# ソースコード 1445 行、バイナリ 237,551 バイト

王手の判定メソッドなどを作るだけで、このまま詰将棋を解くプログラムは作れるかも。
でもいろいろ事情があるので、このへんで作業はちと一休みします。ごめん。
398  shu  2007/10/23 22:39 id: 3BVR6NRi4pQ  prob: 0.0%
プロファイリング
平手で少し進んだ局面。44手抽出に2秒/100万も時間を費やすので
$ gcc -p ...
結果は広く分散しちまってABC分析も使えない結果に。

いろいろ統廃合して再度測定してみると問題は数個のメソッドに収斂。
有効手を調べる処理に約70%の時間を費やしている。
盤面→駒セット変換に10%、手の保存に20%。
ちなみに、この辺のコードの改造はC++とvi環境ならそんなに苦にならない。

今はなんとか1秒/1M局面くらいにならないかなーって気分。
>397 悪い人はいません
でも食えないかも;;
全476件 - 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49