New Goal System (NGS-4) TankSoar example Timothy W. Saucer, Ph.D.

Slides:



Advertisements
Similar presentations
Why python? Automate processes Batch programming Faster Open source Easy recognition of errors Good for data management What is python? Scripting programming.
Advertisements

Computer Science: A Structured Programming Approach Using C1 Objectives ❏ To understand the structure of a C-language program. ❏ To write your first C.
Fork and Exec Unix Model Tutorial 3. Process Management Model The Unix process management model is split into two distinct operations : 1. The creation.
® IBM Software Group © 2006 IBM Corporation The Eclipse Data Perspective and Database Explorer This section describes how to use the Eclipse Data Perspective,
Renesas Technology America Inc. 1 M16C/Tiny SKP Tutorial 2 Creating A New Project Using HEW4.
LATTICE TECHNOLOGY, INC. For Version 10.0 and later XVL Web Master Advanced Tutorial For Version 10.0 and later.
Testing. Definition From the dictionary- the means by which the presence, quality, or genuineness of anything is determined; a means of trial. For software.
1 Computing Software. Programming Style Programs that are not documented internally, while they may do what is requested, can be difficult to understand.
…using Git/Tortoise Git
Renesas Technology America Inc. 1 SKP8CMINI Tutorial 2 Creating A New Project Using HEW.
INTRODUCTION TO HTML5 Using jQuery with HTML5. Introducing jQuery  Although it is not a part of any W3C or WHATWG specification, jQuery performs an important.
COP 3330 Notes 1/12. Today's topics Downloading Java and Eclipse Hello World Basic control structures Basic I/O Strings.
Extending HTML CPSC 120 Principles of Computer Science April 9, 2012.
AIP Backup & Restore Sunita Barve NCRA, Pune. AIP The latest version of DSpace 1.7.0, supports backup and restore of all its contents as a set of AIP.
IBM Software Group ® Context-Sensitive Help with the DITA Open Toolkit Jeff Antley IBM October 4, 2007.
National Center for Supercomputing Applications University of Illinois at Urbana-Champaign Ergo User Tutorial - Part 3 NCSA, UIUC.
AMB HW LOW LEVEL SIMULATION VS HW OUTPUT G. Volpi, INFN Pisa.
Performing statistical analyses using the Rshell processor Original material by Peter Li, University of Birmingham, UK Adapted by Norman.
A brief introduction to javadoc and doxygen. What’s in a program file? 1. Comments 2. Code.
Renesas Technology America Inc. 1 SKP8CMINI Tutorial 2 Creating A New Project Using HEW.
Chapter 10: Classes and Data Abstraction. Classes Object-oriented design (OOD): a problem solving methodology Objects: components of a solution Class:
COMPREHENSIVE Excel Tutorial 12 Expanding Excel with Visual Basic for Applications.
Creative Create Lists Elizabeth B. Thomsen Member Services Manager
Product Training Program
Jacob Crossman With help from Bob Marinier Anthony Deschamps
Join the Community
Build and Test system for FairRoot
WORKSHOP 1 introduction
How to link a test to a launcher (in this case a shell launcher)
Performing statistical analyses using the Rshell processor
APPENDIX a WRITING SUBROUTINES IN C
Chapter 7 Text Input/Output Objectives
Chapter 7 Text Input/Output Objectives
Introduction to the C Language
C Programming Hardik H. Maheta.
Chapter 7 Text Input/Output Objectives
Lecture 12 Logic Design Review & HCL & Bomb Lab
CSE 374 Programming Concepts & Tools
Seoul National University
C Runtime In Tcl v3 Andreas Kupries ActiveState Software Inc. © 2011
Arrays and files BIS1523 – Lecture 15.
Service Layer Dynamic Authorization [SLDA]
Course Name: QTP Trainer: Laxmi Duration: 25 Hrs Session: Daily 1 Hr.
My Oracle Support (The next generation Metalink experience) lynn
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
What is Bash Shell Scripting?
Displaying Form Validation Info
Introduction to javadoc
Introduction to the C Language
SharePoint Essentials Toolkit
Fork and Exec Unix Model
Instructions to get MAX PLUS running
SoarUnit Bob Marinier 11/29/2018.
SwE 455 Tutorial.
Using JDeveloper.
Soar IDE 2.0 Bob Marinier, Kyle Aron, Preetom Chakraborty 12/8/2018.
Exploring the Power of EPDM Tasks - Working with and Developing Tasks in EPDM By: Marc Young XLM Solutions
Intro to CIT 594
Sensor Controller for Obstacle Detection System
Tonga Institute of Higher Education
Exploring the Power of EPDM Tasks Working with and Developing Tasks in SolidWorks Enterprise PDM (EPDM) By: Marc Young xLM Solutions
Developing a Model-View-Controller Component for Joomla
Automating SAS through the Power of VB Script
Introduction to javadoc
Rational Publishing Engine RQM Multi Level Report Tutorial
Topic 11 Lesson 1 - Analyzing Data in Access
Carthage ios 8 onwards Dependency manager that streamlines the process of integrating the libraries into the project.
The Role of Command Line Compiler (csc.exe)
Review of Previous Lesson
SPL – PS1 Introduction to C++.
Presentation transcript:

New Goal System (NGS-4) TankSoar example Timothy W. Saucer, Ph.D. 11/12/2018 Soar Technology, Inc. Proprietary

Environment Setup Unpack the soar tutorial In the directory containing TankSoar launch file (.command, .bat, or .sh) create a file called settings.soar with the line: cli tcl on Install the Soar IDE for eclipse (optional, but recommended) https://github.com/soartech/soaride Clone NGS-4 into your working folder https://github.com/soartech/new-goal-system-4 Note: This is an updated link. The old new-goal-system repository does not contain NGS-4. First load in soar must process the macros source "new-goal-system-4/load.soar” jSoar - not for TankSoar, but useful debugger Soar Technology, Inc. Proprietary 11/12/2018

What is NGS-4? (New Goal System version 4) One approach to setting up a goal forest in soar Cool features such as function operators and dynamic binning A ton of useful macros Some people think of it as a high level language that runs on soar A great topic for dinner conversations with your in-laws Soar Technology, Inc. Proprietary 11/12/2018

Anatomy of NGS Commands All commands begin with [ngs- RHS and LHS macros defined in rhs-fragments.soar and lhs-fragments.soar Must use “ “ to enclose soar production Note: Regular soar production lines can be used (but should not be necessary) Soar Technology, Inc. Proprietary 11/12/2018

TankSoar Chase example Soar Technology, Inc. Proprietary 11/12/2018

Using Declared Types Declaring types allows for simple collections of data similar to a c++ struct There is no type checking, no guarantee data exists, no inheritance Simple data storage, but very useful for populating output Soar Technology, Inc. Proprietary 11/12/2018

Declaring Goals Original intent of NGS was to define a new goal system (hence the name) Goals may have subgoals and supergoals Goals MUST be defined using NGS_DeclareGoal In this example, the goal is to achieve a turn. This goal will create a rotation command on output-link.rotate containing the direction data. Soar Technology, Inc. Proprietary 11/12/2018

Soar IDE Expansion Soar Technology, Inc. Proprietary 11/12/2018

Building complex logic in NGS-4 NGS-4 is great at complex logic Macros available include ngs-not ngs-and nsg-or ngs-is-tagged ngs-eq ngs-neq ngs-anyof (only works with constants, not variables) ngs-this-is-not-that ngs-is-type ngs-is-not-type ngs-is-named ngs-is-my-type ngs-is-active Check lhs-fragments.tcl for more Soar Technology, Inc. Proprietary 11/12/2018

Creating objects (WMEs) Creating objects and tags are simple in NGS-4 O-Supported simple WME I-Supported simple WME: Tag (i-Supported): O-Supported Typed Object: I-Supported Typed Object: A single production! No propose/apply needed These details are a common source of error and taken care of by NGS Soar Technology, Inc. Proprietary 11/12/2018

Function Operators Simple operators that trigger an operator no change They’re like a little function… operator Useful for manipulating data The work is done in a substate So how does the copied data get back to the main state if it’s generated in a substate? Function operators can have return values! Soar Technology, Inc. Proprietary 11/12/2018

Context Variables Data describing the context of a decision Useful macros exist for binning data, creating time delayed data, etc Improves performance by not sampling changing variables too quickly Note: Pool name must be specified in match line (otherwise auto generated and not intuitive) Dynamic binning currently supported (and often best used in practice) Could use large bins when energy/health are high, small bins when low Soar Technology, Inc. Proprietary 11/12/2018

BYOM (Build Your Own Macros) Use ngs-declare-tsp and ngs-expand-tsp to create / use macros Unique production name will be generated based on macro name and input parameters Soar IDE source viewer expansion will not display raw soar code Soar Technology, Inc. Proprietary 11/12/2018

Excellent way to simplify many sections of code Nuggets and Coal Excellent way to simplify many sections of code Logic, data structures Useful binning mechanisms Can write many rules with few lines of code Powerful macros Open Source Requires learning new way to write soar code Not all expansions are supported by Soar IDE Some features have unique quirks (ie: pool names in context variables) Soar Technology, Inc. Proprietary 11/12/2018

Questions? Soar Technology, Inc. Proprietary 11/12/2018