Last change
on this file was 1, checked in by Wouter Pasman, 6 years ago |
Initial import : Genius 9.0.0
|
File size:
1.2 KB
|
Rev | Line | |
---|
[1] | 1 | package agents.anac.y2010.AgentSmith;
|
---|
| 2 | import java.util.Comparator;
|
---|
| 3 |
|
---|
| 4 | import genius.core.Bid;
|
---|
| 5 |
|
---|
| 6 | /*
|
---|
| 7 | * The BidComparator compares two given bids. This class is used to slowly descent to the opponent while
|
---|
| 8 | * staying above the given threshold (OWN_UTILITY_WEIGHT), which determines how much he values his
|
---|
| 9 | * own interest or wants to give in a lot to the opponent to make him 'happy'.
|
---|
| 10 | */
|
---|
| 11 | public class BidComparator implements Comparator<Bid> {
|
---|
| 12 | private PreferenceProfileManager fPreferenceProfile;
|
---|
| 13 |
|
---|
| 14 |
|
---|
| 15 |
|
---|
| 16 | public BidComparator(PreferenceProfileManager pProfile) {
|
---|
| 17 | this.fPreferenceProfile = pProfile;
|
---|
| 18 | }
|
---|
| 19 |
|
---|
| 20 | /*
|
---|
| 21 | * returns 1 if his own bid is better than the opponents, -1 otherwise
|
---|
| 22 | */
|
---|
| 23 | public int compare(Bid b1, Bid b2) {
|
---|
| 24 | return getMeasure(b2) > getMeasure(b1) ? -1 : 1;
|
---|
| 25 | }
|
---|
| 26 |
|
---|
| 27 | /*
|
---|
| 28 | * returns a double that represents the value of a value of a bid, taking into account both the agents
|
---|
| 29 | * own and opponents' utility.
|
---|
| 30 | */
|
---|
| 31 | public double getMeasure(Bid b1) {
|
---|
| 32 | double a = (1 - this.fPreferenceProfile.getMyUtility(b1));
|
---|
| 33 | double b = (1 - this.fPreferenceProfile.getOpponentUtility(b1));
|
---|
| 34 |
|
---|
| 35 | double alpha = Math.atan(b/a);
|
---|
| 36 |
|
---|
| 37 | return a + b + (0.5*Math.PI / alpha) * 0.5*Math.PI;
|
---|
| 38 | }
|
---|
| 39 |
|
---|
| 40 | }
|
---|
Note:
See
TracBrowser
for help on using the repository browser.