After spending time learning about AI and expanding on the code I started with, my team and I were able to successfully have an AI learn how to complete a maze. The end result of the program resulted in the most efficient black dot reaching the red dot at the end of the maze. HackOHI/O allowed me to learn a lot about AI. Prior to the hackathon, I knew some about AI such as populations and generations, but this project helped me learn about more aspects of AI such as fitness values and how they are calculated, how items in a population are chosen to move on to the next generation, and how all the parts of AI work together to allow the computer to learn. My new knowledge allowed me to successfully write a program that had dots use AI to learn how to complete a maze. The situations and challenges I faced during this project helped me look at the code in new ways which allowed me to learn even more. I can now work on other AI projects and make improvements based on what I learned during the hackathon. As I continue to learn about AI, I can return to this project to make the AI even more efficient than it currently is. I look forward to using my new skills and knowledge to help me in projects in the future for classes, work after college, or other independent projects.
On the day of the hackathon, I spent 20 hours working learning and researching about AI as well as working on the program.
Over the rest of the semester, I spent 10 more hours editing and improving my program.
I spent 10 hours writing about and logging everything I did during this project.
After creating the maze, I began to think about how I should change the calculation of the fitness value in order for it to work for the new goal. The fitness function I started with was only paying attention to the distance from the red dot and the amount of steps it took to get there. This would not work for the new goal since the black dots were not supposed to go directly to the red dot. They had to follow a maze which meant that sometimes going further from the red dot was actually the route the black dots would need to take in order to reach their goal. When running the program with the original fitness function, this problem became very apparent. The black dots would start the maze, but then get stuck at the first turn they needed to make. Instead of turning to follow the maze, the black dots got stuck in the corner of the turn since that spot was as close as they thought they could get to the red dot. In order to fix this problem, I had to find a way to increase the fitness of a dot if it was following the maze properly. To do that, I created checkpoints, or reward gates throughout the maze. Each reward gate was an invisible line that the dots would have to cross when moving through the maze. When a dot crossed a reward gate, that increased it’s fitness value. That allowed the dots to want to follow the maze as well as reach the red dot. From there I spent time adjusting the fitness calculation to find the best balance between the different factors. I would run the program along the way to see how the dots would react. Eventually, I was able to get the black dots to learn how to complete the maze and reach the red dot at the end.
On the day of the Hackthon, my team and I spent about 20 hours working on our project. Since it was the first time any of us had worked with Artificial Intelligence (AI) before, we started with simple AI code posted on GitHub by Code Bullet called Smart Dot Genetic Algorithm, https://github.com/Code-Bullet/Smart-Dots-Genetic-Algorithm-Tutorial. This code was posted with the intention of people using it to learn and create their own projects. Before I made any changes to the code, the program was a white screen with a red dot on one side and a bunch of black dots on the other. The goal was for the black dots to reach the red dot. If a black dot hit a wall it would die and if a black dot hit the red dot, then it would stop because it reached its goal. The code I started with was already using AI to have the black dots reach the red dot in the most efficient way possible. I started by looking through the code to understand how it was working. The program worked by generating a large amount of dots and having them randomly move around the screen. After one run, each dot would have a fitness value generated. That value was calculated based on how close it got to the red dot, how many steps it took, and if it reached its goal. The closer it got to the red dot and the less amount of steps it took, the higher a fitness score the dot would have. After that, dots were chosen to move on to the next generation. The higher a dots fitness score, the higher a chance that dot would move on. Additionally, the best dot from each generation would automatically move to the next generation to ensure that the next generation was at least as efficient as the previous one. The best dot would appear as a green dot in the next round. This process would continue, allowing the most fit dots to continue onto later generations, which would allow the overall population to become more efficient.
After I understood this process, I began to work on expanding on the code to create a more advanced AI. To do this, I turned the blank white box into a maze. I started by creating walls for the maze. Similar to the walls of the box, the dots would die if they hit any wall in the maze. I planned out the maze in a way so that the dots would have to move in all different directions in order to finish the maze. This would ensure that the dots would have to learn their way through the maze and would not be able to stumble upon the end. Adding in the extra walls allowed me to use the knowledge I gained from looking at the code I started with. I was able to use what I learned to make a more complex AI.
After meeting with my Hackathon team, we decided that we wanted to work on a project related to Artificial Intelligence (AI). All of us have an interest in this topic, but not a lot of knowledge. My plan is to watch YouTube videos to get an understanding of AI. Once I learn more about how AI works, I can figure out specifically what type of project I want to do. Also, since I am working with AI for the first time and learning about it, I plan to start with a simple AI template from online and improve/change the code to allow it to work how I want. I will look through the code to learn about the different aspects of AI and to be able to watch them being used in a working program. From there I will decide how I plan to improve upon the code for it to be more useful and complex. The goal is for me to leave the Hackathon with a much better understanding of AI and how it works. By using this time to learn about AI, I will be more prepared to use it in the future for classes or for other projects.
HackOHI/O is 10:00am November 2nd to 10:00am November 3rd. I will spend those 24 working with my team to decide what our project will be as well as starting and completing a large part of the project.
After the Hackathon I will spend a couple hours documenting everything that my team did. Then I will see how far we got and what can be improved or tweaked. I will then spend the remaining 16 hours of the capstone project improving on our project and continuing to document my work.
For my capstone project I am going to be participating in the Ohio State’s Hackathon, HackOHI/O. The Hackathon is a 24 hour coding competition. There are challenges set up by the sponsors that can be used to come up with project ideas, or each team can come up with an idea on their own. Hackathons are a way for people to showcase their skills as well as come up with projects that will benefit others. https://hack.osu.edu/2019/#challenges is a link to the challenges that have already been posted. These challenges help the companies that came up with them and can be used in the future. For example, JPMorgan Chase’s challenge is to create a “financial technology project that gives back to your community in a positive way”. Also, the ENGIE challenge is a way of looking at the amount of energy Ohio State’s campus uses and the winner of this challenge could have their project implemented at Ohio State where students and faculty can use it daily. My team is going to look at the challenges released the day of the Hackathon, but the current plan is to come up with our own idea. We want to work with concepts that we have not learned before so that we can expand our knowledge and challenge ourselves past what we learn in class. The Hackathon is also a good time to try out coding concepts that you are not as familiar with. It is a time to learn and improve. According to The Tech Advocate (https://www.thetechedvocate.org/benefits-participating-hackathon/), “intense problem-solving environments like hackathons facilitate the creation of innovative ideas and concepts”. There are mentors there that can help me learn and be successful. By participating in HackOHI/O, I will get the opportunity to learn new concepts that I might not have had the chance to learn otherwise. I will also be able to meet many other students with similar interests to me as well as representatives from HackOHI/O’s sponsors. Overall, HackOHI/O will be beneficial to me as well as the companies that sponsor the event.
While living on campus, I often see people promoting recycling and teaching students what can and cannot be recycled. It is important that people know what can be recycled, because one wrong thing in the recycling bin can caused everything to be unable to be recycled. The article I read, How Robots are Revolutionizing Recycling, talks about an artificial intelligence (AI) robot that is able to sort through recycles and pick on certain pieces based on material, size, shape, color, or other identifying factors. This would allow recycled material to be sorted through quickly to ensure that only items that are actually recyclable are recycled. These robots are able to learn on their own from previous sorting experiences which would allow them to adjust as conditions and other variables change. Some material recovery facilities (MRF) have begun to use these robots to sort through all of the material that they get. Companies often get a mix of construction and demolition materials that need to be sorted through and have specific pieces taken out. The robots can do this much faster and more accurately than humans. These robots have just recently begun to be tested, but they have had success so far and will continue to be used in the future.
As of now, the robots seem to be working properly, but there is a chance that they could malfunction and start sorting things incorrectly. This would be a problem because it would cause the MRF to lose time and money. Also, having AI robots sort the recyclables will cause the people currently doing that to lose their jobs. This is beneficial to the companies because they will save money, but it is not good for the people losing their jobs. As long as the robots continue to function properly, I see a lot of benefits from them. On a lower level, many places, such as restaurants or college campuses can use these robots to sort through trash and recyclables. Most people don’t know what can be recycles, so having a machine that can do that for them will allow more than to be recycles which will help the environment. Also, the MRF that are using these machines will save a significant amount of time and have more accurate results. These machines will really help out the environment by allowing more to be recycled.
Taylor, B. (2019, January 30). How robots are revolutionizing recycling. Retrieved from https://www.recyclingtoday.com/article/recycling-robots-ai-sorting/
Coming in to college, I didn’t know what to expect. I didn’t know how I would adjust be being on my own, or being in college classes. Overall, I transitioned better than I thought I would. I quickly got use to being at school and on my own.
In terms of my classes, they were definitely more work than high school. I would learn a topic and lecture, but it was up to me to make sure I understood it and review the topics after class. At the beginning of the year I was really good at getting all of my homework and assignments done and turned in on time, but I wasn’t as good at studying the topics along the way. I would usually start studying a couple days before the test. This didn’t work very well, especially when I would have multiple midterms in one week. I had to adjust and study along that way, so when I would study for the midterm a few days before, I understood the topics a lot better and I could do better on the test.
I have made many friends since starting college. Being in a scholars program allowed me to live with a group of students that have similar interests to me. Many of the STEM scholars had talked to each other during the summer, so I came to school already recognizing many people. Living with them made us all really close and even though everyone in STEM scholars doesn’t have to live together next year, I chose to live with people from my floor again next year. I have also made friends with people in some of my classes which is nice because I am then able to study with them. I have found that studying with other people is very helpful and I will continue to do that throughout college.
I have also joined many clubs in college. I am involved in the Society of Women Engineers (SWE) where I have been able to learn a lot about tips for getting internships and jobs and I have been able to volunteer and teach kids about engineering. SWE has been a great club to be involved in and I look forward to going to more of their events next year. I also joined an engineering social sorority (Phi Sigma Rho). I have met and become friends with many girls that have similar majors to me. This is helpful because I have upperclassmen that I can ask questions about classes I will take in the future. I have really enjoyed my time in the sorority so far.
Overall, my first year of college has been great in so many ways. I look forward to being back in Columbus in a few months for my sophomore year.