A FAST HEURISTIC FOR A JOB-SHOP PROBLEM O. Gholami, Yu.N. Sotskov United Institute of Informatics Problems, Minsk As a job-shop problem is NP-hard, one cannot design an optimal schedule for a large job-shop problem in a reasonable time. Moreover, many known heuristic algorithms need a lot of CPU-time to construct a good schedule. In this paper, we present a fast heuristic which is computationally compared with one of the most famous heuristic algorithms for a job-shop scheduling. In industry and elsewhere, it is required to process a set of jobs without operation preemptions satisfying both temporal and resource constraints. Temporal constraints say that some jobs have to be finished before some others can be started. Resource constraints say that operations processed on the same machine cannot be processed simultaneously. The objective is to create a schedule specifying when each operation is to begin that satisfies both temporal and resource constraints while taking as a little total time as possible. One can model such scheduling via the following job-shop problem [1]. There are n jobs } ,..., , { 2 1 n J J J J , which need to be processed on m different machines } ,..., , { 2 1 m M M M M . Technological (machine) routes ) ,..., , ( 2 1 i in i i i O O O O of jobs J J i are fixed and may be different for different jobs. Time ij p for processing operation ij O of the job J J i on the corresponding machine M M v is known before scheduling. The objective is to minimize the makespan, which means a schedule length, i.e., a total time when all the jobs J have been completely processed. The above job-shop problem is denoted as max || C J . There are known a variety of exact and heuristic algorithms to solve job-shop problem max || C J , e.g., a branch-and-bound algorithm, a shifting bottleneck algorithm, a simulated annealing algorithm, a tabu search algorithm, a genetic algorithm, etc. Heuristic algorithms for a job-shop problem A shifting bottleneck algorithm [2] is one of the most famous algorithms to solve a problem max || C J heuristically. This algorithm tries to find the best schedule for one machine that is bottleneck. This algorithm calculates the throughput time of each job. The minimum lateness for each machine calculated by finding the path for the machine that reduces the maximum lateness seen for all the jobs on the respective (bottleneck) machine. Then operations on the bottleneck machine are scheduled. After defining new additional temporal constraints, analysis for the remaining machines is continued. The above process is repeated until either all machines M have been accounted for or the