% extenal function ; external function int randomint(int a, int b); external function int randomfloat(int a, int b); % genome definition ; gene TRectangle { int x; int y; frozen int width; frozen int height; } < evaluator : RectangleEval, % evaluator moderator init : RectangleInit; % initializer moderator chromosome TRectangles { TRectangle rectangles[20]; }; population Pop { TRectangles individuals[100]; }; algorithm GA { Pop population; }; % end of genome definitions ; % gene TRectangle evaluator moderator ; function float RectangleEval(TRectangle gene) { if ((gene.x > 255) || (gene.y > 255)) return 0; return 1; } % gene TRectangle initializer moderator ; function RectangleInit(TRectangle gene) { gene.x = random(0,255); gene.y = random(0,255); gene.width = random(0, 255-gene.x); gene.height = random(0, 255-gene.y); }