| By Derek Ferguson | Article Rating: |
|
| September 16, 2008 12:48 PM EDT | Reads: |
2,188 |
At the end of my previous article (DNDJ, Vol. 6, issue 4), I explained the theory behind the two major technologies to be used in timing the market. On the one hand, we are dealing with distributed computing - a process whereby large computationally intensive tasks can be broken up and shared among multiple computers in order to be processed in a shorter amount of time. On the other hand, genetic programming gives us a mechanism for solving the most complicated of problems by "evolving" a solution through the random creation of multiple candidate solutions and the gradual selection of the ones that look most promising.
In this article - the second of this two-part series - we are going to dive into the code behind our solution. First, we'll look at the genetic programming implementation - and see how the artificial intelligence principles that govern this approach can be most readily applied to picking the best stocks in which to invest a fixed amount of money. We'll see what kinds of data these algorithms will require to make their decisions, and we'll see how to evaluate the potential solutions after they've made their decisions.
In the second half of this article we'll turn our attention to the "grid-ification" of our genetic programming solution. A key concern with any such operation is the proper decomposition of a software application into the client application that is intended to run on a single centralized system, and the pieces that are intended to be distributed among multiple machines to perform the actual work of the solution. We'll take a look at the way our solution is constructed, as well as some key challenges that had to be overcome in its creation.
The Genetic Algorithm
The essential framework for the genetic portion of our solution was provided by Brian Connolly in his article "Survival of the Fittest: Natural Selection with Windows Forms". In this article, Brian shows how .NET's Codegen facilities - a set of classes that allow .NET applications to generate new .NET code at runtime - can be leveraged to produce automated "ants" that can, over the course of multiple generations, become increasingly good at gathering pieces of food dropped on a theoretical grid.
Since you can read all about the basics of genetic programming with .NET in this article, we won't go into much more depth about this technology here. There are also three classes provided in this article that we were able to use without modification (see Table 1).
Published September 16, 2008 Reads 2,188
Copyright © 2008 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
More Stories By Derek Ferguson
Derek Ferguson, founding editor and editor-in-chief of .Net Developer's Journal, is a noted technology expert and former Microsoft MVP.
- Kindle 2 vs Nook
- Practical Approaches for Optimizing Website Performance
- SQL Anywhere Server and AJAX
- PowerBuilder Top Feature Picks
- The Difference Between Web Hosting and Cloud Computing
- PowerBuilder 12 and .NET
- Contrary Opinion: Why Silverlight is Good for Adobe
- Ajax in RichFaces 3.3, JSF 2 and RichFaces 4
- Wave on Ulitzer: Confessions of a Google Wave Fanboy
- Cloud Computing Best Practices
- AJAX World RIA Conference & Expo Kicks Off in New York City
- Rich Content Rotator for ASP.NET
- RIAs for Web 3.0 Using the Microsoft Platform
- Kindle 2 vs Nook
- Practical Approaches for Optimizing Website Performance
- Social Media Terrorists
- SQL Anywhere Server and AJAX
- SYS-CON's Cloud Expo Adds Two New Tracks
- PowerBuilder Top Feature Picks
- The Difference Between Web Hosting and Cloud Computing
- Google Maps and ASP.NET
- Crystal Reports XI & How It Has Changed
- Converting VB6 to VB.NET, Part I
- Creating Controls for.NET Compact Framework in Visual Studio 2005
- Where Are RIA Technologies Headed in 2008?
- How to Write High-Performance C# Code
- AJAX World RIA Conference & Expo Kicks Off in New York City
- Implementing Tab Navigation with ASP.NET 2.0
- i-Technology Photo Exclusive: Bill Gates & Steve Jobs In "Nerds"
- .NET Archives: Getting Reacquainted with the Father of C#




































