Wednesday, April 06, 2005

Goals versus Tasks

One of the key distinguishing characteristics between a traditional computer program and a software agent is that a program is focused on performing tasks whereas an agent works towards goals. That's a very important distinction, but it's also very difficult to deeply comprehend, let alone put into practice.

A task usually has the form "do X" or "do X using Y". A task is very prescriptive. A task-oriented computer program is essentually pre-programmed with all of the instructions needed to perform that task. A program is essentially a solution contrived by a developer who has analyzed a problem.

A goal usally has the form "satisfy X [and Y and Z...]". A goal is more descriptive than prescriptive. A goal is more about what to accomplish rather than how to go about it. A goal-oriented software agent is free to make unpredictable choices and follow novel paths, provided only that those paths finally accomplish the stated goal(s). A goal-oriented approach is advisable when the resources and paths are not known ahead of time with any degree of uncertainty. An agent is essentially the embodiment of a refinement of a problem statement, with solutions to be sought and evaluated on a dynamic basis.

A program is focused on pursuing a pre-programmed solution, whereas an agent focuses on dynamically refining the problem statement and seeking a solution that matches the refined problem statement and the current problem environment.

There is in fact a vast gray area between these two concepts, and as yet we have very few tools, techniques, or guidelines for analyzing problems and solutions to determine which is which and which has more merit in a given situation.

Just as a parting example, an anti-locking brake system for a motor vehicle is closer to being goal oriented than task oriented. There is no fixed sequence of instructions to execute and feedback and adaptation are critical requirements. A simple cruise-control system also is goal-oriented rather than being strictly task oriented, with no fixed sequence that will achieve the result of a relatively stable speeed. On the other hand, monitoring a news feed for a set of fixed keywords is more task-oriented since there is essentially no feedback or adaptation required.

This is only the starting point of this discussion.

-- Jack Krupansky


At 5:38 PM MDT , Blogger straun said...

I agree. I prefer to think of Goals as 'end points' or 'destinations', and consider tasks as the path to those end points.

In the area of scheduling the project Gos4j has begun exploring the possible ways to adapt to available cpu time.

At 6:10 PM MDT , Blogger Jack Krupansky said...

And in a truly dynamic environment, goals are merely "way points" on the path to your "final destination", which may not have been anticipated as your adventure began.

-- Jack Krupansky

At 6:37 PM MDT , Anonymous Anonymous said...

One good resource for fax software and many more free software alternatives is
Yes it is my site and I would love for you to drop by for a second. From there you will have free access to several of my products such as The Marketing Toolbar (which is goldmine of information on how to do things quickly and on the cheap, thus saving you time and money).
Also for webmasters I have created Webmaster Wizards, which will help you with almost every aspect of putting code on your site from things such as legal and privacy disclaimers to popunders. I have so much content and free software there I could fill up this whole blog, so check it out Thanks, Sincerely Rob Rudd

At 9:45 PM MST , Anonymous Anonymous said...

This quick and easy system will automatically build you a customer email list by capturing your customer detailssoftware developmentsoftware development

At 3:24 AM MST , Anonymous Anonymous said...

Create any type of website with the ease of use of a simple word processor!discount softwarediscount software

At 9:29 PM MST , Anonymous ecommercewebmaster12 said...

As a top-rated company in the world of ecommerce, Infyecommercesolution has carved out a niche for itself and with the ecommerce solution provided by the company receiving accolades from clients all over the world, it has, in the true sense of the word, grown up to be a top-notch outsourcing software development company. For details on all the services provided by the company, visit

At 10:27 AM MDT , Blogger said...

Eberrymedia,one of the popular software development company in India,you can approach for various other ecommerce solutions necessary for your growth in ecommerce and to avail of services from the company,come in touch with and submit your requirements.

At 7:25 AM MST , Blogger Plone Glenn said...

Interest point about goals and tasks. Is it not only a matter of degree between the two?

For example, an open source software agent project called KATO has just recently started. The idea is for a repository with lots of low-level, task-based agents and a configurable way to plug different agents together to satisfy high-level goals.


Post a Comment

Subscribe to Post Comments [Atom]

Links to this post:

Create a Link

<< Home