Coder Social home page Coder Social logo

raviq / genon Goto Github PK

View Code? Open in Web Editor NEW
6.0 3.0 0.0 569 KB

Genon is a generator of nonlinear preferences for intelligent artificial agents.

License: GNU General Public License v3.0

Python 100.00%
preferences agent-based-modeling decision-making negotiation-support utility-theory nonlinear-equations complexity-measure complexity contracts-modeling contracts negotiation automated-trading artificial-intelligence

genon's Introduction

Genon License: GPL v3

  1. Description
  2. Prerequisites
  3. Generating a utility space for one agent
    4.1. Usage
    4.2. Example
  4. Generating utility spaces for two agent
    5.1. Usage
    5.2. Example
    5.3. Compatibility with Genius
  5. Citation
  6. Licence & Copyright

Description

Genon is a generator of nonlinear preferences for intelligent artificial agents. Nonlinear preferences are mathematically formulated using nonlinear utility spaces. In Genon, a nonlinear utility space is defined using multidimensional constraints.

A utility space is characterised by

  • n issues
  • m constraints
  • A distribution π mapping constraints to issues

Issues are the "things" that the agent is reasoning about.

Constraints are the "glue" that the agent is using to structure the issues according to his preferences. We distinguish three types of preferences, modelled using cubic, bell, and conic constraints:

The distribution π specifies the number of issues involved in one particular constraint. Genon supports three types of distributions:

  1. Uniform : All constraints have the same cardinality.

  2. Power-law: A small fraction of constraints involve most of the issues while the rest of the constraints involve fewer issues.

  3. Random : The cardinality of a constraint is randomly chosen from [1,n].

The distribution π controls the complexity of a preference profile and how it affects the agent's computational abilities in solving any given problem (negotiation, coordination, etc.).

Note that a utility space corresponds to a utility hypergraph where nodes represent the issues and hyperedges represent the constraints:

Theoretical details are found in citation.

Prerequisites

Generating a utility space for one agent

Usage

python     src/genon.py 
	   NumberofIssues (n)
	   NumberofConstraints (m)
	   ConstraintIssueDistribution (pi) in [complete | random | pl] 
	   ConstraintWeightDistribution in [complete | random | pl] 
	   Competitiveness in [complete | random | pl] 
	   MaxUtilityPerConstraint 
	   CompleteWeight 
	   CompleteCard 
	   NumberOfIterations 
	   ProfileName 
	   ProfileDirectory 

Example

python src/genon.py 2 5 pl random random 100 2 5 100 sample sample/

The output is stored in sample/ and contains:

File Description
2-5-pl-random-domain.xml Domain of the negotiation: issues, types, and bounds
Constraint-Issue_distribution.csv Distribution π
Constraint-Weight_distribution.csv Weights of the constraints
description_sample.txt General description of the utility space
figure_sample.png Hypergraph representation of the utility space
sample.xml Utility space of the agent

Generating utility spaces for two agent

In the bilateral case, two self-intersted agents 1 and 2 have two utility spaces (n, m1, π1 ) and (n, m2, π2 ). When generating such profiles, we can diversify them along the following lines. First, we assume that an agent’s utility space is built using the three types of constraints: linear (hyperplane), bell, or conic. Secondly, it is possible to adjust the complexity of any given utility space by specifying the constraint-issue distribution using the π distribution. Such connectivity affects the computational difficuty required to optimise over any given utility space. Utility spaces with randomised sets in particular, render the search for optimal solution more difficult.

Competitiveness

Each constraint from agent 1's utility space is used to generate a new constraint (in agent 2's utility space) having the same utility. The generation is done based on different sampling methods:

  • Zerosum: disjoint sets. E.g. for 1-dimensional constraints, c1=[0,1] and c2=[5,8].

  • Within: any constraint of agent 2 is a subset of the original constraint of agent 1, with the same utility. E.g. for 1-dimensional constraints, c1=[0,7] and c2=[1,4].

  • Random: any possible configuration (default mode).

Usage

python     src/genon2.py 
	   NumberofIssues 
	   NumberofConstraints 
	   ConstraintIssueDistribution (Pi) in [complete | random | pl] 
	   ConstraintWeightDistribution in [complete | random | pl] 
	   Competitivenss in [complete | random | pl] 
	   MaxUtilityPerConstraint 
	   CompleteWeight 
	   CompleteCard 
	   NumberOfIterations

Example

python src/genon2.py 2 5 random random random 100 2 5 100

The output will be stored in scenarios/2-5-random-random-random/ and contains:

File Description
2-5-random-random-domain.xml Domain of the negotiation: issues, types, and bounds
Constraint-Issue_distribution.csv Distribution π
Constraint-Weight_distribution.csv Weights of the constraints
description.txt General description of the utility space
pareto.png Pareto Frontier (image)
pareto.xml Pareto Frontier (list of points)
profile-1.xml Utility space of agent 1
profile-2.xml Utility space of agent 2

Compatibility

The generated profiles are compatible with Genius and were used for the bilateral automated negotiations of the ANAC2014 competition.

Aydogan, Reyhan, et al. "A baseline for non-linear bilateral negotiations: the full results of the agents competing in ANAC 2014." (2016): 1-25.

Citation

Hadfi, Rafik, and Takayuki Ito. "Complex multi-issue negotiation using utility hyper-graphs." Journal of Advanced Computational Intelligence Vol 19.4 (2015).

Hadfi, Rafik, and Takayuki Ito. "Constraint-Based Preferences via Utility Hyper-Graphs." MPREF@ AAAI. 2014.

Hadfi, Rafik, and Takayuki Ito. "Modeling complex nonlinear utility spaces using utility hyper-graphs." Modeling Decisions for Artificial Intelligence. Springer, Cham, 2014.

Hadfi, Rafik, and Takayuki Ito. "Cognition as a game of complexity." Proc. 12th International Conference on Cognitive Modeling (ICCM). 2013.

Licence & Copyright

This software was developed in the hope that it would be of some use to the agent research community, and is freely available for redistribution and/or modification under the terms of the GNU General Public Licence. It is distributed WITHOUT WARRANTY; without even the implied warranty of merchantability or fitness for a particular purpose. See the GNU General Public License for more details.

If you find this code to be of any use, please let me know. I would also welcome any feedback.

Copyright (c) 2015--2018 Rafik Hadfi, [email protected]

genon's People

Contributors

raviq avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.