Finding an optimal steering configuration

I’m working on a game in which the player can build it’s own spaceship. The handling of the spaceship is determined by the shape of the ship and the positioning of the thrusters as the game adheres to 2D physics.

Now I need some algorithm to find which configuration of thrusters to use for going forward, turn left/right etc. I was hoping someone could review my ideas on it, or maybe come up with a better idea.

Currently I’m defining the result of a configuration in three variables: forward, right, rotation. In a 0 rotation state the ship will be facing up, so I can define the variables.

forward: -thruster.y
right: thruster.x
torque= force perpendicular to the center of mass (projection of the thruster vector on the lefthand normal of the vector between the thruster and center of mass)

My current idea is to let the algorithm loop through all the unused thrusters and check if they add to the desired outcome of the configuration.

Now say I’m trying to find the forward configuration. The first thruster provides forward thrust, so I’ll move it from the unused to the used list. This thruster also generates some torque however. The second thruster provides a small backward thrust, but it reduces the torque of the configuration, which makes it’s net result positive, so it is added to the list. I do this until I reach the end of the unused list.

Since there are several solutions which are somewhat dependent on the order of the list, I throw a few random thrusters out of the used list and do another pass. After an X number of passes the configuration should stabilize (as the algorithm readds the same thrusters to the used list with every mutation). There are however a few extreme situations in which the algorithm will probably never stabilize, resulting in a different configuration every play.

So, what do you guys think of this solution?