ai.libs.jaicore.planning.classical.problems.ce.CEAction Maven / Gradle / Ivy
package ai.libs.jaicore.planning.classical.problems.ce;
import java.util.HashMap;
import java.util.Map;
import ai.libs.jaicore.logic.fol.structure.CNFFormula;
import ai.libs.jaicore.logic.fol.structure.ConstantParam;
import ai.libs.jaicore.logic.fol.structure.Monom;
import ai.libs.jaicore.logic.fol.structure.VariableParam;
import ai.libs.jaicore.planning.core.Action;
@SuppressWarnings("serial")
public class CEAction extends Action {
public CEAction(final CEOperation operation, final Map grounding) {
super(operation, grounding);
}
public Map getAddLists() {
Map addLists = new HashMap<>();
CEOperation operation = ((CEOperation)this.getOperation());
Map grounding = this.getGrounding();
for (CNFFormula key : operation.getAddLists().keySet()) {
CNFFormula condition = new CNFFormula(key, grounding);
if (!condition.isObviouslyContradictory()) {
addLists.put(condition, new Monom(operation.getAddLists().get(key), grounding));
}
}
return addLists;
}
public Map getDeleteLists() {
CEOperation operation = ((CEOperation)this.getOperation());
Map grounding = this.getGrounding();
Map deleteLists = new HashMap<>();
for (CNFFormula key : operation.getDeleteLists().keySet()) {
CNFFormula condition = new CNFFormula(key, grounding);
if (!condition.isObviouslyContradictory()) {
deleteLists.put(condition, new Monom(operation.getDeleteLists().get(key), grounding));
}
}
return deleteLists;
}
}