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.1.tar.gz (145.8 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.1-py3-none-any.whl (46.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: negmas_elicit-0.1.1.tar.gz
  • Upload date:
  • Size: 145.8 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.1.tar.gz
Algorithm Hash digest
SHA256 ccbe7d793fadcd1712ecad0071b26563890bd072a5166fefecf9367c048805cd
MD5 704935dd357e5fbc1ea24ad1815218cc
BLAKE2b-256 ffe234dc46923837f81c617fc1fcf92fb14a20a8046ee081019304170a646930

See more details on using hashes here.

Provenance

The following attestation bundles were made for negmas_elicit-0.1.1.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.1-py3-none-any.whl.

File metadata

  • Download URL: negmas_elicit-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 46.7 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 97a60c13857b4dd3d58de0f92d71a5a964fb0f8dd3c56babd8526e152e1dbc83
MD5 6c152bdc19a4784ff66d948611f6fe59
BLAKE2b-256 b1410dfdeb45d64947401582d8d00682238b7e5a651085527616a68cc8647ed9

See more details on using hashes here.

Provenance

The following attestation bundles were made for negmas_elicit-0.1.1-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