|
Take a look at www.clickatell.com
I'm extremely happy with their service, prica and API.
|
|
|
|
|
An evolutionary computing framework is one that facilitates the principles of evolution for solving problems. The main players are:
IEnvironment - The interface that defines the environment of the problem. The environment is responsible for defining the viability of individuals.
IPopulation is a type safe collection class with additional methods for querying the population as a whole (such as the average viability and viability spread etc.) and affecting it (culling).
IIndividual is a single individual that represents a possible solution in the problem. An individual has a set of genes that define it's solution to the problem space and individuals may breed which will result in offspring with genes selected at random from each parent.
IGene represents a parameter that affects a part of the solution.
For example, suppose we have a chess board with a game in play and want to select the best next move. Our class that inherits IEnvironment needs to supply a method that returns the viability of an individual - i.e. how sensible a move is.
Genes are created that specify which piece to move and which of it's possible end positions to chose. The population is seeded with a random set of individuals with a random mix of these genes.
The population is allowed to breed and then the bottom half are culled. This process is repeated a number of times until the population has a zero (or prechosen very low) viability spread. An individual in this population fits our best move.
The power of this framework is that it can be mapped to a huge range of problems by setting the environment and genes and the same underlying processes can be used to solve these problems.
Anyway - that is where I have got to. Any thoughts?
'--8<------------------------
Ex Datis:
Duncan Jones
Merrion Computing Ltd
|
|
|
|
|
very interesting. i am considering doing a thesis on neural networks and genetic algorithms for gradual degradation of RAID systems (redundant arrays of inexpensive devices (generic things rather than just HDDs)). this type of concept seems in line with my initial thoughts, although i was considering the inputs as sensory stimulii and applying learning features to the neural paths and thinking more micro-ecology rather than macro like your approach. what would be even more slick would be to take neural-network systems and link them toghether to form the IGene, or pseudo-DNA. then work up to the higher levels. hmmm....
- Nitron
"Those that say a task is impossible shouldn't interrupt the ones who are doing it." - Chinese Proverb
|
|
|
|
|
The article/framework is going to be based on the stuff in Richard Dawkins' books The Selfish Gene and The Blind Watchmaker - and there's a heap of material at EvoWeb that might be of interest.
'--8<------------------------
Ex Datis:
Duncan Jones
Merrion Computing Ltd
|
|
|
|
|
Som,e outline code:-
<br />
Public MustInherit Class IEnvironment<br />
<br />
Public MustOverride Function GetPopulation() As IPopulation<br />
<br />
End Class<br />
<br />
'\\ --[IGenome]----------------------------------------------------------------------------<br />
'\\ The genome defines the number of genes a member of a population has and their explicit <br />
'\\ locations. These locations have an explicit meaning in relation to the problem being <br />
'\\ tested by the environment and are not interchangeable<br />
'\\ ----------------------------------------------------------------------------------------<br />
Public MustInherit Class IGenome<br />
Inherits System.Collections.DictionaryBase<br />
<br />
Public <br />
End Class<br />
<br />
<br />
'\\ --[Individuals]-------------------------------------------------------------------------<br />
'\\ A collection of IGenome based objects<br />
'\\ ----------------------------------------------------------------------------------------<br />
Public Class Individuals<br />
Inherits System.Collections.CollectionBase<br />
<br />
End Class<br />
#End Region<br />
<br />
'\\ --[IPopulation]------------------------------------------------------------------------<br />
'\\ The population represents a set of potential solutions to the problem. It can be <br />
'\\ created from a randomly generated, or seeded by a predefined set, of individuals.<br />
'\\ ----------------------------------------------------------------------------------------<br />
Public MustInherit Class IPopulation<br />
Inherits System.Collections.CollectionBase<br />
<br />
Public MustOverride Function Breed(ByVal Parents As Individuals) As IGenome<br />
<br />
#Region "Public constructors"<br />
Public Sub New()<br />
<br />
End Sub<br />
<br />
Public Sub New(ByVal Seedgroup As Individuals)<br />
<br />
End Sub<br />
#End Region<br />
End Class<br />
'\\ --[IGene]-------------------------------------------------------------------------------<br />
'\\ The gene holds the current value for an individual variable that is used to compute the <br />
'\\ gene set's fitness to solve the environment's problem<br />
'\\ ----------------------------------------------------------------------------------------<br />
Public MustInherit Class IGene<br />
<br />
Public MustOverride Property Name() As String<br />
<br />
Public MustOverride Property Value() As Integer<br />
<br />
Public MustOverride Property MinimumValue() As Integer<br />
<br />
Public MustOverride Property MaximumValue() As Integer<br />
<br />
End Class<br />
However, I'm not sure that MinimumVale and MaximumValue should be specified by the IGene implementor or be a factor of the environment? I'd be happier with the latter as it seems to fit better with biological evolution but it isn't as easy to implement...thoughts?
'--8<------------------------
Ex Datis:
Duncan Jones
Merrion Computing Ltd
|
|
|
|
|
It might seem odd, but I'd really like a primer on how a loner like myself can make money out of a webapp.
I can't work it out, so I can't explain it to my accountant.
Regardz
Colin J Davies
Sonork ID 100.9197:Colin
Warning Link to the minion's animation, do not use.
It's a real shame that people as stupid as you can work out how to use a computer. said by Christian Graus in the Soapbox
|
|
|
|
|
|
I'm writing a tutorial on creating Word2000 addins using VC++/ATL. In it I'm also discussing the VBA side of Word. It is almost written though I have to edit it a bit.
Anyone else here planning to write something similar, let me know.
Hush,hush...
thought I heard you call my name now.
Kula Shaker.
Amit Dey
Latest articles at CP - PocketPC New menu
Office addin
|
|
|
|
|
I've been writing Word Addin's for the past 2 years. Send me the article when it's ready and I'll review it.
Cheers,
-Erik
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
My thoughts are my own and reflect on no other.
|
|
|
|
|
Hi,
Sorry! I should have probably posted earlier that my article has been published here.
But let me also ask you this. How do I create an Outlook's New button style'd button? If you notice, clicking on the button performs an action while clicking on the downward arrow displays a menu. I cannot ever create a CommandBarControl without styles = 10(popup) or 2(button). It looks like there are two buttons wedged together, and that makes sense. One is a CommandBarButton while the other is a CommandBarPopup that are very close to each other. I can get a 'separator' with setting BeginGroup property and handling each objects click event would make it possible to do 2 different things. But visually I can never quite get it cool enough.
Hush,hush...
thought I heard you call my name now.
Kula Shaker.
Amit Dey
Latest articles at CP - PocketPC New menu
Office addin
|
|
|
|
|
Hi...
Can somebody write a convertor from C++ headers to C#...
I mean convertion of fucntion declaration:
example:
in c++ in header structs and functions look like:
<br />
typedef struct tagCREATESTRUCTA {<br />
LPVOID lpCreateParams;<br />
HINSTANCE hInstance;<br />
HMENU hMenu;<br />
HWND hwndParent;<br />
int cy;<br />
int cx;<br />
int y;<br />
int x;<br />
LONG style;<br />
LPCSTR lpszName;<br />
LPCSTR lpszClass;<br />
DWORD dwExStyle;<br />
} CREATESTRUCTA, *LPCREATESTRUCTA;<br />
<br />
WINGDIAPI int WINAPI GetDIBits( IN HDC, IN HBITMAP, IN UINT, IN UINT, OUT LPVOID, IN OUT LPBITMAPINFO, IN UINT);<br />
in c#
<br />
[StructLayout(LayoutKind.Sequential)]<br />
public struct CREATESTRUCT<br />
{<br />
IntPtr lpCreateParams; <br />
IntPtr hInstance; <br />
IntPtr hMenu; <br />
IntPtr hwndParent; <br />
int cy; <br />
int cx; <br />
int y; <br />
int x; <br />
Int32 style; <br />
string lpszName; <br />
string lpszClass; <br />
UInt32 dwExStyle; <br />
}<br />
<br />
[DllImport("gdi32")]<br />
public static extern int GetDIBits(IntPtr hDC, IntPtr hbm, int StartScan, int ScanLines, int lpBits, BITMAPINFOHEADER bmi, int usage);<br />
Languages is simmilar enough and conversion can be done by simple words replace and strings movements
Good Luck
Alex Kucherenko
|
|
|
|
|
All WIN32 structures are already converted in this file : WIN32API.txt ( vc7installdir \ Common7 \ Tools \ Bin ).
It's not using the C# syntax, but that's pretty close.
If you are having problems with P/Invoke, consider using MC++ mix mode.
|
|
|
|
|
good, but not enough
Good Luck
Alex Kucherenko
|
|
|
|
|
Is there a VB->C# translator?
|
|
|
|
|
There is a C#->VB .NET Converter[^] , but I don't kow of a VB->C# converter.
I'm working on one based on the SharpDevelop[^] refactory, but it won't be done for a little while. (Long term project, not short term goal.)
"Do unto others as you would have them do unto you." - Jesus
"An eye for an eye only makes the whole world blind." - Mahatma Gandhi
|
|
|
|
|
I don't know yet if it's good or not, but a translator[^] was posted on CodeProject a few days ago.
|
|
|
|
|
I have no damn time, but what I think is a totally brilliant idea.... and I am giving it away.
A version control system that runs off of the FTP protocol.
This allows people that want to collaberate on something have to do nothing more than pay for some decent web hosting space that allows FTP access and get a distributed version control server.
There, now someone please write it, make millions and giv eme a copy so I can use it on a project that I am working on rigth now!
I hate the GotDotNet workspaces!
Paul Watson wrote:
"At the end of the day it is what you produce that counts, not how many doctorates you have on the wall."
George Carlin wrote:
"Don't sweat the petty things, and don't pet the sweaty things."
Unknown wrote:
"I love long walks, especialy taken by those that annoy me."
Paraphrased from TMNT:
"Cricket? You have to know what a crumpet is to understand Cricket."
|
|
|
|
|
Something similar is in the works, and will be a killer solution when it is finished. It's called subversion, and uses WebDAV. It's meant to be a CVS replacement. It's currently in Alpha, and I'm really looking forward to when they finally release it. Check out http://subversion.tigris.org
--Jerry
|
|
|
|
|
I used a program called ReGet which altered the popup menues on Internet Explorer. I'd like to do this. Can anyone point me in the right direction. I'm completely new to windows and don't have a clue where to start looking
|
|
|
|
|
Refer to articles wrote by Michael Dunn about Shell Extension.
Here is the link[^] of index.
A. Riazi
|
|
|
|
|
|
I know I've references to articles on how to go about blocking popup ads in WebBrowsers in the past. Today I've been searching and can't find them. Anyone know where I might look?
|
|
|
|
|
|
Man, I guess my searching skills are poor this morning. Or maybe the searching technology on CodeProject is a bit lean? Not quite up to google standards.
Anyway, thanks a bunch. Just what I remember seeing in the past.
-Brett-
|
|
|
|
|
Use http://www.google.com/advanced_search?hl=en and set the domain to codeproject.com.
I love CP but the search engine is severly lacking.
Todd Smith
|
|
|
|