<?xml version="1.0" encoding="UTF-8"?><!--    Copyright (c) 2009, 2011 The University of Memphis.  All rights reserved.     This program and the accompanying materials are made available     under the terms of the LIDA Software Framework Non-Commercial License v1.0     which accompanies this distribution, and is available at    http://ccrg.cs.memphis.edu/assets/papers/2010/LIDA-framework-non-commercial-v1.0.pdf --><lida xmlns="http://ccrg.cs.memphis.edu/LidaXMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"	xsi:schemaLocation="http://ccrg.cs.memphis.edu/LidaXMLSchema LidaXMLSchema.xsd ">    <taskmanager>        <param name="taskManager.tickDuration" type="int">1 </param>        <param name="taskManager.maxNumberOfThreads" type="int"> 100</param>    </taskmanager>    <taskspawners>        <taskspawner name="defaultTS">            <class>edu.memphis.ccrg.lida.framework.tasks.TaskSpawnerImpl</class>        </taskspawner>    </taskspawners>    <submodules>         <module name="Environment">            <class>alifeagent.environment.ALifeEnvironment</class>            <param name="environment.healthDecayRate" type="double">0.005</param>            <param name="environment.ticksPerRun" type="int">200</param>            <taskspawner>defaultTS</taskspawner>        </module>        <module name="SensoryMemory">            <class>alifeagent.modules.BasicSensoryMemory</class>            <associatedmodule>Environment</associatedmodule>            <taskspawner>defaultTS</taskspawner>            <initialTasks>                <task name="backgroundTask">                    <tasktype>SensoryMemoryBackgroundTask</tasktype>                    <ticksperrun>5</ticksperrun>                </task>            </initialTasks>        </module>        <module name="PerceptualAssociativeMemory">            <class>edu.memphis.ccrg.lida.pam.PerceptualAssociativeMemoryImpl</class>            <param name="pam.Upscale" type="double">.7 </param>            <param name="pam.Downscale" type="double">.6 </param>            <param name="pam.Selectivity" type="double">.5 </param>            <param name="nodes">				goodHealth,fairHealth,badHealth,health,				front,origin,outOfBounds,				predator,rock,tree,food,				predatorOrigin,rockOrigin,treeOrigin,foodOrigin,				predatorFront,rockFront,treeFront,foodFront,emptyFront            </param>            <param name="links">				goodHealth:health,fairHealth:health,badHealth:health,				rockFront:rock,rockOrigin:rock,				predatorFront:predator,predatorOrigin:predator,				foodFront:food,foodOrigin:food,				treeFront:tree,treeOrigin:tree,                                rockFront:front,predatorFront:front,foodFront:front,treeFront:front,				rockOrigin:origin,predatorOrigin:origin,foodOrigin:origin,treeOrigin:origin            </param>            <taskspawner>defaultTS</taskspawner>            <initialTasks>                <task name="GoodHealthDetector">                    <tasktype>GoodHealthDetector</tasktype>                    <ticksperrun>3</ticksperrun>                    <param name="node" type="string">goodHealth</param>                </task>                <task name="FairHealthDetector">                    <tasktype>FairHealthDetector</tasktype>                    <ticksperrun>3</ticksperrun>                    <param name="node" type="string">fairHealth</param>                </task>                                <!-- TASK 3 INSERT YOUR CODE HERE ************************* -->                <task name="BadHealthDetector">                    <tasktype>BadHealthDetector</tasktype>                    <ticksperrun>3</ticksperrun>                    <param name="node" type="string">badHealth</param>                </task>                <!-- ****************************************************** -->                <task name="FrontEmptyDetector">                    <tasktype>ObjectDetector</tasktype>                    <ticksperrun>3</ticksperrun>                    <param name="node" type="string">emptyFront</param>                    <param name="object" type="string"></param>                    <param name="position" type="int">1</param>                </task>                <task name="OutOfBoundsDetector">                    <tasktype>ObjectDetector</tasktype>                    <ticksperrun>3</ticksperrun>                    <param name="node" type="string">outOfBounds</param>                    <param name="object" type="string">outOfBounds</param>                    <param name="position" type="int">1</param>                </task>                <task name="RockOriginDetector">                    <tasktype>ObjectDetector</tasktype>                    <ticksperrun>3</ticksperrun>                    <param name="node" type="string">rockOrigin</param>                    <param name="object" type="string">rock</param>                    <param name="position" type="int">0</param>                </task>                <task name="RockFrontDetector">                    <tasktype>ObjectDetector</tasktype>                    <ticksperrun>3</ticksperrun>                    <param name="node" type="string">rockFront</param>                    <param name="object" type="string">rock</param>                    <param name="position" type="int">1</param>                </task>                <task name="foodOriginDetector">                    <tasktype>ObjectDetector</tasktype>                    <ticksperrun>3</ticksperrun>                    <param name="node" type="string">foodOrigin</param>                    <param name="object" type="string">food</param>                    <param name="position" type="int">0</param>                </task>                <task name="foodFrontDetector">                    <tasktype>ObjectDetector</tasktype>                    <ticksperrun>3</ticksperrun>                    <param name="node" type="string">foodFront</param>                    <param name="object" type="string">food</param>                    <param name="position" type="int">1</param>                </task>                <task name="predatorOriginDetector">                    <tasktype>ObjectDetector</tasktype>                    <ticksperrun>3</ticksperrun>                    <param name="node" type="string">predatorOrigin</param>                    <param name="object" type="string">predator</param>                    <param name="position" type="int">0</param>                </task>                <!-- TASK 4 INSERT YOUR CODE HERE ************************* -->                <task name="predatorFrontDetector">                    <tasktype>ObjectDetector</tasktype>                    <ticksperrun>3</ticksperrun>                    <param name="node" type="string">predatorFront</param>                    <param name="object" type="string">predator</param>                    <param name="position" type="int">1</param>                </task>                <!-- ****************************************************** -->                <task name="treeOriginDetector">                    <tasktype>ObjectDetector</tasktype>                    <ticksperrun>3</ticksperrun>                    <param name="node" type="string">treeOrigin</param>                    <param name="object" type="string">tree</param>                    <param name="position" type="int">0</param>                </task>                <task name="treeFrontDetector">                    <tasktype>ObjectDetector</tasktype>                    <ticksperrun>3</ticksperrun>                    <param name="node" type="string">treeFront</param>                    <param name="object" type="string">tree</param>                    <param name="position" type="int">1</param>                </task>            </initialTasks>            <initializerclass>edu.memphis.ccrg.lida.pam.BasicPamInitializer</initializerclass>        </module>        <module name="TransientEpisodicMemory">            <class>edu.memphis.ccrg.lida.episodicmemory.EpisodicMemoryImpl</class>            <associatedmodule>PerceptualAssociativeMemory</associatedmodule>            <param name="tem.numOfHardLoc" type="int">10000</param>			            <param name="tem.addressLength" type="int">1000</param>			            <param name="tem.wordLength" type="int">1000</param>			            <param name="tem.activationRadius" type="int">451</param>			            <taskspawner>defaultTS</taskspawner>        </module>        <module name="DeclarativeMemory">            <class>edu.memphis.ccrg.lida.episodicmemory.EpisodicMemoryImpl</class>            <associatedmodule>PerceptualAssociativeMemory</associatedmodule>            <param name="tem.numOfHardLoc" type="int">10000</param>			            <param name="tem.addressLength" type="int">1000</param>			            <param name="tem.wordLength" type="int">1000</param>			            <param name="tem.activationRadius" type="int">451</param>						            <taskspawner>defaultTS</taskspawner>        </module>        <module name="Workspace">            <class>edu.memphis.ccrg.lida.workspace.WorkspaceImpl</class>            <submodules>                <module name="EpisodicBuffer">                    <class>edu.memphis.ccrg.lida.workspace.workspacebuffers.WorkspaceBufferImpl</class>                    <taskspawner>defaultTS</taskspawner>                </module>                <module name="PerceptualBuffer">                    <class>edu.memphis.ccrg.lida.workspace.workspacebuffers.WorkspaceBufferImpl</class>                    <taskspawner>defaultTS</taskspawner>                </module>                <module name="CurrentSituationalModel">                    <class>edu.memphis.ccrg.lida.workspace.workspacebuffers.WorkspaceBufferImpl</class>                    <taskspawner>defaultTS</taskspawner>                </module>                <module name="BroadcastQueue">                    <class>edu.memphis.ccrg.lida.workspace.workspacebuffers.BroadcastQueueImpl</class>                    <param name="workspace.broadcastQueueCapacity" type="int">20 </param>                    <taskspawner>defaultTS</taskspawner>                </module>            </submodules>            <taskspawner>defaultTS</taskspawner>            <initialTasks>                <task name="CueBackgroundTask">                    <tasktype>CueBackgroundTask</tasktype>                    <ticksperrun>15</ticksperrun>                    <param name="workspace.actThreshold"  type="double">0.4</param>                </task>                <task name="UpdateCsmBackgroundTask">                    <tasktype>UpdateCsmBackgroundTask</tasktype>                    <ticksperrun>5</ticksperrun>                </task>            </initialTasks>        </module>        <module name="AttentionModule">            <class>edu.memphis.ccrg.lida.attentioncodelets.AttentionCodeletModule</class>            <associatedmodule>Workspace</associatedmodule>            <associatedmodule>GlobalWorkspace</associatedmodule>            <taskspawner>defaultTS</taskspawner>            <initialTasks>                <task name="BadHealthAttentionCodelet">                    <tasktype>NeighborhoodAttentionCodelet</tasktype>                    <ticksperrun>5</ticksperrun>                    <param name="nodes" type="string">badHealth</param>                    <param name="refractoryPeriod" type="int">50</param>                    <param name="initialActivation" type="double">1.0</param>                </task>                <task name="FairHealthAttentionCodelet">                    <tasktype>NeighborhoodAttentionCodelet</tasktype>                    <ticksperrun>5</ticksperrun>                    <param name="nodes" type="string">fairHealth</param>                    <param name="refractoryPeriod" type="int">50</param>                    <param name="initialActivation" type="double">0.80</param>                </task>                <task name="GoodHealthAttentionCodelet">                    <tasktype>NeighborhoodAttentionCodelet</tasktype>                    <ticksperrun>5</ticksperrun>                    <param name="nodes" type="string">goodHealth</param>                    <param name="refractoryPeriod" type="int">50</param>                    <param name="initialActivation" type="double">0.10</param>                </task>                <task name="PredatorAttentionCodelet">                    <tasktype>NeighborhoodAttentionCodelet</tasktype>                    <ticksperrun>5</ticksperrun>                    <param name="nodes" type="string">predator</param>                    <param name="refractoryPeriod" type="int">50</param>                    <param name="initialActivation" type="double">1.0</param>                </task>                <task name="RockAttentionCodelet">                    <tasktype>NeighborhoodAttentionCodelet</tasktype>                    <ticksperrun>5</ticksperrun>                    <param name="nodes" type="string">rock</param>                    <param name="refractoryPeriod" type="int">50</param>                    <param name="initialActivation" type="double">0.7</param>                </task>                <task name="OutOfBoundsAttentionCodelet">                    <tasktype>NeighborhoodAttentionCodelet</tasktype>                    <ticksperrun>5</ticksperrun>                    <param name="nodes" type="string">outOfBounds</param>                    <param name="refractoryPeriod" type="int">50</param>                    <param name="initialActivation" type="double">0.7</param>                </task>                <task name="EmptyFrontAttentionCodelet">                    <tasktype>NeighborhoodAttentionCodelet</tasktype>                    <ticksperrun>5</ticksperrun>                    <param name="nodes" type="string">emptyFront</param>                    <param name="refractoryPeriod" type="int">50</param>                    <param name="initialActivation" type="double">0.4</param>                </task>                <task name="FoodAttentionCodelet">                    <tasktype>NeighborhoodAttentionCodelet</tasktype>                    <ticksperrun>5</ticksperrun>                    <param name="nodes" type="string">food</param>                    <param name="refractoryPeriod" type="int">50</param>                    <param name="initialActivation" type="double">1.0</param>                </task>            </initialTasks>        </module>        <module name="StructureBuildingCodeletModule">            <class>edu.memphis.ccrg.lida.workspace.structurebuildingcodelets.StructureBuildingCodeletModule</class>            <associatedmodule>Workspace</associatedmodule>            <taskspawner>defaultTS</taskspawner>        </module>        <module name="GlobalWorkspace">            <class>edu.memphis.ccrg.lida.globalworkspace.GlobalWorkspaceImpl</class>            <param name="globalWorkspace.coalitionRemovalThreshold" type="double">0.0</param>            <param name="globalWorkspace.coalitionDecayStrategy">coalitionDecay</param>            <param name="globalWorkspace.refractoryPeriod" type="int">40 </param>            <!-- Trigger parameters -->            <param name="globalWorkspace.delayNoBroadcast" type="int">100 </param>            <param name="globalWorkspace.delayNoNewCoalition" type="int">50 </param>            <param name="globalWorkspace.aggregateActivationThreshold" type="double">2.0</param>            <param name="globalWorkspace.individualActivationThreshold" type="double">0.9</param>            <taskspawner>defaultTS</taskspawner>            <initializerclass>edu.memphis.ccrg.lida.globalworkspace.GlobalWorkspaceInitalizer</initializerclass>        </module>         <module name="ProceduralMemory">            <class>edu.memphis.ccrg.lida.proceduralmemory.ProceduralMemoryImpl</class>            <param name="proceduralMemory.ticksPerStep" type="int"> 14 </param>            <param name="scheme.1">if rock turn left|(rockFront)()|action.turnLeft|()()|0.01</param>            <param name="scheme.2">if rock turn right|(rockFront)()|action.turnRight|()()|0.01</param>            <param name="scheme.3">if rock turn around|(rockFront)()|action.turnAround|()()|0.01</param>			            <param name="scheme.4">move to food|(foodFront)()|action.moveAgent|()()|0.1</param>            <param name="scheme.5">eat food at origin|(foodOrigin)()|action.eat|()()|0.35</param>		                <param name="scheme.6">move forward if bad health|(badHealth)()|action.moveAgent|()()|0.45</param>            <param name="scheme.6a">turnLeft if bad health|(badHealth)()|action.turnLeft|()()|0.1</param>            <param name="scheme.6b">turnRight if bad health|(badHealth)()|action.turnRight|()()|0.1</param>		                <param name="scheme.7">move forward if fair health|(fairHealth)()|action.moveAgent|()()|0.3</param>            <param name="scheme.7a">turnLeft if fair health|(fairHealth)()|action.turnLeft|()()|0.1</param>            <param name="scheme.7b">turnRight if fair health|(fairHealth)()|action.turnRight|()()|0.1</param>		                <param name="scheme.8">flee if predator in front|(predatorFront)()|action.flee|()()|0.2</param>            <param name="scheme.8a">flee if predator at origin|(predatorOrigin)()|action.flee|()()|0.5</param>		                <param name="scheme.9">if outOfBounds turn left|(outOfBounds)()|action.turnLeft|()()|0.01</param>            <param name="scheme.9a">if outOfBounds turn right|(outOfBounds)()|action.turnRight|()()|0.01</param>            <param name="scheme.9b">if outOfBounds turn around|(outOfBounds)()|action.turnAround|()()|0.01</param>				            <param name="scheme.10">if emptyFront turn left|(emptyFront)()|action.turnLeft|()()|0.1</param>            <param name="scheme.10a">if emptyFront turn right|(emptyFront)()|action.turnRight|()()|0.1</param>            <param name="scheme.10b">if emptyFront turn around|(emptyFront)()|action.turnAround|()()|0.1</param>	            <taskspawner>defaultTS</taskspawner>                                  <initializerclass>edu.memphis.ccrg.lida.proceduralmemory.BasicProceduralMemoryInitializer</initializerclass>        </module>        <module name="ActionSelection">            <class>edu.memphis.ccrg.lida.actionselection.BasicActionSelection</class>            <param name="actionSelection.ticksPerStep" type="int"> 10</param>            <taskspawner>defaultTS</taskspawner>        </module>        <module name="SensoryMotorMemory">            <class>edu.memphis.ccrg.lida.sensorymotormemory.BasicSensoryMotorMemory</class>            <associatedmodule>Environment</associatedmodule>            <param name="smm.1">action.turnLeft,algorithm.turnLeft</param>            <param name="smm.2">action.turnRight,algorithm.turnRight</param>            <param name="smm.3">action.turnAround,algorithm.turnAround</param>            <param name="smm.4">action.moveAgent,algorithm.moveAgent</param>            <param name="smm.5">action.eat,algorithm.eat</param>            <param name="smm.6">action.flee,algorithm.flee</param>			            <taskspawner>defaultTS</taskspawner>            <initializerclass>edu.memphis.ccrg.lida.sensorymotormemory.BasicSensoryMotorMemoryInitializer</initializerclass>        </module>    </submodules>    <listeners>        <listener>            <listenertype>edu.memphis.ccrg.lida.pam.PamListener</listenertype>            <modulename>PerceptualAssociativeMemory</modulename>            <listenername>Workspace</listenername>        </listener>        <listener>            <listenertype>edu.memphis.ccrg.lida.workspace.WorkspaceListener</listenertype>            <modulename>Workspace</modulename>            <listenername>PerceptualAssociativeMemory</listenername>        </listener>        <listener>            <listenertype>edu.memphis.ccrg.lida.globalworkspace.BroadcastListener</listenertype>            <modulename>GlobalWorkspace</modulename>            <listenername>PerceptualAssociativeMemory</listenername>        </listener>        <listener>            <listenertype>edu.memphis.ccrg.lida.globalworkspace.BroadcastListener</listenertype>            <modulename>GlobalWorkspace</modulename>            <listenername>Workspace</listenername>        </listener>        <listener>            <listenertype>edu.memphis.ccrg.lida.globalworkspace.BroadcastListener</listenertype>            <modulename>GlobalWorkspace</modulename>            <listenername>ProceduralMemory</listenername>        </listener>        <listener>            <listenertype>edu.memphis.ccrg.lida.proceduralmemory.ProceduralMemoryListener</listenertype>            <modulename>ProceduralMemory</modulename>            <listenername>ActionSelection</listenername>        </listener>        <listener>            <listenertype>edu.memphis.ccrg.lida.episodicmemory.LocalAssociationListener</listenertype>            <modulename>TransientEpisodicMemory</modulename>            <listenername>Workspace</listenername>        </listener>        <listener>            <listenertype>edu.memphis.ccrg.lida.actionselection.ActionSelectionListener</listenertype>            <modulename>ActionSelection</modulename>            <listenername>SensoryMotorMemory</listenername>        </listener>    </listeners></lida>