-
Notifications
You must be signed in to change notification settings - Fork 10
Domains & Preference Profiles
Preference profiles are represented by means of additive utility functions. For example, if there are
four issues to negotiate about, the utility function can be computed by a weighted sum of the values associated
with each of these issues. So, let bid = (i1, i2, i3 , i4)
be a particular bid. Then the utility u(bid) = u(i1,i2,i3,i4)
(given weights w1, w2, w3, w4
) can be calculated by:
u(i1, i2, i3, i4) = w1 * u(i1) + w2 * u(i2 ) + w3 · u(i3) + w4 * u(i4)
To give an concrete example from Genius (preference profiles of ANAC2016/Caduceus), think about a negotiation scenario in a smart grid where agents are trying to come up an agreement on price, amount and time for the grid. Domain representation of this scenario can be (party_domain.xml):
...
<objective index="0" etype="objective" type="objective" description="" name="Party">
<issue index="1" etype="discrete" type="discrete" vtype="discrete" name="Food">
<item index="1" value="Chips and Nuts" cost="100"></item>
<item index="2" value="Finger-Food" cost="170"></item>
<item index="3" value="Handmade Food" cost="120" ></item>
<item index="4" value="Catering" cost="250"></item>
</issue>
<issue index="2" etype="discrete" type="discrete" vtype="discrete" name="Drinks">
<item index="1" value="Non-Alcoholic" cost="75"></item>
<item index="2" value="Beer Only" cost="300"></item>
<item index="3" value="Handmade Cocktails" cost="200"></item>
<item index="4" value="Catering" cost="450"></item>
</issue>
<issue index="3" etype="discrete" type="discrete" vtype="discrete" name="Location">
<item index="1" value="Party Tent" cost="200"></item>
<item index="2" value="Your Dorm" cost="100"></item>
<item index="3" value="Party Room" cost="400"></item>
<item index="4" value="Ballroom" cost="600"></item>
</issue>
<issue index="4" etype="discrete" type="discrete" vtype="discrete" name="Invitations">
<item index="1" value="Plain" cost="25"></item>
<item index="2" value="Photo" cost="75"></item>
<item index="3" value="Custom, Handmade" cost="50"></item>
<item index="4" value="Custom, Printed" cost="150"></item>
</issue>
<issue index="5" etype="discrete" type="discrete" vtype="discrete" name="Music">
<item index="1" value="MP3" cost="100"></item>
<item index="2" value="DJ" cost="250"></item>
<item index="3" value="Band" cost="350"></item>
</issue>
<issue index="6" etype="discrete" type="discrete" vtype="discrete" name="Cleanup">
<item index="1" value="Water and Soap" cost="20"></item>
<item index="2" value="Specialized Materials" cost="60"></item>
<item index="3" value="Special Equiment" cost="150"></item>
<item index="4" value="Hired Help" cost="200"></item>
</issue>
</objective>
...
A preference profile* based this specification can be:
...
<objective index="0" description="A preference profile" name="Party" type="objective" etype="objective">
<issue index="1" name="Food" type="discrete">
<item value="Chips and Nuts" evaluation="3"></item>
<item value="Finger-Food" evaluation="2"></item>
<item value="Handmade Food" evaluation="2"></item>
<item value="Catering" evaluation="1"></item>
</issue>
<issue index="2" name="Drinks" type="discrete">
<item value="Non-Alcoholic" evaluation="1"></item>
<item value="Beer Only" evaluation="3"></item>
<item value="Handmade Cocktails" evaluation="2"></item>
<item value="Catering" evaluation="1"></item>
</issue>
<issue index="3" name="Location" type="discrete" >
<item value="Party Tent" evaluation="2"></item>
<item value="Your Dorm" evaluation="1"></item>
<item value="Party Room" evaluation="4"></item>
<item value="Ballroom" evaluation="3"></item>
</issue>
<issue index="4" name="Invitations" type="discrete">
<item value="Plain" evaluation="1"></item>
<item value="Photo" evaluation="3"></item>
<item value="Custom, Handmade" evaluation="4"></item>
<item value="Custom, Printed" evaluation="2"></item>
</issue>
<issue index="5" name="Music" type="discrete">
<item value="MP3" evaluation="2"></item>
<item value="DJ" evaluation="3"></item>
<item value="Band" evaluation="1"></item>
</issue>
<issue index="6" name="Cleanup" type="discrete">
<item value="Water and Soap" evaluation="2"></item>
<item value="Specialized Materials" evaluation="3"></item>
<item value="Special Equiment" evaluation="1"></item>
<item value="Hired Help" evaluation="1"></item>
</issue>
<weight index="1" value="0.19"></weight>
<weight index="2" value="0.28"></weight>
<weight index="3" value="0.19"></weight>
<weight index="4" value="0.05"></weight>
<weight index="5" value="0.19"></weight>
<weight index="6" value="0.10"></weight>
</objective>
...
To see the domains that are provided with Genius check here.
*: edited version of the file.
Please create an issue, if you find any errors or you want a topic covered in this wiki.
- Java Programming Cheatsheet
- Setting Up Genius Environment
- Stacked Alternating Offers Protocol
- AbstractNegotationParty Methods
- How to generate a random bid?
- How to generate a random bid with a utility threshold?
- How to change the content of a bid?
- How to keep track of time in a negotiation session?
- How to get the maximum and minimum bid?
- How to iterate all bids in a domain?
- How to access weights of each issue?
- How to access the evaluation of a value?