-
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 a party domain), think about a negotiation scenario where agents are trying to come up an agreement on items for a party. Domain representation of this scenario can be (party_domain.xml*):
...
<objective index="0" name="Party">
<issue index="1" type="discrete" name="Food">
<item index="1" value="Chips and Nuts"></item>
<item index="2" value="Finger-Food"></item>
<item index="3" value="Handmade Food"></item>
<item index="4" value="Catering"></item>
</issue>
<issue index="2" type="discrete" name="Drinks">
<item index="1" value="Non-Alcoholic"></item>
<item index="2" value="Beer Only"></item>
<item index="3" value="Handmade Cocktails"></item>
<item index="4" value="Catering"></item>
</issue>
<issue index="3" type="discrete" name="Location">
<item index="1" value="Party Tent"></item>
<item index="2" value="Your Dorm"></item>
<item index="3" value="Party Room"></item>
<item index="4" value="Ballroom"></item>
</issue>
<issue index="4" type="discrete" name="Invitations">
<item index="1" value="Plain"></item>
<item index="2" value="Photo"></item>
<item index="3" value="Custom, Handmade"></item>
<item index="4" value="Custom, Printed"></item>
</issue>
<issue index="5" type="discrete" name="Music">
<item index="1" value="MP3"></item>
<item index="2" value="DJ"></item>
<item index="3" value="Band"></item>
</issue>
<issue index="6" type="discrete" name="Cleanup">
<item index="1" value="Water and Soap"></item>
<item index="2" value="Specialized Materials"></item>
<item index="3" value="Special Equiment"></item>
<item index="4" value="Hired Help"></item>
</issue>
</objective>
...
A bid in this domain can be (as Issue : Value pairs):
bid = {
Food: Handmade Food,
Drinks: Beer Only,
Location: Party Room,
Invitations: Photo,
Music: MP3,
Clean-up: Water and Soap
}
A preference profile* of an agent 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>
...
In this preference profile, Issue Drinks is the important factor that affects the utility of the agent. Also particularly for Issue Drinks, according to this preference profile, agent favours Beer Only more than other values(Non-Alcoholic
, Handmade Cocktails
, Catering
). The least favourable item(s) in this case Non-Alcoholic and Catering options.
It is important to note that, the evaluation
attribute does not necessarily always mean a preference order. The attribute can be sometimes 10,25,100
or 0.4,0.1
. If one or more utilities are more than 1.0
, the total utility of an offer is calculated by this equation:
If all utilities are less or equal to 1.0
, then there is no normalization step. They are used as it is. For more about this, check the javadoc about EvaluatorDiscrete
class.
To access these values, take a look at this page.
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?