Next Article in Journal
Multi-Feature Fusion Diffusion Post-Processing for Low-Light Image Denoising
Previous Article in Journal
Study on Seismic Response of Segmented Utility Tunnels Crossing Ground Fissures
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Optimizing Heat Treatment Schedules via QUBO Formulation

Graduate School of Advanced Science and Engineering, Hiroshima University, Higashi-Hiroshima 739-8527, Japan
*
Author to whom correspondence should be addressed.
Appl. Sci. 2025, 15(16), 8847; https://doi.org/10.3390/app15168847
Submission received: 30 June 2025 / Revised: 21 July 2025 / Accepted: 5 August 2025 / Published: 11 August 2025
(This article belongs to the Section Computing and Artificial Intelligence)

Abstract

Quadratic Unconstrained Binary Optimization (QUBO) is the problem of finding binary variable assignments that minimize a given quadratic objective function. Many combinatorial optimization problems can be transformed into equivalent QUBO formulations, and significant research efforts have been devoted to developing efficient QUBO solvers. This paper presents a method for converting a real-world, industrial-scale scheduling problem arising in the heat treatment process of metal parts into an equivalent QUBO formulation. In current operations, two experienced operators manually spend about two hours each day to create a 24 h schedule for two furnaces, considering various constraints and processing priorities. We have developed a C++-based scheduling system that automatically converts this problem into a QUBO instance and solves it using QUBO++, a high-performance toolkit we have recently developed and released. The experimental results on actual scheduling instances show that QUBO++ consistently produces high-quality solutions in a short time, leveraging the computational merits of the QUBO formulation. The system reduces the labor equivalent to two hours of expert work per day, indicating that automated scheduling via QUBO++ is a promising approach for improving efficiency and accuracy in factory operations.

1. Introduction

1.1. QUBO and the Heat Treatment Scheduling

A Quadratic Unconstrained Binary Optimization (QUBO) problem is a type of combinatorial optimization problem defined by a quadratic function over binary variables. The objective is to find values of the binary variables (i.e., 0s and 1s) that minimize the value of the quadratic function.
For example, consider the following quadratic function f with three binary variables x 0 ,   x 1 ,   x 2 :
f ( x 0 ,   x 1 ,   x 2 ) = ( 2 x 0 + 3 x 1 + 4 x 2 6 ) 2 = 36 20 x 0 27 x 1 32 x 2 + 12 x 0 x 1 + 16 x 1 x 2 + 24 x 1 x 2 .
This quadratic objective function includes three linear terms and three quadratic terms. It attains its minimum value of 0 when x 0 = 1 , x 1 = 0 , and x 2 = 1 , which represents the optimal solution to the QUBO problem.
Since many optimization problems can be equivalently formulated as QUBO problems [1], numerous researchers have dedicated efforts to developing efficient methods for such formulations. These include classic problems like the Traveling Salesman Problem (TSP) [2,3], the Quadratic Assignment Problem (QAP) [4], prime factorization [5,6], various graph problems [7], and applications in image processing [8], among others. Additionally, a wide range of QUBO solvers have been developed using different hardware approaches, including GPU [9,10], FPGA [11,12], ASIC [13], and optical computing technologies such as optical fibers [14,15]. In particular, D-Wave Systems has developed quantum annealers [16], which are capable of solving QUBO problems directly. Thus, tackling combinatorial optimization problems through QUBO formulations offers a promising alternative to developing problem-specific solvers. Therefore, it is crucial to advance techniques for effectively formulating such problems as QUBO instances.
This study focuses on a scheduling problem arising in the heat treatment process of metal parts (Figure 1) at the Tsukimi Factory of Nagato Co., Ltd., located in Hiroshima, Japan. While this problem shares similarities with the Job-Shop Scheduling Problem (JSSP), it is distinct in terms of the interdependencies between batch processing and the temporal structure of available slots. In this setting, multiple furnaces operate in parallel, each processing a sequence of orders, where each order consists of a single type of metal part. These parts are heated to high temperatures—approximately 1000 °C in our case—and then cooled using fans. Each metal part is characterized by the following three attributes:
  • A group ID that categorizes the geometry of the metal part;
  • A cooling parameter that specifies the fan rotation speed for cooling;
  • A list of compatible furnaces capable of processing the part.
The scheduling process at the Tsukimi Factory of Nagato Co., Ltd. is managed using discrete time slots, with each slot corresponding to six minutes. Each order requires a fixed number of consecutive time slots, determined by the number of metal parts it contains. The objective is to assign each order to a time window within one of its compatible furnaces while satisfying a set of operational constraints.
If two consecutive orders involve the same type of metal part, they can be scheduled back-to-back without any idle time slots. However, when switching between different parts within the same group, at least one idle time slot must be inserted between them to prevent mixing or misidentification, which could compromise quality standards. Furthermore, transitions between different cooling parameters—i.e., fan rotation speeds—require between zero and four idle time slots, depending on the specific combination of source and target speeds. These transition periods are treated as idle time during which no orders can be processed.
In industrial-scale heat treatment, experienced operators typically create a 24 h daily schedule for all furnaces based on expert judgment—a task that often takes two hours each day. These operators consider factors such as order urgency, processing constraints, and, most importantly, their own intuition and heuristics, rather than explicit numerical indicators. Although order prioritization is performed implicitly through personal judgment, this experience-driven approach is time-consuming, heavily reliant on individual expertise, and lacks reproducibility.

1.2. Our Contribution

To overcome the aforementioned limitations, we address the scheduling problem inherent in the heat treatment process of metal parts using Quadratic Unconstrained Binary Optimization (QUBO). We formulate the problem as a QUBO model that incorporates all relevant constraints and propose an efficient method for generating high-quality, practically useful schedules.
We have also developed a decision support system that employs a QUBO solver to compute optimized schedules and present them to human operators. The system takes as input the list of orders for the next day, along with user-assigned priority levels, and automatically converts the problem into a QUBO formulation. If the generated schedule does not reflect the operator’s intentions, they can revise the priority levels and rerun the optimization, enabling a human-in-the-loop, iterative workflow that integrates field expertise with computational optimization.
This system is implemented using QUBO++ [17], a C++ library for formulating and solving QUBO problems. QUBO++ provides an expressive and efficient API for constructing QUBO instances programmatically and includes a lightweight solver, the Easy Solver, which is based on the positive min search algorithm [12]. This algorithm is a local search heuristic that selects a bit to flip based on the delta values of all bits, which represent the changes in the objective function. It identifies the minimum positive delta as a threshold, extracts all bits with deltas below this threshold, and randomly selects one of them to flip. This process is repeated iteratively. Unlike the well-known simulated annealing algorithm, the positive min search algorithm requires no hyperparameter tuning for temperature scheduling, which is often critical for solution quality.
In this study, we leverage QUBO++ to model and solve real-world scheduling problems in heat treatment processes and demonstrate its practical effectiveness using the Easy Solver bundled with the library. The source code of QUBO++ is publicly available (URL: https://abs2.cs.hiroshima-u.ac.jp/, accessed on 4 August 2025).

1.3. Job-Shop Scheduling Problem and Related Works

The scheduling problem addressed in this study can be considered a variant of the Job-Shop Scheduling Problem (JSSP). The classical JSSP has been extensively studied over the decades [18,19] and is typically formulated as a mixed-integer programming (MIP) model [20,21]. Numerous metaheuristic approaches have also been proposed to tackle the inherent computational complexity of JSSP, including Genetic Algorithms [22,23], simulated annealing [24,25], Tabu Search [26,27], Ant Colony Optimization [28,29], Particle Swarm Optimization [30], and Machine Learning techniques [31], among others.
Quantum annealing, originally proposed by Kadowaki and Nishimori [32] as a quantum-mechanical extension of classical simulated annealing, provides a theoretical framework for solving combinatorial optimization problems by exploiting quantum fluctuations. In particular, it is well-suited for solving Quadratic Unconstrained Binary Optimization (QUBO) problems, which offer a unified representation for a broad class of NP-hard problems. Since its introduction, QUBO-based modeling has attracted significant attention, leading to the development of various solvers—both quantum and classical. For instance, D-Wave Systems has built dedicated quantum annealers that solve QUBO problems natively, facilitating both theoretical exploration and proof-of-concept implementations.
However, in practice, the resolution and noise levels of current quantum annealers such as D-Wave Advantage 2.0 severely limit their performance. As noted in recent evaluations [10], these devices often fail to find even good approximate solutions for nontrivial problem instances, making them unsuitable for many real-world applications. Consequently, classical solvers implemented on CPUs, GPUs, or FPGAs remain the dominant and more reliable choice for solving QUBO problems at scale.
This practical shift has encouraged the formulation of JSSP and its variants as QUBO problems using solver-agnostic techniques. A key benefit of this approach lies in its development efficiency: traditional metaheuristics such as simulated annealing or Tabu Search typically require the manual design and fine-tuning of algorithmic components for each problem variant, which can be time-consuming and costly. In contrast, once a general QUBO formulation framework is established, adapting it to new instances—such as modifying objective functions or introducing additional constraints—often requires only changes to the QUBO model itself.
This flexibility makes QUBO-based modeling particularly attractive for industrial-scale scheduling problems, where complex, evolving constraints and objectives are common. Moreover, this approach facilitates rapid adaptation across a family of similar JSSP instances, avoiding the need to develop custom algorithms for each case. Whether solved using quantum annealers or classical solvers, the QUBO formulation serves as a unified abstraction that shifts development efforts from algorithm design to model construction.
Several studies have demonstrated the feasibility of applying QUBO-based methods to job-shop and flexible job-shop scheduling problems. Denkena et al. [33] formulated the classical JSSP as a binary quadratic model that captures precedence and machine-exclusivity constraints, and they solved it using conventional optimization techniques on benchmark instances. Carugno et al. [34] investigated the use of D-Wave’s quantum annealer to solve QUBO-encoded JSSP instances, employing problem relaxation and minor embedding to fit within the hardware’s connectivity limitations. Schworm et al. [35] proposed a QUBO formulation for the Flexible JSSP and demonstrated its effectiveness using quantum annealing on standard datasets, while their follow-up study [36] introduced a multi-objective formulation to optimize both makespan and workload balance via hybrid quantum-classical computation. Fu et al. [37] presented a QUBO model for the FJSSP and solved it using a coherent Ising machine (CIM), focusing solely on makespan minimization and reporting significant speedups compared to classical solvers.
While these studies confirm the general applicability of QUBO formulations to scheduling problems, they primarily target benchmark instances with simplified or standard constraints and objectives. In contrast, our work addresses real-world industrial scheduling in a heat-treatment context, involving domain-specific constraints such as thermal ramping, batch operations, and multi-furnace coordination. We introduce two objective functions directly reflecting factory needs—minimizing cost based on priority values and reducing idle time slots—and employ a scalable classical QUBO solver (QUBO++), allowing for practical deployment and easy adaptation to operational policy changes.
The remainder of this paper is organized as follows. Section 2 describes the types of metal parts and daily order data handled by the operators, along with the operational constraints of the scheduling problem. Based on these constraints, the objective function for the scheduling problem is formulated. Section 3 presents our QUBO formulation for the case of a single furnace. This formulation is then extended to handle multiple furnaces in Section 4. Section 5 reports the results of computational experiments conducted using real-world metal part data and a set of 10 daily orders. Finally, Section 6 concludes the paper.

2. Scheduling Problem Formulation for the Heat Treatment Process of Metal Parts

The primary objective of this section is to formulate the scheduling problem for the heat treatment process of metal parts. For clarity, we first consider the simplified case in which only a single furnace is available. This formulation will later be extended to handle multiple furnaces.
To aid reader understanding, we begin by defining several key terms in the context of the heat treatment process at the Tsukimi Factory of Nagato Co., Ltd.:
  • Furnaces. The factory is equipped with multiple furnaces used for the heat treatment of metal parts. Time is discretized into 6-min slots, and each slot operates under a specific cooling parameter—one of these values: 0, 5, 8, 10, 15, 20, 30, 40, 50, or 60—which determines the required fan rotation speed during that slot.
  • Orders. Each order, placed by a customer company, corresponds to a specific type of metal part and specifies the quantity to be processed. The number of consecutive time slots required for an order is proportional to the specified quantity.
  • Parts. Each metal part belongs to a particular group, categorized according to its geometry, and is associated with a single cooling parameter.
  • Idle time slots for cooling. When switching from one cooling parameter to another between consecutive orders, a specific number of idle time slots is required, depending on the pair of cooling parameters involved. These values are summarized in Table 1.
When two orders are processed consecutively, the number of required idle time slots between such orders depends on the characteristics of their associated parts, according to the following rules:
Rule 1
No idle time slot is required if the two (consecutive) orders involve the same metal part.
Rule 2
If the two parts are different, the required number of adjustment time slots is determined by Table 1, based on the current and subsequent cooling parameters.
Rule 3
Even if the adjustment time is zero, at least one idle time slot is required if the two parts are different but belong to the same group.
Experienced operators at the Tsukimi Factory of Nagato Co., Ltd. currently create heat treatment process schedules for the following day on the preceding day. They implicitly prioritize orders based on their importance and urgency while also attempting to minimize idle time. To formalize this decision-making process, we assign a priority value to each order, with higher values indicating greater urgency and/or importance. Orders with higher priority are intended to be scheduled earlier in the day. To reflect this, we define a cost function over time slots, where the cost increases when a high-priority order is scheduled at a later time. It is important to note that the cost defined here is not a real cost but an artificial objective value introduced to help derive a desirable schedule.
Based on these considerations—priority and idle time—we define the following two objective functions:
  • Total cost. Each time slot is associated with a cost, defined as the product of the slot number and the priority of the order assigned to that slot. The total cost is the sum of the costs across all scheduled time slots. Idle time slots are excluded from this calculation, as they are separately accounted for in the total idle time slots defined below.
  • Total idle time slots. The total number of idle time slots that occur between consecutive orders.
The goal is to minimize both the total cost and the total idle time slots in order to obtain a desirable schedule.
We define these objectives formally as follows. Let m be the number of orders, each identified by an integer ID from 0 to m 1 . Let T i ( 0 i m 1 ) denote the number of time slots required to complete Order i, and let P i denote its priority value. Based on the properties of each part, we define I ( i ,   j ) as the number of required idle time slots between Order i and Order j ( 0 i ,   j m 1 ).
The m orders are assigned to m tracks, Track 0 through Track m 1 , to represent their processing order. Let o = [ o ( 0 ) ,   o ( 1 ) , ,   o ( m 1 ) ] denote the processing sequence, where Track t ( 0 t m 1 ) processes Order o ( t ) .
Ignoring idle time slots for now, the start time S ( t ) of Order o ( t ) is given by
S ( t ) = i = 0 t 1 T o ( i ) .
Order o ( t ) then occupies time slots from S ( t ) to S ( t ) + T o ( t ) 1 . Accordingly, the total cost Cost ( o ) of the permutation o is defined as
Cost ( o ) = t = 0 m 1 i = 0 T o ( t ) 1 P o ( t ) · ( S ( t ) + i ) = t = 0 m 1 P o ( t ) T o ( t ) S ( t ) + 1 2 ( T o ( t ) 1 ) .
Next, we define the total idle time. Since the idle time between consecutive orders o ( t ) and o ( t + 1 ) is I ( o ( t ) , o ( t + 1 ) ) , the total idle time IdleSlot ( o ) is given by
IdleSlot ( o ) = t = 0 m 2 I ( o ( t ) , o ( t + 1 ) ) .
We use Figure 2 to illustrate how the total cost and total idle time slots are computed. The first order o ( 0 ) in Track 0 has priority P o ( 0 ) = 3 , and its cost is ( 0 + 1 + 2 + 3 ) × 3 = 18 . The next order o ( 1 ) in Track 1 also has priority P o ( 1 ) = 3 , and its cost is ( 4 + 5 + 6 ) × 3 = 45 . The last order o ( 2 ) in Track 2 has priority P o ( 2 ) = 2 , and its cost is ( 7 + 8 + 9 ) × 2 = 48 . Thus, the total cost of permutation o is Cost ( o ) = 18 + 45 + 48 = 111 . Clearly, orders with higher priorities should be assigned to earlier tracks to minimize the total cost. Additionally, the idle time slot between Orders o ( 0 ) and o ( 1 ) is I ( o ( 0 ) , o ( 1 ) ) = 1 , and that between Orders o ( 1 ) and o ( 2 ) is I ( o ( 1 ) , o ( 2 ) ) = 2 . Thus, the total idle time slots are IdleSlot ( o ) = 1 + 2 = 3 .
Our goal is to minimize both Cost ( o ) and Idle ( o ) . However, it may not be possible to minimize both simultaneously. Therefore, we introduce a weighting parameter λ to balance the two objectives. Specifically, the overall objective function Objective ( o ) with respect to permutation o is defined as
Objective ( o ) = Cost ( o ) + λ · Idle ( o ) .
For example, if λ = 10 , then the objective function corresponding to the above-mentioned example is obtained as follows:
Objective ( o ) = 111 + 10 × 3 = 141 .
Clearly, when λ = 0 , the objective ignores idle time and minimizes only the total cost. Conversely, when λ is sufficiently large, the optimization focuses on minimizing idle time at the expense of total cost.
However, in practice, there is no solution that satisfies Idle ( o ) = 0 . Therefore, assigning excessively large values to λ in an attempt to aggressively minimize idle time is not meaningful. Since there is no formalized priority between the two objectives, a practical strategy is to begin with a moderate value (e.g., λ = 1 ). If the resulting solution exhibits an unacceptably high Idle ( o ) , the operator can incrementally increase λ and rerun QUBO++ to obtain a new solution with reduced idle time. This procedure can be repeated until a satisfactory trade-off is achieved. Thanks to the short solving time of QUBO++ (typically a few seconds), this tuning process is feasible in real-world applications.
Note that the other two parameters, μ and γ , do not require such adjustment. These parameters are used to enforce constraints rather than to balance objectives and can therefore be set to sufficiently large values—provided that they do not cause numerical overflows during QUBO computations.

3. The QUBO Formulation of the Scheduling Problem: Single Furnace

This section presents how the scheduling problem for a single furnace can be formulated as a QUBO problem.
Given a scheduling problem with m orders, we define an m × m binary matrix X = ( x t , i ) to represent a permutation o, where o ( t ) = i if and only if x t , i = 1 . That is, x t , i = 1 indicates that the i-th order is assigned to the t-th position in the schedule. Figure 3 shows an example of a 5 × 5 matrix X = ( x t , i ) representing the permutation [ 1 ,   3 ,   0 ,   2 ,   4 ] .
To ensure that X represents a valid permutation, each row and each column must contain exactly one entry equal to 1—i.e., each row and column must be one-hot encoded. This constraint is captured by the following quadratic formula:
Onehot ( X ) = t = 0 m 1 1 i = 0 m 1 x t , i 2 + i = 0 m 1 1 t = 0 m 1 x t , i 2
Assume that X satisfies the one-hot encoding and represents a permutation o = [ o ( 0 ) , o ( 1 ) , , o ( m 1 ) ] . In other words, x t , i = 1 if i = o ( t ) and x t , i = 0 if i o ( t ) . Given that x t , o ( t ) = 1 , the number of time slots T o ( t ) required to process Order o ( t ) ( 0 t m 1 ) is given by
T o ( t ) = i = 0 m t i x t , i .
Using T o ( t ) , the starting time S ( t ) of Order o ( t ) is given by
S ( t ) = k = 0 t 1 T o ( k ) = k = 0 t 1 i = 0 m t i x k , i .
The priority P o ( t ) of Order o ( t ) is given by
P o ( t ) = i = 0 m p i x t , i .
The total cost Cost ( X ) is then given by
Cost ( X ) = t = 0 m 1 P o ( t ) T o ( t ) S ( t ) + 1 2 ( T o ( t ) 1 ) = t = 0 m 1 i = 0 m p i t i x t , i k = 0 t 1 j = 0 m t j x k , j + 1 2 j = 0 m t j x t , j 1 .
Note that
P o ( t ) T o ( t ) = i = 0 m p i x t , i i = 0 m t j x t , i = i = 0 m p i t i x t , i .
Furthermore, from x t , o ( t ) = x t + 1 , o ( t + 1 ) = 1 , the idle time I ( o ( t ) , o ( t + 1 ) ) required between consecutive orders o ( t ) and o ( t + 1 ) is
I ( o ( t ) , o ( t + 1 ) ) = i = 0 m 1 j = 0 m 1 l ( i ,   j ) x t , i x t + 1 , j .
Thus, the idle time slots can be given as follows:
Idle ( X ) = t = 0 m 2 I ( o ( t ) , o ( t + 1 ) ) = t = 0 m 2 i = 0 m 1 j = 0 m 1 l ( i ,   j ) x t , i x t + 1 , j .
The objective function for the scheduling problem is given by
Objective ( X ) = μ · Onehot ( X ) + Cost ( X ) + λ · Idle ( X ) ,
where μ is a sufficiently large constant to enforce the one-hot constraint. Since Onehot ( X ) , Cost ( X ) , and Idle ( X ) are quadratic formulas of X = ( x i , j ) , the resulting objective function Objective ( X ) is a QUBO formula.

4. QUBO Formulation for Scheduling with Multiple Furnaces

In practical factory settings, multiple furnaces are often available. We therefore extend the single-furnace scheduling problem to accommodate a multi-furnace environment. In this scenario, each order must be assigned to one of several furnaces, and the scheduling problem involves determining both the assignment of orders to furnaces and the optimal processing sequence for each furnace.
We now present a method for formulating the scheduling problem with multiple furnaces as a QUBO problem. Suppose there are n furnaces, identified by integer IDs from 0 to n 1 . Recall that there are m real orders, identified by IDs from 0 to m 1 . To facilitate the QUBO formulation, we introduce a dummy order with ID m, resulting in a total of m + 1 orders. Since we have n furnaces and m time slots per furnace, there are m n available tracks for scheduling. Among these, exactly m tracks must be assigned to real orders, and the remaining m n m tracks will be filled with dummy orders. To prevent real orders from being scheduled after dummy orders, we assign the dummy order a large processing time, t m = γ , where γ is a sufficiently large constant. This design ensures that dummy orders appear only after all real orders have been scheduled on each furnace. To represent the scheduling decisions, we introduce a three-dimensional array of binary variables X = ( x α , t , i ) with dimensions n × m × ( m + 1 ) , where
  • x α , t , i = 1 if and only if Order i ( 0 i m 1 ) is assigned to Furnace α at track t;
  • x α , t , m = 1 if and only if the dummy order is assigned to Furnace α at track t.
Note that both the required time slots and the priority of the dummy order can be set to zero, provided that γ is sufficiently large.
Since each furnace can process one order, including the dummy order, in each time slot, we include the following constraint for all furnaces α and time slots t:
i = 0 m x α , t , i = 1
Moreover, each order, excluding the dummy order, must be assigned to one of the furnaces, and the following constraint must be satisfied for all Order i ( 0 i m 1 ).
α = 0 n 1 t = 0 m 1 x α , t , i = 1
These constraints must be satisfied for the valid assignment of orders to the time slots of furnaces. The following QUBO formula Onehot ( X ) takes a minimum value of 0 if these constraints are satisfied:
Onehot ( X ) = α = 0 n 1 t = 0 m 1 1 i = 0 m x α , t , i 2 + i = 0 m 1 1 α = 0 n 1 t = 0 m 1 x α , t , i 2 .
Next, we define the objective functions corresponding to total cost and total idle time slots. The total cost can be computed by summing over the individual furnaces as follows:
Cost ( X ) = α = 0 n 1 t = 0 m 1 P o ( t ) T o ( t ) S ( t ) + 1 2 ( T o ( t ) 1 ) = α = 0 n 1 t = 0 m 1 i = 0 m 1 p i t i x t , i k = 0 t 1 i = 0 m 1 t i x k , i + 1 2 ( i = 0 m 1 t i x t , i 1 ) .
The total number of idle time slots is computed as
Idle ( X ) = α = 0 n 1 t = 0 m 2 I ( o ( t ) ,   o ( t + 1 ) ) = α = 0 n 1 t = 0 m 2 i = 0 m 1 j = 0 m 1 l ( i ,   j ) x t , i x t + 1 , j .
Finally, the objective function for multiple furnaces uses the same structure as the single-furnace objective (Equation (1)).
Each order may have a specified set of furnaces by which it can be processed. If an order i cannot be processed by furnace α , then the solution of the value of x α , t , i must be 0 for all t ( 0 i m 1 ). This can be carried out by substituting such binary variables in Objective ( X ) with 0. The QUBO++ toolkit [17] has a replace function to perform these substitutions of binary variables with 0.

5. Experimental Results

This section presents the experimental results that demonstrate the feasibility of generating desirable heat treatment schedules using the QUBO formulations introduced in the previous sections.
We have developed a C++ implementation that generates QUBO formulations and solves them using the QUBO++ library [17]. Our program takes as input two types of data: fixed metal part specifications and daily order data, which vary for each instance. It constructs a QUBO formulation based on Equation (1) and then uses the Easy Solver included in the QUBO++ library to search for approximate solutions. The Easy Solver internally employs a heuristic based on the positive min search algorithm [12], utilizing multicore processors for parallelism. All data used in the experiments are provided in the Appendix, and the QUBO++ library is publicly available. Together, these ensure that the experimental results in this paper can be reproduced without difficulty.

5.1. Metal Part Data and Daily Order Data

We use real-world data from the Tsukimi Factory, which operates two furnaces with IDs 1 and 3. The dataset includes 98 distinct metal parts, each described by the following attributes:
  • Part Name. A one- or two-letter string representing the name of the metal part.
  • Compatible Furnaces. Specifies which furnace(s) can process the part. The values can be “1” (only Furnace 1), “3” (only Furnace 3), or “1, 3” (both furnaces).
  • Group ID. An integer representing the group to which the part belongs. N/A indicates a unique structure for which no idle time slot is required between transitions, as there is no risk of mixing or misidentification.
  • Cooling Parameter. An integer representing the required fan rotation speed. The possible values are 0, 5, 8, 10, 15, 20, 30, 40, 50, or 60.
The daily order data varies from day to day and consists of the following fields:
  • Order ID. A sequential integer ID starting from 0.
  • Part Name. A one- or two-letter string identifying the metal part being ordered.
  • Time Slots. The number of consecutive time slots required to process the order.
  • Priority. An integer value indicating the operator-assigned priority of the order.

5.2. The Resulting Solution for the Daily Data with 10 Orders

We use actual daily order data along with the corresponding metal part information as a representative example. Table 2 shows a real-world daily order dataset consisting of 10 orders. The corresponding metal part specifications for these orders are presented in Table 3. Note that Orders 1 and 2 involve the same part, B. These datasets are merged into a single table, as shown in Table A1 in Appendix A.
We created the QUBO formulation based on Equation (1) using the QUBO++ toolkit [17], a domain-specific language (DSL) designed for constructing QUBO formulations and efficiently searching for solutions. All experiments were conducted on a Windows 11 PC running WSL 2 (Ubuntu 22.04.5 LTS). The system was equipped with an Intel Core i9-13900 processor (4 GHz) and 32 GB of RAM. The C++ program was compiled using g++ version 11.4.0 with the -O3 optimization flag.
The resulting QUBO instance comprises 160 binary variables, 160 linear terms, and 12,800 quadratic terms. We used the Easy Solver bundled with QUBO++ to solve the QUBO problem, using parameters μ = 100,000, γ = 1000 , and λ = 10 . A solution with Cost ( X ) = 26,734 and Idle ( X ) = 3 was obtained in just 1 s for most cases. Table 4 presents the schedule derived from this solution.
Each row in the table corresponds to an order assigned to a track, with the following attributes: order ID, part name, priority value, time slot range, number of idle slots before the track, cooling parameter, group ID, and compatible furnaces. For instance, Track 6 of Furnace 1 is assigned Order 8, which processes Part H with priority 1, occupies 9 time slots from slot 114 to 122, has 1 idle slot before it, a cooling parameter of 5, group N/A, and is compatible with Furnace 1.
The orders are allocated across the two furnaces such that the workload is balanced. Moreover, higher-priority orders tend to be scheduled earlier. The total number of idle slots is 3, indicating that the obtained solution is of sufficiently high quality for practical use.
A solution with fewer idle time slots can be obtained by increasing the value of λ , which gives higher priority to minimizing Idle ( X ) . Table 5 shows the solution computed with λ = 1000 . This solution contains only 1 idle time slot, indicating an improvement in idle-time efficiency. However, the total cost increases, and the schedule no longer respects the priority order of the tasks. For example, Track 2 is assigned Order 8 with priority 1, whereas in the previous solution with λ = 10 , it was assigned to Track 6. This trade-off highlights the importance of balancing cost and idle time according to practical requirements. Operators can choose between such solutions, depending on their preferences or unmodeled constraints.

5.3. The Resulting Solutions for 10 Real Daily Orders

We executed our C++ program on 10 real daily orders using the parameter setting λ = 10 , with the computation time limited to 10 s for each instance. Table 6 summarizes the characteristics of the resulting QUBO formulations and their corresponding solutions. The number of orders ranges from 7 to 23, with the number of binary variables in the QUBO ranging from 80 to 644. The number of quadratic terms ranges from 2156 to 199,962. The table also reports the values of Cost ( X ) and Idle ( X ) for each instance.
While the objective values Cost ( X ) and Idle ( X ) provide a numerical assessment of solution quality, they do not capture the full picture. To better understand the scheduling behavior, we examine in detail the solution for the instance with 23 orders. Table 7 presents the resulting schedule obtained with λ = 10 . In this solution, 13 orders are assigned to Furnace 1 and 10 orders to Furnace 3. Although higher-priority orders are generally assigned to earlier tracks in both furnaces, the solution contains a total of 9 idle time slots.
Table 8 reports the time to solution (TTS) in seconds for each day using the Easy Solver of the QUBO++ toolkit, evaluated over 100 trials. Each TTS represents the time required to obtain a solution whose objective value matches the best value Objective ( X ) . Since the solver is based on randomized heuristics, the time to reach the target value varies across trials. In most cases (Days 0–6 and 8–9), the average TTS remains below one second. For Days 1 and 9, even the maximum time is well under one second, indicating highly stable performance.
The only exception is Day 7, which showed a relatively large variance and longer average TTS (1.5510 s) when targeting the best-known value of 39,798. However, if we slightly relax the objective value to 39,808—corresponding to just one additional idle time slot—the average TTS drops significantly to 0.1419 s, with a minimum of 0.0185 and a maximum of 1.0566 s. This demonstrates that while exact optimal solutions may require a longer time in rare cases, near-optimal solutions of comparable quality can still be obtained rapidly, which is valuable for practical use.
If operators prioritize minimizing idle time over strictly following the priority order, they can increase the parameter λ to assign greater weight to the Idle ( X ) component. To explore this trade-off, we re-executed the solver with λ = 1000 , and the resulting schedule is shown in Table 9. In this solution, the total number of idle time slots is reduced to 4, but at the expense of a higher cost. For instance, Order 2, originally assigned to Track 8 in the previous solution, is moved up to Track 1, violating the priority order and contributing to the increased cost.
Operators can experiment with different values of λ to generate multiple schedules and choose the most appropriate one based on their operational requirements. Additionally, by adjusting the priority values of specific orders, they can explore alternative scheduling outcomes and select the solution that best suits their preferences or hidden constraints.

5.4. Multiple Top Solutions for the Flexibility

The QUBO problem generated by QUBO++ may admit multiple top solutions. From a practical perspective, obtaining the single optimal solution is not necessarily essential; near-optimal solutions that are sufficiently close to the optimum are often acceptable in real-world applications. Moreover, certain implicit preferences or priorities may not be explicitly captured in the formal scheduling formulation. Therefore, it is reasonable to provide operators with several high-quality candidate solutions, from which they may select one based on domain-specific knowledge or latent constraints. The Easy Solver module included in QUBO++ supports the enumeration of multiple top-ranked solutions.
Table 10 presents the 20 best solutions identified for a scheduling instance involving 10 orders (as listed in Table 2). For each solution, the objective values Cost ( X ) and Idle ( X ) are shown, along with the sequence of assigned orders and their respective priority values on each furnace track. For instance, the solution with Cost ( X ) = 26,734 and Idle ( X ) = 3 is the best among the candidates. Two additional solutions achieve the same cost value ( Cost ( X ) = 26,734 ) but incur a slightly higher idle time ( Idle ( X ) = 4 ). One of these is obtained by swapping G(1) and H(1) on Furnace 1, while the other results from swapping AM(1) and C(1) on Furnace 3. Although these are suboptimal in terms of idle time, they may still be considered acceptable alternatives depending on operational preferences.
Providing multiple candidate solutions is beneficial, as it mitigates the need for manual adjustments in cases where the optimal solution fails to meet certain unmodeled requirements. The current implementation thus enhances the usability of the system by offering flexibility at the decision-making stage.

6. Conclusions

In this study, we propose a QUBO-based formulation for scheduling in the heat treatment process of metal parts, incorporating both order priorities and idle times between orders. We developed a dedicated C++ implementation and employed our publicly available QUBO toolkit, QUBO++, to efficiently construct and solve the resulting QUBO instances. QUBO++ includes the Easy Solver tool, which utilizes a lightweight metaheuristic based on the positive min search algorithm and is optimized for multicore execution.
We conducted experiments using 10 days of real production data, which include fixed product specifications and varying daily order sets. The results demonstrated that our approach can solve practical-sized instances in a matter of seconds per run, enabling the rapid generation of high-quality schedules. Additionally, the weighting parameter λ allows operators to flexibly explore trade-offs between priority-based cost and idle time minimization, supporting context-aware decision-making.
Importantly, the solver can return not only the best solution but also a set of top-ranked near-optimal solutions, as specified by the user. This feature enables factory operators to evaluate multiple feasible schedules and choose the one most appropriate for their operational constraints and preferences. Operators especially valued this flexibility, noting that it aligns with real-world scheduling practices that often involve balancing competing priorities.
Although manually generated benchmark schedules were not available for the datasets used in our experiments, experienced factory operators reviewed the generated schedules. They confirmed that the proposed solutions met practical constraints and expectations, providing informal yet meaningful validation of our approach. Overall, our findings underscore the practical utility of QUBO-based modeling and the QUBO++ framework as a flexible and scalable tool for real-world industrial scheduling.
As a future direction, the integration of more advanced metaheuristic techniques—such as simulated annealing or evolutionary algorithms—into QUBO++ may further improve scalability, robustness, and solution diversity for large-scale optimization tasks.

Author Contributions

Conceptualization, K.N.; Methodology, K.N.; Software, I.N. and K.N.; Validation, and Y.I.; Investigation, I.N. and V.P.; Resources, I.N.; Data curation, and Y.I.; Writing—review & editing, V.P.; Supervision, K.N. All authors have read and agreed to the published version of the manuscript.

Funding

This research received no external funding.

Institutional Review Board Statement

Not applicable.

Informed Consent Statement

Not applicable.

Data Availability Statement

The raw data supporting the conclusions of this article will be made available by the authors on request.

Acknowledgments

The authors would like to thank Nagato Co., Ltd. for providing the operational data used in this study. The first author was employed part-time by Nagato Co., Ltd. while he was an undergraduate student, and part of his work involved scheduling-related tasks relevant to this research. Although Nagato Co., Ltd. did not provide institutional research funding for the work presented in this paper, the authors have subsequently received research funding from the company for a separate collaborative project on heat treatment scheduling.

Conflicts of Interest

The authors declare no conflicts of interest.

Appendix A

This appendix includes daily order data with product data for the reader’s benefit. The columns are Order ID, Part name, required Time Slots, Priority value, possible Furnaces, Group ID, and Cooling Parameters.
Table A1. Day 0 daily order data merged with corresponding product attributes.
Table A1. Day 0 daily order data merged with corresponding product attributes.
OrderPartTime SlotsPriorityFurnacesGroupCooling Param.
0A151, 3115
1B1441, 3210
2B8931, 3210
3C1011, 330
4D4831N/A0
5E141N/A0
6F721N/A0
7G4111N/A0
8H911N/A5
9AM2013310
Table A2. Day 1 daily order data merged with corresponding product attributes.
Table A2. Day 1 daily order data merged with corresponding product attributes.
OrderPartTime SlotsPriorityFurnacesGroupCooling Param.
0I1711N/A15
1J441N/A20
2A5121, 3115
3K6021N/A40
4L2131660
5M2831N/A50
6AT6433340
7AV421, 3160
8AO943N/A60
9AN4521, 3160
10AS953550
11AW1133160
12AX2853450
13AR943160
14AY351001, 3240
Table A3. Day 2 daily order data merged with corresponding product attributes.
Table A3. Day 2 daily order data merged with corresponding product attributes.
OrderPartTime SlotsPriorityFurnacesGroupCooling Param.
0AZ3213310
1Y1011, 320
2BA691310
3Y1011, 320
4AZ3213310
5AY3511, 3240
6AS913550
7AR1413160
8N811660
9O1311750
10P1211660
11Q211750
12R1011N/A60
13S2611650
14T711N/A60
15U411N/A50
16G3521N/A0
17V131N/A0
18W341N/A0
19X1221N/A0
20Y2041, 320
Table A4. Day 3 daily order data merged with corresponding product attributes.
Table A4. Day 3 daily order data merged with corresponding product attributes.
OrderPartTime SlotsPriorityFurnacesGroupCooling Param.
0Z3811N/A10
1AA901120
2AB341N/A40
3AC531N/A50
4AD1731750
5AE431N/A50
6AF631650
7AG531N/A60
8AG431N/A60
9AH3131760
10AH431760
11AO913N/A60
12BB3831, 3240
13A4021, 3115
14A3721, 3115
15AZ8833310
Table A5. Day 4 daily order data merged with corresponding product attributes.
Table A5. Day 4 daily order data merged with corresponding product attributes.
OrderPartTime SlotsPriorityFurnacesGroupCooling Param.
0BC5613450
1AW1113160
2AS913550
3AR1423160
4AP2823450
5BD5431, 3160
6AO923N/A60
7BE3941, 3160
8AI6921160
9AJ511N/A0
10AK9331, 3210
11AL1711N/A20
Table A6. Day 5 daily order data merged with corresponding product attributes.
Table A6. Day 5 daily order data merged with corresponding product attributes.
OrderPartTime SlotsPriorityFurnacesGroupCooling Param.
0G1311N/A0
1BR37160
2BS1921N/A0
3BT57160
4G3311N/A0
5BU2311715
6BU3411715
7BV2131N/A30
8BW521N/A30
9BX1441730
10AB651N/A40
11BZ361N/A20
12AY4221, 3240
13BF2923N/A30
14AY821, 3240
15BG1513450
16AV2721, 3160
17AQ913550
18BC5733450
19BG823450
20AO1033N/A60
21AR1443160
22AQ923550
Table A7. Day 6 daily order data merged with corresponding product attributes.
Table A7. Day 6 daily order data merged with corresponding product attributes.
OrderPartTime SlotsPriorityFurnacesGroupCooling Param.
0BD4821, 3160
1BL1813450
2BM1023N/A30
3AY921, 3240
4BG1523450
5BD1721, 3160
6BL1823450
7AW1233160
8AP833450
9BL1833450
10AO1933N/A60
11AW1233160
12BG1523450
13G3211N/A0
14CA331N/A5
15A10021, 3115
16CB121N/A15
17CC621N/A20
18K3031N/A40
19CD441N/A50
20S2241650
21U1541N/A50
Table A8. Day 7 daily order data merged with corresponding product attributes.
Table A8. Day 7 daily order data merged with corresponding product attributes.
OrderPartTime SlotsPriorityFurnacesGroupCooling Param.
0CF811960
1N711660
2AD711750
3P2311660
4CJ411960
5CK1011850
6CL1411960
7L1611660
8CN911N/A20
9K3021N/A40
10Y1031, 320
11AY3011, 3240
12AP5013450
13AY1611, 3240
14BL1823450
15AR1423160
16BC5723450
17AO123N/A60
18AO923N/A60
19AR1423160
20AQ923550
Table A9. Day 8 daily order data merged with corresponding product attributes.
Table A9. Day 8 daily order data merged with corresponding product attributes.
OrderPartTime SlotsPriorityFurnacesGroupCooling Param.
0CO321N/A0
1CP531N/A0
2Y1031, 320
3CQ3111N/A15
4A3121, 3115
5A8021, 3115
6Y8541, 320
7BO7521, 3160
8AP5033450
9AW1213160
10AO1023N/A60
11AW1823160
12BG823450
13AR1423160
14BL2623450
15AO1933N/A60
Table A10. Day 9 daily order data merged with corresponding product attributes.
Table A10. Day 9 daily order data merged with corresponding product attributes.
OrderPartTime SlotsPriorityFurnacesGroupCooling Param.
0A9111, 3115
1BP9913310
2BQ611340
3Z6611N/A10
4K5621N/A40
5CS2431N/A50
6CT8041160

References

  1. Glover, F.W.; Kochenberger, G.A. A Tutorial on Formulating QUBO Models. CoRR 2018, abs/1811.11538. [Google Scholar]
  2. Papalitsas, C.; Andronikos, T.; Giannakis, K.; Theocharopoulou, G.; Fanarioti, S. A QUBO Model for the Traveling Salesman Problem with Time Windows. Algorithms 2019, 12, 224. [Google Scholar] [CrossRef]
  3. Codognet, P. Domain-Wall/Unary Encoding in QUBO for Permutation Problems. In Proceedings of the International Conference on Quantum Computing and Engineering, Broomfield, CO, USA, 18–23 September 2022; pp. 167–173. [Google Scholar]
  4. Nakano, K.; Tsukiyama, S.; Ito, Y.; Yazane, T.; Yano, J.; Kato, T.; Ozaki, S.; Mori, R.; Katsuki, R. Dual-Matrix Domain Wall: A Novel Technique for Generating Permutations by QUBO and Ising Models with Quadratic Sizes. Technologies 2023, 11, 143. [Google Scholar] [CrossRef]
  5. Jun, K.; Lee, H. HUBO and QUBO models for prime factorization. Sci. Rep. 2023, 13, 10080. [Google Scholar] [CrossRef]
  6. Tsukiyama, S.; Nakano, K.; Parque, V.; Ito, Y.; Kato, T.; Kawamata, Y.; Ii, K. Designing unit Ising models for logic gate simulation through integer linear programming. Int. J. Parallel Emergent Distrib. Syst. 2024, 40, 1–21. [Google Scholar] [CrossRef]
  7. Calude, C.S.; Dinneen, M.J.; Hua, R. QUBO formulations for the graph isomorphism problem and related problems. Theor. Comput. Sci. 2017, 701, 54–69. [Google Scholar] [CrossRef]
  8. Cruz-Santos, W.; Venegas-Andraca, S.E.; Lanzagorta, M. A QUBO Formulation of the Stereo Matching Problem for D-Wave Quantum Annealers. Entropy 2018, 2, 786. [Google Scholar] [CrossRef]
  9. Chung, Y.H.; Shih, C.J.; Hung, S.H. Accelerating Simulated Quantum Annealing with GPU and Tensor Cores. In Proceedings of the International Conference on High Performance Computing, Hamburg, Germany, 18–21 December 2022; Varbanescu, A.L., Bhatele, A., Luszczek, P., Marc, B., Eds.; Springer: Cham, Switzerland, 2022; pp. 174–191. [Google Scholar]
  10. Nakano, K.; Takafuji, D.; Ito, Y.; Yazane, T.; Yano, J.; Ozaki, S.; Katsuki, R.; Mori, R. Diverse Adaptive BulkSearch: A Framework for Solving QUBO Problems on Multiple GPUs. In Proceedings of the International Parallel and Distributed Processing Symposium Workshops, St. Petersburg, FL, USA, 15–19 May 2023; pp. 314–325. [Google Scholar]
  11. Goto, H.; Tatsumura, K.; Dixon, A.R. Combinatorial optimization by simulating adiabatic bifurcations in nonlinear Hamiltonian systems. Sci. Adv. 2019, 5, eaav2372. [Google Scholar] [CrossRef]
  12. Kagawa, H.; Ito, Y.; Nakano, K.; Yasudo, R.; Kawamata, Y.; Katsuki, R.; Tabata, Y.; Yazane, T.; Hamano, K. High-throughput FPGA implementation for quadratic unconstrained binary optimization. Concurr. Comput. Pract. Exp. 2023, 35, e6565. [Google Scholar] [CrossRef]
  13. Yamamoto, K.; Kawamura, K.; Ando, K.; Mertig, N.; Takemoto, T.; Yamaoka, M.; Teramoto, H.; Sakai, A.; Takamaeda-Yamazaki, S.; Motomura, M. STATICA: A 512-Spin 0.25M-Weight Annealing Processor with an All-Spin-Updates-at-Once Architecture for Combinatorial Optimization with Complete Spin–Spin Interactions. IEEE J.-Solid-State Circuits 2021, 56, 165–178. [Google Scholar] [CrossRef]
  14. Inagaki, T.; Haribara, Y.; Igarashi, K.; Sonobe, T.; Tamate, S.; Honjo, T.; Marandi, A.; McMahon, P.L.; Umeki, T.; Enbutsu, K.; et al. A coherent Ising machine for 2000-node optimization problems. Science 2016, 354, 603–606. [Google Scholar] [CrossRef]
  15. Honjo, T.; Sonobe, T.; Inaba, K.; Inagaki, T.; Ikuta, T.; Yamada, Y.; Kazama, T.; Enbutsu, K.; Umeki, T.; Kasahara, R.; et al. 100,000-spin coherent Ising machine. Sci. Adv. 2021, 7, eabh0952. [Google Scholar] [CrossRef]
  16. Cohen, E.; Tamir, B. D-Wave and predecessors: From simulated to quantum annealing. Int. J. Quantum Inf. 2014, 12, 1430002. [Google Scholar] [CrossRef]
  17. Nakano, K.; Tsukiyama, S.; Li, X.; Ito, Y.; Parque, V.; Kato, T.; Kawamata, Y.; Ii, K. QUBO++: A C++ Library for Developing and Solving QUBO Problems. In Proceedings of the IEEE International Parallel and Distributed Processing Symposium, IPDPS 2025—Workshop, Milano, Italy, 1–7 June 2025; IEEE: Piscataway, NJ, USA, 2025. [Google Scholar]
  18. Jain, A.; Meeran, S. Deterministic job-shop scheduling: Past, present and future. Eur. J. Oper. Res. 1999, 113, 390–434. [Google Scholar] [CrossRef]
  19. Li, X.; Guo, X.; Tang, H.; Wu, R.; Wang, L.; Pang, S.; Liu, Z.; Xu, W.; Li, X. Survey of integrated flexible job shop scheduling problems. Comput. Ind. Eng. 2022, 174, 108786. [Google Scholar] [CrossRef]
  20. Gran, S.S.; Ismail, I.; Ajol, T.A.; Ibrahim, A.F.A. Mixed Integer Programming model for flexible job-shop scheduling problem (FJSP) to minimize makespan and total machining time. In Proceedings of the 2015 International Conference on Computer, Communications, and Control Technology (I4CT), Kuching, Malaysia, 21–23 April 2015; pp. 413–417. [Google Scholar] [CrossRef]
  21. Meng, L.; Zhang, C.; Ren, Y.; Zhang, B.; Lv, C. Mixed-integer linear programming and constraint programming formulations for solving distributed flexible job shop scheduling problem. Comput. Ind. Eng. 2020, 142, 106347. [Google Scholar] [CrossRef]
  22. Hasan, S.M.K.; Sarker, R.; Cornforth, D. Hybrid Genetic Algorithm for Solving Job-Shop Scheduling Problem. In Proceedings of the 6th IEEE/ACIS International Conference on Computer and Information Science (ICIS 2007), Melbourne, Australia, 11–13 July 2007; pp. 519–524. [Google Scholar] [CrossRef]
  23. Bhatt, N.; Chauhan, N.R. Genetic algorithm applications on Job Shop Scheduling Problem: A review. In Proceedings of the 2015 International Conference on Soft Computing Techniques and Implementations (ICSCTI), Faridabad, India, 8–10 October 2015; pp. 7–14. [Google Scholar] [CrossRef]
  24. van Laarhoven, P.J.M.; Aarts, E.H.L.; Lenstra, J.K. Job Shop Scheduling by Simulated Annealing. Oper. Res. 1992, 40, 113–125. [Google Scholar] [CrossRef]
  25. Steinhöfel, K.; Albrecht, A.; Wong, C. Two simulated annealing-based heuristics for the job shop scheduling problem. Eur. J. Oper. Res. 1999, 118, 524–548. [Google Scholar] [CrossRef]
  26. Dell’Amico, M.; Trubian, M. Applying tabu search to the job-shop scheduling problem. Ann. Oper. Res. 1993, 41, 231–252. [Google Scholar] [CrossRef]
  27. Zhang, Q.; Manier, H.; Manier, M.A. A genetic algorithm with tabu search procedure for flexible job shop scheduling with transportation constraints and bounded processing times. Comput. Oper. Res. 2012, 39, 1713–1723. [Google Scholar] [CrossRef]
  28. Li, J.; Deng, H.; Liu, D.; Song, C.; Han, R.; Hu, T. A Job Shop Scheduling Method Based on Ant Colony Algorithm. In Proceedings of the 2021 IEEE International Conference on Progress in Informatics and Computing (PIC), Shanghai, China, 17–19 December 2021; pp. 453–457. [Google Scholar] [CrossRef]
  29. Turguner, C.; Sahingoz, O.K. Solving job shop scheduling problem with Ant Colony Optimization. In Proceedings of the 2014 IEEE 15th International Symposium on Computational Intelligence and Informatics (CINTI), Budapest, Hungary, 19–21 November 2014; pp. 385–389. [Google Scholar] [CrossRef]
  30. Liu, Z. Investigation of Particle Swarm Optimization for Job Shop Scheduling Problem. In Proceedings of the Third International Conference on Natural Computation (ICNC 2007), Haikou, China, 24–27 August 2007; Volume 3, pp. 799–803. [Google Scholar] [CrossRef]
  31. Liu, A.; Luh, P.B.; Sun, K.; Bragin, M.A.; Yan, B. Integrating Machine Learning and Mathematical Optimization for Job Shop Scheduling. IEEE Trans. Autom. Sci. Eng. 2024, 21, 4829–4850. [Google Scholar] [CrossRef]
  32. Kadowaki, T.; Nishimori, H. Quantum annealing in the transverse Ising model. Phys. Rev. E 1998, E58, 5355–5363. [Google Scholar] [CrossRef]
  33. Denkena, B.; Schinkel, F.; Pirnay, J.; Wilmsmeier, S. Quantum algorithms for process parallel flexible job shop scheduling. CIRP J. Manuf. Sci. Technol. 2021, 33, 100–114. [Google Scholar] [CrossRef]
  34. Carugno, C.; Dacrema, M.F.; Cremonesi, P. Evaluating the job shop scheduling problem on a D-wave quantum annealer. Sci. Rep. 2022, 12, 6539. [Google Scholar] [CrossRef]
  35. Schworm, P.; Wu, X.; Glatt, M.; Aurich, J.C. Solving flexible job shop scheduling problems in manufacturing with Quantum Annealing. Prod. Eng. 2023, 17, 105–115. [Google Scholar] [CrossRef]
  36. Schworm, P.; Wu, X.; Klar, M.; Glatt, M.; Aurich, J.C. Multi-objective Quantum Annealing approach for solving flexible job shop scheduling in manufacturing. J. Manuf. Syst. 2024, 72, 142–153. [Google Scholar] [CrossRef]
  37. Fu, K.; Liu, J.; Chen, M.; Zhang, H. Solving Flexible Job-Shop Scheduling Problems Based on Quantum Computing. Entropy 2025, 27, 189. [Google Scholar] [CrossRef]
Figure 1. Schematic illustration of the heat treatment process with multiple furnaces operating in parallel. Each furnace processes a sequence of orders, where each order consists of a single type of metal part. Parts are heated to high temperatures and then cooled by a fan.
Figure 1. Schematic illustration of the heat treatment process with multiple furnaces operating in parallel. Each furnace processes a sequence of orders, where each order consists of a single type of metal part. Parts are heated to high temperatures and then cooled by a fan.
Applsci 15 08847 g001
Figure 2. Illustrating the cost and the idle time slots.
Figure 2. Illustrating the cost and the idle time slots.
Applsci 15 08847 g002
Figure 3. Illustrating an n × n binary matrix X = ( x t , i ) representing a permutation [ 1 ,   3 ,   0 ,   2 ,   4 ] .
Figure 3. Illustrating an n × n binary matrix X = ( x t , i ) representing a permutation [ 1 ,   3 ,   0 ,   2 ,   4 ] .
Applsci 15 08847 g003
Table 1. Required number of adjustment time slots between parts with different cooling parameters.
Table 1. Required number of adjustment time slots between parts with different cooling parameters.
Following Cooling Parameter
05810152030405060
Current cooling parameter00111224444
51000222222
81000022222
101000001222
151100001222
201110000122
301111100022
402111110001
502221111000
602221111100
Table 2. An example of the daily order data with 10 orders for Day 0.
Table 2. An example of the daily order data with 10 orders for Day 0.
OrderPartTime SlotsPriority
0A15
1B144
2B893
3C101
4D483
5E14
6F72
7G411
8H91
9AM201
Table 3. The metal part data for the daily order in Table 2.
Table 3. The metal part data for the daily order in Table 2.
PartPossible FurnacesGroup IDCooling Parameter
A1, 3115
B1, 3210
C1, 330
D1N/A0
E1N/A0
F1N/A0
G1N/A0
H1N/A5
AM3310
Table 4. Solution of Cost ( X ) = 26,734 and Idle ( X ) = 3 for the daily order in Table 2 with λ = 10 .
Table 4. Solution of Cost ( X ) = 26,734 and Idle ( X ) = 3 for the daily order in Table 2 with λ = 10 .
Furnace 1
TrackOrderPartPriorityTime SlotsIdleCoolingGroupFurnaces
00A50–0 (1)01511, 3
11B41–14 (14)01021, 3
25E416–16 (1)10N/A1
34D317–64 (48)00N/A1
46F265–71 (7)00N/A1
57G172–112 (41)00N/A1
68H1114–122 (9)15N/A1
Furnace 3
TrackOrderPartPriorityTime SlotsIdleCoolingGroupFurnaces
02B30–88 (89)01021, 3
19AM189–108 (20)01033
23C1110–119 (10)1031, 3
Table 5. Solution of Cost ( X ) = 27,808 and Idle ( X ) = 1 for the daily order in Table 2 with λ = 1000 .
Table 5. Solution of Cost ( X ) = 27,808 and Idle ( X ) = 1 for the daily order in Table 2 with λ = 1000 .
Furnace 1
TrackOrderPartPriorityTime SlotsIdleCoolingGroupFurnaces
00A50–0 (1)01511, 3
11B41–14 (14)01021, 3
28H115–23 (9)05N/A1
35E425–25 (1)10N/A1
44D326–73 (48)00N/A1
56F274–80 (7)00N/A1
67G181–121 (41)00N/A1
73C1122–131 (10)0031, 3
Furnace 3
TrackOrderPartPriorityTime SlotsIdleCoolingGroupFurnaces
02B30–88 (89)01021, 3
19AM189–108 (20)01033
Table 6. Solutions obtained for 10 real daily orders with λ = 10 .
Table 6. Solutions obtained for 10 real daily orders with λ = 10 .
DayOrdersVariablesLinear TermsQuadratic TermsCost (X)Idle (X)
01016016012,80026,7343
11531531546,800130,1239
221567567163,17034,8127
31633633662,97675,8744
41220420419,87273,5605
523644644199,96266,8009
622616616181,01688,6348
721546546141,12039,7485
81636836867,584114,3536
977070215678,0362
Table 7. Solution of Cost ( X ) = 66,800 and Idle ( X ) = 9 for the daily order with 23 orders using λ = 10 .
Table 7. Solution of Cost ( X ) = 66,800 and Idle ( X ) = 9 for the daily order with 23 orders using λ = 10 .
Furnace 1
TrackOrderPartPriorityTime SlotsIdleCoolingGroupFurnaces
03BT70–4 (5)0061
11BR76–8 (3)1061
211BZ611–13 (3)220N/A1
310AB515–20 (6)140N/A1
49BX421–34 (14)03071
57BV335–55 (21)030N/A1
68BW256–60 (5)030N/A1
712AY261–102 (42)04021, 3
82BS2105–123 (19)20N/A1
94G1124–156 (33)00N/A1
100G1157–169 (13)00N/A1
115BU1172–194 (23)21571
126BU1195–228 (34)01571
Furnace 3
TrackOrderPartPriorityTime SlotsIdleCoolingGroupFurnaces
021AR40–13 (14)06013
118BC314–70 (57)05043
220AO371–80 (10)060N/A3
322AQ281–89 (9)05053
416AV290–116 (27)06011, 3
513BF2118–146 (29)130N/A3
614AY2147–154 (8)04021, 3
719BG2155–162 (8)05043
815BG1163–177 (15)05043
917AQ1178–186 (9)05053
Table 8. Time to solution (TTS) in seconds using the Easy Solver of the QUBO++ toolkit over 100 trials for each instance.
Table 8. Time to solution (TTS) in seconds using the Easy Solver of the QUBO++ toolkit over 100 trials for each instance.
DayObjective (X)Min (s)Average (s)Max (s)
026,7640.00110.37064.5952
1130,2130.00620.03650.2431
234,8820.02940.29591.8084
375,9140.00570.02491.0272
473,6100.00140.54355.2337
566,8900.03300.57264.9958
688,7140.03580.47353.1102
739,7980.02911.551013.1653
8114,4130.01440.21201.4590
978,0560.00010.00070.0021
Table 9. Solution of Cost ( X ) = 69,558 and Idle ( X ) = 4 for the daily order with 23 orders using λ = 1000 .
Table 9. Solution of Cost ( X ) = 69,558 and Idle ( X ) = 4 for the daily order with 23 orders using λ = 1000 .
Furnace 1
TrackOrderPartPriorityTime SlotsIdleCoolingGroupFurnaces
03BT70–4 (5)0061
12BS25–23 (19)00N/A1
21BR724–26 (3)0061
311BZ629–31 (3)220N/A1
49BX432–45 (14)03071
510AB546–51 (6)040N/A1
67BV352–72 (21)030N/A1
78BW273–77 (5)030N/A1
812AY278–119 (42)04021, 3
96BU1121–154 (34)11571
105BU1155–177 (23)01571
110G1179–191 (13)10N/A1
124G1192–224 (33)00N/A1
Furnace 3
TrackOrderPartPriorityTime SlotsIdleCoolingGroupFurnaces
021AR40–13 (14)06013
118BC314–70 (57)05043
220AO371–80 (10)060N/A3
319BG281–88 (8)05043
416AV289–115 (27)06011, 3
522AQ2116–124 (9)05053
615BG1125–139 (15)05043
717AQ1140–148 (9)05053
814AY2149–156 (8)04021, 3
913BF2157–185 (29)030N/A3
Table 10. The top 20 best solutions for the daily order data with 10 orders for Day 0 in Table 2.
Table 10. The top 20 best solutions for the daily order data with 10 orders for Day 0 in Table 2.
Cost (X)Idle (X)Furnace 1Furnace 3
26,7343A(5), B(4), E(4), D(3), F(2), G(1), H(1)B(3), AM(1), C(1)
26,7344A(5), B(4), E(4), D(3), F(2), H(1), G(1)B(3), AM(1), C(1)
26,7344A(5), B(4), E(4), D(3), F(2), G(1), H(1)B(3), C(1), AM(1)
26,7483B(4), A(5), E(4), D(3), F(2), G(1), H(1)B(3), AM(1), C(1)
26,7345A(5), E(4), B(4), D(3), F(2), G(1), H(1)B(3), AM(1), C(1)
26,7345A(5), B(4), E(4), D(3), F(2), H(1), G(1)B(3), C(1), AM(1)
26,7355E(4), A(5), B(4), D(3), F(2), G(1), H(1)B(3), AM(1), C(1)
26,7484B(4), A(5), E(4), D(3), F(2), H(1), G(1)B(3), AM(1), C(1)
26,7484B(4), A(5), E(4), D(3), F(2), G(1), H(1)B(3), C(1), AM(1)
26,7494E(4), B(4), A(5), D(3), F(2), G(1), H(1)B(3), AM(1), C(1)
26,7633B(4), E(4), D(3), F(2), G(1), H(1)A(5), B(3), AM(1), C(1)
26,7346A(5), E(4), B(4), D(3), F(2), G(1), H(1)B(3), C(1), AM(1)
26,7346A(5), E(4), B(4), D(3), F(2), H(1), G(1)B(3), AM(1), C(1)
26,7356E(4), A(5), B(4), D(3), F(2), G(1), H(1)B(3), C(1), AM(1)
26,7356E(4), A(5), B(4), D(3), F(2), H(1), G(1)B(3), AM(1), C(1)
26,7485B(4), A(5), E(4), D(3), F(2), H(1), G(1)B(3), C(1), AM(1)
26,7495E(4), B(4), A(5), D(3), F(2), G(1), H(1)B(3), C(1), AM(1)
26,7495E(4), B(4), A(5), D(3), F(2), H(1), G(1)B(3), AM(1), C(1)
26,7634B(4), E(4), D(3), F(2), H(1), G(1)A(5), B(3), AM(1), C(1)
26,7634E(4), B(4), D(3), F(2), G(1), H(1)A(5), B(3), AM(1), C(1)
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.

Share and Cite

MDPI and ACS Style

Nakatsukasa, I.; Nakano, K.; Parque, V.; Ito, Y. Optimizing Heat Treatment Schedules via QUBO Formulation. Appl. Sci. 2025, 15, 8847. https://doi.org/10.3390/app15168847

AMA Style

Nakatsukasa I, Nakano K, Parque V, Ito Y. Optimizing Heat Treatment Schedules via QUBO Formulation. Applied Sciences. 2025; 15(16):8847. https://doi.org/10.3390/app15168847

Chicago/Turabian Style

Nakatsukasa, Ikuto, Koji Nakano, Victor Parque, and Yasuaki Ito. 2025. "Optimizing Heat Treatment Schedules via QUBO Formulation" Applied Sciences 15, no. 16: 8847. https://doi.org/10.3390/app15168847

APA Style

Nakatsukasa, I., Nakano, K., Parque, V., & Ito, Y. (2025). Optimizing Heat Treatment Schedules via QUBO Formulation. Applied Sciences, 15(16), 8847. https://doi.org/10.3390/app15168847

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop