ortools.scheduling.jobshop_scheduling_pb2

@generated by mypy-protobuf. Do not edit manually! isort:skip_file This protocol buffer is used to represent jobshop scheduling problems. https://en.wikipedia.org/wiki/Job_shop_scheduling

In a jobshop, a job is a sequence of tasks. A task must be performed by a machine for a given duration. A task cannot be interrupted. All time are >= 0.

Each task in a job must be performed in sequence. That is the second task cannot start before the first one has finished.

One machine can only execute one task at a time.

Tasks can have alternative ways of being executed. Each way specifies the machine that can perform it, the duration, and an optional cost.

Each job can specify hard constraints on its start and end date, as well as soft constraints on its end date. In the case of soft constraints, both earliness and tardiness penalties can be specified.

A makespan cost specifies a penalty based on the max ending time of all jobs.

The objective to minimize is:

the sum of task costs + the earliness-tardiness cost for all jobs + the weighted makespan.

 1# -*- coding: utf-8 -*-
 2# Generated by the protocol buffer compiler.  DO NOT EDIT!
 3# NO CHECKED-IN PROTOBUF GENCODE
 4# source: ortools/scheduling/jobshop_scheduling.proto
 5# Protobuf Python Version: 6.31.1
 6"""Generated protocol buffer code."""
 7from google.protobuf import descriptor as _descriptor
 8from google.protobuf import descriptor_pool as _descriptor_pool
 9from google.protobuf import runtime_version as _runtime_version
10from google.protobuf import symbol_database as _symbol_database
11from google.protobuf.internal import builder as _builder
12_runtime_version.ValidateProtobufRuntimeVersion(
13    _runtime_version.Domain.PUBLIC,
14    6,
15    31,
16    1,
17    '',
18    'ortools/scheduling/jobshop_scheduling.proto'
19)
20# @@protoc_insertion_point(imports)
21
22_sym_db = _symbol_database.Default()
23
24
25from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2
26
27
28DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n+ortools/scheduling/jobshop_scheduling.proto\x12#operations_research.scheduling.jssp\x1a\x1egoogle/protobuf/wrappers.proto\"7\n\x04Task\x12\x0f\n\x07machine\x18\x01 \x03(\x05\x12\x10\n\x08\x64uration\x18\x02 \x03(\x03\x12\x0c\n\x04\x63ost\x18\x03 \x03(\x03\"\xad\x02\n\x03Job\x12\x38\n\x05tasks\x18\x01 \x03(\x0b\x32).operations_research.scheduling.jssp.Task\x12\x33\n\x0e\x65\x61rliest_start\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x16\n\x0e\x65\x61rly_due_date\x18\x03 \x01(\x03\x12\x15\n\rlate_due_date\x18\x04 \x01(\x03\x12$\n\x1c\x65\x61rliness_cost_per_time_unit\x18\x05 \x01(\x03\x12#\n\x1blateness_cost_per_time_unit\x18\x06 \x01(\x03\x12/\n\nlatest_end\x18\x07 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x0c\n\x04name\x18\x10 \x01(\t\"/\n\x14TransitionTimeMatrix\x12\x17\n\x0ftransition_time\x18\x01 \x03(\x03\"r\n\x07Machine\x12Y\n\x16transition_time_matrix\x18\x01 \x01(\x0b\x32\x39.operations_research.scheduling.jssp.TransitionTimeMatrix\x12\x0c\n\x04name\x18\x10 \x01(\t\"U\n\rJobPrecedence\x12\x17\n\x0f\x66irst_job_index\x18\x01 \x01(\x05\x12\x18\n\x10second_job_index\x18\x02 \x01(\x05\x12\x11\n\tmin_delay\x18\x03 \x01(\x03\"\xca\x02\n\x10JsspInputProblem\x12\x36\n\x04jobs\x18\x01 \x03(\x0b\x32(.operations_research.scheduling.jssp.Job\x12>\n\x08machines\x18\x02 \x03(\x0b\x32,.operations_research.scheduling.jssp.Machine\x12G\n\x0bprecedences\x18\x03 \x03(\x0b\x32\x32.operations_research.scheduling.jssp.JobPrecedence\x12#\n\x1bmakespan_cost_per_time_unit\x18\x04 \x01(\x03\x12\x34\n\x0escaling_factor\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12\x0c\n\x04seed\x18\x18 \x01(\x05\x12\x0c\n\x04name\x18\x10 \x01(\t\"=\n\x0c\x41ssignedTask\x12\x19\n\x11\x61lternative_index\x18\x01 \x01(\x05\x12\x12\n\nstart_time\x18\x02 \x01(\x03\"\x81\x01\n\x0b\x41ssignedJob\x12@\n\x05tasks\x18\x01 \x03(\x0b\x32\x31.operations_research.scheduling.jssp.AssignedTask\x12\x15\n\rdue_date_cost\x18\x02 \x01(\x03\x12\x19\n\x11sum_of_task_costs\x18\x03 \x01(\x03\"\x7f\n\x12JsspOutputSolution\x12>\n\x04jobs\x18\x01 \x03(\x0b\x32\x30.operations_research.scheduling.jssp.AssignedJob\x12\x15\n\rmakespan_cost\x18\x02 \x01(\x03\x12\x12\n\ntotal_cost\x18\x03 \x01(\x03\x42G\n\"com.google.ortools.scheduling.jsspP\x01\xaa\x02\x1eGoogle.OrTools.scheduling.Jsspb\x06proto3')
29
30_globals = globals()
31_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
32_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'ortools.scheduling.jobshop_scheduling_pb2', _globals)
33if not _descriptor._USE_C_DESCRIPTORS:
34  _globals['DESCRIPTOR']._loaded_options = None
35  _globals['DESCRIPTOR']._serialized_options = b'\n\"com.google.ortools.scheduling.jsspP\001\252\002\036Google.OrTools.scheduling.Jssp'
36  _globals['_TASK']._serialized_start=116
37  _globals['_TASK']._serialized_end=171
38  _globals['_JOB']._serialized_start=174
39  _globals['_JOB']._serialized_end=475
40  _globals['_TRANSITIONTIMEMATRIX']._serialized_start=477
41  _globals['_TRANSITIONTIMEMATRIX']._serialized_end=524
42  _globals['_MACHINE']._serialized_start=526
43  _globals['_MACHINE']._serialized_end=640
44  _globals['_JOBPRECEDENCE']._serialized_start=642
45  _globals['_JOBPRECEDENCE']._serialized_end=727
46  _globals['_JSSPINPUTPROBLEM']._serialized_start=730
47  _globals['_JSSPINPUTPROBLEM']._serialized_end=1060
48  _globals['_ASSIGNEDTASK']._serialized_start=1062
49  _globals['_ASSIGNEDTASK']._serialized_end=1123
50  _globals['_ASSIGNEDJOB']._serialized_start=1126
51  _globals['_ASSIGNEDJOB']._serialized_end=1255
52  _globals['_JSSPOUTPUTSOLUTION']._serialized_start=1257
53  _globals['_JSSPOUTPUTSOLUTION']._serialized_end=1384
54# @@protoc_insertion_point(module_scope)
DESCRIPTOR: google.protobuf.descriptor.FileDescriptor = <google._upb._message.FileDescriptor object>
class Task(google._upb._message.Message, google.protobuf.message.Message):

This message specifies a task inside a job.

DESCRIPTOR: google.protobuf.descriptor.Descriptor = <google._upb._message.Descriptor object>
class Job(google._upb._message.Message, google.protobuf.message.Message):

A job is an ordered sequence of tasks, plus hard constraints on its earliest start time, and its latest completion time. As well as optional earliness-tardiness penalties on its end date. The job starts with the first task in the list, and ends with the last.

DESCRIPTOR: google.protobuf.descriptor.Descriptor = <google._upb._message.Descriptor object>
class TransitionTimeMatrix(google._upb._message.Message, google.protobuf.message.Message):

Stores the transition time matrix between jobs on a given machine. If the initial job has n jobs, then time[i * n + j] will indicate the minimum delay between the end of a task of a job i performed on this machine and the start of a task of job j performed on the same machine. Nothing can be executed on that machine during this delay.

DESCRIPTOR: google.protobuf.descriptor.Descriptor = <google._upb._message.Descriptor object>
class Machine(google._upb._message.Message, google.protobuf.message.Message):

Abstract base class for protocol messages.

Protocol message classes are almost always generated by the protocol compiler. These generated types subclass Message and implement the methods shown below.

DESCRIPTOR: google.protobuf.descriptor.Descriptor = <google._upb._message.Descriptor object>
class JobPrecedence(google._upb._message.Message, google.protobuf.message.Message):

Specifies a precedence relation between jobs. It states: start(second_job) >= end(first_job) + min_delay.

DESCRIPTOR: google.protobuf.descriptor.Descriptor = <google._upb._message.Descriptor object>
class JsspInputProblem(google._upb._message.Message, google.protobuf.message.Message):

The input of a problem.

DESCRIPTOR: google.protobuf.descriptor.Descriptor = <google._upb._message.Descriptor object>
class AssignedTask(google._upb._message.Message, google.protobuf.message.Message):

Stores how a task is executed.

DESCRIPTOR: google.protobuf.descriptor.Descriptor = <google._upb._message.Descriptor object>
class AssignedJob(google._upb._message.Message, google.protobuf.message.Message):

Stores how a job is executed.

DESCRIPTOR: google.protobuf.descriptor.Descriptor = <google._upb._message.Descriptor object>
class JsspOutputSolution(google._upb._message.Message, google.protobuf.message.Message):

The output of solving a jobshop problem.

DESCRIPTOR: google.protobuf.descriptor.Descriptor = <google._upb._message.Descriptor object>