1. RE: Evolving/Learning AI progs (was RE: Let me try once more)

> From: Chris Bensler
 
> Yes, I know about such things..
> 
> But what happens when you shut down the prog? Where's the remembered 
> intelligence? Would have to be stored in a readable file. Can't be 
> incorporated directly into the app..
> 
> I think you forget, the topic of my discussion was the ability to 
> develop a program that can modify itself so as to not allow anyone to 
> tamper with the LEARNED intelligence of the AI..

Yeah, I guess so.  :)

But, to be honest, I'd be more comfortable with storing the learning
separate from the executable code.  I've put some thought into putting some
AI into some of my projects, and there were several things that seem
important.

A key assumption that I make is that your program itself is finite, and
really doesn't expand.  This may not apply completely to Kat's situation,
for example, because she's looking at human/AI interaction in a
conversational context, rather than the AI as a player in a game, where the
rules are fixed.  Also, it's a real pain for a human to expand a program.
By which I mean, once a program is fairly mature, adding some new feature
(to the underlying program/game/etc, not the AI itself), and integrating
that into the rest of the code is, in general, no simple matter.  To give
the program the ability to do this seems beyond what I can imagine, and I
doubt that anyone anywhere has had much success with this type of thing.
Frankly, I don't think you'd have much luck with modifying the AI code
either.  (Do I put a new func call here, or here, or here, etc....Lots of
room for logic errors...)

So, there would have to be some sort of [standard] API for interaction
between the AI and the rest of the program.  I assume that there are various
'rules' for the world in which the AI lives, like in a game.  So there is a
limit to the things the AI can do, just as there would be if a human were
making the decisions.  Therefore, the self modifying code must be only
concerned with the decision making process, and the options/outputs are
discrete.

A very important part of the API must be how the AI gathers inputs.  It
could look at one or two things, or look at everything available to it.
However, its world contains a finite amount of information, since your
program is finite.

The best way, IMHO, would be to set up some sort of framework (like a GA or
Neural Net) that acts as a 'scripting engine' to take care of the stuff as a
black box.  The black box methodologies seem to work best at creating things
that seem truly intelligent.  Just turn them on and let them learn.  Then
save the params of the system when you're done, and load them up again.

An interesting site is http://www.santafe.org.  It's the Santa Fe Institute.
They're real big on Artificial Life, a component of which, of course, is AI.
Some of the biggest names in AI/AL are or have been there.

Matt Lewis

____________________________________________________________
T O P I C A  -- Learn More. Surf Less. 
Newsletters, Tips and Discussions on Topics You Choose.
http://www.topica.com/partner/tag01

new topic     » topic index » view message » categorize

2. RE: Evolving/Learning AI progs (was RE: Let me try once more)

>An interesting site is http://www.santafe.org.  It's the Santa Fe=20
>Institute.

Try www.santafe.edu for the Institute.

Mike Sabal


____________________________________________________________
T O P I C A  -- Learn More. Surf Less. 
Newsletters, Tips and Discussions on Topics You Choose.
http://www.topica.com/partner/tag01

new topic     » goto parent     » topic index » view message » categorize

3. RE: Evolving/Learning AI progs (was RE: Let me try once more)

> From: Michael Sabal 
> 
> >An interesting site is http://www.santafe.org.  It's the Santa Fe 
> >Institute.
> 
> Try www.santafe.edu for the Institute.
> 

<blushes>
Oops.  That's what I have bookmarked.  Just can't type this morning...

Thanks.

Matt Lewis

PS  Chris, I can't see the message numbers anywhere, either on the web
interface or on the messages themselves.

____________________________________________________________
T O P I C A  -- Learn More. Surf Less. 
Newsletters, Tips and Discussions on Topics You Choose.
http://www.topica.com/partner/tag01

new topic     » goto parent     » topic index » view message » categorize

4. RE: Evolving/Learning AI progs (was RE: Let me try once more)

I have to give you that.. It SURELY would be difficult, and most likely 
beyond my ability..

But why does my program game have to be finite? If I were able to 
incorporate self modifying apps, I think that alone would break the 
boundaries..
The AI isn't the only thing that can be evolved..
If I can have user enhancable code in my games, I can allow users to 
build the game to however they choose..

Add weapons of their choice, change the topology of the gaming arena 
through damage done by their warfare, maybe if the AI is advanced 
enough, things they say to the AI could effect the outcome..
If they are nice, maybe the AI would ally, if not, the AI declares war, 
and remembers who helped it and who didn't.
Maybe I could allow the user to TRAIN his troops to however he likes, to 
suit his combat style..

Lest we forget, games involve someone actually playing it too.. I think 
that qualifies as human interaction.. whose to say what someone might 
want to try?

The future of gaming is in the ability to keep user interested for 
longer..

If it could be possible to build a game, where the user is constantly 
challenged regardless of how much he has played. In fact it would get 
MORE challenging as the AI gained knowledge and experience..
It would almost CERTAINLY dominate the market..

The point is, I WANT my game to expand, this is the theory..

For example, when I go and buy a game now, off the shelf..
Give me a month.. I'll master it.. I'll beat the game..
Not another human opponent maybe, but definitely the game..
After that, the game sits on MY shelf..

Most games that I do buy, I make it a point NOT to beat the game, 
specifically for that reason..
When I feel I'm close, I'll put it away and try at a different one.
That way I can come back to it a few months later, and have some more 
fun!! Usually I forget what/where I was, and have to essentially start 
over..
If I finish it, then I'm never inclined to play it again..
And sequels don't turn my crank. I hate it when a company releases a 
sequel, and it turns out to be the same game, with different 
weapons/maps/story.. Whoop dee do dah day.... still know how to beat the 
game..
Might as well give me a movie, just as much entertainment value and I 
don't have to do anything to see the story and pretty pictures..

I do agree, this concept is far from mature.. but imagine if we could do 
it, and it was done in EU? If it IS possible, I see no better language 
to try and implement it in..
Especially considering the complexity involved with trying to modify the 
code using the AI itself.. (Like you said)

Anyways, this was just one string of thought, on the subject of 
executable variables..

I think the major function of such a feature would be for scripting, not 
AI..

Like adding macro abilities to your apps..
How about plugins?
Take Photoshop for example.. How are the plugins implemented into the 
main app?  (This IS a question, not just a leader)
I'm quite sure there aren't very many restrictions on what a plugin can 
do to the app, you can make a plugin that modifies the actual GUI of the 
app..
Seems to me, the best and most logical way this is implemented, is by 
calling code from the plugin, and combining it with the underlying 
program..

Chris

Matthew Lewis wrote:
> 
> > From: Chris Bensler
>  
> > Yes, I know about such things..
> > 
> > But what happens when you shut down the prog? Where's the remembered 
> > intelligence? Would have to be stored in a readable file. Can't be 
> > incorporated directly into the app..
> > 
> > I think you forget, the topic of my discussion was the ability to 
> > develop a program that can modify itself so as to not allow anyone to 
> > tamper with the LEARNED intelligence of the AI..
> 
> Yeah, I guess so.  :)
> 
> But, to be honest, I'd be more comfortable with storing the learning
> separate from the executable code.  I've put some thought into putting 
> some
> AI into some of my projects, and there were several things that seem
> important.
> 
> A key assumption that I make is that your program itself is finite, and
> really doesn't expand.  This may not apply completely to Kat's 
> situation,
> for example, because she's looking at human/AI interaction in a
> conversational context, rather than the AI as a player in a game, where 
> the
> rules are fixed.  Also, it's a real pain for a human to expand a 
> program.
> By which I mean, once a program is fairly mature, adding some new 
> feature
> (to the underlying program/game/etc, not the AI itself), and integrating
> that into the rest of the code is, in general, no simple matter.  To 
> give
> the program the ability to do this seems beyond what I can imagine, and 
> I
> doubt that anyone anywhere has had much success with this type of thing.
> Frankly, I don't think you'd have much luck with modifying the AI code
> either.  (Do I put a new func call here, or here, or here, etc....Lots 
> of
> room for logic errors...)
> 
> So, there would have to be some sort of [standard] API for interaction
> between the AI and the rest of the program.  I assume that there are 
> various
> 'rules' for the world in which the AI lives, like in a game.  So there 
> is a
> limit to the things the AI can do, just as there would be if a human 
> were
> making the decisions.  Therefore, the self modifying code must be only
> concerned with the decision making process, and the options/outputs are
> discrete.
> 
> A very important part of the API must be how the AI gathers inputs.  It
> could look at one or two things, or look at everything available to it.
> However, its world contains a finite amount of information, since your
> program is finite.
> 
> The best way, IMHO, would be to set up some sort of framework (like a GA 
> or
> Neural Net) that acts as a 'scripting engine' to take care of the stuff 
> as a
> black box.  The black box methodologies seem to work best at creating 
> things
> that seem truly intelligent.  Just turn them on and let them learn.  
> Then
> save the params of the system when you're done, and load them up again.
> 
> An interesting site is http://www.santafe.org.  It's the Santa Fe 
> Institute.
> They're real big on Artificial Life, a component of which, of course, is 
> AI.
> Some of the biggest names in AI/AL are or have been there.
> 
> Matt Lewis

____________________________________________________________
T O P I C A  -- Learn More. Surf Less. 
Newsletters, Tips and Discussions on Topics You Choose.
http://www.topica.com/partner/tag01

new topic     » goto parent     » topic index » view message » categorize

5. RE: Evolving/Learning AI progs (was RE: Let me try once more)

The msgs #'s aren't ON the interface or the msgs..
The number is on the end of the address in the address bar at the top of 
you window..

EG..

This msg's address is 


                             ^ msg #


Matthew Lewis wrote:
> 
> > From: Michael Sabal 
> > 
> > >An interesting site is http://www.santafe.org.  It's the Santa Fe 
> > >Institute.
> > 
> > Try www.santafe.edu for the Institute.
> > 
> 
> <blushes>
> Oops.  That's what I have bookmarked.  Just can't type this morning...
> 
> Thanks.
> 
> Matt Lewis
> 
> PS  Chris, I can't see the message numbers anywhere, either on the web
> interface or on the messages themselves.

____________________________________________________________
T O P I C A  -- Learn More. Surf Less. 
Newsletters, Tips and Discussions on Topics You Choose.
http://www.topica.com/partner/tag01

new topic     » goto parent     » topic index » view message » categorize

6. RE: Evolving/Learning AI progs (was RE: Let me try once more)

> From: Chris Bensler [mailto:bensler at mailops.com]
 
> But why does my program game have to be finite? If I were able to 
> incorporate self modifying apps, I think that alone would break the 
> boundaries..
> The AI isn't the only thing that can be evolved..
> If I can have user enhancable code in my games, I can allow users to 
> build the game to however they choose..

I think what I'm getting at is the difference between an open system, that
can accept plugins which must conform to a specific standard (ie, use an API
to interface with the program).
 
> Add weapons of their choice, change the topology of the gaming arena 
> through damage done by their warfare, maybe if the AI is advanced 
> enough, things they say to the AI could effect the outcome..
> If they are nice, maybe the AI would ally, if not, the AI 
> declares war, 
> and remembers who helped it and who didn't.
> Maybe I could allow the user to TRAIN his troops to however 
> he likes, to 
> suit his combat style..

Agreed.  But, what I'm saying is that there should be an existing way for
players to ally, as opposed to the AI creating that option, and changing the
behavior of the game to allow for alliances.

> Lest we forget, games involve someone actually playing it 
> too.. I think 
> that qualifies as human interaction.. whose to say what someone might 
> want to try?

Yep.  But the interaction is limited to the rules of the game.

> The future of gaming is in the ability to keep user interested for 
> longer..
> 
> If it could be possible to build a game, where the user is constantly 
> challenged regardless of how much he has played. In fact it would get 
> MORE challenging as the AI gained knowledge and experience..
> It would almost CERTAINLY dominate the market..
> 
> The point is, I WANT my game to expand, this is the theory..

Me, too. :)

> Like adding macro abilities to your apps..
> How about plugins?
> Take Photoshop for example.. How are the plugins implemented into the 
> main app?  (This IS a question, not just a leader)
> I'm quite sure there aren't very many restrictions on what a 
> plugin can 
> do to the app, you can make a plugin that modifies the actual 
> GUI of the 
> app..
> Seems to me, the best and most logical way this is implemented, is by 
> calling code from the plugin, and combining it with the underlying 
> program..
 
My understanding is that Photoshop (or anything that allows this sort of
thing) provides an API for plugins that allows them to do various things.
Take a look at VBA in Microsoft Office.  Each app (Word, Excel, Access, etc)
exposes different things to VBA to allow users to write their own 'plugins'.
I guess that the most succinct way to spit out what I'm getting at is that
your plugin/AI/script/etc should be able to do whatever it wants behind the
scenes, but it shouldn't be able to modify or get around the API provided.
That, of course, goes both ways.  The program should have a standardized API
for calling the plugin.  That's what I've been doing with David's Eu.

So, it would be possible to have an AI or a player invent a new weapon.  It
would be simplier, IMHO to save that information in a separate file, loaded
whenever the game starts.  Then the AI can treat all available weaponry the
same.  It wouldn't know if the item were created by the original programmer,
a player, itself or another AI.  However, it probably wouldn't be possible
to use the weapon for purposes other than those which already exist.  Like
suddenly it's able to use an empty magazine to carry water, or something.

Matt Lewis


____________________________________________________________
T O P I C A  -- Learn More. Surf Less. 
Newsletters, Tips and Discussions on Topics You Choose.
http://www.topica.com/partner/tag01

new topic     » goto parent     » topic index » view message » categorize

7. RE: Evolving/Learning AI progs (was RE: Let me try once more)

> Agreed.  But, what I'm saying is that there should be an existing way 
> for
> players to ally, as opposed to the AI creating that option, and changing 
> the
> behavior of the game to allow for alliances.

But this is what I want to be able to do! You can't sell something that 
isn't revolutionary in some way! :)


> Yep.  But the interaction is limited to the rules of the game.

Who says I WANT to implement rules? I want the concept to be as open as 
possible..


> a player, itself or another AI.  However, it probably wouldn't be 
> possible
> to use the weapon for purposes other than those which already exist.  
> Like
> suddenly it's able to use an empty magazine to carry water, or 
> something.

Why not!!? That's what would make the game superior to others!! 

Chris

____________________________________________________________
T O P I C A  -- Learn More. Surf Less. 
Newsletters, Tips and Discussions on Topics You Choose.
http://www.topica.com/partner/tag01

new topic     » goto parent     » topic index » view message » categorize

8. RE: Evolving/Learning AI progs (was RE: Let me try once more)

How 'bout using the butt of the gun to dig a trech to hide in, or to 
build a pit trap.
Or, how 'bout using a corpse as a sheild?
Or, using a delapitated jeep to repair a tank?
How bout disassemblng a bullet to get the gunpowder to start a fire, so 
it can eat?
How bout using the gun strap as a rope?
How bout taking apart a pair of binoculars to extract the lens to use to 
start a fire? Maybe to melt snow/ice for water..
How bout using a rock as a hammer?
.. use a knife on a stick as a makeshift spear (less risk)
.. etc.. etc..

Of course the AI is not likely to thin k of these things on it's own, 
but, it could learn from human opponents/allies..

Chris

Dan B Moyer wrote:
> Chris,
> 
> You can't carry water in magazines because magazines have *holes* in 
> them.
> An AI should *know* that via properties (of the magazine).
> 
> Dan
> ----- Original Message -----
> From: "Chris Bensler" <bensler at mailops.com>
> To: <EUforum at topica.com>
> Sent: Tuesday, January 30, 2001 10:14 AM
> Subject: RE: Evolving/Learning AI progs (was RE: Let me try once more)
> 
> 
> > > Agreed.  But, what I'm saying is that there should be an existing way
> > > for
> > > players to ally, as opposed to the AI creating that option, and changing
> > > the
> > > behavior of the game to allow for alliances.
> >
> > But this is what I want to be able to do! You can't sell something that
> > isn't revolutionary in some way! :)
> >
> >
> > > Yep.  But the interaction is limited to the rules of the game.
> >
> > Who says I WANT to implement rules? I want the concept to be as open as
> > possible..
> >
> >
> > > a player, itself or another AI.  However, it probably wouldn't be
> > > possible
> > > to use the weapon for purposes other than those which already exist.
> > > Like
> > > suddenly it's able to use an empty magazine to carry water, or
> > > something.
> >
> > Why not!!? That's what would make the game superior to others!!
> >
> > Chris
> >
>

new topic     » goto parent     » topic index » view message » categorize

9. RE: Evolving/Learning AI progs (was RE: Let me try once more)

G'day all

I've followed this thread with not much to add, except that it seems to have 
drifted away from George's original question regarding executing 
user-written code (hope that's correct?) from a bound 'n' shrouded exe. 
Check out e!.zip in the RDS Archives. It appears to be a sort of 
"self-modifying" Euphoria program. This thing may be at least part of a 
solution to George's problem...

While you're there, could someone please explain to me how e! works? I can 
see that it's creating a new version of itself, along with the entered code, 
but how in hell does the interpreter get to run the "new" version? It's not 
*really* magic, is it?

Regards
Tony

new topic     » goto parent     » topic index » view message » categorize

10. RE: Evolving/Learning AI progs (was RE: Let me try once more)

Heh?
E! is a program that asks you for Eu code, and then
writes that down to a file and calls 'ex.exe' to run
it.
Not much magic there.

If only we could retarget the Euphoria parser
somehow...hmm....maybe this is an oppurtunity for me
to take another CRACK at it?

Mike The Spike
PS. Dynamically change the contents of the source
bound to ex.exe, and then jump to the program entry
point again, or some shit like that.

--- Tony Bucholtz <tony_bucholtz at HOTMAIL.COM> wrote:
> G'day all
> 
> I've followed this thread with not much to add,
> except that it seems to have 
> drifted away from George's original question
> regarding executing 
> user-written code (hope that's correct?) from a
> bound 'n' shrouded exe. 
> Check out e!.zip in the RDS Archives. It appears to
> be a sort of 
> "self-modifying" Euphoria program. This thing may be
> at least part of a 
> solution to George's problem...
> 
> While you're there, could someone please explain to
> me how e! works? I can 
> see that it's creating a new version of itself,
> along with the entered code, 
> but how in hell does the interpreter get to run the
> "new" version? It's not 
> *really* magic, is it?
> 
> Regards
> Tony
> 
> 
> 
> 
>
>

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu