Quote Originally Posted by razzle View Post
Why don't you write it in MOPEKS instead?
In 20 years that may be possible! MOPEKS works by finding a program that fits the data so here is some data

1, 1
9, 3
144, 12

Clearly, this is square roots and here is the program that MOPEKS came up with this morning from that data
Code:
double _stdcall SquareRoots(double R){
  // Problem Description: '02    Square Roots'
  // Generated by MOPEKS at 9.35 am on Tuesday 5th August 2014

  // Initialise variables at zero
  double ax = 0;
  double bx = 0;
  double cx = 0;
  double dx = 0;

  //                                                  64 bits in Hex    1   2      3   4    5      6    7      8     9       10       11
  //                                                                 Type LHS   EPrp Opr RHS1  Prop1 RHS2  Prop2  Goto   Method    Steps

  Line1: ax = 3 - R;                           // &H9208B5C4187A8CBC    4   0      1   1    5     14    4      3     3       40       94  
  Line2: cx = R / ax;                          // &H18DBB330669188DB    0   2     27   3    4     25    0     12     4       24      109  
  Line3: ax = cx + ax;                         // &H1000080048200002    0   0      0   0    2      0    0      9     1        0        1  
  Line4: ax = ax / 2;                          // &H9009A0A7443D179E    4   0      1   3    0      5    7      8     1       81       79  
  Line5: if(cx < R / ax)goto line2;            // &H5937F1B01820D033    2   2      6   3    4     13    0      3     1       13       25  

  out: return ax;
}
It can then go on to build a whole stack of programs using each program it has generated so far until you get something like:

Code:
Private Function R_Orbts_S_AntCl(ByVal R As Long, ByVal S As Long)
Dim ax As Double, bx As Double, cx As Double, dx As Double

1:  ax = AnglSbtnddBy2Ob(S, R)
2:  bx = 1 - 1
3:  bx = ax + bx                    'bx is the relevant angle to use so far ...
4:  cx = DistBtwn2Objcts(R, S)
5:  cx = R.Speed / cx
6:  cx = cx / 2
7:  cx = ATan(cx)                   'cx is the angle correction (to allow for triangle)
8:  bx = bx - cx                    'bx is the relevant angle to use!
9:  dx = Return180()
10: bx = bx + dx
11: ax = Cos(bx)
12: ax = R.Speed * ax
13: ax = ax + R.XAxis
14: ax ==> NextStep(R.XAxis)
15: ax = Sin(bx)
16: ax = R.Speed * ax
17: ax = R.YAxis - ax
18: ax ==> NextStep(R.YAxis)
End Function
I believe this is the correct route to artificial intelligence ... as a friend of mine remarked "if you are right, this is the most significant thing since the origin of life 4 billion years ago". So, no pressure

Quote Originally Posted by razzle View Post
Just kidding but if it's MOPEKS we're dealing with here than it's most likely a combinatorial problem
Well, the programs evolve in a breeding pool and this is classic Genetic programming. Where I have extended it is the programs using each other and attach themselves to objects which interact in an environment - if you want to see more see the website. Bear in mind this is fully operational, you can download and install a fully working version for free - this is not about making money, it is about promoting an idea.

Once I have got the .net versions working the next step is a camera trained on an interactive situation (eg a billiard table) and it will derive programs that have predictive power ie which ball will go where and the ideal angle etc

Quote Originally Posted by razzle View Post
Furthermore for a project like MOPEKS I don't think .NET is the optimal platform because it's not portable. I think you should seriously consider Java or a native C++ with Qt combination. It will work on many platforms including Windows too so why limit yourself to Windows only?
A bit late now - this has got 35,000 lines of code written by me and has taken me almost 20 years so I am stuck with what I have!

Quote Originally Posted by razzle View Post
So don't just port. First come up with a feasible solution and then make a proper new design based on your experience with the old program. Otherwise the project is doomed. Good luck.
Well, maybe if others think the basic principles have merit but if I am the sole person working on it that will not happen - I will die of old age first!