|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.ObjectAgArch
jmadem.MADeMAgArch
public class MADeMAgArch
Basic architecture for a Jason agent performing MADeM decisions.
| Nested Class Summary | |
|---|---|
(package private) class |
MADeMAgArch.BidTimeout
Handles bid timeout for a specific decision making. |
| Field Summary | |
|---|---|
private boolean |
automaticRemoveOfMademData
Flag indicating whether to remove the data managed by MADeM after the winner determination problem. |
private java.util.concurrent.ConcurrentMap<Atom,FilterFunctionInt> |
filterFunctions
Filter functions repository |
private java.util.logging.Logger |
logger
Class logger |
private java.util.concurrent.ConcurrentMap<java.lang.Integer,DecisionData> |
mademData
Data managed by MADeM for every decision being performed: id_decision, agents involved, allocations, utility functions considered, bids... |
private Multimodality |
multimodality
Type of multimodality used in the Winner Determination Problem |
private java.util.concurrent.ConcurrentMap<Atom,java.lang.Float> |
personalWeights
Personal weights representing the internal attitude of the agent towards other individuals. |
private java.util.Random |
random
Random numbers generator |
private java.util.concurrent.ScheduledExecutorService |
timeoutScheduler
Pool of threads to schedule timeouts |
private int |
tout
Maximum waiting time for bids (in milliseconds). |
private java.util.concurrent.ConcurrentMap<Atom,UtilityFunctionInt> |
utilityFunctions
Utility functions repository |
private java.util.concurrent.ConcurrentMap<ListTerm,java.util.List<Term>> |
utilityValues
Storage devoted to hold utility values while they are calculated. |
private java.util.concurrent.ConcurrentMap<Atom,java.lang.Float> |
utilityWeights
Utility weights representing the importance given to each point of view in the multi-modal agent decision making. |
private Cuf |
welfare
Social welfare considered by the agent |
| Constructor Summary | |
|---|---|
MADeMAgArch()
Constructor of the MADeMAgArch class |
|
| Method Summary | |
|---|---|
boolean |
addFilterFunction(Atom fFuncName,
java.lang.String fFuncClass)
Registers a new filter function in the MADeM agent. |
boolean |
addUtilityFunction(Atom uFuncName,
java.lang.String uFuncClass)
Registers a new utility function in the MADeM agent. |
private void |
bid(ListTerm utilityKey)
Bids over a set of allocations coming from an auctioneer. |
void |
catchUtilityValue(ListTerm utilityKey,
Term utilityValue)
Catches a utility value coming from an AgentSpeak plan and stores it within the utility values storage. |
void |
checkMail()
Filters MADeM messages out of the agent Mailbox. |
private void |
computeUtilities(java.lang.String auctioneer,
Literal madem_auction)
Computes the utility of a set of allocations coming from an auctioneer according to the specified utility functions. |
boolean |
doFilter(Term allocation,
ListTerm fFuncs)
Computes if an allocation should be filtered out according to the specified filter functions. |
java.util.Set<Atom> |
getFilterFunctionNames()
Gets the names of the filter functions previously registered in the MADeM agent. |
java.lang.String |
getMultimodality()
Gets the type of multimodality used in the Winner Determination Problem. |
float |
getPersonalWeight(Atom agName)
Gets the personal weight of the MADeM agent towards another agent. |
java.util.concurrent.ConcurrentMap<Atom,java.lang.Float> |
getPersonalWeights()
Gets the personal weights of the MADeM agent. |
int |
getTimeout()
Gets bid timeout (in milliseconds). |
private float |
getUtility(java.lang.String auctioneer,
Term allocation,
UtilityFunctionInt utilityFunction)
Obtains the utility value given by a specific utility function. |
java.util.Set<Atom> |
getUtilityFunctionNames()
Gets the names of the utility functions previously registered in the MADeM agent. |
float |
getUtilityWeight(Atom utilityName)
Gets the weight of the MADeM agent for a certain utility function. |
java.util.concurrent.ConcurrentMap<Atom,java.lang.Float> |
getUtilityWeights()
Gets the utility weights of the MADeM agent. |
java.lang.String |
getWelfare()
Gets the social welfare of the MADeM agent. |
boolean |
isAutomaticRemoveOfMademData()
Gets the value of the automatic remove of MADeM data flag. |
private void |
processBid(java.lang.String bidder,
Literal madem_bid)
Process an external bid related to a certain decision. |
boolean |
removeFilterFunction(Atom fFuncName)
Removes a filter function previously registered in the MADeM agent. |
boolean |
removeUtilityFunction(Atom uFuncName)
Removes a utility function previously registered in the MADeM agent. |
void |
setAutomaticRemoveOfMademData(boolean automaticRemoveOfMademData)
Sets the value of the flag indicating whether to remove the data managed by MADeM after the winner determination problem. |
void |
setMultimodality(Multimodality new_multimodality)
Changes the type of multimodality used in the Winner Determination Problem. |
boolean |
setPersonalWeight(Atom agName,
java.lang.Float new_pw)
Changes the personal weight of the MADeM agent towards another agent. |
boolean |
setPersonalWeights(java.util.concurrent.ConcurrentMap<Atom,java.lang.Float> new_pw)
Changes the personal weights of the MADeM agent towards the other agents. |
boolean |
setTimeout(int new_tout)
Changes bid timeout to a new positive value. |
boolean |
setUtilityWeight(Atom utilityName,
java.lang.Float new_uw)
Changes the utility weight of the MADeM agent for a certain utility function. |
boolean |
setUtilityWeights(java.util.concurrent.ConcurrentMap<Atom,java.lang.Float> new_uw)
Changes the utility weights of the MADeM agent. |
void |
setWelfare(Cuf new_sw)
Changes social welfare of the MADeM agent. |
int |
startMADeMDecision(ListTerm ags,
ListTerm allocs,
ListTerm uFuncs,
boolean multipleSolutions,
boolean returnWelfare)
Starts a MADeM decision using the internal parameters of the agent. |
int |
startMADeMDecision(ListTerm ags,
ListTerm allocs,
ListTerm uFuncs,
java.util.concurrent.ConcurrentMap<Atom,java.lang.Float> pW,
java.util.concurrent.ConcurrentMap<Atom,java.lang.Float> uW,
Cuf sw,
Multimodality m,
int tout,
boolean multipleSolutions,
boolean returnWelfare)
Starts a MADeM decision by specifying all its parameters. |
private void |
winnerDeterminationProblem(int id_decision,
boolean timeout)
Solves the winner determination problem for a specific decision. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
private java.util.logging.Logger logger
private java.util.Random random
private java.util.concurrent.ConcurrentMap<Atom,FilterFunctionInt> filterFunctions
private java.util.concurrent.ConcurrentMap<Atom,UtilityFunctionInt> utilityFunctions
private java.util.concurrent.ConcurrentMap<Atom,java.lang.Float> utilityWeights
private java.util.concurrent.ConcurrentMap<Atom,java.lang.Float> personalWeights
private Cuf welfare
private Multimodality multimodality
private int tout
private java.util.concurrent.ScheduledExecutorService timeoutScheduler
private java.util.concurrent.ConcurrentMap<java.lang.Integer,DecisionData> mademData
private boolean automaticRemoveOfMademData
private java.util.concurrent.ConcurrentMap<ListTerm,java.util.List<Term>> utilityValues
| Constructor Detail |
|---|
public MADeMAgArch()
| Method Detail |
|---|
public void setAutomaticRemoveOfMademData(boolean automaticRemoveOfMademData)
automaticRemoveOfMademData - true if the MADeM data has to be removed after the Winner Determination Problem, false otherwisepublic boolean isAutomaticRemoveOfMademData()
public boolean addFilterFunction(Atom fFuncName,
java.lang.String fFuncClass)
fFuncName - name of the filter function to be addedfFuncClass - name of the class implementing the filter function
public boolean removeFilterFunction(Atom fFuncName)
fFuncName - name of the filter function to be removed
public java.util.Set<Atom> getFilterFunctionNames()
public boolean doFilter(Term allocation,
ListTerm fFuncs)
allocation - allocation being evaluatedfFuncs - names of filter functions being considered
public boolean addUtilityFunction(Atom uFuncName,
java.lang.String uFuncClass)
uFuncName - name of the utility function to be addeduFuncClass - name of the class implementing the utility function
public boolean removeUtilityFunction(Atom uFuncName)
uFuncName - name of the utility function to be removed
public java.util.Set<Atom> getUtilityFunctionNames()
public int startMADeMDecision(ListTerm ags,
ListTerm allocs,
ListTerm uFuncs,
boolean multipleSolutions,
boolean returnWelfare)
ags - names of the agents involved in the decisionallocs - allocations being considered as solutions for the decision problemuFuncs - names of the different utility functions to pay attention tomultipleSolutions - ask for all possible winners or just one randomly chosenreturnWelfare - whether to return the social welfare of winner allocations
public int startMADeMDecision(ListTerm ags,
ListTerm allocs,
ListTerm uFuncs,
java.util.concurrent.ConcurrentMap<Atom,java.lang.Float> pW,
java.util.concurrent.ConcurrentMap<Atom,java.lang.Float> uW,
Cuf sw,
Multimodality m,
int tout,
boolean multipleSolutions,
boolean returnWelfare)
ags - names of the agents involved in the decisionallocs - allocations being considered as solutions for the decision problemuFuncs - names of the different utility functions to pay attention topW - personal weights to be applied over external preferencesuW - utility weights in the multi-modal decisionsw - type of social welfare being consideredm - type of multimodality used in the Winner Determination Problemtout - timeout for getting bids (in milliseconds)multipleSolutions - ask for all possible winners or just one randomly chosenreturnWelfare - whether to return the social welfare of winner allocations
public void checkMail()
public boolean setTimeout(int new_tout)
new_tout - new timeout value (in milliseconds)
public int getTimeout()
public void setWelfare(Cuf new_sw)
new_sw - new social welfarepublic java.lang.String getWelfare()
public void setMultimodality(Multimodality new_multimodality)
new_multimodality - new type of multimodalitypublic java.lang.String getMultimodality()
public boolean setPersonalWeight(Atom agName,
java.lang.Float new_pw)
agName - name of the agentnew_pw - new personal weights
public float getPersonalWeight(Atom agName)
agName - name of the agent
public boolean setPersonalWeights(java.util.concurrent.ConcurrentMap<Atom,java.lang.Float> new_pw)
new_pw - new personal weights
public java.util.concurrent.ConcurrentMap<Atom,java.lang.Float> getPersonalWeights()
public float getUtilityWeight(Atom utilityName)
utilityName - name of the utility function
public boolean setUtilityWeight(Atom utilityName,
java.lang.Float new_uw)
utilityName - name of the utility functionnew_uw - new utility weights
public boolean setUtilityWeights(java.util.concurrent.ConcurrentMap<Atom,java.lang.Float> new_uw)
new_uw - new utility weights
public java.util.concurrent.ConcurrentMap<Atom,java.lang.Float> getUtilityWeights()
private void computeUtilities(java.lang.String auctioneer,
Literal madem_auction)
auctioneer - agent asking for preferencemadem_auction - allocations and utility functions being considered
public void catchUtilityValue(ListTerm utilityKey,
Term utilityValue)
utilityKey - identifier of the utility value being caughtutilityValue - utility valueprivate void bid(ListTerm utilityKey)
utilityKey - identifier of the utility values storage
private void processBid(java.lang.String bidder,
Literal madem_bid)
bidder - name of the agent who sent the bidmadem_bid - bid containing bidder's preferences
private float getUtility(java.lang.String auctioneer,
Term allocation,
UtilityFunctionInt utilityFunction)
auctioneer - agent asking for preferenceallocation - allocation being evaluatedutilityFunction - utility function being considered
private void winnerDeterminationProblem(int id_decision,
boolean timeout)
id_decision - Identifier of the decision being solved
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||