Skip to content

Domains & Preference Profiles

Taha Doğan Güneş edited this page Feb 21, 2018 · 13 revisions

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.

Clone this wiki locally