MutexDetectors 1.0.0
dotnet add package MutexDetectors --version 1.0.0
NuGet\Install-Package MutexDetectors -Version 1.0.0
<PackageReference Include="MutexDetectors" Version="1.0.0" />
<PackageVersion Include="MutexDetectors" Version="1.0.0" />
<PackageReference Include="MutexDetectors" />
paket add MutexDetectors --version 1.0.0
#r "nuget: MutexDetectors, 1.0.0"
#:package MutexDetectors@1.0.0
#addin nuget:?package=MutexDetectors&version=1.0.0
#tool nuget:?package=MutexDetectors&version=1.0.0
<p align="center"> <img src="https://github.com/kris701/MutexDetectors/assets/22596587/c3099504-3137-4e2b-b3dc-c5f9b3b4b90a" width="200" height="200" /> </p>
Mutex Detectors
This project is a collection of mutex detectors.
You can use this package by the CLI tool:
dotnet run --domain domain.pddl --problem problem.pddl --detector EffectBalance
You can also find this project as a package on the NuGet Package Manager.
Effect Balance Mutex Detector
There is a simple predicate mutex detector included in PDDLSharp. It is capable of finding "balanced" predicates in a PDDLDecl, and assumes they are mutexes. The general process is:
- Let C be a new list of candidate mutexes
- Foreach action
- Get all predicates in the action effects
- Count how many
add
anddel
there is for the predicate name - If the amount of
add
anddel
is in balance,- Then add the predice to C
- Else, if C contains this predicate, remove it from C and blacklist it from reentering
- Return C
As an example, for the gripper
domain, the predicate at-robby
is "effect balanced". Since that:
- The action
move
's effects adds 1 and removes 1at-robby
- The action
pick
's effects does not touch the predicate - The action
drop
's effects does not touch the predicate
Hence, there was just as many add
as del
of the predicate at-robby
, so its assumed to be a mutex.
Examples
An example of how to find mutexes in a domain:
IErrorListener listener = new ErrorListener();
IParser<INode> parser = new PDDLParser(listener);
PDDLDecl decl = new PDDLDecl(...)
IMutexDetectors detector = new EffectBalanceMutexes();
List<PredicateExp> mutexes = detector.FindMutexes(decl);
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- PDDLSharp (>= 1.5.6)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
1.0.0 | 152 | 5/10/2024 |