Hi there, welcome!

I won't address all your points, but I thought I would throw out a few  
things to think about.

In terms of doing something 'interesting' from a thesis point of view,  
perhaps you could consider making an AI that handles fog of war well.  
As far as I know, research into AIs with incomplete information is far  
less developed than AIs with complete information. It would be an  
interesting challenge to try and write an AI that could try to use  
advanced inference techniques to cope with fog of war and incomplete  
information. I think it would make things much more 'interesting' than  
simply dealing with the huge state space challenge.

I don't think Wesnoth does all the things you want in terms of how it  
handles the AI, but you could modify the engine to make it behave as  
you want. I don't think it would be so difficult to do so. Possibly  
you could convince someone on the development team to do it for you,  
but I don't think you should rely on this.

Regards,

David

Quoting "Roald (ubuntu_demon)" <[EMAIL PROTECTED]>:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Hey,
>
> I'm a master student AI and I'm currently investigating whether wesnoth
> is suitable to use for my thesis. I'm new to AI development for Wesnoth.
> I've played wesnoth a little bit for the last couple of months.
>
> Why am I thinking about doing something with wesnoth regarding my thesis
> ?
>
> * wesnoth is open source
> * python AI API available (IMHO python is powerful,suitable for research
> and my personal favorite)
> * I like playing wesnoth
> * wesnoth's engine seems nice and fast
> * I like the simplicity of the wesnoth game rules
> * there are AI's for wesnoth available (I know of the default c++ AI,
> chesslike python AI, sample python AI)
> * there's room for a new "smarter" AI
>
> To give you a rough idea about some rough ideas I currently have for
> possible directions : try to handle the huge state space, analyze a
> played game (or a map) by using some machine learning
> technique,generating map specific AI, adapting AI to map and/or opponent
> factions, Reinforcement Learning.
>
> Some things I have to do before making the final decision whether or not
> to use wesnoth for my thesis :
> * I have to figure out the scientific part. I have to come up with a
> research question, problem statement and that kind of stuff. I have to
> do literature research. I have to figure out exactly what I am going to
> do and how. But I can probably handle all of that myself with a little
> bit of help from my supervisor.
> * I have to figure out some practical stuff and I'm hoping you guys can
> help me shed some light on them.
>
> For me the most important is graduating with original,new and exciting
> research. It would be nice if my research would result in a nice and
> usable AI but this probably can't be the goal of scientific research. I
> want to open source my work and I will try hard to do so but sadly I'm
> not yet sure whether my university will allow that.
>
> I read a little bit about restricting python. I do like
> reviewing/renaming solutions but personally I don't like technical
> restrictions. Python being powerful/versatile makes it a nice language
> for doing research with (you can hook into all kinds of existing stuff,
> you can quickly prototype something). IMHO you probably can't restrict
> any c++ AI so IMHO considering restricting python AI's but not c++ AI's
> seems inconsistent. Also it's not like there are lots of python AI's
> available for wesnoth so the reviewing/renaming solution probably
> doesn't add much to the workload of the volunteers who do this.
>
> Here's some practical things I've discovered but please correct me if
> I'm wrong :
>
>  * I think it's possible for games to be played within a few minutes. I
> did some testing with default AI's which confirms this (starting from
> command line games take roughly 10-80 seconds). My research AI will
> probably be a bit more time consuming than this default AI but I think
> I'm safe here.
>  * As I understand it each turn the AI is re-initialized. Assuming
> set_variable() and get_variable() will only work for variables and not
> for (more complex) objects,dictionaries,lists,lists of lists (matrices)
> this will mean I have to pickle my objects and matrices. Assuming that
> importing cPickle is allowed this will probably mean an overhead in the
> order of seconds per game. (IMHO it would be nicer if you force python
> AI's to implement a save and load function but that approach might have
> the drawback of a slightly steeper learning curve)
>
> So here's a list of practical stuff that's not yet clear to me :
>
>  * if python will be restricted somehow in the future will I be able to
> turn this of by compiling wesnoth with --unrestricted-python ?
>  * if python will be restricted somehow will I still be able to import
> standard python libraries ? I consider math,random,cPickle and some
> module(s) for threading most essential.
>  * Are there differences regarding the python AI API between the 1.2
> stable branch and the 1.3 development branch of wesnoth ?
>  * Do you think I should run the 1.3 development branch of wesnoth or
> the 1.2 stable branch of wesnoth ? Why ?
>
> Practical stuff about finishing :
>
>  * Is there some way for the python AI to know when the game is finished
> ? It's really important to have something like this because without this
> it makes it really hard to make your AI actually learn.
> I would like to know at which place I (the current python AI) is
> finished and I would need to know how much players were in the game
> (finishing 2nd out of 2 players is bad whereas finishing 2nd out of 8
> players is quite good). Most learning probably happens after a game is
> finished.
>  * To be specific : I would like to have the following "finishing stuff"
> : knowing whether or not the game is finished, knowing which place I
> finished at (knowing the place of all players would be nice), knowing
> whether the game is started from command line(all time available) or gui
> (less time available either enforced or just make sure not to use too
> much time),being able to do some computation when the game is finished
>  * Consider the following 2-player example if I would use some basic
> reinforcement learning technique (such as q-learning) I can give a
> positive reward to all my actions when I'm finished at first place and a
> negative reward for all my actions for finishing 2nd place. Giving out
> this reward probably isn't computationally heavy but it needs to happen
> after the game is finished.
>  * Consider another (2 player) example. My python AI plays against the
> default AI but after the game is finished I apply some Machine
> Learning/Statistical technique to find interesting places on the map.
> This can actually be computationally heavy if needed because ideally it
> only needs to be done once for each map and it can be done offline by
> me. The stuff you learn here can be used "online" in the map specific
> part of my AI.
>  * When running wesnoth from GUI python AI's should make sure not to use
> (too much) noticeable time.
>  * When running wesnoth from command line the allowed time for
> computation after having finished a game isn't important because human
> players don't see this. Only some AI developers would use it.
>  * If this "finishing information" doesn't exist can this be included in
> the next development version of Wesnoth ?
>  * If this "finishing information" doesn't exist can you please give me
> some pointers about how to implement it myself and most importantly where.
>
> I will probably take a while until I can say something definitive about
> whether my research will use Wesnoth or not.
>
> Thank you very much for your feedback,help,tips and suggestions. Feel
> free to ask any questions :)
>
>
>
>
>
>
>
>
>
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.6 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
>
> iD8DBQFGX0qPadqpfxv/6LsRAuprAJ9wCseciBU0FaZkVXVocezcRFVAwwCdGhT3
> dACRcZuJ/1Snh2Pcbsm0LG8=
> =xohw
> -----END PGP SIGNATURE-----
>
> _______________________________________________
> Wesnoth-dev mailing list
> [email protected]
> https://mail.gna.org/listinfo/wesnoth-dev
>



_______________________________________________
Wesnoth-dev mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-dev

Reply via email to