Google OR-Tools v9.11
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
multiple_dimensions_bin_packing.proto
Go to the documentation of this file.
1// Copyright 2010-2024 Google LLC
2// Licensed under the Apache License, Version 2.0 (the "License");
3// you may not use this file except in compliance with the License.
4// You may obtain a copy of the License at
5//
6// http://www.apache.org/licenses/LICENSE-2.0
7//
8// Unless required by applicable law or agreed to in writing, software
9// distributed under the License is distributed on an "AS IS" BASIS,
10// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11// See the License for the specific language governing permissions and
12// limitations under the License.
13
14syntax = "proto3";
15
16package operations_research.packing;
17
18option java_multiple_files = true;
19
20// A Multiple Dimension BinPacking problem.
21// It supports the following file format:
22// - 2bp:
23// see http://or.dei.unibo.it/library/two-dimensional-bin-packing-problem
24//
25// The generated problems have the following characteristics:
26//
27// You have identical boxes with n dimensions. The size of one box is stored in
28// the field box_shape().
29// You need to fit all items into the minimum number of boxes. Each item has the
30// same number of dimensions and one or more possible shapes (this usually means
31// that you can rotate the item).
32// Each item must not overlap (in n dimensions) with any other item.
33
34// The shape of one item. each edge is parallel to one axis of a dimension.
35// One shape cannot be rotated, the item itself will contain multiple rotated
36// shapes.
37message MultipleDimensionsBinPackingShape {
38 repeated int64 dimensions = 1;
39}
40
41// Items with multiple shapes often means that they can be rotated.
42message MultipleDimensionsBinPackingItem {
43 // All available shapes of the item.
44 repeated MultipleDimensionsBinPackingShape shapes = 1;
45
46 // The value of the item (useful when solving the problem as a knapsack).
47 int64 value = 2;
48}
49
50// The full problem: the enclosing box and the list of items.
51message MultipleDimensionsBinPackingProblem {
52 // The enclosing shape.
53 MultipleDimensionsBinPackingShape box_shape = 1;
54
55 // All available items of the problem.
56 repeated MultipleDimensionsBinPackingItem items = 2;
57}