iPref-R: A Qualitative Preference Reasoner
Slides for AAAI 2014 Tutotial on Representing and Reasoning with Qualitative Preferences: Tools and Applications
iPref-R is a reasoner for qualitative preferences expressed in languages such as CP-nets, TCP-nets and CI-nets. i-PrefR is founded on decision theory, formal methods and software engineering. The intended long-term goal of iPref-R is to support the following features.
- Support preferences specified in a variety of preference languages with various levels of expressivity
- Handle multiple stakeholders at different levels of authority who may hold possibly conflicting preferences
- Ability to deal with alternatives that are composite in nature
- Transparency and accountability to the user, i.e., explain to the user the rationale behind choosing some alternative(s) as preferred given his/her preferences
Presently, the iPref-R is available for preferences specified in CP-nets, TCP-nets (with unconditional relative importance) and CI-nets for decision problems involving a single stakeholder. It is implemented in Java.
Presently, the iPref-R is available for preferences specified in CP-nets, TCP-nets (with unconditional relative importance) and CI-nets for decision problems involving a single stakeholder. It is implemented in Java.
- Download iPref-R as a runnable jar
- Download iPref-R as a runnable jar including Java source
- Javadoc for the source code
Interfacing with iPref-R
- Input: A CP-net, TCP-net in XML format or CI-net in text format which will be translated into an SMV model corresponding to the induced preference graph of the CP-net, TCP-net or CI-net.
- Example 1: CP-net with consistent preferences (cycle-free induced preference graph)
- Example 2: CP-net with inconsistent preferences (cycles in the induced preference graph)
- Example 3: TCP-net with consistent preferences (cycle-free induced preference graph)
- Example 4: CI-net with consistent preferences (cycle-free induced preference graph)
- Requirements: Ensure that either the NuSMV model checker (that can be invoked from the command line using the command "NuSMV"), or the Cadence SMV model checker (that can be invoked from the command line using the command "smv") must be installed in the system. Note that the implementation is tested with NuSMV 2.4.3, but should work with later versions as well.
- Resoning Tasks:
- Consistency Testing: Is the induced preference graph cycle-free? Returns true or false along with a counterexample (cycle) if any.
- Dominance Testing: Does morePreferredOutcome dominate lessPreferredOutcome? Returns true or false along with proof (path from less preferred to most preferred outcome).
- Next Preferred Computation: Returns the next preferred outcome in a total ordering inconsistent with the induced preference graph. Note: This method has to be called within a session.
- Weak Order Computation: Computes a sequence of set of outcomes at subsequent levels in an optimistic minimal weak order extension inconsistent with the induced preference graph.
For further details regarding the usage, please contact me at the address on top of this page.
The theoretical foundations of the tool can be found in the paper Dominance Testing via Model Checking by Santhanam et al. (AAAI 2010).
Funding and Support
The research activities of the project are supported in parts by US National Science Foundation grants CCF 1143734 and CCF 0702758.