  We propose a method of optimizing monotone Boolean circuits by re-writing
them in a simpler, equivalent form. We use in total six heuristics: Hill
Climbing, Simulated Annealing, and variations of them, which operate on the
representation of the circuit as a logical formula. Our main motivation is to
improve performance in Attribute-Based Encryption (ABE) schemes for Boolean
circuits. Therefore, we show how our heuristics improve ABE systems for Boolean
circuits. Also, we run tests to evaluate the performance of our heuristics,
both as a standalone optimization for Boolean circuits and also inside ABE
systems.
