Changeset 926


Ignore:
Timestamp:
02/06/2011 11:16:53 PM (10 years ago)
Author:
joao.dias
Message:
 
Location:
AgentMind/branches/FAtiMA-Modular/FAtiMA/src/FAtiMA/Core
Files:
9 added
8 deleted
8 edited

Legend:

Unmodified
Added
Removed
  • AgentMind/branches/FAtiMA-Modular/FAtiMA/src/FAtiMA/Core/AgentCore.java

    r896 r926  
    2626import FAtiMA.Core.Display.AgentDisplayPanel; 
    2727import FAtiMA.Core.OCCAffectDerivation.OCCComponent; 
     28import FAtiMA.Core.componentTypes.IAdvancedPerceptionsComponent; 
     29import FAtiMA.Core.componentTypes.IAffectDerivationComponent; 
     30import FAtiMA.Core.componentTypes.IAppraisalDerivationComponent; 
     31import FAtiMA.Core.componentTypes.IBehaviourComponent; 
     32import FAtiMA.Core.componentTypes.IComponent; 
     33import FAtiMA.Core.componentTypes.IModelOfOtherComponent; 
     34import FAtiMA.Core.componentTypes.IProcessEmotionComponent; 
     35import FAtiMA.Core.componentTypes.IProcessExternalRequestComponent; 
    2836import FAtiMA.Core.deliberativeLayer.DeliberativeProcess; 
    2937import FAtiMA.Core.deliberativeLayer.EmotionalPlanner; 
  • AgentMind/branches/FAtiMA-Modular/FAtiMA/src/FAtiMA/Core/AgentModel.java

    r848 r926  
    11package FAtiMA.Core; 
    22 
     3import FAtiMA.Core.componentTypes.IComponent; 
    34import FAtiMA.Core.deliberativeLayer.DeliberativeProcess; 
    45import FAtiMA.Core.emotionalState.AppraisalFrame; 
  • AgentMind/branches/FAtiMA-Modular/FAtiMA/src/FAtiMA/Core/OCCAffectDerivation/OCCComponent.java

    r922 r926  
    55 
    66import FAtiMA.Core.AgentModel; 
    7 import FAtiMA.Core.IAffectDerivationComponent; 
    8 import FAtiMA.Core.IComponent; 
    9 import FAtiMA.Core.IModelOfOtherComponent; 
    107import FAtiMA.Core.Display.AgentDisplayPanel; 
     8import FAtiMA.Core.componentTypes.IAffectDerivationComponent; 
     9import FAtiMA.Core.componentTypes.IComponent; 
     10import FAtiMA.Core.componentTypes.IModelOfOtherComponent; 
    1111import FAtiMA.Core.emotionalState.ActiveEmotion; 
    1212import FAtiMA.Core.emotionalState.AppraisalFrame; 
  • AgentMind/branches/FAtiMA-Modular/FAtiMA/src/FAtiMA/Core/deliberativeLayer/ActionMonitor.java

    r667 r926  
    3434 
    3535import java.io.Serializable; 
     36import java.util.ArrayList; 
    3637 
     38import FAtiMA.Core.AgentModel; 
     39import FAtiMA.Core.conditions.Condition; 
    3740import FAtiMA.Core.deliberativeLayer.plan.Step; 
    3841import FAtiMA.Core.sensorEffector.Event; 
     42import FAtiMA.Core.wellFormedNames.SubstitutionSet; 
    3943 
    4044 
     
    6973     * @return - the monitored step 
    7074     */ 
    71     public Step GetStep() { 
     75    public Step getStep() { 
    7276        return _step; 
    7377    } 
     
    8084     *             monitored action, false otherwise 
    8185     */ 
    82     public boolean MatchEvent(Event e) { 
     86    public boolean matchEvent(Event e) { 
    8387        return Event.MatchEvent(_event,e); 
    8488    } 
     
    8993     * @return allways returns false 
    9094     */ 
    91     public boolean Expired() { 
     95    public boolean expired() { 
    9296        return false; 
     97    } 
     98     
     99    /** 
     100     * indicates if the action's preconditions are verified and the action can thus complete 
     101     * if the action's preconditions are not verified, then it means that the action will fail 
     102     * @return 
     103     */ 
     104    public boolean checkPreconditions(AgentModel am) 
     105    { 
     106        ArrayList<SubstitutionSet> ss = Condition.CheckActivation(am, _step.getPreconditions()); 
     107         
     108        return ss != null; 
    93109    } 
    94110     
  • AgentMind/branches/FAtiMA-Modular/FAtiMA/src/FAtiMA/Core/deliberativeLayer/DeliberativeProcess.java

    r911 r926  
    126126 
    127127import FAtiMA.Core.AgentModel; 
    128 import FAtiMA.Core.IAppraisalDerivationComponent; 
    129 import FAtiMA.Core.IBehaviourComponent; 
    130 import FAtiMA.Core.IComponent; 
    131 import FAtiMA.Core.IModelOfOtherComponent; 
    132128import FAtiMA.Core.ValuedAction; 
    133129import FAtiMA.Core.Display.AgentDisplayPanel; 
     130import FAtiMA.Core.componentTypes.IAppraisalDerivationComponent; 
     131import FAtiMA.Core.componentTypes.IBehaviourComponent; 
     132import FAtiMA.Core.componentTypes.IComponent; 
     133import FAtiMA.Core.componentTypes.IModelOfOtherComponent; 
    134134import FAtiMA.Core.conditions.Condition; 
    135135import FAtiMA.Core.deliberativeLayer.goals.ActivePursuitGoal; 
     
    148148import FAtiMA.Core.sensorEffector.Parameter; 
    149149import FAtiMA.Core.util.AgentLogger; 
     150import FAtiMA.Core.util.Constants; 
    150151import FAtiMA.Core.wellFormedNames.Name; 
    151152import FAtiMA.Core.wellFormedNames.Substitution; 
     
    690691         
    691692                 
    692                 if(_actionMonitor != null && _actionMonitor.MatchEvent(event)) { 
    693                     if(_actionMonitor.GetStep().getAgent().isGrounded() &&   
    694                                 !_actionMonitor.GetStep().getAgent().toString().equals("SELF")) 
     693                if(_actionMonitor != null && _actionMonitor.matchEvent(event)) { 
     694                    if(_actionMonitor.getStep().getAgent().isGrounded() &&   
     695                                !_actionMonitor.getStep().getAgent().toString().equals(Constants.SELF)) 
    695696                    { 
    696697                        //the agent was waiting for an action of other agent to be complete 
     
    698699                        //we cannot just compare the names, we need to try to unify them 
    699700                        if(Unifier.Unify(event.toStepName(),  
    700                                         _actionMonitor.GetStep().getName()) != null) 
     701                                        _actionMonitor.getStep().getName()) != null) 
    701702                        { 
    702                                 _actionMonitor.GetStep().IncreaseProbability(am); 
     703                                _actionMonitor.getStep().IncreaseProbability(am); 
    703704                                //System.out.println("Calling updateEffectsProbability (other's action: step completed)"); 
    704                                 _actionMonitor.GetStep().updateEffectsProbability(am); 
     705                                _actionMonitor.getStep().updateEffectsProbability(am); 
    705706                        } 
    706707                        else 
     
    708709                                for(IActionFailureStrategy s : _actionFailureStrategies) 
    709710                                { 
    710                                         s.perceiveActionFailure(am, _actionMonitor.GetStep()); 
     711                                        s.perceiveActionFailure(am, _actionMonitor.getStep()); 
    711712                                } 
    712713                     
    713                                 _actionMonitor.GetStep().DecreaseProbability(am); 
     714                                _actionMonitor.getStep().DecreaseProbability(am); 
    714715                        } 
    715716                    } 
     
    718719                        for(IActionSuccessStrategy s : _actionSuccessStrategies) 
    719720                        { 
    720                                 s.perceiveActionSuccess(am, _actionMonitor.GetStep()); 
     721                                s.perceiveActionSuccess(am, _actionMonitor.getStep()); 
    721722                        } 
    722723                        //System.out.println("Calling updateEffectsProbability (self: step completed)"); 
    723                         _actionMonitor.GetStep().updateEffectsProbability(am); 
     724                        _actionMonitor.getStep().updateEffectsProbability(am); 
    724725                    } 
    725726                                 
     
    787788                float EU; 
    788789                 
    789                  
    790                  
    791790                maxUtility = -200; 
    792791                 
     
    930929                        { 
    931930                                RemoveIntention(i); 
    932                                 _actionMonitor = null; 
    933931                                for(IGoalSuccessStrategy s: _goalSuccessStrategies) 
    934932                                { 
    935933                                        s.perceiveGoalSuccess(am, i.getGoal()); 
    936934                                } 
    937                                 i.ProcessIntentionSuccess(am);                           
     935                                i.ProcessIntentionSuccess(am); 
     936                                cancelAction(am); 
    938937                        } 
    939938                        else if(i.getGoal().CheckFailure(am)) 
    940939                        { 
    941940                                RemoveIntention(i); 
    942                                  
    943                                 _actionMonitor = null; 
    944941                                for(IGoalFailureStrategy s: _goalFailureStrategies) 
    945942                                { 
     
    947944                                } 
    948945                                i.ProcessIntentionFailure(am); 
     946                                cancelAction(am); 
    949947                        } 
    950948                        else if(i.NumberOfAlternativePlans() == 0) 
     
    956954                                i.ProcessIntentionFailure(am); 
    957955                                _currentIntention = null; 
     956                                //we need to maintain the goal failure in memory (remembering there is no way to achieve the goal)  
     957                                //if there is no strong commitment 
    958958                                if(i.IsStrongCommitment()) 
    959959                                { 
     960                                        RemoveIntention(i);      
     961                                } 
     962                                cancelAction(am); 
     963                        } 
     964                        else if(!i.getGoal().checkPreconditions(am)) 
     965                        { 
     966                                //this is done only if the agent hasn't tried to do anything yet, he cancels the goal out 
     967                                //if the preconditions are not yet established 
     968                                if(!i.IsStrongCommitment()) 
     969                                { 
    960970                                        RemoveIntention(i); 
    961                                         _actionMonitor = null; 
    962                                 } 
    963                         } 
    964                         else if(!i.getGoal().checkPreconditions(am)) 
    965                         { 
    966                                 RemoveIntention(i); 
    967                                 if(i.IsStrongCommitment()) 
    968                                 { 
    969                                         //if(_selectedAction != null) 
    970                                         { 
    971                                                 am.getRemoteAgent().cancelAction(); 
    972                                                 _actionMonitor = null; 
    973                                                 _selectedAction = null; 
    974                                         } 
    975                                          
    976                                         i.ProcessIntentionCancel(am); 
    977971                                } 
    978972                        } 
     
    10611055        } 
    10621056         
     1057        private void cancelAction(AgentModel am) 
     1058        { 
     1059                if(_actionMonitor!=null) 
     1060                { 
     1061                        if(_actionMonitor.getStep().getAgent().toString().equals(Constants.SELF)) 
     1062                        { 
     1063                                am.getRemoteAgent().cancelAction(); 
     1064                        } 
     1065                        _actionMonitor = null; 
     1066                } 
     1067                 
     1068                _selectedAction = null; 
     1069        } 
     1070         
    10631071        public void AppraiseSelfActionFailed(Event e) 
    10641072        { 
    10651073                if(_actionMonitor != null) 
    10661074                { 
    1067                         if(_actionMonitor.MatchEvent(e)) 
     1075                        if(_actionMonitor.matchEvent(e)) 
    10681076                        { 
    10691077                                _actionMonitor = null; 
     
    11001108                 
    11011109                Substitution sub = new Substitution(_selectedAction.getAgent(), 
    1102                                 new Symbol("SELF")); 
     1110                                new Symbol(Constants.SELF)); 
    11031111                 
    11041112                Plan clonedPlan = (Plan) _selectedPlan.clone(); 
     
    11261134                } 
    11271135            } 
    1128             else if(!_selectedAction.getAgent().toString().equals("SELF")) 
     1136            else if(!_selectedAction.getAgent().toString().equals(Constants.SELF)) 
    11291137            { 
    11301138                //we have to wait for another agent to act 
     
    11601168            } 
    11611169             
    1162             e = new Event("SELF",action,target); 
     1170            e = new Event(Constants.SELF,action,target); 
    11631171        _actionMonitor = new ActionMonitor(_selectedAction,e); 
    11641172         
     
    12371245        public void update(AgentModel am, long time) 
    12381246        { 
    1239                 if(_actionMonitor != null && _actionMonitor.Expired()) { 
    1240                         AgentLogger.GetInstance().logAndPrint("Action monitor expired: " + _actionMonitor.toString()); 
    1241                         //If the action expired we must check the plan links (continuous planning) 
    1242                         //just to make sure 
    1243                         CheckLinks(am); 
    1244                          
    1245                          
    1246                         //System.out.println("Calling UpdateCertainty (action monitor expired)"); 
    1247                         for(IActionFailureStrategy s : _actionFailureStrategies) 
    1248                         { 
    1249                                 s.perceiveActionFailure(am, _actionMonitor.GetStep()); 
    1250                         } 
    1251                         _actionMonitor.GetStep().DecreaseProbability(am); 
    1252                          
    1253                         UpdateProbabilities(); 
    1254                     _actionMonitor = null; 
     1247                if(_actionMonitor != null) 
     1248                { 
     1249                        if(_actionMonitor.expired() || !_actionMonitor.checkPreconditions(am)) 
     1250                        { 
     1251                                AgentLogger.GetInstance().logAndPrint("Action monitor failed or expired: " + _actionMonitor.toString()); 
     1252                                //If the action expired or failed we must check the plan links (continuous planning) 
     1253                                //just to make sure 
     1254                                CheckLinks(am); 
     1255                                 
     1256                                for(IActionFailureStrategy s : _actionFailureStrategies) 
     1257                                { 
     1258                                        s.perceiveActionFailure(am, _actionMonitor.getStep()); 
     1259                                } 
     1260                                _actionMonitor.getStep().DecreaseProbability(am); 
     1261                                 
     1262                                UpdateProbabilities(); 
     1263                                 
     1264                                cancelAction(am); 
     1265                            _actionMonitor = null; 
     1266                        } 
    12551267                } 
    12561268        } 
  • AgentMind/branches/FAtiMA-Modular/FAtiMA/src/FAtiMA/Core/deliberativeLayer/ExpirableActionMonitor.java

    r667 r926  
    7070     * @return true if the Monitor waited more than specified, false otherwise 
    7171     */ 
    72     public boolean Expired() { 
     72    public boolean expired() { 
    7373        return  AgentSimulationTime.GetInstance().Time() > _endTime; 
    7474    } 
  • AgentMind/branches/FAtiMA-Modular/FAtiMA/src/FAtiMA/Core/reactiveLayer/ReactiveProcess.java

    r896 r926  
    6565 
    6666import FAtiMA.Core.AgentModel; 
    67 import FAtiMA.Core.IAppraisalDerivationComponent; 
    68 import FAtiMA.Core.IBehaviourComponent; 
    69 import FAtiMA.Core.IComponent; 
    70 import FAtiMA.Core.IModelOfOtherComponent; 
    7167import FAtiMA.Core.ValuedAction; 
    7268import FAtiMA.Core.Display.AgentDisplayPanel; 
    7369import FAtiMA.Core.OCCAffectDerivation.OCCAppraisalVariables; 
    7470import FAtiMA.Core.OCCAffectDerivation.OCCComponent; 
     71import FAtiMA.Core.componentTypes.IAppraisalDerivationComponent; 
     72import FAtiMA.Core.componentTypes.IBehaviourComponent; 
     73import FAtiMA.Core.componentTypes.IComponent; 
     74import FAtiMA.Core.componentTypes.IModelOfOtherComponent; 
    7575import FAtiMA.Core.emotionalState.AppraisalFrame; 
    7676import FAtiMA.Core.sensorEffector.Event; 
  • AgentMind/branches/FAtiMA-Modular/FAtiMA/src/FAtiMA/Core/sensorEffector/RemoteAgent.java

    r911 r926  
    8989import FAtiMA.Core.AgentModel; 
    9090import FAtiMA.Core.AgentSimulationTime; 
    91 import FAtiMA.Core.IComponent; 
    92 import FAtiMA.Core.IProcessExternalRequestComponent; 
    9391import FAtiMA.Core.ValuedAction; 
     92import FAtiMA.Core.componentTypes.IComponent; 
     93import FAtiMA.Core.componentTypes.IProcessExternalRequestComponent; 
    9494import FAtiMA.Core.emotionalState.EmotionalState; 
    9595import FAtiMA.Core.util.AgentLogger; 
Note: See TracChangeset for help on using the changeset viewer.