\documentclass[12pt]{article}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{rsfs}

\usepackage{graphicx}
\usepackage{color}

\textheight 260mm
\topmargin 5mm
\textwidth 180mm
\oddsidemargin -7mm

\newtheorem{algorithm}{Algorithm}

\pagestyle{myheadings}
\markright{(ACS-2007 -- at Miedzyzdroje, Poland)}
\thispagestyle{empty}

\begin{document}

\section{What is Job Shop Scheduling}
We assume we have  
$m$ machines 
$M_1, \cdots, M_m$
and $n$ jobs 
$J_1, \cdots, J_n$
Each job $J_i$ is made up of $n_j$ operations $O_{ij} (i=1, \cdots n_j)$ 
which have to be processed
in the order $O{1j}, O{2j}, \cdots O{n_j}$.
Operation $O_{ij}$ has to be processed without
preemption on a dedicated machine 
$\mu_{ij} \in {M_1, \cdots M_m}$ for timu duration $p_{ij}$.

Each task must be processed on a single
specified machine, and each job visits each machine
exactly once. There is a predefined ordering of the tasks
within a job. A machine can process only one task at a
time. There are no set-up times, no release dates and no
due dates. The makespan is the time from the beginning
of the first task to start to the end of the last task to finish.
The aim is to find start times for each task such that the
makespan is minimised.

The operation  $O_{jr}$  requires the exclusive use of  $M_r$ for an
uninterrupted period of time  $p_{jr}$  



\subsection{An example}

%% Job machine(time)
%% 1 1(2) 2(2) 3(2) 4(2)
%% 2 4(2) 3(2) 2(2) 1(2)
%% 3 2(2) 1(2) 4(2) 3(2)
%% 4 3(2) 4(2) 1(2) 2(2)
%% 5 1(2) 2(2) 3(4) 4(1)
%% 6 4(3) 2(3) 1(1) 3(1)

%% Fig 1 step 4 of coello coello's paper => GANT chart

\end{document}


