Comments
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
SYS-CON.TV
Cloud Expo & Virtualization 2009 East
PLATINUM SPONSORS:
IBM
Smarter Business Solutions Through Dynamic Infrastructure
IBM
Smarter Insights: How the CIO Becomes a Hero Again
Microsoft
Windows Azure
GOLD SPONSORS:
Appsense
Why VDI?
CA
Maximizing the Business Value of Virtualization in Enterprise and Cloud Computing Environments
ExactTarget
Messaging in the Cloud - Email, SMS and Voice
Freedom OSS
Stairway to the Cloud
Sun
Sun's Incubation Platform: Helping Startups Serve the Enterprise
POWER PANELS:
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
In his session at 21st Cloud Expo, Raju Shreewastava, founder of Big Data Trunk, provided a fun and simple way to introduce Machine Leaning to anyone and everyone. He solved a machine learning problem and demonstrated an easy way to be able to do machine learning without even cod...
The past few years have brought a sea change in the way applications are architected, developed, and consumed—increasing both the complexity of testing and the business impact of software failures. How can software testing professionals keep pace with modern application delivery,...
A strange thing is happening along the way to the Internet of Things, namely far too many devices to work with and manage. It has become clear that we'll need much higher efficiency user experiences that can allow us to more easily and scalably work with the thousands of devices ...
Cloud Expo | DXWorld Expo have announced the conference tracks for Cloud Expo 2018. Cloud Expo will be held June 5-7, 2018, at the Javits Center in New York City, and November 6-8, 2018, at the Santa Clara Convention Center, Santa Clara, CA. Digital Transformation (DX) is a major...
"WineSOFT is a software company making proxy server software, which is widely used in the telecommunication industry or the content delivery networks or e-commerce," explained Jonathan Ahn, COO of WineSOFT, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 201...
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 News.com Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)sys-con.com!

Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021



SYS-CON Featured Whitepapers
ADS BY GOOGLE