My favorites | Sign in
Project Home Downloads Wiki Issues Source
Search
for
ReleaseNotes  
Soar release notes archive
Updated Apr 9, 2012 by maz...@gmail.com


9.3.2

 Soar 9.3.2 Release Notes, April 2012
 ===================================

This release of Soar continues the 9.3 line which includes modules for reinforcement learning (RL), episodic memory (EpMem), and semantic memory (SMem), as well as everything from previous versions of Soar. It includes a new "forgetting" mechanism, several bug fixes, a new distribution structure, and a simplification of how libraries are built in Soar. All learning mechanisms are disabled by default.

Soar can be downloaded from the Soar home page at:

http://sitemaker.umich.edu/soar

Soar releases include source code, demo programs, and a number of applications that serve as examples of how to interface Soar to an external environment. There is support for integrating Soar with C++, Java, and Python applications. Many tools that aid in development of Soar programs are also available. The newly expanded download section of the wiki allows you to browse and download all of the different distributions, tools and agents.

[Help and Contact information]

Please do not hesitate to contact the Soar group by sending mail to:

For general Soar-related discussion and announcements: soar-group@lists.sourceforge.net For more technical developer discussion: soar-sml-list@lists.sourceforge.net

Please do not hesitate to file bugs on our issue tracker (search for duplicates first):

http://code.google.com/p/soar/issues/list

[Important Changes for 9.3.2]

Soar's build process has undergone significant modifications, and as a result several things have changed in the binary release:

1. Instead of separate libraries for ClientSML, ConnectionSML, ElementXML, KernelSML, and the Soar Kernel, there is now only a single Soar library. On Windows this is Soar.dll, on Linux libSoar.so, and on OSX libSoar.dylib. This means that when you are building SML clients, you only need to link to that single library. The SML header files have not changed: you still need to include sml_Client.h.

2. Due to the library merge, SML clients no longer have to locate the KernelSML library at run time. Therefore, all references to the location and name of that library, such as DefaultLibraryLocation, have been removed from the SML API. Specifically: - The set-library-location CLI command has been removed

- The following functions have been removed: sml::Kernel::GetDefaultLibraryName sml::Kernel::GetLibraryLocation - The library location argument has been removed from the signatures of the following functions: sml::Agent::SpawnDebugger (see below) sml::Kernel::CreateKernelInCurrentThread sml::Kernel::CreateKernelInNewThread sml::Kernel::CreateEmbeddedConnection

3. The sml::Agent::SpawnDebugger function no longer uses the KernelSML library location to find SoarJavaDebugger.jar. Instead, 1. If the path of the jar (not of the containing directory) is provided as an explicit argument, it is used. 2. Otherwise, if SoarJavaDebugger.jar is in the current working directory, then that jar is used. 2. Otherwise, if the environment variable SOAR_HOME is defined and points to the directory that contains SoarJavaDebugger.jar, then that jar is used. 3. Otherwise the search fails and the function returns false. 4. Due to the reduction in the number of files, we have merged the lib directory into the bin directory. The Soar library and the SWIG wrapper libraries now reside in the same directory as the executables. This makes life easier for Windows users running programs such as TestCLI or the Java debugger, because Windows searches the current directory for library dependencies by default.

5. Linux and OSX users no longer need to set LD_LIBRARY_PATH and DYLD_LIBRARY_PATH to point to the bin directory when running the native executables in the distribution, such as TestCLI or TestSoarPerformance. The relative location of the library has been hard-coded into those executables using the rpath and install_name mechanisms in Linux and OSX, respectively. However, those environment variables must still be set for running the java debugger, as required by the JVM.

6. SoarSuite is now extremely streamlined. It is intended for users who want to either (1) just run Soar or (2) plug-in the latest version of Soar into their current work. It only contains the Soar kernel, the Soar Java Debugger, Visual Soar, the Soar Manual, the default rules, unit test programs and the Soar header files.

7. The Soar Tutorial now has its own download. It contains the Soar kernel, the Java Debugger, Eaters, TankSoar, the Soar Manual, the Soar Tutorial, VisualSoar, and all the introductory agents.

8. Nearly everything we provide now has stand-alone versions, including TankSoar and Eaters. All agents, tools and environments now have their own wiki pages with thorough descriptions and individual downloads. We highly encourage people to make their own work available on the Soar wiki.

9. The Soar SVN repository has went through major restructuring and clean up to support these changes.

10. When a tie impasse occurs, the substate is augmented with two new WME classes, which document operators that do not have numeric-indifferent preferences associated with them. These augmentations are "non-numeric" and "non-numeric-count" and operate analogously to the existing "item" and "item-count" augmentations.

11. We have added a new forgetting mechanism to Soar to automatically excise chunks via the base-level decay model. It is controlled via the "rl" command using the "apoptosis" parameters. This functionality helps develop learning agents that can persist for long periods of time, accumulating a large amount of procedural knowledge while bounding memory consumption. Version 9.3.1 of Soar included forgetting of WMEs via the "wma" command, which served to bound procedural matching and episodic reconstruction. WME forgetting worked well with automatic semantic encoding via the "mirroring" parameter of the "smem" command. Together, these forgetting policies facilitate the development of long-living, learning agents that remain reactive in real-time environments.

A more comprehensive list of changes is below.

DETAILED CHANGELIST ===================

The scons build process now works in Windows and is the preferred way to build Soar on all three supported platforms.

The old Visual Studio project and solution files have been removed from the distribution. Scons can generate those files to make it easier for Windows users to debug the kernel. Scons is now also included in all source distributions to simplify building Soar.

Ant is no longer needed to build the Java debugger.

Soar-specific environment variables are no longer needed to compile Soar on Linux and OSX.

Improved documentation and completely restructured Soar web page and wiki. A lot of outdated information has been updated or removed.

Demo agents have been removed from the Java debugger and SoarSuite. They are now simply packaged in the Agents directory of the SoarTutorial. They are also available for individual download.

New chapters have been added to the tutorial for episodic and semantic memory.

VisualSoar has been removed from Soar core but can still be downloaded from its own wiki page.

SoarSuite now only includes the Soar kernel, the Soar Java Debugger, Visual Soar, the Soar Manual, the default rules, unit test programs and the Soar header files.

Added a new download specifically for the SoarTutorial. It includes the Soar kernel, the Java Debugger, Eaters, TankSoar, the Soar Manual, the Soar Tutorial documents, VisualSoar, and all the introductory agents.

There are now stand-alone versions of TankSoar and Eaters. They include self-contained copies of the Soar kernel and the debugger and can be run from any directory.

A large variety of agents are now available for individual download. They each have their own wiki page with a complete description.

Default rules updated for Soar 9.

Soar now works with the OpenJava JDK, which is what is installed by default on Ubuntu linux.

All releases for the various platforms now have identical naming and directory structures. This should make things much more consistent and less brittle.

Issue 78: The selection probabilities outputted by the "pref" command now make sense for all exploration strategies, not just softmax.

Issue 92: Removed the "run forever" command. "run" without any arguments will achieve teh same thing.

Issue 93: Alias command now adheres to the documentation. First argument is once again the alias name.

Issue 95: Certain types of comments on the RHS of productions no longer produces an error in the parser.

Issue 98: Soar will no longer automatically change the indifference-selection policy to episilon-greedy when turning reinforcement learning on. This may break the expected behavior of some agents, so users should make sure to set the policy the want explicitly. All of the agents in our repository have been updated to explicitly set it to epsilon-greedy after they turn RL on.

Issue 98: To increase performance, Soar will no longer discount updates over subgoals as though they were gaps, i.e. HRL-Discount is now off by default.

Issue 98: By default, Soar will no longer create a chunk that only differs from another rule in the value of the numeric indifferent preference, i.e. Chunk-Stop is now on by default.

Issue 102: CLI now strips out comments at the end of the line properly.

Issue 103: Watch-wmes command now works again. You can now set up arbitrary filters on which wmes are printed out.


9.3.1

Soar 9.3.1 Release Notes, June 2011
 ===================================

This release of Soar continues the 9.3 line which includes modules for reinforcement learning (RL), episodic memory (EpMem), and semantic memory (SMem), as well as everything from previous versions of Soar. It includes many bugfixes, a major reworking of working memory activation, and under-the-hood improvements to support very long agent runs. All learning mechanisms are disabled by default.

Soar can be downloaded from the Soar home page at:

http://sitemaker.umich.edu/soar

Soar releases include source code, demo programs, and a number of applications that serve as examples of how to interface Soar to an external environment. There is support for integrating Soar with C++, Java, and Python applications. Many tools that aid in development of Soar programs are also included.

[Help and Contact information]

Please do not hesitate to contact the Soar group by sending mail to:

For general Soar-related discussion and announcements: soar-group@lists.sourceforge.net For more technical developer discussion: soar-sml-list@lists.sourceforge.net

Please do not hesitate to file bugs on our issue tracker (search for duplicates first):

http://code.google.com/p/soar/issues/list

[Important Changes for 9.3.1]

Inequality comparisons on string constants and identifiers are now evaluated lexically rather than always returning false. Watch out--we found that this changed the behavior on some agents that relied on the old, broken behavior.

Improvements in stability and performance for the learning modules that rely on databases (EpMem and SMem). Sqlite, the backing database, has been upgraded to 3.7.4. Database schemas have been changed breaking backwards compatibility.

The Soar kernel and SML interface now uses 64-bit integers for things like WME values, timetags, stats, counters, and rete data structures. Motivation for these changes is current research involving long-running agents that were rolling over 32-bit integers in some instances. The client interface is mostly backwards compatible but some errors or warnings (because of loss of precision) may be encountered.

Working memory activation based forgetting is now stable and efficient. However, parameters controlling its behavior are still under experimentation and will likely change in the future.

The command line interface has been updated to behave much more like it behaved before 8.6.0. The parsing is simplified and follows most of the rules of the Tcl language and its behavior is now much easier to validate (and many tests have been added). This should be mostly transparent to the end user.

The help command now displays command documentation text directly in the terminal again, similar to the pre-9.0 behavior. The help text can now be automatically pulled from the wiki pages, making it much easier to keep up to date. See Core/CLI/gen_cli_help.sh for more details.

The Soar manual has been revised significantly. New sections describing reinforcement learning, episodic memory, and semantic memory have been added, and other sections have been updated to reflect recent kernel changes.

A more comprehensive list of changes is below.

Prerequisites =============

[Platforms]

Officially supported platforms are:

* Windows XP (32 bit), Vista & 7 32/64 bit * Ubuntu Linux 10/11 32/64 bit * Mac OS X 10.6 64 bit

Other platforms may work but have not specifically been tested, you can try binaries or compile from source:

http://code.google.com/p/soar/wiki/Build

Due to path length limits on some versions of Windows, you may need to extract Soar to C:\ -- watch for errors during the extraction process. [Java]

Java is required to use the Java applications distributed with Soar, including the debugger. Java must be available in the path. Some operating systems already have Java installed, but be aware that we only develop and test our applications using the Sun Java runtime environment 6 and other JVMs (such as GCJ) may not work:

http://www.oracle.com/technetwork/java/javase/downloads/index.html

IMPORTANT NOTE ABOUT 64-BIT BINARIES: 32-bit Java virtual machines cannot load 64-bit shared libraries. Please download appropriate binaries for your installed virtual machine. Attempting to open tools such as the Soar Java Debugger with the wrong JVM can cause the java process to hang on Windows (use task manager to terminate it).

OS X USERS CAN CHECK/SELECT WHAT JVM THEY ARE USING WITH A UTILITY: Use spotlight or look for the utility application "Java Preferences". More information:

http://developer.apple.com/java/faq/

[Python]

The included Python libraries support Python versions 2.6. Your installed Python architecture (32- or 64-bit) must be the same as the binaries you download.

DETAILED CHANGELIST ===================

Bugfixes --------

Issue 65: chunks being built despite justifications in backtrace when creating result on super-superstate.

Issue 70: Weird printing for strings that look like identifiers

Issue 75: Incorrect id printed in GDS removal messages

Issue 77: Lots of duplicate code in sml_KernelHelpers.cpp

Issue 79: Print command now works as documented.

GDS trace output now reports state number instead of internal level.

Connecting to a remote kernel via process number overflows a short.

Major performance fix in semantic memory when validating long-term identifiers on rules with lots of actions.

vsnprintf_with_symbols was not null-terminating strings converted from ids causing overruns.

Client SML identifier symbol bug fixed that was causing crashes (r12087).

Crash caused by disabling output link change tracking.

Memory leak caused during chunking (r12151).

GDS issue where multiple references to removed states weren't all getting cleared.

Segfault when storing a wme in epmem whose value was an identifier and id a long-term identifier that had never been stored in epmem.

Segfault that would occur when a wme is added and removed in the same phase

Major bugfix in interaction between epmem and smem. (r12411)

WMA bug wherein preferences in an i-supported wme's cached o-set were getting deallocated.

Code cleanup and maintenance fixes throughout the code.

Episodic & Semantic Memory Changes ----------------------------------

Semantic and episodic memory retrievals can now produce chunks as opposed to only justifications.

Various experimental activation behaviors added to semantic memory. Activation is now represented as a real number. As a result, the database schema was changed, breaking backwards compatibility. A frequency-based activation mode is introduced.

An experimental merge parameter added to semantic and episodic memories allowing modification of long-term identifiers in working memory.

An experimental parameter added to episodic memory that controls how cue wmes are ordered during graph matching.

Command Line Interface Changes ------------------------------

-g/--gds flag added to the watch command for watching only GDS messages.

Printing productions with print command now displays name of file production was sourced from.

It is now possible to disable per-cycle stat tracking.

-d flag added to stat which makes it print only the current decision count.

The TestCLI program has been rewritten, is much cleaner and a good example of a lightweight debugger.

Added check to prevent crash when disconnecting Java debugger from remote Soar when not connected.

Added new max-dc-time command to interrupt kernel execution after a long decision cycle.

New SML Applications --------------------

RLCLI: a simple debugger for RL experiments.

SoarQNA: facilitates agent access to external knowledge stores via the IO system.

Liar's Dice probability calculator.

Miscellaneous Changes ---------------------

Visual Studio 2010 migration started, not officially supported yet.

New features and fixes in SMLJava library.

Experimental JMX API interface added for debugger for Soar IDE integration. Not officially supported.

Support for swig 2 added.

Build procedure cleanup, some stuff wasn't getting built or cleaned correctly. Some issues still exist but can be worked around by make clean && make.

Jars all target Java 1.5 for better compatibility.

Output-link change tracking is now disabled by default until the output-link identifier is requested unless the user explicitly enables it.

GDS stats added to stats xml output.

Lots of changes to stats reporting especially with respect to timers and time per decision cycle. Precision increased in many places. Configurable at runtime using timers command.

Experimental support to discard learned chunks that are duplicates of existing RL rules modulo numeric preference value.


9.3.0

Soar 9.3.0 Release Notes, March, 2010
 =====================================

This release of Soar includes modules for reinforcement learning (introduced in 9.0), episodic memory (introduced in 9.1), and semantic memory (introduced in 9.2), along with many new features and stability updates. All learning mechanisms are now disabled by default.

Soar can be downloaded from the Soar home page at:

http://sitemaker.umich.edu/soar

Soar releases include source code, demo programs, and a number of applications that serve as examples of how to interface Soar to an external environment. There is support for integrating Soar with C++, Java, and Python applications. Many tools that aid in development of Soar programs are also included.

[Reinforcement Learning (RL)]

RL is the architectural integration of reinforcement learning with Soar. The RL mechanism will automatically tune the values of numeric-indifferent preference rules based on reward generated while a Soar agent executes. These values represent the expected discounted sum of future rewards the agent will receive if it selects that operator for states matched by the condition of the rule. See the RL manual and tutorial in Documentation.

To see RL in action right away, try the Water Jug RL demo (it can be loaded from the Demos->Water Jug menu in the Java Debugger). To see the effects of RL, run it to completion, then init-soar and run it again. Repeat 4-5 times to see it reach optimal behavior. (Note: the agent may occasionally perform non-optimal behavior even after it has converged because of its exploration policy. See the RL manual and tutorial for details).

[Episodic Memory (EpMem)]

EpMem is a task-independent, architectural integration of an artificial episodic memory with Soar. The EpMem mechanism will automatically record episodes as a Soar agent executes. These episodes can later be queried and retrieved in order to improve performance on future tasks. See the EpMem manual for details.

[Semantic Memory (SMem)]

SMem is a task-independent, architectural integration of an artificial semantic memory with Soar. The SMem mechanism facilitates deliberate recording and querying of semantic chunks as a Soar agent executes.

[Help and Contact information]

Please do not hesitate to contact the Soar group by sending mail to:

For general Soar-related discussion and announcements: soar-group@lists.sourceforge.net For more technical developer discussion: soar-sml-list@lists.sourceforge.net

Please do not hesitate to file bugs on our issue tracker (search for duplicates first):

http://code.google.com/p/soar/issues/list

[Important Changes]

There have been performance, correctness, and stability improvements across the board, especially with the learning mechanisms, which are all disabled by default.

Long-term identifiers are now integrated in all symbolic memory systems. More information on long-term identifiers can be found in section 4.2 of the Soar-SMem manual in the documentation folder.

The allocate command has been added to Soar to allow agents to set aside memory before starting a run so that the cost of allocation is not incurred during the run.

The probability of selection for proposed operators is now included in the preferences command output, helpful for debugging agents using indifferent selection or RL, or agents that have complex operator preference semantics.

SML tracks changes on the Soar output-link in order for a number of useful functions to perform correctly. This change tracking comes at a cost and may now be disabled for a significant increase in performance -- even for agents that do not use the output-link. See the new output link guide for more information ("Examine in Detail" is the only option when disabling change tracking):

http://code.google.com/p/soar/wiki/SMLOutputLinkGuide

SML often opens ports when a Kernel is created. This behavior has been extended so that it can bind to any available port, and to use local sockets or local pipes with names based on the process id, fixing a lot of issues people were having. Complete documentation is included in the ClientKernel header file.

A more comprehensive list of changes is below.

Prerequisites =============

[Platforms]

Officially supported platforms include 32- and 64-bit versions of these systems:

* Windows XP, Vista, 7 * Ubuntu Linux 9.10 * Mac OS X 10.5, 10.6

Other platforms may work but have not specifically been tested, you can try binaries or attempt to compile from source:

http://code.google.com/p/soar/wiki/Build

Due to path length limits on some versions of Windows, you may need to extract Soar to C:\ -- watch for errors during the extraction process. [Java]

Java is required to use the Java applications distributed with Soar, including the debugger. Java must be available in the PATH. Some operating systems already have Java installed, but be aware that we only develop and test our applications using the Sun Java runtime environment 6 and other JVMs (such as GCJ) may not work:

http://developers.sun.com/downloads/top.jsp

IMPORTANT NOTE ABOUT 64-BIT BINARIES: 32-bit Java virtual machines cannot load 64-bit shared libraries. Please download appropriate binaries for your installed virtual machine. Attempting to open tools such as the Soar Java Debugger with the wrong JVM can cause the java process to hang on Windows (use task manager to terminate it).

OS X USERS CAN CHECK/SELECT WHAT JVM THEY ARE USING WITH A UTILITY: Use spotlight or look for the utility application "Java Preferences". More information:

http://developer.apple.com/java/faq/

[Python]

The included Python libraries support Python 2.6. Your installed Python architecture (32- or 64-bit) must be the same as the binaries you download.

Changes for 9.3.0 =================

We have moved some of our development hosting over to Google Code, including the wiki and issue tracker. Please check it out at

http://soar.googlecode.com

Much more documentation and example code is on the Google Code wiki.

A new "smem --init" command has been introduced for reinitialization of all symbolic memory systems.

RL: Greatly improved template performance.

RL: Added ability to disable hierarchical discounting.

Working Memory Activation (WMA): Rewritten from scratch for performance (no more ring) and correctness (including no more need for top-level ref counts), many fewer parameters.

WMA: Printing working memory with the "internal" flag shows activation value.

EpMem: Added ability to output visualization of episodes in Graphviz.

Epmem: Removal of lots of legacy code (including "tree" mode).

Epmem: Status WME (success/failure) refers to the initiating command.

SMem: Added ability to output visualization of semantic store in Graphviz.

SMem: Storage occurs at the end of every phase.

SMem: Greatly improved retrieval performance.

SMem: Status WME (success/failure) refers to the initiating command.

The build procedure has changed dramatically and is detailed on the Google Code wiki.

Issue 31: Kernel timers for performance tuning have been updated to use code from stlsoft.org, addressing many timer issues.

Issue 16: rand command and rand rhs functions implemented. This was erroneously included in the previous release's change log.

Issue 60, 42: Invalid select command crash, other select command fixes.

Issue 61: Non-single compiliation units work now.

Issue 57: Many changes related to output-link change tracking including a new method to disable output-link change tracking for a significant performance increase if not using specific SML methods. See Wiki: SMLOutputLinkGuide and method documentation for ClientAgent for much more information.

Issue 62: KernelSML is no longer a singleton per process. Multiple Kernels can now be created (and deleted) which have distinct sets of agents.

Issue 59: Added an RL parameter to turn off discounting during gaps.

Issue 53: Capture input string quoting problem fixed.

Issue 27: Listener port semantics extended to allow random listener ports and process-specific local sockets/pipes.

Issue 40: Java Debugger layout file issues.

Issue 51: Run command extended with a new option to interrupt when a goal retracts.

Issue 39: Memory leaks fixed.

Issue 36: Increased callback performance in SML (affects agents not using any callbacks).

Issue 7: Memory pool preallocation command added.

Issue 18: preferences command extended to include probability that current operators may be selected.


9.2.0

Soar 9.0.1, 9.1.1, 9.2.0 Release Notes
 ======================================

This release of Soar continues the 9.x series of releases during which we expect to introduce several new mechanisms.

Soar can be downloaded from the Soar homepage at:

http://sitemaker.umich.edu/soar

These Soar releases include all source code, many demo programs, and a number of applications that serve as examples of how to interface Soar to an external environment. There is support for integrating Soar with C++, Java, Tcl, Python and C# applications. Many tools that aid in development of Soar programs are also included.

Soar 9.0.1 (Soar-RL) ====================

Soar 9.0 includes reinforcement learning code (Soar-RL), which was first released alongside the 8.6.4 beta. Soar 9.0.1 is primarily a maintenance release, although many bugs have been fixed and minor features added.

Soar-RL is the architectural integration of reinforcement learning (RL) with Soar. The RL mechanism will automatically tune the values of numeric-indifferent preference rules based on reward generated while a Soar agent executes. These values represent the expected discounted sum of future rewards the agent will receive if it selects that operator for states matched by the condition of the rule. See the RL manual and tutorial in Documentation.

To see Soar-RL in action right away, try the Water Jug RL demo (it can be loaded from the Demos->Water Jug menu in the Java Debugger). To see the effects of RL, run it to completion, then init-soar and run it again. Repeat 4-5 times to see it reach optimal behavior. (Note: the agent may occasionally perform non-optimal behavior even after it has converged because of its exploration policy. See the RL manual and tutorial for details).

Soar 9.1.1 (Episodic Memory) ============================

Soar 9.1 includes an Episodic Memory module, which was first released as Soar 9.1.0. Soar 9.1.1 is primarily a maintenance release with bugs fixed and minor features added. 9.1 also includes all of the features from 9.0 (Soar-RL).

Soar-EpMem is a task-independent, architectural integration of an artificial episodic memory (EpMem) with Soar. The EpMem mechanism will automatically record episodes as a Soar agent executes. These episodes can later be queried and retrieved in order to improve performance on future tasks. See the EpMem manual for details.

Soar 9.2.0 (Semantic Memory) ============================

Soar 9.2 includes a Semantic Memory module, and this release of Soar 9.2.0 is the first official release of Soar with semantic memory capabilities. 9.2 also includes all features from 9.1 (EpMem) and 9.0 (Soar-RL).

Soar-SMem is a task-independent, architectural integration of an artificial semantic memory (SMem) with Soar. The SMem mechanism facilitates deliberate recording and querying of semantic chunks as a Soar agent executes.

Installation Requirements =========================

These releases are generated for Windows, Linux, and OSX systems. Windows XP and Vista are supported, as well as 32- and 64-bit architectures.

* IMPORTANT NOTE ABOUT 64-BIT BINARIES: To use the 64-bit Soar tools with Java (such as the Java debugger) you must be using the 64-bit JVM. Attempting to start 64-bit Soar programs with the 32-bit JVM on Windows will cause a javaw.exe process to hang open (terminate it using task manager). Also note: attempting to start 32-bit Java tools, such as those included in previous distributions of Soar, with a 64-bit JVM will also result in the hanging javaw.exe process.

* Sun Java 1.5 or newer is required to use the Java applications, including the debugger (Java must be available in the path). Get it at http://java.sun.com/. Most operating systems probably already have Java installed. NOTE: Java 1.4.2 is no longer supported.

* The Soar Suite needs under 100 MB for regular use, but closer to 1 GB of disk space for object and debugging files if rebuilding all projects.

* Due to path length limits on some versions of Windows, it is recommended to extract Soar to the C:\ root or similar. Some parts of the Soar Suite directory structure are deep, so users wishing to put Soar in a deep location on their machines (such as C:\Documents and Settings\username\My Documents\Visual Studio Projects) may run into issues.

* Tcl version 8.4 is required for the Tcl SML interface. Threaded Tcl builds are not supported. Windows 64-bit does not include the Tcl SML interface. Your installed Tcl architecture must be the same (32 or 64 bit) as the Soar binaries for the Tcl SML interface to load correctly.

* The included Python libraries support Python 2.5. Python 2.6 and 3 support requires a rebuild of the ClientSMLPython project. Your installed Python architecture must be the same (32 or 64 bit) as the Soar binaries for the Python SML interface to load correctly.

Build Requirements ==================

Binaries are released for Windows/Linux/OS X, so building is not required. For those on other platforms or developers:

* Compilers: Windows: Visual Studio 2005 SP1 or 2008, Linux/OS X: GCC 3.3 or later

* SWIG 1.3.31 or later is required to build with cross-language support (e.g. to use the Java debugger).

* Apache ant is required to build Java projects.

* Only the Sun JDK will work, 1.5 or newer.

* On Linux/OS X: Scons, Python 2.5 or newer, Tcl 8.4

* Please see detailed build instructions available on http://msoar.org

New in 9.0.1, 9.1.1, 9.2.0 ==========================

* Native 64-bit platform support for Windows, Linux, OSX (bugs 1139, 1064, 1036, 531) resulting in different, usually better performance on these platforms, and definite ease of compilation and integration with tools such as Java and Python.

* Visual Studio 2008 is now supported and its use is recommended. Visual Studio 2005 support will likely be dropped with the next release.

* Soar 7 mode has been completely removed.

* Preference semantics regarding the generation of operator conflict impasses have changed, see appendix D in the Soar Manual for details.

* Apache ant is now used to build java projects. This results in much faster and reliable Java builds.

Detailed fixes:

* Bug 873: Match-time interrupt with :interrupt production tag re- enabled.

* Bug 234: Preference semantics changed regarding operator conflicts.

* Bug 1145: dont-learn/force-learn RHS actions fixed.

* Bug 1144: Crash bug related to chunking caveat mentioned in manual section 4.6.5 fixed, helpful error message displayed instead.

* Bug 1011: Impasses that existed in a superstate were not getting regenerated if the sub-state was removed due to the GDS, this has been fixed.

* Bug 878: With verbose enabled, the general reason states are getting removed is printed when the state is removed.

* Bug 510: Chunking bug fixed when trying to chunk over negated, conjuntive conditions.

* Bug 1121: RL template production (:template) bug fixed that was failing to correctly generate productions if variables starting with "o" were used.

* Bug 882: Changing trace filters in the Soar Java Debugger no longer collapses the whole trace.

* Bug 1143: Direct I/O functions for WMEs in SML were acting in the wrong phase (usually the output phase instead of the input phase), changed these functions to instead buffer their actions for later execution in the input phase.

* Bug 866: Optimization settings with Visual Studio tweaked.

* Bug 517: Fixed a bug where an unbound variable included in a negated condition where a bound variable was required would crash Soar.

* Bug 1138: Fixed FindByAttribute bug not handling piped strings correctly and, as a result, made it impossible to find some WMEs created on the kernel side.

* Bug 867: Extended SML Identifier interface adding a number of methods that don't have the redundant Agent pointer in their argument list.

* Bug 1049: Fixed io_header_output memory leak.

* Bug 1060: CreateSharedIdWME now explicitly fails if an existing WME is specified, violating the working memory set restriction.

* Bug 987, 1013: Echo command now ignores braces, pipes and other Soar characters so that better ascii art is possible.

* Bug 1084, 1124, 1141: gp command extended with better error messages, maximum rule threshold, VisualSoar support, newline indifference.

* Bug 1057: Many buffers replaced with growable, safer containers such as std::string and std::stringstream in performance-indifferent code.

* Bug 776: New random command implemented and random right hand side functions implemented for random numbers on command.

* Bug 1106: New print --exact flag added to avoid printing unnecessary copies of objects with multi-valued attributes.

* Bug 927: Command line interface made more reentrant to avoid weird "true" results output with multiple clients connected to the agent.

* Bug 952: New agents can now be created on the fly, during a run.

* Bug 1104: Fixed TestCLI hang if exited during run.

* Bug 1033: CreateKernelInNewThread error message fixed.

* Bug 794: edit-production now reports failure if visual soar is not connected.

* Bug 1043: Added SML Agent methods to launch the debugger.

* Bug 1140: RHS halt does not cancel multiple Soar2D runs.

* Bug 1099: Find function in Soar Java Debugger scrolls window to result now.

* Bug 638: Tutorials updated.

* Bug 931: Multiple productions can be pasted in to debugger at same time now.

* Bug 1012: Unterminated strings in productions fail at parse-time now.

* Bug 1025: GetOutputLink() no longer returns null.

* Bug 1042: Debugger command line options fixed.

* Bug 1045: Status complete was getting added twice on output link commands.

* Bug 1056: Kernel changed to use const char more.

* Bug 627: Help command lists folder instead of using command-names file, allowing arbitrary help topics to be easily added.

* Bug 1105: Capture/replay input implemented.

* Large Soar production file parsing speed improvements.

* Soar2d rewritten, faster, easier to configure.

* Various memory leaks fixed, some major.

* Console logging fixed (clog command).

* Build procedure streamlined on all platforms.

* Removed all build warnings.

* Added many regression tests.

If any other issues or bugs are found, please send mail to:

soar-sml-list@lists.sourceforge.net (preferred) -or- soar-group@lists.sourceforge.net

9.1.1

Soar 9.0.1, 9.1.1, 9.2.0 Release Notes
 ======================================

This release of Soar continues the 9.x series of releases during which we expect to introduce several new mechanisms.

Soar can be downloaded from the Soar homepage at:

http://sitemaker.umich.edu/soar

These Soar releases include all source code, many demo programs, and a number of applications that serve as examples of how to interface Soar to an external environment. There is support for integrating Soar with C++, Java, Tcl, Python and C# applications. Many tools that aid in development of Soar programs are also included.

Soar 9.0.1 (Soar-RL) ====================

Soar 9.0 includes reinforcement learning code (Soar-RL), which was first released alongside the 8.6.4 beta. Soar 9.0.1 is primarily a maintenance release, although many bugs have been fixed and minor features added.

Soar-RL is the architectural integration of reinforcement learning (RL) with Soar. The RL mechanism will automatically tune the values of numeric-indifferent preference rules based on reward generated while a Soar agent executes. These values represent the expected discounted sum of future rewards the agent will receive if it selects that operator for states matched by the condition of the rule. See the RL manual and tutorial in Documentation.

To see Soar-RL in action right away, try the Water Jug RL demo (it can be loaded from the Demos->Water Jug menu in the Java Debugger). To see the effects of RL, run it to completion, then init-soar and run it again. Repeat 4-5 times to see it reach optimal behavior. (Note: the agent may occasionally perform non-optimal behavior even after it has converged because of its exploration policy. See the RL manual and tutorial for details).

Soar 9.1.1 (Episodic Memory) ============================

Soar 9.1 includes an Episodic Memory module, which was first released as Soar 9.1.0. Soar 9.1.1 is primarily a maintenance release with bugs fixed and minor features added. 9.1 also includes all of the features from 9.0 (Soar-RL).

Soar-EpMem is a task-independent, architectural integration of an artificial episodic memory (EpMem) with Soar. The EpMem mechanism will automatically record episodes as a Soar agent executes. These episodes can later be queried and retrieved in order to improve performance on future tasks. See the EpMem manual for details.

Soar 9.2.0 (Semantic Memory) ============================

Soar 9.2 includes a Semantic Memory module, and this release of Soar 9.2.0 is the first official release of Soar with semantic memory capabilities. 9.2 also includes all features from 9.1 (EpMem) and 9.0 (Soar-RL).

Soar-SMem is a task-independent, architectural integration of an artificial semantic memory (SMem) with Soar. The SMem mechanism facilitates deliberate recording and querying of semantic chunks as a Soar agent executes.

Installation Requirements =========================

These releases are generated for Windows, Linux, and OSX systems. Windows XP and Vista are supported, as well as 32- and 64-bit architectures.

* IMPORTANT NOTE ABOUT 64-BIT BINARIES: To use the 64-bit Soar tools with Java (such as the Java debugger) you must be using the 64-bit JVM. Attempting to start 64-bit Soar programs with the 32-bit JVM on Windows will cause a javaw.exe process to hang open (terminate it using task manager). Also note: attempting to start 32-bit Java tools, such as those included in previous distributions of Soar, with a 64-bit JVM will also result in the hanging javaw.exe process.

* Sun Java 1.5 or newer is required to use the Java applications, including the debugger (Java must be available in the path). Get it at http://java.sun.com/. Most operating systems probably already have Java installed. NOTE: Java 1.4.2 is no longer supported.

* The Soar Suite needs under 100 MB for regular use, but closer to 1 GB of disk space for object and debugging files if rebuilding all projects.

* Due to path length limits on some versions of Windows, it is recommended to extract Soar to the C:\ root or similar. Some parts of the Soar Suite directory structure are deep, so users wishing to put Soar in a deep location on their machines (such as C:\Documents and Settings\username\My Documents\Visual Studio Projects) may run into issues.

* Tcl version 8.4 is required for the Tcl SML interface. Threaded Tcl builds are not supported. Windows 64-bit does not include the Tcl SML interface. Your installed Tcl architecture must be the same (32 or 64 bit) as the Soar binaries for the Tcl SML interface to load correctly.

* The included Python libraries support Python 2.5. Python 2.6 and 3 support requires a rebuild of the ClientSMLPython project. Your installed Python architecture must be the same (32 or 64 bit) as the Soar binaries for the Python SML interface to load correctly.

Build Requirements ==================

Binaries are released for Windows/Linux/OS X, so building is not required. For those on other platforms or developers:

* Compilers: Windows: Visual Studio 2005 SP1 or 2008, Linux/OS X: GCC 3.3 or later

* SWIG 1.3.31 or later is required to build with cross-language support (e.g. to use the Java debugger).

* Apache ant is required to build Java projects.

* Only the Sun JDK will work, 1.5 or newer.

* On Linux/OS X: Scons, Python 2.5 or newer, Tcl 8.4

* Please see detailed build instructions available on http://msoar.org

New in 9.0.1, 9.1.1, 9.2.0 ==========================

* Native 64-bit platform support for Windows, Linux, OSX (bugs 1139, 1064, 1036, 531) resulting in different, usually better performance on these platforms, and definite ease of compilation and integration with tools such as Java and Python.

* Visual Studio 2008 is now supported and its use is recommended. Visual Studio 2005 support will likely be dropped with the next release.

* Soar 7 mode has been completely removed.

* Preference semantics regarding the generation of operator conflict impasses have changed, see appendix D in the Soar Manual for details.

* Apache ant is now used to build java projects. This results in much faster and reliable Java builds.

Detailed fixes:

* Bug 873: Match-time interrupt with :interrupt production tag re- enabled.

* Bug 234: Preference semantics changed regarding operator conflicts.

* Bug 1145: dont-learn/force-learn RHS actions fixed.

* Bug 1144: Crash bug related to chunking caveat mentioned in manual section 4.6.5 fixed, helpful error message displayed instead.

* Bug 1011: Impasses that existed in a superstate were not getting regenerated if the sub-state was removed due to the GDS, this has been fixed.

* Bug 878: With verbose enabled, the general reason states are getting removed is printed when the state is removed.

* Bug 510: Chunking bug fixed when trying to chunk over negated, conjuntive conditions.

* Bug 1121: RL template production (:template) bug fixed that was failing to correctly generate productions if variables starting with "o" were used.

* Bug 882: Changing trace filters in the Soar Java Debugger no longer collapses the whole trace.

* Bug 1143: Direct I/O functions for WMEs in SML were acting in the wrong phase (usually the output phase instead of the input phase), changed these functions to instead buffer their actions for later execution in the input phase.

* Bug 866: Optimization settings with Visual Studio tweaked.

* Bug 517: Fixed a bug where an unbound variable included in a negated condition where a bound variable was required would crash Soar.

* Bug 1138: Fixed FindByAttribute bug not handling piped strings correctly and, as a result, made it impossible to find some WMEs created on the kernel side.

* Bug 867: Extended SML Identifier interface adding a number of methods that don't have the redundant Agent pointer in their argument list.

* Bug 1049: Fixed io_header_output memory leak.

* Bug 1060: CreateSharedIdWME now explicitly fails if an existing WME is specified, violating the working memory set restriction.

* Bug 987, 1013: Echo command now ignores braces, pipes and other Soar characters so that better ascii art is possible.

* Bug 1084, 1124, 1141: gp command extended with better error messages, maximum rule threshold, VisualSoar support, newline indifference.

* Bug 1057: Many buffers replaced with growable, safer containers such as std::string and std::stringstream in performance-indifferent code.

* Bug 776: New random command implemented and random right hand side functions implemented for random numbers on command.

* Bug 1106: New print --exact flag added to avoid printing unnecessary copies of objects with multi-valued attributes.

* Bug 927: Command line interface made more reentrant to avoid weird "true" results output with multiple clients connected to the agent.

* Bug 952: New agents can now be created on the fly, during a run.

* Bug 1104: Fixed TestCLI hang if exited during run.

* Bug 1033: CreateKernelInNewThread error message fixed.

* Bug 794: edit-production now reports failure if visual soar is not connected.

* Bug 1043: Added SML Agent methods to launch the debugger.

* Bug 1140: RHS halt does not cancel multiple Soar2D runs.

* Bug 1099: Find function in Soar Java Debugger scrolls window to result now.

* Bug 638: Tutorials updated.

* Bug 931: Multiple productions can be pasted in to debugger at same time now.

* Bug 1012: Unterminated strings in productions fail at parse-time now.

* Bug 1025: GetOutputLink() no longer returns null.

* Bug 1042: Debugger command line options fixed.

* Bug 1045: Status complete was getting added twice on output link commands.

* Bug 1056: Kernel changed to use const char more.

* Bug 627: Help command lists folder instead of using command-names file, allowing arbitrary help topics to be easily added.

* Bug 1105: Capture/replay input implemented.

* Large Soar production file parsing speed improvements.

* Soar2d rewritten, faster, easier to configure.

* Various memory leaks fixed, some major.

* Console logging fixed (clog command).

* Build procedure streamlined on all platforms.

* Removed all build warnings.

* Added many regression tests.

If any other issues or bugs are found, please send mail to:

soar-sml-list@lists.sourceforge.net (preferred) -or- soar-group@lists.sourceforge.net


9.1.0

Soar 9.1.0-beta Release Notes
 =============================

This release of Soar continues the 9.x series of releases during which we expect to introduce several new mechanisms. 9.0.0 included reinforcement learning code (Soar-RL), which was first released alongside the 8.6.4 beta. 9.0.0 was also the first release to include the SML interface without gSKI. 9.1.0-beta includes episodic memory (Soar-EpMem) and Working Memory Activation (WMA).

Soar-EpMem is a task-independent, architectural integration of an artificial episodic memory (EpMem) with Soar. The EpMem mechanism will automatically record episodes as a Soar agent executes. These episodes can later be queried and retrieved in order to improve performance on future tasks. See the EpMem manual in Documentation.

This release of Soar-EpMem does not include a tutorial. To see examples of using Soar-EpMem with a Soar agent, see the "kb" agent in the Demos directory. This agent will run a series of EpMem "unit tests," exploring all forms of the Soar-EpMem agent API.

Soar 9.1.0-beta includes all source code, many demo programs, and a number of applications that serve as examples of how to interface Soar to an external Environment. There is support for integrating Soar with C++, Java, Tcl, Python and C# applications. Many Tools that aid in development of Soar programs are also included.

These Release Notes describe the primary changes in this latest release. More detailed information can be obtained at http://winter.eecs.umich.edu/soarwiki

This release was generated for Windows, Linux, and OSX systems. Windows XP and Vista are supported.

Soar 9.1.0-beta can be downloaded from the Soar homepage at:

http://sitemaker.umich.edu/soar

Installation Requirements =========================

* On Windows, the 19MB download file expands to ~45MB when extracted. Linux and OSX disk requirements are similar. Note that Windows has a 255 character path length limit; some parts of the directory structure are deep, so users wishing to put Soar in a deep location on their machines may run into issues.

* Java 1.5.0 or newer is required to use the Java applications, including the debugger (Java must be available in the path). Get it at http://java.sun.com/. Most operating systems probably already have Java installed. NOTE: Java 1.4.2 is no longer supported.

* If you want to run Tcl applications on Linux, Tcl 8.4.x or later is required (note that the tutorial applications are now available in Java). Also note that we do not currently support threaded builds of Tcl (e.g. ActiveTcl 8.4.11.2 or later).

* The included Python libraries support Python 2.4. Python 2.5 support requires a rebuild of the ClientSMLPython project.

Build Requirements ==================Binaries are released for Windows/Linux/OS X, so building is not required. For those on other platforms or developers: * On all platforms, SWIG 1.3.31 or later is required to build with cross-language support (e.g. to use the Java debugger). * On Windows, Visual Studio 2005 SP1 is required. * On Linux/Unix/OS X, Python, SCons, gcc 3.3 or later required.

Soar-EpMem & SQLite ===================Soar-EpMem requires both statically and dynamically linked SQLite components. The former is provided in source. The latter, at this time, is a manual process (SQLite uses make scripts for their compile). EpMem includes pre-built binaries for Windows, Linux (tested on Ubuntu) and OS X Leopard. If your install works with these components, you can skip this section. Otherwise, the following process documents how to build the required components.

First, download the source tarball from the SQLite homepage (http://www.sqlite.org/download.html). To be clear, you want the non-amalgamated source code tarball (probably named sqlite-A.B.C.tar.gz, for version A.B.C). Next, extract the contents, change to the directory, and run ./configure followed by make at the command line. These commands will create the required libraries for your system. The final step is to copy the required components from the SQLite directory to your EpMem directory. The only file of interest is named libsqliteA.B.C.D.ext (ext is dylib on Mac, so for Linux; A.B.C.D will vary on the version) and is located in the .libs folder of your SQLite directory. You will want to copy this file out of .libs and into the SoarLibrary/lib folder of your EpMem install. Furthermore, SQLite requires that this file exist under two additional names: libqsliteA.ext and libsqliteA.B.ext. To accommodate, you can either create a symbolic link under these two names or duplicate the file (it makes no difference, except for added/saved disk space). Once you have these components in the appropriate directory, your EpMem build (and subsequent runs) should work fine.

Components of Soar 9.1.0-beta =============================* Pre-built libraries and executables (SoarLibrary/bin) * all source code, config files, and OS tools for automated Soar builds * SoarJavaDebugger * VisualSoar * JavaEaters, JavaTankSoar, TclEaters * Test and Demo programs * Documentation

New in 9.1.0-beta =================

* Components and Capabilities added -- EpMem commands and documentation added (see EpMem manual in Documentation directory). -- WMA commands and documentation added (see EpMem manual in Documentation directory). -- Other minor enhancements.

* Bug fixes -- Several other minor fixes.

Known issues: =============

* No EpMem tutorial * EpMem "provenance" parameter is unimplemented * status complete appears on the output-link immediately instead of during the next input phase. * The Soar 7 mode implementation currently relies on an ugly hack. If you experience problems in this mode, please let us know. * Many other minor issues (see bugzilla for details).

If any other issues or bugs are found, please send mail to:

soar-sml-list@lists.sourceforge.net (preferred) -or- soar-group@lists.sourceforge.net


9.0.1

Soar 9.0.1, 9.1.1, 9.2.0 Release Notes
 ======================================

This release of Soar continues the 9.x series of releases during which we expect to introduce several new mechanisms.

Soar can be downloaded from the Soar homepage at:

http://sitemaker.umich.edu/soar

These Soar releases include all source code, many demo programs, and a number of applications that serve as examples of how to interface Soar to an external environment. There is support for integrating Soar with C++, Java, Tcl, Python and C# applications. Many tools that aid in development of Soar programs are also included.

Soar 9.0.1 (Soar-RL) ====================

Soar 9.0 includes reinforcement learning code (Soar-RL), which was first released alongside the 8.6.4 beta. Soar 9.0.1 is primarily a maintenance release, although many bugs have been fixed and minor features added.

Soar-RL is the architectural integration of reinforcement learning (RL) with Soar. The RL mechanism will automatically tune the values of numeric-indifferent preference rules based on reward generated while a Soar agent executes. These values represent the expected discounted sum of future rewards the agent will receive if it selects that operator for states matched by the condition of the rule. See the RL manual and tutorial in Documentation.

To see Soar-RL in action right away, try the Water Jug RL demo (it can be loaded from the Demos->Water Jug menu in the Java Debugger). To see the effects of RL, run it to completion, then init-soar and run it again. Repeat 4-5 times to see it reach optimal behavior. (Note: the agent may occasionally perform non-optimal behavior even after it has converged because of its exploration policy. See the RL manual and tutorial for details).

Soar 9.1.1 (Episodic Memory) ============================

Soar 9.1 includes an Episodic Memory module, which was first released as Soar 9.1.0. Soar 9.1.1 is primarily a maintenance release with bugs fixed and minor features added. 9.1 also includes all of the features from 9.0 (Soar-RL).

Soar-EpMem is a task-independent, architectural integration of an artificial episodic memory (EpMem) with Soar. The EpMem mechanism will automatically record episodes as a Soar agent executes. These episodes can later be queried and retrieved in order to improve performance on future tasks. See the EpMem manual for details.

Soar 9.2.0 (Semantic Memory) ============================

Soar 9.2 includes a Semantic Memory module, and this release of Soar 9.2.0 is the first official release of Soar with semantic memory capabilities. 9.2 also includes all features from 9.1 (EpMem) and 9.0 (Soar-RL).

Soar-SMem is a task-independent, architectural integration of an artificial semantic memory (SMem) with Soar. The SMem mechanism facilitates deliberate recording and querying of semantic chunks as a Soar agent executes.

Installation Requirements =========================

These releases are generated for Windows, Linux, and OSX systems. Windows XP and Vista are supported, as well as 32- and 64-bit architectures.

* IMPORTANT NOTE ABOUT 64-BIT BINARIES: To use the 64-bit Soar tools with Java (such as the Java debugger) you must be using the 64-bit JVM. Attempting to start 64-bit Soar programs with the 32-bit JVM on Windows will cause a javaw.exe process to hang open (terminate it using task manager). Also note: attempting to start 32-bit Java tools, such as those included in previous distributions of Soar, with a 64-bit JVM will also result in the hanging javaw.exe process.

* Sun Java 1.5 or newer is required to use the Java applications, including the debugger (Java must be available in the path). Get it at http://java.sun.com/. Most operating systems probably already have Java installed. NOTE: Java 1.4.2 is no longer supported.

* The Soar Suite needs under 100 MB for regular use, but closer to 1 GB of disk space for object and debugging files if rebuilding all projects.

* Due to path length limits on some versions of Windows, it is recommended to extract Soar to the C:\ root or similar. Some parts of the Soar Suite directory structure are deep, so users wishing to put Soar in a deep location on their machines (such as C:\Documents and Settings\username\My Documents\Visual Studio Projects) may run into issues.

* Tcl version 8.4 is required for the Tcl SML interface. Threaded Tcl builds are not supported. Windows 64-bit does not include the Tcl SML interface. Your installed Tcl architecture must be the same (32 or 64 bit) as the Soar binaries for the Tcl SML interface to load correctly.

* The included Python libraries support Python 2.5. Python 2.6 and 3 support requires a rebuild of the ClientSMLPython project. Your installed Python architecture must be the same (32 or 64 bit) as the Soar binaries for the Python SML interface to load correctly.

Build Requirements ==================

Binaries are released for Windows/Linux/OS X, so building is not required. For those on other platforms or developers:

* Compilers: Windows: Visual Studio 2005 SP1 or 2008, Linux/OS X: GCC 3.3 or later

* SWIG 1.3.31 or later is required to build with cross-language support (e.g. to use the Java debugger).

* Apache ant is required to build Java projects.

* Only the Sun JDK will work, 1.5 or newer.

* On Linux/OS X: Scons, Python 2.5 or newer, Tcl 8.4

* Please see detailed build instructions available on http://msoar.org

New in 9.0.1, 9.1.1, 9.2.0 ==========================

* Native 64-bit platform support for Windows, Linux, OSX (bugs 1139, 1064, 1036, 531) resulting in different, usually better performance on these platforms, and definite ease of compilation and integration with tools such as Java and Python.

* Visual Studio 2008 is now supported and its use is recommended. Visual Studio 2005 support will likely be dropped with the next release.

* Soar 7 mode has been completely removed.

* Preference semantics regarding the generation of operator conflict impasses have changed, see appendix D in the Soar Manual for details.

* Apache ant is now used to build java projects. This results in much faster and reliable Java builds.

Detailed fixes:

* Bug 873: Match-time interrupt with :interrupt production tag re- enabled.

* Bug 234: Preference semantics changed regarding operator conflicts.

* Bug 1145: dont-learn/force-learn RHS actions fixed.

* Bug 1144: Crash bug related to chunking caveat mentioned in manual section 4.6.5 fixed, helpful error message displayed instead.

* Bug 1011: Impasses that existed in a superstate were not getting regenerated if the sub-state was removed due to the GDS, this has been fixed.

* Bug 878: With verbose enabled, the general reason states are getting removed is printed when the state is removed.

* Bug 510: Chunking bug fixed when trying to chunk over negated, conjuntive conditions.

* Bug 1121: RL template production (:template) bug fixed that was failing to correctly generate productions if variables starting with "o" were used.

* Bug 882: Changing trace filters in the Soar Java Debugger no longer collapses the whole trace.

* Bug 1143: Direct I/O functions for WMEs in SML were acting in the wrong phase (usually the output phase instead of the input phase), changed these functions to instead buffer their actions for later execution in the input phase.

* Bug 866: Optimization settings with Visual Studio tweaked.

* Bug 517: Fixed a bug where an unbound variable included in a negated condition where a bound variable was required would crash Soar.

* Bug 1138: Fixed FindByAttribute bug not handling piped strings correctly and, as a result, made it impossible to find some WMEs created on the kernel side.

* Bug 867: Extended SML Identifier interface adding a number of methods that don't have the redundant Agent pointer in their argument list.

* Bug 1049: Fixed io_header_output memory leak.

* Bug 1060: CreateSharedIdWME now explicitly fails if an existing WME is specified, violating the working memory set restriction.

* Bug 987, 1013: Echo command now ignores braces, pipes and other Soar characters so that better ascii art is possible.

* Bug 1084, 1124, 1141: gp command extended with better error messages, maximum rule threshold, VisualSoar support, newline indifference.

* Bug 1057: Many buffers replaced with growable, safer containers such as std::string and std::stringstream in performance-indifferent code.

* Bug 776: New random command implemented and random right hand side functions implemented for random numbers on command.

* Bug 1106: New print --exact flag added to avoid printing unnecessary copies of objects with multi-valued attributes.

* Bug 927: Command line interface made more reentrant to avoid weird "true" results output with multiple clients connected to the agent.

* Bug 952: New agents can now be created on the fly, during a run.

* Bug 1104: Fixed TestCLI hang if exited during run.

* Bug 1033: CreateKernelInNewThread error message fixed.

* Bug 794: edit-production now reports failure if visual soar is not connected.

* Bug 1043: Added SML Agent methods to launch the debugger.

* Bug 1140: RHS halt does not cancel multiple Soar2D runs.

* Bug 1099: Find function in Soar Java Debugger scrolls window to result now.

* Bug 638: Tutorials updated.

* Bug 931: Multiple productions can be pasted in to debugger at same time now.

* Bug 1012: Unterminated strings in productions fail at parse-time now.

* Bug 1025: GetOutputLink() no longer returns null.

* Bug 1042: Debugger command line options fixed.

* Bug 1045: Status complete was getting added twice on output link commands.

* Bug 1056: Kernel changed to use const char more.

* Bug 627: Help command lists folder instead of using command-names file, allowing arbitrary help topics to be easily added.

* Bug 1105: Capture/replay input implemented.

* Large Soar production file parsing speed improvements.

* Soar2d rewritten, faster, easier to configure.

* Various memory leaks fixed, some major.

* Console logging fixed (clog command).

* Build procedure streamlined on all platforms.

* Removed all build warnings.

* Added many regression tests.

If any other issues or bugs are found, please send mail to:

soar-sml-list@lists.sourceforge.net (preferred) -or- soar-group@lists.sourceforge.net


9.0.0

Soar 9.0.0 Release Notes
 ========================

This release of Soar begins the 9.x series of releases during which we expect to introduce several new mechanisms. 9.0.0 includes reinforcement learning code (Soar-RL), which was first released alongside the 8.6.4 beta. 9.0.0 is also the first release to include the SML interface without gSKI.

Soar-RL is the architectural integration of reinforcement learning (RL) with Soar. The RL mechanism will automatically tune the values of numeric-indifferent preference rules based on reward generated while a Soar agent executes. These values represent the expected discounted sum of future rewards the agent will receive if it selects that operator for states matched by the condition of the rule. See the RL manual and tutorial in Documentation.

To see Soar-RL in action right away, try the Water Jug RL demo (it can be loaded from the Demos->Water Jug menu in the Java Debugger). To see the effects of RL, run it to completion, then init-soar and run it again. Repeat 4-5 times to see it reach optimal behavior. (Note: the agent may occasionally perform non-optimal behavior even after it has converged because of its exploration policy. See the RL manual and tutorial for details).

Soar-9.0.0 includes all source code, many demo programs, and a number of applications that serve as examples of how to interface Soar to an external Environment. There is support for integrating Soar with C++, Java, Tcl, Python and C# applications. Many Tools that aid in development of Soar programs are also included.

These Release Notes describe the primary changes in this latest release. More detailed information can be obtained at http://winter.eecs.umich.edu/soarwiki

This release was generated for Windows, Linux, and OSX systems. Windows XP and Vista are supported.

Soar 9.0.0 can be downloaded from the Soar homepage at:

http://sitemaker.umich.edu/soar

Installation Requirements =========================

* On Windows, the 19MB download file expands to ~45MB when extracted. Linux and OSX disk requirements are similar. Note that Windows has a 255 character path length limit; some parts of the directory structure are deep, so users wishing to put Soar in a deep location on their machines may run into issues.

* Java 1.5.0 or newer is required to use the Java applications, including the debugger (Java must be available in the path). Get it at http://java.sun.com/. Most operating systems probably already have Java installed. NOTE: Java 1.4.2 is no longer supported.

* If you want to run Tcl applications on Linux, Tcl 8.4.x or later is required (note that the tutorial applications are now available in Java). Also note that we do not currently support threaded builds of Tcl (e.g. ActiveTcl 8.4.11.2 or later).

* The included Python libraries support Python 2.4. Python 2.5 support requires a rebuild of the ClientSMLPython project.

Build Requirements ==================Binaries are released for Windows/Linux/OS X, so building is not required. For those on other platforms or developers: * On all platforms, SWIG 1.3.31 or later is required to build with cross-language support (e.g. to use the Java debugger). * On Windows, Visual Studio 2005 SP1 is required. * On Linux/Unix/OS X, Python, SCons, gcc 3.3 or later required.

Components of Soar 9.0.0 ========================* Pre-built libraries and executables for Windows (SoarLibrary/bin) * all source code, config files, and OS tools for automated Soar builds * SoarJavaDebugger * VisualSoar * JavaEaters, JavaTankSoar, TclEaters * Test and Demo programs * Documentation

New in 9.0.0 ============

* Components and Capabilities added -- RL commands and documentation added (see RL manual and tutorial in Documentation directory). -- indifferent-selection command updated to support options primarily intended for (but not limited to) RL. -- select and predict commands added to control operator selection (essentially replaces defunct indifferent-selection --ask functionality). -- New "gp" command added. Generates rules based on simple patterns (intended for use with RL). -- Added iterative deepening support to selection space. To see this in action, load the Water Jug Look-Ahead demo, then source selection-iterative-deepening.soar (in SoarLibrary/Demos/default) and run. Init-soar and run again. Iterative deepening is guaranteed to find the path with the fewest steps. -- Added options to learn command to turn chunking through local negations on or off (on by default for backwards compatibility). If off, a message will be generated if "watch --learning print" is enabled that says a chunk was not created because of local negations, and what those negations were. -- Updated selection space to remove local negations (for compatibility with new --disable-through-local-negations chunking mode). -- In a tie impasse, an item-count WME containing the number of tied operators is now architecturally generated. -- Depth at which productions are firing is reported at watch 5. -- Multiple rules can be loaded via the Java debugger's Edit Production widget, scratch pad, and by pasting into the trace window. This is the result of an underlying change to SML in which arguments to ExecuteCommandLine are passed through logic associated with the source command, and thus multiple commands can be given at once. -- Command boxes in the Java debugger have been enhanced so that history browsing with the up/down arrows works on all platforms. -- New "single compilation unit" build configurations (greatly speeds build time). -- Unit test suite added. -- Other minor enhancements.

* Bug fixes -- Output link supports circular structures. -- Duplicate productions no longer cause sourcing to stop. -- Various memory leaks fixed. -- Several other minor fixes.

* Other updates -- Removed gSKI (10-30% speed increase in simple benchmarking). -- The Soar Java Debugger now uses its default layout the first time it is run with a new version of Soar. Old layouts are preserved and can be loaded if desired (which makes them the default).

Known issues: =============

* status complete appears on the output-link immediately instead of during the next input phase. * The Soar 7 mode implementation currently relies on an ugly hack. If you experience problems in this mode, please let us know. * Many other minor issues (see bugzilla for details).

If any other issues or bugs are found, please send mail to:

soar-sml-list@lists.sourceforge.net (preferred) -or- soar-group@lists.sourceforge.net


8.6.4

Soar 8.6.4 Release Notes
 ========================

This release of Soar includes reinforcement learning code (Soar-RL).

Soar-RL is the architectural integration of reinforcement learning (RL) with Soar. The RL mechanism will automatically learn value functions as a Soar agent executes. These value functions represent, for a given working memory state and proposed operator, the expected sum of future rewards the agent will receive if it selects that operator.

Note: in the final version of Soar-RL, all Soar impasses will be treated identically. In the case of an impasse other than operator no-change, the time period at the superstate during which no operator is selected will be treated as a ÒgapÓ in rule coverage, and perceived reward will be discounted with respect to decision cycles passed.

This release also includes an important bug fix regarding shared ids, see bugzilla bug number 1027 for details.

The 8.6.4 release notes follow.

Soar 8.6.4 Release Notes ========================

Soar-8.6.4 includes all source code, many demo programs, and a number of applications that serve as examples of how to interface Soar to an external Environment. There is support for integrating Soar with C++, Java, Tcl, Python and C# applications. Many Tools that aid in development of Soar programs are also included.

These Release Notes describe the primary changes in this latest release. More detailed information can be obtained at http://winter.eecs.umich.edu/soarwiki

This release was generated for Windows, Linux, and OSX systems. Windows XP and Vista are supported.

Soar 8.6.4 can be downloaded from the Soar homepage at:

http://sitemaker.umich.edu/soar

Installation Requirements =========================

* On Windows, the 19MB download file expands to ~45MB when extracted. Linux and OSX disk requirements are similar.

* Java 1.5.0 or newer is required to use the Java applications, including the debugger (Java must be available in the path). Get it at http://java.sun.com/. Most operating systems probably already have Java installed. NOTE: Java 1.4.2 is no longer supported.

* If you want to run Tcl applications on Linux, Tcl 8.4.x or later is required (note that the tutorial applications are now available in Java). Also note that we do not currently support threaded builds of Tcl (e.g. ActiveTcl 8.4.11.2 or later).

* The included Python libraries support Python 2.4. Python 2.5 support requires a rebuild of the ClientSMLPython project.

Build Requirements ==================

* On all platforms, SWIG 1.3.31 is required for cross-language support (e.g. to use the Java debugger). * On Windows, Visual Studio 2005 SP1 is required. * On Linux/Unix/OS X, Python, SCons, gcc 3.3 or later required.

Components of Soar 8.6.4 ========================* Pre-built libraries and executables for Windows (SoarLibrary/bin) * all source code, config files, and OS tools for automated Soar builds * SoarJavaDebugger * VisualSoar * JavaEaters, JavaTankSoar, TclEaters * Test and Demo programs * Documentation

New in 8.6.4 ============

* Components and Capabilities added -- Eaters and TankSoar have been rewritten and are now part of the Soar2D framework. This includes many enhancements. -- New command: load-library. See manual for details. -- Extended preferences command to print wme support (see the Soar wiki for details). -- Extended print command to support printing tree structures (see manual for details). -- Added IsRemoteConnection() to client Kernel interface. -- Modified StringEventCallback to return a string. -- Now generate proper Java enums for SML Java interface. -- Major refactoring of portability support (e.g. portability.h) -- Other minor enhancements.

* Bug fixes -- Lots of TankSoar and Eaters bugfixes -- Fixed command-to-file command -- Fixed more memory leaks. -- Fixed stats bug. -- Fixed print depth/indentation bug. -- Several other minor fixes

* Other updates -- Updated to SWT 3.3

Known issues: =============

* Remote connections on Linux can be slow. * status complete appears on the output-link immediately instead of during the next input phase. * The Soar 7 mode implementation currently relies on an ugly hack. If you experience problems in this mode, please let us know. * In TankSoar, the obscure-bot sometimes generates a scary-looking kernel error message. It appears to be safe to ignore. * Many other minor issues (see bugzilla for details).

If any other issues or bugs are found, please send mail to:

soar-sml-list@lists.sourceforge.net (preferred) -or- soar-group@lists.sourceforge.netv


8.6.3

Soar 8.6.3 Release Notes
 ========================

Soar-8.6.3 includes all source code, many demo programs, and a number of applications that serve as examples of how to interface Soar to an external Environment. There is support for integrating Soar with C++, Java, Tcl, Python and C# applications. Many Tools that aid in development of Soar programs are also included.

These Release Notes describe the primary changes in this latest release. More detailed information can be obtained at http://winter.eecs.umich.edu/soarwiki

This release was generated for Windows and Linux systems. OS X support is pending a volunteer willing to work on it.

Soar 8.6.3 can be downloaded from the Soar homepage at:

http://sitemaker.umich.edu/soar

Installation Requirements =========================

* On Windows, the 19MB download file expands to ~46MB when installed. Linux disk requirements are similar.

* Java 1.4.2 or newer is required to use the SoarJavaDebugger, which is required for most of the demos and applications. (java must be available in the path). Get it at http://java.sun.com/. Most operating systems probably already have Java installed.

* If you want to run Tcl applications on Linux, Tcl 8.4.x or later is required (note that the tutorial applications are now available in Java). Also note that we do not currently support threaded builds of Tcl (e.g. ActiveTcl 8.4.11.2 or later).

* The included Python libraries support Python 2.4. Python 2.5 support requires a rebuild of the ClientSMLPython project.

Components of Soar 8.6.3 ========================* pre-built libraries and executables for Windows (SoarLibrary/bin) * all source code, config files, and OS tools for automated Soar builds * SoarJavaDebugger * VisualSoar * JavaEaters, JavaTankSoar, TclEaters * Test and Demo programs * Documentation

New in 8.6.3 ============

* Components and Capabilities added -- Added support for multiple clients modifying different parts of the input link -- Added Python support -- Requires use of --enable-python configure flag on Linux -- Added CheckForIncomingEvents to help single-threaded applications -- Matches command can now generate XML output -- Added max-memory-usage command (not yet functional) -- Watching wmes (level 4 and higher) now reports GDS changes -- Added "after halted" event -- Improved output of the "preferences" command for Soar8. New arg "--objects" added. Invoke "help preferences" for usage -- New alias "support" added for "preferences --object" -- Right-clicking on identifiers and attributes in debugger allows "preferences" and "preferences --object" to be selected -- added TestSMLPerformance project -- Added ^status error support to TankSoar -- TankSoar can now be configured to stop after a specified number of updates -- Reset in TankSoar/Eaters now returns agents to starting locations if specified

* Bug fixes -- Lots of TankSoar and Eaters bugfixes -- Fixed command-to-file command -- Fixed alias command for adding flags to aliases; previously the flags were sometimes interpreted as flags for the alias command itself rather than the command for which an alias was being created. "alias" no longer takes any flags. use "unalias" to remove defined aliases. -- An empty string can now be returned by a client message handler -- Fixed handling of comments by sp -- Fixed lots of memory leaks (including some very old ones in the kernel) -- Debugger bug fixes -- properly handle right-clicks in horizontally-scrolled window -- recognize identifiers in preferences command output for right-click purposes -- fixed up logging example apps (LoggerCWin, LoggerJava) -- Several other minor fixes

* Other updates -- Minor performance improvements (~5%) -- Windows builds now done with Visual Studio 2005 -- Now use Microsoft C library dlls -- VS2003 solution/project files still available -- Cleaned up Java build batch files on Windows -- Cleaned up Linux builds somewhat -- Updated to SWT 3.2.0

Known issues: =============

* TankSoar and Eaters have some redraw issues (forcing a redraw, e.g. by moving the window, fixes this). * Remote connections on Linux can be slow. * status complete appears on the output-link immediately instead of during the next input phase. * The Soar 7 mode implementation currently relies on an ugly hack. If you experience problems in this mode, please let us know. * In TankSoar, the obscure-bot sometimes generates a scary-looking kernel error message. It appears to be safe to ignore. * Many other minor issues (see bugzilla for details).

If any other issues or bugs are found, please send mail to:

soar-sml-list@umich.edu (preferred) -or- soar-group@lists.sourceforge.net


8.6.2

Soar 8.6.2 Release Notes
 ========================

Soar-8.6.2 includes all source code, many demo programs, and a number of applications that serve as examples of how to interface Soar to an external Environment. There is support for integrating Soar with C++, Java, Tcl and C# applications. Many Tools that aid in development of Soar programs are also included.

These Release Notes describe the primary changes in this latest release. More detailed information can be obtained at http://winter.eecs.umich.edu/soarwiki

This release was generated for Windows and Linux systems (OS X forthcoming).

Soar 8.6.2 can be downloaded from the Soar homepage at:

http://sitemaker.umich.edu/soar

Installation Requirements =========================

* On Windows, the 19MB download file expands to ~46MB when installed. Linux disk requirements are similar.

* Java 1.4.2 or newer is required to use the SoarJavaDebugger, which is required for most of the demos and applications. (java must be available in the path). Get it at http://java.sun.com/. Most operating systems probably already have Java installed.

* If you want to run Tcl applications on Linux, Tcl 8.4.x or later is required (note that the tutorial applications are now available in Java). Also note that we do not currently support threaded builds of Tcl (e.g. ActiveTcl 8.4.11.2 or later).

Components of Soar 8.6.2 ========================* pre-built libraries and executables for Windows (SoarLibrary/bin) * all source code, config files, and OS tools for automated Soar builds * SoarJavaDebugger * VisualSoar * JavaEaters, JavaTankSoar, TclEaters * Test and Demo programs * Documentation

New in 8.6.2 ============

* Components and Capabilities added: -- C# added to list of supported languages (now C++, Java, Tcl, C#). -- Java versions of Eaters and TankSoar -- Support for arbitrary communication from one client to another (not just to/from the kernel) -- Tcl commands can now be used from the SoarJavaDebugger by running a separate Tcl filter alongside the debugger (this is a preliminary version in this release). -- Support for filtering of command line input in any supported language Filtering can be chained. -- Support for logging output in SoarJavaDebugger on a window-by-window basis -- Support for arbitrary logging of Soar execution through custom logging applications. Sample programs included in Tools directory. -- Added new SML tutorial for developers (in Environments/JavaTOH) -- Ability to unregister an event during its callback execution -- Support for setting a "stop-point" before any phase in Soar's execution cycle. Upon interrupt, or when stepping, agents will stop at this location. By default Soar will stop after the decision phase so users can examine the match set. -- "run 0" (zero) will move agents to the stop-point location, unless already there. (mechanism for synching agents easily) -- Applications can interleave the execution of multiple agents by any increment supported in SoarKernel: elaboration, phase, decision or output-generation. -- Phase-specific event generation (e.g. BEFORE_PROPOSE_PHAE & AFTER_PROPOSE_PHASE etc) -- Input wmes are now automatically committed by default removing the need to manually call commit(). * Performance improvements: -- Windows performance improved (> 30% faster in Towers of Hanoi SML). -- Vastly improved Linux performance (~20x in some cases). -- Java versions of Eaters and TankSoar are many times faster than their Tcl equivalents.

* Updates and code fixes -- New algorithm in SoarKernel supports more efficient garbage collection, won't blow callstack when lots of work done in subgoal, and supports undefining DO_TOP_LEVEL_REF_CTS which inherently leaks memory at the top state -- Fixed logic for checking quiescence in Propose phase. For some applications using I/O, could result in fewer SNCs in substates -- Reorganized directory structure to be more intuitive. -- Static libraries required for building SML applications are now distributed in SoarLibrary/lib. -- Many memory leaks fixed in SoarKernel, gSKI and SML. -- RunEvents generated directly in SoarKernel rather than by gSKI. -- SML RunScheduler rewritten. Order of RunEvents guaranteed for all agents. -- init-soar support works much better for all clients. -- Updated Java apps to SWT 3.1.2. -- Java 5.0 supported. -- Visual Studio 2005 supported. -- Java Debugger now uses GTK interface by default in Linux (fixes many motif-specific bugs). -- Lots of SML changes to improve correctness and functionality. -- Registering for callbacks in Java now uses interfaces. -- Several Soar7-mode commands added back in. -- Soar kernel now uses a new random number generator. -- Improved portability and removed legacy files from SoarKernel. -- Lots of documentation updates. -- Many, many other changes (see bugzilla for details). -- more details posted at http://winter.eecs.umich.edu/soarwiki/Items_for_Consortium_Review

Known issues: =============

* TankSoar and Eaters have some redraw issues (forcing a redraw, e.g. by moving the window, fixes this). * Remote connections on Linux can be slow. * status complete appears on the output-link immediately instead of during the next input phase. * The Soar 7 mode implementation currently relies on an ugly hack. If you experience problems in this mode, please let us know. * In TankSoar, the obscure-bot sometimes generates a scary-looking kernel error message. It appears to be safe to ignore. * Many other minor issues (see bugzilla for details).

If any other issues or bugs are found, please send mail to:

soar-sml-list@lists.sourceforge.net (preferred) -or- soar-group@lists.sourceforge.net


8.6.1

Announcing Soar 8.6.1!
 ======================

This announcement describes the primary changes in this latest release. It also includes the 8.6.0 announcement for reference (read that first if you didn't download 8.6.0).

Soar 8.6.1 can be downloaded from the Soar homepage at:

http://sitemaker.umich.edu/soar

Requirements ============

* Java 1.4.2 or later required to use the Java debugger (java should be available in the path). Get it at http://java.sun.com/. Most machines probably already have this installed.

* Tcl 8.4.x or later required to run Eaters on linux and OS X 10.3 (wish should be available in the path). Get it at http://www.tcl.tk/. OS X 10.4 comes with this pre-installed, and the Windows installer includes it.

New in this release ===================

* Capabilities added: -- Linux and Mac support -- Soar 7 mode now works. Some Soar7 demos are included as well. -- Tcl Eaters is included. Tcl Eaters uses the familiar Eaters Control Panel, but the default Agent window is the new SoarJavaDebugger. The TSI is only partially converted to the new SML interface to Soar, and the SoarJavaDebugger is more capable and better integrated. -- Java Missionaries and Cannibals is included. -- Added ability to filter trace output in debugger after a trace has been created -- Added ability to stop scrolling trace window in debugger -- Added partial command matching for command line. -- Introduced new event-driven simulation support, removing the need for "start-system" command (see "SML Quick Start Guide" for details). -- Clients can now determine when other clients are connected and ready -- sml.jar now included in soar-library for Java developers. -- TestSMLEvents application added: provides a rudimentary command line interface so the users can test the events and view examples of each.

* Performance further improved: -- Improved and extended kernel XML generation resulting in performance boost for those applications which use it (i.e. the Java debugger) -- Better use of threads in Java debugger resulting in massive performance boost -- Replaced tree trace window in debugger with faster version -- New threading model in SML for better performace with multiple applications

* Updates and fixes -- Running by phases and elaborations now works properly: Propose and Apply run to full quiescence when running by Phase; when running by Elaboration, Soar will always run one round of production firings, which might require that Input, Decide or Output phases be executed as well. -- Manual updated -- Tutorials for new debugger updated -- Added lots of aliases that existed in older versions of Soar -- Rewrote command line parsing code to avoid potential licensing issues -- Numerous other smaller bug fixes.

Clarification regarding the "tcl" RHS function: ===============================================While we are no longer providing a built-in "tcl" RHS function, there is nothing to prevent someone from registering the old "tcl" RHS function which does the same thing. Those needing to support legacy code should do this. Those applications will then require that Tcl is always part of the build. For new applications, "exec" provides the same functionality in a language-independent way.

Known issues: =============

* VisualSoar seems to have intermittent issues on some OS X machines. This appears to be a bug in Java on that platform. * Log command only works properly from Java debugger if in text mode (as opposed to tree mode). * Tanksoar is not yet available. * Soar seems to "stutter" under Mac OS 10.4 (but it does work properly). * Sometimes the trace output can fall behind actual execution, making the debugger appear unresponsive (it's really just trying to catch up). * Some rare warning messages may not appear fully in the Java debugger's tree view (but they appear fine in the text view). If you find specific cases of this, please let us know. * Pausing trace window in debugger causes the text to flicker on Windows and Linux and doesn't work well on OS X (these are os and SWT issues; we can't fix them). * VisualSoar can only connect to kernel using default values for port/ip. * When running Eaters on Linux with a debugger connected, the debugger seems to "steal" the focus while Soar is running. * For Soar7 mode, the commands attribute-preferences-mode and input-period are not yet implemented. * Also in Soar 7 mode, a potential crash from tentative-retractions of justifications, that has existed since 8.5.2 and possibly earlier, is avoided with an ugly hack; please contact us if you suspect you are running into problems related to this issue.

If any other issues or bugs are found, please send mail to:

soar-group@lists.sourceforge.net


8.6.0

Announcing Soar 8.6.0!
 ======================

This announcement describes the primary changes in this latest release. Among them are:

* Limitations in this release * SML: A new XML-based API for interfacing with Soar * A new Soar debugger written in Java * Command line changes

Soar 8.6.0 can be downloaded from the Soar homepage at:

http://sitemaker.umich.edu/soar

Limitations in this release ===========================

* 8.6.0 is a Windows-only release. * The manual needs more work (but it is included). * Soar7 mode (i.e. soar8 --off) does not work yet. * The tutorial needs to be updated so it is not included. * Eaters and TankSoar are not included. * The Java components have only been tested on Java 1.4.2. There may be problems if used with Java 1.5. * The "Soar Runtime" menu in VisualSoar is not functional.

We anticipate an 8.6.1 release before the Soar workshop which should include Linux and Mac releases, support for Soar7 mode, and will possibly address some of these other issues as well.

If any other issues or bugs are found, please send mail to:

soar-sml-list@lists.sourceforge.net

SML: A new XML-based API for interfacing with Soar ==================================================

Interfacing to Soar has always been something of a challenge. Initially we were limited to building interfaces in the Soar implementation language (LISP then C/C++). We extended this to allow the use of Tcl but the extension ended up requiring Tcl for all Soar systems. SGIO opened up support for having a simulation running either with Soar embedded or as a separate process but it was limited to sending just I/O information which prevented debugging of embedded processes. gSKI provided a clean interface into the kernel but support for other languages, debugging or remote I/O has yet to be implemented.

With this 8.6 release we are providing an alternative approach for interfacing into Soar called SML (Soar Markup Language). This interface:

* supports multiple languages (Java, C++ and Tcl currently) while removing any requirement on Tcl

* supports a uniform method for building I/O interfaces (for simulations) as well as command interfaces (for debugging)

* supports embedding Soar kernels within a simulation or debugger and communicating remotely between the two

* supports multiple clients (debuggers, simulations, other tools) connecting to a single kernel instance

* supports dynamic connection and disconnection of tools (esp debuggers) from a running kernel

* provides a uniform, high level and data-driven model for the interface while retaining high performance

* moves command line support out of the kernel, while providing universal access to it from any client

* includes a new, cleaned up command line syntax

* in many cases the interface is faster (sometimes an order of magnitude faster) than our 8.5.2 interfaces

* includes gSKI in the main Soar Consortium kernel for the first time

* follows the SGIO interface model in many ways, making converting existing simulations easier

Through these changes, the kernel itself has been largely unchanged so sets of productions from 8.5.2 should run identically in 8.6 although some command line arguments (e.g. "learning -off") have changed slightly so they will require updating. Details on that below.

The Soar Java debugger ======================A preliminary new debugger in Java is provided which interfaces with Soar via SML. This new debugger:

* has much higher performance than the TSI for detailed traces * already offers a structured view of high watch traces * can be dynamically attached to and detached from remote Soar instances * is designed to be highly customizable by each user * employs a plug-in architecture to allow for modular extensions in the future

At this point the debugger should be considered a beta version.

Command Line Changes ====================One of the major changes in Soar 8.6 is syntax changes for the commands. The syntax was changed to increase consistency across commands and greatly increase ease of parsing of commands (making adding new commands much easier). Unfortunately, this means that some common commands used in Soar source files need to be changed before those files will load in Soar 8.6.

Options now require two dashes before the unabbreviated name (e.g. run --decision 3) and a single dash before the abbreviated name (e.g. run -d 3).

For complete documentation on the current syntax of the commands, use the "help" command, read the manual, or read the documentation online at: http://winter.eecs.umich.edu/soarwiki/Soar_Command_Line_Interface.

For your convenience, here are some of the most common changes that are required to allow existing source files to load:

* learn -on => learn --on * set warnings off => warnings --off

RHS function changes:

* "tcl" is no longer supported. It has been replaced by "exec" (for user-provided functions) and "cmd" to execute standard command-line commands. User-provided functions must be registered with the Soar kernel via a call to Kernel::AddRhsFunction.

* Built-in RHS functions like "write" and the math functionality are unchanged.

* See sections 3.3.6.6 to 3.3.6.12 (especially 3.3.6.11) for more information on RHS functions.

These common commands have NOT changed:

* multi-attributes * pushd * popd * sp

To learn more about SML, the debugger or how to build a simulation using the new interface please see the documentation included with the release.


8.5.2

We are pleased to announce that Soar Suite 8.5.2 is ready for the Windows and 
 Linux platforms! Download it here:
 

--> http://sitemaker.umich.edu/soar/soar_software_downloads

We expect this to be the last 8.5.x release. Soar Suite 8.6.0, expected fall 2004, will be the next release and will include gSKI/TgD.

*** Components included in this release: Soar Kernel 8.5.2, VisualSoar 4.5.3, Eaters 3.0.8, TankSoar 3.0.8, DMGen 1.0.0, SoarDoc 0.9.3, SGIO 1.1.2, Documentation (including Soar manual and tutorial).

*** Almost every component has been updated for this release, some significantly. Please check out the release notes (available with the installer and on the web page).

*** All necessary Tcl/Tk files are included with the Windows version. Linux users will have to install Tcl/Tk, see installation notes for details.

*** Mac OSX is currently not available but will be soon.

*** Visit the Soar home page for news, documentation, and updates: --> http://sitemaker.umich.edu/soar/

*** Report all Soar suite bugs using the Soar Bugzilla bug tracking system. Please do not use the trackers on SourceForge.net. --> http://winter.eecs.umich.edu/soar-bugzilla/

*** Thank you to all who helped make this release possible!

Summary of changes between SoarSuite 8.5.1 and SoarSuite 8.5.2 July, 2004

A summary of changes in SoarSuite 8.5.2 is listed immediately below. For more details, including changes not mentioned in the summary and a list of known issues see the Details section after the summary.

======================

New Windows Installer: ======================

The Windows installer is now built with a different technology which is much easier for us and results in a much smaller package.

=========================

Several kernel bug fixes: =========================

Almost all known bugs fixed, including all known crash bugs. See the details section below for more information.

==================

New TankSoar Bots: ==================

TankSoar now comes with two new bots. Mapping-bot demonstrates how a tank might build up an internal map of the level. Obscure-bot is a challenge bot for people to test their own bots against. The code is provided in an obfuscated binary. See obscure-bot.txt in the TankSoar agents directory for details.

==========================

SoarDoc and DMGen updated: ==========================

These changes were actually in the the 8.5.1 release, but we failed to note them. SoarDoc: - Fixed special character handling when UseExistingComments is used. - Added ShowProdSourceInline which shows production source code inline in the production documentation - Ability disable datamap node coloring - Fixed case-sensitivity issues for production names and list sorting. DMGen: - Fixed handling of mixed-case production names.

======================

Documentation Updated: ======================

The tutorials have had some typo fixes and screenshot updates, and also explain substates better.

==================

Tcl Soar Debugger: ==================

The TSDebugger has several bug fixes which may have affected some users.

===================

VisualSoar Updated: ===================

VisualSoar has several small bug fixes.

======================

Critical SGIO bug fix: ======================

Our fix for bug 254 in the last release actually caused serious problems. This has been fixed for real now.

====================================================================

Details ====================================================================

Below is a fairly complete list of enhancements, changes, bug fixes, and known issues, with bug numbers for reference. For more information and up to date list of what's been fixed please visit the Soar bugzilla server at:

https://winter.eecs.umich.edu/soar-bugzilla/.

New bug submissions and enhancement requests are welcome!

Soar-8.5.2 ==========

Bug Fixes ---------353 stats command keeps recording between runs 389 missing error handling for set_watch_prod_group_setting

Enhancements ------------358 change soar8 command error message

Known Issues ------------312 agent structure isn't cleaned up properly 356 All matches get same support as last processed match

TSDebugger 4.0.1 ================

Bug Fixes ---------365 rules that contain a capital letter break productions tab 376 stop button doesn't work with Eaters, TankSoar 396 error when closing group from task bar 398 extra 0 gets printed when soar connected to environments

Known Issues ------------336 negated conditions don't print properly in the console window 397 grouping bar in production tab not always right

SGIO 1.1.2 ==========

Bug Fixes ---------254 Some special characters in StringWME's do not transfer to Soar

Eaters 3.0.8 ============

Bug Fixes ---------391 garbage printed to debugger output when Stop After Decision Phase is on

TankSoar 3.0.8 ==============

Bug Fixes ---------map loading menu now defaults to maps directory 188 Selecting Map->Random Map causes error message when agent present on current map 392 garbage printed to debugger output when Stop After Decision Phase is on 393 command 'run 1' generates 'invalid command step' error

Enhancements ------------new challenge bot (obscure-bot) and mapping bot provided

Known Issues ------------ 399 can't use reset tank command in tank control panel tanks menu

Documentation =============

Bug Fixes ---------349 tutorial images need to be updated 375 typo in tutorial part 1: move-north 386 typos in tutorial part 1 (search control)

Enhancements ------------Added information to tutorial about substates.

Known Issues ------------380 typo in section 5.6.3 381 o-support-mode command missing newest support modes

VisualSoar 4.5.3 ================

Bug Fixes ---------361 adding a dir that doesn't exist to agent path on file->new project fails with no warning 362 initial rules in a project are not justified correctly 363 if project loaded then create new project, title bar does not change 364 file with same name as datamap have same window names 366 Initialize-<task> Operator not in datamap 368 dragging node onto itself makes node disappear 372 fails to detect extra whitespace after :

Known Issues ------------Too many to list. See bugzilla for details.


8.5.1

Summary of changes between SoarSuite 8.5.0 and SoarSuite 8.5.1
                             June, 2004
 

A summary of changes in SoarSuite 8.5.1 is listed immediately below. For more details, including changes not mentioned in the summary and a list of known issues see the Details section after the summary.

==================

Several bug fixes: ==================

Almost all known bugs fixed, including all known crash bugs. See the details section below for more information.

======================

Documentation Updated: ======================

The manual has been updated to include appendices on the BNF grammar for Soar's syntax, the calculation of O Support, the resolution of preferences and the Goal Dependency Set, as well as many other small changes. The manual is also now searchable, and the table of contents has links to the associated sections. Finally, the tutorial has been reorganized.

==================================

New Tcl Soar Debugger (TSI 4.0.0): ==================================

The Tcl debugger, TSI, has undergone a major revision, improving its intuitiveness and presentation of information dramatically. For more details, see the TSI 4 Tour documentation.

=======================

Updated Version of Tcl: =======================

The system has been tested with the latest version of Tcl, 8.4.6, and the Windows distribution ships with this version included.

========================

Learning Off by Default: ========================

In previous versions of Soar, learning was turned on by default. This could be a source of confusion and frustration since most users do not intend to have learning on. Thus, starting with Soar 8.5.1, learning is turned off.

====================================

O Support Mode 4 is now the Default: ====================================

O Support Mode 4 was introduced in Soar 8.5.0, and starting with Soar 8.5.1 it is now the default mode. Those requiring other modes (i.e. for compatibility) can switch to them using the o-support-mode command. O Support Mode 3 (the default mode in Soar 8.3 - 8.5.0) is meant to give I-Support to elaborations of the operator. At certain times, these elaborations were not detected as such, and received O-Support. Soar 8.5's O Support Mode 4 can overcome these problems by detecting more operator elaborations. However, it also makes the following change from O-Support Mode 3: mixed productions (i.e. operator applications + operator elaborations) now receive i-support instead of o-support. Running with 'warnings -on' will print messages when any such productions fire. You should try to be careful not to build any such mixed productions when using o-support mode 4 While O Support Mode 3 remains the default for this release, this is for backwards compatibility only. It is recommended that O Support Mode 4 is used from now on; in a future release, O Support Mode 4 will be the default.

======================

New Interrupt Command: ======================

Soar 8.5.1 now allows matchtime interrupts to be turned on and off at runtime. Matchtime interrupts were introduced in Soar 8.5.0 (see immediately below for details). The syntax for the interrupt command is: interrupt [-on|-off] [production name]

If the -on or -off switch is used without a production name, then the list of all productions with interrupts turned on or off is given. If the production name is used without the -on or -off switch, then the interrupt status of the production is given.

Soar 8.5.0 introducted support for interrupting execution at production match-time in addition to interrupts when a production matches. This new capability makes it possible to examine Soar's state before the production fires, and even makes it possible to excise the production that matches before its effects are realized. To use the matchtime interrupt feature, productions must add the ':interrupt' directive as in the following example production:

sp { interrupt*on*application :interrupt (state <s> ^operator.name stop) --> (write (crlf) |I've already Halted|)}

Note that supporting this feature adds a small amount of computational overhead to the match phase. If you desire a maximally streamlined version of Soar, recompile /without/ the MATCHTIME_INTERRUPT flag in soarBuildOptions.h

===================

VisualSoar Updated: ===================

VisualSoar has undergone several usability improvements for this development iteration. Key among these are: - highlighting code for the user that has been identified as the cause of a syntax error, datamap error or text search. - improvements to window focus, size and positioning. In the past, VisualSoar has been a little too "bullheaded" about enforcing the default display type of tile mode. Users who maximize windows or cascade them will find VS easier to manage. - some additional search capabilities. In particular, it's easy to find code corresponding to entries in the datamap and also easy to find the datamap that goes with particular code. You can also limit your text searches to specific operator subtrees. - Finally, VisualSoar has been made compatible with MacOS.

====================================================================

Details ====================================================================

Below is a fairly complete list of enhancements, changes, bug fixes, and known issues, with bug numbers for reference. For more information and up to date list of what's been fixed please visit the Soar bugzilla server at:

https://winter.eecs.umich.edu/soar-bugzilla/.

New bug submissions and enhancement requests are welcome!

Soar-8.5.1 ==========

Enhancements ------------186 New interrupt command

Changes -------338 turn off learning by default 339 default o-support-mode changed from 3 to 4 351 some demos need to be updated

Bug Fixes ---------139 Soar crashes when it spends some time in a state no-change substate 204 Soar crashes when multiple agents are running and one of them halts or reaches an interrupt 213 GDS crashes when backtracing through result WMEs 214 fixed behavior of "monitor -delete" command 274 operator treated as keyword even when not attached to a state 154 Print message explaining that can't save RETE when justifications are present. 311 extra newline in Soar output 278 o-support mode 3 & 4 do not correctly identify mixed elaboration-application productions 194 warnings when running demos in O Support Mode 4 357 o-support determination fails to recognize operator elaboration 355 New GDS bug

Known Issues ------------312 agent structure isn't cleaned up properly 353 stats command keeps recording between runs 356 All matches get same support as last processed match

TSI 4.0.0 =========

Enhancements ------------Too many to list -- really rewritten to a large extent.

Bug Fixes ---------215 Learn settings printed in log when stepping 206, 211, 212 The output of some commands wasn't redirectable, causing problems in the TSI 192 wish.exe process doesn't go away sometimes

Known Issues ------------327 bottom of phase graphic is cut off in non-minimal views 336 negated conditions don't print properly in the console window

SGIO 1.1.1 ==========

Bug Fixes ---------254 Spaces and $'s in StringWME's do not transfer to Soar

Eaters 3.0.7 ============

Bug Fixes ---------197 Eaters sets TSI version number

TankSoar 3.0.7 ==============

Enhancements ------------352 updates to default agent

Bug Fixes ---------196 TankSoar sets TSI version number

Known Issues ------------ 188 Selecting Map->Random Map causes error message when agent present on current map 151 Can't use run <n> command in TankSoar

Documentation =============

Enhancements ------------343 Make manual searchable 344 Make table of contents into links 350 reorganize tutorials 341 Preference resolution appendix needs updating 345 section 1.3: "contacting the Soar group" is outdated 348 need GDS description 340 BNF grammar appendix needs to be updated 342 o-support appendix needs to be updated

Known Issues ------------349 tutorial images need to be updated

VisualSoar 4.5.2 ================

Enhancements ------------3 Expand datamap as it is being generated. 37 Document all shortcut and key bindings. 48 Search / replace should highlight the line found 53 VS doesn't display new windows in size/position that is intuitive 91 Parse error should highlight offending line. 92 Remove parse error pop up dialog and place all errors in feedback pane 93 Allow separate syntax and datamap checks.

100 Change template default from "01" to Op1" to reduce confusion 159 The save operation should always save the entire project 171 agent name in title bar 222 Better tab-formatting for multiple values on separate lines 225 Allow searching within a specific operator subtree 255 IO Error message fails to specify filename that caused the error 263 Syntax error should not popup dialog when checking productions 265 Find productions that use a particular datamap WME 333 Should be able to generate datamap for just one file

Bug Fixes ---------90 Undo should move the cursor (and display) to what is being undone 106 Better tab-formatting after a comment and after a condition 122 If you close an editor window another window does not become active 128 The neon green color used in data map verification is very annoying 131 Opening a new project should close old 133 Close project menu options don't invoke same dialog as close button 153 VisualSoar broken on Mac OS X 177 Fix spelling and capitalization errors in VS menu 199 The KnownIssues.txt file should be removed from the CVS archive 200 VS contains deprecated function calls 205 Runtime menu should be deactivated when the library is absent 220 New file windows should receive focus 228 Syntax coloring is incorrect for ".{" 250 Syntax coloring is incorrect for { ... } { ... } 262 Operator with a non-enumeration named "name" causes crash

Known Issues ------------Too many to list. See bugzilla for details.


8.5.0

Soar 8.5.0 is now available for Windows platforms and Linux! Mac OSX support is forthcoming. Download the installer (Win32) or tarball (Linux) and get installation instructions here: http://sitemaker.umich.edu/soar/soar_software_downloads

Release notes for Soar Suite 8.5

  • For the Win32 platform, all Soar components are hosted on SourceForge.Net in one installer. A Linux tarball is also available at the same URL. http://sourceforge.net/projects/soar/
  • The Soar web site has been redesigned and moved to a new location. Links to the old site should redirect to the new site. http://sitemaker.umich.edu/soar/
  • VisualSoar has been updated for this release with many bug fixes and is available for the Win32 platform (VisualSoar support for Linux and Mac OSX is forthcoming).
  • The Soar manual has been updated and is included in the installer.
  • Per a renewed commitment to bug fixing in Soar, the Soar project now uses Bugzilla for bug tracking and feature requests. All bug tracking and feature requests should be posted using the new Soar Bugzilla and not with SourceForge.Net's trackers. http://winter.eecs.umich.edu/soar-bugzilla
  • New SoarDoc and DataMap Generator tools from Soar Technology are included with this Soar 8.5.0 release http://www.eecs.umich.edu/~soar/sitemaker/projects/soardoc/soardoc.html
  • Major changes for Soar 8.5.0:
    • All known crashes fixed.
    • Numeric indifference preferences added.
    • 8.3.5 and 8.4.5 have been merged, only one version of Soar is needed now.
    • All Soar components have been combined into one installer.
    • Updated for latest version of Tcl/Tk (8.4.4).
    • Various bug fixes, see CHANGES for details
  • This release was made possible by: Mazin Assanie, Karen Coulter, John Laird, Bob Mariner, Shelley Nason, Andrew Nuxoll, David Ray, Jonathan Voigt, Robert Wray and Soar Technology.

Summary of changes between Soar 8.4.5 and Soar 8.5. Scott Wallace August, 2003

The change from Soar8.4.5 to Soar8.5 introduces some new features, and bug fixes. Below is a brief summary of the salient changes (all modifications have been verified with the soar-8.5-test-suite which is released independently from this source code).

Operator No Changes

In Soar 8.4.5, Operator No Changes were identified agressively by the architecture. This meant that they could be created before the end of the decision cycle. In some situations, this led to odd behavior, notably within some of the tutorial lessions. As a result, this behavior has now become a compile-time option and is no longer included in the deafult-builds. If you desire Soar with aggressive no changes, simply add the AGRESSIVE_ONC flag to soarBuildOptions.h and recompile.

MatchTime Interrupt

Soar 8.5 now supports interrupting execution at production match-time in addition to interrupts when a production matches. This new capability makes it possible to examine Soar's state before the production fires, and even makes it possible to excise the production that matches before its effects are realized. To use the matchtime interrupt feature, productions must add the :interrupt directive as in the following example production:

sp { interrupt*on*application 
 :interrupt 
     (state <s> ^operator.name stop) 
 -->
     (write (crlf) |I've already Halted|)
 }
 

Note that supporting this feature adds a small amount of computational overhead to the match phase. If you desire a maximally streamlined version of Soar, recompile /without/ the MATCHTIME_INTERRUPT flag in soarBuildOptions.h

Reject Preferences

Earlier versions of Soar processed all reject preferences after acceptable preferences. One of the unintuitive side effects of this is that when a user wants to change the value of a wme, they typically need to test that its current value is not equal to the new value. As a first attempt to alleviate this artifact, by default Soar 8.5 changes the order in which preferences are evaluated by examining O-Supported Reject preferences first thus (cheese-type cheddar - chedder +) will result in the wme (... cheese-type cheddar) remaining in working-memory. Note that this may have some unanticipated consequences, and can be turned off be undefining the O_REJECTS_FIRST flag in soarBuildOptions.h and recompiling.

Cmdline Interface Parser

Now appropriately parses strings containing the '#' character.

Run Till Output

In Soar 8.3 - 8.4.5, if an output command was issued in the first decision-cycle, it would not be appropriately detected. As a result, if Soar was instructed to run until output, and output occured on the 1st decision cycle, Soar would continue running for 15 decision cycles before returning control to the user. This bug was most often noticed using simple agents in TankSoar, and is now fixed in Soar 8.5.

O Support Mode 4

O Support Mode 3 (the default mode in Soar 8.3 - 8.5.0) is meant to give I-Support to elaborations of the operator. At certain times, these elaborations were not detected as such, and received O-Support. Soar 8.5's O Support Mode 4 can overcome these problems by detecting more operator elaborations. However, it also makes the following change from O-Support Mode 3:

mixed productions (i.e. operator applications + operator elaborations) now receive i-support instead of o-support. Running with 'warnings -on' will print messages when any such productions fire. You should try to be careful not to build any such mixed productions when using o-support mode 4

While O Support Mode 3 remains the default for this release, this is for backwards compatibility only. It is recommended that O Support Mode 4 is used from now on; in a future release, O Support Mode 4 will be the default.

Numeric Indifference Preferences

Soar 8.5 has better capabilities to support behavioral diversity than previous versions of Soar. The difference stems from Soar 8.5 numeric indifferent preferences that allow operators to be assigned weights along with the '=' preference. In the event of a tie, the indifference selection mechanism is invoked. In previous versions of Soar, the probability of selecting any of the tied operators was distributed evenly among the candidates (assuming the indifferent-selection mode was 'random'). Soar 8.5's numeric indifferent preferences allow the programmer to skew this distribution such that certain operators are chosen more or less frequently. Preferences are specified simply by adding an integer or float value following an operator's '=' preference. As in the example below:

sp { example 
     (state <s> superstate nil -initialized true) 
 --> 
     (<s> ^operator <o> + = 30) 
     (&lt;o&gt; ^name initialize-a)
 }
 

Two algorithms are available via a run-time switch:

numeric-indifferent-mode -avg
 

Here, we calculate the 'average' preference value associated with a particular operator. Thus, if preference A for operator X has value 30 while preference B for operator X has value 60, the average will be 45. Once this value has been calculated for all competeing operators, we sum their average preferences and select a random number between 0 and this sum. Each operator is associated with a range on this scal equal to its average numeric preference. Thus, the randomly selected number can simply be mapped back to an operator that then becomes for 'selected' operator for the current decison. In average mode, indifferent preferences without a numeric value are given the default value of 50 for selection purposes. For programmers, we expect that this mode of numeric-indifferent selection will be most intuitive. Note however, that this scheme doesn't make a lot of sense for preferences are less than zero. If an operator's average value is ever below zero, Soar will print a warning indicating this situation. As an initial recommendation, we suggest using values between 0.0 and 100.0 for your operators.

numeric-indifferent-mode -sum
 

Here, the preferences for each operator are first summed. Thus, if preference A for operator X has value 30 while preference B for operator X has value 70.5 the sum will be 100.5. This sum is calculated for all competing operators. Next, we calculate: e ^ (preference_sum / agent_temperature) where agent_temperature is a compile time constant currently set at 25.0 We'll call this value the operator's final numeric preference. Finally, we sum all the competing operator's final numeric preferences and select a random number between 0 and this sum. Each operator is associated with a range on this scale equal to the size of its final numeric preference. Thus, the randomly selected number can simply be mapped back to an operator that then becomes the 'selected' operator for the current decision. In the sum mode, indifferent preferences without a numeric value are given the default value 0.0 for the selection purposes. Note it does make sense to use this methodology even if the numeric preferences are negative, however, because the numeric preference are used in exponientation, their values should be somewhat limited so floating-point overflow does not become a problem. We expect this sum mode to be more useful for future reinforcement-learning methods, and have included it here mainly for experimental purposes.

Timer Warnings

Timer warnings are not displayed unless the following are true:

  • Soar was compiled with the WARN_IF_TIMERS_REPORT_ZERO flag
  • at runtime, the 'warnings' sysparam is set to TRUE (as with the 'warnings -on' command

Other changes for Soar 8.5 made after the above document was written:

  • Removal of many depricated Tcl/Tk functions, upgrading them to Tcl/Tk 8.4.4.
  • Various stability enhancements, including:
    • Kernel now uses snprintf() instead of sprintf() whenever possible.
    • Kernel now uses strncpy() instead of strcpy() whenever possible.
    • Kernel now uses strncat() instead of strcat() whenever possible.
  • 'verbose' command bug fix, it was not working as documented when multiple agents were active.
  • 'init-soar' kernel crash fixed in both Eaters and TankSoar.
  • MSVC and GCC warning levels moved to maximum, all warnings silenced.
  • Logging bug fixed, did not work properly with multiple active agents.
  • 'indifferent-selection -ask' command fixed.
  • Decision cycle bug fix.
  • All demos are in VisualSoar format now.
  • Fixed a kernel crash related to justifications.


Sign in to add a comment
Powered by Google Project Hosting