yourfanat wrote: I am using another tool for Oracle developers - dbForge Studio for Oracle. This IDE has lots of usefull features, among them: oracle designer, code competion and formatter, query builder, debugger, profiler, erxport/import, reports and many others. The latest version supports Oracle 12C. More information here.
Cloud Expo on Google News
Cloud Expo & Virtualization 2009 East
Smarter Business Solutions Through Dynamic Infrastructure
Smarter Insights: How the CIO Becomes a Hero Again
Windows Azure
Why VDI?
Maximizing the Business Value of Virtualization in Enterprise and Cloud Computing Environments
Messaging in the Cloud - Email, SMS and Voice
Freedom OSS
Stairway to the Cloud
Sun's Incubation Platform: Helping Startups Serve the Enterprise
Cloud Computing & Enterprise IT: Cost & Operational Benefits
How and Why is a Flexible IT Infrastructure the Key To the Future?
Click For 2008 West
Event Webcasts
Genetic Cloud: Cloud Computing Is For Everyone Every Day
Genetic algorithms are very simple. They have only three steps.

Cloud Computing provides almost unlimited resources. They are always available. The payment is only for usage time. The current article continues the series about new opportunities that become available to every person.

Do you play billiard? I do. I’m not a professional player. So I enjoy pocketing a ball accidentally. The ball’s going at the rebound from cushions, coming to the pocket; it almost stops with revolving, and … falls to the pocket. Such kind of a casual luck!

But I’m not sure the luck is here today. The coming manager doesn’t look like he simplifies my current work day.

“A task for you….”

To exclude all technical details, commercial secrets, and other things, the task can be presented as a known travelling salesman problem with 50 points there. Yes, the order of variant’s number is about 50! (10^64). The distance matrix is not static additionally. Even if I find the necessary library quickly it’ll take much time to include the task features there.

“When should it be ready?” I’m asking guardedly.
“I believe in you” my manager‘s tapping me. “Today’s evening.”
“What is if it is ready earlier than evening?” I’m trying to joke.
“If it’s ready earlier you could even play billiard the rest of the time.” My manager answers in the same manner.

Ok, at least I’m motivated now.

There are a lot of methods to solve such a problem .

It would be great if the task could be solved by my minimal efforts. Even it takes a little bit more other resources, e.g. computing time. Sure! Indeed it can be solved in this way! A genetic algorithm is the simplest method that I can implement. But I will have to just wait for the result. Wasting of time! But I can use the cloud resources. It’ll save me time, and I will be able to play billiard during waiting.

Stage 1. Genetic Algorithm.

Genetic algorithms are very simple. They have only three steps (excluding an initialization): crossover, mutation, and selection.

The chromosome is a ring path starting from the first defined point and directed to the second defined point (to not duplicate the same ways during the search).

The implementation is:

  1. The initialization is easy, because it’s random.
  2. The selection is even easier, because the common distance is necessary to be calculated and the best (shortest by the distance) chromosomes should be taken to the further search.
  3. The mutation is not such a difficult task. Two random cells of a chromosome are replaced by each other.
  4. The crossover is a little bit more complex. Two random cells are taken, that defines 2 parts of rings for both chromosomes. One part from each chromosome is taken in the way where parts have minimal overlapping. Duplicated cells are removed randomly, absent cells are added randomly according to their placement in the initial chromosomes.

The C# code is based on the European cities with the distance though the geographical coordinates.

So the algorithm is ready. Is the search not most effective? But I’m very effective. The code is ready quickly, even if it takes some additional time to calculate, the whole task will be finished quicker.

Stage 2. Cloud.

The genetic algorithm is still randomized method. It guaranties almost optimal solution and depends on parameters. I can increase the population size to improve the probability of the best result, but it will increase the calculation time. Or I can run several instances simultaneously and pickup the best result.

As I write on .NET, I prefer any other working tools also in the Visual Studio. So my cloud is also in the Studio. I use a free tool EC2Studio. It’s the most convenient tool for me to operate with the Amazon EC2 in the Visual Studio. Amazon EC2 provides computing resources when I need them. I choose the necessary AMI configuration and start an instance. After I finish using the instance, I terminate it. The payment is only for the used time.

The deploying is:

  1. Launch an instance.
    1. Generate a key pair, if it is not generated yet.
    2. Find the necessary AMI (I use the following instances for competitive tests: ami-6a6f8d03 (Win2008, large, EBS), ami-a2698bcb (Win2008, small, EBS), ami-dd20c3b4 (Win2003, large), and ami-df20c3b6 (Win2003, small)).
    3. Start it.
    4. Wait until the instance becomes in running status.
  2. Make a test in the instance
    1. Get an Administrator’s password for the instance.
    2. Start a console for the instance.
    3. Copy the application there.
    4. Run it there.

Perfect! I shut down a laptop soon and go to play billiard.

The picture shows 4 cloud instances and 1 locally run version (on Vista).

The best solution is 181.85 here (it’s on the slowest machine, but the genetic algorithm is random).

There are different configurations by software and hardware are available on EC2. My tests use small and large images (small images are on 32bit, large images are on 64bit). The competitive test result - the average time per one cycle (selection, mutation, and crossing over according to defined shares):
For small Windows 2003 32bit Amazon Instance 1098 msec
For large Windows 2003 64bit Amazon Instance 594 msec
For large Windows 2008 64bit Amazon Instance 503 msec
For small Windows 2008 32bit Amazon Instance 1139 msec
For my laptop Vista 1659 msec

Taking into account 4th times prices difference between a small and large instance in EC2, a small instance is twice cheaper for this program (when the execution time is not critical).


The same day later.
By e-mails:
“Mr. Manager, the found almost most optimal variant consists of the sequence of the following points…”
“Good! But where are you?”
“I’m having a good billiard playing, as you said in the morning.”
“I understand. Have beautiful doublets! And big thanks for the result!”

Now I think almost all optimization tasks can be solved with two components: a cloud and a genetic algorithm.

Every problem leads to a good solution. Every cloud has a silver lining.

About Pavel Klimov
Pavel Klimov is a senior developer at EC2Studio who works with artificial intelligence algorithms and uses cloud computing resources for loading algorithms. EC2Studio is an innovative ISV, which creates smart, inventive and user-friendly tools for developers. EC2Studio team works on tools to help every EC2 developer working at Microsoft platform efficiently produce better software.

In order to post a comment you need to be registered and logged in.

Register | Sign-in

Reader Feedback: Page 1 of 1

Latest Cloud Developer Stories
David Friend is the co-founder and CEO of Wasabi, the hot cloud storage company that delivers fast, low-cost, and reliable cloud storage. Prior to Wasabi, David co-founded Carbonite, one of the world's leading cloud backup companies. A successful tech entrepreneur for more than 3...
Business professionals no longer wonder if they'll migrate to the cloud; it's now a matter of when. The cloud environment has proved to be a major force in transitioning to an agile business model that enables quick decisions and fast implementation that solidify customer relatio...
Machine learning has taken residence at our cities' cores and now we can finally have "smart cities." Cities are a collection of buildings made to provide the structure and safety necessary for people to function, create and survive. Buildings are a pool of ever-changing performa...
Containers and Kubernetes allow for code portability across on-premise VMs, bare metal, or multiple cloud provider environments. Yet, despite this portability promise, developers may include configuration and application definitions that constrain or even eliminate application po...
Whenever a new technology hits the high points of hype, everyone starts talking about it like it will solve all their business problems. Blockchain is one of those technologies. According to Gartner's latest report on the hype cycle of emerging technologies, blockchain has just ...
Subscribe to the World's Most Powerful Newsletters
Subscribe to Our Rss Feeds & Get Your SYS-CON News Live!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)!

Advertise on this site! Contact advertising(at)! 201 802-3021

SYS-CON Featured Whitepapers