Show Bid Request
Ant Colony Simulation
Bid Request Id: 50873
|
|
|
Posted by: |
JoeOU812 (2 ratings)
(Software buyer rating 10)
|
Non-action Ratio: |
Very Good - 0.00%
|
Buyer Security Verifications: |
Good
|
Approved on: |
Mar 2, 2003 8:55:18 PM EDT
|
Bidding Closes: |
Mar 16, 2003 6:06:08 PM EDT
|
Viewed (by coders): |
215 times
|
Deadline: |
4/1/2003
TIME EXPIRED
|
|
|
|
Description:
Introduction:
Ant colonies are composed of thousands of individuals that carry out their assigned tasks. The combined individual behaviors of all the ants brings about the emergence of a self-organized system: the colony itself. Each ant only lives for about one year, except for the queen, which can live for 20 years or more. The colony can survive as long as the queen still lives, meaning the colony can also survive for 20 years or more. Since the individual ants only live for about a year, the colony isn't able to benefit from the wisdom of old "wise" ants. The colony lives simply because each individual ant does what it has been programmed to do.
The colony you create will consist of a queen and her brood, which will have workers to gather food and dig new tunnels, and soldiers to protect the colony from enemies. The colony will start off with only the queen and a few workers and soldiers. Over time the colony will expand to function like a real ant colony, to a limited (very limited, actually!) extent. Since you will be building a simulation, how your colony behaves will depend on how certain parameters (discussed below) have been set. The purpose of a simulation is to mimic reality as closely as possible, but in many cases there may not be enough facts on hand to build an accurate simulation. In such cases, it is beneficial to build the simulation in a way that allows the various parameters to be changed easily. I will be providing you with values for as many parameters as I can.
Deliverables: General Architecture Requirements: You will be using a simplified Model-View-Controller (MVC) architecture for this project. Therefore your project should be divided into 3 general components: 1) The Model The Model in this project is the ant colony itself, which consists of those classes needed to encapsulate the functionality of the colony. Your Model should contain a "Simulation" class that will be responsible for displaying information to the user interface. Your Simulation class should have a reference to your user interface class (see The View, below). As the simulation runs it will direct its output to the user interface class (this is known as a "push" model). 2) The View The View is the component that allows the human user to see what is going on. It consists of those classes needed to create the graphical user interface, if a GUI is used. If you use the terminal for input/output, the JDK has already provided you with classes to direct output to the terminal window (e.g., System, BufferedReader, etc.). However, you should create a separate class that your Simulation class will use when it displays information about the colony. 3) The Controller The Controller is responsible for selectin the view and mapping that view to the model. For this project the Controller will consist of a single class, "Driver", that contains the main() method and nothing else. Inside the main method you will need to do the following: a) create an instance of your Simulation class b) create an instance of your user interface class c) register your user interface class with your Simulation class (i.e., make sure your Simulation class has a reference to your user interface class) d) start the simulation
Output Requirements: On each turn of your simulation you should display the following information using your user interface (the data type you should use is in parentheses): 1) the current day of the simulation (int) 2) the current turn number of the current day (int) 3) the current amount of food in the queen's chamber (int) 4) for each tunnel node in the colony you should display the following: a) the Node ID that uniquely identifies the node; you may use the value returned by the hashCode() method inherited by the Java class Object, if you wish (String or int) b) the number of food units in the node (int) c) the level of pheromone in the node (int) d) for each colony ant in the node display the following information: 1. ID that uniquely identifies the ant; again, you may use hashCode() if you wish (String or int) 2. the type of ant (queen, forager, builder, guard or scout) (String) 3. the age of the ant, in days (int) 4. the amount of food the ant is carrying (only if it is a forager) (int) 5. what the ant's last action was (e.g., picked up food, moved forward, dug a new tunnel to the right, attacked an enemy, etc.); when the queen hatches a new ant you should state what type of ant was hatched (String) e) for each enemy Bala ant in the node, display the following: 1. ID that uniquely identifies the ant; again, you may use hashCode() if you wish (String or int) 2. the age of the ant, in days (int) 3. what the ant's last action was (e.g., moved forward, attacked an enemy) (String) Interface Requirements: You can build your own interface, if you feel like delving into the AWT and Swing components of Java. Or, you can simply have your simulation use the terminal for output. However, you must design your system so that your Simulation class sends information to your user interface class as described under General Architecture Requirements. 1) You must document your code meaningfully (but don't overdo it!). 2) You may not use simple arrays to model the tunnel network or the contents of the tunnel nodes. You may use ArrayLists, however.
Platform:
MS Windows (see Ant colony.zip for full project info)
Must be 100% finished and received by buyer on:
Apr 1, 2003 EDT
Deadline legal notes: All times are expressed in the time zone of the site EDT (UT - 5). If the buyer omitted a time, then the deadline is 11:59:59 PM EDT on the indicated date.
Additional Files:
This bid request includes IMPORTANT additional attached files. Please download and read fully before bidding.
Remember that contacting the other party outside of the site (by email, phone, etc.) on all business projects < $500 (before the buyer's money is escrowed) is a violation of both the software buyer and seller agreements.
We monitor all site activity for such violations and can instantly expel transgressers on the spot, so we thank you in advance for your cooperation.
If you notice a violation please help out the site and report it. Thanks for your help.
|
|
Bidding/Comments:
|
All monetary amounts on the site are in United States dollars.
Rent a Coder is a closed auction, so coders can only see their own bids and comments. Buyers can view every posting made on their bid requests. |
See all rejected bids (and all comments)
Name |
Bid Amount |
Date |
Coder Rating |
|
|
|
|
$30 (USD)
|
Mar 3, 2003 1:22:59 PM EDT
|
10
(Excellent)
|
|
|
Hi,
Good Day!
I have been developing Java applications since its early incarnation in Java 1.0. I don't usually use AWT since it doesn't look good and Swing is a lot better. I use SWT for good UI's for Windows. It is excellently fast although a little harder to use.
Honestly, I don't usually do homework for people... but for your case I will make an exception. I was planning to make this kind of simulation for a long time. Kinda reminds me of SimAnt. :) It was one hell of an addictive game. Since its part fun of developing this, ill give it a real discounted deal! But since I do not like to overbid, you will have to make the choices for yourself. I usually charge a lot less than others with what I give and just leave it to your satisfaction to give me a bonus. If you are only contented, I would accept a no-bonus deal with a smile on my face. :)
Actually, I am a professional Java developer backed with 4 solid professional Java experiece... I will give you everything that I got (and make it look as if you made it without using the ultra-weird syntaxes). I feel that sometimes, you have to have fun -- programmatically speaking.
I have read the whole 12 pages and as I have read through it would be fun-fun! As for some problems, here it is. I was planning to make you an user interface with the mapping of the ant colony... with the ants moving and all. The problem is the 6-node connection specification. Having a node with 6 connections would require a 3D view to properly represent it. That would be view would be extremely cool to look at... if not too complex. I tried mapping out the nodes in 2D but the end result was an intersecting which did not really intersect. So this is what I propose, we make an interface that allows you to show all of the ants and their movements in real-time. I'll provide you with professional class display capability with the mini-icons depicting movement.
Well, it boils down to the price. For the entire logic specified in the 12 page guide, I think it would be fair enough to price it at $30. The User interface is another thing though. Its the one that makes the whole thing complex. The $30 includes the text interface. We could maybe iron on the details of the UI causing the value to vary... I think that would range from $10 - $30 more.
As with all my clients I would submit progress reports tri-weekly, on Mondays, Wednesdays and Fridays. Since this is not the only project I work on, I will need about 20 days to properly polish and test the project (with the complex UI). I detailed milestone plan will also be submitted so that we can check on whether we are on time with the schedule or early.
Thank you for considering my bid. I look forward to work on this project.
|
|
|
|
|
|