Artificial Intelligence is the buzzword these days. With Google acquiring DeepMind Technologies and Uber partnering with CMU to develop a Robotics Research center to develop robot driven cars. We’ve seen cases where Chess champions were defeated by computers but we’ve also noticed computers struggling to win against the masters of GO. Clearly, AI is an open field with a lot of scope for research.
So, what is AI? AI is a well written piece of code that mimics some (but typically not every) aspect of a human brain or some activity of humans. AI is a vast area to cover and there is an ongoing debate in the academic community about whether it will end up being a blessing or a curse. Introduction to AI by Russell and Norvig is a great book for anyone looking to learn more. The book talks about 4 forms of AI, namely:
- Machines that think like humans
- Machine that act like humans
- Machines that think rationally
- Machines that act rationally
The 4th topic is the best way to learn AI. Imagine building an agent that acts rationally like a human (or, unlike a human, as it is in many cases). AI perceives an environment and acts (responds to stimuli) accordingly and they can be designed to behave differently when they are put in different environments – hence, AI. At HackerRank, we aim to stay ahead of the curve, so we have a bunch of CodeChallenges that specifically test users skills on designing these AI agents (bots), including:
- Botclean where an agent becoming aware of the environment and cleans all the dirty areas.
- Botclean Stochastic where an agent aware of it’s ever changing environment navigates across various cells to clean all the dirty areas.
- Botclean Partially Observable where an agent responds to stimuli in a partially observable environment.
Once the concept of agents is understood, you can try the more difficult CodeChallenges where you design search agents whose task is to move from point A to point B when obstacles are placed in it’s way, like these:
In all of these, you build agents that search for food using DFS, BFS, Uniform Cost Search and A* algorithm, respectively. And, finally, when you’re feeling like you have become an AI master, you can use your knowledge of search agents to design a good heuristic to design a solver for N-Puzzle.
All of these CodeChallenges are an awesome way to learn and fine tune your AI programming skills, which is becoming an ever-present part of the STEM (Science, Tech, Engineering, Math) community. Maybe you’ll use HackerRank to learn AI and then be the first developer to write an AI agent that beats a GO master!