[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: AI techniques with StarLogo
- Date: Mon, 3 Nov 1997 15:00:55 +0100
- From: "Miklos Gyorgy" <MIKLOS@ttt-atm.ttt.bme.hu>
- Subject: Re: AI techniques with StarLogo
Jon Klein wrote:
> I'm surprised that I haven't seen any postings on this topic already.
>
> It seems that the most successful artificial intelligence techniques
> follow decentralized models. Neural networks, for example, certainly
> do so. Genetic algorithms could also, depending on their implementation.
>
> Has anybody used StarLogo to implement any of these ideas? How did it
> turn out?
Well, sorry, I don't have the answer to this, I haven't made any AI
projects with StarLogo so far...
The only reason why I have decided to answer this mail is that
no one else has replied (I am surprised at that), and I, too, think
that the AI line is interesting. I would enjoy a discussion here on
AI & StarLogo.
So let's try and rephrase the question to be more general, and not only
about the techniques:
---What kind of connection can you make between StarLogo and AI?
I am positive that many members of this list could make contributions.
The MIT folks are sure to have many thoughts about this, as Logo
is historically closely related to the AI research there.
Here I am going to give some thoughts of my own. I hope they
make some sense, but if they aren't too clever, it may just help the
discussion...
To begin with, the first thing that comes to my mind now is the standard
example which is known to anyone who has taken part in an elementary
programming class: sorting algorithms. The point I would like to make
about it here is that people (high-school children) can usually quite
easily sort a medium-sized list of names to alphabetical order. The purpose
of discussing sorting algorithms in a class is not (only) to teach the
usual methods of doing it (bubble, quick, bin, etc. sort), but to help the
students describe something that they themselves can do, and describe it
in such a rigorous manner that it can be the basis of an algorithm. I would
like to put the emphasis here on the process of evolving from doing
something 'easily' without much thinking about it to instructing a stupid
computer to do the same. (And as we saw in a discussion on this list
a couple of months earlier, we can also speak about decentralized ways of
sorting.)
And that's the way how I would connect StarLogo and AI: to find tasks from
everyday life and from other domains, tasks which we -or others- can do
using intelligence -whatever it means- without giving much thought to it,
and to translate them so that we can instruct our computer to do something
similar. When the task involves a lot of interacting entities, which are
more-or-less autonomous, it may be especially suitable for StarLogo.
While doing it, we could gain insight into the structure of the problem
at hand, and some insight into the methods and difficulties of AI,
and also have some fun in the meantime.
In this way, some of the sample projects can already be said to be
connected to AI, such as the termites project, because it accomplishes
a given 'intelligent' task using a well-defined algorithm. But it is
surely difficult to draw the line as to what is AI and what is not, I
don't know if there is any kind of well-defined criterion.
I have thought a little about what kind of tasks there could be that one
can write a StarLogo project for, and are in a way connected to AI.
Here are just some ideas, others may have a lot of different ones.
It's a pity that I have so many obligations now that I won't have time
to engage in these projects in the near future. But there may be others
waiting for some ideas for a project.
* Think that a group of people on an expedition are on an (aritificial)
hilly landscape. Their mission is to find the top of the highest mountain,
but due to the forest, they can only see the area just around them. They
have an altimeter showing their height, but the only way they can
communicate is to put/recognize markers on the surface (they don't have
mobile phones).
* To continue with the previous one, think that now they are in need of
water. Think that the rain is falling, and as it flows down the hills,
it grows to streams and rivers and lakes. How should they move to
find a river/lake in the fastest way?
* Make a 'robot' that can drive a car. Let the user draw the streets and
highways, and then the program's task is to follow the curve of the track
and to observe the highway-code. Let us put a large number of such cars
(and see what kind of traffic jams are formed). It's also the task of the
'robotic' driver to take care and not bump into other cars. What if there
are many lanes, and everyone wants to go as fast as possible?
* What if those cars have an intention as where to go in the
street-labirinth? Or more generally, we can speak about ways of
going through a labirinth. We can think about small creatures trying to
traverse the labirinth. Suppose that the labirinth-solving task is a group
task, and many creatures try to cooperate to solve it in the most efficient
way. We can even think that if a creature arrives at a bifurcation of
pathways, it can give birth to other creatures who can go to different
directions. The key is to find the most efficient rules of communication
and cooperation between them.
* Think that there are a group of objects laying around on the floor, but
the air is filled with poisonous gas and humans cannot enter. Instead,
they put in a number of autonomous robots that can move, and have
sensors which can tell if the robot bumps into an object, or when it bumps
into another robot. Their task is to go to this place, explore it, come
back, and reproduce the positions and shapes of the objects as well and as
efficiently as possible.
I think AI-like projects together with StarLogo and similar tools can (or
could) have a big role at schools and homes. These topics can be
very-very motivating for children (and adults!) to work on. And the point
in these projects is not to find something scientifically new that can
be published, but to gain insights, have fun and have the feeling of
succesfully having completed something interesting.
There is an area which I would connect to the topic of AI, and it is
(even in itself) also very motivating: digital image processing.
StarLogo has the capabilities of importing and exporting pictures, and
even to handle a camera attached to the computer. Not much has been
said on this list about these capabilities so far. (The MIT StarLogo team
must have had something on their minds when they implemented these
features.)
Digital image processing can very often benefit from parallel ways of
computation. So there could be a lot of interesting projects with
StarLogo on such topics as applying filters to pictures, finding
horizontal, vertical, or any kind of edges, picture quality
enhancement, etc.
To connect this topic with AI, one can attempt with StarLogo to 'see'
different elements of a picture. For example, try to have the turtles
find stars, planets in the sky, find the number plate on a car,
find the peaks on the silhouette of mountain ridges,
find the pupil on the picture of a face, etc. If we have the picture of a
face in StarLogo, we could do many other things (which would be very
personal projects), like try to have turtles take the contours of the face
(so that the face is recognizable only from the turtles),
and then apply different transformations to make a
caricature, or to go to the mouth and find out with the turtles
if he/she is happy or unhappy or if he/she is very happy or very unhappy,
etc.
Basically, what I have been trying to say in this (again, too long) letter
is that there are lots of ways to go with StarLogo & AI, and it would be
interesting to hear from people doing these kind of things.
Cheers,
Gyorgy