Search code examples
c#self

Autonomous Software


Has anyone written any code where the application in its lifetime learn and improve itself (using observed data stored in a KB),are there any frameworks for this?


Solution

  • I wrote a learning Tic Tac Toe (or Noughts and Crosses) game once. Does that count?

    It basically maintained a 39 element array which was for each game state. At the end of each game, it would add one to all the states during that game if it had won. Or subtract one if it had lost (including rotations and mirror images for faster learning).

    When deciding on a move, it only had to consult a few possibilities and choose the one with the highest score.

    It ended up getting quite good but not by playing a person, that was taking too long. It had to be set loose playing another copy of itself, a random bot and a hard-coded rule bot for many, many thousands of games.

    When I unleashed it, it had 10 starting levels of intelligence which were just different stages during its learning process.

    My son is currently playing against the dumbest level - he's only four years old so I don't want to be too rough on him, so they'll learn together (although he occasionally beats me at Connect Four, so maybe I should put some more pressure on him).