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
Every organization is facing their own Digital Transformation as they attempt to stay ahead of the competition, or worse, just keep up. Each new opportunity, whether embracing machine learning, IoT, or a cloud migration, seems to bring new development, deployment, and management ...
On-premise or off, you have powerful tools available to maximize the value of your infrastructure and you demand more visibility and operational control. Fortunately, data center management tools keep a vigil on memory contestation, power, thermal consumption, server health, and ...
"Calligo is a cloud service provider with data privacy at the heart of what we do. We are a typical Infrastructure as a Service cloud provider but it's been designed around data privacy," explained Julian Box, CEO and co-founder of Calligo, in this interview at 21st Cl...
Isomorphic Software is the global leader in high-end, web-based business applications. We develop, market, and support the SmartClient & Smart GWT HTML5/Ajax platform, combining the productivity and performance of traditional desktop software with the simplicity and reach of the ...
While a hybrid cloud can ease that transition, designing and deploy that hybrid cloud still offers challenges for organizations concerned about lack of available cloud skillsets within their organization. Managed service providers offer a unique opportunity to fill those gaps and...
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