Surrogate-based optimization of system architectures subject to hidden constraints