Das ist sicherlich möglich.
Wenn du deine "Stellglieder" mit einem Antrieb versiehst.
Oder (Koax)Relais verwendest.
Und nein, ich wüsste nicht, dass das schon mal jemand gemacht hat.
Aber das heißt ja auch Programmieren!
Was noch nicht gibt, wird gebaut.
Du möchtest also irgendeine Sorte von Optimum finden..
Richtig?
Ha hilfts nix, da wirst du irgendeine Form einer Bewertungsfunktion bauen müssen.
Automatisch an deinen Stellgliedern rum drehen dürfen, und immer schauen, welche Stellung besser ist.
Schlussendlich:
Du wirst dein Intelligenz/Verhalten/Wissen formalisieren dürfen und dieses dann in C++ gießen.
Von Start, bis Optimum gefunden, hat es Ähnlichkeiten mit einem Regler.
z.B ähnlich mit "PID Regler"
Für das Grundgerüst bieten sich "Endliche Automaten" oder "Schrittketten" an