[Toss-devel-svn] SF.net SVN: toss:[1720] trunk/Toss/Arena/DiscreteRule.ml
Status: Beta
Brought to you by:
lukaszkaiser
From: <luk...@us...> - 2012-06-05 10:39:16
|
Revision: 1720 http://toss.svn.sourceforge.net/toss/?rev=1720&view=rev Author: lukstafi Date: 2012-06-05 10:39:06 +0000 (Tue, 05 Jun 2012) Log Message: ----------- Heuristic generation: bug in monotonic case (generating precondition). Modified Paths: -------------- trunk/Toss/Arena/DiscreteRule.ml Modified: trunk/Toss/Arena/DiscreteRule.ml =================================================================== --- trunk/Toss/Arena/DiscreteRule.ml 2012-06-03 22:47:21 UTC (rev 1719) +++ trunk/Toss/Arena/DiscreteRule.ml 2012-06-05 10:39:06 UTC (rev 1720) @@ -151,12 +151,14 @@ let lhs_args = match r.rlmap with | None -> (* LHS and RHS vars are the same *) - args + Some args | Some rlmap -> - Array.map (fun e->List.assoc e rlmap) args in - LOG 4 "compose_pre: rel=%s; args=%s; lhs_args=%s" rel - (String.concat ", " (Array.to_list args)) - (String.concat ", " (Array.to_list lhs_args)); + (* omit conditions not on the LHS *) + try Some (Array.map (fun e->List.assoc e rlmap) args) + with Not_found -> None in + (* LOG 4 "compose_pre: rel=%s; args=%s; lhs_args=%s" rel + (String.concat ", " (Array.to_list args)) + (String.concat ", " (Array.to_list lhs_args)); *) (* remove potential condition for absence/presence of the fluent being just added / deleted *) let body = FormulaMap.map_formula @@ -167,7 +169,7 @@ positive/negative *) FormulaMap.map_Rel = (fun b_rel b_args -> let b = rel = b_rel && lhs_args = - Array.map Formula.var_str b_args in + Some (Array.map Formula.var_str b_args) in if b && Aux.Strings.mem rel nega_frels then Formula.And [] else if b && Aux.Strings.mem rel posi_frels then Formula.Or [] else Formula.Rel (b_rel, b_args))} body in This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |