package agents; import java.util.List; import genius.core.Bid; import genius.core.actions.Action; import genius.core.actions.Offer; import genius.core.parties.AbstractNegotiationParty; import genius.core.uncertainty.AdditiveUtilitySpaceFactory; import genius.core.uncertainty.ExperimentalUserModel; import genius.core.utility.AbstractUtilitySpace; public class UncertaintyAgentExample extends AbstractNegotiationParty { @Override public Action chooseAction(List> possibleActions) { System.out.println("UncertaintyAgentExample: "); System.out.println("User model: " + userModel); System.out.println("Incoming util space: " + getUtilitySpace()); Bid randomBid = getUtilitySpace().getDomain().getRandomBid(rand); System.out.println("Random bid util: " + getUtility(randomBid) + " for " + randomBid); if (userModel instanceof ExperimentalUserModel) { System.out.println("You have given the agent access to the real utility space for debugging purposes."); ExperimentalUserModel e = (ExperimentalUserModel) userModel; AbstractUtilitySpace realUSpace = e.getRealUtilitySpace(); System.out.println("Real utility space: " + realUSpace); } return new Offer(getPartyId(), generateRandomBid()); } /** * With this method, you can override the default estimate of the utility space given uncertain preferences specified by the user model. * This example sets every value to zero. */ @Override public AbstractUtilitySpace estimateUtilitySpace() { return new AdditiveUtilitySpaceFactory(getDomain()).getUtilitySpace(); } @Override public String getDescription() { return "Example agent that can deal with uncertain preferences"; } }