<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Developing an Algorithm Selector for Green Configuration in Scheduling Problems</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Carlos</forename><surname>March</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">Instituto de Automática e Informática Industrial</orgName>
								<orgName type="institution" key="instit1">Universitat Politècnica de València</orgName>
								<orgName type="institution" key="instit2">Camì de</orgName>
								<address>
									<addrLine>Vera S/N</addrLine>
									<settlement>Valencia</settlement>
									<country key="ES">Spain</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Christian</forename><surname>Pérez</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">Instituto de Automática e Informática Industrial</orgName>
								<orgName type="institution" key="instit1">Universitat Politècnica de València</orgName>
								<orgName type="institution" key="instit2">Camì de</orgName>
								<address>
									<addrLine>Vera S/N</addrLine>
									<settlement>Valencia</settlement>
									<country key="ES">Spain</country>
								</address>
							</affiliation>
							<affiliation key="aff1">
								<orgName type="department">valgrAI -Valencian Graduate School and Research Network of Artificial Intelligence</orgName>
								<orgName type="institution" key="instit1">Universitat Politècnica de València</orgName>
								<orgName type="institution" key="instit2">Camì de</orgName>
								<address>
									<addrLine>Vera S/N</addrLine>
									<settlement>Valencia</settlement>
									<country key="ES">Spain</country>
								</address>
							</affiliation>
						</author>
						<author role="corresp">
							<persName><forename type="first">Miguel</forename><surname>Salido</surname></persName>
							<email>msalido@upv.es</email>
							<affiliation key="aff0">
								<orgName type="department">Instituto de Automática e Informática Industrial</orgName>
								<orgName type="institution" key="instit1">Universitat Politècnica de València</orgName>
								<orgName type="institution" key="instit2">Camì de</orgName>
								<address>
									<addrLine>Vera S/N</addrLine>
									<settlement>Valencia</settlement>
									<country key="ES">Spain</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Developing an Algorithm Selector for Green Configuration in Scheduling Problems</title>
					</analytic>
					<monogr>
						<idno type="ISSN">1613-0073</idno>
					</monogr>
					<idno type="MD5">14833A6DE17EF5CAB2DB784ABA3A2671</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2025-04-23T18:21+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>Job Shop Scheduling Problem</term>
					<term>Energy Efficiency</term>
					<term>Algorithm Selection</term>
					<term>Machine Learning</term>
					<term>Feature Extraction</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>The Job Shop Scheduling Problem (JSP) is central to operations research, primarily optimizing energy efficiency due to its profound environmental and economic implications. Efficient scheduling enhances production metrics and mitigates energy consumption, thus effectively balancing productivity and sustainability objectives. Given the intricate and diverse nature of JSP instances, along with the array of algorithms developed to tackle these challenges, an intelligent algorithm selection tool becomes paramount. This paper introduces a framework designed to identify key problem features that characterize its complexity and guide the selection of suitable algorithms. Leveraging machine learning techniques, particularly XGBoost, the framework recommends optimal solvers such as GUROBI, CPLEX, and GECODE for efficient JSP scheduling. GUROBI excels with smaller instances, while GECODE demonstrates robust scalability for complex scenarios. The proposed algorithm selector achieves an accuracy of 84.51% in recommending the best algorithm for solving new JSP instances, highlighting its efficacy in algorithm selection. By refining feature extraction methodologies, the framework aims to broaden its applicability across diverse JSP scenarios, thereby advancing efficiency and sustainability in manufacturing logistics.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1.">Introduction</head><p>The Job Shop Scheduling Problem (JSP) is a cornerstone issue in operations research and optimization, serving as a critical benchmark for assessing the performance of various algorithms. JSP entails the complex task of scheduling jobs on machines in a manufacturing environment to optimize several performance metrics, such as makespan, flow time, tardiness, resource utilization, and energy consumption <ref type="bibr" target="#b0">[1]</ref>. Effective benchmarking of JSP solutions requires a multifaceted evaluation of these metrics, particularly focusing on makespan, energy consumption, and tardiness to gauge scheduling efficiency and resource utilization <ref type="bibr" target="#b1">[2]</ref>. Tools like JSPLIB play a vital role in these benchmarking efforts by providing researchers with diverse instances derived from significant studies and experiments, thereby enhancing the evaluation of algorithms <ref type="bibr" target="#b2">[3]</ref>.</p><p>Understanding the characteristics of problem instances is essential for effective benchmarking in JSP. Critical factors include the number of jobs and machines, variability in processing times, machine availability, and precedence relationships, all of which significantly impact algorithm performance <ref type="bibr" target="#b3">[4]</ref>. Additionally, considering energy consumption, which varies based on machine speed and operational factors, adds another layer of complexity <ref type="bibr" target="#b4">[5]</ref>. Achieving a balance between energy consumption and scheduling decisions is crucial for attaining energy efficiency without compromising production goals <ref type="bibr" target="#b5">[6]</ref>.</p><p>JSP's focus on energy efficiency has intensified in recent years due to its substantial environmental and economic impacts <ref type="bibr" target="#b6">[7]</ref>. Researchers have investigated strategies such as employing speed-adjustable machines and vehicles to mini-mize energy consumption while maintaining productivity <ref type="bibr" target="#b7">[8]</ref>. Advanced algorithms and optimization techniques have been developed to address these energy-related challenges, taking into account factors like machine speed, idle time, and energy requirements <ref type="bibr" target="#b8">[9]</ref>. Real-world implementations of these strategies have demonstrated tangible benefits, including cost savings and positive environmental effects <ref type="bibr" target="#b9">[10]</ref>.</p><p>In addition to traditional optimization methods, machine learning techniques are increasingly being utilized to recommend algorithms for solving problems within the JSP family. For instance, Müller et al. designed a system capable of selecting the most suitable solver for addressing Flexible JSP by leveraging machine learning approaches <ref type="bibr" target="#b10">[11]</ref>. Similarly, Strassl and Musliu <ref type="bibr" target="#b11">[12]</ref> analyzed JSP instances without energy consumption from the literature to extract features that inform algorithm performance, resulting in a homogeneous set of instances with consistent characteristics. These features were then used to train various models, with Random Forest achieving the highest accuracy at 90% <ref type="bibr" target="#b11">[12]</ref>.</p><p>In conclusion, the integration of machine learning techniques into JSP research provides new avenues for improving algorithm selection and performance, particularly in handling complex and varied instances. This integration enhances the efficiency and effectiveness of job shop scheduling by combining the strengths of traditional optimization approaches with innovative machine learning methods. The ongoing advancements in this field are driving both academic research and practical applications toward more sustainable and innovative solutions.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.">Problem Description and Model Formulation</head><p>The JSP tackled in this study emphasizes its intricate energy considerations. The JSP poses a significant computational challenge, being NP-complete due to its difficulty finding optimal solutions within reasonable time frames. The core challenge of the JSP involves optimizing task allocation across multiple jobs and machines while minimizing key criteria, notably the total job completion time. How-ever, achieving this optimization is complex due to various real-world constraints and dependencies, contributing to the JSP's NP-completeness. The combinatorial explosion of possible job and machine combinations further complicates the problem, making exhaustive exploration impractical as the number of jobs and machines grows.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.1.">Mixed Integer Programming</head><p>The JSP involves various sets, parameters, variables, and constraints crucial for formulation and solution:</p><p>Sets:</p><p>• 𝐽 = {1, . . . , 𝑛}, the set of jobs.</p><p>• 𝑀 = {1, . . . , 𝑚}, the set of machines.</p><p>• 𝑆 = {1, . . . , 𝑠}, the set of speeds.</p><p>• 𝑇𝑗, ∀𝑗 ∈ 𝐽, the set of tasks in job 𝑗. In standard JSP 𝑇𝑗 = 𝑀 .</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Parameters:</head><p>• 𝐷𝑗𝑡, ∀𝑗 ∈ 𝐽, ∀𝑡 ∈ 𝑇𝑗, the due date of task job 𝑡𝑗𝑡. </p><p>subject to:</p><formula xml:id="formula_1">∑︁ 𝑚∈𝑀 𝑥𝑚𝑗𝑡𝑠 = 1 (2) ∀𝑗 ∈ 𝐽, ∀𝑡 ∈ 𝑇𝑗 ∀𝑠 ∈ 𝑆 ∑︁ 𝑚∈𝑀 𝑦𝑚𝑖𝑗𝑝𝑞 = 1 (3) ∀𝑖, 𝑗 ∈ 𝐽, ∀𝑝, 𝑞 ∈ 𝑇𝑖, 𝑇𝑗, 𝑖 ̸ = 𝑗, 𝑝 ≤ 𝑞 𝑡𝑡𝑚𝑗𝑡 ≥ 𝑐𝑚𝑗𝑡 − 𝐷𝑗𝑡 (4) ∀𝑚 ∈ 𝑀, ∀𝑗 ∈ 𝐽, ∀𝑡 ∈ 𝑇𝑗, 𝑥𝑚𝑗𝑡 = 1 𝑐𝑚𝑗𝑡 ≥ 𝑅𝑗𝑡 + 𝑃𝑚𝑗𝑡𝑠 (5) ∀𝑚 ∈ 𝑀, ∀𝑗 ∈ 𝐽, ∀𝑡 ∈ 𝑇𝑗, ∀𝑠 ∈ 𝑆, 𝑥𝑚𝑗𝑡𝑠 = 1 𝑐𝑚𝑗𝑠 ≥ 𝑐𝑚𝑖𝑝 + 𝑃𝑚𝑖𝑝𝑠 (6) ∀𝑚 ∈ 𝑀, ∀𝑖, 𝑗 ∈ 𝐽, ∀𝑝, 𝑞 ∈ 𝑇𝑖, 𝑇𝑗, ∀𝑠 ∈ 𝑆, 𝑖 ̸ = 𝑗 ∧ 𝑝 &lt; 𝑞 ∧ 𝑦𝑚𝑖𝑗𝑝𝑠 = 1 𝑐𝑚𝑗𝑡 ≥ 0 , 𝑡𝑚𝑗𝑡 ≥ 0 (7) ∀𝑚 ∈ 𝑀, ∀𝑗 ∈ 𝐽∀𝑡 ∈ 𝑇𝑗</formula><p>This model seeks the optimal solution 𝜑 * that minimizes the three measures mentioned in equation 1. considering the constraints associated: the maximum makespan of all task jobs 𝑀 𝐾(𝜑), the total energy consumption 𝐸𝐶(𝜑), and the total tardiness 𝑇 𝑇 (𝜑). The simultaneous optimization of these objectives requires a delicate balance between the various considerations and constraints of the problem. Therefore, two approaches to optimizing the problem solutions are proposed, allowing us to analyze the methods' behavior better.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.2.">Mono-objective optimization</head><p>This section presents the mono-objective optimization for a specific scheduling problem involving multiple jobs and machines, emphasizing key performance metrics such as makespan, energy consumption, and total tardiness.</p><formula xml:id="formula_2">𝑓 𝑚 = max 𝑗∈𝐽 𝑚∈𝑀 (𝑐𝑗𝑚)<label>(8)</label></formula><formula xml:id="formula_3">𝑓 𝑒 = ∑︁ 𝑗∈𝐽 ∑︁ 𝑡∈𝑇 𝑗 𝐸𝑗𝑡<label>(9)</label></formula><formula xml:id="formula_4">𝑓 𝑡𝑡 = ∑︁ 𝑚∈𝑀 ∑︁ 𝑗∈𝐽 ∑︁ 𝑡∈𝑇 𝑗 𝑡𝑡𝑚𝑗𝑡<label>(10)</label></formula><p>Equation 8 represents the makespan, which is the maximum completion time among all machines, by calculating the total processing time of all job tasks on each machine and selecting the maximum value across all machines. Equation 9 describes energy consumption by computing the total energy consumed by all job tasks across all machines. Lastly, Equation 10 is formulated to show the total tardiness, which represents the number of time units of each job or operation that are performed outside its time window, i.e., the period of time between the release date and the due date.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>𝑚𝑖𝑛 𝑓</head><formula xml:id="formula_5">𝑚 − 𝑚 − 1 𝑚 + 1 − 𝑚 − 1 + 𝑓 𝑒 − 𝑚 − 2 𝑚 + 2 − 𝑚 − 2 + 𝑓 𝑡𝑡 𝑚 + 1 (<label>11</label></formula><formula xml:id="formula_6">)</formula><p>Minimizing the objective Function 11 aims to find a solution that achieves a balanced trade-off among the components. The values 𝑚 + 1,2 and 𝑚 − 1,2 are used to normalize the 𝜑 * solution obtained in the three-dimensional objective space. This allows a correct comparison between the values of the objective function in minimizing the problem, giving the same weight to all the parts, and avoiding any of the variables dominating the search.</p><formula xml:id="formula_7">𝑚 + 1 = ∑︁ 𝑗∈𝐽 ( ∑︁ 𝑚∈𝑀 max 𝑠∈𝑆 (𝑃𝑗𝑚𝑠))<label>(12)</label></formula><formula xml:id="formula_8">𝑚 + 2 = ∑︁ 𝑚∈𝑀 ( ∑︁ 𝑗∈𝐽 max 𝑠∈𝑆 (𝐸𝑗𝑚𝑠))<label>(13)</label></formula><formula xml:id="formula_9">𝑚 − 1 = max 𝑗∈𝐽 ( ∑︁ 𝑚∈𝑀 min 𝑠∈𝑆 (𝑃𝑗𝑚𝑠))<label>(14)</label></formula><formula xml:id="formula_10">𝑚 − 2 = ∑︁ 𝑚∈𝑀 ( ∑︁ 𝑗∈𝐽 min 𝑠∈𝑆 (𝐸𝑗𝑚𝑠))<label>(15)</label></formula><p>Equations between 12 and 15 determine both maximum (𝑚 + 1 and 𝑚 + 2 ) and minimum (𝑚 − 1 and 𝑚 − 2 ) values for makespan and energy consumption respectively. For makespan, these values signify the maximum and minimum completion times across all machines, accounting for the maximum and minimum processing times of job tasks on each machine. Similarly, in terms of energy consumption, they represent the maximum and minimum energy utilized among all machines, considering the maximum and minimum energy consumption of all job tasks on each machine.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.">Algorithm Selector</head><p>The selection of algorithms for a given problem 𝐽𝑆𝑃 involves identifying the most appropriate algorithm from a collection capable of solving 𝐽𝑆𝑃 , taking into account the specific characteristics of 𝐽𝑆𝑃 . Rubinoff <ref type="bibr" target="#b12">[13]</ref> formalized this process of algorithm selection. Rubinoff defined key elements, including the problem space 𝑋, representing all instances of 𝐽𝑆𝑃 ; the algorithm space 𝐴, encompassing algorithms capable of solving any 𝑗𝑠𝑝 ∈ 𝑋; and a performance metric 𝑦, which quantifies algorithm effectiveness for solving 𝑗𝑠𝑝 ∈ 𝑋.</p><p>The core objective is to establish a function 𝑆 : 𝑋 → 𝐴 that, for each problem instance 𝑗𝑠𝑝 ∈ 𝑋, selects the optimal algorithm from 𝐴 based on metric 𝑦. To effectively characterize each 𝑗𝑠𝑝, a feature set 𝐹 is constructed to represent 𝑝 and assist in the decision-making process for 𝑆. Consequently, 𝑆 is defined as a composite function 𝑆 = 𝑇 ∘ 𝐺, where 𝐺 : 𝑋 → R |𝐹 | maps 𝑝 to its feature vector in R |𝐹 | , and 𝑇 : R |𝐹 | → 𝐴 selects the algorithm from 𝐴 based on this feature representation. The choice of 𝐹 is critical as it must be informative and accurately represent the characteristics of 𝐽𝑆𝑃 .</p><p>Considering the modeling of algorithm selectors in Figure <ref type="figure" target="#fig_0">1</ref>, an algorithm selector structure is proposed, where it can be seen that it is composed of a training phase, in which the features of a set of instances are processed to generate a set of data and are solved using three solvers: GECODE, CPLEX, and GUROBI. Once the instances have been solved, the extracted features are related to the best algorithm that has solved that instance, and different machine learning models are trained in order to validate which is the one that obtains the best accuracy and thus use it to recommend future instances.</p><p>The following subsections detail each of the training processes.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1.">Feature processing</head><p>For each instance, we extract the typical characteristics of a JSP (Job Shop Scheduling) problem, such as the number of jobs |𝐽|, the number of machines |𝑀 |, the type of Release date, and Due date constraint 𝑅𝑑/𝐷𝑑, and the number of speeds |𝑆|. Additionally, we extract other features that are obtained in a less direct manner and aim to be as informa-tive as possible about the complexity of the instance they represent. The extra features extracted are:</p><formula xml:id="formula_11">max(𝑃 ) (16) mean(𝑃 ) (17) min(𝑃 )<label>(18)</label></formula><p>The maximum processing time <ref type="bibr" target="#b15">(16)</ref> represents the longest time required to complete any single operation within the job set. The mean processing time ( Equation <ref type="formula">17</ref>) gives the average duration of the operations, providing an overall sense of the job length. The minimum processing time (Equation <ref type="formula" target="#formula_11">18</ref>) shows the shortest time needed for any operation, indicating the fastest job segment.</p><formula xml:id="formula_12">max(𝐸) (19) mean(𝐸) (20) min(𝐸)<label>(21)</label></formula><p>The maximum energy consumption (Equation <ref type="formula">19</ref>) indicates the highest energy required for any single operation. The mean energy consumption (Equation <ref type="formula">20</ref>) provides the average energy used across all operations, reflecting the overall energy profile. The minimum energy consumption (Equation <ref type="formula" target="#formula_12">21</ref>) shows the lowest energy usage for an operation, highlighting the least energy-intensive job segment.</p><formula xml:id="formula_13">∑︁ 𝑗∈𝐽 (︃ ∑︁ 𝑚∈𝑀 max 𝑠∈𝑆 (𝑃𝑗𝑚𝑠) )︃<label>(22)</label></formula><p>Maximum makespan (Equation <ref type="formula" target="#formula_13">22</ref>) represents the maximum makespan of the instance obtained, assuming that all operations are performed serially with their maximum processing time. This value gives the longest possible duration to complete all jobs, assuming no parallel processing.</p><formula xml:id="formula_14">max 𝑗∈𝐽 (︃ ∑︁ 𝑚∈𝑀 min 𝑠∈𝑆 (𝑃𝑗𝑚𝑠) )︃<label>(23)</label></formula><p>Minimum makespan (Equation <ref type="formula" target="#formula_14">23</ref>) represents the makespan of the solution obtained by considering that the operations can be performed in parallel and do not overlap. This makespan represents a lower bound of the possible makespan in a solution, indicating the shortest time to complete all jobs if perfectly parallelized.</p><formula xml:id="formula_15">∑︁ 𝑚∈𝑀 (︃ ∑︁ 𝑗∈𝐽 max 𝑠∈𝑆 (𝐸𝑗𝑚𝑠) )︃ (24) ∑︁ 𝑚∈𝑀 (︃ ∑︁ 𝑗∈𝐽 min 𝑠∈𝑆 (𝐸𝑗𝑚𝑠) )︃<label>(25)</label></formula><p>The sum of the maximum (Equation <ref type="formula">24</ref>) and minimum (Equation <ref type="formula" target="#formula_15">25</ref>) energy consumption is obtained by adding for each operation its maximum and minimum energy consumption, respectively. These values provide insights into the total energy requirements of the job set under extreme conditions. </p><formula xml:id="formula_16">⎧ ⎪ ⎨ ⎪ ⎩ −1 𝑅𝑑/𝐷𝑑 = 0 ∑︁ 𝑗∈𝐽 (︃ ∑︁ 𝑚∈𝑀 max 𝑠∈𝑆 (𝑃𝑗𝑚𝑠) )︃ 𝑅𝑑/𝐷𝑑 = 1 (26)</formula><formula xml:id="formula_17">⎧ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎨ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎩ −1 𝑅𝑑/𝐷𝑑 = 0 ∑︁ 𝑗 1 ,𝑗 2 ∈𝐽 𝑗 1 ̸ =𝑗 2 max(0, min(𝐷𝑑 𝑗 1 , 𝐷𝑑 𝑗 2 ) − max(𝑅𝑑 𝑗 1 , 𝑅𝑑 𝑗 2 )) 𝐷𝑑 𝑗 1 − 𝑅𝑑 𝑗 1 |𝐽|•(|𝐽|−1) 𝑅𝑑/𝐷𝑑 = 1 ∑︁ 𝑗 1 ,𝑗 2 ∈𝐽 𝑗 1 ̸ =𝑗 2 ∑︁ 𝑚∈𝑀 max(0, min(𝐷𝑑 𝑗 1 𝑚 , 𝐷𝑑 𝑗 2 𝑚 ) − max(𝑅𝑑 𝑗 1 𝑚 , 𝑅𝑑 𝑗 2 𝑚 )) 𝐷𝑑 𝑗 1 𝑚 − 𝑅𝑑 𝑗 1 𝑚 |𝐽|•(|𝐽|−1)•|𝑀 | 𝑅𝑑/𝐷𝑑 = 2<label>(28)</label></formula><p>Maximum Tardiness (Equation <ref type="formula">26</ref>) represents the maximum possible delay in a solution. If there are no release or due date constraints (𝑅𝑑/𝐷𝑑 = 0), it is set to -1. Otherwise, it sums the maximum processing times, indicating the worst-case delay scenario.</p><formula xml:id="formula_18">⎧ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎨ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎩ −1 𝑅𝑑/𝐷𝑑 = 0 ∑︁ 𝑗∈𝐽 𝐷𝑑𝑗 − 𝑅𝑑𝑗 ∑︀ 𝑚∈𝑀 𝑃𝑗𝑚 |𝐽| 𝑅𝑑/𝐷𝑑 = 1 ∑︁ 𝑗∈𝐽 ∑︁ 𝑚∈𝑀 𝐷𝑑𝑗𝑚 − 𝑅𝑑𝑗𝑚 𝑃𝑗𝑚 |𝐽|•|𝑀 | 𝑅𝑑/𝐷𝑑 = 2<label>(27)</label></formula><p>Time-Window (Equation <ref type="formula" target="#formula_18">27</ref>) represents the number of times a job or operation can be performed within its time window. This metric varies based on the type of release and due date constraints: no constraints, job-level constraints, or operation-level constraints, indicating flexibility in scheduling.</p><p>Overlap (Equation <ref type="formula" target="#formula_17">28</ref>) represents the degree of overlap between the time windows of the jobs or operations. This metric assesses how much the scheduling windows for different jobs or operations coincide, which impacts the complexity and difficulty of scheduling.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2.">Machine Learning Models</head><p>Once the instances have been vectorized and solved, a tabular data set is constructed with the characteristics of each instance and the solver that has found the best solution, that is, the one that has obtained the lowest value of the objective function.</p><p>This dataset has been separated into two subsets, a training subset with a size of 80% and a test subset with the remaining 20%. In addition, it has been ensured that the same number in proportion of instances exists in the two subsets.</p><p>The training dataset has been used to validate different models using five-fold cross-validation. The validated models are the following:</p><p>• Logistic Regression: This is a statistical method for analyzing a dataset in which one or more independent variables determine an outcome. The outcome is measured with a dichotomous variable (i.e., two possible outcomes). Logistic regression is particularly useful for binary classification problems and provides insights into the relationships between the variables and the probability of the outcomes. • Decision Tree: This is a decision support tool that uses a tree-like model of decisions and their possible consequences, including chance event outcomes, resource costs, and utility. A decision tree is built by splitting the dataset into subsets based on the value of input features, with the goal of making the most informative splits. This method is easy to interpret and visualize, making it useful for understanding the structure of the data. • Gaussian Naive Bayes: This is a probabilistic classifier based on Bayes' theorem, with the assumption that the features are independent given the class label and that they follow a Gaussian distribution. Despite its simplicity, Gaussian Naive Bayes can perform well in various situations, especially when the assumption of independence roughly holds true.  <ref type="bibr" target="#b13">[14]</ref>: This is an optimized distributed gradient boosting library designed to be highly efficient, flexible, and portable. It implements machine learning algorithms under the gradient boosting framework, which builds models in a stage-wise fashion and generalizes them by optimizing for a differentiable loss function. XGBoost is known for its speed and performance, making it a popular choice for structured/tabular data. • Multi-Layer Perceptron (MLP): This is a class of feedforward artificial neural networks that consist of at least three layers of nodes: an input layer, a hidden layer, and an output layer. Except for the input nodes, each node (or neuron) uses a nonlinear activation function. MLPs are capable of learning complex mappings from inputs to outputs and are trained using backpropagation.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.">Evaluation</head><p>All experiments were conducted on a system equipped with an Intel 3.60 GHz 12th generation Core i7 CPU and 64 GB of RAM. The implementation was developed in Python 3.11.</p><p>Well-known solvers such as GUROBI <ref type="bibr" target="#b14">[15]</ref>, CPLEX <ref type="bibr" target="#b15">[16]</ref>, and GECODE <ref type="bibr" target="#b16">[17]</ref>, which are implemented on Minizinc, were utilized.</p><p>To evaluate the quality of the solutions obtained, the mono-objective function shown in Equation 11 is used to compare the best solutions from the solvers. Other important results, such as the average objective function, solving time, optimum, satisfaction rate, and the number of unsolved solutions, are presented above.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.1.">Instances</head><p>Instance creation is one of the most important aspects of evaluation as it allows a specific number of instances to be configured to ensure the most comprehensive evaluation possible, taking into account all possible combinations the problem may encounter in real-life scenarios.</p><p>The JSP Benchmark used for testing is composed of the number of jobs (𝐽) and machines (𝑀 ) to determine each job's tasks. These variables can take any natural number. In this test set, the set {5, 10, 20, 25, 50, 100} is considered for 𝐽. The release and due date can take values {0, 1, 2}, speed scaling can take values {1, 3, 5}, and statistical distributions considered are {uniform, normal, exponential}. For each configuration, 10 instances are generated with different seeds to ensure substantial variation between them. Therefore, a total of 6(𝐽) × 6(𝑀 ) × 3(𝑟𝑑𝑑𝑑) × 3(𝑠𝑠) × 3(𝑑𝑖𝑠𝑡) × 10(𝑄) = 9720 instances are obtained. The time allocated for resolving each instance depends on the specific characteristics of the problem. An example of this allocation is illustrated in Figure <ref type="figure" target="#fig_1">2</ref>. In this example, an instance with 50 jobs, 10 machines, no Release Date or Due Date, and a single speed per machine is allocated 149 seconds. The principle is that if the maximum allocation time for an instance is 300,000 milliseconds, each characteristic's impact on the allocation should be equivalent. Therefore, each characteristic contributes at most 300, 000/4 = 75, 000 milliseconds. In this manner, for the given example, if the Release Date and Due Date are assigned at the operation level (RDDD = 2), they contribute 75,000 milliseconds. If they are absent (RDDD = 0), they contribute 50 milliseconds. When assigned at the job level, the contribution is determined by exponential interpolation between these two cases.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.2.">Results</head><p>Upon defining the problem instances and setting appropriate search time limits for each solver, the focus shifted toward analyzing and interpreting the outcomes. This involved evaluating the efficacy of the solvers employed, assessing solution quality, and considering the broader implications within the problem domain. Figure <ref type="figure" target="#fig_2">3</ref> illustrates the distribution of solved instances among GUROBI, CPLEX, and GECODE across three categories: optimal (best solution), satisfied (feasible but not optimal), and unresolved (not solved).</p><p>GUROBI emerged as the top performer overall, solving the highest number of optimal solutions and consistently demonstrating its ability to find acceptable solutions even when optimal ones were unfeasible. This underscores GUROBI's robust capability in efficiently managing a diverse array of problem types. Conversely, GECODE excelled in finding feasible solutions, significantly outperforming other solvers in achieving satisfactory solutions. Moreover, GECODE showed the fewest instances left unresolved, highlighting its reliability in tackling complex problems without abandoning them.</p><p>In contrast, CPLEX, while proficient, faced challenges with more complex problem instances, leading to a higher incidence of unresolved cases. Although it achieved reasonable numbers of optimal and satisfactory solutions, its performance consistency was observed to be less reliable compared to GUROBI and GECODE.</p><p>Table <ref type="table" target="#tab_2">1</ref> compares solution times and objective function values from GUROBI, CPLEX, and GECODE across different job and machine configurations. This analysis reveals insights into each solver's performance characteristics, highlighting strengths and limitations in solving optimization problems.</p><p>For 5 to 20 jobs, GUROBI consistently shows shorter solution times and competitive objective values compared to CPLEX and GECODE. Its efficiency and precision make it highly effective in simpler problem instances.</p><p>In medium-sized scenarios (20 to 50 jobs), GUROBI maintains an edge, particularly with fewer machines, though CPLEX occasionally performs better in specific configurations. GUROBI generally achieves superior objective function values in varied problem setups.</p><p>In complex cases (50 to 100 jobs), GECODE demonstrates exceptional scalability despite encountering timeouts in some instances. GUROBI and CPLEX struggle more often with timeouts as problem size and complexity increase, yet GUROBI often maintains competitive objective values.</p><p>These insights underscore the importance of selecting solvers based on problem specifics. GUROBI excels in smaller to medium-sized instances, balancing efficiency and high-quality solutions. CPLEX performs well in cer-tain medium-sized setups but faces scalability challenges. GECODE shines in complex problems, offering robust scalability and reliability despite occasional computational hurdles. These findings aid practitioners in optimizing solver choices and considering trade-offs between solution quality, efficiency, and problem complexity.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.3.">Complexity analysis</head><p>Observing the results obtained by the methods used, a relationship is observed between the parameters employed and the complexity of the instances. This part of the study focuses on the in-depth analysis of each parameter to observe its contribution to the overall complexity of the instances.  To delve deeper into the data presented in Table <ref type="table" target="#tab_2">1</ref>, Figure <ref type="figure" target="#fig_4">4</ref> provides a general overview of the number of solved instances. Organizing the data by the number of machines, as shown in subfigure 4a, it is evident that as the number of machines increases, the number of solved instances progressively decreases except for the case of 5 machines, where all instances are solved for all possible job configurations. Looking at subfigure 4b, which is organized by the number of jobs for all possible machine configurations, it can be seen that all instances are solved for 5 and 10 jobs, but there is a notable decrease for the rest. Focusing on the set of 20 and 25 jobs, it can be observed that there is a slight decrease from 25 machines onwards; later, the reasons for this are analyzed. For instances with 50 and 100 jobs, the decrease in the number of solved instances is exponential. Only all instances are solved for a configuration of 5 machines for 100 jobs and 5 and 10 machines for 50 jobs. This figure illustrates how the number of jobs and machines affects the possibility of obtaining a solution to the problem at hand.  Table <ref type="table" target="#tab_4">2</ref> shows the validation results of the tested models. As can be seen, XGBoost is the model with the best validation accuracy. Training this model with the total training data set and testing it with the test set finally yields an accuracy of 84.51%. This indicates that XGBoost performs well during the validation phase and generalizes effectively to unseen data. The high accuracy suggests that XGBoost's ensemble learning approach, which combines multiple decision trees to improve performance, is particularly wellsuited to this dataset. Moreover, the performance difference between XGBoost and other models like Random Forest and MLP, which also showed strong results, The confusion matrix in Figure <ref type="figure" target="#fig_5">5</ref> presents the algorithm selector's classification results. Each cell value represents the number of instances where the algorithm selector predicted the algorithm in the corresponding column for a problem best solved by the algorithm in the corresponding row. For instance, the selector correctly identified GUROBI for 611 out of the total instances where GUROBI was the best choice. Similarly, GECODE was correctly identified 396 times. However, there are misclassifications, such as predicting GUROBI when CPLEX was optimal, which occurred 70 times.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.4.">Algorithm selector results</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Model</head><p>An in-depth analysis of the precision and recall metrics provides further insights into the performance of the algorithm selector. GECODE achieved a precision of 90.20%, indicating that 90.20% of the instances predicted as GECODE were correctly identified. Its recall was 86.84%, signifying that 86.84% of the actual GECODE instances were correctly detected. This high precision and recall demonstrate the algorithm selector's robustness in identifying GECODE instances accurately.</p><p>On the other hand, CPLEX showed a precision of 62.76%, meaning that only 62.76% of the predictions for CPLEX were accurate, and a recall of 73.75%, which indicates that 73.75% of the actual CPLEX instances were correctly classified. The lower precision for CPLEX suggests a higher rate of false positives, which could imply that the algorithm selector often misclassifies other algorithms as CPLEX.</p><p>For GUROBI, the precision was 89.85%, reflecting that 89.85% of the GUROBI predictions were correct, and the recall was 86.66%, meaning that 86.66% of the actual GUROBI instances were identified correctly. These values indicate a strong performance, similar to GECODE, highlighting the selector's efficiency in recognizing GUROBI accurately.</p><p>These metrics, precision, and recall, are crucial for evaluating the algorithm selector's effectiveness, as they provide a more comprehensive understanding of its performance beyond simple accuracy. They highlight the selector's strengths in accurately identifying certain algorithms while also pointing out areas where misclassification occurs, thus providing a clear direction for further improvements.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.">Conclusions</head><p>This study explores the complexities of JSP, emphasizing its NP-completeness and diverse optimization goals such as makespan, energy consumption, and tardiness. The problem presents significant computational challenges due to its combinatorial nature, making timely optimal solutions crucial in operations research and manufacturing.</p><p>An innovative aspect of this research is integrating machine learning techniques to enhance algorithm selection for JSP instances. By extracting comprehensive features like job and machine characteristics, release dates, and energy requirements, models such as XGBoost and Random Forest were effectively trained. These models accurately recommend suitable solvers like GUROBI, CPLEX, and GECODE, streamlining decision-making for solving diverse and complex scheduling problems.</p><p>GUROBI proved particularly efficient for smaller to medium-sized instances, consistently delivering optimal and satisfactory solutions across different configurations. Meanwhile, GECODE demonstrated robust scalability, excelling in complex scenarios despite occasional computational challenges. This analysis underscores the importance of selecting solvers based on specific problem parameters to optimize solution quality and computational efficiency.</p><p>Looking ahead, the study suggests refining feature extraction methodologies to enhance the algorithm selector's accu-racy across a broader range of JSP scenarios. Advancements in solver performance under varying constraints promise to expand the practical utility of scheduling optimization tools in real-world manufacturing settings, emphasizing efficiency and sustainability.</p><p>Although the results obtained are not as high as those reported in the literature, it should be noted that the energyaware JSP constitutes a more complex problem compared to the standard JSP and flexible JSP found in the literature. Furthermore, this study uses a smaller set of features than those used in other studies, yet the accuracy achieved is not significantly lower.</p><p>In conclusion, this work advances both academic understanding and practical applications by integrating traditional optimization techniques with modern machine-learning approaches. It offers tools that can significantly benefit research and industrial practices, addressing contemporary challenges in operations management and manufacturing logistics.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Figure 1 :</head><label>1</label><figDesc>Figure 1: Structure of the proposed recommender system.</figDesc><graphic coords="4,105.84,65.44,383.65,242.51" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Figure 2 :</head><label>2</label><figDesc>Figure 2: Distribution of timeout and relationship between time and energy.</figDesc><graphic coords="5,336.30,303.67,160.14,153.12" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Figure 3 :</head><label>3</label><figDesc>Figure 3: Quantity of optimum, satisfied and unresolved instances by each solver.</figDesc><graphic coords="6,72.00,65.83,213.55,161.07" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head></head><label></label><figDesc>(a) by number of machines (b) by number of jobs</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_4"><head>Figure 4 :</head><label>4</label><figDesc>Figure 4: Number of instances solved</figDesc><graphic coords="6,309.59,383.55,221.09,138.48" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_5"><head>Figure 5 :</head><label>5</label><figDesc>Figure 5: Confusion matrix for the algorithm selector predictions (true algorithms on the y-axis, predicted algorithms on the x-axis).</figDesc><graphic coords="7,336.30,558.53,160.34,125.30" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_2"><head>Table 1</head><label>1</label><figDesc>Comparison of mean resolution time and mean objective function obtained with different solvers.</figDesc><table><row><cell>Jobs</cell><cell>Machines</cell><cell>GUROBI</cell><cell>Solve Time CPLEX</cell><cell>Gecode</cell><cell>GUROBI</cell><cell>Objective CPLEX</cell><cell>Gecode</cell></row><row><cell></cell><cell>5</cell><cell>6499.47</cell><cell>9393.54</cell><cell>76754.74</cell><cell>0.58053</cell><cell>0.57924</cell><cell>0.7748</cell></row><row><cell></cell><cell>10</cell><cell>22177.73</cell><cell>35193.18</cell><cell>77122.47</cell><cell>0.46884</cell><cell>0.46842</cell><cell>0.64781</cell></row><row><cell>5</cell><cell>20 25</cell><cell>50222.29 55920.19</cell><cell>57898.63 59732.08</cell><cell>81637.16 79771.76</cell><cell>0.42377 0.41208</cell><cell>0.42422 0.41279</cell><cell>0.58867 0.5677</cell></row><row><cell></cell><cell>50</cell><cell>69226.88</cell><cell>71453.81</cell><cell>95645.56</cell><cell>0.39632</cell><cell>0.40691</cell><cell>0.53307</cell></row><row><cell></cell><cell>100</cell><cell>110177.22</cell><cell>123730.15</cell><cell>154180.72</cell><cell>0.38944</cell><cell>0.42882</cell><cell>0.51176</cell></row><row><cell></cell><cell>5</cell><cell>72263.13</cell><cell>76261.31</cell><cell>85388.49</cell><cell>0.56284</cell><cell>0.56433</cell><cell>0.77965</cell></row><row><cell></cell><cell>10</cell><cell>69831.23</cell><cell>71671.93</cell><cell>86539.69</cell><cell>0.44524</cell><cell>0.4482</cell><cell>0.64365</cell></row><row><cell>10</cell><cell>20 25</cell><cell>71619.72 73930.71</cell><cell>74610.4 78202.9</cell><cell>89860.43 91969.19</cell><cell>0.38908 0.3798</cell><cell>0.39532 0.39247</cell><cell>0.5713 0.54207</cell></row><row><cell></cell><cell>50</cell><cell>89935.3</cell><cell>95355.06</cell><cell>109638.51</cell><cell>0.36431</cell><cell>0.38019</cell><cell>0.49456</cell></row><row><cell></cell><cell>100</cell><cell>146282.37</cell><cell>152079.82</cell><cell>168202.69</cell><cell>0.35029</cell><cell>0.30281</cell><cell>0.35159</cell></row><row><cell></cell><cell>5</cell><cell>80190.01</cell><cell>88650.74</cell><cell>89079.98</cell><cell>0.65727</cell><cell>0.67151</cell><cell>0.83772</cell></row><row><cell></cell><cell>10</cell><cell>80369.98</cell><cell>89368.09</cell><cell>89895.89</cell><cell>0.48249</cell><cell>0.48393</cell><cell>0.71326</cell></row><row><cell>20</cell><cell>20 25</cell><cell>91070.63 92555.52</cell><cell>83648.86 86596.51</cell><cell>92953.44 96516.25</cell><cell>0.40615 0.38184</cell><cell>0.36374 0.3135</cell><cell>0.60325 0.58104</cell></row><row><cell></cell><cell>50</cell><cell>109441.69</cell><cell>97752.14</cell><cell>78306.1</cell><cell>0.35987</cell><cell>0.24087</cell><cell>0.20729</cell></row><row><cell></cell><cell>100</cell><cell>164169.07</cell><cell>161843.67</cell><cell>112923.84</cell><cell>0.29168</cell><cell>0.06245</cell><cell>0.00733</cell></row><row><cell></cell><cell>5</cell><cell>73156.78</cell><cell>86322.15</cell><cell>91381.59</cell><cell>0.64018</cell><cell>0.63401</cell><cell>0.84305</cell></row><row><cell></cell><cell>10</cell><cell>78504.99</cell><cell>83658.47</cell><cell>92142.26</cell><cell>0.57263</cell><cell>0.46831</cell><cell>0.73123</cell></row><row><cell>25</cell><cell>20 25</cell><cell>99400.75 104469.18</cell><cell>83989.35 76519.47</cell><cell>95774.25 102202.35</cell><cell>0.46229 0.42563</cell><cell>0.36985 0.30161</cell><cell>0.62663 0.61462</cell></row><row><cell></cell><cell>50</cell><cell>118524.24</cell><cell>127129.68</cell><cell>59800.26</cell><cell>0.31818</cell><cell>0.21552</cell><cell>0.13974</cell></row><row><cell></cell><cell>100</cell><cell>168354.77</cell><cell>Timeout</cell><cell>113885.23</cell><cell>0.28319</cell><cell>Timeout</cell><cell>0.01021</cell></row><row><cell></cell><cell>5</cell><cell>101811.91</cell><cell>86469.46</cell><cell>110038.97</cell><cell>0.70258</cell><cell>0.49251</cell><cell>0.86043</cell></row><row><cell></cell><cell>10</cell><cell>115365.19</cell><cell>71684.29</cell><cell>110542.27</cell><cell>0.56627</cell><cell>0.21168</cell><cell>0.75717</cell></row><row><cell>50</cell><cell>20 25</cell><cell>108631.5 105251.06</cell><cell>117752.67 120220</cell><cell>78930.63 72639.27</cell><cell>0.37003 0.43698</cell><cell>0.12673 0.16123</cell><cell>0.66168 0.57382</cell></row><row><cell></cell><cell>50</cell><cell>136252.05</cell><cell>Timeout</cell><cell>59343.32</cell><cell>0.47363</cell><cell>Timeout</cell><cell>0.14455</cell></row><row><cell></cell><cell>100</cell><cell>153826.43</cell><cell>Timeout</cell><cell>122941.2</cell><cell>0.91743</cell><cell>Timeout</cell><cell>0.04168</cell></row><row><cell></cell><cell>5</cell><cell>Timeout</cell><cell>114685.56</cell><cell>183151.94</cell><cell>Timeout</cell><cell>0.32913</cell><cell>0.86754</cell></row><row><cell></cell><cell>10</cell><cell>Timeout</cell><cell>Timeout</cell><cell>180057.66</cell><cell>Timeout</cell><cell>Timeout</cell><cell>0.77187</cell></row><row><cell>100</cell><cell>20 25</cell><cell>Timeout Timeout</cell><cell>Timeout Timeout</cell><cell>139246.52 122740.76</cell><cell>Timeout Timeout</cell><cell>Timeout Timeout</cell><cell>0.68049 0.59173</cell></row><row><cell></cell><cell>50</cell><cell>Timeout</cell><cell>Timeout</cell><cell>116506.13</cell><cell>Timeout</cell><cell>Timeout</cell><cell>0.4602</cell></row><row><cell></cell><cell>100</cell><cell>Timeout</cell><cell>Timeout</cell><cell>157021.85</cell><cell>Timeout</cell><cell>Timeout</cell><cell>0.13594</cell></row></table></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_4"><head>Table 2</head><label>2</label><figDesc>Table showing the training results of the different models</figDesc><table /></figure>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">A survey of job shop scheduling problem: The types and models</title>
		<author>
			<persName><forename type="first">H</forename><surname>Xiong</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Shi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Ren</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Hu</surname></persName>
		</author>
		<idno type="DOI">10.1016/j.cor.2022.105731</idno>
		<idno>doi:</idno>
		<ptr target="https://doi.org/10.1016/j.cor.2022.105731" />
	</analytic>
	<monogr>
		<title level="j">Computers &amp; Operations Research</title>
		<imprint>
			<biblScope unit="volume">142</biblScope>
			<biblScope unit="page">105731</biblScope>
			<date type="published" when="2022">2022</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">A hybrid particle swarm optimization and simulated annealing algorithm for the job shop scheduling problem with transport resources</title>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">B M M</forename><surname>Fontes</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><forename type="middle">M</forename><surname>Homayouni</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">F</forename><surname>Gonçalves</surname></persName>
		</author>
		<idno type="DOI">10.1016/j.ejor.2022.09.006</idno>
		<idno>doi:</idno>
		<ptr target="https://doi.org/10.1016/j.ejor.2022.09.006" />
	</analytic>
	<monogr>
		<title level="j">European Journal of Operational Research</title>
		<imprint>
			<biblScope unit="volume">306</biblScope>
			<biblScope unit="page" from="1140" to="1157" />
			<date type="published" when="2023">2023</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Psplibenergy: a extension of psplib library to assess the energy optimization in the rcpsp</title>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">M</forename><surname>Torres</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Barber</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">A</forename><surname>Salido</surname></persName>
		</author>
		<idno type="DOI">10.4114/intartif.vol17iss54pp48-61</idno>
	</analytic>
	<monogr>
		<title level="j">Inteligencia Artificial</title>
		<imprint>
			<biblScope unit="volume">17</biblScope>
			<biblScope unit="page" from="48" to="61" />
			<date type="published" when="2014">2014</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<monogr>
		<title level="m" type="main">Problem decomposition and multi-shot asp solving for jobshop scheduling</title>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">M S</forename><surname>El-Kholany</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Gebser</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Schekotihin</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2022">2022</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">A metaheuristic search technique for solving the warehouse stock management problem and the routing problem in a real company</title>
		<author>
			<persName><forename type="first">C</forename><surname>Perez</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">A</forename><surname>Salido</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Gurrea</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Artificial Intelligence XXXVII</title>
				<meeting><address><addrLine>Cham</addrLine></address></meeting>
		<imprint>
			<publisher>Springer International Publishing</publisher>
			<date type="published" when="2020">2020</date>
			<biblScope unit="page" from="187" to="201" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Multi-objective optimization for energy-efficient flexible job shop scheduling problem with transportation constraints</title>
		<author>
			<persName><forename type="first">M</forename><surname>Dai</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Tang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Giret</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">A</forename><surname>Salido</surname></persName>
		</author>
		<idno type="DOI">10.1016/j.rcim.2019.04.006</idno>
		<idno>doi:</idno>
		<ptr target="https://doi.org/10.1016/j.rcim.2019.04.006" />
	</analytic>
	<monogr>
		<title level="j">Robotics and Computer-Integrated Manufacturing</title>
		<imprint>
			<biblScope unit="volume">59</biblScope>
			<biblScope unit="page" from="143" to="157" />
			<date type="published" when="2019">2019</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">A hybrid metaheuristic with learning for a real supply chain scheduling problem</title>
		<author>
			<persName><forename type="first">C</forename><surname>Pérez</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Climent</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Nicoló</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Arbelaez</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">A</forename><surname>Salido</surname></persName>
		</author>
		<idno type="DOI">10.1016/j.engappai.2023.107188</idno>
		<idno>doi:</idno>
		<ptr target="https://doi.org/10.1016/j.engappai.2023.107188" />
	</analytic>
	<monogr>
		<title level="j">Engineering Applications of Artificial Intelligence</title>
		<imprint>
			<biblScope unit="volume">126</biblScope>
			<biblScope unit="page">107188</biblScope>
			<date type="published" when="2023">2023</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">A genetic algorithm for energy-efficiency in jobshop scheduling</title>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">A</forename><surname>Salido</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Escamilla</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Giret</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Barber</surname></persName>
		</author>
		<idno type="DOI">10.1007/s00170-015-7987-0</idno>
	</analytic>
	<monogr>
		<title level="j">Int J Adv Manuf Technol</title>
		<imprint>
			<biblScope unit="volume">85</biblScope>
			<biblScope unit="page" from="1303" to="1314" />
			<date type="published" when="2016">2016</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">Minimizing non-processing energy consumption/total weighted tardiness &amp; earliness, and makespan into typical production scheduling model-the job shop scheduling problem</title>
		<author>
			<persName><forename type="first">K</forename><surname>Jyothi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">B</forename><surname>Dubey</surname></persName>
		</author>
		<idno type="DOI">10.3233/JIFS-222362</idno>
	</analytic>
	<monogr>
		<title level="j">Journal of Intelligent &amp; Fuzzy Systems</title>
		<imprint>
			<biblScope unit="volume">45</biblScope>
			<biblScope unit="page" from="6959" to="6981" />
			<date type="published" when="2023">2023</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Energy-aware flexible job shop scheduling using mixed integer programming and constraint programming</title>
		<author>
			<persName><forename type="first">A</forename><surname>Ham</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M.-J</forename><surname>Park</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><forename type="middle">M</forename><surname>Kim</surname></persName>
		</author>
		<idno type="DOI">10.1155/2021/8035806</idno>
	</analytic>
	<monogr>
		<title level="j">Mathematical Problems in Engineering</title>
		<imprint>
			<biblScope unit="volume">2021</biblScope>
			<biblScope unit="page" from="1" to="12" />
			<date type="published" when="2021">2021</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">An algorithm selection approach for the flexible job shop scheduling problem: Choosing constraint programming solvers through machine learning</title>
		<author>
			<persName><forename type="first">D</forename><surname>Müller</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">G</forename><surname>Müller</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Kress</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Pesch</surname></persName>
		</author>
		<idno type="DOI">10.1016/j.ejor.2022.01.034</idno>
		<idno>doi:</idno>
		<ptr target="https://doi.org/10.1016/j.ejor.2022.01.034" />
	</analytic>
	<monogr>
		<title level="j">European Journal of Operational Research</title>
		<imprint>
			<biblScope unit="volume">302</biblScope>
			<biblScope unit="page" from="874" to="891" />
			<date type="published" when="2022">2022</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">Instance space analysis and algorithm selection for the job shop scheduling problem</title>
		<author>
			<persName><forename type="first">S</forename><surname>Strassl</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Musliu</surname></persName>
		</author>
		<idno type="DOI">10.1016/j.cor.2021.105661</idno>
		<idno>doi:</idno>
		<ptr target="https://doi.org/10.1016/j.cor.2021.105661" />
	</analytic>
	<monogr>
		<title level="j">Computers &amp; Operations Research</title>
		<imprint>
			<biblScope unit="volume">141</biblScope>
			<biblScope unit="page">105661</biblScope>
			<date type="published" when="2022">2022</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">The algorithm selection problem</title>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">R</forename><surname>Rice</surname></persName>
		</author>
		<idno type="DOI">10.1016/S0065-2458(08)60520-3</idno>
		<idno>(08)60520-3</idno>
		<ptr target="https://doi.org/10.1016/S0065-2458" />
	</analytic>
	<monogr>
		<title level="m">of Advances in Computers</title>
				<meeting><address><addrLine>washington, d</addrLine></address></meeting>
		<imprint>
			<publisher>Elsevier</publisher>
			<date type="published" when="1975-02-19">february 19, 1975. 1976</date>
			<biblScope unit="volume">15</biblScope>
			<biblScope unit="page" from="65" to="118" />
		</imprint>
	</monogr>
	<note>Advances in Computers</note>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">Xgboost: A scalable tree boosting system</title>
		<author>
			<persName><forename type="first">T</forename><surname>Chen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Guestrin</surname></persName>
		</author>
		<idno type="DOI">10.1145/2939672.2939785</idno>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, KDD &apos;16</title>
				<meeting>the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, KDD &apos;16</meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2022">2022</date>
			<biblScope unit="page" from="785" to="794" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<analytic>
		<title level="a" type="main">A cooperative coevolutionary hyper-heuristic approach to solve lot-sizing and job shop scheduling problems using genetic programming</title>
		<author>
			<persName><forename type="first">Y</forename><surname>Zeiträg</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Rui Figueira</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Figueira</surname></persName>
		</author>
		<idno type="DOI">10.1080/00207543.2023.2301044</idno>
	</analytic>
	<monogr>
		<title level="j">International Journal of Production Research</title>
		<imprint>
			<date type="published" when="2024">2024</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b15">
	<analytic>
		<title level="a" type="main">An efficient two-stage genetic algorithm for flexible job-shop scheduling</title>
		<author>
			<persName><forename type="first">D</forename><surname>Rooyani</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><forename type="middle">M</forename><surname>Defersha</surname></persName>
		</author>
		<idno type="DOI">10.1016/j.ifacol.2019.11.585</idno>
	</analytic>
	<monogr>
		<title level="j">IFAC-PapersOnLine</title>
		<imprint>
			<biblScope unit="volume">52</biblScope>
			<date type="published" when="2019">2019</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<analytic>
		<title level="a" type="main">Making compact-table compact</title>
		<author>
			<persName><forename type="first">L</forename><surname>Ingmar</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Schulte</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Principles and Practice of Constraint Programming</title>
				<meeting><address><addrLine>Cham</addrLine></address></meeting>
		<imprint>
			<publisher>Springer International Publishing</publisher>
			<date type="published" when="2018">2018</date>
			<biblScope unit="page" from="210" to="218" />
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
