Therefore, one of the contributions of the present
work is to provide a more formal design of
multiagent system devoted to passenger
transportation using the PASSI methodology, one of
the most relevant agent-oriented software
engineering methodologies nowadays.
3 THE DYNAMIC WORK-SHOP
PROBLEM
The traditional Job-Shop Scheduling Problem
(JSSP), can be described by a set of n jobs {J
j
}
1≤j≤n
which is to be processed on a set of m machines
{M
r
}
1≤r≤m
. Each job has a technological sequence of
machines to be processed. The processing of job J
j
on machine M
r
is called the operation O
jr
. Operation
O
jr
requires the exclusive use of M
r
for an
uninterrupted duration p
jr
, its deterministic
processing time, and each operation O
jr
has pre-
assigned materials {W
i
}
1≤i≤k
. In addition, each job has
a due-date {D
j
}
1≤j≤n
. A schedule is a set of
completion times for each operation {c
jr
}
1≤j≤n;1≤r≤m
that satisfies those constraints. The considered JSSP
involves the scheduling of n jobs J on the m
machines M and consuming k materials W while
minimizing the total tardiness regarding the due-
dates.
On the other hand, the dynamic variant of the
problem adds the fact that the jobs to be processed
are not known in advance and that they must be
scheduled as they arrive. In addition, environmental
changes can cause some events to happen, such as a
machine delay or breakdown, a client
canceling/modifying a job order, among others.
Therefore, the objective is to obtain a schedule that
also minimizes the number of non-placed jobs. It is
one of the most hard NP-complete combinatorial
optimization problems.
4 THE AGENT ARCHITECTURE
The multiagent job-shop scheduling system stands
over the Jade Agent Platform (Bellifemine et al.,
1999), and was modelled with PASSI, an agent-
oriented software development methodology,
supported by the PASSI ToolKit (PTK, 2005) to be
used as an add-in for Rational Rose.
4.1 Agent Identification (A.Id.)
The diagram in Figure 1 shows the identified use
cases for this job-shop system and the leveraged
agents.
Firstly, the Client agent is a GUI agent in charge
of the communication between an actual client and
the rest of the system, providing the possibility of
generating a job order, and to communicate
inbound/outbound eventualities regarding such order
due to changes in the environment (e.g. order
modification/cancellation from client, order
delay/reject from the system).
Order agents are devoted to the job order
management, its breakdown into operations, the
request of necessary materials for each operation
execution to Stock agents, and the request to
Machine agents for the scheduling of each operation.
Machine agents encapsulate each real machine,
being primarily in charge of its schedule
management. This involves processing requests
coming from Order agents and performing the
scheduling process. It also manages eventualities
that can cause schedule changes due to the machine
itself (e.g. delay or breakdown), due to material
supply problems (e.g. delay on delivery), or even
due to client changes (e.g. order cancellation or
modification). For all the above, it carries out a
search in the solutions state space by implementing
an optimization heuristic. In the actual system, a
search algorithm presented by (Yoo et al., 2002),
inspired in simulated annealing was implemented.
Finally, Stock agents main goal are to maintain
adequate levels of materials by generating supply
orders (to the Stock Administrator), and to provide
the necessary materials for the execution of each
operation.
4.2 Roles Identification (R.Id.)
Roles Identification consists in exploring all the
possible paths of the preceding Agents'
Identification Diagram in Figure 2. In fact, each
“<<communicate>>” relationship among two agents
can be in one or more scenarios showing interacting
agents working together to achieve certain desired
system behavior.
As example, the following Figure 3 shows the
scenario in which the Client actor requests the
system to process its job. Each object in the diagram
is described following the <role>:<agent>
convention.
This scenario involves all actors and agents in the
system. It starts with the Client requesting its order
processing through the GUI (Client agent), the
interface generates a JobOrder with all the details
and forwards the request to the manager role of the
Order agent. This agent breaks down the job
obtaining an Operation List containing the sequence
of required operations and related materials. The
manager role requests the Stock agent for the
availability of the materials needed for each Opera-
MULTIAGENT DESIGN FOR DYNAMIC JOB-SHOP SCHEDULING USING PASSI
289