[Toss-devel-svn] SF.net SVN: toss:[1394] trunk/Toss/Play
Status: Beta
Brought to you by:
lukaszkaiser
From: <luk...@us...> - 2011-03-25 22:33:11
|
Revision: 1394 http://toss.svn.sourceforge.net/toss/?rev=1394&view=rev Author: lukstafi Date: 2011-03-25 22:33:05 +0000 (Fri, 25 Mar 2011) Log Message: ----------- Increasing monotonic adv ratio to 5. Giving more time to GameBig tests (warning: they now take 12 minutes, consider tweaking timeouts to waste less) not to generate unnecessary fails or skips. Modified Paths: -------------- trunk/Toss/Play/GameTest.ml trunk/Toss/Play/Heuristic.ml Modified: trunk/Toss/Play/GameTest.ml =================================================================== --- trunk/Toss/Play/GameTest.ml 2011-03-25 22:24:30 UTC (rev 1393) +++ trunk/Toss/Play/GameTest.ml 2011-03-25 22:33:05 UTC (rev 1394) @@ -132,13 +132,13 @@ lazy (None, 2.0, state_of_file "./GGP/tests/breakthrough-simpl.toss") let tictactoe_game = - lazy (None, 4.0, state_of_file "./examples/Tic-Tac-Toe.toss") + lazy (None, 5.0, state_of_file "./examples/Tic-Tac-Toe.toss") let gomoku8x8_game = - lazy (None, 4.0, state_of_file "./examples/Gomoku.toss") + lazy (None, 5.0, state_of_file "./examples/Gomoku.toss") let gomoku19x19_game = - lazy (None, 4.0, state_of_file "./examples/Gomoku19x19.toss") + lazy (None, 5.0, state_of_file "./examples/Gomoku19x19.toss") let connect4_game = lazy (None, 2.0, state_of_file "./examples/Connect4.toss") @@ -443,7 +443,7 @@ "play: chess suggest first move" >:: (fun () -> - skip_if true "loading takes long, worked last time"; + skip_if false "loading takes long, worked last time"; let horizon, advr, state = Lazy.force chess_game in let move_opt = (let p,ps = Game.initialize_default state @@ -470,7 +470,7 @@ "play: chess begin random play" >:: (fun () -> - skip_if true "loading takes long, worked last time"; + skip_if false "loading takes long, worked last time"; let _, advr, state = Lazy.force chess_game in let (game, struc) = (fst state, (snd state).Arena.struc) in @@ -491,10 +491,10 @@ "chess draw" >:: (fun () -> - skip_if true "loading takes long, worked last time"; + skip_if false "loading takes long, worked last time"; let horizon, advr, state = - update_game chess_game -"[a1, b1, c1, d1, e1, f1, g1, h1, a2, b2, c2, d2, e2, f2, g2, h2, a3, b3, c3, d3, e3, f3, g3, h3, a4, b4, c4, d4, e4, f4, g4, h4, a5, b5, c5, d5, e5, f5, g5, h5, a6, b6, c6, d6, e6, f6, g6, h6, a7, b7, c7, d7, e7, f7, g7, h7, a8, b8, c8, d8, e8, f8, g8, h8 | D1 {(a1, b2); (b1, c2); (c1, d2); (d1, e2); (e1, f2); (f1, g2); (g1, h2); (a2, b3); (b2, a1); (b2, c3); (c2, b1); (c2, d3); (d2, c1); (d2, e3); (e2, d1); (e2, f3); (f2, e1); (f2, g3); (g2, f1); (g2, h3); (h2, g1); (a3, b4); (b3, a2); (b3, c4); (c3, b2); (c3, d4); (d3, c2); (d3, e4); (e3, d2); (e3, f4); (f3, e2); (f3, g4); (g3, f2); (g3, h4); (h3, g2); (a4, b5); (b4, a3); (b4, c5); (c4, b3); (c4, d5); (d4, c3); (d4, e5); (e4, d3); (e4, f5); (f4, e3); (f4, g5); (g4, f3); (g4, h5); (h4, g3); (a5, b6); (b5, a4); (b5, c6); (c5, b4); (c5, d6); (d5, c4); (d5, e6); (e5, d4); (e5, f6); (f5, e4); (f5, g6); (g5, f4); (g5, h6); (h5, g4); (a6, b7); (b6, a5); (b6, c7); (c6, b5); (c6, d7); (d6, c5); (d6, e7); (e6, d5); (e6, f7); (f6, e5); (f6, g7); (g6, f5); (g6, h7); (h6, g5); (a7, b8); (b7, a6); (b7, c8); (c7, b6); (c7, d8); (d7, c6); (d7, e8); (e7, d6); (e7, f8); (f7, e6); (f7, g8); (g7, f6); (g7, h8); (h7, g6); (b8, a7); (c8, b7); (d8, c7); (e8, d7); (f8, e7); (g8, f7); (h8, g7)}; D2 {(b1, a2); (c1, b2); (d1, c2); (e1, d2); (f1, e2); (g1, f2); (h1, g2); (a2, b1); (b2, c1); (b2, a3); (c2, d1); (c2, b3); (d2, e1); (d2, c3); (e2, f1); (e2, d3); (f2, g1); (f2, e3); (g2, h1); (g2, f3); (h2, g3); (a3, b2); (b3, c2); (b3, a4); (c3, d2); (c3, b4); (d3, e2); (d3, c4); (e3, f2); (e3, d4); (f3, g2); (f3, e4); (g3, h2); (g3, f4); (h3, g4); (a4, b3); (b4, c3); (b4, a5); (c4, d3); (c4, b5); (d4, e3); (d4, c5); (e4, f3); (e4, d5); (f4, g3); (f4, e5); (g4, h3); (g4, f5); (h4, g5); (a5, b4); (b5, c4); (b5, a6); (c5, d4); (c5, b6); (d5, e4); (d5, c6); (e5, f4); (e5, d6); (f5, g4); (f5, e6); (g5, h4); (g5, f6); (h5, g6); (a6, b5); (b6, c5); (b6, a7); (c6, d5); (c6, b7); (d6, e5); (d6, c7); (e6, f5); (e6, d7); (f6, g5); (f6, e7); (g6, h5); (g6, f7); (h6, g7); (a7, b6); (b7, c6); (b7, a8); (c7, d6); (c7, b8); (d7, e6); (d7, c8); (e7, f6); (e7, d8); (f7, g6); (f7, e8); (g7, h6); (g7, f8); (h7, g8); (a8, b7); (b8, c7); (c8, d7); (d8, e7); (e8, f7); (f8, g7); (g8, h7)}; bB:1 {}; wB:1 {}; wN:1 {}; wP:1 {}; wQ:1 {}; wR:1 {} | ] \" + update_game ~defs:true chess_game +"MODEL [ | bB:1 {}; wB:1 {}; wN:1 {}; wP:1 {}; wQ:1 {}; wR:1 {} | ] \" ... ... ... ... ... ... +bN ... ... ... ... ... @@ -511,7 +511,9 @@ ... ... ... ... ... ... ... ... ... ... ... ... -\"" 0 in +\" with +D1(x, y) = ex z ( (R(x, z) and C(z, y)) or (R(y, z) and C(z, x)) ) ; +D2(x, y) = ex z ( (R(x, z) and C(y, z)) or (R(y, z) and C(x, z)) )" 0 in let payoffs = Array.to_list (Array.mapi (fun i v->string_of_int i,v) @@ -545,6 +547,7 @@ let easy_case = compute_try algo randomize effort_easy time_easy and easy_big_case = compute_try algo randomize effort_easy time_medium and medium_case = compute_try algo randomize effort_medium time_medium + and hard_small_case = compute_try algo randomize effort_hard time_medium and hard_case = compute_try algo randomize effort_hard time_hard in (algo ^ "-" ^ comment) >::: [ @@ -942,7 +945,7 @@ \" with DiagA (x, y) = ex u (R(x, u) and C(u, y)) ; DiagB (x, y) = ex u (R(x, u) and C(y, u))" 0 in Heuristic.use_monotonic := false; - hard_case state 0 "should not attack" + hard_small_case state 0 "should not attack" (fun mov_s -> "Cross{1:f3}" <> mov_s); Heuristic.use_monotonic := true; ); @@ -982,7 +985,7 @@ let bigtests = "GameBig" >::: [ misc_tests_big; - search_tests "alpha_beta_ord" "time 8 16 32" false 10 8 10 16 10 32; + search_tests "alpha_beta_ord" "time 10 60 120" false 10 10 10 60 10 120; ] let experiments = "Game" >::: [ @@ -1029,15 +1032,15 @@ ); ] -let a = Aux.run_test_if_target "GameTest" tests +let a () = Aux.run_test_if_target "GameTest" tests -let a = Aux.run_test_if_target "GameTest" bigtests +let a () = Aux.run_test_if_target "GameTest" bigtests let a () = run_test_tt ~verbose:true experiments let a () = Heuristic.debug_level := 4; - FFTNF.debug_level := 4; + (* FFTNF.debug_level := 4; *) (* DiscreteRule.debug_level := 5; *) Game.set_debug_level 10 @@ -1045,8 +1048,8 @@ let a = match test_filter - ["Game:0:misc:4:breakthrough payoff GDL simplified game"] - tests + ["GameBig:0:misc_big:3:chess draw"] + bigtests with | Some tests -> ignore (run_test_tt ~verbose:true tests) | None -> () Modified: trunk/Toss/Play/Heuristic.ml =================================================================== --- trunk/Toss/Play/Heuristic.ml 2011-03-25 22:24:30 UTC (rev 1393) +++ trunk/Toss/Play/Heuristic.ml 2011-03-25 22:33:05 UTC (rev 1394) @@ -260,7 +260,7 @@ let force_competitive = ref false (* TODO: not exporting these in the API as global variables? *) let default_nonmonot_adv_ratio = 4.0 -let default_monot_adv_ratio = 4.0 +let default_monot_adv_ratio = 5.0 let suggest_expansion_coef = 0.5 let f_monot adv_ratio n m = @@ -1079,10 +1079,8 @@ Aux.Strings.union posi_poff_rels nega_poff_rels in let frels = Aux.Strings.union indef_frels (Aux.Strings.union posi_frels nega_frels) in - let moves = match struc with | None -> [||] | Some strc -> - Move.gen_moves Move.cGRID_SIZE rules strc graph.(0) in - let monotonic = !use_monotonic && (Array.length moves > 60 || - Aux.Strings.is_empty (Aux.Strings.inter all_poff_rels indef_frels)) in + let monotonic = !use_monotonic && + Aux.Strings.is_empty (Aux.Strings.inter all_poff_rels indef_frels) in (* {{{ log entry *) if !debug_level > 0 then ( Printf.printf @@ -1190,7 +1188,7 @@ let res = mix_heur (default_heuristic_old ?struc ?advr g) 0.2 (fluents_heuristic g) in - if !debug_level > 1 then ( + if !debug_level > -4 (*1*) then ( print_endline "HEURISTIC MATRIX:"; Array.iteri (fun loc poffs -> Array.iteri (fun player poff -> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |