Program (2mb PDF)

  Invited Speakers
  Research Papers
  Student Research Comp.
  Doctoral Symposium
  Educators' Symposium
  Wiki Symposium
  Dynamic Lang. Symp.
  Practitioner Reports
  Lightning Talks
  Instant Arts School Exp.
Other Events
Resort Map (364kb PDF)
Resort Map (JPG)



view, help

"CoJava: A Unified Language for Simulation and Decision Optimization"




  > Demonstrations

 : Wednesday

CoJava: A Unified Language for Simulation and Decision Optimization

Courtyard (room B)
Wednesday, 14:00, 45 minutes



Alexander Brodsky, George Mason University
Hadon Nash, Google

Demonstration number: 20

We have proposed and implemented, and will demonstrate, the language CoJava, which offers both the advantages of simulation-like process modeling, and the capabilities of true decision optimization. By design, the syntax of CoJava is identical to the programming language Java, extended with special constructs to (1) make a non-deterministic choice of a numeric value, (2) assert a constraint, and (3) designate a program variable as the objective to be optmized. A CoJava program thus defines a set of nondeterministic execution paths, each being a program run with specific selection of values in the choice statements. The semantics of CoJava interprets a program as an optimal nondeterministic execution path, namely, a path that (1) satisfies the range conditions in the {\em choice} statements, (2) satisfies the assert-constraint statements, and (3) produces the optimal value in a designated program variable, among all execution paths that satisfy (1) and (2). Thus, to run a CoJava program amounts to first finding an optimal execution path, and then procedurally executing it. To find an optimal non-deterministic execution path, we have developed a reduction to a standard constraint optimization formulation. Constraint variables represent values in program variables that can be created at any state of a non-deterministic execution. Constraints encode transitions, triggered by CoJava statements, from one program state to the next. Based on the reduction, we have developed a CoJava constraint compiler. The compiler operates by first translating the Java program into a similar Java program in which the primitive numeric operators and data types are replaced by symbolic constraint operators and data types. This intermediate java program functions as a constraint generator. This program is compiled and executed to produce a symbolic decision problem. The decision problem is then submitted to an external optimization solver. Keywords: constraints, optimization, simulation