おまいら最強の麻雀プログラムしてみろよ Part2
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2007/07/27(金) 21:47:50層の薄いこのカテゴリーなら、将棋やオセロよりも
ずっと簡単にその地位を手にいれられるぞ!
0153デフォルトの名無しさん
2007/07/29(日) 23:53:170ツモ切りとか、ランダム打ちは出来るけどさ・・・
点数出せなきゃ最強のやつは作れんよ
動くやつは誰でも作れるが
0154デフォルトの名無しさん
2007/07/29(日) 23:59:410アドバイスをやろう。
役はリーチ、ピンフ、タンヨウだけでやれ。
ついでに役牌を考慮しただけで、立派なAIが作製できる。
もちろん符も計算するな。
もしこれで、君のAIが出来れば、立派に動作する。
みんなも感心するAIになる可能性が有る、すぐ作れ。
0155デフォルトの名無しさん
2007/07/30(月) 00:01:030156デフォルトの名無しさん
2007/07/30(月) 00:01:130言いから動くやつを作れ!
最強はそれから考えろ!!!!!!
これ以上、最強を言い訳にするな!!!!!見苦しい!
0158デフォルトの名無しさん
2007/07/30(月) 00:03:22無駄
0159デフォルトの名無しさん
2007/07/30(月) 00:23:41メンゼンでの役の確率が計算してあるがそれぞれ一致してない・・・
役を正確に求めることと、その確率を求める事は困難であるといえると思う
複数人での一致を確かめて進めるべきだと思う
http://www.ix3.jp/hiii/02mahken/1-02yaku.htm
http://majanjan.com/4/45/
http://homepage2.nifty.com/rally_tate/mj/3-9.htm
0160デフォルトの名無しさん
2007/07/30(月) 00:29:05正確な点数計算はとても複雑で計算時間も掛かる、君が望むような速度は不可能だ。
もちろん、魔法のテーブルなど現在の環境では不可能だ。
結局は限定した内容で最良を考えるしかない。
この、限定された環境で最良を考えるのが楽しい。
君はテーブルをガンガンスペックダウンしたではないか。
何故、点数計算はスペックダウンしないのだ?
最強など誰も作れない、でも、作ってみる事がいい。
MJSimのサンプルAIを理解して、改良が出来れば。
それで立派に麻雀AIが作れるようになる。
必要ならアドバイスもしよう、説明もしよう。
・・・・うぐ、上で349って出てしまった、バレバレ orz
0161デフォルトの名無しさん
2007/07/30(月) 00:31:07七対子
3.2% (ひいいの麻雀研究)
2.4% (勝ち組の麻雀 理想雀士をめざして)
11.7% (麻雀を科学する 数理と確率による麻雀の必勝法)
ジュンチャン
0.35% (ひいいの麻雀研究)
0.4% (勝ち組の麻雀 理想雀士をめざして)
0.05% (麻雀を科学する 数理と確率による麻雀の必勝法)
0162デフォルトの名無しさん
2007/07/30(月) 00:31:13まったく思わん。
違ってて当然、理由も有る。理解できないだろ?
0163デフォルトの名無しさん
2007/07/30(月) 00:32:06で、だから何?お前が指摘すれば
つーか、ウンコな指摘しかできないウンコさんが
いなくていいから出て行ってもらえる
0164デフォルトの名無しさん
2007/07/30(月) 00:33:40ちなみに>>159は今後コテとトリップ付けろよ、NG指定しやすいから。
0165デフォルトの名無しさん
2007/07/30(月) 00:34:38でも、テーブル方式は爆発しない方法で作れるよ
0166デフォルトの名無しさん
2007/07/30(月) 00:34:55データーを取る環境と母体が違うから、違ってて当たり前。
0167デフォルトの名無しさん
2007/07/30(月) 00:35:55理解してまつ。
0168デフォルトの名無しさん
2007/07/30(月) 00:35:580169デフォルトの名無しさん
2007/07/30(月) 00:38:17データベースを作れば5Mバイトしか食わない
例外として、国士無双、緑一色、四槓子の判定をやって
三槓子、チートイツ、三色同刻、場自風の役の加算を求めてデータベースを引けばいい
0170デフォルトの名無しさん
2007/07/30(月) 00:40:40本人は理解していないかもだが、分かる人には分かっていた。ありがとう。
0171デフォルトの名無しさん
2007/07/30(月) 00:41:03もういいよ、ウザイだけだから。
ソースも出さずに、使えもしないウンコ仕様だけ
書かれても、スレが汚くなるだけだから
0172デフォルトの名無しさん
2007/07/30(月) 00:41:54もし間違っていたら、強くないのに強いと判定されてしまう
確認のために複数人の一致は必要
0173デフォルトの名無しさん
2007/07/30(月) 00:45:33⊂⌒( ・ω・) うん そうだね
`ヽ_っ⌒/⌒c
⌒ ⌒
0174デフォルトの名無しさん
2007/07/30(月) 00:46:59ついに他人の悪口を言い始めた。
だから、おまえもMJSimを動作させて、お前が言う
「複数人の一致」のために点数計算の確認して
やれって言ってるんだよ。
それが出来ないなら、このスレに2度と来るな
0175デフォルトの名無しさん
2007/07/30(月) 00:50:42もっと効率いい方法があるだろ。
そもそも、>>169の方法だと
大して多くは無いが無駄だらけで気分が悪い
0176デフォルトの名無しさん
2007/07/30(月) 00:55:38俺、役確定や上がり確定じゃなくて、手分析でテーブル使うぞ。
0177デフォルトの名無しさん
2007/07/30(月) 01:00:28オレもそうだよ。ていうか役判定にだけテーブル使うなんて
もったいなさすぎ
0178デフォルトの名無しさん
2007/07/30(月) 01:01:41かわいいな
0179デフォルトの名無しさん
2007/07/30(月) 01:04:04やっぱりそうか、考える事は同じだな。
しかしだ、実装で差がつくと思う。 どんな実装になるか興味があるな。
0180デフォルトの名無しさん
2007/07/30(月) 01:07:1114枚の牌を調べ、役が出来ていたらbreakして、
役が出来ていないなら見えていない牌の中から、ランダムに一枚加えて
どれか一枚を捨てたら、役が出来るならその駒に役の得点を加算する
さらに、もう一枚ランダムに加えて、どれか二枚を捨てたら
役が出来るなら、その駒たちに役の得点/2を加算する
これを終局まで試行する
そして制限時間がある限り、はじめからやり直して得点の加算を続ける
すると、役が揃いやすい捨て牌に得点が集まります
0181デフォルトの名無しさん
2007/07/30(月) 01:10:04糞仕様の話はいらないから早くソースあげてね。
それに、早くMJsimに実装してくれないか?
0182デフォルトの名無しさん
2007/07/30(月) 01:11:480183デフォルトの名無しさん
2007/07/30(月) 01:15:15数牌のメンツ分解数も、単独では正解にたどり付けなかったかもしれない
自分の解答よりも、他人の解答の正解率が高いだろうから
だれか飜数計算を上げてくれないかと思っているところである
0184デフォルトの名無しさん
2007/07/30(月) 01:17:110185デフォルトの名無しさん
2007/07/30(月) 01:18:07ついにお前の本音が出たな。
俺もそう思ったよ。
つまり、お前がプログラム出来ないから、お前の糞仕様に
付き合ってくれる奴を探して、このスレを荒らしていたんだろう
つか、プログラミング苦手なら、このスレに来るなよ
0186デフォルトの名無しさん
2007/07/30(月) 01:19:44018778 ◆7rnrw5KbzE
2007/07/30(月) 01:21:05言いますね〜(笑)アドバイス的確すぎやしませんか。
相当麻雀AI作成に熟知しているようにお見受けします。
私もアドバイス欲しいくらいですよ。
私もAIを組みましたので、牌譜あげてみます。
まだ鳴きも降りも教えてないのでドヘタゼンツ君ですがね・・・
ttp://uproda11.2ch-library.com/src/1118570.zip.shtml
0189デフォルトの名無しさん
2007/07/30(月) 01:23:560190デフォルトの名無しさん
2007/07/30(月) 01:28:30いや、飜数計算は基礎なんだよ
ここをおろそかにしたまま、各自が独自のMJSimの思考エンジンを作り出すようになっては
たまたま、MJSimで計ったら強かった弱かったってなってしまうんだよ
0191デフォルトの名無しさん
2007/07/30(月) 01:28:440192デフォルトの名無しさん
2007/07/30(月) 01:30:46見ました、ずいぶんまともなAIですね。素晴らしいです。
聞いちゃうけど、オリジナル? サンプルの改変ですか?
答えたくなければ答えないでOKです。
もし私で、答えられる事が有ったら何でも聞いて下さい。
0193デフォルトの名無しさん
2007/07/30(月) 01:31:09は?なんだそのウンコな反論は。
誰も、飜数計算をおろそかにしてないい。
お前の力で早くMJSimの飜数計算が正しいor
間違っていることを証明しろって言ってるの
出来ないなら何も書くな、糞野郎
0194デフォルトの名無しさん
2007/07/30(月) 01:36:02それとも、それで差が付くほどの立派なものを組んだのか?
後々問題になるだろうが、それほどのものは出てないな
0195デフォルトの名無しさん
2007/07/30(月) 01:40:00もう1段検索を深くすることです。
それと、見えている牌から、見えない牌を割り出し、それの確率を入れると
もっと強くなります。
0196デフォルトの名無しさん
2007/07/30(月) 01:46:53時間が少ないので、すぐ庭答えられないかも。(出来る範囲で)
AIの性格付けも、単純であれば比較的楽に出来るかも。
明日休みだけど、フラフラでもう寝まつ・・・Zzzzzzzz
019778 ◆7rnrw5KbzE
2007/07/30(月) 01:48:14完全オリジナルですね。いくらか下積みがあって、牌譜化環境等もできあがってて、
最近ここが盛り上がってきたので、作ってたプログラムをいくらか形整えて
打たせたのが>>187です。
>答えられる事が有ったら何でも聞いて下さい。
ではお言葉に甘えて。
>>187のAIは、14枚の牌形から、
打牌候補を切り、1枚ツモり、打牌候補を切った時点で、評価関数を呼び出して
元の14枚牌形から打牌を選択しています。所謂一手先読み、になります。
これをN手先読みにすることが可能なのですが、現状の処理スペックだと
一手先読み・・・一回の打牌選択あたり0.001秒
二手先読み・・・一回の打牌選択あたり約2秒
となってしまい、現実的な処理時間では二手先読みが限界となっています。
そこで、単刀直入に申し上げますと、>>192氏のAIの性能(できればその手法も)
断片的でもいいので教えていただきたい。
サンプルでは、ターツ毎の評価をしていたようですが、今作成中のAIの路線も
その方針でいくのでしょうか?
0198デフォルトの名無しさん
2007/07/30(月) 02:15:19捨て牌を選んで、それごとに残っている牌からまたツモるとやっては分岐数が多すぎます
>>180なら分岐は無いです すぐに終盤になります
0199デフォルトの名無しさん
2007/07/30(月) 02:17:34まだ、お前の糞仕様を薦めてるのか。
お前の糞仕様の方が分岐が多いぞ。
それも気付かないのか、糞野郎
0200デフォルトの名無しさん
2007/07/30(月) 02:20:57概要としては、
f=予測値を決めておき、それより評価が良ければ、その枝はそこで読むのをやめ上位ルートへ戻ります
fを超えるのが無かったら、もっとも評価の高い手の得点を上位ルートへ戻します
0201デフォルトの名無しさん
2007/07/30(月) 02:25:51だからその分岐にどれだけ負荷かける気だよ。
「麻雀」と「プログラム」知らない奴が思いつきで書くなよ、糞野郎が
0202デフォルトの名無しさん
2007/07/30(月) 02:26:18ネックは4シャンテン前後なので塔子で分割してなら、それ用の評価関数を用意。
(例:単騎<辺塔子<間塔子<両塔子<対子<刻子<順子)
で、面子候補それぞれに対して加算して求めてましたね。4シャンテンで最大100通り行くかどうか位
(※ただし、面子候補に単騎が二つ以上ある場合は別の方法にしてました。)
これだけだと不満なので、残り枚数や色、三色などの評価もしたい所ですけど
0203デフォルトの名無しさん
2007/07/30(月) 03:41:10普通に聴牌目指してひたすら不要牌切るだけ
相手の聴牌気配とか感じるのはそこまで出来た後の話だ
0205デフォルトの名無しさん
2007/07/30(月) 04:34:594シャンテン以上、ということはほとんどの状態で
孤立牌・不要牌が複数あるので、場風と手牌の偏り具合から
機械的に(=別の評価関数で)捨て牌選択が可能です。
というか、まずそれなりのものを作ってから順に次に取り組めよ
0206デフォルトの名無しさん
2007/07/30(月) 04:39:06土台を完成させろよ。 話はそれからだろ。
七対狙いオンリーの思考ルーチンでも
対戦用ライブラリのAPIに必要なエッセンスが
半分以上つまってんだからさー
0207202
2007/07/30(月) 04:57:17これのメリットは手役の嗜好を作りやすい事。最強かと言われると・・・
汚いソースだし書き換えるの面倒だから作り直してるさ〜
0208349 ◆XrG.ETMFv6
2007/07/30(月) 14:43:19//========================================================================
// 手牌分析クラス
//========================================================================
class CTatsu : public CBase
{
public:
//
// 評価用データ Analyze(void); で設定される
//
bool m_FuritennF; // フリテンフラグ
int m_TenpaiNo; // 後幾つでテンパイ
YAKU m_YakuType; // 現在の役タイプ
int m_YakuNo; // 役の藩数
int m_YakuNotoN; // 役まで後N枚の役の藩数
int m_TurtuNo; // ターツの数
int m_MachiNo; // 牌の待ち数
int m_TotalPoint; // 合計ポイント
int m_outHai; // 評価するときに排除した牌
int m_AtamaNo; // 頭の数
int m_AtamaHai; // 頭の牌番号
UCHAR m_MachiHai[PTBLMAX]; // 待ち牌データ
int m_tehaiP[PTBLMAX]; // 手牌のポイント
private:
//
// ターツ評価用データ
//
CMentu *m_pMD; // 親メンツデータポインタ
int * m_ptehaiNAnko; // 元の手牌 コーツを取り除いてる
int * m_ptehai; // 評価する手牌、面子と頭を取り除いてる
0209349 ◆XrG.ETMFv6
2007/07/30(月) 14:43:58void init(); // 初期化する。
int Analyze(CMentu *pmentu,int ahai); // ターツ評価
void AnalyzeNoHai(int no); // 数字牌の分析
bool tehaiCompar(CTatsu *pTD); // 手牌の優劣を比較、自分が低い:true, 以外:false
bool tehaiComparTenpai(CTatsu *pTD); // テンパイ時の手牌の優劣を比較
void TenpaiMachiHai(); // テンパイの時の待ち牌作成
bool chkFuriten(); // フリテン試験
virtual bool chkThis(); // 自己オブジェクトの試験
virtual void DispData(); // データ表示
//
// 役の分析
//
void AnalyzeYaku(void); // 役の分析
bool AnalyzeYakuHai(void); // 役牌 場風、自風、白発中
bool AnalyzePinfu(void); // ピンフの分析
bool AnalyzeTanyou(void); // タンヨウの分析
bool Analyze34Anko(void); // 3アンコ4アンコの分析
bool AnalyzeToitoi(void); // トイトイの分析
bool Analyze112233(void); // イーペーコ
bool chk123(int hno); // イーペーコイーシャンテン試験
bool AnalyzeChitoi(void); // チイトイの分析
bool AnalyzeKokushi(void); // 国士の分析
private:
int getTenpaiNoAnalyze(); // テンパイまでの必要牌計算
int getKey(int * st); // キーの作成
};
0210349 ◆XrG.ETMFv6
2007/07/30(月) 14:51:28public:
char m_BlockNo; // ブロック番号 −1:空き 0〜:ブロックNO
CHai m_tehaiw; // 面子頭引き後の手牌
int m_TotalPointAll; // 合計ポイント
int m_TotalPoint; // 合計ポイント
int m_TotalPoint3; // 合計ポイント
int m_TotalPoint2; // 合計ポイント
char m_MachiHaiNo3; // 面子牌の待ち種類数
char m_MachiNo3; // 面子牌の待ち枚数
char m_MachiHaiNo2; // 面子牌の待ち種類数
char m_MachiNo2; // 面子牌の待ち枚数
char m_AtamaHai; // 頭牌が有る時の牌NO
// 解析結果データ
char m_outhai; // 排除された牌
int m_AType; // 分析タイプ
char m_TenpaiNo; // 後幾つでテンパイ
char m_TenpaiTsNo; // シャンテンに対する余分のターツ数
bool m_FuritennF; // フリテンフラグ
YAKU m_YakuType; // 現在の役タイプ
YAKU m_YakuTypetoN; // 役まで後N枚の役タイプ
char m_YakuNo; // 役の藩数
char m_YakuNotoN; // 役まで後N枚の役の藩数
char m_TurtuNo; // ターツの数
char m_T_XX_n; // リャンメンの数
char m_TX_X_Xn; // 2カンチャンの数
char m_TX_Xn; // カンチャンの数
char m_TXX_n; // ペンチャンの数
int m_AtamaNo; // 頭の数
int m_tehaiP[PTBLMAX]; // 手牌のポイント
UCHAR m_MachiHai3[PTBLMAX]; // 面子待ち牌データ
UCHAR m_MachiHai2[PTBLMAX]; // ターツ待ち牌データ
0211349 ◆XrG.ETMFv6
2007/07/30(月) 15:06:29見れば分かる通り、分析のし過ぎではないかと思うほど分析しています。
これは当初、初めてAIを作る上で人間の考える通りに動くAIが目標でしたから。
探索ツリーは
14枚の牌
↓
↓-----------------------↓
構造1・・・・・・・・・・・・・・・・・・・構造N
↓
捨てるパターンの数
↓-----------------------↓
A牌捨て・・・・・・・・・・・・・・・・・N牌捨て
↓
仮定のツモ牌
↓-----------------------↓
14枚の手牌1・・・・・・・・・・・・・14枚の手牌N
↓
↓-----------------------↓
構造1・・・・・・・・・・・・・・・・・・・構造N
↓
捨てるパターンの数
↓-----------------------↓
A牌捨て・・・・・・・・・・・・・・・・・N牌捨て
これでようやく一手先読み。
のような探索ツリーです。非常に込み入った構造で尚且つ、分析結果がけた違いに増えます
1つの手配の分析は、総てのターツパターンを出します、その数は数十から200を越える時も。
例えば 2334 は 234と3 23と34 24と33 の3種類に分類。(とても簡単な例)
0212349 ◆XrG.ETMFv6
2007/07/30(月) 15:20:31先読みが浅いのでスピードが速いく、それなりに強いのではないかと思います。
初めて作ったため、いろいろな試みをしています。初盤にペンちゃんや13のようなカンちゃんを
嫌うようにしてたり。私が思うような牌の切り方に近いようにしています。
その結果、ソースは膨大となり各所にバグがゴロゴロしているのではないかと思います。
雀譜を見れば分かると思いますが、面白い切り方をしたり、とんでもない牌を切ったりします。
まだまだ未完成です。
本ちゃんは二手先まで読んでいました、3手先までも作ったのですが、二手先とほぼ同じ感じです。
0213349 ◆XrG.ETMFv6
2007/07/30(月) 15:37:39役は、上にあるように、ピンフ、タンヨウ、3アンコ、トイトイ、イーペーコ、チイトイ、国士
までしか分析していません。しかし、後幾つで役が確定するかも分析しています。
難しい所の一つに、役を目指すとフリテンが増えてしまうのが悩みどころでした。
最終的な手の評価関数はそれなりなのですが、最適化までには至らず、残念でした。
先読みについて
先読みが深いほど強いと思っている方もいるかもしれませんが。それは間違いだと
私の直感が宣言しています。それなりに理由もあるのですが、まだ、説得力があるほどの
論理的構築ができていません。参考程度に検討してください。
何処までの先読みがベストなのかは検討の余地が有ります。妄想では3手先も有れば
十分ではないかと思っています。
0214349 ◆XrG.ETMFv6
2007/07/30(月) 16:09:16サンプルソースの様な手牌構造を理解せずに、評価関数で優劣を決める方法は
過去の物です。いろいろ欠点が有ります。
例えば、122334 の場合1が来たら4を捨てるのですが、中の数字を好む式だと
1を捨ててしまうかもしれません。(サンプルAIは4を捨てる)
例えば 2334は234の面子を優先して3を捨ててしまうかもしれません。
23と34の2ターツと考えた方がいい場合もあります。
例えば12のペンちゃんでテンパった時、有効牌が1枚しかなかったら、場合によっては
12を捨ててシャンテン数を下げても持ちを変えたほうが上がりには速いはずでしょう。
(簡単な例)
等々いろいろ有りますが、手配の構造を理解していないと解析が出来ません。
次世代AIには、手牌構造を分析するのが必要ではないかと言えます。
0215349 ◆XrG.ETMFv6
2007/07/30(月) 16:25:47問題は時間なのですが・・・、過去のAIは>>197のご指摘のターツ毎の評価(分析)が
主であるかもしれません。
次回は、人間の様にではなく、最速に速く上がれるAIを目指します。これは
最高に早くテンパルとは意味が違います。分析方法ですが、前はターツが主では
あったかもしれませんが、今回は牌の構造に焦点を当てたいと思っています。
あいまいな表現で申し訳ありません。以前のAIの分析内容を見て分かる通り
またも、複雑な事をやろうと画策しています。
作った結果、過去のAIに負けるかもしれませんが (大汗
振り返ってみて、過去のAIはいい経験になっています。いや、あの時はとても苦労した
のですが、結果に落胆した・・・・orz、 今度は己に勝つ!
021678 ◆7rnrw5KbzE
2007/07/30(月) 18:27:03詳細な解説ありがとうございます。参考になることは数多いですが、その中でも
>先読みが深いほど強いというわけでもない
という示唆は非常に興味深い。
http://ara.moo.jp/mjhmr/statall.htm
あら氏のシミュレーション結果(↑)を見ると
先読みが深いほど好結果がでていますよね。
すると、349氏のAIにおいて、先読みがさほど影響を及ぼさない原因に
評価関数の指向が関与しているのではないでしょうか。
というのはたとえば
56m2367p3488s東南西北
という手牌があったとして、これをターツ毎評価にぶち込んだ場合
「役に平和がつく(有力だ)」という評価ができると思います。
でも実際、平和がつくと確定するのは、和了形にして4手先、
テンパイ形にして3手先になります。
つまり手牌自体は1手先までの形しか予想していないけれど、
ターツ毎評価によって、部分的にはもっと先の形まで予想している、ということになります。
その結果、手構造自体の先読みの意義が薄れているのではないでしょうか?
もちろん、そうなるのは評価関数が優れているためでしょう。
021778 ◆7rnrw5KbzE
2007/07/30(月) 18:32:25私の場合一打0.01秒程度なのですが、これだけ込み入った分析をした場合、やはり
いくらか時間をくってしまうのでしょうか?
0218デフォルトの名無しさん
2007/07/30(月) 18:53:32たいして高速化にもならんとは思うが、一応賛成。l
で、MJexeIO.DLLという東風荘をプログラムから操作するDLLと同じ関数にしたらどうかな。
東風荘でも動かせるしね。
関数仕様はこれ。
ttp://www.interq.or.jp/snake/totugeki/MJexeIODLLfunc.htm
まずは、全部は必要ない。
MJSimのデータ仕様は、無駄が多いし、わかりづらいと思う。
例えば、対戦相手の手牌のフーロしていない部分とかも見えるが(当然無効だが)、そんなの必要ない。
0219デフォルトの名無しさん
2007/07/30(月) 19:21:15相手の手牌等のデーター領域はあっても中身は0で見えないようになってる。
卓で見える物しか見えない。
0220デフォルトの名無しさん
2007/07/30(月) 19:32:09インターフェース用DLLを誰かが作ればいいんだけどね。私は時間がとても・・・
MJSimで、1つのAIに、2つのAIを繋げて動作を比較するツールを作ってる。
これ公開するから、参考に誰か作ってくれないかな? と期待。
MJSim
↓
動作比較DLL
↓ ↓
AI1 AI2 (読み込まれた2つのAI
0221デフォルトの名無しさん
2007/07/30(月) 19:38:29ホストも「まうじゃん」
じゃなかったんだけ?
0222349 ◆XrG.ETMFv6
2007/07/30(月) 19:56:28時間については計算したことがありません。どの様に算出しましたか?
ダミーなら多分0.01以下ではないかと思います。
MJSimの実行が1秒間に100回以上しているので。
また、本ちゃんの二手先でも、けっこう速いのです。
手が染まっている時は遅いのですが、そうでない時は
ダミー並とは言いませんが、早いです。
分析する必要があるのか無いかは、事前にチェックされ枝狩りされています。
手配の状況でスピードは数十倍以上違い産ます。
分析の種類が20-30以内の時と、200近くの時のその先の枝の数を想像してみてください。
極端に解析時間が違います。
読みについては後でまた。
022378 ◆7rnrw5KbzE
2007/07/30(月) 20:18:52切り番時、14枚の手牌+周辺情報(場に見えている枚数、ドラ等)を与えて
打牌選択関数を呼び出してから、その結果が出るまでにかかった時間を計ってます。
実質1手打つのにかかる時間ですね。ただしリーチ後のものは除いています。
ちなみに今計った所、一手あたり平均0.0087秒でした。
2手先で十分早いとなると相当なものですね。私の場合平均2秒ほどかかってしまいますから・・・
枝かりが甘いのかなぁ・・・
0224aa ◆BmUbLWewsM
2007/07/30(月) 20:27:45には、説明不十分でした。
>分析の種類が20-30以内の時と、200近くの時のその先の枝の数を想像してみてください。
>極端に解析時間が違います。
データ数がそのまま時間ではないです。
データー数が多いと言う事は、不必要な分析がどんどん増えてくるのです。
説明は難しいのですが、同じ構造を何度も見つけてしまうのです。
そのため、重複排除やその他の時間がかかります。
おっと、>>223の時間はダミーのですか?
計測ありがとう。
0225202
2007/07/30(月) 20:46:41そうするとどうしてもメンツ構成(塔子や単騎を含む)の分析が必要になるんだよなぁ
でも、もしかすると牌効率最優先の方が強いかも分からないので、今それをどうしようか
考え中・・・
0226349 ◆XrG.ETMFv6
2007/07/30(月) 21:02:37>あら氏のシミュレーション結果(↑)を見ると
シミュレーションの0−3の違いはなんでしょう?
探したのですが見当たりません。
022778 ◆7rnrw5KbzE
2007/07/30(月) 21:09:26失礼、計測した平均時間は私のやつです。
0〜3は、それぞれそのシャンテン数未満のときに和了形まで予想して
点数計算を行う。それ以上の場合は簡易計算で済ますというものらしいです。
詳細は
http://ara.moo.jp/mjhmr/simulation.htm
0228349 ◆XrG.ETMFv6
2007/07/30(月) 21:31:59質問です。
>先読みが深いほど好結果がでていますよね.。
先読みが深いほど好結とは、どの部分を指しているのでしょう?
期待値の値ですか?
私はきた位置の計算自体に疑問を感じているのです。
もし意見が違うのであれば、話してみたいです。
0229349 ◆XrG.ETMFv6
2007/07/30(月) 21:34:02○期待値
0230デフォルトの名無しさん
2007/07/30(月) 22:05:19これを毎日徹底した自己管理で行えば Bカップ程度なら3年で育つ
0231デフォルトの名無しさん
2007/07/30(月) 22:07:17俺はCもあれば十分だと思ってる。Fなんざぁただの脂肪の塊としか思えん。
023278 ◆7rnrw5KbzE
2007/07/30(月) 22:14:32好結果の指し示すのは期待値の話です。
ただし、期待値が高いことが、好結果である必要十分条件ではないことに、
私も同意します。あくまで、期待値を一つの指標として挙げたまでです。
あら氏の期待値の重要性が実戦で崩れる要因として重大だと考えられる
ものを挙げてみます。
1.18順の到達順目(=猶予順目)が保証されていること
あら氏の期待値は、あくまで局が18順完了できる(かつテンパイ料を考慮しない)
条件下でのものでした。しかし実際は18順完了できることは
それほど多くなく、全体の85%程度は和了による終了(自家和了含む)になります。
となると、実際では条件下等によって、到達可能な順目は変わってくるはずです。
たとえば、「ダブリーがかかった1順目」という条件下では、そうでない1順目よりも
平均到達順目が小さくなり、守備を考慮しないとしても戦略が変わってきます。
仮に100順分ツモ打牌が許されるなら、全局ヤクマン狙いが正着(=期待値高)になるでしょう。
しかし、18順で全局ヤクマン狙いの戦略では期待値は高くならないでしょう。
同様に、猶予順目が違うならば、戦略も変わってくるはずです。
023378 ◆7rnrw5KbzE
2007/07/30(月) 22:16:52あら氏の期待値はあくまで、面前のみを対象としたものでした。
この条件では、喰い仕掛けを考慮しないため、「役をつけるためにシャンテンを落とす」
ということは少なくなります。
しかし喰い仕掛けを考慮すれば
123368m246p22688s ドラ2s
というような場面から、打1mとしてクイタン狙いは有力手です。
当然、これはフーロを想定するからこそ有力手なのであり、フーロを考慮しない
期待値評価で打1mが選択されることはないでしょう。
フーロを想定するならば、喰い仕掛け可能な役を狙う意味が大きくなります。
3.守備を考慮していない
守備を考慮しなければ、ちょっとでも効率アップが考えられる牌は残すべきです。
しかし中終盤で、ほとんど効率が変化せず、かつ将来危険になるような牌は
残すべきではないでしょう。また、相手から攻撃が入った場合、各牌に失点指標
を導入しなければなりませんが、それも考慮されておりません。
0234デフォルトの名無しさん
2007/07/30(月) 22:26:09・攻撃は何もなくても組みやすい
・守備は何かないと組みにくい
・俺よえぇ
こんなとこか
0235デフォルトの名無しさん
2007/07/30(月) 22:32:28ルールは東風荘(第一)またはまうじゃんまたは今回作成したオリジナルルール
023678 ◆7rnrw5KbzE
2007/07/30(月) 22:32:56守備を組むとっかかりには、結構各人の判断基準で強弱つくと思いますよ。
そういう面で、麻雀打ちとして強い人は有利になるでしょう。
<テーブル>は私の中に・・・
0237デフォルトの名無しさん
2007/07/30(月) 22:36:36単純化したオリジナルルール
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4765.txt
トンプウ荘ルール
http://mj.giganet.net/yaku.htm
0238349 ◆XrG.ETMFv6
2007/07/30(月) 22:38:14詳しい説明ありがとうございます。
私は特に、次の点が実際と合わないと考えています。
あら氏の一人麻雀では、相手がいません。
したがって4人いる場合明らかに計算式が違います。
あら氏
期待値=自分の牌を見ただけの期待値。
4人麻雀
期待値=自分の期待値 ー 遅れた上がり順目分の他人の上がり期待値。
こらが本当の期待値です。あら氏のは一人麻雀での数値です。
いわゆる、0と3では、平均テンパイ順目が 0=11.56 3=11.76
3の方がテンパイが遅い、そして何より平均和了順目が 13.82 14.46と
0.64順ほど遅いのです。これは私にとっては大きなマイナス要員です。
コンピューター麻雀の場合、手の雰囲気が似てきます。だからこそ
こちらが上がりそうなら、他の3人もあがりそうだと考えるのが普通でしょう。
その場合の0.64順遅れは、最強を作る上でマイナスだと考えます。
AI対戦の場合、他より少しでも速く和了する事が重要だと考えているからです。
その考えからすると、和了が速い0の方がいいのかもしれません。
0239デフォルトの名無しさん
2007/07/30(月) 22:40:39数字19、2〜8、白発中、東南西北のコーツとトイツは同一視したときに
正しい飜数を返すプログラムを作ろうぜ
これで多くは判定できるよ
なぜならば、2のコーツと3のコーツを同一視しても、
それは別物であることは枚数から明らかだからだ
0240デフォルトの名無しさん
2007/07/30(月) 22:44:42なぜならば、敵は3人いるからだ
自分のあがる確率より、他人のあがる確率は3倍も多い
防御は重要
0241202
2007/07/30(月) 22:48:44とりあえず形になるのですが、理想とするシャンテン数には届かないです。
(理想←手牌+ツモる予定の16牌(17牌)でのシャンテン数)
理想が高すぎるのもあるのですが平均1シャンテン位は低いです(中盤12〜14巡目辺り)
0242デフォルトの名無しさん
2007/07/30(月) 22:49:393シャンテンくらいから期待値計算で考える子にしてみたんだけど、
2シャンテンから考える子は正常に動いたのに、3シャンテンまでがんばらせてみたら
なんか動かなくなっちゃった。これだからバグはいくないorz
0243デフォルトの名無しさん
2007/07/31(火) 00:22:300244デフォルトの名無しさん
2007/07/31(火) 00:34:37だってもう飽きたんだもんww
0245デフォルトの名無しさん
2007/07/31(火) 00:39:082手先まで読めてて、さらに1シャンテン下げるのは流石にムリでは・・・
鳴いてもなんでもいいから形だけシャンテン下げるだけならなんとか。
0246デフォルトの名無しさん
2007/07/31(火) 00:56:18犬のフンは無視するのが一番
0247デフォルトの名無しさん
2007/07/31(火) 01:06:32あれ?自分なんか間違えてるかな?
2シャンテンから考える子は大体10ms以内とかだった気がするんだけど
0249202
2007/07/31(火) 01:26:29いや、これは一手先読みだけですね。1牌切った状態でのシャンテン数が良くなる
候補の牌枚数をカウントして(有効牌数)、枚数が一番優秀な時の牌を切っていくだけ。
理想のシャンテン数というか究極が、引く予定の牌を含めた30枚でのシャンテン数として考えてます。
当たり前ですが究極には近づけませんw(エスパー能力があれば・・w)
有効牌数がそのまま塔子構成にも関わるので、そっちの評価は入れてないですね
0250デフォルトの名無しさん
2007/07/31(火) 01:51:170251デフォルトの名無しさん
2007/07/31(火) 02:08:04■ このスレッドは過去ログ倉庫に格納されています