CMAES.NET
Covariance Matrix Adaptation Evolution Strategy (CMA-ES) implementation on C#
Install / Use
/learn @yn-cloud/CMAES.NETREADME
CMAES.NET
Covariance Matrix Adaptation Evolution Strategy (CMA-ES) [1] implementation on .NET
This software is a C# implementation of CyberAgent's CMAES library.
Usage
using System;
using System.Collections.Generic;
using CMAESnet;
namespace CMAESnetExample
{
class Program
{
static void Main(string[] args)
{
double[] initial = new double[] { 0, 0 };
CMAESOptimizer cmaoptimizer = new CMAESOptimizer(TestFunctions, initial, 1.5);
cmaoptimizer.Optimize();
double[] optimizedArray = cmaoptimizer.ResultVector;
Console.WriteLine("x1={0}, x2={1}", optimizedArray[0], optimizedArray[1]);
}
private static double TestFunctions(IList<double> x)
{
return Math.Pow(x[0] - 3, 2) + Math.Pow(10 * (x[1] + 2), 2);
}
}
}
Requirements
- .Net Standard 2.0 or higher
- Math.Net Numerics 4.11.0 or higher
Link
Other libraries
I respect all libraries involved in CMA-ES.
- pycma: Most famous CMA-ES implementation by Nikolaus Hansen.
- libcmaes: Multithreaded C++11 library with Python bindings.
- cma-es: A Tensorflow v2 implementation
- CMA-ES: Lightweight Covariance Matrix Adaptation Evolution Strategy (CMA-ES) implementation.
