Constructing an Adaptive Blackjack Computer Program to Self-Improve Itself Based on Previous Performance

CSEF · 2014 Mathematics & Software

Overview

Objectives/Goals A major challenge in programming is building a program that is adaptive and can make decisions that can mimic human behavior. Many programs are written on pure conditions and have the same output every time. The limiting factor is having to have humans intervene every time in order to get the correct response from the program, but having a program that can mimic this behavior on its own could minimize human intervention, maximizing productivity. This experiment aims to construct a program that is adaptive and improves itself based on the outcome of its previous decisions. This means that it will be able to actively monitor what it is doing and the how it is getting there in order to conciously change that in order to increase its performance. Methods/Materials The medium used is a card game called Blackjack. Two AIs play 10000 games of Blackjack against each other with one having a slew of code that will allow it to monitor its performance in order to improve itself. In order to isolate the variable which will be possessing this adaptive function, 5000 games will be played with both AIs using the same prefixed strategy. Another 5000 games will then be played with both AIs beginning with the same strategy, but one will have the adaptive function in order to change itself in order to improve over time. Results Results show that the AI with the self improving function experiences a trend in which it starts to win the games of Blackjack more often as it adapts itself in order to mimic human behavior. When it has the self-improving code, it goes from about 50% of wins to 64% of wins by the end, while when it does not have it, it stays stagnant right below 50%. Conclusions/Discussion These results show that it is possible to create an adaptive program and actually shows that this can be applied universally in order to maximize efficiency in all aspects of human life such as industrially, medically, and to create future technologies having major benefits in areas like education. This technology makes it possible to create educational models that check how a student is learning in order to change how it teaches that student, or use it to make devices that slowly adapt to the users needs and wants. Either way, this technology has vast benefits and can be used by all of humanity.

Summary statement

Using the java programming language to develop an adaptive program that will monitor how it works and the different techniques it uses in order to adapt itself to get rid of these inefficiencies.

Help received

No help was received.

Competition history

  • CSEF 2014 Mathematics & Software · Entry J1407

Resources

Related projects

Closest projects by meaning, across every fair and year in the corpus.

Browse more like this

Source: California Science & Engineering Fair public projects

Save projects to your library

Sign in with Google to keep track of projects you find interesting, organized into folders. An account also raises your daily allowance for “Has this been done?”, and lets you create a key for the MCP server with a much higher limit than anonymous use. Browsing stays public.

Continue with Google