  A challenging problem for autonomous systems is to synthesize a reactive
controller that conforms to a set of given correctness properties. Linear
temporal logic (LTL) provides a formal language to specify the desired
behavioral properties of systems. In applications in which the specifications
originate from various aspects of the system design, or consist of a large set
of formulas, the overall system specification may be unrealizable. Driven by
this fact, we develop an optimization variant of synthesis from LTL formulas,
where the goal is to design a controller that satisfies a set of hard
specifications and minimally violates a set of soft specifications. To that
end, we introduce a value function that, by exploiting the LTL semantics,
quantifies the level of violation of properties. Inspired by the idea of
bounded synthesis, we fix a bound on the implementation size and search for an
implementation that is optimal with respect to the said value function. We
propose a novel maximum satisfiability encoding of the search for an optimal
implementation (within the given bound on the implementation size). We
iteratively increase the bound on the implementation size until a termination
criterion, such as a threshold over the value function, is met.
