Jump to content

  • Log In with Google      Sign In   
  • Create Account


Member Since 27 Feb 2011
Offline Last Active Feb 23 2015 03:24 PM

Posts I've Made

In Topic: MCTS AI development for "Tammany Hall"

18 January 2015 - 11:27 PM

Thanks for posting... very insightful

In Topic: AI for chess similar games

07 November 2013 - 03:52 PM

Think about how many options you have available per move (if the board is almost infiinite - then potentially you have almost an infinite amount of options), can those options be limited in some manner - are only a subset of them reasonable to inspect.  If you can answer those questions it may lead you closer to an answer on how to solve it.  For instance an almost infinite amount of viable options instantly rules out adversarial search like minimax/ab-pruning.

In Topic: [Answered] Real numbers (constants) in genetic programming

27 October 2013 - 07:38 PM

The implementation that I used for genetic programming was representing the program as a tree.  Each node in the the tree had an INode interface with a method 'Evaluate( INode[] params)'

Then I had concrete implementations of nodes for each of the different operators I wanted to represent







and so on...


I also had a literal operator which just returned a bounded value which was generated randomly at instantiation of the tree (through initial creation or mutation)

so at runtime I would create a concrete class through c# IL  e.g.


class literal5 : INode


     INode Execute(INode[] params)


            return 5.0;




hope that helps

In Topic: Need AI Help dealing with trends in Random Numbers

13 October 2013 - 04:59 PM

using System;
using System.Collections.Generic;
using System.Threading;

public class ColumnPick
    private static readonly Dictionary<int, int> NumberCount = new Dictionary<int, int>();

    public enum Face { Zero = 0, One = 1, Two, Three, Four, Five, Six, Seven, Eight, Nine };

    public static void Main()
        for (int i = 0; i < 10; i++)
            NumberCount[i] = 0;

        const int maxIndex = 15000;
        var rand = new Random();
        int oldHighest = 0;
        for (int i = 0; i < maxIndex; i++)
            int next = rand.Next(0, 10);

            for (int j = 0; j < 10; j++)
                Console.WriteLine("{0}: {1}", Enum.GetName(typeof(Face), j), NumberCount[j]);

            if (NumberCount[next] > oldHighest)
                oldHighest = NumberCount[next];
        Console.Write("Press any key to continue...");

I've simplified the code. Now to find the top x%, just sort the dictionary and take the top x% x 10 number of buckets.

In Topic: Latest trends in procedural quest generation

26 September 2013 - 04:37 PM

There are a few articles here that might be of interest. http://www.gamesbyangelina.org/  Maybe the Jul 20 one?