Se você parametrizar adequadamente sua peça de construção geométrica, isso é um problema de otimização de caixa preta com parâmetros contínuos e discretos.
DAKOTA http://dakota.sandia.gov/ e NOMAD http://www.gerad.ca/NOMAD/Project/Home.html são dois pacotes úteis que permitem escolher automaticamente as melhores seleções de parâmetros. (O DAKOTA possui melhor suporte a aplicativos, mas o NOMAD provavelmente possui os melhores otimizadores.)
Para variar a geometria, introduza um parâmetro discreto ou contínuo para cada controle com o qual você deseja influenciar a geometria e automatize a construção da geometria a partir da coleção de controles. Observe que os métodos sem derivativos são muito lentos em altas dimensões, portanto, mantenha o número de parâmetros razoavelmente pequeno.
Depois de terminar de explorar o espaço com um dos pacotes acima, você pode refinar a análise fazendo uma otimização mais precisa, na qual todos os parâmetros discretos e todos os parâmetros contínuos são fixados, dos quais não é possível obter uma derivada analítica. Mas você pode aumentar o número de parâmetros de forma contínua em relação aos quais pode calcular derivadas analíticas, pois um otimizador baseado em gradiente (como o IPOPT https://projects.coin-or.org/Ipopt ) pode lidar com problemas muito maiores .
Se você não souber como obter a derivada, mas a dependência for suave, considere usar um programa de diferenciação automática ou codificar seu problema contínuo no AMPL; nesse caso, a interface do solucionador cuidará das derivadas.
Para o básico sobre otimização de formas, ver, por exemplo, Haftka, RT e Grandhi, RV, otimização de formas truturais - Uma pesquisa, Computer Methods in Applied Mechanics and Engineering 57 (1986), 91-106. (Confie na descrição da modelagem; mas não use os solucionadores que recomendam, pois a tecnologia de otimização melhorou muito desde então.)