1. A method for using strategy optimization, the method being implemented by one or more data processors and comprising: creating, by at least one data processor, a strategy optimization influence diagram and a representative population to model a decision situation mathematically, the influence diagram graphically representing a decision model, with nodes or shapes representing variables in the decision model, and arcs or arrows between nodes representing relationships between variables; formatting, by at least one data processor, said strategy optimization influence diagram as a nonlinear optimization problem over a representative population; using, by at least one data processor, nonlinear optimization techniques to assign at least one action to each case in a representative population; creating, by at least one data processor, a strategy table containing all cases in said representative population, along with at least one assigned action for each case; applying, by at least one data processor, induction techniques to said strategy table to derive a set of rules from data; and operationalizing, by at least one data processor, a set of rules derived by induction through a decision engine; wherein said formatting said strategy optimization influence diagram as a nonlinear optimization problem over a representative population formulates a nonlinear optimization problem that substantially corresponds to a decision model specified in a modeling language; wherein an optimal solution to said decision model can optionally be determined by using integer programming; wherein a decision model is used an input to said strategy optimization influence diagram; wherein said formulating a given decision model as a nonlinear optimization problem further comprises: specifying, by at least one data processor, cases in said representative population; constructing, by at least one data processor, feasible actions for a decision for each case; and specifying, by at least one data processor, an objective function of said optimization, wherein said constructing feasible actions for a decision for each case comprises: notating, by at least one data processor, a set of feasible actions for each case as A_i; wherein A_i is a function of case-level constraints; for each case c_I instantiating, by at least one data processor, said decision keys E according to that case; for each case-level constraint K_j computing, by at least one data processor, a set A_ij of feasible decisions; setting, by at least one data processor, A_i to be a set of all actions in A that are feasible for all constraints, such that, A_i is the intersection of the sets A_ij; computing, by at least one data processor, a set A_ij of feasible decisions by selecting a method appropriate to a type of case-level constraint, wherein: for constraints of type “If q_j(E), then x in S_j” computing a logical predicate q_j (E); if q_j(E) is true, then setting A_ij to S_j; if q_j(E) is false, then setting A_ij to A; wherein all possible actions are feasible; for constraints of “h_j(E, x)<d_j” setting A_ij to an empty set: for each alternative action a in A computing a value of h_j(E, a); if h_j(E, a)<d_j, then adding a to A_ij.