| 351 | |
| 352 | |
| 353 | == BOA |
| 354 | Boa (Bidding, Opponent Model, Acceptance Model) is an attempt to split negotiation into three basic components: modeling the opponent's profile, determining a proper next action and determining when to accept [https://homepages.cwi.nl/~baarslag/pub/Decoupling_Negotiating_Agents_to_Explore_the_Space_of_Negotiation_Strategies_ACAN_2012.pdf]. The boa module allows parties to be written with this and provides example implementations of the components. |
| 355 | |
| 356 | |
| 357 | === BoaParty, DefaultBoa |
| 358 | DefaultBoa is an abstract party that takes BOA components and makes it into a runnable Party. How this is done is discussed in #WritingaBoaParty. |
| 359 | |
| 360 | BoaParty is a party that allows you to select the BOA components as needed using the Parameters. This is discussed in more detail in #BoaParty. |
| 361 | |
| 362 | == BoaState |
| 363 | The internal state information of DefaultBoa is stored in the BoaState. This allows efficient sharing of these internals with the components of a Boa party and helps improving efficiency of the code. |
| 364 | |
| 365 | The BOA model uses three major components: the OpponentModel, the BiddingStrategy and the AcceptanceStrategy. OpponentModel has been discussed already (see [#OpponentModel]). |
| 366 | |
| 367 | All subcomponents may be configurable through the parameters. The DefaultBoa just shares its state, with all parameters with all subcomponents. This means that the names of your parameters should avoid names already in use. |
| 368 | |
| 369 | === Bidding Strategy |
| 370 | A Bidding Strategy determines what action to take in which state, through this interface function |
| 371 | {{{ |
| 372 | Action getAction(BoaState state); |
| 373 | }}} |
| 374 | The following implementations are provided with the Boa Framework |
| 375 | |
| 376 | ||= Implementation =||= behaviour =||= parameters =|| |
| 377 | ||TimeDependentBiddingStrategy||Bids according to an exponentially decreasing utility target. See javadoc for details. ||e,k,min,max. See javadoc for details.|| |
| 378 | |
| 379 | You can create a custom BiddingStrategy by just implementing the BiddingStrategy interface. |
| 380 | |
| 381 | === Acceptance Strategy |
| 382 | A Acceptance Strategy determines what action to take in which state, through this interface function |
| 383 | {{{ |
| 384 | Boolean isAcceptable(Bid bid, BoaState negoState); |
| 385 | }}} |
| 386 | The following implementations are provided with the Boa Framework |
| 387 | |
| 388 | ||= Implementation =||= behaviour =||= parameters =|| |
| 389 | ||TimeDependentAcceptanceStrategy||Accepts according to an exponentially decreasing utility target. See javadoc for details. ||e,k,min,max. See javadoc for details.|| |
709 | | == BoaState |
710 | | The internal state information of DefaultBoa is stored in the BoaState. This allows efficient sharing of these internals with the major components of a Boa party. |
711 | | |
712 | | A DefaultBoa uses three major components: the OpponentModel, the BiddingStrategy and the AcceptanceStrategy. OpponentModel has been discussed already (see [#OpponentModel]). |
713 | | |
714 | | These components may be configurable through the parameters. Currently they just share the parameters with the DefaultBoa party. This means that the names of your parameters should avoid names already in use. |
715 | | |
716 | | |
717 | | === Bidding Strategy |
718 | | A Bidding Strategy determines what action to take in which state, through this interface function |
719 | | {{{ |
720 | | Action getAction(BoaState state); |
721 | | }}} |
722 | | The following implementations are provided with the Boa Framework |
723 | | |
724 | | ||= Implementation =||= behaviour =||= parameters =|| |
725 | | ||TimeDependentBiddingStrategy||Bids according to an exponentially decreasing utility target. See javadoc for details. ||e,k,min,max. See javadoc for details.|| |
726 | | |
727 | | You can create a custom BiddingStrategy by just implementing the BiddingStrategy interface. |
728 | | |
729 | | === Acceptance Strategy |
730 | | A Acceptance Strategy determines what action to take in which state, through this interface function |
731 | | {{{ |
732 | | Boolean isAcceptable(Bid bid, BoaState negoState); |
733 | | }}} |
734 | | The following implementations are provided with the Boa Framework |
735 | | |
736 | | ||= Implementation =||= behaviour =||= parameters =|| |
737 | | ||TimeDependentAcceptanceStrategy||Accepts according to an exponentially decreasing utility target. See javadoc for details. ||e,k,min,max. See javadoc for details.|| |