In the realm of manufacturing, sand casting remains a foundational process, particularly for single-piece and small-batch production, which constitutes a significant portion of the foundry industry. As a researcher deeply involved in industrial optimization, I have observed that many sand casting enterprises relying on manual experience for melting and pouring charge planning face substantial challenges. These include suboptimal furnace charge plans, low scheduling efficiency, and underutilization of melting furnace capacity, all of which hinder operational growth. In this article, I will elaborate on our comprehensive research aimed at addressing these issues through mathematical modeling, advanced algorithmic solutions, and practical system implementation specifically tailored for sand casting environments. Our work focuses on developing an intelligent charge plan system that leverages computational intelligence to enhance decision-making in sand casting production.
The core of our approach lies in constructing a robust charge plan model that encapsulates the unique constraints and objectives of sand casting operations. For single-piece and small-batch sand casting, the melting and pouring charge plan must account for multiple factors such as delivery deadlines, customer credibility, and production loads, all while ensuring efficient furnace utilization. In the following sections, I will detail the priority model we developed, the mathematical formulation of the charge plan problem, the innovative algorithm we designed for solution, and the real-world application of our system. Throughout, I will emphasize the relevance to sand casting by frequently referencing the process and its specific requirements. Our goal is to provide a scalable framework that can be adapted by various sand casting enterprises to improve their planning efficiency and resource usage.

To begin, let us consider the priority model for casting pieces in sand casting charge planning. In sand casting production, especially for single-piece and small-batch orders, determining which castings to include in a furnace charge is critical. We identified three key indicators: delivery date, customer credit level, and production load. Each of these factors influences the priority of a casting piece, and we quantified them to integrate into our model. For delivery date, we normalize the time to deadline using the formula:
$$P_{id} = \frac{\max(d) – d_i}{\max(d) – \min(d)}$$
where \(d_i\) is the number of days until the delivery deadline for casting \(i\), and \(\max(d)\) and \(\min(d)\) are the maximum and minimum values among all castings awaiting planning. This yields a priority value \(P_{id}\) between 0 and 1, with higher values indicating more urgent castings in sand casting schedules.
For customer credit level, which is often qualitatively described in sand casting enterprises, we applied fuzzy evaluation theory to convert it into a quantitative measure. We defined membership functions for credit grades A through E, and then used the centroid method to obtain precise values. The resulting credit priority \(P_{ix}\) is summarized in Table 1.
| Credit Grade | Fuzzy Interval | Precise Value \(P_{ix}\) |
|---|---|---|
| A | [0.8, 1] | 14/15 |
| B | [0.6, 0.8] | 11/15 |
| C | [0.4, 0.6] | 8/15 |
| D | [0.2, 0.4] | 1/3 |
| E | [0, 0.2] | 2/15 |
Higher \(P_{ix}\) values correspond to higher-priority customers in sand casting operations, ensuring that their orders are prioritized during charge planning.
The production load factor addresses mold constraints in sand casting, where the number of castings that can be produced per day is limited by mold capacity. We define the production load \(t_i\) for casting \(i\) as:
$$t_i = \text{ceil}\left(\frac{U_i}{b_i}\right)$$
where \(U_i\) is the quantity of casting \(i\) awaiting planning, and \(b_i\) is the maximum number of castings of type \(i\) that can be molded per day per mold in sand casting. This load is normalized to obtain \(P_{it}\):
$$P_{it} = \frac{t_i – \min(t)}{\max(t) – \min(t)}$$
where \(\max(t)\) and \(\min(t)\) are the maximum and minimum production loads across all castings. A higher \(P_{it}\) indicates a casting with a larger production burden, warranting higher priority in sand casting charge plans.
Combining these three factors, the overall priority \(P_i\) for casting \(i\) in sand casting is calculated as a weighted sum:
$$P_i = w_1 P_{id} + w_2 P_{ix} + w_3 P_{it}$$
where \(w_1\), \(w_2\), and \(w_3\) are weights that sum to 1, reflecting the relative importance of each factor in sand casting enterprises. These weights can be adjusted based on expert input or changing business needs, allowing flexibility in prioritizing sand casting orders.
With the priority model established, we formulate the melting and pouring charge plan problem for sand casting as an integer programming model. The objective is to maximize the weighted melting weight per day, considering both priority and furnace capacity utilization. Let \(m_i\) be the rough weight of casting \(i\), and \(x_{il}\) be the number of casting \(i\) assigned to charge \(l\). The objective function is:
$$\max \sum_{l=1}^{L} \sum_{i=1}^{N} P_i \cdot m_i \cdot x_{il}$$
where \(L\) is the number of charges per day, and \(N\) is the number of casting types in sand casting. This function aims to optimize both the selection of high-priority castings and the efficient use of furnace capacity in sand casting.
The model is subject to several constraints inherent to sand casting production. First, each charge must not exceed the furnace capacity, and all castings in a charge must share the same alloy material. This is expressed as:
$$\sum_{i \in S(k)} m_i x_{il} \leq \text{cap} \cdot Y_{lk}, \quad k = 1, \ldots, K$$
where \(S(k)\) is the set of castings belonging to material type \(k\), cap is the furnace capacity, and \(Y_{lk}\) is a binary variable indicating whether charge \(l\) uses material \(k\). Second, each charge must have exactly one material type:
$$\sum_{k=1}^{K} Y_{lk} = 1, \quad l = 1, \ldots, L$$
Third, sand box availability constraints must be respected in sand casting, as the number of sand boxes of each specification limits production:
$$\sum_{l=1}^{L} \sum_{w=1}^{N} a_{iw} x_{il} \leq C_w, \quad w = 1, \ldots, W$$
where \(a_{iw}\) indicates the sand box type usage, and \(C_w\) is the available count. Fourth, mold constraints limit daily production quantities:
$$\sum_{l=1}^{L} x_{il} \leq b_i, \quad i = 1, \ldots, N$$
Fifth, the total planned castings cannot exceed the awaiting quantities:
$$\sum_{l=1}^{L} x_{il} \leq U_i, \quad i = 1, \ldots, N$$
Finally, the material selection variables are binary:
$$Y_{lk} \in \{0, 1\}, \quad l = 1, \ldots, L, \quad k = 1, \ldots, K$$
This mathematical model captures the essence of charge planning in sand casting, balancing multiple operational constraints.
To solve this complex integer programming problem efficiently for sand casting scenarios, we developed an improved binary bat algorithm (IBBA). The bat algorithm is a swarm intelligence metaheuristic inspired by echolocation behavior, and we adapted it for binary search spaces to handle the discrete nature of charge planning. Our IBBA incorporates several enhancements to improve convergence and solution quality in sand casting applications.
In IBBA, each solution is represented as a binary string of length \(N\), where each bit corresponds to whether a casting is included in a charge. For a given material family, we optimize the charge composition. The population initialization uses a probability vector \(P = (0.5, \ldots, 0.5)\) to ensure uniform exploration of the search space for sand casting problems.
We introduce a state vector to facilitate global and local searches in binary space. The state vector \(L(t)\) at iteration \(t\) is defined as:
$$L(t) = \{l_1(t), l_2(t), \ldots, l_{NP}(t)\}$$
where each \(l_j(t)\) is a vector of probabilities for bits in individual \(j\), and NP is the population size. The population update based on the state vector is:
$$x_j^i(t) = \begin{cases} 1, & \text{if rand} > l_j^i(t) \\ 0, & \text{otherwise} \end{cases}$$
where rand is a random number in [0,1]. The state vector is updated during global search using:
$$l_{\text{global}}(t) = \beta_1 x^*(t) + \beta_2 (1 – x^*(t))$$
where \(x^*(t)\) is the best solution at iteration \(t\), and \(\beta_1\) and \(\beta_2\) are control constants with \(\beta_1 + \beta_2 = 1\). Then, for each individual \(j\):
$$l_j(t+1) = (1 – f_j) l_j(t) + f_j l_{\text{global}}(t)$$
Here, \(f_j\) is the frequency parameter for individual \(j\), controlling the influence of the global best. For local search, we modify a subset of bits in an individual based on the average loudness \(\bar{A_t}\) and random selection:
$$c = \min\{N, \text{round}(N \times \bar{A_t} \times \text{rand})\}$$
Selected bit positions are updated via:
$$s_j^i = l_j^i + \text{rand} \times \bar{A_t}, \quad \text{for } i \in \text{subpositions}$$
and then the new bits are determined similarly. To enhance solution acceptance, we adopt a greedy strategy: if a new solution is better than its parent, it is accepted; otherwise, it is rejected. This prevents stagnation in sand casting optimization.
Furthermore, we hybridize IBBA with the cuckoo search (CS) algorithm by replacing a fraction \(p_a\) of poor solutions with new ones generated via logical OR operations between current solutions and the global best. This hybrid approach accelerates convergence for sand casting charge planning. The OR operation is defined in Table 2.
| Bit 1 | Bit 2 | Bit 1 OR Bit 2 |
|---|---|---|
| 1 | 1 | 1 |
| 1 | 0 | 1 |
| 0 | 1 | 1 |
| 0 | 0 | 0 |
This ensures that new solutions inherit desirable traits from both current and best solutions, improving charge plan quality in sand casting.
Based on the model and algorithm, we developed an intelligent charge plan system for sand casting enterprises. The system adopts a client-server architecture and integrates with existing enterprise resource planning (ERP) systems to ensure data consistency and real-time interaction. It consists of two main modules: the alloy material set module and the melting and pouring charge plan module. The alloy material set module allows enterprises to manage material groupings for sand casting, as similar alloys can be combined in a single charge. The charge plan module is the core, enabling automated scheduling via our IBBA-based solver.
The system interface includes areas for task details, intelligent scheduling, and charge plan visualization. Users can input constraints such as furnace capacity, sand box availability, and mold limits specific to sand casting. The system then rapidly generates optimized charge plans, typically within seconds. For example, in a sand casting enterprise with 44 material families and varying casting quantities, the system can recommend charges that maximize priority and furnace utilization. Table 3 summarizes a subset of awaiting charge plan tasks in a typical sand casting scenario.
| Alloy Material Set ID | Number of Castings | Total Net Weight (kg) | Total Rough Weight (kg) |
|---|---|---|---|
| CZJ001 | 41 | 22,448 | 35,856.2 |
| CZJ002 | 165 | 43,460 | 75,318.5 |
| CZJ003 | 41 | 10,390 | 17,519.1 |
| CZJ004 | 89 | 40,045 | 69,390.2 |
| CZJ005 | 248 | 29,601 | 55,853.7 |
| … | … | … | … |
| CZJ033 | 192 | 98,244 | 147,820.2 |
| CZJ044 | 23 | 13,809 | 19,019.5 |
Applying our system to plan four charges per day with a furnace capacity of 4,000 kg yields results as shown in Table 4. The system selects high-priority castings from material families CZJ033, CZJ001, CZJ034, and CZJ028, achieving near-full furnace utilization and prioritizing based on delivery, credit, and load factors in sand casting.
| Charge Number | Alloy Material Set ID | Total Rough Weight (kg) | Number of Castings | Computation Time (s) |
|---|---|---|---|---|
| 1 | CZJ033 | 3,990 | 8 | 2.20 |
| 2 | CZJ001 | 3,870 | 5 | 2.21 |
| 3 | CZJ034 | 3,940 | 8 | 2.19 |
| 4 | CZJ028 | 3,998 | 13 | 2.19 |
Compared to manual planning in sand casting, which often takes 6-8 minutes per charge, our system reduces scheduling time to about 2.2 seconds per charge, significantly enhancing efficiency. Moreover, the system improves furnace capacity utilization. In a real-world sand casting enterprise, we compared average pouring weights before and after system implementation. As shown in Table 5, after deploying our system, the average charge weight increased by approximately 5%, indicating better resource usage in sand casting operations.
| Period | Average Pouring Weight per Charge (kg) |
|---|---|
| Before (e.g., 2018-02 to 2019-01) | ~3,500 |
| After (e.g., 2019-02 to 2019-03) | ~3,668 |
The improvements stem from the system’s ability to optimize both priority-based selection and furnace filling, addressing key pain points in sand casting charge planning. By leveraging algorithmic intelligence, sand casting enterprises can achieve more balanced production schedules, reduce manual effort, and adapt to dynamic order changes.
In conclusion, our research presents a holistic approach to melting and pouring charge plan optimization for single-piece and small-batch sand casting enterprises. We developed a priority model that quantifies delivery, credit, and load factors, and formulated a mathematical model with constraints specific to sand casting. The improved binary bat algorithm, enhanced with state vectors and hybrid strategies, provides efficient solutions to this NP-hard problem. The implemented intelligent system demonstrates tangible benefits in real sand casting applications, including better charge plans, faster scheduling, and higher furnace utilization. Future work may extend this framework to multi-day planning, incorporate real-time production data, or adapt to other casting processes, but the core principles remain anchored in the unique demands of sand casting. Through this work, we aim to contribute to the digital transformation of sand casting industries, enabling them to thrive in competitive manufacturing landscapes.
