Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion main.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
import numpy as np
import unified_planning
from amlgym.metrics import syntactic_precision, syntactic_recall
from amlgym.util.util import empty_domain
from olam.util.util import empty_domain
from unified_planning.io import PDDLReader, PDDLWriter
from unified_planning.shortcuts import SequentialSimulator

Expand Down
28 changes: 28 additions & 0 deletions olam/util/util.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,40 @@
import itertools
import re

from unified_planning.io import PDDLReader, PDDLWriter
from unified_planning.model import Fluent, Object, Problem
from unified_planning.plans import ActionInstance
from unified_planning.shortcuts import BoolType

from olam.modeling.symbolic_observation import SymbolicObservation


def empty_domain(domain_path: str, empty_domain_path: str = 'empty.pddl'):
pddl_domain = PDDLReader().parse_problem(domain_path)

# Loop through all actions and remove preconditions and effects
for action in pddl_domain.actions:
action.clear_preconditions()
action.clear_effects()

domain_str = PDDLWriter(pddl_domain).get_domain()
pattern = re.compile(
r"(:action[\s\S]*?:parameters\s*\([^)]*\))\)",
re.MULTILINE
)

replacement = r"\1\n :precondition (and )\n :effect (and ))\n"

# TODO: open issue in up
domain_str = domain_str.replace(f"(domain {pddl_domain.name}-domain)",
f"(domain {pddl_domain.name})")

with open(empty_domain_path, 'w') as f:
f.write(pattern.sub(replacement, domain_str))

return empty_domain_path


def ground_lifted_atoms(action_instance: ActionInstance, lifted_atoms):
grounded_atoms = set()
for atom in lifted_atoms:
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ addopts = "--ignore=tests/heavy"

[project]
name = "olam"
version = "1.0.1"
version = "1.0.2"
dynamic = ["dependencies"]
requires-python = ">=3.10"
maintainers = [
Expand Down
5 changes: 3 additions & 2 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
unified-planning == 1.3.0
up-fast-downward == 0.5.2
clingo == 5.8.0
amlgym == 1.0.7
scikit-learn
ruff
pytest
pandas
gymnasium
gymnasium
amlgym
2 changes: 1 addition & 1 deletion tests/test_results.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import pandas as pd
import pytest
from amlgym.metrics import syntactic_precision, syntactic_recall
from amlgym.util.util import empty_domain
from olam.util.util import empty_domain
from unified_planning.io import PDDLReader
from unified_planning.shortcuts import SequentialSimulator

Expand Down
Loading