1. RE: Evolving/Learning AI progs (was RE: Let me try once more)
- Posted by Matthew Lewis <matthewwalkerlewis at YAHOO.COM> Jan 30, 2001
- 528 views
> 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
2. RE: Evolving/Learning AI progs (was RE: Let me try once more)
- Posted by Michael Sabal <mikes at notations.com> Jan 30, 2001
- 465 views
>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
3. RE: Evolving/Learning AI progs (was RE: Let me try once more)
- Posted by Matthew Lewis <matthewwalkerlewis at YAHOO.COM> Jan 30, 2001
- 473 views
> 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
4. RE: Evolving/Learning AI progs (was RE: Let me try once more)
- Posted by Chris Bensler <bensler at mailops.com> Jan 30, 2001
- 472 views
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
5. RE: Evolving/Learning AI progs (was RE: Let me try once more)
- Posted by Chris Bensler <bensler at mailops.com> Jan 30, 2001
- 486 views
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
6. RE: Evolving/Learning AI progs (was RE: Let me try once more)
- Posted by Matthew Lewis <matthewwalkerlewis at YAHOO.COM> Jan 30, 2001
- 482 views
> 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
7. RE: Evolving/Learning AI progs (was RE: Let me try once more)
- Posted by Chris Bensler <bensler at mailops.com> Jan 30, 2001
- 466 views
> 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
8. RE: Evolving/Learning AI progs (was RE: Let me try once more)
- Posted by Chris Bensler <bensler at mailops.com> Jan 31, 2001
- 479 views
- Last edited Feb 01, 2001
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 > > >
9. RE: Evolving/Learning AI progs (was RE: Let me try once more)
- Posted by Tony Bucholtz <tony_bucholtz at HOTMAIL.COM> Feb 01, 2001
- 492 views
- Last edited Feb 02, 2001
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
10. RE: Evolving/Learning AI progs (was RE: Let me try once more)
- Posted by Mike The Spike <mtsreborn at yahoo.com> Feb 01, 2001
- 459 views
- Last edited Feb 02, 2001
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 > > > > > >