Find Jobs
Hire Freelancers

c++ program

$10-30 USD

In Progress
Posted almost 8 years ago

$10-30 USD

Paid on delivery
Create a virtual room (10x10) and add a virtual robot in a random spot. 40% of the squares in the room contain batteries, which provide 5 units of power for your robot. The remaining squares are empty. Moving your robot costs 1 unit of power. Your robot starts with 5 units of power and may hold an unlimited number of charges. The robot is capable of sensing the environment to the North, South, East, West and square it is standing on. It can deter- mine if the space has a wall in it, a battery in it or is empty. Each turn it may either grab a battery (if one is in the square it is occupying) or move 1 space. Moving costs 1 unit of power. Moving into a wall costs 3 power units. Your robot “dies” if it runs out of power before the simulation is over (arbitrarily set to 25 moves per robot). The key is the robot brain. You will use genetic algorithms to “program” your robots. Out of a random population, some robots will do better than others. You will keep these robots and “breed” them so subsequent generations will become smarter and smarter at this task. Each generation will use 200 robots, only the initial generation will have randomly generated brains. Each robot will spend 200 turns in the room. You will compare robot performance on the total number of power units each has collected. Once each generation has been scored, you will select the top 50% robots and “breed” them. Each child robot will get 50% of it‘s behavior from 1 parent and 50% from the other. The children will replace the bottom 50% of the robot population. The simulation will run again. You will repeat your simulation1000 times (ie1000 robot generations). Specification. Record the average power collected for each generation and display at the end of the simulation. You should see an ever improving curve as the GA‘s get better and better at their task. NOTE: this program needs to be written in c++ and Ubuntu OS. It should compile perfectly in terminal without giving warnings.
Project ID: 10386634

About the project

4 proposals
Remote project
Active 8 yrs ago

Looking to make some money?

Benefits of bidding on Freelancer

Set your budget and timeframe
Get paid for your work
Outline your proposal
It's free to sign up and bid on jobs
4 freelancers are bidding on average $90 USD for this job
User Avatar
It isn't so important, but a happy coincidence that I am a robotic software engineer. The project itself, is pretty straightforward initially, then you introduce the genetic algorithm element. Now, I do have experience genetic algorithms, my final year thesis was in grammatical evolution. I previously worked in ESA on genetic algorithm toolkit (PaGMO), that used cross-breeding with archipelagos, and one use case was fuel conservation in planetary robotics. I also work in nothing but Ubuntu.
$111 USD in 5 days
2.2 (2 reviews)
2.9
2.9
User Avatar
I have over 10 years experience in c++ software developement using windows and linux. Furthermore I am doing currently my PhD in Machine Learning, so I am familiar with genetic algorithms and simiar concepts. Are there any more contraints on the layout of the genetic algorithm, or would a rather simple implementation be sufficient? What are the requirements on the code documentation?
$111 USD in 5 days
0.0 (0 reviews)
0.0
0.0
User Avatar
I am experienced in making games in C++ using DirectX for myself. I like the task and I can do this for you. Please send me some more info if you are interested.
$25 USD in 5 days
0.0 (0 reviews)
0.0
0.0

About the client

Flag of UNITED STATES
rancho cordova, United States
5.0
1
Member since May 2, 2016

Client Verification

Thanks! We’ve emailed you a link to claim your free credit.
Something went wrong while sending your email. Please try again.
Registered Users Total Jobs Posted
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Loading preview
Permission granted for Geolocation.
Your login session has expired and you have been logged out. Please log in again.