Changeset 323


Ignore:
Timestamp:
03/25/2010 02:39:25 PM (10 years ago)
Author:
myl
Message:

Spreading activation with generalisation - Find sets of events that satisfy certain parameter values and then find the commonalities between these events. Returns groups of events with the highest matches.

Location:
AgentMind/trunk/AgentMind
Files:
13 edited

Legend:

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

    r240 r323  
    1717import MemoryProcesses.CompoundCue; 
    1818import MemoryProcesses.SpreadActivate; 
    19  
     19import MemoryProcesses.Generalise; 
    2020 
    2121public class AgentLauncher { 
     
    9898                        agent.setSpreadActivate(new SpreadActivate()); 
    9999                        System.out.println("Spread activate set "); 
     100                        agent.setGeneralise(new Generalise()); 
     101                        System.out.println("Generalise set "); 
    100102                }                
    101103                agent.StartAgent(); 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/Agent.java

    r308 r323  
    6565import FAtiMA.memory.ICompoundCue; 
    6666import FAtiMA.memory.ISpreadActivate; 
     67import FAtiMA.memory.IGeneralise; 
    6768 
    6869public class Agent implements AgentModel { 
     
    100101        protected ICompoundCue _compoundCue; 
    101102        protected ISpreadActivate _spreadActivate; 
     103        protected IGeneralise _generalise; 
    102104         
    103105        private String _saveDirectory; 
     
    377379        public ISpreadActivate getSpreadActivate() { 
    378380                return _spreadActivate; 
     381        } 
     382         
     383        /**  
     384         * Gets the generalise mechanism of the agent 
     385         * @return the generalise mechanism 
     386         *  added by Meiyii 18/03/10 
     387         */      
     388        public IGeneralise getGeneralise() { 
     389                return _generalise; 
    379390        } 
    380391         
     
    901912                this._spreadActivate = spreadActivate; 
    902913        } 
    903          
    904          
     914                 
     915        /**  
     916         * Set the generalise mechanism object of the agent 
     917         * @param generalise 
     918         *  added by Meiyii 18/03/10 
     919         */      
     920        public void setGeneralise(IGeneralise generalise) { 
     921                this._generalise = generalise; 
     922        } 
    905923         
    906924        /** 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/memory/episodicMemory/EpisodicMemory.java

    r286 r323  
    120120                        synchronized (this) 
    121121                        { 
    122                                 _stm.AssociateEmotionToDetail(m, em,cause,location); 
     122                                _stm.AssociateEmotionToDetail(m,em,cause,location); 
    123123                        } 
    124124                } 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/memory/episodicMemory/ShortTermEpisodicMemory.java

    r278 r323  
    127127                        } 
    128128         
    129                         action = new ActionDetail(m, eventID++,cause,location); 
     129                        action = new ActionDetail(m,eventID++,cause,location); 
    130130                        _details.add(action); 
    131131                        action.UpdateEmotionValues(m, em); 
  • AgentMind/trunk/AgentMind/FAtiMA/src/FAtiMA/sensorEffector/RemoteAgent.java

    r308 r323  
    335335                                System.out.println("question " + question); 
    336336                                ArrayList<String> knownInfo = ExtractKnownInfo(known); 
    337                                 //ArrayList<MemoryEpisode> episodes = _agent.getMemory().getEpisodicMemory().GetAllEpisodes(); 
    338                                 //ArrayList<ActionDetail> records = _agent.getMemory().getEpisodicMemory().getDetails(); 
    339337                                _agent.getSpreadActivate().Spread(question, knownInfo, _agent.getMemory().getEpisodicMemory()); 
    340338                                 
     
    346344                                        System.out.println(question + " " + result + " frequency " + saResult.get(result)); 
    347345                                } 
    348                          
     346                                 
     347                                _agent.getGeneralise().GeneraliseEvents(_agent.getSpreadActivate().getDetails()); 
     348                                Hashtable<ArrayList<Integer>, Hashtable<String, String>> gResult = _agent.getGeneralise().getMatch(); 
     349                         
     350                                it = gResult.keySet().iterator(); 
     351                                while (it.hasNext()) 
     352                                { 
     353                                        ArrayList<Integer> result = (ArrayList<Integer>) it.next(); 
     354                                        System.out.println("id " + result); 
     355                                        Hashtable<String, String> match = gResult.get(result); 
     356                                        Iterator it2 = match.keySet().iterator(); 
     357                                        while (it2.hasNext()) 
     358                                        { 
     359                                                String matchingValues = (String) it2.next(); 
     360                                                System.out.println("match in Remote Agent " + matchingValues); 
     361                                        } 
     362                                } 
     363                                 
    349364                                System.out.println("\n\n"); 
    350365                        } 
  • AgentMind/trunk/AgentMind/MemoryProcesses/src/main/java/MemoryProcesses/CCQuery.java

    r309 r323  
    3939public class CCQuery { 
    4040         
     41        private int _numField = 9; 
     42         
    4143        private ActionDetail _result; 
    4244        private float _eval; 
     
    4446        private Hashtable<Integer, Float> _evaluations; 
    4547        private ActionDetail _actionDetail; 
    46         private int _numField; 
    47          
     48 
    4849        private final PropertyChangeSupport changes  = new PropertyChangeSupport( this ); 
    4950          
     
    5253                this._results = new ArrayList<ActionDetail>(); 
    5354                this._evaluations = new Hashtable<Integer, Float>(); 
    54                 this._numField = 9; 
    5555        } 
    5656         
  • AgentMind/trunk/AgentMind/MemoryProcesses/src/main/java/MemoryProcesses/CandidateEvent.java

    r288 r323  
    3838 
    3939public class CandidateEvent{ 
    40  
    41         ActionDetail _actionDetail; 
    4240         
    43         int _phase; 
    44         ArrayList<String> _extension; 
    45         float _evaluation; 
     41        private ActionDetail _actionDetail; 
     42         
     43        private int _phase; 
     44        private ArrayList<String> _extension; 
     45    private     float _evaluation; 
    4646         
    4747        public CandidateEvent(ActionDetail actionDetail, String extension, float evaluation) 
     
    6565        } 
    6666         
    67         public ArrayList getExtension() 
     67        public ArrayList<String> getExtension() 
    6868        { 
    6969                return this._extension; 
  • AgentMind/trunk/AgentMind/MemoryProcesses/src/main/java/MemoryProcesses/CompoundCue.java

    r309 r323  
    9898         
    9999        /** 
    100          * Return the result of spreading activation 
    101          * currently take into consideration the frequency of appearance 
     100         * Return the result of matching 
    102101         * @return a list of answer to the query 
    103102         */ 
  • AgentMind/trunk/AgentMind/MemoryProcesses/src/main/java/MemoryProcesses/SAQuery.java

    r309 r323  
    5757        private ArrayList<ActionDetail> _details; 
    5858         
     59        private String _events; 
     60         
    5961        private final PropertyChangeSupport changes  = new PropertyChangeSupport( this ); 
    6062          
     
    7678                this._results = new Hashtable<String, Integer>(); 
    7779                this._details = new ArrayList<ActionDetail>(); 
     80                 
     81                this._events = ""; 
    7882        } 
    7983             
     
    176180                                } 
    177181                                this._numKnownVar++; 
    178                         } 
     182                        }                        
    179183                } 
    180184                System.out.println("ID" + this._id + "subject " + this._subject + " target " + this._target  
     
    204208                this._results.clear(); 
    205209                this._details.clear(); 
     210                 
     211                this._events = ""; 
    206212        } 
    207213         
     
    316322    } 
    317323     
    318     public void setDetails(ActionDetail ad, String result) 
     324    public void setDetails(ActionDetail ad) 
    319325    { 
    320326        this._details.add(ad); 
    321         setResults(result); 
    322327    } 
    323328     
  • AgentMind/trunk/AgentMind/MemoryProcesses/src/main/rules/CompoundCue.drl

    r309 r323  
    1919                insert (new CandidateEvent($ad, "subject", 1.0f)); 
    2020                retract ($ad); 
    21                 System.out.println("same subject " + $ad.getID()); 
     21                #System.out.println("same subject " + $ad.getID()); 
    2222end 
    2323 
     
    3232                insert (new CandidateEvent($ad, "subject", 0.8f)); 
    3333                retract ($ad); 
    34                 System.out.println("different subject " + $ad.getID()); 
     34                #System.out.println("different subject " + $ad.getID()); 
    3535end 
    3636 
     
    4545                insert (new CandidateEvent($ad, "target", 1.0f)); 
    4646                retract ($ad); 
    47                 System.out.println("same target " + $ad.getID()); 
     47                #System.out.println("same target " + $ad.getID()); 
    4848end 
    4949 
     
    5858                insert (new CandidateEvent($ad, "target", 0.8f)); 
    5959                retract ($ad); 
    60                 System.out.println("different target " + $ad.getID()); 
     60                #System.out.println("different target " + $ad.getID()); 
    6161end 
    6262 
     
    7171                insert (new CandidateEvent($ad, "action", 1.0f)); 
    7272                retract ($ad); 
    73                 System.out.println("same action " + $ad.getID()); 
     73                #System.out.println("same action " + $ad.getID()); 
    7474end 
    7575 
     
    8484                insert (new CandidateEvent($ad, "action", 0.8f)); 
    8585                retract ($ad); 
    86                 System.out.println("different action " + $ad.getID()); 
     86                #System.out.println("different action " + $ad.getID()); 
    8787end 
    8888 
     
    9797                insert (new CandidateEvent($ad, "location", 1.0f)); 
    9898                retract ($ad); 
    99                 System.out.println("same location " + $ad.getID()); 
     99                #System.out.println("same location " + $ad.getID()); 
    100100end 
    101101 
     
    110110                insert (new CandidateEvent($ad, "location", 0.8f)); 
    111111                retract ($ad); 
    112                 System.out.println("different location " + $ad.getID()); 
     112                #System.out.println("different location " + $ad.getID()); 
    113113end 
    114114 
     
    123123                insert (new CandidateEvent($ad, "emotion", 1.0f)); 
    124124                retract ($ad); 
    125                 System.out.println("same emotion " + $ad.getID()); 
     125                #System.out.println("same emotion " + $ad.getID()); 
    126126end 
    127127 
     
    136136                insert (new CandidateEvent($ad, "emotion", 0.8f)); 
    137137                retract ($ad); 
    138                 System.out.println("different emotion " + $ad.getID()); 
     138                #System.out.println("different emotion " + $ad.getID()); 
    139139end 
    140140 
     
    149149                insert (new CandidateEvent($ad, "intention", 1.0f)); 
    150150                retract ($ad); 
    151                 System.out.println("same intention " + $ad.getID()); 
     151                #System.out.println("same intention " + $ad.getID()); 
    152152end 
    153153 
     
    162162                insert (new CandidateEvent($ad, "intention", 0.8f)); 
    163163                retract ($ad); 
    164                 System.out.println("different intention " + $ad.getID()); 
     164                #System.out.println("different intention " + $ad.getID()); 
    165165end 
    166166 
     
    175175                insert (new CandidateEvent($ad, "status", 1.0f)); 
    176176                retract ($ad); 
    177                 System.out.println("same status " + $ad.getID()); 
     177                #System.out.println("same status " + $ad.getID()); 
    178178end 
    179179 
     
    188188                insert (new CandidateEvent($ad, "status", 0.8f)); 
    189189                retract ($ad); 
    190                 System.out.println("different status " + $ad.getID()); 
     190                #System.out.println("different status " + $ad.getID()); 
    191191end 
    192192 
     
    201201                insert (new CandidateEvent($ad, "speechActMeaning", 1.0f)); 
    202202                retract ($ad); 
    203                 System.out.println("same speechActMeaning " + $ad.getID()); 
     203                #System.out.println("same speechActMeaning " + $ad.getID()); 
    204204end 
    205205 
     
    214214                insert (new CandidateEvent($ad, "speechActMeaning", 0.8f)); 
    215215                retract ($ad); 
    216                 System.out.println("different speechActMeaning " + $ad.getID()); 
     216                #System.out.println("different speechActMeaning " + $ad.getID()); 
    217217end 
    218218 
     
    227227                insert (new CandidateEvent($ad, "multimediaPath", 1.0f)); 
    228228                retract ($ad); 
    229                 System.out.println("same multimediaPath " + $ad.getID()); 
     229                #System.out.println("same multimediaPath " + $ad.getID()); 
    230230end 
    231231 
     
    240240                insert (new CandidateEvent($ad, "multimediaPath", 0.8f)); 
    241241                retract ($ad); 
    242                 System.out.println("different multimediaPath " + $ad.getID()); 
     242                #System.out.println("different multimediaPath " + $ad.getID()); 
    243243end 
    244244 
     
    257257                        updateEvaluation(1.0f)           
    258258                } 
    259                 System.out.println("Evaluation " + $cad.getEvaluation()); 
    260                 System.out.println("same subject " + $ad.getID()); 
     259                #System.out.println("Evaluation " + $cad.getEvaluation()); 
     260                #System.out.println("same subject " + $ad.getID()); 
    261261end 
    262262 
     
    275275                        updateEvaluation(0.8f)           
    276276                } 
    277                 System.out.println("Evaluation " + $cad.getEvaluation()); 
    278                 System.out.println("different subject " + $ad.getID()); 
     277                #System.out.println("Evaluation " + $cad.getEvaluation()); 
     278                #System.out.println("different subject " + $ad.getID()); 
    279279end 
    280280 
     
    293293                        updateEvaluation(1.0f)                   
    294294                } 
    295                 System.out.println("Evaluation " + $cad.getEvaluation()); 
    296                 System.out.println("same target " + $ad.getID()); 
     295                #System.out.println("Evaluation " + $cad.getEvaluation()); 
     296                #System.out.println("same target " + $ad.getID()); 
    297297end 
    298298 
     
    311311                        updateEvaluation(0.8f)                   
    312312                } 
    313                 System.out.println("Evaluation " + $cad.getEvaluation()); 
    314                 System.out.println("different target " + $ad.getID()); 
     313                #System.out.println("Evaluation " + $cad.getEvaluation()); 
     314                #System.out.println("different target " + $ad.getID()); 
    315315end 
    316316 
     
    329329                        updateEvaluation(1.0f)           
    330330                } 
    331                 System.out.println("Evaluation " + $cad.getEvaluation()); 
    332                 System.out.println("same action " + $ad.getID()); 
     331                #System.out.println("Evaluation " + $cad.getEvaluation()); 
     332                #System.out.println("same action " + $ad.getID()); 
    333333end 
    334334 
     
    347347                        updateEvaluation(0.8f)           
    348348                } 
    349                 System.out.println("Evaluation " + $cad.getEvaluation()); 
    350                 System.out.println("different action " + $ad.getID()); 
     349                #System.out.println("Evaluation " + $cad.getEvaluation()); 
     350                #System.out.println("different action " + $ad.getID()); 
    351351end 
    352352 
     
    365365                        updateEvaluation(1.0f)           
    366366                } 
    367                 System.out.println("Evaluation " + $cad.getEvaluation()); 
    368                 System.out.println("same location " + $ad.getID()); 
     367                #System.out.println("Evaluation " + $cad.getEvaluation()); 
     368                #System.out.println("same location " + $ad.getID()); 
    369369end 
    370370 
     
    383383                        updateEvaluation(0.8f)           
    384384                } 
    385                 System.out.println("Evaluation " + $cad.getEvaluation()); 
    386                 System.out.println("different location " + $ad.getID()); 
     385                #System.out.println("Evaluation " + $cad.getEvaluation()); 
     386                #System.out.println("different location " + $ad.getID()); 
    387387end 
    388388 
     
    401401                        updateEvaluation(1.0f)           
    402402                } 
    403                 System.out.println("Evaluation " + $cad.getEvaluation()); 
    404                 System.out.println("same emotion " + $ad.getID()); 
     403                #System.out.println("Evaluation " + $cad.getEvaluation()); 
     404                #System.out.println("same emotion " + $ad.getID()); 
    405405end 
    406406 
     
    419419                        updateEvaluation(1.0f)           
    420420                } 
    421                 System.out.println("Evaluation " + $cad.getEvaluation()); 
    422                 System.out.println("different emotion " + $ad.getID()); 
     421                #System.out.println("Evaluation " + $cad.getEvaluation()); 
     422                #System.out.println("different emotion " + $ad.getID()); 
    423423end 
    424424 
     
    437437                        updateEvaluation(1.0f)           
    438438                } 
    439                 System.out.println("Evaluation " + $cad.getEvaluation()); 
    440                 System.out.println("same intention " + $ad.getID()); 
     439                #System.out.println("Evaluation " + $cad.getEvaluation()); 
     440                #System.out.println("same intention " + $ad.getID()); 
    441441end 
    442442 
     
    455455                        updateEvaluation(0.8f)           
    456456                } 
    457                 System.out.println("Evaluation " + $cad.getEvaluation()); 
    458                 System.out.println("different intention " + $ad.getID()); 
     457                #System.out.println("Evaluation " + $cad.getEvaluation()); 
     458                #System.out.println("different intention " + $ad.getID()); 
    459459end 
    460460 
     
    473473                        updateEvaluation(1.0f)           
    474474                } 
    475                 System.out.println("Evaluation " + $cad.getEvaluation()); 
    476                 System.out.println("same status " + $ad.getID()); 
     475                #System.out.println("Evaluation " + $cad.getEvaluation()); 
     476                #System.out.println("same status " + $ad.getID()); 
    477477end 
    478478 
     
    491491                        updateEvaluation(0.8f)           
    492492                } 
    493                 System.out.println("Evaluation " + $cad.getEvaluation()); 
    494                 System.out.println("different status " + $ad.getID()); 
     493                #System.out.println("Evaluation " + $cad.getEvaluation()); 
     494                #System.out.println("different status " + $ad.getID()); 
    495495end 
    496496 
     
    509509                        updateEvaluation(1.0f)           
    510510                } 
    511                 System.out.println("Evaluation " + $cad.getEvaluation()); 
    512                 System.out.println("same speechActMeaning " + $ad.getID()); 
     511                #System.out.println("Evaluation " + $cad.getEvaluation()); 
     512                #System.out.println("same speechActMeaning " + $ad.getID()); 
    513513end 
    514514 
     
    527527                        updateEvaluation(0.8f)           
    528528                } 
    529                 System.out.println("Evaluation " + $cad.getEvaluation()); 
    530                 System.out.println("different speechActMeaning " + $ad.getID()); 
     529                #System.out.println("Evaluation " + $cad.getEvaluation()); 
     530                #System.out.println("different speechActMeaning " + $ad.getID()); 
    531531end 
    532532 
  • AgentMind/trunk/AgentMind/MemoryProcesses/src/main/rules/SpreadActivate.drl

    r309 r323  
    7575end 
    7676 
    77 #rule "location-location phase1" 
    78 #       no-loop true 
    79 #       salience 50 
    80 #       when 
    81 #               $q: SAQuery($l1: location) 
    82 #               $ad: ActionDetail(location == $l1)                       
    83 #       then 
    84 #               insert (new CandidateEvent($ad, "location", 1.0f)); 
    85 #               retract ($ad); 
    86 #               System.out.println("Location " + $l1); 
    87 #               System.out.println("location-location " + $ad.getID()); 
    88 #end 
     77rule "location-location phase1" 
     78        no-loop true 
     79        salience 50 
     80        when 
     81                $q: SAQuery($l1: location) 
     82                $ad: ActionDetail(location == $l1)                       
     83        then 
     84                insert (new CandidateEvent($ad, "location", 1.0f)); 
     85                retract ($ad); 
     86                System.out.println("Location " + $l1); 
     87                System.out.println("location-location " + $ad.getID()); 
     88end 
    8989 
    9090rule "intention-intention phase1" 
     
    346346        then                     
    347347                modify ($q) { 
    348                         setDetails($ad, $a) 
     348                        setResults($a) 
    349349                } 
    350350                System.out.println("Action " + $a); 
     
    428428end 
    429429 
     430rule "events" 
     431        no-loop true 
     432        when 
     433                $q: SAQuery(question == "events") 
     434                $cad: CandidateEvent( phase == $q.numKnownVar ) 
     435                $ad: ActionDetail() from $cad.actionDetail        
     436        then                     
     437                modify ($q) { 
     438                        setDetails($ad) 
     439                } 
     440                System.out.println("Event " + $ad.getID()); 
     441                System.out.println("Retracted " + $ad.getID() + "\n"); 
     442                retract ($cad);                  
     443end 
  • AgentMind/trunk/AgentMind/WorldTest/src/UserInterface.java

    r302 r323  
    198198        _infoOptions.addItem("action Greet"); 
    199199        _infoOptions.addItem("action SpeechAct"); 
    200         _infoOptions.addItem("desirability positive"); 
    201         _infoOptions.addItem("desirability negative"); 
     200        _infoOptions.addItem("desirability 2"); 
     201        _infoOptions.addItem("desirability -2"); 
    202202                _infoOptions.addActionListener(new ActionListener(){ 
    203203                        public void actionPerformed(ActionEvent arg0) { 
     
    219219        _queryOptions.addItem("intention"); 
    220220        _queryOptions.addItem("status"); 
     221        _queryOptions.addItem("events"); 
    221222                _queryOptions.addActionListener(new ActionListener(){ 
    222223                        public void actionPerformed(ActionEvent arg0) { 
  • AgentMind/trunk/AgentMind/WorldTest/src/WorldTest.java

    r277 r323  
    367367         
    368368        public void CCMemory(){ 
    369                 SendPerceptionToAll( "CC-MEMORY"); 
     369                SendPerceptionToAll("CC-MEMORY"); 
    370370        } 
    371371         
Note: See TracChangeset for help on using the changeset viewer.