## 3 Single Objective Modeling and Solving
### Algorithm Design  
The decision variables of the problem are development time and investment amount. The unit of development time is usually years. The unit of investment is usually millions or an order of magnitude higher. For easy figures, all variables take integers. We defined the solution space as \(S\), and the corresponding scale as:  
\[S=\prod_{j=1}^{n}\left(c_{Bj}^{\max}-c_{Bj}^{\min}+1\right)\times\left(t_{Bj}^ {\max}-t_{Bj}^{\min}+1\right)\geq 2^{2n} \tag{19}\]  
The scale of \(S\) increases exponentially with an increase in \(n\). The computational complexity of this problem is at least NP-hard. Therefore, using an intelligent optimization algorithm for solving this problem is reasonable. Differential Evolution (DE) is an evolutionary optimization methods proposed by [PERSON] and [PERSON] [26]. A simple mutation operation and a one-on-one competitive survival strategy reduce the complexity of a genetic operation. DE is robust and has a strong global convergence ability, suitable for solving certain optimization problems that conventional mathematical programming methods cannot solve in complex environments [27]. Given the advantages of DE and the characteristics of this model, we designed the following solving algorithm. Step 1: Initialize the population. Using decimal integers to encode all variables according to the type of decision variables is appropriate for this problem. A total of \(J\) pending weapons exist, so an individual of \(2J\) is generated. The encoding form of the individual is shown in Figure 6.  
The upper boundary for time in terms of the variable is five, whereas the lower boundary is one, which respectively indicates that the weapon is developed in the fifth or the first year. As for the investment, the upper boundary is \(c^{\max}\) and the lower boundary is \(c^{\min}\). Step 2: The fitness function and penalty function. Evolutionary algorithms have been widely used to solve optimization problems. However, when the optimization problem has many nonlinear, linear, inequality, and equality constraints, the solving process is more complex. Therefore, designing a constraint processing technology with better performance is essential. [PERSON] [28] and [PERSON] [29] conducted extensive investigations into the constraint handling techniques and classified the techniques into five classes: penalty functions, special representations and operators, repair algorithms, separation of constraints and objectives, and hybrid methods. Among these constraint handling approaches, we applied the penalty functions to address the constraints. We set the development investments, so that the planning each year that exceeded the annual budget is the penalty function. The fitness function is defined as the objective function. The smaller is the fitness value, the better is the individual. The penalty function \(f\) is:  
\[f=\sum_{H=1}^{5}\max(\sum_{j\in H}c_{B_{j}}-C_{H},0)+\sum(\max(1-st_{B_{j}},0) +\max(st_{B_{j}}-5,0)+\max(ct_{B_{j}}^{\min}-c_{B_{j}},0)+\max(c_{B_{j}}-c_{B_{ j}}^{\max},0)) \tag{20}\]  
where each part in Equation (20) denotes the extent to which the corresponding limit is exceeded. Taking the first item \(\max(\sum\limits_{j\in H}c_{B_{j}}-C_{H},0)\) as an example, when the annual investment exceeds the  
Figure 6: Variable encoding. budget, the first item is \(\sum\limits_{j\in H}c_{B_{j}}-C_{H}\). Herein, the part of the excess budget is computed as part of the penalty function. Conversely, if \(\max(\sum\limits_{j\in H}c_{B_{j}}-C_{H},0)=0\), the corresponding penalty function is 0. That is, no violation of the constraint is triggered. As for the time, \(st_{Bj}\) should take an integer between 1 and 5. If the starting time of a weapon does not meet this requirement, the excess is computed in the penalty function \(\max(1-st_{B_{j}},0)+\max(st_{B_{j}}-5,0)\). The same logic is applied to the other constraints. Step 3: Initial population evaluation. The fitness value and the degree by which each individual in the population violates the constraints are calculated.