public long logicalOptimization() {
final Date start = new Date();
this.evaluator.logicalOptimization();
this.evaluator.setBindingsVariablesBasedOnOperatorgraph();
final RIFRules0RulePackage rules0 = new RIFRules0RulePackage();
rules0.applyRules(this.evaluator.getRootNode());
final RIFRules1RulePackage rules1 = new RIFRules1RulePackage();
rules1.applyRules(this.evaluator.getRootNode());
final RIFRules2RulePackage rules2 = new RIFRules2RulePackage();
rules2.applyRules(this.evaluator.getRootNode());
final RIFRules3RulePackage rules3 = new RIFRules3RulePackage();