Skip to main content

Preference elicitation module for automated negotiation, extracted from the NegMAS library

Project description

negmas-elicit

PyPI version Tests Documentation License: AGPL v3 Python 3.12+

A library for preference elicitation during automated negotiations. This module was extracted from the negmas library to provide a focused, standalone package for elicitation capabilities.

Features

  • Multiple Elicitation Strategies: Pandora-based elicitors, Value of Information (VOI) elicitors, and baseline implementations
  • Query System: Flexible query types including range, rank, comparison, and marginal neutrality constraints
  • User Modeling: Simulate users with different response behaviors and costs
  • Expector Functions: Various strategies for handling uncertainty (mean, max, min, balanced, aspiring)
  • Mechanism Integration: SAOElicitingMechanism for running negotiations with preference elicitation

Installation

From PyPI

pip install negmas-elicit

From Source

git clone https://github.com/yasserfarouk/negmas-elicit.git
cd negmas-elicit
pip install -e .

Quick Start

from negmas import MappingUtilityFunction
from negmas.outcomes import make_issue
from negmas_elicit import (
    User,
    PandoraElicitor,
    SAOElicitingMechanism,
)

# Define the negotiation issues
issues = [make_issue(10, "price"), make_issue(5, "quality")]

# Create a user with a known utility function
ufun = MappingUtilityFunction(
    mapping=lambda o: o[0] / 10 + o[1] / 5,
    issues=issues,
)
user = User(ufun=ufun, cost=0.1)

# Create an elicitor
elicitor = PandoraElicitor(user=user)

# Use in a mechanism or standalone elicitation
# ...

Available Elicitors

Baseline Elicitors

  • DummyElicitor: No elicitation, uses prior beliefs
  • FullKnowledgeElicitor: Assumes complete knowledge of user preferences

Pandora Elicitors

  • PandoraElicitor: Standard Pandora's box approach
  • OptimalIncrementalElicitor: Optimal incremental elicitation
  • FastElicitor: Fast approximation
  • MeanElicitor, BalancedElicitor, AspiringElicitor: Different expectation strategies
  • OptimisticElicitor, PessimisticElicitor: Optimistic/pessimistic strategies

VOI Elicitors

  • VOIElicitor: Value of Information based elicitation (OQA)
  • VOIFastElicitor: Fast VOI approximation
  • VOIOptimalElicitor: Optimal VOI strategy
  • VOINoUncertaintyElicitor: VOI without uncertainty modeling

References

The elicitation algorithms implemented in this library are based on the following papers:

Algorithm Paper
Pandora's Box Baarslag, T., & Gerding, E. H. (2015). Optimal incremental preference elicitation during negotiation. IJCAI'15.
VOI / OQA Baarslag, T., & Kaisers, M. (2017). The Value of Information in Automated Negotiation. AAMAS'17.
FastVOI Mohammad, Y., & Nakadai, S. (2018). FastVOI: Efficient utility elicitation during negotiations. PRIMA'18.
Optimal VOI Mohammad, Y., & Nakadai, S. (2019). Optimal Value of Information Based Elicitation During Negotiation. AAMAS'19.

BibTeX

@inproceedings{baarslag2015optimal,
    title={Optimal incremental preference elicitation during negotiation},
    author={Baarslag, Tim and Gerding, Enrico H},
    booktitle={Proceedings of the 24th International Conference on Artificial Intelligence},
    pages={3--9},
    year={2015},
    organization={AAAI Press}
}

@inproceedings{baarslag2017value,
    title={The value of information in automated negotiation: A decision model for eliciting user preferences},
    author={Baarslag, Tim and Kaisers, Michael},
    booktitle={Proceedings of the 16th Conference on Autonomous Agents and MultiAgent Systems},
    pages={391--400},
    year={2017},
    organization={IFAAMAS}
}

@inproceedings{mohammad2018fastvoi,
    title={FastVOI: Efficient utility elicitation during negotiations},
    author={Mohammad, Yasser and Nakadai, Shinji},
    booktitle={International Conference on Principles and Practice of Multi-Agent Systems},
    pages={560--567},
    year={2018},
    organization={Springer}
}

@inproceedings{mohammad2019optimal,
    title={Optimal value of information based elicitation during negotiation},
    author={Mohammad, Yasser and Nakadai, Shinji},
    booktitle={Proceedings of the 18th International Conference on Autonomous Agents and MultiAgent Systems},
    pages={242--250},
    year={2019},
    organization={IFAAMAS}
}

Documentation

Full documentation is available at https://yasserfarouk.github.io/negmas-elicit/

Requirements

  • Python 3.12+
  • negmas >= 0.10.0

License

This project is licensed under the GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later). See the LICENSE file for details.

Citation

If you use this library in your research, please cite the negmas library:

@inproceedings{negmas2019,
  title={NegMAS: A Platform for Automated Negotiation},
  author={Mohammad, Yasser and Greenwald, Amy and Nakadai, Shinji},
  booktitle={International Conference on Principles and Practice of Multi-Agent Systems},
  pages={343--351},
  year={2019},
  organization={Springer}
}

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

negmas_elicit-0.1.0.tar.gz (144.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

negmas_elicit-0.1.0-py3-none-any.whl (46.6 kB view details)

Uploaded Python 3

File details

Details for the file negmas_elicit-0.1.0.tar.gz.

File metadata

  • Download URL: negmas_elicit-0.1.0.tar.gz
  • Upload date:
  • Size: 144.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for negmas_elicit-0.1.0.tar.gz
Algorithm Hash digest
SHA256 3df26333a68c1855eab5b35a35b1793095e48066457e5a80f86471c11b15cee6
MD5 c5147e12b1d16c58b4de8beca672e2b2
BLAKE2b-256 8b766e0007e9b19070d9747a9f10bb4c8c380d101f77ff3f5d6596321457bb2a

See more details on using hashes here.

Provenance

The following attestation bundles were made for negmas_elicit-0.1.0.tar.gz:

Publisher: publish.yml on autoneg/negmas-elicit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file negmas_elicit-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: negmas_elicit-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 46.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for negmas_elicit-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f3332191417db28ead78b8b4ba6e756f21e60fcf250cfd8c08f76bbc3de1ddc1
MD5 4984cfecf252edffc67167e5e3d65b73
BLAKE2b-256 a6ea322fde192b3abd410202077c09f24a82951752758ede6b9ca983a6dfcb80

See more details on using hashes here.

Provenance

The following attestation bundles were made for negmas_elicit-0.1.0-py3-none-any.whl:

Publisher: publish.yml on autoneg/negmas-elicit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page