aimacode / aima-python

Python implementation of algorithms from Russell And Norvig's "Artificial Intelligence - A Modern Approach"
MIT License
8.07k stars 3.81k forks source link

What I Did And Didn't Do in GSoC 2017 #632

Open antmarakis opened 7 years ago

antmarakis commented 7 years ago

What I Did (in short):

Click to view my commits

What I Didn't Do (but wish that I had):

norvig commented 7 years ago

Good write-up, thanks.

apb7 commented 7 years ago

Hello @MrDupin and @norvig, to improve the visualizations for the games.py, along with the existing the existing Canvas, we can also use some Python GUI framework like Tkinter. We will implement the algorithms as given in games.py and then provide a demonstration of the respective game with the help of Tkinter. I would surely love to work on this aspect!

antmarakis commented 7 years ago

@apb7: Do you mean to use Tkinter alongside the notebooks, or in the notebooks?

Seems like a great idea, I would love to hear more.

apb7 commented 7 years ago

@MrDupin: I originally thought a separate Tkinter implementation alongside the notebooks. Later we can merge it in the notebooks. For instance, in Tic-Tac-Toe there would be options like Vs Computer, Vs Player for the user. A proper 3×3 grid with buttons would be displayed where the user will click upon his turn.

antmarakis commented 7 years ago

Sounds interesting. I would like to see a demo of this, for some of the simpler visualizations.

Can you do it?

apb7 commented 7 years ago

I had worked on a Tic-Tac-Toe GUI a few weeks ago. It uses the minimax algorithm (might be a bit different from the code given in games.py) without alpha-beta pruning. This is a simple version and can be later modified according to the algorithms of the book.

antmarakis commented 7 years ago

Can you convert it to Python 3.4? This is the version we are using for the repository right now.

apb7 commented 7 years ago

Yes. Tkinter support Python 3.4 as well. There won't be any problem @MrDupin.

apb7 commented 7 years ago

@MrDupin, @norvig and @Chipe1 : I am currently working on it and will be done with a basic version of the GUI, which incorporates the minimax algorithm of games.py, in a day.

apb7 commented 7 years ago

Hey @MrDupin, I have pushed the code to the forked repository. You can find it under the gui folder. The GUI now makes use of the algorithms of games.py and is compatible with Python 3.4.

antmarakis commented 7 years ago

Awesome, I will take a look during the weekend when I will have more time.

Chipe1 commented 7 years ago

@apb7 Looks good. The choice to change the AI at every step is nice. With the extra freedom that comes with using Tkinter instead of just notebook can we make the application more expressive? Like a tree which shows the thought process and decision tree of the AI. @norvig What do you think about having Tkinter applications in the repo? I'm not sure if we can run it from within notebooks.

apb7 commented 7 years ago

@Chipe1 : Yes we can have a side panel which shows the thought process as well as the decision tree of the AI along with the gameplay. This will definitely look good!

antmarakis commented 7 years ago

Hey, that was really cool, I would love to see more tkinter on the project!

I opened an issue about this: #659.

apb7 commented 7 years ago

@MrDupin: Sure! I'll work out on other games as well.

Dragneel7 commented 6 years ago

@MrDupin @Chipe1 Hi I am a machine learning enthusiast and want to learn and contribute in this organisation. Plus if possible I am also looking for gsoc2018, can you suggest me how to take up a new challenge here.

antmarakis commented 6 years ago

Hi @Dragneel7. I am glad you want to join the project! A great place to start looking for ideas is the contributing guide. Take a look and see what kind of work we are doing here, and if you have any further questions feel free to ask.

the-ethan-hunt commented 6 years ago

@MrDupin @Chipe1 Hello! I read about aimacode's idea list page specifically the possible documentation of packages like NLTK. I am an NLP enthusiast and a GSoC'18 aspirant. Any leads I need to follow to help with the idea? :smile:

antmarakis commented 6 years ago

This is something I was also interested in, but it was decided that at least for the summer we would not be adding external libraries such as Tensorflow or NLTK. In the future though this will possibly change, so only @norvig can tell as when we can star adding these libraries.

alpha721 commented 6 years ago

@MrDupin @Chipe1 @norvig I am interested in contributing to aima-python as a gsoc 2018 aspirant. I have gone through the project ideas list and decided to contribute to "Project 1: Finish aima-python algorithms and add explanatory notebooks". I have set up the repository and gone through contributing guidelines. I would be really thankful if you could provide any suggestions on how to get started.

alpha721 commented 6 years ago

I have a few queries in general: i) When is the right time to mail the mentors regarding the project? ii)Should I just pick a few issues and get started on them, or is there any other procedure to follow? iii) Are contributions to aima-python only criteria for application consideration or does other relevant work matter too?
I would really appreciate if you could give a perspective on how things work in general. Thanks a lot !

antmarakis commented 6 years ago

Hello @alpha721!

i) I am not sure, I am only a student. :)

ii) There are some contribution ideas on CONTRIBUTING, in particular the sections "New And Improved Algorithms" and "Jupyter Notebooks". You can also work on open issues that others aren't working on.

iii) As far as I know, relevant work matters as well, even though it is suggested you work on this repository at least a little bit, to get to know the ropes.

Generally speaking, there are two main veins of work here: a) Completing the algorithms (you can find a list of unimplemented algorithms on the README) and b) Writing Notebooks. It is in b) that most of the current work falls under. To see how to help in that department, you can take a look at the CONTRIBUTING link from above.

Hope this helped!

alpha721 commented 6 years ago

Thanks a lot @MrDupin . I would keep things in mind :)