Optimization Strategies for System Architecting Problems