Changeset 436


Ignore:
Timestamp:
09/14/2010 04:41:03 PM (9 years ago)
Author:
myl
Message:

Moving all STEM events into the current episode during save to prevent the events being saved to the wrong episode, because when the agent is being loaded the next time, a new episode would start

Location:
AgentMind/trunk/AgentMind
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • AgentMind/trunk/AgentMind/AgentLauncher/src/AgentLauncher.java

    r432 r436  
    7878                                 
    7979                        case AgentPlatform.WORLDSIM: 
    80                                 String saveDirectory = ""; 
     80                                String saveDirectory = "data/characters/minds/state/"; 
    8181                                if (args2.length == 4){ 
    8282                                        agent = new Agent(agentPlatform, args2[1],Integer.parseInt(args2[2]),saveDirectory,args2[3]); 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/Agent.java

    r435 r436  
    211211        { 
    212212                try{ 
     213                        AgentLogger.GetInstance().initialize(fileName); 
    213214                        _shutdown = false; 
    214215                        _numberOfCycles = 0; 
    215216                         
    216                         if(agentPlatform == AgentPlatform.ION) 
    217                         { 
    218                                 _remoteAgent = new IONRemoteAgent(host,port,this); 
    219                         } 
    220                         else if (agentPlatform == AgentPlatform.WORLDSIM) 
    221                         { 
    222                                 _remoteAgent = new WorldSimulatorRemoteAgent(host,port,this,new HashMap<String,String>()); 
    223                         } 
    224                           
    225217                        LoadAgentState(directory + fileName);            
    226218                        // creating a new episode when the agent loads 13/09/10 
    227219                        _memory.getEpisodicMemory().StartEpisode(_memory); 
    228220                         
     221                        if(agentPlatform == AgentPlatform.ION) 
     222                        { 
     223                                _remoteAgent = new IONRemoteAgent(host,port,this); 
     224                        } 
     225                        else if (agentPlatform == AgentPlatform.WORLDSIM) 
     226                        { 
     227                                _remoteAgent = new WorldSimulatorRemoteAgent(host,port,this,new HashMap<String,String>()); 
     228                        }                        
     229                        _remoteAgent.LoadState(fileName+"-RemoteAgent.dat"); 
    229230                } 
    230231                catch (Exception e) { 
     
    443444                s.close(); 
    444445                in.close(); 
    445  
     446                 
    446447                AgentSimulationTime.LoadState(fileName+"-Timer.dat"); 
    447448                ActionLibrary.LoadState(fileName+"-ActionLibrary.dat"); 
    448449                 
    449                 _remoteAgent.LoadState(fileName+"-RemoteAgent.dat"); 
     450                //_remoteAgent.LoadState(fileName+"-RemoteAgent.dat"); 
    450451        } 
    451452         
     
    885886                String fileName = _saveDirectory + agentName; 
    886887 
     888                // Moving all the STEM into AM before saving because when it loads the next time 
     889                // a new episode will be started. This is to prevent the rest of the STEM events 
     890                // being stored in the wrong episode 
     891                // Meiyii 13/09/10 
     892                _memory.getEpisodicMemory().MoveSTEMtoAM(); 
     893                 
    887894                AgentSimulationTime.SaveState(fileName+"-Timer.dat"); 
    888895                ActionLibrary.SaveState(fileName+"-ActionLibrary.dat"); 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/memory/episodicMemory/AutobiographicalMemory.java

    r435 r436  
    133133                 
    134134                synchronized (this) { 
    135                         if(this._memoryEvents.size() == 0) 
    136                         { 
    137                                 event = new MemoryEpisode(location, new Time()); 
    138                         } 
    139                         else  
    140                         { 
    141                                 event = (MemoryEpisode) this._memoryEvents.get(this._memoryEvents.size()-1);             
    142                         } 
     135                        event = new MemoryEpisode(location, new Time());                         
    143136                        this._memoryEvents.add(event); 
    144137                }                
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/memory/episodicMemory/EpisodicMemory.java

    r435 r436  
    224224        /*  
    225225         * Start a new episode depending on the requirements of the different scenarios 
     226         * Meiyii 13/09/10 
    226227         */ 
    227228        public void StartEpisode(Memory m) 
     
    288289        } 
    289290         
     291        /*  
     292         * Empty STEM into AM before the agent shut down 
     293         * Meiyii 13/09/10 
     294         */ 
     295        public void MoveSTEMtoAM() 
     296        { 
     297                for (int i=0; i < _stm.GetCount(); i++) 
     298                { 
     299                        ActionDetail detail = _stm.getDetails().get(i); 
     300                        if((detail.getIntention() != null && (detail.getStatus().equals(GoalEvent.GetName(GoalEvent.ACTIVATION)) ||  
     301                                        detail.getStatus().equals(GoalEvent.GetName(GoalEvent.SUCCESS)) || 
     302                                        detail.getStatus().equals(GoalEvent.GetName(GoalEvent.FAILURE)))) || 
     303                                        (detail.getAction() != null && (detail.getEmotion().GetType()) != EmotionType.NEUTRAL)) 
     304                        { 
     305                                _am.StoreAction(detail);                                         
     306                        } 
     307                        _stm.getDetails().clear(); 
     308                } 
     309        } 
     310         
    290311        public String SummarizeLastEvent(Memory m) 
    291312        { 
Note: See TracChangeset for help on using the changeset viewer.