Java Reference

Java Reference

RoutingSearchParameters.java
Go to the documentation of this file.
1 // Generated by the protocol buffer compiler. DO NOT EDIT!
2 // source: ortools/constraint_solver/routing_parameters.proto
3 
4 package com.google.ortools.constraintsolver;
5 
18 public final class RoutingSearchParameters extends
19  com.google.protobuf.GeneratedMessageV3 implements
20  // @@protoc_insertion_point(message_implements:operations_research.RoutingSearchParameters)
22 private static final long serialVersionUID = 0L;
23  // Use RoutingSearchParameters.newBuilder() to construct.
24  private RoutingSearchParameters(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
25  super(builder);
26  }
27  private RoutingSearchParameters() {
28  firstSolutionStrategy_ = 0;
29  localSearchMetaheuristic_ = 0;
30  useCp_ = 0;
31  useCpSat_ = 0;
32  continuousSchedulingSolver_ = 0;
33  mixedIntegerSchedulingSolver_ = 0;
34  logTag_ = "";
35  }
36 
37  @java.lang.Override
38  @SuppressWarnings({"unused"})
39  protected java.lang.Object newInstance(
40  UnusedPrivateParameter unused) {
41  return new RoutingSearchParameters();
42  }
43 
44  @java.lang.Override
45  public final com.google.protobuf.UnknownFieldSet
47  return this.unknownFields;
48  }
50  com.google.protobuf.CodedInputStream input,
51  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
52  throws com.google.protobuf.InvalidProtocolBufferException {
53  this();
54  if (extensionRegistry == null) {
55  throw new java.lang.NullPointerException();
56  }
57  com.google.protobuf.UnknownFieldSet.Builder unknownFields =
58  com.google.protobuf.UnknownFieldSet.newBuilder();
59  try {
60  boolean done = false;
61  while (!done) {
62  int tag = input.readTag();
63  switch (tag) {
64  case 0:
65  done = true;
66  break;
67  case 8: {
68  int rawValue = input.readEnum();
69 
70  firstSolutionStrategy_ = rawValue;
71  break;
72  }
73  case 16: {
74 
75  useUnfilteredFirstSolutionStrategy_ = input.readBool();
76  break;
77  }
78  case 26: {
79  com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.Builder subBuilder = null;
80  if (localSearchOperators_ != null) {
81  subBuilder = localSearchOperators_.toBuilder();
82  }
83  localSearchOperators_ = input.readMessage(com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.parser(), extensionRegistry);
84  if (subBuilder != null) {
85  subBuilder.mergeFrom(localSearchOperators_);
86  localSearchOperators_ = subBuilder.buildPartial();
87  }
88 
89  break;
90  }
91  case 32: {
92  int rawValue = input.readEnum();
93 
94  localSearchMetaheuristic_ = rawValue;
95  break;
96  }
97  case 41: {
98 
99  guidedLocalSearchLambdaCoefficient_ = input.readDouble();
100  break;
101  }
102  case 48: {
103 
104  useDepthFirstSearch_ = input.readBool();
105  break;
106  }
107  case 57: {
108 
109  optimizationStep_ = input.readDouble();
110  break;
111  }
112  case 64: {
113 
114  solutionLimit_ = input.readInt64();
115  break;
116  }
117  case 74: {
118  com.google.protobuf.Duration.Builder subBuilder = null;
119  if (timeLimit_ != null) {
120  subBuilder = timeLimit_.toBuilder();
121  }
122  timeLimit_ = input.readMessage(com.google.protobuf.Duration.parser(), extensionRegistry);
123  if (subBuilder != null) {
124  subBuilder.mergeFrom(timeLimit_);
125  timeLimit_ = subBuilder.buildPartial();
126  }
127 
128  break;
129  }
130  case 82: {
131  com.google.protobuf.Duration.Builder subBuilder = null;
132  if (lnsTimeLimit_ != null) {
133  subBuilder = lnsTimeLimit_.toBuilder();
134  }
135  lnsTimeLimit_ = input.readMessage(com.google.protobuf.Duration.parser(), extensionRegistry);
136  if (subBuilder != null) {
137  subBuilder.mergeFrom(lnsTimeLimit_);
138  lnsTimeLimit_ = subBuilder.buildPartial();
139  }
140 
141  break;
142  }
143  case 88: {
144 
145  useFullPropagation_ = input.readBool();
146  break;
147  }
148  case 104: {
149 
150  logSearch_ = input.readBool();
151  break;
152  }
153  case 113: {
154 
155  savingsNeighborsRatio_ = input.readDouble();
156  break;
157  }
158  case 120: {
159 
160  savingsAddReverseArcs_ = input.readBool();
161  break;
162  }
163  case 129: {
164 
165  cheapestInsertionFarthestSeedsRatio_ = input.readDouble();
166  break;
167  }
168  case 136: {
169 
170  numberOfSolutionsToCollect_ = input.readInt32();
171  break;
172  }
173  case 145: {
174 
175  savingsArcCoefficient_ = input.readDouble();
176  break;
177  }
178  case 152: {
179 
180  savingsParallelRoutes_ = input.readBool();
181  break;
182  }
183  case 160: {
184 
185  relocateExpensiveChainNumArcsToConsider_ = input.readInt32();
186  break;
187  }
188  case 169: {
189 
190  cheapestInsertionFirstSolutionNeighborsRatio_ = input.readDouble();
191  break;
192  }
193  case 177: {
194 
195  logCostScalingFactor_ = input.readDouble();
196  break;
197  }
198  case 185: {
199 
200  savingsMaxMemoryUsageBytes_ = input.readDouble();
201  break;
202  }
203  case 216: {
204  int rawValue = input.readEnum();
205 
206  useCpSat_ = rawValue;
207  break;
208  }
209  case 224: {
210  int rawValue = input.readEnum();
211 
212  useCp_ = rawValue;
213  break;
214  }
215  case 233: {
216 
217  logCostOffset_ = input.readDouble();
218  break;
219  }
220  case 240: {
221 
222  christofidesUseMinimumMatching_ = input.readBool();
223  break;
224  }
225  case 249: {
226 
227  cheapestInsertionLsOperatorNeighborsRatio_ = input.readDouble();
228  break;
229  }
230  case 256: {
231 
232  heuristicExpensiveChainLnsNumArcsToConsider_ = input.readInt32();
233  break;
234  }
235  case 264: {
236  int rawValue = input.readEnum();
237 
238  continuousSchedulingSolver_ = rawValue;
239  break;
240  }
241  case 272: {
242  int rawValue = input.readEnum();
243 
244  mixedIntegerSchedulingSolver_ = rawValue;
245  break;
246  }
247  case 280: {
248 
249  heuristicCloseNodesLnsNumNodes_ = input.readInt32();
250  break;
251  }
252  case 290: {
253  java.lang.String s = input.readStringRequireUtf8();
254 
255  logTag_ = s;
256  break;
257  }
258  case 298: {
259  com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.Builder subBuilder = null;
260  if (improvementLimitParameters_ != null) {
261  subBuilder = improvementLimitParameters_.toBuilder();
262  }
263  improvementLimitParameters_ = input.readMessage(com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.parser(), extensionRegistry);
264  if (subBuilder != null) {
265  subBuilder.mergeFrom(improvementLimitParameters_);
266  improvementLimitParameters_ = subBuilder.buildPartial();
267  }
268 
269  break;
270  }
271  case 320: {
272 
273  cheapestInsertionAddUnperformedEntries_ = input.readBool();
274  break;
275  }
276  case 328: {
277 
278  useMultiArmedBanditConcatenateOperators_ = input.readBool();
279  break;
280  }
281  case 337: {
282 
283  multiArmedBanditCompoundOperatorMemoryCoefficient_ = input.readDouble();
284  break;
285  }
286  case 345: {
287 
288  multiArmedBanditCompoundOperatorExplorationCoefficient_ = input.readDouble();
289  break;
290  }
291  case 352: {
292 
293  cheapestInsertionFirstSolutionMinNeighbors_ = input.readInt32();
294  break;
295  }
296  case 360: {
297 
298  cheapestInsertionLsOperatorMinNeighbors_ = input.readInt32();
299  break;
300  }
301  default: {
302  if (!parseUnknownField(
303  input, unknownFields, extensionRegistry, tag)) {
304  done = true;
305  }
306  break;
307  }
308  }
309  }
310  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
311  throw e.setUnfinishedMessage(this);
312  } catch (java.io.IOException e) {
313  throw new com.google.protobuf.InvalidProtocolBufferException(
314  e).setUnfinishedMessage(this);
315  } finally {
316  this.unknownFields = unknownFields.build();
317  makeExtensionsImmutable();
318  }
319  }
320  public static final com.google.protobuf.Descriptors.Descriptor
322  return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_descriptor;
323  }
324 
325  @java.lang.Override
326  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
328  return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_fieldAccessorTable
329  .ensureFieldAccessorsInitialized(
330  com.google.ortools.constraintsolver.RoutingSearchParameters.class, com.google.ortools.constraintsolver.RoutingSearchParameters.Builder.class);
331  }
332 
341  public enum SchedulingSolver
342  implements com.google.protobuf.ProtocolMessageEnum {
346  UNSET(0),
350  GLOP(1),
354  CP_SAT(2),
356  ;
357 
361  public static final int UNSET_VALUE = 0;
365  public static final int GLOP_VALUE = 1;
369  public static final int CP_SAT_VALUE = 2;
370 
371 
372  public final int getNumber() {
373  if (this == UNRECOGNIZED) {
374  throw new java.lang.IllegalArgumentException(
375  "Can't get the number of an unknown enum value.");
376  }
377  return value;
378  }
379 
385  @java.lang.Deprecated
386  public static SchedulingSolver valueOf(int value) {
387  return forNumber(value);
388  }
389 
394  public static SchedulingSolver forNumber(int value) {
395  switch (value) {
396  case 0: return UNSET;
397  case 1: return GLOP;
398  case 2: return CP_SAT;
399  default: return null;
400  }
401  }
402 
403  public static com.google.protobuf.Internal.EnumLiteMap<SchedulingSolver>
405  return internalValueMap;
406  }
407  private static final com.google.protobuf.Internal.EnumLiteMap<
408  SchedulingSolver> internalValueMap =
409  new com.google.protobuf.Internal.EnumLiteMap<SchedulingSolver>() {
410  public SchedulingSolver findValueByNumber(int number) {
411  return SchedulingSolver.forNumber(number);
412  }
413  };
414 
415  public final com.google.protobuf.Descriptors.EnumValueDescriptor
417  if (this == UNRECOGNIZED) {
418  throw new java.lang.IllegalStateException(
419  "Can't get the descriptor of an unrecognized enum value.");
420  }
421  return getDescriptor().getValues().get(ordinal());
422  }
423  public final com.google.protobuf.Descriptors.EnumDescriptor
425  return getDescriptor();
426  }
427  public static final com.google.protobuf.Descriptors.EnumDescriptor
429  return com.google.ortools.constraintsolver.RoutingSearchParameters.getDescriptor().getEnumTypes().get(0);
430  }
431 
432  private static final SchedulingSolver[] VALUES = values();
433 
434  public static SchedulingSolver valueOf(
435  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
436  if (desc.getType() != getDescriptor()) {
437  throw new java.lang.IllegalArgumentException(
438  "EnumValueDescriptor is not for this type.");
439  }
440  if (desc.getIndex() == -1) {
441  return UNRECOGNIZED;
442  }
443  return VALUES[desc.getIndex()];
444  }
445 
446  private final int value;
447 
448  private SchedulingSolver(int value) {
449  this.value = value;
450  }
451 
452  // @@protoc_insertion_point(enum_scope:operations_research.RoutingSearchParameters.SchedulingSolver)
453  }
454 
456  // @@protoc_insertion_point(interface_extends:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
457  com.google.protobuf.MessageOrBuilder {
458 
492  com.google.ortools.util.OptionalBoolean getUseRelocate();
493 
527  com.google.ortools.util.OptionalBoolean getUseRelocatePair();
528 
558  com.google.ortools.util.OptionalBoolean getUseLightRelocatePair();
559 
619  com.google.ortools.util.OptionalBoolean getUseRelocateNeighbors();
620 
660  com.google.ortools.util.OptionalBoolean getUseRelocateSubtrip();
661 
691  com.google.ortools.util.OptionalBoolean getUseExchange();
692 
722  com.google.ortools.util.OptionalBoolean getUseExchangePair();
723 
743  com.google.ortools.util.OptionalBoolean getUseExchangeSubtrip();
744 
778  com.google.ortools.util.OptionalBoolean getUseCross();
779 
797  com.google.ortools.util.OptionalBoolean getUseCrossExchange();
798 
834  com.google.ortools.util.OptionalBoolean getUseRelocateExpensiveChain();
835 
871  com.google.ortools.util.OptionalBoolean getUseTwoOpt();
872 
910  com.google.ortools.util.OptionalBoolean getUseOrOpt();
911 
935  com.google.ortools.util.OptionalBoolean getUseLinKernighan();
936 
964  com.google.ortools.util.OptionalBoolean getUseTspOpt();
965 
995  com.google.ortools.util.OptionalBoolean getUseMakeActive();
996 
1032  com.google.ortools.util.OptionalBoolean getUseRelocateAndMakeActive();
1033 
1059  com.google.ortools.util.OptionalBoolean getUseMakeInactive();
1060 
1088  com.google.ortools.util.OptionalBoolean getUseMakeChainInactive();
1089 
1115  com.google.ortools.util.OptionalBoolean getUseSwapActive();
1116 
1152  com.google.ortools.util.OptionalBoolean getUseExtendedSwapActive();
1153 
1191  com.google.ortools.util.OptionalBoolean getUseNodePairSwapActive();
1192 
1224  com.google.ortools.util.OptionalBoolean getUsePathLns();
1225 
1243  com.google.ortools.util.OptionalBoolean getUseFullPathLns();
1244 
1272  com.google.ortools.util.OptionalBoolean getUseTspLns();
1273 
1295  com.google.ortools.util.OptionalBoolean getUseInactiveLns();
1296 
1318  com.google.ortools.util.OptionalBoolean getUseGlobalCheapestInsertionPathLns();
1319 
1337  com.google.ortools.util.OptionalBoolean getUseLocalCheapestInsertionPathLns();
1338 
1360  com.google.ortools.util.OptionalBoolean getUseRelocatePathGlobalCheapestInsertionInsertUnperformed();
1361 
1385  com.google.ortools.util.OptionalBoolean getUseGlobalCheapestInsertionExpensiveChainLns();
1386 
1406  com.google.ortools.util.OptionalBoolean getUseLocalCheapestInsertionExpensiveChainLns();
1407 
1431  com.google.ortools.util.OptionalBoolean getUseGlobalCheapestInsertionCloseNodesLns();
1432 
1452  com.google.ortools.util.OptionalBoolean getUseLocalCheapestInsertionCloseNodesLns();
1453  }
1462  public static final class LocalSearchNeighborhoodOperators extends
1463  com.google.protobuf.GeneratedMessageV3 implements
1464  // @@protoc_insertion_point(message_implements:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
1466  private static final long serialVersionUID = 0L;
1467  // Use LocalSearchNeighborhoodOperators.newBuilder() to construct.
1468  private LocalSearchNeighborhoodOperators(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
1469  super(builder);
1470  }
1472  useRelocate_ = 0;
1473  useRelocatePair_ = 0;
1474  useLightRelocatePair_ = 0;
1475  useRelocateNeighbors_ = 0;
1476  useRelocateSubtrip_ = 0;
1477  useExchange_ = 0;
1478  useExchangePair_ = 0;
1479  useExchangeSubtrip_ = 0;
1480  useCross_ = 0;
1481  useCrossExchange_ = 0;
1482  useRelocateExpensiveChain_ = 0;
1483  useTwoOpt_ = 0;
1484  useOrOpt_ = 0;
1485  useLinKernighan_ = 0;
1486  useTspOpt_ = 0;
1487  useMakeActive_ = 0;
1488  useRelocateAndMakeActive_ = 0;
1489  useMakeInactive_ = 0;
1490  useMakeChainInactive_ = 0;
1491  useSwapActive_ = 0;
1492  useExtendedSwapActive_ = 0;
1493  useNodePairSwapActive_ = 0;
1494  usePathLns_ = 0;
1495  useFullPathLns_ = 0;
1496  useTspLns_ = 0;
1497  useInactiveLns_ = 0;
1498  useGlobalCheapestInsertionPathLns_ = 0;
1499  useLocalCheapestInsertionPathLns_ = 0;
1500  useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = 0;
1501  useGlobalCheapestInsertionExpensiveChainLns_ = 0;
1502  useLocalCheapestInsertionExpensiveChainLns_ = 0;
1503  useGlobalCheapestInsertionCloseNodesLns_ = 0;
1504  useLocalCheapestInsertionCloseNodesLns_ = 0;
1505  }
1506 
1507  @java.lang.Override
1508  @SuppressWarnings({"unused"})
1509  protected java.lang.Object newInstance(
1510  UnusedPrivateParameter unused) {
1511  return new LocalSearchNeighborhoodOperators();
1512  }
1513 
1514  @java.lang.Override
1515  public final com.google.protobuf.UnknownFieldSet
1517  return this.unknownFields;
1518  }
1520  com.google.protobuf.CodedInputStream input,
1521  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1522  throws com.google.protobuf.InvalidProtocolBufferException {
1523  this();
1524  if (extensionRegistry == null) {
1525  throw new java.lang.NullPointerException();
1526  }
1527  com.google.protobuf.UnknownFieldSet.Builder unknownFields =
1528  com.google.protobuf.UnknownFieldSet.newBuilder();
1529  try {
1530  boolean done = false;
1531  while (!done) {
1532  int tag = input.readTag();
1533  switch (tag) {
1534  case 0:
1535  done = true;
1536  break;
1537  case 8: {
1538  int rawValue = input.readEnum();
1539 
1540  useRelocate_ = rawValue;
1541  break;
1542  }
1543  case 16: {
1544  int rawValue = input.readEnum();
1545 
1546  useRelocatePair_ = rawValue;
1547  break;
1548  }
1549  case 24: {
1550  int rawValue = input.readEnum();
1551 
1552  useRelocateNeighbors_ = rawValue;
1553  break;
1554  }
1555  case 32: {
1556  int rawValue = input.readEnum();
1557 
1558  useExchange_ = rawValue;
1559  break;
1560  }
1561  case 40: {
1562  int rawValue = input.readEnum();
1563 
1564  useCross_ = rawValue;
1565  break;
1566  }
1567  case 48: {
1568  int rawValue = input.readEnum();
1569 
1570  useCrossExchange_ = rawValue;
1571  break;
1572  }
1573  case 56: {
1574  int rawValue = input.readEnum();
1575 
1576  useTwoOpt_ = rawValue;
1577  break;
1578  }
1579  case 64: {
1580  int rawValue = input.readEnum();
1581 
1582  useOrOpt_ = rawValue;
1583  break;
1584  }
1585  case 72: {
1586  int rawValue = input.readEnum();
1587 
1588  useLinKernighan_ = rawValue;
1589  break;
1590  }
1591  case 80: {
1592  int rawValue = input.readEnum();
1593 
1594  useTspOpt_ = rawValue;
1595  break;
1596  }
1597  case 88: {
1598  int rawValue = input.readEnum();
1599 
1600  useMakeActive_ = rawValue;
1601  break;
1602  }
1603  case 96: {
1604  int rawValue = input.readEnum();
1605 
1606  useMakeInactive_ = rawValue;
1607  break;
1608  }
1609  case 104: {
1610  int rawValue = input.readEnum();
1611 
1612  useMakeChainInactive_ = rawValue;
1613  break;
1614  }
1615  case 112: {
1616  int rawValue = input.readEnum();
1617 
1618  useSwapActive_ = rawValue;
1619  break;
1620  }
1621  case 120: {
1622  int rawValue = input.readEnum();
1623 
1624  useExtendedSwapActive_ = rawValue;
1625  break;
1626  }
1627  case 128: {
1628  int rawValue = input.readEnum();
1629 
1630  usePathLns_ = rawValue;
1631  break;
1632  }
1633  case 136: {
1634  int rawValue = input.readEnum();
1635 
1636  useFullPathLns_ = rawValue;
1637  break;
1638  }
1639  case 144: {
1640  int rawValue = input.readEnum();
1641 
1642  useTspLns_ = rawValue;
1643  break;
1644  }
1645  case 152: {
1646  int rawValue = input.readEnum();
1647 
1648  useInactiveLns_ = rawValue;
1649  break;
1650  }
1651  case 160: {
1652  int rawValue = input.readEnum();
1653 
1654  useNodePairSwapActive_ = rawValue;
1655  break;
1656  }
1657  case 168: {
1658  int rawValue = input.readEnum();
1659 
1660  useRelocateAndMakeActive_ = rawValue;
1661  break;
1662  }
1663  case 176: {
1664  int rawValue = input.readEnum();
1665 
1666  useExchangePair_ = rawValue;
1667  break;
1668  }
1669  case 184: {
1670  int rawValue = input.readEnum();
1671 
1672  useRelocateExpensiveChain_ = rawValue;
1673  break;
1674  }
1675  case 192: {
1676  int rawValue = input.readEnum();
1677 
1678  useLightRelocatePair_ = rawValue;
1679  break;
1680  }
1681  case 200: {
1682  int rawValue = input.readEnum();
1683 
1684  useRelocateSubtrip_ = rawValue;
1685  break;
1686  }
1687  case 208: {
1688  int rawValue = input.readEnum();
1689 
1690  useExchangeSubtrip_ = rawValue;
1691  break;
1692  }
1693  case 216: {
1694  int rawValue = input.readEnum();
1695 
1696  useGlobalCheapestInsertionPathLns_ = rawValue;
1697  break;
1698  }
1699  case 224: {
1700  int rawValue = input.readEnum();
1701 
1702  useLocalCheapestInsertionPathLns_ = rawValue;
1703  break;
1704  }
1705  case 232: {
1706  int rawValue = input.readEnum();
1707 
1708  useGlobalCheapestInsertionExpensiveChainLns_ = rawValue;
1709  break;
1710  }
1711  case 240: {
1712  int rawValue = input.readEnum();
1713 
1714  useLocalCheapestInsertionExpensiveChainLns_ = rawValue;
1715  break;
1716  }
1717  case 248: {
1718  int rawValue = input.readEnum();
1719 
1720  useGlobalCheapestInsertionCloseNodesLns_ = rawValue;
1721  break;
1722  }
1723  case 256: {
1724  int rawValue = input.readEnum();
1725 
1726  useLocalCheapestInsertionCloseNodesLns_ = rawValue;
1727  break;
1728  }
1729  case 264: {
1730  int rawValue = input.readEnum();
1731 
1732  useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = rawValue;
1733  break;
1734  }
1735  default: {
1736  if (!parseUnknownField(
1737  input, unknownFields, extensionRegistry, tag)) {
1738  done = true;
1739  }
1740  break;
1741  }
1742  }
1743  }
1744  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
1745  throw e.setUnfinishedMessage(this);
1746  } catch (java.io.IOException e) {
1747  throw new com.google.protobuf.InvalidProtocolBufferException(
1748  e).setUnfinishedMessage(this);
1749  } finally {
1750  this.unknownFields = unknownFields.build();
1751  makeExtensionsImmutable();
1752  }
1753  }
1754  public static final com.google.protobuf.Descriptors.Descriptor
1756  return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_LocalSearchNeighborhoodOperators_descriptor;
1757  }
1758 
1759  @java.lang.Override
1760  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
1762  return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_LocalSearchNeighborhoodOperators_fieldAccessorTable
1763  .ensureFieldAccessorsInitialized(
1764  com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.class, com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.Builder.class);
1765  }
1766 
1767  public static final int USE_RELOCATE_FIELD_NUMBER = 1;
1768  private int useRelocate_;
1785  @java.lang.Override public int getUseRelocateValue() {
1786  return useRelocate_;
1787  }
1804  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseRelocate() {
1805  @SuppressWarnings("deprecation")
1806  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useRelocate_);
1807  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
1808  }
1809 
1810  public static final int USE_RELOCATE_PAIR_FIELD_NUMBER = 2;
1811  private int useRelocatePair_;
1828  @java.lang.Override public int getUseRelocatePairValue() {
1829  return useRelocatePair_;
1830  }
1847  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseRelocatePair() {
1848  @SuppressWarnings("deprecation")
1849  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useRelocatePair_);
1850  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
1851  }
1852 
1853  public static final int USE_LIGHT_RELOCATE_PAIR_FIELD_NUMBER = 24;
1854  private int useLightRelocatePair_;
1869  @java.lang.Override public int getUseLightRelocatePairValue() {
1870  return useLightRelocatePair_;
1871  }
1886  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseLightRelocatePair() {
1887  @SuppressWarnings("deprecation")
1888  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useLightRelocatePair_);
1889  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
1890  }
1891 
1892  public static final int USE_RELOCATE_NEIGHBORS_FIELD_NUMBER = 3;
1893  private int useRelocateNeighbors_;
1923  @java.lang.Override public int getUseRelocateNeighborsValue() {
1924  return useRelocateNeighbors_;
1925  }
1955  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseRelocateNeighbors() {
1956  @SuppressWarnings("deprecation")
1957  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useRelocateNeighbors_);
1958  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
1959  }
1960 
1961  public static final int USE_RELOCATE_SUBTRIP_FIELD_NUMBER = 25;
1962  private int useRelocateSubtrip_;
1982  @java.lang.Override public int getUseRelocateSubtripValue() {
1983  return useRelocateSubtrip_;
1984  }
2004  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseRelocateSubtrip() {
2005  @SuppressWarnings("deprecation")
2006  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useRelocateSubtrip_);
2007  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2008  }
2009 
2010  public static final int USE_EXCHANGE_FIELD_NUMBER = 4;
2011  private int useExchange_;
2026  @java.lang.Override public int getUseExchangeValue() {
2027  return useExchange_;
2028  }
2043  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseExchange() {
2044  @SuppressWarnings("deprecation")
2045  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useExchange_);
2046  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2047  }
2048 
2049  public static final int USE_EXCHANGE_PAIR_FIELD_NUMBER = 22;
2050  private int useExchangePair_;
2065  @java.lang.Override public int getUseExchangePairValue() {
2066  return useExchangePair_;
2067  }
2082  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseExchangePair() {
2083  @SuppressWarnings("deprecation")
2084  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useExchangePair_);
2085  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2086  }
2087 
2088  public static final int USE_EXCHANGE_SUBTRIP_FIELD_NUMBER = 26;
2089  private int useExchangeSubtrip_;
2099  @java.lang.Override public int getUseExchangeSubtripValue() {
2100  return useExchangeSubtrip_;
2101  }
2111  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseExchangeSubtrip() {
2112  @SuppressWarnings("deprecation")
2113  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useExchangeSubtrip_);
2114  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2115  }
2116 
2117  public static final int USE_CROSS_FIELD_NUMBER = 5;
2118  private int useCross_;
2135  @java.lang.Override public int getUseCrossValue() {
2136  return useCross_;
2137  }
2154  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseCross() {
2155  @SuppressWarnings("deprecation")
2156  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useCross_);
2157  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2158  }
2159 
2160  public static final int USE_CROSS_EXCHANGE_FIELD_NUMBER = 6;
2161  private int useCrossExchange_;
2170  @java.lang.Override public int getUseCrossExchangeValue() {
2171  return useCrossExchange_;
2172  }
2181  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseCrossExchange() {
2182  @SuppressWarnings("deprecation")
2183  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useCrossExchange_);
2184  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2185  }
2186 
2187  public static final int USE_RELOCATE_EXPENSIVE_CHAIN_FIELD_NUMBER = 23;
2188  private int useRelocateExpensiveChain_;
2206  @java.lang.Override public int getUseRelocateExpensiveChainValue() {
2207  return useRelocateExpensiveChain_;
2208  }
2226  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseRelocateExpensiveChain() {
2227  @SuppressWarnings("deprecation")
2228  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useRelocateExpensiveChain_);
2229  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2230  }
2231 
2232  public static final int USE_TWO_OPT_FIELD_NUMBER = 7;
2233  private int useTwoOpt_;
2251  @java.lang.Override public int getUseTwoOptValue() {
2252  return useTwoOpt_;
2253  }
2271  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseTwoOpt() {
2272  @SuppressWarnings("deprecation")
2273  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useTwoOpt_);
2274  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2275  }
2276 
2277  public static final int USE_OR_OPT_FIELD_NUMBER = 8;
2278  private int useOrOpt_;
2297  @java.lang.Override public int getUseOrOptValue() {
2298  return useOrOpt_;
2299  }
2318  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseOrOpt() {
2319  @SuppressWarnings("deprecation")
2320  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useOrOpt_);
2321  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2322  }
2323 
2324  public static final int USE_LIN_KERNIGHAN_FIELD_NUMBER = 9;
2325  private int useLinKernighan_;
2337  @java.lang.Override public int getUseLinKernighanValue() {
2338  return useLinKernighan_;
2339  }
2351  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseLinKernighan() {
2352  @SuppressWarnings("deprecation")
2353  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useLinKernighan_);
2354  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2355  }
2356 
2357  public static final int USE_TSP_OPT_FIELD_NUMBER = 10;
2358  private int useTspOpt_;
2372  @java.lang.Override public int getUseTspOptValue() {
2373  return useTspOpt_;
2374  }
2388  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseTspOpt() {
2389  @SuppressWarnings("deprecation")
2390  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useTspOpt_);
2391  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2392  }
2393 
2394  public static final int USE_MAKE_ACTIVE_FIELD_NUMBER = 11;
2395  private int useMakeActive_;
2410  @java.lang.Override public int getUseMakeActiveValue() {
2411  return useMakeActive_;
2412  }
2427  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseMakeActive() {
2428  @SuppressWarnings("deprecation")
2429  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useMakeActive_);
2430  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2431  }
2432 
2433  public static final int USE_RELOCATE_AND_MAKE_ACTIVE_FIELD_NUMBER = 21;
2434  private int useRelocateAndMakeActive_;
2452  @java.lang.Override public int getUseRelocateAndMakeActiveValue() {
2453  return useRelocateAndMakeActive_;
2454  }
2472  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseRelocateAndMakeActive() {
2473  @SuppressWarnings("deprecation")
2474  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useRelocateAndMakeActive_);
2475  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2476  }
2477 
2478  public static final int USE_MAKE_INACTIVE_FIELD_NUMBER = 12;
2479  private int useMakeInactive_;
2492  @java.lang.Override public int getUseMakeInactiveValue() {
2493  return useMakeInactive_;
2494  }
2507  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseMakeInactive() {
2508  @SuppressWarnings("deprecation")
2509  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useMakeInactive_);
2510  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2511  }
2512 
2513  public static final int USE_MAKE_CHAIN_INACTIVE_FIELD_NUMBER = 13;
2514  private int useMakeChainInactive_;
2528  @java.lang.Override public int getUseMakeChainInactiveValue() {
2529  return useMakeChainInactive_;
2530  }
2544  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseMakeChainInactive() {
2545  @SuppressWarnings("deprecation")
2546  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useMakeChainInactive_);
2547  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2548  }
2549 
2550  public static final int USE_SWAP_ACTIVE_FIELD_NUMBER = 14;
2551  private int useSwapActive_;
2564  @java.lang.Override public int getUseSwapActiveValue() {
2565  return useSwapActive_;
2566  }
2579  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseSwapActive() {
2580  @SuppressWarnings("deprecation")
2581  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useSwapActive_);
2582  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2583  }
2584 
2585  public static final int USE_EXTENDED_SWAP_ACTIVE_FIELD_NUMBER = 15;
2586  private int useExtendedSwapActive_;
2604  @java.lang.Override public int getUseExtendedSwapActiveValue() {
2605  return useExtendedSwapActive_;
2606  }
2624  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseExtendedSwapActive() {
2625  @SuppressWarnings("deprecation")
2626  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useExtendedSwapActive_);
2627  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2628  }
2629 
2630  public static final int USE_NODE_PAIR_SWAP_ACTIVE_FIELD_NUMBER = 20;
2631  private int useNodePairSwapActive_;
2650  @java.lang.Override public int getUseNodePairSwapActiveValue() {
2651  return useNodePairSwapActive_;
2652  }
2671  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseNodePairSwapActive() {
2672  @SuppressWarnings("deprecation")
2673  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useNodePairSwapActive_);
2674  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2675  }
2676 
2677  public static final int USE_PATH_LNS_FIELD_NUMBER = 16;
2678  private int usePathLns_;
2694  @java.lang.Override public int getUsePathLnsValue() {
2695  return usePathLns_;
2696  }
2712  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUsePathLns() {
2713  @SuppressWarnings("deprecation")
2714  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(usePathLns_);
2715  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2716  }
2717 
2718  public static final int USE_FULL_PATH_LNS_FIELD_NUMBER = 17;
2719  private int useFullPathLns_;
2728  @java.lang.Override public int getUseFullPathLnsValue() {
2729  return useFullPathLns_;
2730  }
2739  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseFullPathLns() {
2740  @SuppressWarnings("deprecation")
2741  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useFullPathLns_);
2742  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2743  }
2744 
2745  public static final int USE_TSP_LNS_FIELD_NUMBER = 18;
2746  private int useTspLns_;
2760  @java.lang.Override public int getUseTspLnsValue() {
2761  return useTspLns_;
2762  }
2776  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseTspLns() {
2777  @SuppressWarnings("deprecation")
2778  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useTspLns_);
2779  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2780  }
2781 
2782  public static final int USE_INACTIVE_LNS_FIELD_NUMBER = 19;
2783  private int useInactiveLns_;
2794  @java.lang.Override public int getUseInactiveLnsValue() {
2795  return useInactiveLns_;
2796  }
2807  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseInactiveLns() {
2808  @SuppressWarnings("deprecation")
2809  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useInactiveLns_);
2810  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2811  }
2812 
2814  private int useGlobalCheapestInsertionPathLns_;
2825  @java.lang.Override public int getUseGlobalCheapestInsertionPathLnsValue() {
2826  return useGlobalCheapestInsertionPathLns_;
2827  }
2838  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseGlobalCheapestInsertionPathLns() {
2839  @SuppressWarnings("deprecation")
2840  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useGlobalCheapestInsertionPathLns_);
2841  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2842  }
2843 
2845  private int useLocalCheapestInsertionPathLns_;
2854  @java.lang.Override public int getUseLocalCheapestInsertionPathLnsValue() {
2855  return useLocalCheapestInsertionPathLns_;
2856  }
2865  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseLocalCheapestInsertionPathLns() {
2866  @SuppressWarnings("deprecation")
2867  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useLocalCheapestInsertionPathLns_);
2868  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2869  }
2870 
2872  private int useRelocatePathGlobalCheapestInsertionInsertUnperformed_;
2884  return useRelocatePathGlobalCheapestInsertionInsertUnperformed_;
2885  }
2896  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseRelocatePathGlobalCheapestInsertionInsertUnperformed() {
2897  @SuppressWarnings("deprecation")
2898  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useRelocatePathGlobalCheapestInsertionInsertUnperformed_);
2899  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2900  }
2901 
2903  private int useGlobalCheapestInsertionExpensiveChainLns_;
2915  @java.lang.Override public int getUseGlobalCheapestInsertionExpensiveChainLnsValue() {
2916  return useGlobalCheapestInsertionExpensiveChainLns_;
2917  }
2929  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseGlobalCheapestInsertionExpensiveChainLns() {
2930  @SuppressWarnings("deprecation")
2931  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useGlobalCheapestInsertionExpensiveChainLns_);
2932  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2933  }
2934 
2936  private int useLocalCheapestInsertionExpensiveChainLns_;
2946  @java.lang.Override public int getUseLocalCheapestInsertionExpensiveChainLnsValue() {
2947  return useLocalCheapestInsertionExpensiveChainLns_;
2948  }
2958  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseLocalCheapestInsertionExpensiveChainLns() {
2959  @SuppressWarnings("deprecation")
2960  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useLocalCheapestInsertionExpensiveChainLns_);
2961  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2962  }
2963 
2965  private int useGlobalCheapestInsertionCloseNodesLns_;
2977  @java.lang.Override public int getUseGlobalCheapestInsertionCloseNodesLnsValue() {
2978  return useGlobalCheapestInsertionCloseNodesLns_;
2979  }
2991  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseGlobalCheapestInsertionCloseNodesLns() {
2992  @SuppressWarnings("deprecation")
2993  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useGlobalCheapestInsertionCloseNodesLns_);
2994  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2995  }
2996 
2998  private int useLocalCheapestInsertionCloseNodesLns_;
3008  @java.lang.Override public int getUseLocalCheapestInsertionCloseNodesLnsValue() {
3009  return useLocalCheapestInsertionCloseNodesLns_;
3010  }
3020  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseLocalCheapestInsertionCloseNodesLns() {
3021  @SuppressWarnings("deprecation")
3022  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useLocalCheapestInsertionCloseNodesLns_);
3023  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
3024  }
3025 
3026  private byte memoizedIsInitialized = -1;
3027  @java.lang.Override
3028  public final boolean isInitialized() {
3029  byte isInitialized = memoizedIsInitialized;
3030  if (isInitialized == 1) return true;
3031  if (isInitialized == 0) return false;
3032 
3033  memoizedIsInitialized = 1;
3034  return true;
3035  }
3036 
3037  @java.lang.Override
3038  public void writeTo(com.google.protobuf.CodedOutputStream output)
3039  throws java.io.IOException {
3040  if (useRelocate_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3041  output.writeEnum(1, useRelocate_);
3042  }
3043  if (useRelocatePair_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3044  output.writeEnum(2, useRelocatePair_);
3045  }
3046  if (useRelocateNeighbors_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3047  output.writeEnum(3, useRelocateNeighbors_);
3048  }
3049  if (useExchange_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3050  output.writeEnum(4, useExchange_);
3051  }
3052  if (useCross_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3053  output.writeEnum(5, useCross_);
3054  }
3055  if (useCrossExchange_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3056  output.writeEnum(6, useCrossExchange_);
3057  }
3058  if (useTwoOpt_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3059  output.writeEnum(7, useTwoOpt_);
3060  }
3061  if (useOrOpt_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3062  output.writeEnum(8, useOrOpt_);
3063  }
3064  if (useLinKernighan_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3065  output.writeEnum(9, useLinKernighan_);
3066  }
3067  if (useTspOpt_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3068  output.writeEnum(10, useTspOpt_);
3069  }
3070  if (useMakeActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3071  output.writeEnum(11, useMakeActive_);
3072  }
3073  if (useMakeInactive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3074  output.writeEnum(12, useMakeInactive_);
3075  }
3076  if (useMakeChainInactive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3077  output.writeEnum(13, useMakeChainInactive_);
3078  }
3079  if (useSwapActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3080  output.writeEnum(14, useSwapActive_);
3081  }
3082  if (useExtendedSwapActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3083  output.writeEnum(15, useExtendedSwapActive_);
3084  }
3085  if (usePathLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3086  output.writeEnum(16, usePathLns_);
3087  }
3088  if (useFullPathLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3089  output.writeEnum(17, useFullPathLns_);
3090  }
3091  if (useTspLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3092  output.writeEnum(18, useTspLns_);
3093  }
3094  if (useInactiveLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3095  output.writeEnum(19, useInactiveLns_);
3096  }
3097  if (useNodePairSwapActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3098  output.writeEnum(20, useNodePairSwapActive_);
3099  }
3100  if (useRelocateAndMakeActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3101  output.writeEnum(21, useRelocateAndMakeActive_);
3102  }
3103  if (useExchangePair_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3104  output.writeEnum(22, useExchangePair_);
3105  }
3106  if (useRelocateExpensiveChain_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3107  output.writeEnum(23, useRelocateExpensiveChain_);
3108  }
3109  if (useLightRelocatePair_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3110  output.writeEnum(24, useLightRelocatePair_);
3111  }
3112  if (useRelocateSubtrip_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3113  output.writeEnum(25, useRelocateSubtrip_);
3114  }
3115  if (useExchangeSubtrip_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3116  output.writeEnum(26, useExchangeSubtrip_);
3117  }
3118  if (useGlobalCheapestInsertionPathLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3119  output.writeEnum(27, useGlobalCheapestInsertionPathLns_);
3120  }
3121  if (useLocalCheapestInsertionPathLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3122  output.writeEnum(28, useLocalCheapestInsertionPathLns_);
3123  }
3124  if (useGlobalCheapestInsertionExpensiveChainLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3125  output.writeEnum(29, useGlobalCheapestInsertionExpensiveChainLns_);
3126  }
3127  if (useLocalCheapestInsertionExpensiveChainLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3128  output.writeEnum(30, useLocalCheapestInsertionExpensiveChainLns_);
3129  }
3130  if (useGlobalCheapestInsertionCloseNodesLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3131  output.writeEnum(31, useGlobalCheapestInsertionCloseNodesLns_);
3132  }
3133  if (useLocalCheapestInsertionCloseNodesLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3134  output.writeEnum(32, useLocalCheapestInsertionCloseNodesLns_);
3135  }
3136  if (useRelocatePathGlobalCheapestInsertionInsertUnperformed_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3137  output.writeEnum(33, useRelocatePathGlobalCheapestInsertionInsertUnperformed_);
3138  }
3139  unknownFields.writeTo(output);
3140  }
3141 
3142  @java.lang.Override
3143  public int getSerializedSize() {
3144  int size = memoizedSize;
3145  if (size != -1) return size;
3146 
3147  size = 0;
3148  if (useRelocate_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3149  size += com.google.protobuf.CodedOutputStream
3150  .computeEnumSize(1, useRelocate_);
3151  }
3152  if (useRelocatePair_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3153  size += com.google.protobuf.CodedOutputStream
3154  .computeEnumSize(2, useRelocatePair_);
3155  }
3156  if (useRelocateNeighbors_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3157  size += com.google.protobuf.CodedOutputStream
3158  .computeEnumSize(3, useRelocateNeighbors_);
3159  }
3160  if (useExchange_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3161  size += com.google.protobuf.CodedOutputStream
3162  .computeEnumSize(4, useExchange_);
3163  }
3164  if (useCross_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3165  size += com.google.protobuf.CodedOutputStream
3166  .computeEnumSize(5, useCross_);
3167  }
3168  if (useCrossExchange_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3169  size += com.google.protobuf.CodedOutputStream
3170  .computeEnumSize(6, useCrossExchange_);
3171  }
3172  if (useTwoOpt_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3173  size += com.google.protobuf.CodedOutputStream
3174  .computeEnumSize(7, useTwoOpt_);
3175  }
3176  if (useOrOpt_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3177  size += com.google.protobuf.CodedOutputStream
3178  .computeEnumSize(8, useOrOpt_);
3179  }
3180  if (useLinKernighan_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3181  size += com.google.protobuf.CodedOutputStream
3182  .computeEnumSize(9, useLinKernighan_);
3183  }
3184  if (useTspOpt_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3185  size += com.google.protobuf.CodedOutputStream
3186  .computeEnumSize(10, useTspOpt_);
3187  }
3188  if (useMakeActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3189  size += com.google.protobuf.CodedOutputStream
3190  .computeEnumSize(11, useMakeActive_);
3191  }
3192  if (useMakeInactive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3193  size += com.google.protobuf.CodedOutputStream
3194  .computeEnumSize(12, useMakeInactive_);
3195  }
3196  if (useMakeChainInactive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3197  size += com.google.protobuf.CodedOutputStream
3198  .computeEnumSize(13, useMakeChainInactive_);
3199  }
3200  if (useSwapActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3201  size += com.google.protobuf.CodedOutputStream
3202  .computeEnumSize(14, useSwapActive_);
3203  }
3204  if (useExtendedSwapActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3205  size += com.google.protobuf.CodedOutputStream
3206  .computeEnumSize(15, useExtendedSwapActive_);
3207  }
3208  if (usePathLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3209  size += com.google.protobuf.CodedOutputStream
3210  .computeEnumSize(16, usePathLns_);
3211  }
3212  if (useFullPathLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3213  size += com.google.protobuf.CodedOutputStream
3214  .computeEnumSize(17, useFullPathLns_);
3215  }
3216  if (useTspLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3217  size += com.google.protobuf.CodedOutputStream
3218  .computeEnumSize(18, useTspLns_);
3219  }
3220  if (useInactiveLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3221  size += com.google.protobuf.CodedOutputStream
3222  .computeEnumSize(19, useInactiveLns_);
3223  }
3224  if (useNodePairSwapActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3225  size += com.google.protobuf.CodedOutputStream
3226  .computeEnumSize(20, useNodePairSwapActive_);
3227  }
3228  if (useRelocateAndMakeActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3229  size += com.google.protobuf.CodedOutputStream
3230  .computeEnumSize(21, useRelocateAndMakeActive_);
3231  }
3232  if (useExchangePair_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3233  size += com.google.protobuf.CodedOutputStream
3234  .computeEnumSize(22, useExchangePair_);
3235  }
3236  if (useRelocateExpensiveChain_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3237  size += com.google.protobuf.CodedOutputStream
3238  .computeEnumSize(23, useRelocateExpensiveChain_);
3239  }
3240  if (useLightRelocatePair_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3241  size += com.google.protobuf.CodedOutputStream
3242  .computeEnumSize(24, useLightRelocatePair_);
3243  }
3244  if (useRelocateSubtrip_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3245  size += com.google.protobuf.CodedOutputStream
3246  .computeEnumSize(25, useRelocateSubtrip_);
3247  }
3248  if (useExchangeSubtrip_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3249  size += com.google.protobuf.CodedOutputStream
3250  .computeEnumSize(26, useExchangeSubtrip_);
3251  }
3252  if (useGlobalCheapestInsertionPathLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3253  size += com.google.protobuf.CodedOutputStream
3254  .computeEnumSize(27, useGlobalCheapestInsertionPathLns_);
3255  }
3256  if (useLocalCheapestInsertionPathLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3257  size += com.google.protobuf.CodedOutputStream
3258  .computeEnumSize(28, useLocalCheapestInsertionPathLns_);
3259  }
3260  if (useGlobalCheapestInsertionExpensiveChainLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3261  size += com.google.protobuf.CodedOutputStream
3262  .computeEnumSize(29, useGlobalCheapestInsertionExpensiveChainLns_);
3263  }
3264  if (useLocalCheapestInsertionExpensiveChainLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3265  size += com.google.protobuf.CodedOutputStream
3266  .computeEnumSize(30, useLocalCheapestInsertionExpensiveChainLns_);
3267  }
3268  if (useGlobalCheapestInsertionCloseNodesLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3269  size += com.google.protobuf.CodedOutputStream
3270  .computeEnumSize(31, useGlobalCheapestInsertionCloseNodesLns_);
3271  }
3272  if (useLocalCheapestInsertionCloseNodesLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3273  size += com.google.protobuf.CodedOutputStream
3274  .computeEnumSize(32, useLocalCheapestInsertionCloseNodesLns_);
3275  }
3276  if (useRelocatePathGlobalCheapestInsertionInsertUnperformed_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3277  size += com.google.protobuf.CodedOutputStream
3278  .computeEnumSize(33, useRelocatePathGlobalCheapestInsertionInsertUnperformed_);
3279  }
3280  size += unknownFields.getSerializedSize();
3281  memoizedSize = size;
3282  return size;
3283  }
3284 
3285  @java.lang.Override
3286  public boolean equals(final java.lang.Object obj) {
3287  if (obj == this) {
3288  return true;
3289  }
3290  if (!(obj instanceof com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators)) {
3291  return super.equals(obj);
3292  }
3293  com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators other = (com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators) obj;
3294 
3295  if (useRelocate_ != other.useRelocate_) return false;
3296  if (useRelocatePair_ != other.useRelocatePair_) return false;
3297  if (useLightRelocatePair_ != other.useLightRelocatePair_) return false;
3298  if (useRelocateNeighbors_ != other.useRelocateNeighbors_) return false;
3299  if (useRelocateSubtrip_ != other.useRelocateSubtrip_) return false;
3300  if (useExchange_ != other.useExchange_) return false;
3301  if (useExchangePair_ != other.useExchangePair_) return false;
3302  if (useExchangeSubtrip_ != other.useExchangeSubtrip_) return false;
3303  if (useCross_ != other.useCross_) return false;
3304  if (useCrossExchange_ != other.useCrossExchange_) return false;
3305  if (useRelocateExpensiveChain_ != other.useRelocateExpensiveChain_) return false;
3306  if (useTwoOpt_ != other.useTwoOpt_) return false;
3307  if (useOrOpt_ != other.useOrOpt_) return false;
3308  if (useLinKernighan_ != other.useLinKernighan_) return false;
3309  if (useTspOpt_ != other.useTspOpt_) return false;
3310  if (useMakeActive_ != other.useMakeActive_) return false;
3311  if (useRelocateAndMakeActive_ != other.useRelocateAndMakeActive_) return false;
3312  if (useMakeInactive_ != other.useMakeInactive_) return false;
3313  if (useMakeChainInactive_ != other.useMakeChainInactive_) return false;
3314  if (useSwapActive_ != other.useSwapActive_) return false;
3315  if (useExtendedSwapActive_ != other.useExtendedSwapActive_) return false;
3316  if (useNodePairSwapActive_ != other.useNodePairSwapActive_) return false;
3317  if (usePathLns_ != other.usePathLns_) return false;
3318  if (useFullPathLns_ != other.useFullPathLns_) return false;
3319  if (useTspLns_ != other.useTspLns_) return false;
3320  if (useInactiveLns_ != other.useInactiveLns_) return false;
3321  if (useGlobalCheapestInsertionPathLns_ != other.useGlobalCheapestInsertionPathLns_) return false;
3322  if (useLocalCheapestInsertionPathLns_ != other.useLocalCheapestInsertionPathLns_) return false;
3323  if (useRelocatePathGlobalCheapestInsertionInsertUnperformed_ != other.useRelocatePathGlobalCheapestInsertionInsertUnperformed_) return false;
3324  if (useGlobalCheapestInsertionExpensiveChainLns_ != other.useGlobalCheapestInsertionExpensiveChainLns_) return false;
3325  if (useLocalCheapestInsertionExpensiveChainLns_ != other.useLocalCheapestInsertionExpensiveChainLns_) return false;
3326  if (useGlobalCheapestInsertionCloseNodesLns_ != other.useGlobalCheapestInsertionCloseNodesLns_) return false;
3327  if (useLocalCheapestInsertionCloseNodesLns_ != other.useLocalCheapestInsertionCloseNodesLns_) return false;
3328  if (!unknownFields.equals(other.unknownFields)) return false;
3329  return true;
3330  }
3331 
3332  @java.lang.Override
3333  public int hashCode() {
3334  if (memoizedHashCode != 0) {
3335  return memoizedHashCode;
3336  }
3337  int hash = 41;
3338  hash = (19 * hash) + getDescriptor().hashCode();
3339  hash = (37 * hash) + USE_RELOCATE_FIELD_NUMBER;
3340  hash = (53 * hash) + useRelocate_;
3341  hash = (37 * hash) + USE_RELOCATE_PAIR_FIELD_NUMBER;
3342  hash = (53 * hash) + useRelocatePair_;
3343  hash = (37 * hash) + USE_LIGHT_RELOCATE_PAIR_FIELD_NUMBER;
3344  hash = (53 * hash) + useLightRelocatePair_;
3345  hash = (37 * hash) + USE_RELOCATE_NEIGHBORS_FIELD_NUMBER;
3346  hash = (53 * hash) + useRelocateNeighbors_;
3347  hash = (37 * hash) + USE_RELOCATE_SUBTRIP_FIELD_NUMBER;
3348  hash = (53 * hash) + useRelocateSubtrip_;
3349  hash = (37 * hash) + USE_EXCHANGE_FIELD_NUMBER;
3350  hash = (53 * hash) + useExchange_;
3351  hash = (37 * hash) + USE_EXCHANGE_PAIR_FIELD_NUMBER;
3352  hash = (53 * hash) + useExchangePair_;
3353  hash = (37 * hash) + USE_EXCHANGE_SUBTRIP_FIELD_NUMBER;
3354  hash = (53 * hash) + useExchangeSubtrip_;
3355  hash = (37 * hash) + USE_CROSS_FIELD_NUMBER;
3356  hash = (53 * hash) + useCross_;
3357  hash = (37 * hash) + USE_CROSS_EXCHANGE_FIELD_NUMBER;
3358  hash = (53 * hash) + useCrossExchange_;
3359  hash = (37 * hash) + USE_RELOCATE_EXPENSIVE_CHAIN_FIELD_NUMBER;
3360  hash = (53 * hash) + useRelocateExpensiveChain_;
3361  hash = (37 * hash) + USE_TWO_OPT_FIELD_NUMBER;
3362  hash = (53 * hash) + useTwoOpt_;
3363  hash = (37 * hash) + USE_OR_OPT_FIELD_NUMBER;
3364  hash = (53 * hash) + useOrOpt_;
3365  hash = (37 * hash) + USE_LIN_KERNIGHAN_FIELD_NUMBER;
3366  hash = (53 * hash) + useLinKernighan_;
3367  hash = (37 * hash) + USE_TSP_OPT_FIELD_NUMBER;
3368  hash = (53 * hash) + useTspOpt_;
3369  hash = (37 * hash) + USE_MAKE_ACTIVE_FIELD_NUMBER;
3370  hash = (53 * hash) + useMakeActive_;
3371  hash = (37 * hash) + USE_RELOCATE_AND_MAKE_ACTIVE_FIELD_NUMBER;
3372  hash = (53 * hash) + useRelocateAndMakeActive_;
3373  hash = (37 * hash) + USE_MAKE_INACTIVE_FIELD_NUMBER;
3374  hash = (53 * hash) + useMakeInactive_;
3375  hash = (37 * hash) + USE_MAKE_CHAIN_INACTIVE_FIELD_NUMBER;
3376  hash = (53 * hash) + useMakeChainInactive_;
3377  hash = (37 * hash) + USE_SWAP_ACTIVE_FIELD_NUMBER;
3378  hash = (53 * hash) + useSwapActive_;
3379  hash = (37 * hash) + USE_EXTENDED_SWAP_ACTIVE_FIELD_NUMBER;
3380  hash = (53 * hash) + useExtendedSwapActive_;
3381  hash = (37 * hash) + USE_NODE_PAIR_SWAP_ACTIVE_FIELD_NUMBER;
3382  hash = (53 * hash) + useNodePairSwapActive_;
3383  hash = (37 * hash) + USE_PATH_LNS_FIELD_NUMBER;
3384  hash = (53 * hash) + usePathLns_;
3385  hash = (37 * hash) + USE_FULL_PATH_LNS_FIELD_NUMBER;
3386  hash = (53 * hash) + useFullPathLns_;
3387  hash = (37 * hash) + USE_TSP_LNS_FIELD_NUMBER;
3388  hash = (53 * hash) + useTspLns_;
3389  hash = (37 * hash) + USE_INACTIVE_LNS_FIELD_NUMBER;
3390  hash = (53 * hash) + useInactiveLns_;
3392  hash = (53 * hash) + useGlobalCheapestInsertionPathLns_;
3394  hash = (53 * hash) + useLocalCheapestInsertionPathLns_;
3396  hash = (53 * hash) + useRelocatePathGlobalCheapestInsertionInsertUnperformed_;
3398  hash = (53 * hash) + useGlobalCheapestInsertionExpensiveChainLns_;
3400  hash = (53 * hash) + useLocalCheapestInsertionExpensiveChainLns_;
3402  hash = (53 * hash) + useGlobalCheapestInsertionCloseNodesLns_;
3404  hash = (53 * hash) + useLocalCheapestInsertionCloseNodesLns_;
3405  hash = (29 * hash) + unknownFields.hashCode();
3406  memoizedHashCode = hash;
3407  return hash;
3408  }
3409 
3410  public static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parseFrom(
3411  java.nio.ByteBuffer data)
3412  throws com.google.protobuf.InvalidProtocolBufferException {
3413  return PARSER.parseFrom(data);
3414  }
3415  public static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parseFrom(
3416  java.nio.ByteBuffer data,
3417  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3418  throws com.google.protobuf.InvalidProtocolBufferException {
3419  return PARSER.parseFrom(data, extensionRegistry);
3420  }
3421  public static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parseFrom(
3422  com.google.protobuf.ByteString data)
3423  throws com.google.protobuf.InvalidProtocolBufferException {
3424  return PARSER.parseFrom(data);
3425  }
3426  public static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parseFrom(
3427  com.google.protobuf.ByteString data,
3428  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3429  throws com.google.protobuf.InvalidProtocolBufferException {
3430  return PARSER.parseFrom(data, extensionRegistry);
3431  }
3432  public static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parseFrom(byte[] data)
3433  throws com.google.protobuf.InvalidProtocolBufferException {
3434  return PARSER.parseFrom(data);
3435  }
3436  public static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parseFrom(
3437  byte[] data,
3438  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3439  throws com.google.protobuf.InvalidProtocolBufferException {
3440  return PARSER.parseFrom(data, extensionRegistry);
3441  }
3442  public static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parseFrom(java.io.InputStream input)
3443  throws java.io.IOException {
3444  return com.google.protobuf.GeneratedMessageV3
3445  .parseWithIOException(PARSER, input);
3446  }
3447  public static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parseFrom(
3448  java.io.InputStream input,
3449  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3450  throws java.io.IOException {
3451  return com.google.protobuf.GeneratedMessageV3
3452  .parseWithIOException(PARSER, input, extensionRegistry);
3453  }
3454  public static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parseDelimitedFrom(java.io.InputStream input)
3455  throws java.io.IOException {
3456  return com.google.protobuf.GeneratedMessageV3
3457  .parseDelimitedWithIOException(PARSER, input);
3458  }
3459  public static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parseDelimitedFrom(
3460  java.io.InputStream input,
3461  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3462  throws java.io.IOException {
3463  return com.google.protobuf.GeneratedMessageV3
3464  .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
3465  }
3466  public static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parseFrom(
3467  com.google.protobuf.CodedInputStream input)
3468  throws java.io.IOException {
3469  return com.google.protobuf.GeneratedMessageV3
3470  .parseWithIOException(PARSER, input);
3471  }
3472  public static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parseFrom(
3473  com.google.protobuf.CodedInputStream input,
3474  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3475  throws java.io.IOException {
3476  return com.google.protobuf.GeneratedMessageV3
3477  .parseWithIOException(PARSER, input, extensionRegistry);
3478  }
3479 
3480  @java.lang.Override
3481  public Builder newBuilderForType() { return newBuilder(); }
3482  public static Builder newBuilder() {
3483  return DEFAULT_INSTANCE.toBuilder();
3484  }
3485  public static Builder newBuilder(com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators prototype) {
3486  return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
3487  }
3488  @java.lang.Override
3489  public Builder toBuilder() {
3490  return this == DEFAULT_INSTANCE
3491  ? new Builder() : new Builder().mergeFrom(this);
3492  }
3493 
3494  @java.lang.Override
3496  com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
3497  Builder builder = new Builder(parent);
3498  return builder;
3499  }
3508  public static final class Builder extends
3509  com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
3510  // @@protoc_insertion_point(builder_implements:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
3511  com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder {
3512  public static final com.google.protobuf.Descriptors.Descriptor
3514  return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_LocalSearchNeighborhoodOperators_descriptor;
3515  }
3516 
3517  @java.lang.Override
3518  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
3520  return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_LocalSearchNeighborhoodOperators_fieldAccessorTable
3521  .ensureFieldAccessorsInitialized(
3522  com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.class, com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.Builder.class);
3523  }
3524 
3525  // Construct using com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.newBuilder()
3526  private Builder() {
3527  maybeForceBuilderInitialization();
3528  }
3529 
3530  private Builder(
3531  com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
3532  super(parent);
3533  maybeForceBuilderInitialization();
3534  }
3535  private void maybeForceBuilderInitialization() {
3536  if (com.google.protobuf.GeneratedMessageV3
3537  .alwaysUseFieldBuilders) {
3538  }
3539  }
3540  @java.lang.Override
3541  public Builder clear() {
3542  super.clear();
3543  useRelocate_ = 0;
3544 
3545  useRelocatePair_ = 0;
3546 
3547  useLightRelocatePair_ = 0;
3548 
3549  useRelocateNeighbors_ = 0;
3550 
3551  useRelocateSubtrip_ = 0;
3552 
3553  useExchange_ = 0;
3554 
3555  useExchangePair_ = 0;
3556 
3557  useExchangeSubtrip_ = 0;
3558 
3559  useCross_ = 0;
3560 
3561  useCrossExchange_ = 0;
3562 
3563  useRelocateExpensiveChain_ = 0;
3564 
3565  useTwoOpt_ = 0;
3566 
3567  useOrOpt_ = 0;
3568 
3569  useLinKernighan_ = 0;
3570 
3571  useTspOpt_ = 0;
3572 
3573  useMakeActive_ = 0;
3574 
3575  useRelocateAndMakeActive_ = 0;
3576 
3577  useMakeInactive_ = 0;
3578 
3579  useMakeChainInactive_ = 0;
3580 
3581  useSwapActive_ = 0;
3582 
3583  useExtendedSwapActive_ = 0;
3584 
3585  useNodePairSwapActive_ = 0;
3586 
3587  usePathLns_ = 0;
3588 
3589  useFullPathLns_ = 0;
3590 
3591  useTspLns_ = 0;
3592 
3593  useInactiveLns_ = 0;
3594 
3595  useGlobalCheapestInsertionPathLns_ = 0;
3596 
3597  useLocalCheapestInsertionPathLns_ = 0;
3598 
3599  useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = 0;
3600 
3601  useGlobalCheapestInsertionExpensiveChainLns_ = 0;
3602 
3603  useLocalCheapestInsertionExpensiveChainLns_ = 0;
3604 
3605  useGlobalCheapestInsertionCloseNodesLns_ = 0;
3606 
3607  useLocalCheapestInsertionCloseNodesLns_ = 0;
3608 
3609  return this;
3610  }
3611 
3612  @java.lang.Override
3613  public com.google.protobuf.Descriptors.Descriptor
3615  return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_LocalSearchNeighborhoodOperators_descriptor;
3616  }
3617 
3618  @java.lang.Override
3619  public com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators getDefaultInstanceForType() {
3620  return com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.getDefaultInstance();
3621  }
3622 
3623  @java.lang.Override
3624  public com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators build() {
3625  com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators result = buildPartial();
3626  if (!result.isInitialized()) {
3627  throw newUninitializedMessageException(result);
3628  }
3629  return result;
3630  }
3631 
3632  @java.lang.Override
3633  public com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators buildPartial() {
3634  com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators result = new com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators(this);
3635  result.useRelocate_ = useRelocate_;
3636  result.useRelocatePair_ = useRelocatePair_;
3637  result.useLightRelocatePair_ = useLightRelocatePair_;
3638  result.useRelocateNeighbors_ = useRelocateNeighbors_;
3639  result.useRelocateSubtrip_ = useRelocateSubtrip_;
3640  result.useExchange_ = useExchange_;
3641  result.useExchangePair_ = useExchangePair_;
3642  result.useExchangeSubtrip_ = useExchangeSubtrip_;
3643  result.useCross_ = useCross_;
3644  result.useCrossExchange_ = useCrossExchange_;
3645  result.useRelocateExpensiveChain_ = useRelocateExpensiveChain_;
3646  result.useTwoOpt_ = useTwoOpt_;
3647  result.useOrOpt_ = useOrOpt_;
3648  result.useLinKernighan_ = useLinKernighan_;
3649  result.useTspOpt_ = useTspOpt_;
3650  result.useMakeActive_ = useMakeActive_;
3651  result.useRelocateAndMakeActive_ = useRelocateAndMakeActive_;
3652  result.useMakeInactive_ = useMakeInactive_;
3653  result.useMakeChainInactive_ = useMakeChainInactive_;
3654  result.useSwapActive_ = useSwapActive_;
3655  result.useExtendedSwapActive_ = useExtendedSwapActive_;
3656  result.useNodePairSwapActive_ = useNodePairSwapActive_;
3657  result.usePathLns_ = usePathLns_;
3658  result.useFullPathLns_ = useFullPathLns_;
3659  result.useTspLns_ = useTspLns_;
3660  result.useInactiveLns_ = useInactiveLns_;
3661  result.useGlobalCheapestInsertionPathLns_ = useGlobalCheapestInsertionPathLns_;
3662  result.useLocalCheapestInsertionPathLns_ = useLocalCheapestInsertionPathLns_;
3663  result.useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = useRelocatePathGlobalCheapestInsertionInsertUnperformed_;
3664  result.useGlobalCheapestInsertionExpensiveChainLns_ = useGlobalCheapestInsertionExpensiveChainLns_;
3665  result.useLocalCheapestInsertionExpensiveChainLns_ = useLocalCheapestInsertionExpensiveChainLns_;
3666  result.useGlobalCheapestInsertionCloseNodesLns_ = useGlobalCheapestInsertionCloseNodesLns_;
3667  result.useLocalCheapestInsertionCloseNodesLns_ = useLocalCheapestInsertionCloseNodesLns_;
3668  onBuilt();
3669  return result;
3670  }
3671 
3672  @java.lang.Override
3673  public Builder clone() {
3674  return super.clone();
3675  }
3676  @java.lang.Override
3678  com.google.protobuf.Descriptors.FieldDescriptor field,
3679  java.lang.Object value) {
3680  return super.setField(field, value);
3681  }
3682  @java.lang.Override
3684  com.google.protobuf.Descriptors.FieldDescriptor field) {
3685  return super.clearField(field);
3686  }
3687  @java.lang.Override
3689  com.google.protobuf.Descriptors.OneofDescriptor oneof) {
3690  return super.clearOneof(oneof);
3691  }
3692  @java.lang.Override
3694  com.google.protobuf.Descriptors.FieldDescriptor field,
3695  int index, java.lang.Object value) {
3696  return super.setRepeatedField(field, index, value);
3697  }
3698  @java.lang.Override
3700  com.google.protobuf.Descriptors.FieldDescriptor field,
3701  java.lang.Object value) {
3702  return super.addRepeatedField(field, value);
3703  }
3704  @java.lang.Override
3705  public Builder mergeFrom(com.google.protobuf.Message other) {
3706  if (other instanceof com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators) {
3707  return mergeFrom((com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators)other);
3708  } else {
3709  super.mergeFrom(other);
3710  return this;
3711  }
3712  }
3713 
3714  public Builder mergeFrom(com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators other) {
3715  if (other == com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.getDefaultInstance()) return this;
3716  if (other.useRelocate_ != 0) {
3717  setUseRelocateValue(other.getUseRelocateValue());
3718  }
3719  if (other.useRelocatePair_ != 0) {
3720  setUseRelocatePairValue(other.getUseRelocatePairValue());
3721  }
3722  if (other.useLightRelocatePair_ != 0) {
3723  setUseLightRelocatePairValue(other.getUseLightRelocatePairValue());
3724  }
3725  if (other.useRelocateNeighbors_ != 0) {
3726  setUseRelocateNeighborsValue(other.getUseRelocateNeighborsValue());
3727  }
3728  if (other.useRelocateSubtrip_ != 0) {
3729  setUseRelocateSubtripValue(other.getUseRelocateSubtripValue());
3730  }
3731  if (other.useExchange_ != 0) {
3732  setUseExchangeValue(other.getUseExchangeValue());
3733  }
3734  if (other.useExchangePair_ != 0) {
3735  setUseExchangePairValue(other.getUseExchangePairValue());
3736  }
3737  if (other.useExchangeSubtrip_ != 0) {
3738  setUseExchangeSubtripValue(other.getUseExchangeSubtripValue());
3739  }
3740  if (other.useCross_ != 0) {
3741  setUseCrossValue(other.getUseCrossValue());
3742  }
3743  if (other.useCrossExchange_ != 0) {
3744  setUseCrossExchangeValue(other.getUseCrossExchangeValue());
3745  }
3746  if (other.useRelocateExpensiveChain_ != 0) {
3747  setUseRelocateExpensiveChainValue(other.getUseRelocateExpensiveChainValue());
3748  }
3749  if (other.useTwoOpt_ != 0) {
3750  setUseTwoOptValue(other.getUseTwoOptValue());
3751  }
3752  if (other.useOrOpt_ != 0) {
3753  setUseOrOptValue(other.getUseOrOptValue());
3754  }
3755  if (other.useLinKernighan_ != 0) {
3756  setUseLinKernighanValue(other.getUseLinKernighanValue());
3757  }
3758  if (other.useTspOpt_ != 0) {
3759  setUseTspOptValue(other.getUseTspOptValue());
3760  }
3761  if (other.useMakeActive_ != 0) {
3762  setUseMakeActiveValue(other.getUseMakeActiveValue());
3763  }
3764  if (other.useRelocateAndMakeActive_ != 0) {
3765  setUseRelocateAndMakeActiveValue(other.getUseRelocateAndMakeActiveValue());
3766  }
3767  if (other.useMakeInactive_ != 0) {
3768  setUseMakeInactiveValue(other.getUseMakeInactiveValue());
3769  }
3770  if (other.useMakeChainInactive_ != 0) {
3771  setUseMakeChainInactiveValue(other.getUseMakeChainInactiveValue());
3772  }
3773  if (other.useSwapActive_ != 0) {
3774  setUseSwapActiveValue(other.getUseSwapActiveValue());
3775  }
3776  if (other.useExtendedSwapActive_ != 0) {
3777  setUseExtendedSwapActiveValue(other.getUseExtendedSwapActiveValue());
3778  }
3779  if (other.useNodePairSwapActive_ != 0) {
3780  setUseNodePairSwapActiveValue(other.getUseNodePairSwapActiveValue());
3781  }
3782  if (other.usePathLns_ != 0) {
3783  setUsePathLnsValue(other.getUsePathLnsValue());
3784  }
3785  if (other.useFullPathLns_ != 0) {
3786  setUseFullPathLnsValue(other.getUseFullPathLnsValue());
3787  }
3788  if (other.useTspLns_ != 0) {
3789  setUseTspLnsValue(other.getUseTspLnsValue());
3790  }
3791  if (other.useInactiveLns_ != 0) {
3792  setUseInactiveLnsValue(other.getUseInactiveLnsValue());
3793  }
3794  if (other.useGlobalCheapestInsertionPathLns_ != 0) {
3795  setUseGlobalCheapestInsertionPathLnsValue(other.getUseGlobalCheapestInsertionPathLnsValue());
3796  }
3797  if (other.useLocalCheapestInsertionPathLns_ != 0) {
3798  setUseLocalCheapestInsertionPathLnsValue(other.getUseLocalCheapestInsertionPathLnsValue());
3799  }
3800  if (other.useRelocatePathGlobalCheapestInsertionInsertUnperformed_ != 0) {
3801  setUseRelocatePathGlobalCheapestInsertionInsertUnperformedValue(other.getUseRelocatePathGlobalCheapestInsertionInsertUnperformedValue());
3802  }
3803  if (other.useGlobalCheapestInsertionExpensiveChainLns_ != 0) {
3804  setUseGlobalCheapestInsertionExpensiveChainLnsValue(other.getUseGlobalCheapestInsertionExpensiveChainLnsValue());
3805  }
3806  if (other.useLocalCheapestInsertionExpensiveChainLns_ != 0) {
3807  setUseLocalCheapestInsertionExpensiveChainLnsValue(other.getUseLocalCheapestInsertionExpensiveChainLnsValue());
3808  }
3809  if (other.useGlobalCheapestInsertionCloseNodesLns_ != 0) {
3810  setUseGlobalCheapestInsertionCloseNodesLnsValue(other.getUseGlobalCheapestInsertionCloseNodesLnsValue());
3811  }
3812  if (other.useLocalCheapestInsertionCloseNodesLns_ != 0) {
3813  setUseLocalCheapestInsertionCloseNodesLnsValue(other.getUseLocalCheapestInsertionCloseNodesLnsValue());
3814  }
3815  this.mergeUnknownFields(other.unknownFields);
3816  onChanged();
3817  return this;
3818  }
3819 
3820  @java.lang.Override
3821  public final boolean isInitialized() {
3822  return true;
3823  }
3824 
3825  @java.lang.Override
3827  com.google.protobuf.CodedInputStream input,
3828  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3829  throws java.io.IOException {
3830  com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parsedMessage = null;
3831  try {
3832  parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
3833  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
3834  parsedMessage = (com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators) e.getUnfinishedMessage();
3835  throw e.unwrapIOException();
3836  } finally {
3837  if (parsedMessage != null) {
3838  mergeFrom(parsedMessage);
3839  }
3840  }
3841  return this;
3842  }
3843 
3844  private int useRelocate_ = 0;
3861  @java.lang.Override public int getUseRelocateValue() {
3862  return useRelocate_;
3863  }
3881  public Builder setUseRelocateValue(int value) {
3882 
3883  useRelocate_ = value;
3884  onChanged();
3885  return this;
3886  }
3903  @java.lang.Override
3904  public com.google.ortools.util.OptionalBoolean getUseRelocate() {
3905  @SuppressWarnings("deprecation")
3906  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useRelocate_);
3907  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
3908  }
3926  public Builder setUseRelocate(com.google.ortools.util.OptionalBoolean value) {
3927  if (value == null) {
3928  throw new NullPointerException();
3929  }
3930 
3931  useRelocate_ = value.getNumber();
3932  onChanged();
3933  return this;
3934  }
3952 
3953  useRelocate_ = 0;
3954  onChanged();
3955  return this;
3956  }
3957 
3958  private int useRelocatePair_ = 0;
3975  @java.lang.Override public int getUseRelocatePairValue() {
3976  return useRelocatePair_;
3977  }
3995  public Builder setUseRelocatePairValue(int value) {
3996 
3997  useRelocatePair_ = value;
3998  onChanged();
3999  return this;
4000  }
4017  @java.lang.Override
4018  public com.google.ortools.util.OptionalBoolean getUseRelocatePair() {
4019  @SuppressWarnings("deprecation")
4020  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useRelocatePair_);
4021  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
4022  }
4040  public Builder setUseRelocatePair(com.google.ortools.util.OptionalBoolean value) {
4041  if (value == null) {
4042  throw new NullPointerException();
4043  }
4044 
4045  useRelocatePair_ = value.getNumber();
4046  onChanged();
4047  return this;
4048  }
4066 
4067  useRelocatePair_ = 0;
4068  onChanged();
4069  return this;
4070  }
4071 
4072  private int useLightRelocatePair_ = 0;
4087  @java.lang.Override public int getUseLightRelocatePairValue() {
4088  return useLightRelocatePair_;
4089  }
4106 
4107  useLightRelocatePair_ = value;
4108  onChanged();
4109  return this;
4110  }
4125  @java.lang.Override
4126  public com.google.ortools.util.OptionalBoolean getUseLightRelocatePair() {
4127  @SuppressWarnings("deprecation")
4128  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useLightRelocatePair_);
4129  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
4130  }
4146  public Builder setUseLightRelocatePair(com.google.ortools.util.OptionalBoolean value) {
4147  if (value == null) {
4148  throw new NullPointerException();
4149  }
4150 
4151  useLightRelocatePair_ = value.getNumber();
4152  onChanged();
4153  return this;
4154  }
4170 
4171  useLightRelocatePair_ = 0;
4172  onChanged();
4173  return this;
4174  }
4175 
4176  private int useRelocateNeighbors_ = 0;
4206  @java.lang.Override public int getUseRelocateNeighborsValue() {
4207  return useRelocateNeighbors_;
4208  }
4240 
4241  useRelocateNeighbors_ = value;
4242  onChanged();
4243  return this;
4244  }
4274  @java.lang.Override
4275  public com.google.ortools.util.OptionalBoolean getUseRelocateNeighbors() {
4276  @SuppressWarnings("deprecation")
4277  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useRelocateNeighbors_);
4278  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
4279  }
4310  public Builder setUseRelocateNeighbors(com.google.ortools.util.OptionalBoolean value) {
4311  if (value == null) {
4312  throw new NullPointerException();
4313  }
4314 
4315  useRelocateNeighbors_ = value.getNumber();
4316  onChanged();
4317  return this;
4318  }
4349 
4350  useRelocateNeighbors_ = 0;
4351  onChanged();
4352  return this;
4353  }
4354 
4355  private int useRelocateSubtrip_ = 0;
4375  @java.lang.Override public int getUseRelocateSubtripValue() {
4376  return useRelocateSubtrip_;
4377  }
4399 
4400  useRelocateSubtrip_ = value;
4401  onChanged();
4402  return this;
4403  }
4423  @java.lang.Override
4424  public com.google.ortools.util.OptionalBoolean getUseRelocateSubtrip() {
4425  @SuppressWarnings("deprecation")
4426  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useRelocateSubtrip_);
4427  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
4428  }
4449  public Builder setUseRelocateSubtrip(com.google.ortools.util.OptionalBoolean value) {
4450  if (value == null) {
4451  throw new NullPointerException();
4452  }
4453 
4454  useRelocateSubtrip_ = value.getNumber();
4455  onChanged();
4456  return this;
4457  }
4478 
4479  useRelocateSubtrip_ = 0;
4480  onChanged();
4481  return this;
4482  }
4483 
4484  private int useExchange_ = 0;
4499  @java.lang.Override public int getUseExchangeValue() {
4500  return useExchange_;
4501  }
4517  public Builder setUseExchangeValue(int value) {
4518 
4519  useExchange_ = value;
4520  onChanged();
4521  return this;
4522  }
4537  @java.lang.Override
4538  public com.google.ortools.util.OptionalBoolean getUseExchange() {
4539  @SuppressWarnings("deprecation")
4540  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useExchange_);
4541  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
4542  }
4558  public Builder setUseExchange(com.google.ortools.util.OptionalBoolean value) {
4559  if (value == null) {
4560  throw new NullPointerException();
4561  }
4562 
4563  useExchange_ = value.getNumber();
4564  onChanged();
4565  return this;
4566  }
4582 
4583  useExchange_ = 0;
4584  onChanged();
4585  return this;
4586  }
4587 
4588  private int useExchangePair_ = 0;
4603  @java.lang.Override public int getUseExchangePairValue() {
4604  return useExchangePair_;
4605  }
4621  public Builder setUseExchangePairValue(int value) {
4622 
4623  useExchangePair_ = value;
4624  onChanged();
4625  return this;
4626  }
4641  @java.lang.Override
4642  public com.google.ortools.util.OptionalBoolean getUseExchangePair() {
4643  @SuppressWarnings("deprecation")
4644  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useExchangePair_);
4645  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
4646  }
4662  public Builder setUseExchangePair(com.google.ortools.util.OptionalBoolean value) {
4663  if (value == null) {
4664  throw new NullPointerException();
4665  }
4666 
4667  useExchangePair_ = value.getNumber();
4668  onChanged();
4669  return this;
4670  }
4686 
4687  useExchangePair_ = 0;
4688  onChanged();
4689  return this;
4690  }
4691 
4692  private int useExchangeSubtrip_ = 0;
4702  @java.lang.Override public int getUseExchangeSubtripValue() {
4703  return useExchangeSubtrip_;
4704  }
4716 
4717  useExchangeSubtrip_ = value;
4718  onChanged();
4719  return this;
4720  }
4730  @java.lang.Override
4731  public com.google.ortools.util.OptionalBoolean getUseExchangeSubtrip() {
4732  @SuppressWarnings("deprecation")
4733  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useExchangeSubtrip_);
4734  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
4735  }
4746  public Builder setUseExchangeSubtrip(com.google.ortools.util.OptionalBoolean value) {
4747  if (value == null) {
4748  throw new NullPointerException();
4749  }
4750 
4751  useExchangeSubtrip_ = value.getNumber();
4752  onChanged();
4753  return this;
4754  }
4765 
4766  useExchangeSubtrip_ = 0;
4767  onChanged();
4768  return this;
4769  }
4770 
4771  private int useCross_ = 0;
4788  @java.lang.Override public int getUseCrossValue() {
4789  return useCross_;
4790  }
4808  public Builder setUseCrossValue(int value) {
4809 
4810  useCross_ = value;
4811  onChanged();
4812  return this;
4813  }
4830  @java.lang.Override
4831  public com.google.ortools.util.OptionalBoolean getUseCross() {
4832  @SuppressWarnings("deprecation")
4833  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useCross_);
4834  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
4835  }
4853  public Builder setUseCross(com.google.ortools.util.OptionalBoolean value) {
4854  if (value == null) {
4855  throw new NullPointerException();
4856  }
4857 
4858  useCross_ = value.getNumber();
4859  onChanged();
4860  return this;
4861  }
4879 
4880  useCross_ = 0;
4881  onChanged();
4882  return this;
4883  }
4884 
4885  private int useCrossExchange_ = 0;
4894  @java.lang.Override public int getUseCrossExchangeValue() {
4895  return useCrossExchange_;
4896  }
4906  public Builder setUseCrossExchangeValue(int value) {
4907 
4908  useCrossExchange_ = value;
4909  onChanged();
4910  return this;
4911  }
4920  @java.lang.Override
4921  public com.google.ortools.util.OptionalBoolean getUseCrossExchange() {
4922  @SuppressWarnings("deprecation")
4923  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useCrossExchange_);
4924  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
4925  }
4935  public Builder setUseCrossExchange(com.google.ortools.util.OptionalBoolean value) {
4936  if (value == null) {
4937  throw new NullPointerException();
4938  }
4939 
4940  useCrossExchange_ = value.getNumber();
4941  onChanged();
4942  return this;
4943  }
4953 
4954  useCrossExchange_ = 0;
4955  onChanged();
4956  return this;
4957  }
4958 
4959  private int useRelocateExpensiveChain_ = 0;
4977  @java.lang.Override public int getUseRelocateExpensiveChainValue() {
4978  return useRelocateExpensiveChain_;
4979  }
4999 
5000  useRelocateExpensiveChain_ = value;
5001  onChanged();
5002  return this;
5003  }
5021  @java.lang.Override
5022  public com.google.ortools.util.OptionalBoolean getUseRelocateExpensiveChain() {
5023  @SuppressWarnings("deprecation")
5024  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useRelocateExpensiveChain_);
5025  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
5026  }
5045  public Builder setUseRelocateExpensiveChain(com.google.ortools.util.OptionalBoolean value) {
5046  if (value == null) {
5047  throw new NullPointerException();
5048  }
5049 
5050  useRelocateExpensiveChain_ = value.getNumber();
5051  onChanged();
5052  return this;
5053  }
5072 
5073  useRelocateExpensiveChain_ = 0;
5074  onChanged();
5075  return this;
5076  }
5077 
5078  private int useTwoOpt_ = 0;
5096  @java.lang.Override public int getUseTwoOptValue() {
5097  return useTwoOpt_;
5098  }
5117  public Builder setUseTwoOptValue(int value) {
5118 
5119  useTwoOpt_ = value;
5120  onChanged();
5121  return this;
5122  }
5140  @java.lang.Override
5141  public com.google.ortools.util.OptionalBoolean getUseTwoOpt() {
5142  @SuppressWarnings("deprecation")
5143  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useTwoOpt_);
5144  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
5145  }
5164  public Builder setUseTwoOpt(com.google.ortools.util.OptionalBoolean value) {
5165  if (value == null) {
5166  throw new NullPointerException();
5167  }
5168 
5169  useTwoOpt_ = value.getNumber();
5170  onChanged();
5171  return this;
5172  }
5191 
5192  useTwoOpt_ = 0;
5193  onChanged();
5194  return this;
5195  }
5196 
5197  private int useOrOpt_ = 0;
5216  @java.lang.Override public int getUseOrOptValue() {
5217  return useOrOpt_;
5218  }
5238  public Builder setUseOrOptValue(int value) {
5239 
5240  useOrOpt_ = value;
5241  onChanged();
5242  return this;
5243  }
5262  @java.lang.Override
5263  public com.google.ortools.util.OptionalBoolean getUseOrOpt() {
5264  @SuppressWarnings("deprecation")
5265  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useOrOpt_);
5266  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
5267  }
5287  public Builder setUseOrOpt(com.google.ortools.util.OptionalBoolean value) {
5288  if (value == null) {
5289  throw new NullPointerException();
5290  }
5291 
5292  useOrOpt_ = value.getNumber();
5293  onChanged();
5294  return this;
5295  }
5315 
5316  useOrOpt_ = 0;
5317  onChanged();
5318  return this;
5319  }
5320 
5321  private int useLinKernighan_ = 0;
5333  @java.lang.Override public int getUseLinKernighanValue() {
5334  return useLinKernighan_;
5335  }
5348  public Builder setUseLinKernighanValue(int value) {
5349 
5350  useLinKernighan_ = value;
5351  onChanged();
5352  return this;
5353  }
5365  @java.lang.Override
5366  public com.google.ortools.util.OptionalBoolean getUseLinKernighan() {
5367  @SuppressWarnings("deprecation")
5368  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useLinKernighan_);
5369  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
5370  }
5383  public Builder setUseLinKernighan(com.google.ortools.util.OptionalBoolean value) {
5384  if (value == null) {
5385  throw new NullPointerException();
5386  }
5387 
5388  useLinKernighan_ = value.getNumber();
5389  onChanged();
5390  return this;
5391  }
5404 
5405  useLinKernighan_ = 0;
5406  onChanged();
5407  return this;
5408  }
5409 
5410  private int useTspOpt_ = 0;
5424  @java.lang.Override public int getUseTspOptValue() {
5425  return useTspOpt_;
5426  }
5441  public Builder setUseTspOptValue(int value) {
5442 
5443  useTspOpt_ = value;
5444  onChanged();
5445  return this;
5446  }
5460  @java.lang.Override
5461  public com.google.ortools.util.OptionalBoolean getUseTspOpt() {
5462  @SuppressWarnings("deprecation")
5463  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useTspOpt_);
5464  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
5465  }
5480  public Builder setUseTspOpt(com.google.ortools.util.OptionalBoolean value) {
5481  if (value == null) {
5482  throw new NullPointerException();
5483  }
5484 
5485  useTspOpt_ = value.getNumber();
5486  onChanged();
5487  return this;
5488  }
5503 
5504  useTspOpt_ = 0;
5505  onChanged();
5506  return this;
5507  }
5508 
5509  private int useMakeActive_ = 0;
5524  @java.lang.Override public int getUseMakeActiveValue() {
5525  return useMakeActive_;
5526  }
5542  public Builder setUseMakeActiveValue(int value) {
5543 
5544  useMakeActive_ = value;
5545  onChanged();
5546  return this;
5547  }
5562  @java.lang.Override
5563  public com.google.ortools.util.OptionalBoolean getUseMakeActive() {
5564  @SuppressWarnings("deprecation")
5565  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useMakeActive_);
5566  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
5567  }
5583  public Builder setUseMakeActive(com.google.ortools.util.OptionalBoolean value) {
5584  if (value == null) {
5585  throw new NullPointerException();
5586  }
5587 
5588  useMakeActive_ = value.getNumber();
5589  onChanged();
5590  return this;
5591  }
5607 
5608  useMakeActive_ = 0;
5609  onChanged();
5610  return this;
5611  }
5612 
5613  private int useRelocateAndMakeActive_ = 0;
5631  @java.lang.Override public int getUseRelocateAndMakeActiveValue() {
5632  return useRelocateAndMakeActive_;
5633  }
5653 
5654  useRelocateAndMakeActive_ = value;
5655  onChanged();
5656  return this;
5657  }
5675  @java.lang.Override
5676  public com.google.ortools.util.OptionalBoolean getUseRelocateAndMakeActive() {
5677  @SuppressWarnings("deprecation")
5678  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useRelocateAndMakeActive_);
5679  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
5680  }
5699  public Builder setUseRelocateAndMakeActive(com.google.ortools.util.OptionalBoolean value) {
5700  if (value == null) {
5701  throw new NullPointerException();
5702  }
5703 
5704  useRelocateAndMakeActive_ = value.getNumber();
5705  onChanged();
5706  return this;
5707  }
5726 
5727  useRelocateAndMakeActive_ = 0;
5728  onChanged();
5729  return this;
5730  }
5731 
5732  private int useMakeInactive_ = 0;
5745  @java.lang.Override public int getUseMakeInactiveValue() {
5746  return useMakeInactive_;
5747  }
5761  public Builder setUseMakeInactiveValue(int value) {
5762 
5763  useMakeInactive_ = value;
5764  onChanged();
5765  return this;
5766  }
5779  @java.lang.Override
5780  public com.google.ortools.util.OptionalBoolean getUseMakeInactive() {
5781  @SuppressWarnings("deprecation")
5782  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useMakeInactive_);
5783  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
5784  }
5798  public Builder setUseMakeInactive(com.google.ortools.util.OptionalBoolean value) {
5799  if (value == null) {
5800  throw new NullPointerException();
5801  }
5802 
5803  useMakeInactive_ = value.getNumber();
5804  onChanged();
5805  return this;
5806  }
5820 
5821  useMakeInactive_ = 0;
5822  onChanged();
5823  return this;
5824  }
5825 
5826  private int useMakeChainInactive_ = 0;
5840  @java.lang.Override public int getUseMakeChainInactiveValue() {
5841  return useMakeChainInactive_;
5842  }
5858 
5859  useMakeChainInactive_ = value;
5860  onChanged();
5861  return this;
5862  }
5876  @java.lang.Override
5877  public com.google.ortools.util.OptionalBoolean getUseMakeChainInactive() {
5878  @SuppressWarnings("deprecation")
5879  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useMakeChainInactive_);
5880  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
5881  }
5896  public Builder setUseMakeChainInactive(com.google.ortools.util.OptionalBoolean value) {
5897  if (value == null) {
5898  throw new NullPointerException();
5899  }
5900 
5901  useMakeChainInactive_ = value.getNumber();
5902  onChanged();
5903  return this;
5904  }
5919 
5920  useMakeChainInactive_ = 0;
5921  onChanged();
5922  return this;
5923  }
5924 
5925  private int useSwapActive_ = 0;
5938  @java.lang.Override public int getUseSwapActiveValue() {
5939  return useSwapActive_;
5940  }
5954  public Builder setUseSwapActiveValue(int value) {
5955 
5956  useSwapActive_ = value;
5957  onChanged();
5958  return this;
5959  }
5972  @java.lang.Override
5973  public com.google.ortools.util.OptionalBoolean getUseSwapActive() {
5974  @SuppressWarnings("deprecation")
5975  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useSwapActive_);
5976  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
5977  }
5991  public Builder setUseSwapActive(com.google.ortools.util.OptionalBoolean value) {
5992  if (value == null) {
5993  throw new NullPointerException();
5994  }
5995 
5996  useSwapActive_ = value.getNumber();
5997  onChanged();
5998  return this;
5999  }
6013 
6014  useSwapActive_ = 0;
6015  onChanged();
6016  return this;
6017  }
6018 
6019  private int useExtendedSwapActive_ = 0;
6037  @java.lang.Override public int getUseExtendedSwapActiveValue() {
6038  return useExtendedSwapActive_;
6039  }
6059 
6060  useExtendedSwapActive_ = value;
6061  onChanged();
6062  return this;
6063  }
6081  @java.lang.Override
6082  public com.google.ortools.util.OptionalBoolean getUseExtendedSwapActive() {
6083  @SuppressWarnings("deprecation")
6084  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useExtendedSwapActive_);
6085  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6086  }
6105  public Builder setUseExtendedSwapActive(com.google.ortools.util.OptionalBoolean value) {
6106  if (value == null) {
6107  throw new NullPointerException();
6108  }
6109 
6110  useExtendedSwapActive_ = value.getNumber();
6111  onChanged();
6112  return this;
6113  }
6132 
6133  useExtendedSwapActive_ = 0;
6134  onChanged();
6135  return this;
6136  }
6137 
6138  private int useNodePairSwapActive_ = 0;
6157  @java.lang.Override public int getUseNodePairSwapActiveValue() {
6158  return useNodePairSwapActive_;
6159  }
6180 
6181  useNodePairSwapActive_ = value;
6182  onChanged();
6183  return this;
6184  }
6203  @java.lang.Override
6204  public com.google.ortools.util.OptionalBoolean getUseNodePairSwapActive() {
6205  @SuppressWarnings("deprecation")
6206  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useNodePairSwapActive_);
6207  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6208  }
6228  public Builder setUseNodePairSwapActive(com.google.ortools.util.OptionalBoolean value) {
6229  if (value == null) {
6230  throw new NullPointerException();
6231  }
6232 
6233  useNodePairSwapActive_ = value.getNumber();
6234  onChanged();
6235  return this;
6236  }
6256 
6257  useNodePairSwapActive_ = 0;
6258  onChanged();
6259  return this;
6260  }
6261 
6262  private int usePathLns_ = 0;
6278  @java.lang.Override public int getUsePathLnsValue() {
6279  return usePathLns_;
6280  }
6297  public Builder setUsePathLnsValue(int value) {
6298 
6299  usePathLns_ = value;
6300  onChanged();
6301  return this;
6302  }
6318  @java.lang.Override
6319  public com.google.ortools.util.OptionalBoolean getUsePathLns() {
6320  @SuppressWarnings("deprecation")
6321  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(usePathLns_);
6322  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6323  }
6340  public Builder setUsePathLns(com.google.ortools.util.OptionalBoolean value) {
6341  if (value == null) {
6342  throw new NullPointerException();
6343  }
6344 
6345  usePathLns_ = value.getNumber();
6346  onChanged();
6347  return this;
6348  }
6365 
6366  usePathLns_ = 0;
6367  onChanged();
6368  return this;
6369  }
6370 
6371  private int useFullPathLns_ = 0;
6380  @java.lang.Override public int getUseFullPathLnsValue() {
6381  return useFullPathLns_;
6382  }
6392  public Builder setUseFullPathLnsValue(int value) {
6393 
6394  useFullPathLns_ = value;
6395  onChanged();
6396  return this;
6397  }
6406  @java.lang.Override
6407  public com.google.ortools.util.OptionalBoolean getUseFullPathLns() {
6408  @SuppressWarnings("deprecation")
6409  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useFullPathLns_);
6410  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6411  }
6421  public Builder setUseFullPathLns(com.google.ortools.util.OptionalBoolean value) {
6422  if (value == null) {
6423  throw new NullPointerException();
6424  }
6425 
6426  useFullPathLns_ = value.getNumber();
6427  onChanged();
6428  return this;
6429  }
6439 
6440  useFullPathLns_ = 0;
6441  onChanged();
6442  return this;
6443  }
6444 
6445  private int useTspLns_ = 0;
6459  @java.lang.Override public int getUseTspLnsValue() {
6460  return useTspLns_;
6461  }
6476  public Builder setUseTspLnsValue(int value) {
6477 
6478  useTspLns_ = value;
6479  onChanged();
6480  return this;
6481  }
6495  @java.lang.Override
6496  public com.google.ortools.util.OptionalBoolean getUseTspLns() {
6497  @SuppressWarnings("deprecation")
6498  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useTspLns_);
6499  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6500  }
6515  public Builder setUseTspLns(com.google.ortools.util.OptionalBoolean value) {
6516  if (value == null) {
6517  throw new NullPointerException();
6518  }
6519 
6520  useTspLns_ = value.getNumber();
6521  onChanged();
6522  return this;
6523  }
6538 
6539  useTspLns_ = 0;
6540  onChanged();
6541  return this;
6542  }
6543 
6544  private int useInactiveLns_ = 0;
6555  @java.lang.Override public int getUseInactiveLnsValue() {
6556  return useInactiveLns_;
6557  }
6569  public Builder setUseInactiveLnsValue(int value) {
6570 
6571  useInactiveLns_ = value;
6572  onChanged();
6573  return this;
6574  }
6585  @java.lang.Override
6586  public com.google.ortools.util.OptionalBoolean getUseInactiveLns() {
6587  @SuppressWarnings("deprecation")
6588  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useInactiveLns_);
6589  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6590  }
6602  public Builder setUseInactiveLns(com.google.ortools.util.OptionalBoolean value) {
6603  if (value == null) {
6604  throw new NullPointerException();
6605  }
6606 
6607  useInactiveLns_ = value.getNumber();
6608  onChanged();
6609  return this;
6610  }
6622 
6623  useInactiveLns_ = 0;
6624  onChanged();
6625  return this;
6626  }
6627 
6628  private int useGlobalCheapestInsertionPathLns_ = 0;
6639  @java.lang.Override public int getUseGlobalCheapestInsertionPathLnsValue() {
6640  return useGlobalCheapestInsertionPathLns_;
6641  }
6654 
6655  useGlobalCheapestInsertionPathLns_ = value;
6656  onChanged();
6657  return this;
6658  }
6669  @java.lang.Override
6670  public com.google.ortools.util.OptionalBoolean getUseGlobalCheapestInsertionPathLns() {
6671  @SuppressWarnings("deprecation")
6672  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useGlobalCheapestInsertionPathLns_);
6673  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6674  }
6686  public Builder setUseGlobalCheapestInsertionPathLns(com.google.ortools.util.OptionalBoolean value) {
6687  if (value == null) {
6688  throw new NullPointerException();
6689  }
6690 
6691  useGlobalCheapestInsertionPathLns_ = value.getNumber();
6692  onChanged();
6693  return this;
6694  }
6706 
6707  useGlobalCheapestInsertionPathLns_ = 0;
6708  onChanged();
6709  return this;
6710  }
6711 
6712  private int useLocalCheapestInsertionPathLns_ = 0;
6721  @java.lang.Override public int getUseLocalCheapestInsertionPathLnsValue() {
6722  return useLocalCheapestInsertionPathLns_;
6723  }
6734 
6735  useLocalCheapestInsertionPathLns_ = value;
6736  onChanged();
6737  return this;
6738  }
6747  @java.lang.Override
6748  public com.google.ortools.util.OptionalBoolean getUseLocalCheapestInsertionPathLns() {
6749  @SuppressWarnings("deprecation")
6750  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useLocalCheapestInsertionPathLns_);
6751  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6752  }
6762  public Builder setUseLocalCheapestInsertionPathLns(com.google.ortools.util.OptionalBoolean value) {
6763  if (value == null) {
6764  throw new NullPointerException();
6765  }
6766 
6767  useLocalCheapestInsertionPathLns_ = value.getNumber();
6768  onChanged();
6769  return this;
6770  }
6780 
6781  useLocalCheapestInsertionPathLns_ = 0;
6782  onChanged();
6783  return this;
6784  }
6785 
6786  private int useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = 0;
6798  return useRelocatePathGlobalCheapestInsertionInsertUnperformed_;
6799  }
6812 
6813  useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = value;
6814  onChanged();
6815  return this;
6816  }
6827  @java.lang.Override
6828  public com.google.ortools.util.OptionalBoolean getUseRelocatePathGlobalCheapestInsertionInsertUnperformed() {
6829  @SuppressWarnings("deprecation")
6830  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useRelocatePathGlobalCheapestInsertionInsertUnperformed_);
6831  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6832  }
6844  public Builder setUseRelocatePathGlobalCheapestInsertionInsertUnperformed(com.google.ortools.util.OptionalBoolean value) {
6845  if (value == null) {
6846  throw new NullPointerException();
6847  }
6848 
6849  useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = value.getNumber();
6850  onChanged();
6851  return this;
6852  }
6864 
6865  useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = 0;
6866  onChanged();
6867  return this;
6868  }
6869 
6870  private int useGlobalCheapestInsertionExpensiveChainLns_ = 0;
6882  @java.lang.Override public int getUseGlobalCheapestInsertionExpensiveChainLnsValue() {
6883  return useGlobalCheapestInsertionExpensiveChainLns_;
6884  }
6898 
6899  useGlobalCheapestInsertionExpensiveChainLns_ = value;
6900  onChanged();
6901  return this;
6902  }
6914  @java.lang.Override
6915  public com.google.ortools.util.OptionalBoolean getUseGlobalCheapestInsertionExpensiveChainLns() {
6916  @SuppressWarnings("deprecation")
6917  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useGlobalCheapestInsertionExpensiveChainLns_);
6918  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6919  }
6932  public Builder setUseGlobalCheapestInsertionExpensiveChainLns(com.google.ortools.util.OptionalBoolean value) {
6933  if (value == null) {
6934  throw new NullPointerException();
6935  }
6936 
6937  useGlobalCheapestInsertionExpensiveChainLns_ = value.getNumber();
6938  onChanged();
6939  return this;
6940  }
6953 
6954  useGlobalCheapestInsertionExpensiveChainLns_ = 0;
6955  onChanged();
6956  return this;
6957  }
6958 
6959  private int useLocalCheapestInsertionExpensiveChainLns_ = 0;
6969  @java.lang.Override public int getUseLocalCheapestInsertionExpensiveChainLnsValue() {
6970  return useLocalCheapestInsertionExpensiveChainLns_;
6971  }
6983 
6984  useLocalCheapestInsertionExpensiveChainLns_ = value;
6985  onChanged();
6986  return this;
6987  }
6997  @java.lang.Override
6998  public com.google.ortools.util.OptionalBoolean getUseLocalCheapestInsertionExpensiveChainLns() {
6999  @SuppressWarnings("deprecation")
7000  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useLocalCheapestInsertionExpensiveChainLns_);
7001  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
7002  }
7013  public Builder setUseLocalCheapestInsertionExpensiveChainLns(com.google.ortools.util.OptionalBoolean value) {
7014  if (value == null) {
7015  throw new NullPointerException();
7016  }
7017 
7018  useLocalCheapestInsertionExpensiveChainLns_ = value.getNumber();
7019  onChanged();
7020  return this;
7021  }
7032 
7033  useLocalCheapestInsertionExpensiveChainLns_ = 0;
7034  onChanged();
7035  return this;
7036  }
7037 
7038  private int useGlobalCheapestInsertionCloseNodesLns_ = 0;
7050  @java.lang.Override public int getUseGlobalCheapestInsertionCloseNodesLnsValue() {
7051  return useGlobalCheapestInsertionCloseNodesLns_;
7052  }
7066 
7067  useGlobalCheapestInsertionCloseNodesLns_ = value;
7068  onChanged();
7069  return this;
7070  }
7082  @java.lang.Override
7083  public com.google.ortools.util.OptionalBoolean getUseGlobalCheapestInsertionCloseNodesLns() {
7084  @SuppressWarnings("deprecation")
7085  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useGlobalCheapestInsertionCloseNodesLns_);
7086  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
7087  }
7100  public Builder setUseGlobalCheapestInsertionCloseNodesLns(com.google.ortools.util.OptionalBoolean value) {
7101  if (value == null) {
7102  throw new NullPointerException();
7103  }
7104 
7105  useGlobalCheapestInsertionCloseNodesLns_ = value.getNumber();
7106  onChanged();
7107  return this;
7108  }
7121 
7122  useGlobalCheapestInsertionCloseNodesLns_ = 0;
7123  onChanged();
7124  return this;
7125  }
7126 
7127  private int useLocalCheapestInsertionCloseNodesLns_ = 0;
7137  @java.lang.Override public int getUseLocalCheapestInsertionCloseNodesLnsValue() {
7138  return useLocalCheapestInsertionCloseNodesLns_;
7139  }
7151 
7152  useLocalCheapestInsertionCloseNodesLns_ = value;
7153  onChanged();
7154  return this;
7155  }
7165  @java.lang.Override
7166  public com.google.ortools.util.OptionalBoolean getUseLocalCheapestInsertionCloseNodesLns() {
7167  @SuppressWarnings("deprecation")
7168  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useLocalCheapestInsertionCloseNodesLns_);
7169  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
7170  }
7181  public Builder setUseLocalCheapestInsertionCloseNodesLns(com.google.ortools.util.OptionalBoolean value) {
7182  if (value == null) {
7183  throw new NullPointerException();
7184  }
7185 
7186  useLocalCheapestInsertionCloseNodesLns_ = value.getNumber();
7187  onChanged();
7188  return this;
7189  }
7200 
7201  useLocalCheapestInsertionCloseNodesLns_ = 0;
7202  onChanged();
7203  return this;
7204  }
7205  @java.lang.Override
7207  final com.google.protobuf.UnknownFieldSet unknownFields) {
7208  return super.setUnknownFields(unknownFields);
7209  }
7210 
7211  @java.lang.Override
7213  final com.google.protobuf.UnknownFieldSet unknownFields) {
7214  return super.mergeUnknownFields(unknownFields);
7215  }
7216 
7217 
7218  // @@protoc_insertion_point(builder_scope:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
7219  }
7220 
7221  // @@protoc_insertion_point(class_scope:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
7222  private static final com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators DEFAULT_INSTANCE;
7223  static {
7224  DEFAULT_INSTANCE = new com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators();
7225  }
7226 
7227  public static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators getDefaultInstance() {
7228  return DEFAULT_INSTANCE;
7229  }
7230 
7231  private static final com.google.protobuf.Parser<LocalSearchNeighborhoodOperators>
7232  PARSER = new com.google.protobuf.AbstractParser<LocalSearchNeighborhoodOperators>() {
7233  @java.lang.Override
7234  public LocalSearchNeighborhoodOperators parsePartialFrom(
7235  com.google.protobuf.CodedInputStream input,
7236  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7237  throws com.google.protobuf.InvalidProtocolBufferException {
7238  return new LocalSearchNeighborhoodOperators(input, extensionRegistry);
7239  }
7240  };
7241 
7242  public static com.google.protobuf.Parser<LocalSearchNeighborhoodOperators> parser() {
7243  return PARSER;
7244  }
7245 
7246  @java.lang.Override
7247  public com.google.protobuf.Parser<LocalSearchNeighborhoodOperators> getParserForType() {
7248  return PARSER;
7249  }
7250 
7251  @java.lang.Override
7252  public com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators getDefaultInstanceForType() {
7253  return DEFAULT_INSTANCE;
7254  }
7255 
7256  }
7257 
7259  // @@protoc_insertion_point(interface_extends:operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters)
7260  com.google.protobuf.MessageOrBuilder {
7261 
7273 
7287  }
7295  public static final class ImprovementSearchLimitParameters extends
7296  com.google.protobuf.GeneratedMessageV3 implements
7297  // @@protoc_insertion_point(message_implements:operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters)
7299  private static final long serialVersionUID = 0L;
7300  // Use ImprovementSearchLimitParameters.newBuilder() to construct.
7301  private ImprovementSearchLimitParameters(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
7302  super(builder);
7303  }
7305  }
7306 
7307  @java.lang.Override
7308  @SuppressWarnings({"unused"})
7309  protected java.lang.Object newInstance(
7310  UnusedPrivateParameter unused) {
7311  return new ImprovementSearchLimitParameters();
7312  }
7313 
7314  @java.lang.Override
7315  public final com.google.protobuf.UnknownFieldSet
7317  return this.unknownFields;
7318  }
7320  com.google.protobuf.CodedInputStream input,
7321  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7322  throws com.google.protobuf.InvalidProtocolBufferException {
7323  this();
7324  if (extensionRegistry == null) {
7325  throw new java.lang.NullPointerException();
7326  }
7327  com.google.protobuf.UnknownFieldSet.Builder unknownFields =
7328  com.google.protobuf.UnknownFieldSet.newBuilder();
7329  try {
7330  boolean done = false;
7331  while (!done) {
7332  int tag = input.readTag();
7333  switch (tag) {
7334  case 0:
7335  done = true;
7336  break;
7337  case 305: {
7338 
7339  improvementRateCoefficient_ = input.readDouble();
7340  break;
7341  }
7342  case 312: {
7343 
7344  improvementRateSolutionsDistance_ = input.readInt32();
7345  break;
7346  }
7347  default: {
7348  if (!parseUnknownField(
7349  input, unknownFields, extensionRegistry, tag)) {
7350  done = true;
7351  }
7352  break;
7353  }
7354  }
7355  }
7356  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
7357  throw e.setUnfinishedMessage(this);
7358  } catch (java.io.IOException e) {
7359  throw new com.google.protobuf.InvalidProtocolBufferException(
7360  e).setUnfinishedMessage(this);
7361  } finally {
7362  this.unknownFields = unknownFields.build();
7363  makeExtensionsImmutable();
7364  }
7365  }
7366  public static final com.google.protobuf.Descriptors.Descriptor
7368  return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_ImprovementSearchLimitParameters_descriptor;
7369  }
7370 
7371  @java.lang.Override
7372  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
7374  return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_ImprovementSearchLimitParameters_fieldAccessorTable
7375  .ensureFieldAccessorsInitialized(
7376  com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.class, com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.Builder.class);
7377  }
7378 
7379  public static final int IMPROVEMENT_RATE_COEFFICIENT_FIELD_NUMBER = 38;
7380  private double improvementRateCoefficient_;
7391  @java.lang.Override
7393  return improvementRateCoefficient_;
7394  }
7395 
7397  private int improvementRateSolutionsDistance_;
7410  @java.lang.Override
7412  return improvementRateSolutionsDistance_;
7413  }
7414 
7415  private byte memoizedIsInitialized = -1;
7416  @java.lang.Override
7417  public final boolean isInitialized() {
7418  byte isInitialized = memoizedIsInitialized;
7419  if (isInitialized == 1) return true;
7420  if (isInitialized == 0) return false;
7421 
7422  memoizedIsInitialized = 1;
7423  return true;
7424  }
7425 
7426  @java.lang.Override
7427  public void writeTo(com.google.protobuf.CodedOutputStream output)
7428  throws java.io.IOException {
7429  if (improvementRateCoefficient_ != 0D) {
7430  output.writeDouble(38, improvementRateCoefficient_);
7431  }
7432  if (improvementRateSolutionsDistance_ != 0) {
7433  output.writeInt32(39, improvementRateSolutionsDistance_);
7434  }
7435  unknownFields.writeTo(output);
7436  }
7437 
7438  @java.lang.Override
7439  public int getSerializedSize() {
7440  int size = memoizedSize;
7441  if (size != -1) return size;
7442 
7443  size = 0;
7444  if (improvementRateCoefficient_ != 0D) {
7445  size += com.google.protobuf.CodedOutputStream
7446  .computeDoubleSize(38, improvementRateCoefficient_);
7447  }
7448  if (improvementRateSolutionsDistance_ != 0) {
7449  size += com.google.protobuf.CodedOutputStream
7450  .computeInt32Size(39, improvementRateSolutionsDistance_);
7451  }
7452  size += unknownFields.getSerializedSize();
7453  memoizedSize = size;
7454  return size;
7455  }
7456 
7457  @java.lang.Override
7458  public boolean equals(final java.lang.Object obj) {
7459  if (obj == this) {
7460  return true;
7461  }
7462  if (!(obj instanceof com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters)) {
7463  return super.equals(obj);
7464  }
7465  com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters other = (com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters) obj;
7466 
7467  if (java.lang.Double.doubleToLongBits(getImprovementRateCoefficient())
7468  != java.lang.Double.doubleToLongBits(
7469  other.getImprovementRateCoefficient())) return false;
7471  != other.getImprovementRateSolutionsDistance()) return false;
7472  if (!unknownFields.equals(other.unknownFields)) return false;
7473  return true;
7474  }
7475 
7476  @java.lang.Override
7477  public int hashCode() {
7478  if (memoizedHashCode != 0) {
7479  return memoizedHashCode;
7480  }
7481  int hash = 41;
7482  hash = (19 * hash) + getDescriptor().hashCode();
7483  hash = (37 * hash) + IMPROVEMENT_RATE_COEFFICIENT_FIELD_NUMBER;
7484  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7485  java.lang.Double.doubleToLongBits(getImprovementRateCoefficient()));
7487  hash = (53 * hash) + getImprovementRateSolutionsDistance();
7488  hash = (29 * hash) + unknownFields.hashCode();
7489  memoizedHashCode = hash;
7490  return hash;
7491  }
7492 
7493  public static com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters parseFrom(
7494  java.nio.ByteBuffer data)
7495  throws com.google.protobuf.InvalidProtocolBufferException {
7496  return PARSER.parseFrom(data);
7497  }
7498  public static com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters parseFrom(
7499  java.nio.ByteBuffer data,
7500  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7501  throws com.google.protobuf.InvalidProtocolBufferException {
7502  return PARSER.parseFrom(data, extensionRegistry);
7503  }
7504  public static com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters parseFrom(
7505  com.google.protobuf.ByteString data)
7506  throws com.google.protobuf.InvalidProtocolBufferException {
7507  return PARSER.parseFrom(data);
7508  }
7509  public static com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters parseFrom(
7510  com.google.protobuf.ByteString data,
7511  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7512  throws com.google.protobuf.InvalidProtocolBufferException {
7513  return PARSER.parseFrom(data, extensionRegistry);
7514  }
7515  public static com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters parseFrom(byte[] data)
7516  throws com.google.protobuf.InvalidProtocolBufferException {
7517  return PARSER.parseFrom(data);
7518  }
7519  public static com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters parseFrom(
7520  byte[] data,
7521  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7522  throws com.google.protobuf.InvalidProtocolBufferException {
7523  return PARSER.parseFrom(data, extensionRegistry);
7524  }
7525  public static com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters parseFrom(java.io.InputStream input)
7526  throws java.io.IOException {
7527  return com.google.protobuf.GeneratedMessageV3
7528  .parseWithIOException(PARSER, input);
7529  }
7530  public static com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters parseFrom(
7531  java.io.InputStream input,
7532  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7533  throws java.io.IOException {
7534  return com.google.protobuf.GeneratedMessageV3
7535  .parseWithIOException(PARSER, input, extensionRegistry);
7536  }
7537  public static com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters parseDelimitedFrom(java.io.InputStream input)
7538  throws java.io.IOException {
7539  return com.google.protobuf.GeneratedMessageV3
7540  .parseDelimitedWithIOException(PARSER, input);
7541  }
7542  public static com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters parseDelimitedFrom(
7543  java.io.InputStream input,
7544  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7545  throws java.io.IOException {
7546  return com.google.protobuf.GeneratedMessageV3
7547  .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
7548  }
7549  public static com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters parseFrom(
7550  com.google.protobuf.CodedInputStream input)
7551  throws java.io.IOException {
7552  return com.google.protobuf.GeneratedMessageV3
7553  .parseWithIOException(PARSER, input);
7554  }
7555  public static com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters parseFrom(
7556  com.google.protobuf.CodedInputStream input,
7557  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7558  throws java.io.IOException {
7559  return com.google.protobuf.GeneratedMessageV3
7560  .parseWithIOException(PARSER, input, extensionRegistry);
7561  }
7562 
7563  @java.lang.Override
7564  public Builder newBuilderForType() { return newBuilder(); }
7565  public static Builder newBuilder() {
7566  return DEFAULT_INSTANCE.toBuilder();
7567  }
7568  public static Builder newBuilder(com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters prototype) {
7569  return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
7570  }
7571  @java.lang.Override
7572  public Builder toBuilder() {
7573  return this == DEFAULT_INSTANCE
7574  ? new Builder() : new Builder().mergeFrom(this);
7575  }
7576 
7577  @java.lang.Override
7579  com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
7580  Builder builder = new Builder(parent);
7581  return builder;
7582  }
7590  public static final class Builder extends
7591  com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
7592  // @@protoc_insertion_point(builder_implements:operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters)
7593  com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParametersOrBuilder {
7594  public static final com.google.protobuf.Descriptors.Descriptor
7596  return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_ImprovementSearchLimitParameters_descriptor;
7597  }
7598 
7599  @java.lang.Override
7600  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
7602  return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_ImprovementSearchLimitParameters_fieldAccessorTable
7603  .ensureFieldAccessorsInitialized(
7604  com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.class, com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.Builder.class);
7605  }
7606 
7607  // Construct using com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.newBuilder()
7608  private Builder() {
7609  maybeForceBuilderInitialization();
7610  }
7611 
7612  private Builder(
7613  com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
7614  super(parent);
7615  maybeForceBuilderInitialization();
7616  }
7617  private void maybeForceBuilderInitialization() {
7618  if (com.google.protobuf.GeneratedMessageV3
7619  .alwaysUseFieldBuilders) {
7620  }
7621  }
7622  @java.lang.Override
7623  public Builder clear() {
7624  super.clear();
7625  improvementRateCoefficient_ = 0D;
7626 
7627  improvementRateSolutionsDistance_ = 0;
7628 
7629  return this;
7630  }
7631 
7632  @java.lang.Override
7633  public com.google.protobuf.Descriptors.Descriptor
7635  return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_ImprovementSearchLimitParameters_descriptor;
7636  }
7637 
7638  @java.lang.Override
7639  public com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters getDefaultInstanceForType() {
7640  return com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.getDefaultInstance();
7641  }
7642 
7643  @java.lang.Override
7644  public com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters build() {
7645  com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters result = buildPartial();
7646  if (!result.isInitialized()) {
7647  throw newUninitializedMessageException(result);
7648  }
7649  return result;
7650  }
7651 
7652  @java.lang.Override
7653  public com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters buildPartial() {
7654  com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters result = new com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters(this);
7655  result.improvementRateCoefficient_ = improvementRateCoefficient_;
7656  result.improvementRateSolutionsDistance_ = improvementRateSolutionsDistance_;
7657  onBuilt();
7658  return result;
7659  }
7660 
7661  @java.lang.Override
7662  public Builder clone() {
7663  return super.clone();
7664  }
7665  @java.lang.Override
7667  com.google.protobuf.Descriptors.FieldDescriptor field,
7668  java.lang.Object value) {
7669  return super.setField(field, value);
7670  }
7671  @java.lang.Override
7673  com.google.protobuf.Descriptors.FieldDescriptor field) {
7674  return super.clearField(field);
7675  }
7676  @java.lang.Override
7678  com.google.protobuf.Descriptors.OneofDescriptor oneof) {
7679  return super.clearOneof(oneof);
7680  }
7681  @java.lang.Override
7683  com.google.protobuf.Descriptors.FieldDescriptor field,
7684  int index, java.lang.Object value) {
7685  return super.setRepeatedField(field, index, value);
7686  }
7687  @java.lang.Override
7689  com.google.protobuf.Descriptors.FieldDescriptor field,
7690  java.lang.Object value) {
7691  return super.addRepeatedField(field, value);
7692  }
7693  @java.lang.Override
7694  public Builder mergeFrom(com.google.protobuf.Message other) {
7695  if (other instanceof com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters) {
7696  return mergeFrom((com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters)other);
7697  } else {
7698  super.mergeFrom(other);
7699  return this;
7700  }
7701  }
7702 
7703  public Builder mergeFrom(com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters other) {
7704  if (other == com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.getDefaultInstance()) return this;
7705  if (other.getImprovementRateCoefficient() != 0D) {
7706  setImprovementRateCoefficient(other.getImprovementRateCoefficient());
7707  }
7708  if (other.getImprovementRateSolutionsDistance() != 0) {
7709  setImprovementRateSolutionsDistance(other.getImprovementRateSolutionsDistance());
7710  }
7711  this.mergeUnknownFields(other.unknownFields);
7712  onChanged();
7713  return this;
7714  }
7715 
7716  @java.lang.Override
7717  public final boolean isInitialized() {
7718  return true;
7719  }
7720 
7721  @java.lang.Override
7723  com.google.protobuf.CodedInputStream input,
7724  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7725  throws java.io.IOException {
7726  com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters parsedMessage = null;
7727  try {
7728  parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
7729  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
7730  parsedMessage = (com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters) e.getUnfinishedMessage();
7731  throw e.unwrapIOException();
7732  } finally {
7733  if (parsedMessage != null) {
7734  mergeFrom(parsedMessage);
7735  }
7736  }
7737  return this;
7738  }
7739 
7740  private double improvementRateCoefficient_ ;
7751  @java.lang.Override
7753  return improvementRateCoefficient_;
7754  }
7767 
7768  improvementRateCoefficient_ = value;
7769  onChanged();
7770  return this;
7771  }
7783 
7784  improvementRateCoefficient_ = 0D;
7785  onChanged();
7786  return this;
7787  }
7788 
7789  private int improvementRateSolutionsDistance_ ;
7802  @java.lang.Override
7804  return improvementRateSolutionsDistance_;
7805  }
7820 
7821  improvementRateSolutionsDistance_ = value;
7822  onChanged();
7823  return this;
7824  }
7838 
7839  improvementRateSolutionsDistance_ = 0;
7840  onChanged();
7841  return this;
7842  }
7843  @java.lang.Override
7845  final com.google.protobuf.UnknownFieldSet unknownFields) {
7846  return super.setUnknownFields(unknownFields);
7847  }
7848 
7849  @java.lang.Override
7851  final com.google.protobuf.UnknownFieldSet unknownFields) {
7852  return super.mergeUnknownFields(unknownFields);
7853  }
7854 
7855 
7856  // @@protoc_insertion_point(builder_scope:operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters)
7857  }
7858 
7859  // @@protoc_insertion_point(class_scope:operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters)
7860  private static final com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters DEFAULT_INSTANCE;
7861  static {
7862  DEFAULT_INSTANCE = new com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters();
7863  }
7864 
7865  public static com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters getDefaultInstance() {
7866  return DEFAULT_INSTANCE;
7867  }
7868 
7869  private static final com.google.protobuf.Parser<ImprovementSearchLimitParameters>
7870  PARSER = new com.google.protobuf.AbstractParser<ImprovementSearchLimitParameters>() {
7871  @java.lang.Override
7872  public ImprovementSearchLimitParameters parsePartialFrom(
7873  com.google.protobuf.CodedInputStream input,
7874  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7875  throws com.google.protobuf.InvalidProtocolBufferException {
7876  return new ImprovementSearchLimitParameters(input, extensionRegistry);
7877  }
7878  };
7879 
7880  public static com.google.protobuf.Parser<ImprovementSearchLimitParameters> parser() {
7881  return PARSER;
7882  }
7883 
7884  @java.lang.Override
7885  public com.google.protobuf.Parser<ImprovementSearchLimitParameters> getParserForType() {
7886  return PARSER;
7887  }
7888 
7889  @java.lang.Override
7890  public com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters getDefaultInstanceForType() {
7891  return DEFAULT_INSTANCE;
7892  }
7893 
7894  }
7895 
7896  public static final int FIRST_SOLUTION_STRATEGY_FIELD_NUMBER = 1;
7897  private int firstSolutionStrategy_;
7906  @java.lang.Override public int getFirstSolutionStrategyValue() {
7907  return firstSolutionStrategy_;
7908  }
7917  @java.lang.Override public com.google.ortools.constraintsolver.FirstSolutionStrategy.Value getFirstSolutionStrategy() {
7918  @SuppressWarnings("deprecation")
7919  com.google.ortools.constraintsolver.FirstSolutionStrategy.Value result = com.google.ortools.constraintsolver.FirstSolutionStrategy.Value.valueOf(firstSolutionStrategy_);
7920  return result == null ? com.google.ortools.constraintsolver.FirstSolutionStrategy.Value.UNRECOGNIZED : result;
7921  }
7922 
7924  private boolean useUnfilteredFirstSolutionStrategy_;
7935  @java.lang.Override
7937  return useUnfilteredFirstSolutionStrategy_;
7938  }
7939 
7940  public static final int SAVINGS_NEIGHBORS_RATIO_FIELD_NUMBER = 14;
7941  private double savingsNeighborsRatio_;
7952  @java.lang.Override
7953  public double getSavingsNeighborsRatio() {
7954  return savingsNeighborsRatio_;
7955  }
7956 
7957  public static final int SAVINGS_MAX_MEMORY_USAGE_BYTES_FIELD_NUMBER = 23;
7958  private double savingsMaxMemoryUsageBytes_;
7972  @java.lang.Override
7974  return savingsMaxMemoryUsageBytes_;
7975  }
7976 
7977  public static final int SAVINGS_ADD_REVERSE_ARCS_FIELD_NUMBER = 15;
7978  private boolean savingsAddReverseArcs_;
7988  @java.lang.Override
7989  public boolean getSavingsAddReverseArcs() {
7990  return savingsAddReverseArcs_;
7991  }
7992 
7993  public static final int SAVINGS_ARC_COEFFICIENT_FIELD_NUMBER = 18;
7994  private double savingsArcCoefficient_;
8007  @java.lang.Override
8008  public double getSavingsArcCoefficient() {
8009  return savingsArcCoefficient_;
8010  }
8011 
8012  public static final int SAVINGS_PARALLEL_ROUTES_FIELD_NUMBER = 19;
8013  private boolean savingsParallelRoutes_;
8022  @java.lang.Override
8023  public boolean getSavingsParallelRoutes() {
8024  return savingsParallelRoutes_;
8025  }
8026 
8028  private double cheapestInsertionFarthestSeedsRatio_;
8039  @java.lang.Override
8041  return cheapestInsertionFarthestSeedsRatio_;
8042  }
8043 
8045  private double cheapestInsertionFirstSolutionNeighborsRatio_;
8067  @java.lang.Override
8069  return cheapestInsertionFirstSolutionNeighborsRatio_;
8070  }
8071 
8073  private int cheapestInsertionFirstSolutionMinNeighbors_;
8078  @java.lang.Override
8080  return cheapestInsertionFirstSolutionMinNeighbors_;
8081  }
8082 
8084  private double cheapestInsertionLsOperatorNeighborsRatio_;
8096  @java.lang.Override
8098  return cheapestInsertionLsOperatorNeighborsRatio_;
8099  }
8100 
8102  private int cheapestInsertionLsOperatorMinNeighbors_;
8107  @java.lang.Override
8109  return cheapestInsertionLsOperatorMinNeighbors_;
8110  }
8111 
8113  private boolean cheapestInsertionAddUnperformedEntries_;
8123  @java.lang.Override
8125  return cheapestInsertionAddUnperformedEntries_;
8126  }
8127 
8129  private boolean christofidesUseMinimumMatching_;
8139  @java.lang.Override
8141  return christofidesUseMinimumMatching_;
8142  }
8143 
8144  public static final int LOCAL_SEARCH_OPERATORS_FIELD_NUMBER = 3;
8145  private com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators localSearchOperators_;
8150  @java.lang.Override
8151  public boolean hasLocalSearchOperators() {
8152  return localSearchOperators_ != null;
8153  }
8158  @java.lang.Override
8159  public com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators getLocalSearchOperators() {
8160  return localSearchOperators_ == null ? com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.getDefaultInstance() : localSearchOperators_;
8161  }
8165  @java.lang.Override
8166  public com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder getLocalSearchOperatorsOrBuilder() {
8167  return getLocalSearchOperators();
8168  }
8169 
8171  private boolean useMultiArmedBanditConcatenateOperators_;
8182  @java.lang.Override
8184  return useMultiArmedBanditConcatenateOperators_;
8185  }
8186 
8188  private double multiArmedBanditCompoundOperatorMemoryCoefficient_;
8200  @java.lang.Override
8202  return multiArmedBanditCompoundOperatorMemoryCoefficient_;
8203  }
8204 
8206  private double multiArmedBanditCompoundOperatorExplorationCoefficient_;
8217  @java.lang.Override
8219  return multiArmedBanditCompoundOperatorExplorationCoefficient_;
8220  }
8221 
8223  private int relocateExpensiveChainNumArcsToConsider_;
8238  @java.lang.Override
8240  return relocateExpensiveChainNumArcsToConsider_;
8241  }
8242 
8244  private int heuristicExpensiveChainLnsNumArcsToConsider_;
8254  @java.lang.Override
8256  return heuristicExpensiveChainLnsNumArcsToConsider_;
8257  }
8258 
8260  private int heuristicCloseNodesLnsNumNodes_;
8270  @java.lang.Override
8272  return heuristicCloseNodesLnsNumNodes_;
8273  }
8274 
8275  public static final int LOCAL_SEARCH_METAHEURISTIC_FIELD_NUMBER = 4;
8276  private int localSearchMetaheuristic_;
8285  @java.lang.Override public int getLocalSearchMetaheuristicValue() {
8286  return localSearchMetaheuristic_;
8287  }
8296  @java.lang.Override public com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value getLocalSearchMetaheuristic() {
8297  @SuppressWarnings("deprecation")
8298  com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value result = com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value.valueOf(localSearchMetaheuristic_);
8299  return result == null ? com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value.UNRECOGNIZED : result;
8300  }
8301 
8303  private double guidedLocalSearchLambdaCoefficient_;
8315  @java.lang.Override
8317  return guidedLocalSearchLambdaCoefficient_;
8318  }
8319 
8320  public static final int USE_DEPTH_FIRST_SEARCH_FIELD_NUMBER = 6;
8321  private boolean useDepthFirstSearch_;
8332  @java.lang.Override
8333  public boolean getUseDepthFirstSearch() {
8334  return useDepthFirstSearch_;
8335  }
8336 
8337  public static final int USE_CP_FIELD_NUMBER = 28;
8338  private int useCp_;
8349  @java.lang.Override public int getUseCpValue() {
8350  return useCp_;
8351  }
8362  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseCp() {
8363  @SuppressWarnings("deprecation")
8364  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useCp_);
8365  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
8366  }
8367 
8368  public static final int USE_CP_SAT_FIELD_NUMBER = 27;
8369  private int useCpSat_;
8381  @java.lang.Override public int getUseCpSatValue() {
8382  return useCpSat_;
8383  }
8395  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseCpSat() {
8396  @SuppressWarnings("deprecation")
8397  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useCpSat_);
8398  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
8399  }
8400 
8401  public static final int CONTINUOUS_SCHEDULING_SOLVER_FIELD_NUMBER = 33;
8402  private int continuousSchedulingSolver_;
8407  @java.lang.Override public int getContinuousSchedulingSolverValue() {
8408  return continuousSchedulingSolver_;
8409  }
8414  @java.lang.Override public com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver getContinuousSchedulingSolver() {
8415  @SuppressWarnings("deprecation")
8416  com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver result = com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.valueOf(continuousSchedulingSolver_);
8417  return result == null ? com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.UNRECOGNIZED : result;
8418  }
8419 
8420  public static final int MIXED_INTEGER_SCHEDULING_SOLVER_FIELD_NUMBER = 34;
8421  private int mixedIntegerSchedulingSolver_;
8426  @java.lang.Override public int getMixedIntegerSchedulingSolverValue() {
8427  return mixedIntegerSchedulingSolver_;
8428  }
8433  @java.lang.Override public com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver getMixedIntegerSchedulingSolver() {
8434  @SuppressWarnings("deprecation")
8435  com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver result = com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.valueOf(mixedIntegerSchedulingSolver_);
8436  return result == null ? com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.UNRECOGNIZED : result;
8437  }
8438 
8439  public static final int OPTIMIZATION_STEP_FIELD_NUMBER = 7;
8440  private double optimizationStep_;
8451  @java.lang.Override
8452  public double getOptimizationStep() {
8453  return optimizationStep_;
8454  }
8455 
8456  public static final int NUMBER_OF_SOLUTIONS_TO_COLLECT_FIELD_NUMBER = 17;
8457  private int numberOfSolutionsToCollect_;
8467  @java.lang.Override
8469  return numberOfSolutionsToCollect_;
8470  }
8471 
8472  public static final int SOLUTION_LIMIT_FIELD_NUMBER = 8;
8473  private long solutionLimit_;
8484  @java.lang.Override
8485  public long getSolutionLimit() {
8486  return solutionLimit_;
8487  }
8488 
8489  public static final int TIME_LIMIT_FIELD_NUMBER = 9;
8490  private com.google.protobuf.Duration timeLimit_;
8499  @java.lang.Override
8500  public boolean hasTimeLimit() {
8501  return timeLimit_ != null;
8502  }
8511  @java.lang.Override
8512  public com.google.protobuf.Duration getTimeLimit() {
8513  return timeLimit_ == null ? com.google.protobuf.Duration.getDefaultInstance() : timeLimit_;
8514  }
8522  @java.lang.Override
8523  public com.google.protobuf.DurationOrBuilder getTimeLimitOrBuilder() {
8524  return getTimeLimit();
8525  }
8526 
8527  public static final int LNS_TIME_LIMIT_FIELD_NUMBER = 10;
8528  private com.google.protobuf.Duration lnsTimeLimit_;
8538  @java.lang.Override
8539  public boolean hasLnsTimeLimit() {
8540  return lnsTimeLimit_ != null;
8541  }
8551  @java.lang.Override
8552  public com.google.protobuf.Duration getLnsTimeLimit() {
8553  return lnsTimeLimit_ == null ? com.google.protobuf.Duration.getDefaultInstance() : lnsTimeLimit_;
8554  }
8563  @java.lang.Override
8564  public com.google.protobuf.DurationOrBuilder getLnsTimeLimitOrBuilder() {
8565  return getLnsTimeLimit();
8566  }
8567 
8568  public static final int IMPROVEMENT_LIMIT_PARAMETERS_FIELD_NUMBER = 37;
8569  private com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters improvementLimitParameters_;
8579  @java.lang.Override
8581  return improvementLimitParameters_ != null;
8582  }
8592  @java.lang.Override
8593  public com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters getImprovementLimitParameters() {
8594  return improvementLimitParameters_ == null ? com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.getDefaultInstance() : improvementLimitParameters_;
8595  }
8604  @java.lang.Override
8605  public com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParametersOrBuilder getImprovementLimitParametersOrBuilder() {
8607  }
8608 
8609  public static final int USE_FULL_PROPAGATION_FIELD_NUMBER = 11;
8610  private boolean useFullPropagation_;
8627  @java.lang.Override
8628  public boolean getUseFullPropagation() {
8629  return useFullPropagation_;
8630  }
8631 
8632  public static final int LOG_SEARCH_FIELD_NUMBER = 13;
8633  private boolean logSearch_;
8653  @java.lang.Override
8654  public boolean getLogSearch() {
8655  return logSearch_;
8656  }
8657 
8658  public static final int LOG_COST_SCALING_FACTOR_FIELD_NUMBER = 22;
8659  private double logCostScalingFactor_;
8669  @java.lang.Override
8670  public double getLogCostScalingFactor() {
8671  return logCostScalingFactor_;
8672  }
8673 
8674  public static final int LOG_COST_OFFSET_FIELD_NUMBER = 29;
8675  private double logCostOffset_;
8680  @java.lang.Override
8681  public double getLogCostOffset() {
8682  return logCostOffset_;
8683  }
8684 
8685  public static final int LOG_TAG_FIELD_NUMBER = 36;
8686  private volatile java.lang.Object logTag_;
8696  @java.lang.Override
8697  public java.lang.String getLogTag() {
8698  java.lang.Object ref = logTag_;
8699  if (ref instanceof java.lang.String) {
8700  return (java.lang.String) ref;
8701  } else {
8702  com.google.protobuf.ByteString bs =
8703  (com.google.protobuf.ByteString) ref;
8704  java.lang.String s = bs.toStringUtf8();
8705  logTag_ = s;
8706  return s;
8707  }
8708  }
8718  @java.lang.Override
8719  public com.google.protobuf.ByteString
8721  java.lang.Object ref = logTag_;
8722  if (ref instanceof java.lang.String) {
8723  com.google.protobuf.ByteString b =
8724  com.google.protobuf.ByteString.copyFromUtf8(
8725  (java.lang.String) ref);
8726  logTag_ = b;
8727  return b;
8728  } else {
8729  return (com.google.protobuf.ByteString) ref;
8730  }
8731  }
8732 
8733  private byte memoizedIsInitialized = -1;
8734  @java.lang.Override
8735  public final boolean isInitialized() {
8736  byte isInitialized = memoizedIsInitialized;
8737  if (isInitialized == 1) return true;
8738  if (isInitialized == 0) return false;
8739 
8740  memoizedIsInitialized = 1;
8741  return true;
8742  }
8743 
8744  @java.lang.Override
8745  public void writeTo(com.google.protobuf.CodedOutputStream output)
8746  throws java.io.IOException {
8747  if (firstSolutionStrategy_ != com.google.ortools.constraintsolver.FirstSolutionStrategy.Value.UNSET.getNumber()) {
8748  output.writeEnum(1, firstSolutionStrategy_);
8749  }
8750  if (useUnfilteredFirstSolutionStrategy_ != false) {
8751  output.writeBool(2, useUnfilteredFirstSolutionStrategy_);
8752  }
8753  if (localSearchOperators_ != null) {
8754  output.writeMessage(3, getLocalSearchOperators());
8755  }
8756  if (localSearchMetaheuristic_ != com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value.UNSET.getNumber()) {
8757  output.writeEnum(4, localSearchMetaheuristic_);
8758  }
8759  if (guidedLocalSearchLambdaCoefficient_ != 0D) {
8760  output.writeDouble(5, guidedLocalSearchLambdaCoefficient_);
8761  }
8762  if (useDepthFirstSearch_ != false) {
8763  output.writeBool(6, useDepthFirstSearch_);
8764  }
8765  if (optimizationStep_ != 0D) {
8766  output.writeDouble(7, optimizationStep_);
8767  }
8768  if (solutionLimit_ != 0L) {
8769  output.writeInt64(8, solutionLimit_);
8770  }
8771  if (timeLimit_ != null) {
8772  output.writeMessage(9, getTimeLimit());
8773  }
8774  if (lnsTimeLimit_ != null) {
8775  output.writeMessage(10, getLnsTimeLimit());
8776  }
8777  if (useFullPropagation_ != false) {
8778  output.writeBool(11, useFullPropagation_);
8779  }
8780  if (logSearch_ != false) {
8781  output.writeBool(13, logSearch_);
8782  }
8783  if (savingsNeighborsRatio_ != 0D) {
8784  output.writeDouble(14, savingsNeighborsRatio_);
8785  }
8786  if (savingsAddReverseArcs_ != false) {
8787  output.writeBool(15, savingsAddReverseArcs_);
8788  }
8789  if (cheapestInsertionFarthestSeedsRatio_ != 0D) {
8790  output.writeDouble(16, cheapestInsertionFarthestSeedsRatio_);
8791  }
8792  if (numberOfSolutionsToCollect_ != 0) {
8793  output.writeInt32(17, numberOfSolutionsToCollect_);
8794  }
8795  if (savingsArcCoefficient_ != 0D) {
8796  output.writeDouble(18, savingsArcCoefficient_);
8797  }
8798  if (savingsParallelRoutes_ != false) {
8799  output.writeBool(19, savingsParallelRoutes_);
8800  }
8801  if (relocateExpensiveChainNumArcsToConsider_ != 0) {
8802  output.writeInt32(20, relocateExpensiveChainNumArcsToConsider_);
8803  }
8804  if (cheapestInsertionFirstSolutionNeighborsRatio_ != 0D) {
8805  output.writeDouble(21, cheapestInsertionFirstSolutionNeighborsRatio_);
8806  }
8807  if (logCostScalingFactor_ != 0D) {
8808  output.writeDouble(22, logCostScalingFactor_);
8809  }
8810  if (savingsMaxMemoryUsageBytes_ != 0D) {
8811  output.writeDouble(23, savingsMaxMemoryUsageBytes_);
8812  }
8813  if (useCpSat_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
8814  output.writeEnum(27, useCpSat_);
8815  }
8816  if (useCp_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
8817  output.writeEnum(28, useCp_);
8818  }
8819  if (logCostOffset_ != 0D) {
8820  output.writeDouble(29, logCostOffset_);
8821  }
8822  if (christofidesUseMinimumMatching_ != false) {
8823  output.writeBool(30, christofidesUseMinimumMatching_);
8824  }
8825  if (cheapestInsertionLsOperatorNeighborsRatio_ != 0D) {
8826  output.writeDouble(31, cheapestInsertionLsOperatorNeighborsRatio_);
8827  }
8828  if (heuristicExpensiveChainLnsNumArcsToConsider_ != 0) {
8829  output.writeInt32(32, heuristicExpensiveChainLnsNumArcsToConsider_);
8830  }
8831  if (continuousSchedulingSolver_ != com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.UNSET.getNumber()) {
8832  output.writeEnum(33, continuousSchedulingSolver_);
8833  }
8834  if (mixedIntegerSchedulingSolver_ != com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.UNSET.getNumber()) {
8835  output.writeEnum(34, mixedIntegerSchedulingSolver_);
8836  }
8837  if (heuristicCloseNodesLnsNumNodes_ != 0) {
8838  output.writeInt32(35, heuristicCloseNodesLnsNumNodes_);
8839  }
8840  if (!getLogTagBytes().isEmpty()) {
8841  com.google.protobuf.GeneratedMessageV3.writeString(output, 36, logTag_);
8842  }
8843  if (improvementLimitParameters_ != null) {
8844  output.writeMessage(37, getImprovementLimitParameters());
8845  }
8846  if (cheapestInsertionAddUnperformedEntries_ != false) {
8847  output.writeBool(40, cheapestInsertionAddUnperformedEntries_);
8848  }
8849  if (useMultiArmedBanditConcatenateOperators_ != false) {
8850  output.writeBool(41, useMultiArmedBanditConcatenateOperators_);
8851  }
8852  if (multiArmedBanditCompoundOperatorMemoryCoefficient_ != 0D) {
8853  output.writeDouble(42, multiArmedBanditCompoundOperatorMemoryCoefficient_);
8854  }
8855  if (multiArmedBanditCompoundOperatorExplorationCoefficient_ != 0D) {
8856  output.writeDouble(43, multiArmedBanditCompoundOperatorExplorationCoefficient_);
8857  }
8858  if (cheapestInsertionFirstSolutionMinNeighbors_ != 0) {
8859  output.writeInt32(44, cheapestInsertionFirstSolutionMinNeighbors_);
8860  }
8861  if (cheapestInsertionLsOperatorMinNeighbors_ != 0) {
8862  output.writeInt32(45, cheapestInsertionLsOperatorMinNeighbors_);
8863  }
8864  unknownFields.writeTo(output);
8865  }
8866 
8867  @java.lang.Override
8868  public int getSerializedSize() {
8869  int size = memoizedSize;
8870  if (size != -1) return size;
8871 
8872  size = 0;
8873  if (firstSolutionStrategy_ != com.google.ortools.constraintsolver.FirstSolutionStrategy.Value.UNSET.getNumber()) {
8874  size += com.google.protobuf.CodedOutputStream
8875  .computeEnumSize(1, firstSolutionStrategy_);
8876  }
8877  if (useUnfilteredFirstSolutionStrategy_ != false) {
8878  size += com.google.protobuf.CodedOutputStream
8879  .computeBoolSize(2, useUnfilteredFirstSolutionStrategy_);
8880  }
8881  if (localSearchOperators_ != null) {
8882  size += com.google.protobuf.CodedOutputStream
8883  .computeMessageSize(3, getLocalSearchOperators());
8884  }
8885  if (localSearchMetaheuristic_ != com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value.UNSET.getNumber()) {
8886  size += com.google.protobuf.CodedOutputStream
8887  .computeEnumSize(4, localSearchMetaheuristic_);
8888  }
8889  if (guidedLocalSearchLambdaCoefficient_ != 0D) {
8890  size += com.google.protobuf.CodedOutputStream
8891  .computeDoubleSize(5, guidedLocalSearchLambdaCoefficient_);
8892  }
8893  if (useDepthFirstSearch_ != false) {
8894  size += com.google.protobuf.CodedOutputStream
8895  .computeBoolSize(6, useDepthFirstSearch_);
8896  }
8897  if (optimizationStep_ != 0D) {
8898  size += com.google.protobuf.CodedOutputStream
8899  .computeDoubleSize(7, optimizationStep_);
8900  }
8901  if (solutionLimit_ != 0L) {
8902  size += com.google.protobuf.CodedOutputStream
8903  .computeInt64Size(8, solutionLimit_);
8904  }
8905  if (timeLimit_ != null) {
8906  size += com.google.protobuf.CodedOutputStream
8907  .computeMessageSize(9, getTimeLimit());
8908  }
8909  if (lnsTimeLimit_ != null) {
8910  size += com.google.protobuf.CodedOutputStream
8911  .computeMessageSize(10, getLnsTimeLimit());
8912  }
8913  if (useFullPropagation_ != false) {
8914  size += com.google.protobuf.CodedOutputStream
8915  .computeBoolSize(11, useFullPropagation_);
8916  }
8917  if (logSearch_ != false) {
8918  size += com.google.protobuf.CodedOutputStream
8919  .computeBoolSize(13, logSearch_);
8920  }
8921  if (savingsNeighborsRatio_ != 0D) {
8922  size += com.google.protobuf.CodedOutputStream
8923  .computeDoubleSize(14, savingsNeighborsRatio_);
8924  }
8925  if (savingsAddReverseArcs_ != false) {
8926  size += com.google.protobuf.CodedOutputStream
8927  .computeBoolSize(15, savingsAddReverseArcs_);
8928  }
8929  if (cheapestInsertionFarthestSeedsRatio_ != 0D) {
8930  size += com.google.protobuf.CodedOutputStream
8931  .computeDoubleSize(16, cheapestInsertionFarthestSeedsRatio_);
8932  }
8933  if (numberOfSolutionsToCollect_ != 0) {
8934  size += com.google.protobuf.CodedOutputStream
8935  .computeInt32Size(17, numberOfSolutionsToCollect_);
8936  }
8937  if (savingsArcCoefficient_ != 0D) {
8938  size += com.google.protobuf.CodedOutputStream
8939  .computeDoubleSize(18, savingsArcCoefficient_);
8940  }
8941  if (savingsParallelRoutes_ != false) {
8942  size += com.google.protobuf.CodedOutputStream
8943  .computeBoolSize(19, savingsParallelRoutes_);
8944  }
8945  if (relocateExpensiveChainNumArcsToConsider_ != 0) {
8946  size += com.google.protobuf.CodedOutputStream
8947  .computeInt32Size(20, relocateExpensiveChainNumArcsToConsider_);
8948  }
8949  if (cheapestInsertionFirstSolutionNeighborsRatio_ != 0D) {
8950  size += com.google.protobuf.CodedOutputStream
8951  .computeDoubleSize(21, cheapestInsertionFirstSolutionNeighborsRatio_);
8952  }
8953  if (logCostScalingFactor_ != 0D) {
8954  size += com.google.protobuf.CodedOutputStream
8955  .computeDoubleSize(22, logCostScalingFactor_);
8956  }
8957  if (savingsMaxMemoryUsageBytes_ != 0D) {
8958  size += com.google.protobuf.CodedOutputStream
8959  .computeDoubleSize(23, savingsMaxMemoryUsageBytes_);
8960  }
8961  if (useCpSat_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
8962  size += com.google.protobuf.CodedOutputStream
8963  .computeEnumSize(27, useCpSat_);
8964  }
8965  if (useCp_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
8966  size += com.google.protobuf.CodedOutputStream
8967  .computeEnumSize(28, useCp_);
8968  }
8969  if (logCostOffset_ != 0D) {
8970  size += com.google.protobuf.CodedOutputStream
8971  .computeDoubleSize(29, logCostOffset_);
8972  }
8973  if (christofidesUseMinimumMatching_ != false) {
8974  size += com.google.protobuf.CodedOutputStream
8975  .computeBoolSize(30, christofidesUseMinimumMatching_);
8976  }
8977  if (cheapestInsertionLsOperatorNeighborsRatio_ != 0D) {
8978  size += com.google.protobuf.CodedOutputStream
8979  .computeDoubleSize(31, cheapestInsertionLsOperatorNeighborsRatio_);
8980  }
8981  if (heuristicExpensiveChainLnsNumArcsToConsider_ != 0) {
8982  size += com.google.protobuf.CodedOutputStream
8983  .computeInt32Size(32, heuristicExpensiveChainLnsNumArcsToConsider_);
8984  }
8985  if (continuousSchedulingSolver_ != com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.UNSET.getNumber()) {
8986  size += com.google.protobuf.CodedOutputStream
8987  .computeEnumSize(33, continuousSchedulingSolver_);
8988  }
8989  if (mixedIntegerSchedulingSolver_ != com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.UNSET.getNumber()) {
8990  size += com.google.protobuf.CodedOutputStream
8991  .computeEnumSize(34, mixedIntegerSchedulingSolver_);
8992  }
8993  if (heuristicCloseNodesLnsNumNodes_ != 0) {
8994  size += com.google.protobuf.CodedOutputStream
8995  .computeInt32Size(35, heuristicCloseNodesLnsNumNodes_);
8996  }
8997  if (!getLogTagBytes().isEmpty()) {
8998  size += com.google.protobuf.GeneratedMessageV3.computeStringSize(36, logTag_);
8999  }
9000  if (improvementLimitParameters_ != null) {
9001  size += com.google.protobuf.CodedOutputStream
9002  .computeMessageSize(37, getImprovementLimitParameters());
9003  }
9004  if (cheapestInsertionAddUnperformedEntries_ != false) {
9005  size += com.google.protobuf.CodedOutputStream
9006  .computeBoolSize(40, cheapestInsertionAddUnperformedEntries_);
9007  }
9008  if (useMultiArmedBanditConcatenateOperators_ != false) {
9009  size += com.google.protobuf.CodedOutputStream
9010  .computeBoolSize(41, useMultiArmedBanditConcatenateOperators_);
9011  }
9012  if (multiArmedBanditCompoundOperatorMemoryCoefficient_ != 0D) {
9013  size += com.google.protobuf.CodedOutputStream
9014  .computeDoubleSize(42, multiArmedBanditCompoundOperatorMemoryCoefficient_);
9015  }
9016  if (multiArmedBanditCompoundOperatorExplorationCoefficient_ != 0D) {
9017  size += com.google.protobuf.CodedOutputStream
9018  .computeDoubleSize(43, multiArmedBanditCompoundOperatorExplorationCoefficient_);
9019  }
9020  if (cheapestInsertionFirstSolutionMinNeighbors_ != 0) {
9021  size += com.google.protobuf.CodedOutputStream
9022  .computeInt32Size(44, cheapestInsertionFirstSolutionMinNeighbors_);
9023  }
9024  if (cheapestInsertionLsOperatorMinNeighbors_ != 0) {
9025  size += com.google.protobuf.CodedOutputStream
9026  .computeInt32Size(45, cheapestInsertionLsOperatorMinNeighbors_);
9027  }
9028  size += unknownFields.getSerializedSize();
9029  memoizedSize = size;
9030  return size;
9031  }
9032 
9033  @java.lang.Override
9034  public boolean equals(final java.lang.Object obj) {
9035  if (obj == this) {
9036  return true;
9037  }
9038  if (!(obj instanceof com.google.ortools.constraintsolver.RoutingSearchParameters)) {
9039  return super.equals(obj);
9040  }
9041  com.google.ortools.constraintsolver.RoutingSearchParameters other = (com.google.ortools.constraintsolver.RoutingSearchParameters) obj;
9042 
9043  if (firstSolutionStrategy_ != other.firstSolutionStrategy_) return false;
9045  != other.getUseUnfilteredFirstSolutionStrategy()) return false;
9046  if (java.lang.Double.doubleToLongBits(getSavingsNeighborsRatio())
9047  != java.lang.Double.doubleToLongBits(
9048  other.getSavingsNeighborsRatio())) return false;
9049  if (java.lang.Double.doubleToLongBits(getSavingsMaxMemoryUsageBytes())
9050  != java.lang.Double.doubleToLongBits(
9051  other.getSavingsMaxMemoryUsageBytes())) return false;
9053  != other.getSavingsAddReverseArcs()) return false;
9054  if (java.lang.Double.doubleToLongBits(getSavingsArcCoefficient())
9055  != java.lang.Double.doubleToLongBits(
9056  other.getSavingsArcCoefficient())) return false;
9058  != other.getSavingsParallelRoutes()) return false;
9059  if (java.lang.Double.doubleToLongBits(getCheapestInsertionFarthestSeedsRatio())
9060  != java.lang.Double.doubleToLongBits(
9061  other.getCheapestInsertionFarthestSeedsRatio())) return false;
9062  if (java.lang.Double.doubleToLongBits(getCheapestInsertionFirstSolutionNeighborsRatio())
9063  != java.lang.Double.doubleToLongBits(
9064  other.getCheapestInsertionFirstSolutionNeighborsRatio())) return false;
9066  != other.getCheapestInsertionFirstSolutionMinNeighbors()) return false;
9067  if (java.lang.Double.doubleToLongBits(getCheapestInsertionLsOperatorNeighborsRatio())
9068  != java.lang.Double.doubleToLongBits(
9069  other.getCheapestInsertionLsOperatorNeighborsRatio())) return false;
9071  != other.getCheapestInsertionLsOperatorMinNeighbors()) return false;
9073  != other.getCheapestInsertionAddUnperformedEntries()) return false;
9075  != other.getChristofidesUseMinimumMatching()) return false;
9076  if (hasLocalSearchOperators() != other.hasLocalSearchOperators()) return false;
9077  if (hasLocalSearchOperators()) {
9079  .equals(other.getLocalSearchOperators())) return false;
9080  }
9082  != other.getUseMultiArmedBanditConcatenateOperators()) return false;
9083  if (java.lang.Double.doubleToLongBits(getMultiArmedBanditCompoundOperatorMemoryCoefficient())
9084  != java.lang.Double.doubleToLongBits(
9085  other.getMultiArmedBanditCompoundOperatorMemoryCoefficient())) return false;
9086  if (java.lang.Double.doubleToLongBits(getMultiArmedBanditCompoundOperatorExplorationCoefficient())
9087  != java.lang.Double.doubleToLongBits(
9088  other.getMultiArmedBanditCompoundOperatorExplorationCoefficient())) return false;
9090  != other.getRelocateExpensiveChainNumArcsToConsider()) return false;
9092  != other.getHeuristicExpensiveChainLnsNumArcsToConsider()) return false;
9094  != other.getHeuristicCloseNodesLnsNumNodes()) return false;
9095  if (localSearchMetaheuristic_ != other.localSearchMetaheuristic_) return false;
9096  if (java.lang.Double.doubleToLongBits(getGuidedLocalSearchLambdaCoefficient())
9097  != java.lang.Double.doubleToLongBits(
9098  other.getGuidedLocalSearchLambdaCoefficient())) return false;
9100  != other.getUseDepthFirstSearch()) return false;
9101  if (useCp_ != other.useCp_) return false;
9102  if (useCpSat_ != other.useCpSat_) return false;
9103  if (continuousSchedulingSolver_ != other.continuousSchedulingSolver_) return false;
9104  if (mixedIntegerSchedulingSolver_ != other.mixedIntegerSchedulingSolver_) return false;
9105  if (java.lang.Double.doubleToLongBits(getOptimizationStep())
9106  != java.lang.Double.doubleToLongBits(
9107  other.getOptimizationStep())) return false;
9109  != other.getNumberOfSolutionsToCollect()) return false;
9110  if (getSolutionLimit()
9111  != other.getSolutionLimit()) return false;
9112  if (hasTimeLimit() != other.hasTimeLimit()) return false;
9113  if (hasTimeLimit()) {
9114  if (!getTimeLimit()
9115  .equals(other.getTimeLimit())) return false;
9116  }
9117  if (hasLnsTimeLimit() != other.hasLnsTimeLimit()) return false;
9118  if (hasLnsTimeLimit()) {
9119  if (!getLnsTimeLimit()
9120  .equals(other.getLnsTimeLimit())) return false;
9121  }
9122  if (hasImprovementLimitParameters() != other.hasImprovementLimitParameters()) return false;
9125  .equals(other.getImprovementLimitParameters())) return false;
9126  }
9127  if (getUseFullPropagation()
9128  != other.getUseFullPropagation()) return false;
9129  if (getLogSearch()
9130  != other.getLogSearch()) return false;
9131  if (java.lang.Double.doubleToLongBits(getLogCostScalingFactor())
9132  != java.lang.Double.doubleToLongBits(
9133  other.getLogCostScalingFactor())) return false;
9134  if (java.lang.Double.doubleToLongBits(getLogCostOffset())
9135  != java.lang.Double.doubleToLongBits(
9136  other.getLogCostOffset())) return false;
9137  if (!getLogTag()
9138  .equals(other.getLogTag())) return false;
9139  if (!unknownFields.equals(other.unknownFields)) return false;
9140  return true;
9141  }
9142 
9143  @java.lang.Override
9144  public int hashCode() {
9145  if (memoizedHashCode != 0) {
9146  return memoizedHashCode;
9147  }
9148  int hash = 41;
9149  hash = (19 * hash) + getDescriptor().hashCode();
9150  hash = (37 * hash) + FIRST_SOLUTION_STRATEGY_FIELD_NUMBER;
9151  hash = (53 * hash) + firstSolutionStrategy_;
9153  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9155  hash = (37 * hash) + SAVINGS_NEIGHBORS_RATIO_FIELD_NUMBER;
9156  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9157  java.lang.Double.doubleToLongBits(getSavingsNeighborsRatio()));
9158  hash = (37 * hash) + SAVINGS_MAX_MEMORY_USAGE_BYTES_FIELD_NUMBER;
9159  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9160  java.lang.Double.doubleToLongBits(getSavingsMaxMemoryUsageBytes()));
9161  hash = (37 * hash) + SAVINGS_ADD_REVERSE_ARCS_FIELD_NUMBER;
9162  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9164  hash = (37 * hash) + SAVINGS_ARC_COEFFICIENT_FIELD_NUMBER;
9165  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9166  java.lang.Double.doubleToLongBits(getSavingsArcCoefficient()));
9167  hash = (37 * hash) + SAVINGS_PARALLEL_ROUTES_FIELD_NUMBER;
9168  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9171  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9172  java.lang.Double.doubleToLongBits(getCheapestInsertionFarthestSeedsRatio()));
9174  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9175  java.lang.Double.doubleToLongBits(getCheapestInsertionFirstSolutionNeighborsRatio()));
9177  hash = (53 * hash) + getCheapestInsertionFirstSolutionMinNeighbors();
9179  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9180  java.lang.Double.doubleToLongBits(getCheapestInsertionLsOperatorNeighborsRatio()));
9182  hash = (53 * hash) + getCheapestInsertionLsOperatorMinNeighbors();
9184  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9187  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9189  if (hasLocalSearchOperators()) {
9190  hash = (37 * hash) + LOCAL_SEARCH_OPERATORS_FIELD_NUMBER;
9191  hash = (53 * hash) + getLocalSearchOperators().hashCode();
9192  }
9194  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9197  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9198  java.lang.Double.doubleToLongBits(getMultiArmedBanditCompoundOperatorMemoryCoefficient()));
9200  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9201  java.lang.Double.doubleToLongBits(getMultiArmedBanditCompoundOperatorExplorationCoefficient()));
9203  hash = (53 * hash) + getRelocateExpensiveChainNumArcsToConsider();
9205  hash = (53 * hash) + getHeuristicExpensiveChainLnsNumArcsToConsider();
9207  hash = (53 * hash) + getHeuristicCloseNodesLnsNumNodes();
9208  hash = (37 * hash) + LOCAL_SEARCH_METAHEURISTIC_FIELD_NUMBER;
9209  hash = (53 * hash) + localSearchMetaheuristic_;
9211  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9212  java.lang.Double.doubleToLongBits(getGuidedLocalSearchLambdaCoefficient()));
9213  hash = (37 * hash) + USE_DEPTH_FIRST_SEARCH_FIELD_NUMBER;
9214  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9216  hash = (37 * hash) + USE_CP_FIELD_NUMBER;
9217  hash = (53 * hash) + useCp_;
9218  hash = (37 * hash) + USE_CP_SAT_FIELD_NUMBER;
9219  hash = (53 * hash) + useCpSat_;
9220  hash = (37 * hash) + CONTINUOUS_SCHEDULING_SOLVER_FIELD_NUMBER;
9221  hash = (53 * hash) + continuousSchedulingSolver_;
9222  hash = (37 * hash) + MIXED_INTEGER_SCHEDULING_SOLVER_FIELD_NUMBER;
9223  hash = (53 * hash) + mixedIntegerSchedulingSolver_;
9224  hash = (37 * hash) + OPTIMIZATION_STEP_FIELD_NUMBER;
9225  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9226  java.lang.Double.doubleToLongBits(getOptimizationStep()));
9227  hash = (37 * hash) + NUMBER_OF_SOLUTIONS_TO_COLLECT_FIELD_NUMBER;
9228  hash = (53 * hash) + getNumberOfSolutionsToCollect();
9229  hash = (37 * hash) + SOLUTION_LIMIT_FIELD_NUMBER;
9230  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9231  getSolutionLimit());
9232  if (hasTimeLimit()) {
9233  hash = (37 * hash) + TIME_LIMIT_FIELD_NUMBER;
9234  hash = (53 * hash) + getTimeLimit().hashCode();
9235  }
9236  if (hasLnsTimeLimit()) {
9237  hash = (37 * hash) + LNS_TIME_LIMIT_FIELD_NUMBER;
9238  hash = (53 * hash) + getLnsTimeLimit().hashCode();
9239  }
9241  hash = (37 * hash) + IMPROVEMENT_LIMIT_PARAMETERS_FIELD_NUMBER;
9242  hash = (53 * hash) + getImprovementLimitParameters().hashCode();
9243  }
9244  hash = (37 * hash) + USE_FULL_PROPAGATION_FIELD_NUMBER;
9245  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9247  hash = (37 * hash) + LOG_SEARCH_FIELD_NUMBER;
9248  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9249  getLogSearch());
9250  hash = (37 * hash) + LOG_COST_SCALING_FACTOR_FIELD_NUMBER;
9251  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9252  java.lang.Double.doubleToLongBits(getLogCostScalingFactor()));
9253  hash = (37 * hash) + LOG_COST_OFFSET_FIELD_NUMBER;
9254  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9255  java.lang.Double.doubleToLongBits(getLogCostOffset()));
9256  hash = (37 * hash) + LOG_TAG_FIELD_NUMBER;
9257  hash = (53 * hash) + getLogTag().hashCode();
9258  hash = (29 * hash) + unknownFields.hashCode();
9259  memoizedHashCode = hash;
9260  return hash;
9261  }
9262 
9263  public static com.google.ortools.constraintsolver.RoutingSearchParameters parseFrom(
9264  java.nio.ByteBuffer data)
9265  throws com.google.protobuf.InvalidProtocolBufferException {
9266  return PARSER.parseFrom(data);
9267  }
9268  public static com.google.ortools.constraintsolver.RoutingSearchParameters parseFrom(
9269  java.nio.ByteBuffer data,
9270  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9271  throws com.google.protobuf.InvalidProtocolBufferException {
9272  return PARSER.parseFrom(data, extensionRegistry);
9273  }
9274  public static com.google.ortools.constraintsolver.RoutingSearchParameters parseFrom(
9275  com.google.protobuf.ByteString data)
9276  throws com.google.protobuf.InvalidProtocolBufferException {
9277  return PARSER.parseFrom(data);
9278  }
9279  public static com.google.ortools.constraintsolver.RoutingSearchParameters parseFrom(
9280  com.google.protobuf.ByteString data,
9281  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9282  throws com.google.protobuf.InvalidProtocolBufferException {
9283  return PARSER.parseFrom(data, extensionRegistry);
9284  }
9285  public static com.google.ortools.constraintsolver.RoutingSearchParameters parseFrom(byte[] data)
9286  throws com.google.protobuf.InvalidProtocolBufferException {
9287  return PARSER.parseFrom(data);
9288  }
9289  public static com.google.ortools.constraintsolver.RoutingSearchParameters parseFrom(
9290  byte[] data,
9291  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9292  throws com.google.protobuf.InvalidProtocolBufferException {
9293  return PARSER.parseFrom(data, extensionRegistry);
9294  }
9295  public static com.google.ortools.constraintsolver.RoutingSearchParameters parseFrom(java.io.InputStream input)
9296  throws java.io.IOException {
9297  return com.google.protobuf.GeneratedMessageV3
9298  .parseWithIOException(PARSER, input);
9299  }
9300  public static com.google.ortools.constraintsolver.RoutingSearchParameters parseFrom(
9301  java.io.InputStream input,
9302  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9303  throws java.io.IOException {
9304  return com.google.protobuf.GeneratedMessageV3
9305  .parseWithIOException(PARSER, input, extensionRegistry);
9306  }
9307  public static com.google.ortools.constraintsolver.RoutingSearchParameters parseDelimitedFrom(java.io.InputStream input)
9308  throws java.io.IOException {
9309  return com.google.protobuf.GeneratedMessageV3
9310  .parseDelimitedWithIOException(PARSER, input);
9311  }
9312  public static com.google.ortools.constraintsolver.RoutingSearchParameters parseDelimitedFrom(
9313  java.io.InputStream input,
9314  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9315  throws java.io.IOException {
9316  return com.google.protobuf.GeneratedMessageV3
9317  .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
9318  }
9319  public static com.google.ortools.constraintsolver.RoutingSearchParameters parseFrom(
9320  com.google.protobuf.CodedInputStream input)
9321  throws java.io.IOException {
9322  return com.google.protobuf.GeneratedMessageV3
9323  .parseWithIOException(PARSER, input);
9324  }
9325  public static com.google.ortools.constraintsolver.RoutingSearchParameters parseFrom(
9326  com.google.protobuf.CodedInputStream input,
9327  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9328  throws java.io.IOException {
9329  return com.google.protobuf.GeneratedMessageV3
9330  .parseWithIOException(PARSER, input, extensionRegistry);
9331  }
9332 
9333  @java.lang.Override
9334  public Builder newBuilderForType() { return newBuilder(); }
9335  public static Builder newBuilder() {
9336  return DEFAULT_INSTANCE.toBuilder();
9337  }
9338  public static Builder newBuilder(com.google.ortools.constraintsolver.RoutingSearchParameters prototype) {
9339  return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
9340  }
9341  @java.lang.Override
9342  public Builder toBuilder() {
9343  return this == DEFAULT_INSTANCE
9344  ? new Builder() : new Builder().mergeFrom(this);
9345  }
9346 
9347  @java.lang.Override
9349  com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
9350  Builder builder = new Builder(parent);
9351  return builder;
9352  }
9365  public static final class Builder extends
9366  com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
9367  // @@protoc_insertion_point(builder_implements:operations_research.RoutingSearchParameters)
9368  com.google.ortools.constraintsolver.RoutingSearchParametersOrBuilder {
9369  public static final com.google.protobuf.Descriptors.Descriptor
9371  return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_descriptor;
9372  }
9373 
9374  @java.lang.Override
9375  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
9377  return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_fieldAccessorTable
9378  .ensureFieldAccessorsInitialized(
9379  com.google.ortools.constraintsolver.RoutingSearchParameters.class, com.google.ortools.constraintsolver.RoutingSearchParameters.Builder.class);
9380  }
9381 
9382  // Construct using com.google.ortools.constraintsolver.RoutingSearchParameters.newBuilder()
9383  private Builder() {
9384  maybeForceBuilderInitialization();
9385  }
9386 
9387  private Builder(
9388  com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
9389  super(parent);
9390  maybeForceBuilderInitialization();
9391  }
9392  private void maybeForceBuilderInitialization() {
9393  if (com.google.protobuf.GeneratedMessageV3
9394  .alwaysUseFieldBuilders) {
9395  }
9396  }
9397  @java.lang.Override
9398  public Builder clear() {
9399  super.clear();
9400  firstSolutionStrategy_ = 0;
9401 
9402  useUnfilteredFirstSolutionStrategy_ = false;
9403 
9404  savingsNeighborsRatio_ = 0D;
9405 
9406  savingsMaxMemoryUsageBytes_ = 0D;
9407 
9408  savingsAddReverseArcs_ = false;
9409 
9410  savingsArcCoefficient_ = 0D;
9411 
9412  savingsParallelRoutes_ = false;
9413 
9414  cheapestInsertionFarthestSeedsRatio_ = 0D;
9415 
9416  cheapestInsertionFirstSolutionNeighborsRatio_ = 0D;
9417 
9418  cheapestInsertionFirstSolutionMinNeighbors_ = 0;
9419 
9420  cheapestInsertionLsOperatorNeighborsRatio_ = 0D;
9421 
9422  cheapestInsertionLsOperatorMinNeighbors_ = 0;
9423 
9424  cheapestInsertionAddUnperformedEntries_ = false;
9425 
9426  christofidesUseMinimumMatching_ = false;
9427 
9428  if (localSearchOperatorsBuilder_ == null) {
9429  localSearchOperators_ = null;
9430  } else {
9431  localSearchOperators_ = null;
9432  localSearchOperatorsBuilder_ = null;
9433  }
9434  useMultiArmedBanditConcatenateOperators_ = false;
9435 
9436  multiArmedBanditCompoundOperatorMemoryCoefficient_ = 0D;
9437 
9438  multiArmedBanditCompoundOperatorExplorationCoefficient_ = 0D;
9439 
9440  relocateExpensiveChainNumArcsToConsider_ = 0;
9441 
9442  heuristicExpensiveChainLnsNumArcsToConsider_ = 0;
9443 
9444  heuristicCloseNodesLnsNumNodes_ = 0;
9445 
9446  localSearchMetaheuristic_ = 0;
9447 
9448  guidedLocalSearchLambdaCoefficient_ = 0D;
9449 
9450  useDepthFirstSearch_ = false;
9451 
9452  useCp_ = 0;
9453 
9454  useCpSat_ = 0;
9455 
9456  continuousSchedulingSolver_ = 0;
9457 
9458  mixedIntegerSchedulingSolver_ = 0;
9459 
9460  optimizationStep_ = 0D;
9461 
9462  numberOfSolutionsToCollect_ = 0;
9463 
9464  solutionLimit_ = 0L;
9465 
9466  if (timeLimitBuilder_ == null) {
9467  timeLimit_ = null;
9468  } else {
9469  timeLimit_ = null;
9470  timeLimitBuilder_ = null;
9471  }
9472  if (lnsTimeLimitBuilder_ == null) {
9473  lnsTimeLimit_ = null;
9474  } else {
9475  lnsTimeLimit_ = null;
9476  lnsTimeLimitBuilder_ = null;
9477  }
9478  if (improvementLimitParametersBuilder_ == null) {
9479  improvementLimitParameters_ = null;
9480  } else {
9481  improvementLimitParameters_ = null;
9482  improvementLimitParametersBuilder_ = null;
9483  }
9484  useFullPropagation_ = false;
9485 
9486  logSearch_ = false;
9487 
9488  logCostScalingFactor_ = 0D;
9489 
9490  logCostOffset_ = 0D;
9491 
9492  logTag_ = "";
9493 
9494  return this;
9495  }
9496 
9497  @java.lang.Override
9498  public com.google.protobuf.Descriptors.Descriptor
9500  return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_descriptor;
9501  }
9502 
9503  @java.lang.Override
9504  public com.google.ortools.constraintsolver.RoutingSearchParameters getDefaultInstanceForType() {
9505  return com.google.ortools.constraintsolver.RoutingSearchParameters.getDefaultInstance();
9506  }
9507 
9508  @java.lang.Override
9509  public com.google.ortools.constraintsolver.RoutingSearchParameters build() {
9510  com.google.ortools.constraintsolver.RoutingSearchParameters result = buildPartial();
9511  if (!result.isInitialized()) {
9512  throw newUninitializedMessageException(result);
9513  }
9514  return result;
9515  }
9516 
9517  @java.lang.Override
9518  public com.google.ortools.constraintsolver.RoutingSearchParameters buildPartial() {
9519  com.google.ortools.constraintsolver.RoutingSearchParameters result = new com.google.ortools.constraintsolver.RoutingSearchParameters(this);
9520  result.firstSolutionStrategy_ = firstSolutionStrategy_;
9521  result.useUnfilteredFirstSolutionStrategy_ = useUnfilteredFirstSolutionStrategy_;
9522  result.savingsNeighborsRatio_ = savingsNeighborsRatio_;
9523  result.savingsMaxMemoryUsageBytes_ = savingsMaxMemoryUsageBytes_;
9524  result.savingsAddReverseArcs_ = savingsAddReverseArcs_;
9525  result.savingsArcCoefficient_ = savingsArcCoefficient_;
9526  result.savingsParallelRoutes_ = savingsParallelRoutes_;
9527  result.cheapestInsertionFarthestSeedsRatio_ = cheapestInsertionFarthestSeedsRatio_;
9528  result.cheapestInsertionFirstSolutionNeighborsRatio_ = cheapestInsertionFirstSolutionNeighborsRatio_;
9529  result.cheapestInsertionFirstSolutionMinNeighbors_ = cheapestInsertionFirstSolutionMinNeighbors_;
9530  result.cheapestInsertionLsOperatorNeighborsRatio_ = cheapestInsertionLsOperatorNeighborsRatio_;
9531  result.cheapestInsertionLsOperatorMinNeighbors_ = cheapestInsertionLsOperatorMinNeighbors_;
9532  result.cheapestInsertionAddUnperformedEntries_ = cheapestInsertionAddUnperformedEntries_;
9533  result.christofidesUseMinimumMatching_ = christofidesUseMinimumMatching_;
9534  if (localSearchOperatorsBuilder_ == null) {
9535  result.localSearchOperators_ = localSearchOperators_;
9536  } else {
9537  result.localSearchOperators_ = localSearchOperatorsBuilder_.build();
9538  }
9539  result.useMultiArmedBanditConcatenateOperators_ = useMultiArmedBanditConcatenateOperators_;
9540  result.multiArmedBanditCompoundOperatorMemoryCoefficient_ = multiArmedBanditCompoundOperatorMemoryCoefficient_;
9541  result.multiArmedBanditCompoundOperatorExplorationCoefficient_ = multiArmedBanditCompoundOperatorExplorationCoefficient_;
9542  result.relocateExpensiveChainNumArcsToConsider_ = relocateExpensiveChainNumArcsToConsider_;
9543  result.heuristicExpensiveChainLnsNumArcsToConsider_ = heuristicExpensiveChainLnsNumArcsToConsider_;
9544  result.heuristicCloseNodesLnsNumNodes_ = heuristicCloseNodesLnsNumNodes_;
9545  result.localSearchMetaheuristic_ = localSearchMetaheuristic_;
9546  result.guidedLocalSearchLambdaCoefficient_ = guidedLocalSearchLambdaCoefficient_;
9547  result.useDepthFirstSearch_ = useDepthFirstSearch_;
9548  result.useCp_ = useCp_;
9549  result.useCpSat_ = useCpSat_;
9550  result.continuousSchedulingSolver_ = continuousSchedulingSolver_;
9551  result.mixedIntegerSchedulingSolver_ = mixedIntegerSchedulingSolver_;
9552  result.optimizationStep_ = optimizationStep_;
9553  result.numberOfSolutionsToCollect_ = numberOfSolutionsToCollect_;
9554  result.solutionLimit_ = solutionLimit_;
9555  if (timeLimitBuilder_ == null) {
9556  result.timeLimit_ = timeLimit_;
9557  } else {
9558  result.timeLimit_ = timeLimitBuilder_.build();
9559  }
9560  if (lnsTimeLimitBuilder_ == null) {
9561  result.lnsTimeLimit_ = lnsTimeLimit_;
9562  } else {
9563  result.lnsTimeLimit_ = lnsTimeLimitBuilder_.build();
9564  }
9565  if (improvementLimitParametersBuilder_ == null) {
9566  result.improvementLimitParameters_ = improvementLimitParameters_;
9567  } else {
9568  result.improvementLimitParameters_ = improvementLimitParametersBuilder_.build();
9569  }
9570  result.useFullPropagation_ = useFullPropagation_;
9571  result.logSearch_ = logSearch_;
9572  result.logCostScalingFactor_ = logCostScalingFactor_;
9573  result.logCostOffset_ = logCostOffset_;
9574  result.logTag_ = logTag_;
9575  onBuilt();
9576  return result;
9577  }
9578 
9579  @java.lang.Override
9580  public Builder clone() {
9581  return super.clone();
9582  }
9583  @java.lang.Override
9585  com.google.protobuf.Descriptors.FieldDescriptor field,
9586  java.lang.Object value) {
9587  return super.setField(field, value);
9588  }
9589  @java.lang.Override
9591  com.google.protobuf.Descriptors.FieldDescriptor field) {
9592  return super.clearField(field);
9593  }
9594  @java.lang.Override
9596  com.google.protobuf.Descriptors.OneofDescriptor oneof) {
9597  return super.clearOneof(oneof);
9598  }
9599  @java.lang.Override
9601  com.google.protobuf.Descriptors.FieldDescriptor field,
9602  int index, java.lang.Object value) {
9603  return super.setRepeatedField(field, index, value);
9604  }
9605  @java.lang.Override
9607  com.google.protobuf.Descriptors.FieldDescriptor field,
9608  java.lang.Object value) {
9609  return super.addRepeatedField(field, value);
9610  }
9611  @java.lang.Override
9612  public Builder mergeFrom(com.google.protobuf.Message other) {
9613  if (other instanceof com.google.ortools.constraintsolver.RoutingSearchParameters) {
9614  return mergeFrom((com.google.ortools.constraintsolver.RoutingSearchParameters)other);
9615  } else {
9616  super.mergeFrom(other);
9617  return this;
9618  }
9619  }
9620 
9621  public Builder mergeFrom(com.google.ortools.constraintsolver.RoutingSearchParameters other) {
9622  if (other == com.google.ortools.constraintsolver.RoutingSearchParameters.getDefaultInstance()) return this;
9623  if (other.firstSolutionStrategy_ != 0) {
9624  setFirstSolutionStrategyValue(other.getFirstSolutionStrategyValue());
9625  }
9626  if (other.getUseUnfilteredFirstSolutionStrategy() != false) {
9627  setUseUnfilteredFirstSolutionStrategy(other.getUseUnfilteredFirstSolutionStrategy());
9628  }
9629  if (other.getSavingsNeighborsRatio() != 0D) {
9630  setSavingsNeighborsRatio(other.getSavingsNeighborsRatio());
9631  }
9632  if (other.getSavingsMaxMemoryUsageBytes() != 0D) {
9633  setSavingsMaxMemoryUsageBytes(other.getSavingsMaxMemoryUsageBytes());
9634  }
9635  if (other.getSavingsAddReverseArcs() != false) {
9636  setSavingsAddReverseArcs(other.getSavingsAddReverseArcs());
9637  }
9638  if (other.getSavingsArcCoefficient() != 0D) {
9639  setSavingsArcCoefficient(other.getSavingsArcCoefficient());
9640  }
9641  if (other.getSavingsParallelRoutes() != false) {
9642  setSavingsParallelRoutes(other.getSavingsParallelRoutes());
9643  }
9644  if (other.getCheapestInsertionFarthestSeedsRatio() != 0D) {
9645  setCheapestInsertionFarthestSeedsRatio(other.getCheapestInsertionFarthestSeedsRatio());
9646  }
9647  if (other.getCheapestInsertionFirstSolutionNeighborsRatio() != 0D) {
9648  setCheapestInsertionFirstSolutionNeighborsRatio(other.getCheapestInsertionFirstSolutionNeighborsRatio());
9649  }
9650  if (other.getCheapestInsertionFirstSolutionMinNeighbors() != 0) {
9651  setCheapestInsertionFirstSolutionMinNeighbors(other.getCheapestInsertionFirstSolutionMinNeighbors());
9652  }
9653  if (other.getCheapestInsertionLsOperatorNeighborsRatio() != 0D) {
9654  setCheapestInsertionLsOperatorNeighborsRatio(other.getCheapestInsertionLsOperatorNeighborsRatio());
9655  }
9656  if (other.getCheapestInsertionLsOperatorMinNeighbors() != 0) {
9657  setCheapestInsertionLsOperatorMinNeighbors(other.getCheapestInsertionLsOperatorMinNeighbors());
9658  }
9659  if (other.getCheapestInsertionAddUnperformedEntries() != false) {
9660  setCheapestInsertionAddUnperformedEntries(other.getCheapestInsertionAddUnperformedEntries());
9661  }
9662  if (other.getChristofidesUseMinimumMatching() != false) {
9663  setChristofidesUseMinimumMatching(other.getChristofidesUseMinimumMatching());
9664  }
9665  if (other.hasLocalSearchOperators()) {
9666  mergeLocalSearchOperators(other.getLocalSearchOperators());
9667  }
9668  if (other.getUseMultiArmedBanditConcatenateOperators() != false) {
9669  setUseMultiArmedBanditConcatenateOperators(other.getUseMultiArmedBanditConcatenateOperators());
9670  }
9671  if (other.getMultiArmedBanditCompoundOperatorMemoryCoefficient() != 0D) {
9672  setMultiArmedBanditCompoundOperatorMemoryCoefficient(other.getMultiArmedBanditCompoundOperatorMemoryCoefficient());
9673  }
9674  if (other.getMultiArmedBanditCompoundOperatorExplorationCoefficient() != 0D) {
9675  setMultiArmedBanditCompoundOperatorExplorationCoefficient(other.getMultiArmedBanditCompoundOperatorExplorationCoefficient());
9676  }
9677  if (other.getRelocateExpensiveChainNumArcsToConsider() != 0) {
9678  setRelocateExpensiveChainNumArcsToConsider(other.getRelocateExpensiveChainNumArcsToConsider());
9679  }
9680  if (other.getHeuristicExpensiveChainLnsNumArcsToConsider() != 0) {
9681  setHeuristicExpensiveChainLnsNumArcsToConsider(other.getHeuristicExpensiveChainLnsNumArcsToConsider());
9682  }
9683  if (other.getHeuristicCloseNodesLnsNumNodes() != 0) {
9684  setHeuristicCloseNodesLnsNumNodes(other.getHeuristicCloseNodesLnsNumNodes());
9685  }
9686  if (other.localSearchMetaheuristic_ != 0) {
9687  setLocalSearchMetaheuristicValue(other.getLocalSearchMetaheuristicValue());
9688  }
9689  if (other.getGuidedLocalSearchLambdaCoefficient() != 0D) {
9690  setGuidedLocalSearchLambdaCoefficient(other.getGuidedLocalSearchLambdaCoefficient());
9691  }
9692  if (other.getUseDepthFirstSearch() != false) {
9693  setUseDepthFirstSearch(other.getUseDepthFirstSearch());
9694  }
9695  if (other.useCp_ != 0) {
9696  setUseCpValue(other.getUseCpValue());
9697  }
9698  if (other.useCpSat_ != 0) {
9699  setUseCpSatValue(other.getUseCpSatValue());
9700  }
9701  if (other.continuousSchedulingSolver_ != 0) {
9702  setContinuousSchedulingSolverValue(other.getContinuousSchedulingSolverValue());
9703  }
9704  if (other.mixedIntegerSchedulingSolver_ != 0) {
9705  setMixedIntegerSchedulingSolverValue(other.getMixedIntegerSchedulingSolverValue());
9706  }
9707  if (other.getOptimizationStep() != 0D) {
9708  setOptimizationStep(other.getOptimizationStep());
9709  }
9710  if (other.getNumberOfSolutionsToCollect() != 0) {
9711  setNumberOfSolutionsToCollect(other.getNumberOfSolutionsToCollect());
9712  }
9713  if (other.getSolutionLimit() != 0L) {
9714  setSolutionLimit(other.getSolutionLimit());
9715  }
9716  if (other.hasTimeLimit()) {
9717  mergeTimeLimit(other.getTimeLimit());
9718  }
9719  if (other.hasLnsTimeLimit()) {
9720  mergeLnsTimeLimit(other.getLnsTimeLimit());
9721  }
9722  if (other.hasImprovementLimitParameters()) {
9723  mergeImprovementLimitParameters(other.getImprovementLimitParameters());
9724  }
9725  if (other.getUseFullPropagation() != false) {
9726  setUseFullPropagation(other.getUseFullPropagation());
9727  }
9728  if (other.getLogSearch() != false) {
9729  setLogSearch(other.getLogSearch());
9730  }
9731  if (other.getLogCostScalingFactor() != 0D) {
9732  setLogCostScalingFactor(other.getLogCostScalingFactor());
9733  }
9734  if (other.getLogCostOffset() != 0D) {
9735  setLogCostOffset(other.getLogCostOffset());
9736  }
9737  if (!other.getLogTag().isEmpty()) {
9738  logTag_ = other.logTag_;
9739  onChanged();
9740  }
9741  this.mergeUnknownFields(other.unknownFields);
9742  onChanged();
9743  return this;
9744  }
9745 
9746  @java.lang.Override
9747  public final boolean isInitialized() {
9748  return true;
9749  }
9750 
9751  @java.lang.Override
9753  com.google.protobuf.CodedInputStream input,
9754  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9755  throws java.io.IOException {
9756  com.google.ortools.constraintsolver.RoutingSearchParameters parsedMessage = null;
9757  try {
9758  parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
9759  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
9760  parsedMessage = (com.google.ortools.constraintsolver.RoutingSearchParameters) e.getUnfinishedMessage();
9761  throw e.unwrapIOException();
9762  } finally {
9763  if (parsedMessage != null) {
9764  mergeFrom(parsedMessage);
9765  }
9766  }
9767  return this;
9768  }
9769 
9770  private int firstSolutionStrategy_ = 0;
9779  @java.lang.Override public int getFirstSolutionStrategyValue() {
9780  return firstSolutionStrategy_;
9781  }
9792 
9793  firstSolutionStrategy_ = value;
9794  onChanged();
9795  return this;
9796  }
9805  @java.lang.Override
9806  public com.google.ortools.constraintsolver.FirstSolutionStrategy.Value getFirstSolutionStrategy() {
9807  @SuppressWarnings("deprecation")
9808  com.google.ortools.constraintsolver.FirstSolutionStrategy.Value result = com.google.ortools.constraintsolver.FirstSolutionStrategy.Value.valueOf(firstSolutionStrategy_);
9809  return result == null ? com.google.ortools.constraintsolver.FirstSolutionStrategy.Value.UNRECOGNIZED : result;
9810  }
9820  public Builder setFirstSolutionStrategy(com.google.ortools.constraintsolver.FirstSolutionStrategy.Value value) {
9821  if (value == null) {
9822  throw new NullPointerException();
9823  }
9824 
9825  firstSolutionStrategy_ = value.getNumber();
9826  onChanged();
9827  return this;
9828  }
9838 
9839  firstSolutionStrategy_ = 0;
9840  onChanged();
9841  return this;
9842  }
9843 
9844  private boolean useUnfilteredFirstSolutionStrategy_ ;
9855  @java.lang.Override
9857  return useUnfilteredFirstSolutionStrategy_;
9858  }
9871 
9872  useUnfilteredFirstSolutionStrategy_ = value;
9873  onChanged();
9874  return this;
9875  }
9887 
9888  useUnfilteredFirstSolutionStrategy_ = false;
9889  onChanged();
9890  return this;
9891  }
9892 
9893  private double savingsNeighborsRatio_ ;
9904  @java.lang.Override
9905  public double getSavingsNeighborsRatio() {
9906  return savingsNeighborsRatio_;
9907  }
9919  public Builder setSavingsNeighborsRatio(double value) {
9920 
9921  savingsNeighborsRatio_ = value;
9922  onChanged();
9923  return this;
9924  }
9936 
9937  savingsNeighborsRatio_ = 0D;
9938  onChanged();
9939  return this;
9940  }
9941 
9942  private double savingsMaxMemoryUsageBytes_ ;
9956  @java.lang.Override
9958  return savingsMaxMemoryUsageBytes_;
9959  }
9975 
9976  savingsMaxMemoryUsageBytes_ = value;
9977  onChanged();
9978  return this;
9979  }
9994 
9995  savingsMaxMemoryUsageBytes_ = 0D;
9996  onChanged();
9997  return this;
9998  }
9999 
10000  private boolean savingsAddReverseArcs_ ;
10010  @java.lang.Override
10011  public boolean getSavingsAddReverseArcs() {
10012  return savingsAddReverseArcs_;
10013  }
10024  public Builder setSavingsAddReverseArcs(boolean value) {
10025 
10026  savingsAddReverseArcs_ = value;
10027  onChanged();
10028  return this;
10029  }
10040 
10041  savingsAddReverseArcs_ = false;
10042  onChanged();
10043  return this;
10044  }
10045 
10046  private double savingsArcCoefficient_ ;
10059  @java.lang.Override
10060  public double getSavingsArcCoefficient() {
10061  return savingsArcCoefficient_;
10062  }
10076  public Builder setSavingsArcCoefficient(double value) {
10077 
10078  savingsArcCoefficient_ = value;
10079  onChanged();
10080  return this;
10081  }
10095 
10096  savingsArcCoefficient_ = 0D;
10097  onChanged();
10098  return this;
10099  }
10100 
10101  private boolean savingsParallelRoutes_ ;
10110  @java.lang.Override
10111  public boolean getSavingsParallelRoutes() {
10112  return savingsParallelRoutes_;
10113  }
10123  public Builder setSavingsParallelRoutes(boolean value) {
10124 
10125  savingsParallelRoutes_ = value;
10126  onChanged();
10127  return this;
10128  }
10138 
10139  savingsParallelRoutes_ = false;
10140  onChanged();
10141  return this;
10142  }
10143 
10144  private double cheapestInsertionFarthestSeedsRatio_ ;
10155  @java.lang.Override
10157  return cheapestInsertionFarthestSeedsRatio_;
10158  }
10171 
10172  cheapestInsertionFarthestSeedsRatio_ = value;
10173  onChanged();
10174  return this;
10175  }
10187 
10188  cheapestInsertionFarthestSeedsRatio_ = 0D;
10189  onChanged();
10190  return this;
10191  }
10192 
10193  private double cheapestInsertionFirstSolutionNeighborsRatio_ ;
10215  @java.lang.Override
10217  return cheapestInsertionFirstSolutionNeighborsRatio_;
10218  }
10242 
10243  cheapestInsertionFirstSolutionNeighborsRatio_ = value;
10244  onChanged();
10245  return this;
10246  }
10269 
10270  cheapestInsertionFirstSolutionNeighborsRatio_ = 0D;
10271  onChanged();
10272  return this;
10273  }
10274 
10275  private int cheapestInsertionFirstSolutionMinNeighbors_ ;
10280  @java.lang.Override
10282  return cheapestInsertionFirstSolutionMinNeighbors_;
10283  }
10290 
10291  cheapestInsertionFirstSolutionMinNeighbors_ = value;
10292  onChanged();
10293  return this;
10294  }
10300 
10301  cheapestInsertionFirstSolutionMinNeighbors_ = 0;
10302  onChanged();
10303  return this;
10304  }
10305 
10306  private double cheapestInsertionLsOperatorNeighborsRatio_ ;
10318  @java.lang.Override
10320  return cheapestInsertionLsOperatorNeighborsRatio_;
10321  }
10335 
10336  cheapestInsertionLsOperatorNeighborsRatio_ = value;
10337  onChanged();
10338  return this;
10339  }
10352 
10353  cheapestInsertionLsOperatorNeighborsRatio_ = 0D;
10354  onChanged();
10355  return this;
10356  }
10357 
10358  private int cheapestInsertionLsOperatorMinNeighbors_ ;
10363  @java.lang.Override
10365  return cheapestInsertionLsOperatorMinNeighbors_;
10366  }
10373 
10374  cheapestInsertionLsOperatorMinNeighbors_ = value;
10375  onChanged();
10376  return this;
10377  }
10383 
10384  cheapestInsertionLsOperatorMinNeighbors_ = 0;
10385  onChanged();
10386  return this;
10387  }
10388 
10389  private boolean cheapestInsertionAddUnperformedEntries_ ;
10399  @java.lang.Override
10401  return cheapestInsertionAddUnperformedEntries_;
10402  }
10414 
10415  cheapestInsertionAddUnperformedEntries_ = value;
10416  onChanged();
10417  return this;
10418  }
10429 
10430  cheapestInsertionAddUnperformedEntries_ = false;
10431  onChanged();
10432  return this;
10433  }
10434 
10435  private boolean christofidesUseMinimumMatching_ ;
10445  @java.lang.Override
10447  return christofidesUseMinimumMatching_;
10448  }
10460 
10461  christofidesUseMinimumMatching_ = value;
10462  onChanged();
10463  return this;
10464  }
10475 
10476  christofidesUseMinimumMatching_ = false;
10477  onChanged();
10478  return this;
10479  }
10480 
10481  private com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators localSearchOperators_;
10482  private com.google.protobuf.SingleFieldBuilderV3<
10483  com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators, com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.Builder, com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder> localSearchOperatorsBuilder_;
10488  public boolean hasLocalSearchOperators() {
10489  return localSearchOperatorsBuilder_ != null || localSearchOperators_ != null;
10490  }
10495  public com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators getLocalSearchOperators() {
10496  if (localSearchOperatorsBuilder_ == null) {
10497  return localSearchOperators_ == null ? com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.getDefaultInstance() : localSearchOperators_;
10498  } else {
10499  return localSearchOperatorsBuilder_.getMessage();
10500  }
10501  }
10505  public Builder setLocalSearchOperators(com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators value) {
10506  if (localSearchOperatorsBuilder_ == null) {
10507  if (value == null) {
10508  throw new NullPointerException();
10509  }
10510  localSearchOperators_ = value;
10511  onChanged();
10512  } else {
10513  localSearchOperatorsBuilder_.setMessage(value);
10514  }
10515 
10516  return this;
10517  }
10522  com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.Builder builderForValue) {
10523  if (localSearchOperatorsBuilder_ == null) {
10524  localSearchOperators_ = builderForValue.build();
10525  onChanged();
10526  } else {
10527  localSearchOperatorsBuilder_.setMessage(builderForValue.build());
10528  }
10529 
10530  return this;
10531  }
10535  public Builder mergeLocalSearchOperators(com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators value) {
10536  if (localSearchOperatorsBuilder_ == null) {
10537  if (localSearchOperators_ != null) {
10538  localSearchOperators_ =
10539  com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.newBuilder(localSearchOperators_).mergeFrom(value).buildPartial();
10540  } else {
10541  localSearchOperators_ = value;
10542  }
10543  onChanged();
10544  } else {
10545  localSearchOperatorsBuilder_.mergeFrom(value);
10546  }
10547 
10548  return this;
10549  }
10554  if (localSearchOperatorsBuilder_ == null) {
10555  localSearchOperators_ = null;
10556  onChanged();
10557  } else {
10558  localSearchOperators_ = null;
10559  localSearchOperatorsBuilder_ = null;
10560  }
10561 
10562  return this;
10563  }
10567  public com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.Builder getLocalSearchOperatorsBuilder() {
10568 
10569  onChanged();
10570  return getLocalSearchOperatorsFieldBuilder().getBuilder();
10571  }
10575  public com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder getLocalSearchOperatorsOrBuilder() {
10576  if (localSearchOperatorsBuilder_ != null) {
10577  return localSearchOperatorsBuilder_.getMessageOrBuilder();
10578  } else {
10579  return localSearchOperators_ == null ?
10580  com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.getDefaultInstance() : localSearchOperators_;
10581  }
10582  }
10586  private com.google.protobuf.SingleFieldBuilderV3<
10587  com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators, com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.Builder, com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder>
10588  getLocalSearchOperatorsFieldBuilder() {
10589  if (localSearchOperatorsBuilder_ == null) {
10590  localSearchOperatorsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
10591  com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators, com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.Builder, com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder>(
10593  getParentForChildren(),
10594  isClean());
10595  localSearchOperators_ = null;
10596  }
10597  return localSearchOperatorsBuilder_;
10598  }
10599 
10600  private boolean useMultiArmedBanditConcatenateOperators_ ;
10611  @java.lang.Override
10613  return useMultiArmedBanditConcatenateOperators_;
10614  }
10627 
10628  useMultiArmedBanditConcatenateOperators_ = value;
10629  onChanged();
10630  return this;
10631  }
10643 
10644  useMultiArmedBanditConcatenateOperators_ = false;
10645  onChanged();
10646  return this;
10647  }
10648 
10649  private double multiArmedBanditCompoundOperatorMemoryCoefficient_ ;
10661  @java.lang.Override
10663  return multiArmedBanditCompoundOperatorMemoryCoefficient_;
10664  }
10678 
10679  multiArmedBanditCompoundOperatorMemoryCoefficient_ = value;
10680  onChanged();
10681  return this;
10682  }
10695 
10696  multiArmedBanditCompoundOperatorMemoryCoefficient_ = 0D;
10697  onChanged();
10698  return this;
10699  }
10700 
10701  private double multiArmedBanditCompoundOperatorExplorationCoefficient_ ;
10712  @java.lang.Override
10714  return multiArmedBanditCompoundOperatorExplorationCoefficient_;
10715  }
10728 
10729  multiArmedBanditCompoundOperatorExplorationCoefficient_ = value;
10730  onChanged();
10731  return this;
10732  }
10744 
10745  multiArmedBanditCompoundOperatorExplorationCoefficient_ = 0D;
10746  onChanged();
10747  return this;
10748  }
10749 
10750  private int relocateExpensiveChainNumArcsToConsider_ ;
10765  @java.lang.Override
10767  return relocateExpensiveChainNumArcsToConsider_;
10768  }
10785 
10786  relocateExpensiveChainNumArcsToConsider_ = value;
10787  onChanged();
10788  return this;
10789  }
10805 
10806  relocateExpensiveChainNumArcsToConsider_ = 0;
10807  onChanged();
10808  return this;
10809  }
10810 
10811  private int heuristicExpensiveChainLnsNumArcsToConsider_ ;
10821  @java.lang.Override
10823  return heuristicExpensiveChainLnsNumArcsToConsider_;
10824  }
10836 
10837  heuristicExpensiveChainLnsNumArcsToConsider_ = value;
10838  onChanged();
10839  return this;
10840  }
10851 
10852  heuristicExpensiveChainLnsNumArcsToConsider_ = 0;
10853  onChanged();
10854  return this;
10855  }
10856 
10857  private int heuristicCloseNodesLnsNumNodes_ ;
10867  @java.lang.Override
10869  return heuristicCloseNodesLnsNumNodes_;
10870  }
10882 
10883  heuristicCloseNodesLnsNumNodes_ = value;
10884  onChanged();
10885  return this;
10886  }
10897 
10898  heuristicCloseNodesLnsNumNodes_ = 0;
10899  onChanged();
10900  return this;
10901  }
10902 
10903  private int localSearchMetaheuristic_ = 0;
10912  @java.lang.Override public int getLocalSearchMetaheuristicValue() {
10913  return localSearchMetaheuristic_;
10914  }
10925 
10926  localSearchMetaheuristic_ = value;
10927  onChanged();
10928  return this;
10929  }
10938  @java.lang.Override
10939  public com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value getLocalSearchMetaheuristic() {
10940  @SuppressWarnings("deprecation")
10941  com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value result = com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value.valueOf(localSearchMetaheuristic_);
10942  return result == null ? com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value.UNRECOGNIZED : result;
10943  }
10953  public Builder setLocalSearchMetaheuristic(com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value value) {
10954  if (value == null) {
10955  throw new NullPointerException();
10956  }
10957 
10958  localSearchMetaheuristic_ = value.getNumber();
10959  onChanged();
10960  return this;
10961  }
10971 
10972  localSearchMetaheuristic_ = 0;
10973  onChanged();
10974  return this;
10975  }
10976 
10977  private double guidedLocalSearchLambdaCoefficient_ ;
10989  @java.lang.Override
10991  return guidedLocalSearchLambdaCoefficient_;
10992  }
11006 
11007  guidedLocalSearchLambdaCoefficient_ = value;
11008  onChanged();
11009  return this;
11010  }
11023 
11024  guidedLocalSearchLambdaCoefficient_ = 0D;
11025  onChanged();
11026  return this;
11027  }
11028 
11029  private boolean useDepthFirstSearch_ ;
11040  @java.lang.Override
11041  public boolean getUseDepthFirstSearch() {
11042  return useDepthFirstSearch_;
11043  }
11055  public Builder setUseDepthFirstSearch(boolean value) {
11056 
11057  useDepthFirstSearch_ = value;
11058  onChanged();
11059  return this;
11060  }
11072 
11073  useDepthFirstSearch_ = false;
11074  onChanged();
11075  return this;
11076  }
11077 
11078  private int useCp_ = 0;
11089  @java.lang.Override public int getUseCpValue() {
11090  return useCp_;
11091  }
11103  public Builder setUseCpValue(int value) {
11104 
11105  useCp_ = value;
11106  onChanged();
11107  return this;
11108  }
11119  @java.lang.Override
11120  public com.google.ortools.util.OptionalBoolean getUseCp() {
11121  @SuppressWarnings("deprecation")
11122  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useCp_);
11123  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
11124  }
11136  public Builder setUseCp(com.google.ortools.util.OptionalBoolean value) {
11137  if (value == null) {
11138  throw new NullPointerException();
11139  }
11140 
11141  useCp_ = value.getNumber();
11142  onChanged();
11143  return this;
11144  }
11155  public Builder clearUseCp() {
11156 
11157  useCp_ = 0;
11158  onChanged();
11159  return this;
11160  }
11161 
11162  private int useCpSat_ = 0;
11174  @java.lang.Override public int getUseCpSatValue() {
11175  return useCpSat_;
11176  }
11189  public Builder setUseCpSatValue(int value) {
11190 
11191  useCpSat_ = value;
11192  onChanged();
11193  return this;
11194  }
11206  @java.lang.Override
11207  public com.google.ortools.util.OptionalBoolean getUseCpSat() {
11208  @SuppressWarnings("deprecation")
11209  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useCpSat_);
11210  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
11211  }
11224  public Builder setUseCpSat(com.google.ortools.util.OptionalBoolean value) {
11225  if (value == null) {
11226  throw new NullPointerException();
11227  }
11228 
11229  useCpSat_ = value.getNumber();
11230  onChanged();
11231  return this;
11232  }
11245 
11246  useCpSat_ = 0;
11247  onChanged();
11248  return this;
11249  }
11250 
11251  private int continuousSchedulingSolver_ = 0;
11256  @java.lang.Override public int getContinuousSchedulingSolverValue() {
11257  return continuousSchedulingSolver_;
11258  }
11265 
11266  continuousSchedulingSolver_ = value;
11267  onChanged();
11268  return this;
11269  }
11274  @java.lang.Override
11275  public com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver getContinuousSchedulingSolver() {
11276  @SuppressWarnings("deprecation")
11277  com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver result = com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.valueOf(continuousSchedulingSolver_);
11278  return result == null ? com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.UNRECOGNIZED : result;
11279  }
11285  public Builder setContinuousSchedulingSolver(com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver value) {
11286  if (value == null) {
11287  throw new NullPointerException();
11288  }
11289 
11290  continuousSchedulingSolver_ = value.getNumber();
11291  onChanged();
11292  return this;
11293  }
11299 
11300  continuousSchedulingSolver_ = 0;
11301  onChanged();
11302  return this;
11303  }
11304 
11305  private int mixedIntegerSchedulingSolver_ = 0;
11310  @java.lang.Override public int getMixedIntegerSchedulingSolverValue() {
11311  return mixedIntegerSchedulingSolver_;
11312  }
11319 
11320  mixedIntegerSchedulingSolver_ = value;
11321  onChanged();
11322  return this;
11323  }
11328  @java.lang.Override
11329  public com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver getMixedIntegerSchedulingSolver() {
11330  @SuppressWarnings("deprecation")
11331  com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver result = com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.valueOf(mixedIntegerSchedulingSolver_);
11332  return result == null ? com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.UNRECOGNIZED : result;
11333  }
11339  public Builder setMixedIntegerSchedulingSolver(com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver value) {
11340  if (value == null) {
11341  throw new NullPointerException();
11342  }
11343 
11344  mixedIntegerSchedulingSolver_ = value.getNumber();
11345  onChanged();
11346  return this;
11347  }
11353 
11354  mixedIntegerSchedulingSolver_ = 0;
11355  onChanged();
11356  return this;
11357  }
11358 
11359  private double optimizationStep_ ;
11370  @java.lang.Override
11371  public double getOptimizationStep() {
11372  return optimizationStep_;
11373  }
11385  public Builder setOptimizationStep(double value) {
11386 
11387  optimizationStep_ = value;
11388  onChanged();
11389  return this;
11390  }
11402 
11403  optimizationStep_ = 0D;
11404  onChanged();
11405  return this;
11406  }
11407 
11408  private int numberOfSolutionsToCollect_ ;
11418  @java.lang.Override
11420  return numberOfSolutionsToCollect_;
11421  }
11433 
11434  numberOfSolutionsToCollect_ = value;
11435  onChanged();
11436  return this;
11437  }
11448 
11449  numberOfSolutionsToCollect_ = 0;
11450  onChanged();
11451  return this;
11452  }
11453 
11454  private long solutionLimit_ ;
11465  @java.lang.Override
11466  public long getSolutionLimit() {
11467  return solutionLimit_;
11468  }
11480  public Builder setSolutionLimit(long value) {
11481 
11482  solutionLimit_ = value;
11483  onChanged();
11484  return this;
11485  }
11497 
11498  solutionLimit_ = 0L;
11499  onChanged();
11500  return this;
11501  }
11502 
11503  private com.google.protobuf.Duration timeLimit_;
11504  private com.google.protobuf.SingleFieldBuilderV3<
11505  com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> timeLimitBuilder_;
11514  public boolean hasTimeLimit() {
11515  return timeLimitBuilder_ != null || timeLimit_ != null;
11516  }
11525  public com.google.protobuf.Duration getTimeLimit() {
11526  if (timeLimitBuilder_ == null) {
11527  return timeLimit_ == null ? com.google.protobuf.Duration.getDefaultInstance() : timeLimit_;
11528  } else {
11529  return timeLimitBuilder_.getMessage();
11530  }
11531  }
11539  public Builder setTimeLimit(com.google.protobuf.Duration value) {
11540  if (timeLimitBuilder_ == null) {
11541  if (value == null) {
11542  throw new NullPointerException();
11543  }
11544  timeLimit_ = value;
11545  onChanged();
11546  } else {
11547  timeLimitBuilder_.setMessage(value);
11548  }
11549 
11550  return this;
11551  }
11560  com.google.protobuf.Duration.Builder builderForValue) {
11561  if (timeLimitBuilder_ == null) {
11562  timeLimit_ = builderForValue.build();
11563  onChanged();
11564  } else {
11565  timeLimitBuilder_.setMessage(builderForValue.build());
11566  }
11567 
11568  return this;
11569  }
11577  public Builder mergeTimeLimit(com.google.protobuf.Duration value) {
11578  if (timeLimitBuilder_ == null) {
11579  if (timeLimit_ != null) {
11580  timeLimit_ =
11581  com.google.protobuf.Duration.newBuilder(timeLimit_).mergeFrom(value).buildPartial();
11582  } else {
11583  timeLimit_ = value;
11584  }
11585  onChanged();
11586  } else {
11587  timeLimitBuilder_.mergeFrom(value);
11588  }
11589 
11590  return this;
11591  }
11600  if (timeLimitBuilder_ == null) {
11601  timeLimit_ = null;
11602  onChanged();
11603  } else {
11604  timeLimit_ = null;
11605  timeLimitBuilder_ = null;
11606  }
11607 
11608  return this;
11609  }
11617  public com.google.protobuf.Duration.Builder getTimeLimitBuilder() {
11618 
11619  onChanged();
11620  return getTimeLimitFieldBuilder().getBuilder();
11621  }
11629  public com.google.protobuf.DurationOrBuilder getTimeLimitOrBuilder() {
11630  if (timeLimitBuilder_ != null) {
11631  return timeLimitBuilder_.getMessageOrBuilder();
11632  } else {
11633  return timeLimit_ == null ?
11634  com.google.protobuf.Duration.getDefaultInstance() : timeLimit_;
11635  }
11636  }
11644  private com.google.protobuf.SingleFieldBuilderV3<
11645  com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder>
11646  getTimeLimitFieldBuilder() {
11647  if (timeLimitBuilder_ == null) {
11648  timeLimitBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
11649  com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder>(
11650  getTimeLimit(),
11651  getParentForChildren(),
11652  isClean());
11653  timeLimit_ = null;
11654  }
11655  return timeLimitBuilder_;
11656  }
11657 
11658  private com.google.protobuf.Duration lnsTimeLimit_;
11659  private com.google.protobuf.SingleFieldBuilderV3<
11660  com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> lnsTimeLimitBuilder_;
11670  public boolean hasLnsTimeLimit() {
11671  return lnsTimeLimitBuilder_ != null || lnsTimeLimit_ != null;
11672  }
11682  public com.google.protobuf.Duration getLnsTimeLimit() {
11683  if (lnsTimeLimitBuilder_ == null) {
11684  return lnsTimeLimit_ == null ? com.google.protobuf.Duration.getDefaultInstance() : lnsTimeLimit_;
11685  } else {
11686  return lnsTimeLimitBuilder_.getMessage();
11687  }
11688  }
11697  public Builder setLnsTimeLimit(com.google.protobuf.Duration value) {
11698  if (lnsTimeLimitBuilder_ == null) {
11699  if (value == null) {
11700  throw new NullPointerException();
11701  }
11702  lnsTimeLimit_ = value;
11703  onChanged();
11704  } else {
11705  lnsTimeLimitBuilder_.setMessage(value);
11706  }
11707 
11708  return this;
11709  }
11719  com.google.protobuf.Duration.Builder builderForValue) {
11720  if (lnsTimeLimitBuilder_ == null) {
11721  lnsTimeLimit_ = builderForValue.build();
11722  onChanged();
11723  } else {
11724  lnsTimeLimitBuilder_.setMessage(builderForValue.build());
11725  }
11726 
11727  return this;
11728  }
11737  public Builder mergeLnsTimeLimit(com.google.protobuf.Duration value) {
11738  if (lnsTimeLimitBuilder_ == null) {
11739  if (lnsTimeLimit_ != null) {
11740  lnsTimeLimit_ =
11741  com.google.protobuf.Duration.newBuilder(lnsTimeLimit_).mergeFrom(value).buildPartial();
11742  } else {
11743  lnsTimeLimit_ = value;
11744  }
11745  onChanged();
11746  } else {
11747  lnsTimeLimitBuilder_.mergeFrom(value);
11748  }
11749 
11750  return this;
11751  }
11761  if (lnsTimeLimitBuilder_ == null) {
11762  lnsTimeLimit_ = null;
11763  onChanged();
11764  } else {
11765  lnsTimeLimit_ = null;
11766  lnsTimeLimitBuilder_ = null;
11767  }
11768 
11769  return this;
11770  }
11779  public com.google.protobuf.Duration.Builder getLnsTimeLimitBuilder() {
11780 
11781  onChanged();
11782  return getLnsTimeLimitFieldBuilder().getBuilder();
11783  }
11792  public com.google.protobuf.DurationOrBuilder getLnsTimeLimitOrBuilder() {
11793  if (lnsTimeLimitBuilder_ != null) {
11794  return lnsTimeLimitBuilder_.getMessageOrBuilder();
11795  } else {
11796  return lnsTimeLimit_ == null ?
11797  com.google.protobuf.Duration.getDefaultInstance() : lnsTimeLimit_;
11798  }
11799  }
11808  private com.google.protobuf.SingleFieldBuilderV3<
11809  com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder>
11810  getLnsTimeLimitFieldBuilder() {
11811  if (lnsTimeLimitBuilder_ == null) {
11812  lnsTimeLimitBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
11813  com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder>(
11814  getLnsTimeLimit(),
11815  getParentForChildren(),
11816  isClean());
11817  lnsTimeLimit_ = null;
11818  }
11819  return lnsTimeLimitBuilder_;
11820  }
11821 
11822  private com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters improvementLimitParameters_;
11823  private com.google.protobuf.SingleFieldBuilderV3<
11824  com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters, com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.Builder, com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParametersOrBuilder> improvementLimitParametersBuilder_;
11835  return improvementLimitParametersBuilder_ != null || improvementLimitParameters_ != null;
11836  }
11846  public com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters getImprovementLimitParameters() {
11847  if (improvementLimitParametersBuilder_ == null) {
11848  return improvementLimitParameters_ == null ? com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.getDefaultInstance() : improvementLimitParameters_;
11849  } else {
11850  return improvementLimitParametersBuilder_.getMessage();
11851  }
11852  }
11861  public Builder setImprovementLimitParameters(com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters value) {
11862  if (improvementLimitParametersBuilder_ == null) {
11863  if (value == null) {
11864  throw new NullPointerException();
11865  }
11866  improvementLimitParameters_ = value;
11867  onChanged();
11868  } else {
11869  improvementLimitParametersBuilder_.setMessage(value);
11870  }
11871 
11872  return this;
11873  }
11883  com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.Builder builderForValue) {
11884  if (improvementLimitParametersBuilder_ == null) {
11885  improvementLimitParameters_ = builderForValue.build();
11886  onChanged();
11887  } else {
11888  improvementLimitParametersBuilder_.setMessage(builderForValue.build());
11889  }
11890 
11891  return this;
11892  }
11901  public Builder mergeImprovementLimitParameters(com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters value) {
11902  if (improvementLimitParametersBuilder_ == null) {
11903  if (improvementLimitParameters_ != null) {
11904  improvementLimitParameters_ =
11905  com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.newBuilder(improvementLimitParameters_).mergeFrom(value).buildPartial();
11906  } else {
11907  improvementLimitParameters_ = value;
11908  }
11909  onChanged();
11910  } else {
11911  improvementLimitParametersBuilder_.mergeFrom(value);
11912  }
11913 
11914  return this;
11915  }
11925  if (improvementLimitParametersBuilder_ == null) {
11926  improvementLimitParameters_ = null;
11927  onChanged();
11928  } else {
11929  improvementLimitParameters_ = null;
11930  improvementLimitParametersBuilder_ = null;
11931  }
11932 
11933  return this;
11934  }
11943  public com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.Builder getImprovementLimitParametersBuilder() {
11944 
11945  onChanged();
11946  return getImprovementLimitParametersFieldBuilder().getBuilder();
11947  }
11956  public com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParametersOrBuilder getImprovementLimitParametersOrBuilder() {
11957  if (improvementLimitParametersBuilder_ != null) {
11958  return improvementLimitParametersBuilder_.getMessageOrBuilder();
11959  } else {
11960  return improvementLimitParameters_ == null ?
11961  com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.getDefaultInstance() : improvementLimitParameters_;
11962  }
11963  }
11972  private com.google.protobuf.SingleFieldBuilderV3<
11973  com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters, com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.Builder, com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParametersOrBuilder>
11974  getImprovementLimitParametersFieldBuilder() {
11975  if (improvementLimitParametersBuilder_ == null) {
11976  improvementLimitParametersBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
11977  com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters, com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.Builder, com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParametersOrBuilder>(
11979  getParentForChildren(),
11980  isClean());
11981  improvementLimitParameters_ = null;
11982  }
11983  return improvementLimitParametersBuilder_;
11984  }
11985 
11986  private boolean useFullPropagation_ ;
12003  @java.lang.Override
12004  public boolean getUseFullPropagation() {
12005  return useFullPropagation_;
12006  }
12024  public Builder setUseFullPropagation(boolean value) {
12025 
12026  useFullPropagation_ = value;
12027  onChanged();
12028  return this;
12029  }
12047 
12048  useFullPropagation_ = false;
12049  onChanged();
12050  return this;
12051  }
12052 
12053  private boolean logSearch_ ;
12073  @java.lang.Override
12074  public boolean getLogSearch() {
12075  return logSearch_;
12076  }
12097  public Builder setLogSearch(boolean value) {
12098 
12099  logSearch_ = value;
12100  onChanged();
12101  return this;
12102  }
12123 
12124  logSearch_ = false;
12125  onChanged();
12126  return this;
12127  }
12128 
12129  private double logCostScalingFactor_ ;
12139  @java.lang.Override
12140  public double getLogCostScalingFactor() {
12141  return logCostScalingFactor_;
12142  }
12153  public Builder setLogCostScalingFactor(double value) {
12154 
12155  logCostScalingFactor_ = value;
12156  onChanged();
12157  return this;
12158  }
12169 
12170  logCostScalingFactor_ = 0D;
12171  onChanged();
12172  return this;
12173  }
12174 
12175  private double logCostOffset_ ;
12180  @java.lang.Override
12181  public double getLogCostOffset() {
12182  return logCostOffset_;
12183  }
12189  public Builder setLogCostOffset(double value) {
12190 
12191  logCostOffset_ = value;
12192  onChanged();
12193  return this;
12194  }
12200 
12201  logCostOffset_ = 0D;
12202  onChanged();
12203  return this;
12204  }
12205 
12206  private java.lang.Object logTag_ = "";
12216  public java.lang.String getLogTag() {
12217  java.lang.Object ref = logTag_;
12218  if (!(ref instanceof java.lang.String)) {
12219  com.google.protobuf.ByteString bs =
12220  (com.google.protobuf.ByteString) ref;
12221  java.lang.String s = bs.toStringUtf8();
12222  logTag_ = s;
12223  return s;
12224  } else {
12225  return (java.lang.String) ref;
12226  }
12227  }
12237  public com.google.protobuf.ByteString
12239  java.lang.Object ref = logTag_;
12240  if (ref instanceof String) {
12241  com.google.protobuf.ByteString b =
12242  com.google.protobuf.ByteString.copyFromUtf8(
12243  (java.lang.String) ref);
12244  logTag_ = b;
12245  return b;
12246  } else {
12247  return (com.google.protobuf.ByteString) ref;
12248  }
12249  }
12261  java.lang.String value) {
12262  if (value == null) {
12263  throw new NullPointerException();
12264  }
12265 
12266  logTag_ = value;
12267  onChanged();
12268  return this;
12269  }
12280 
12281  logTag_ = getDefaultInstance().getLogTag();
12282  onChanged();
12283  return this;
12284  }
12296  com.google.protobuf.ByteString value) {
12297  if (value == null) {
12298  throw new NullPointerException();
12299  }
12300  checkByteStringIsUtf8(value);
12301 
12302  logTag_ = value;
12303  onChanged();
12304  return this;
12305  }
12306  @java.lang.Override
12308  final com.google.protobuf.UnknownFieldSet unknownFields) {
12309  return super.setUnknownFields(unknownFields);
12310  }
12311 
12312  @java.lang.Override
12314  final com.google.protobuf.UnknownFieldSet unknownFields) {
12315  return super.mergeUnknownFields(unknownFields);
12316  }
12317 
12318 
12319  // @@protoc_insertion_point(builder_scope:operations_research.RoutingSearchParameters)
12320  }
12321 
12322  // @@protoc_insertion_point(class_scope:operations_research.RoutingSearchParameters)
12323  private static final com.google.ortools.constraintsolver.RoutingSearchParameters DEFAULT_INSTANCE;
12324  static {
12325  DEFAULT_INSTANCE = new com.google.ortools.constraintsolver.RoutingSearchParameters();
12326  }
12327 
12328  public static com.google.ortools.constraintsolver.RoutingSearchParameters getDefaultInstance() {
12329  return DEFAULT_INSTANCE;
12330  }
12331 
12332  private static final com.google.protobuf.Parser<RoutingSearchParameters>
12333  PARSER = new com.google.protobuf.AbstractParser<RoutingSearchParameters>() {
12334  @java.lang.Override
12335  public RoutingSearchParameters parsePartialFrom(
12336  com.google.protobuf.CodedInputStream input,
12337  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
12338  throws com.google.protobuf.InvalidProtocolBufferException {
12339  return new RoutingSearchParameters(input, extensionRegistry);
12340  }
12341  };
12342 
12343  public static com.google.protobuf.Parser<RoutingSearchParameters> parser() {
12344  return PARSER;
12345  }
12346 
12347  @java.lang.Override
12348  public com.google.protobuf.Parser<RoutingSearchParameters> getParserForType() {
12349  return PARSER;
12350  }
12351 
12352  @java.lang.Override
12353  public com.google.ortools.constraintsolver.RoutingSearchParameters getDefaultInstanceForType() {
12354  return DEFAULT_INSTANCE;
12355  }
12356 
12357 }
12358 
com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.Builder getImprovementLimitParametersBuilder()
.lang.Override int getCheapestInsertionLsOperatorMinNeighbors()
int32 cheapest_insertion_ls_operator_min_neighbors = 45;
Builder setCheapestInsertionLsOperatorMinNeighbors(int value)
int32 cheapest_insertion_ls_operator_min_neighbors = 45;
.lang.Override com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value getLocalSearchMetaheuristic()
.lang.Override Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
.lang.Override Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)
com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters getImprovementLimitParameters()
.lang.Override Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value)
Builder setFirstSolutionStrategy(com.google.ortools.constraintsolver.FirstSolutionStrategy.Value value)
boolean hasLocalSearchOperators()
.operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators local_search_operators ...
Builder setImprovementLimitParameters(com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters value)
com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.Builder getLocalSearchOperatorsBuilder()
.operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators local_search_operators ...
.lang.Override final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields)
.lang.Override com.google.ortools.constraintsolver.FirstSolutionStrategy.Value getFirstSolutionStrategy()
.lang.Override com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver getContinuousSchedulingSolver()
.operations_research.RoutingSearchParameters.SchedulingSolver continuous_scheduling_solver = 33;
Builder setMixedIntegerSchedulingSolverValue(int value)
.operations_research.RoutingSearchParameters.SchedulingSolver mixed_integer_scheduling_solver = 34;
Builder setLnsTimeLimit(com.google.protobuf.Duration.Builder builderForValue)
.lang.Override Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)
Builder mergeLocalSearchOperators(com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators value)
.operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators local_search_operators ...
.lang.Override com.google.ortools.constraintsolver.RoutingSearchParameters getDefaultInstanceForType()
com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParametersOrBuilder getImprovementLimitParametersOrBuilder()
.lang.Override com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
Builder clearMixedIntegerSchedulingSolver()
.operations_research.RoutingSearchParameters.SchedulingSolver mixed_integer_scheduling_solver = 34;
.lang.Override com.google.ortools.constraintsolver.RoutingSearchParameters buildPartial()
.lang.Override double getLogCostOffset()
double log_cost_offset = 29;
com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder getLocalSearchOperatorsOrBuilder()
.operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators local_search_operators ...
.lang.Override com.google.ortools.util.OptionalBoolean getUseCp()
.lang.Override com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver getMixedIntegerSchedulingSolver()
.operations_research.RoutingSearchParameters.SchedulingSolver mixed_integer_scheduling_solver = 34;
Builder setCheapestInsertionFirstSolutionMinNeighbors(int value)
int32 cheapest_insertion_first_solution_min_neighbors = 44;
Builder clearContinuousSchedulingSolver()
.operations_research.RoutingSearchParameters.SchedulingSolver continuous_scheduling_solver = 33;
.lang.Override Builder mergeFrom(com.google.protobuf.Message other)
.lang.Override com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
Builder setLocalSearchOperators(com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.Builder builderForValue)
.operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators local_search_operators ...
Builder clearCheapestInsertionLsOperatorMinNeighbors()
int32 cheapest_insertion_ls_operator_min_neighbors = 45;
.lang.Override int getCheapestInsertionFirstSolutionMinNeighbors()
int32 cheapest_insertion_first_solution_min_neighbors = 44;
.lang.Override int getContinuousSchedulingSolverValue()
.operations_research.RoutingSearchParameters.SchedulingSolver continuous_scheduling_solver = 33;
Builder mergeImprovementLimitParameters(com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters value)
Builder mergeFrom(com.google.ortools.constraintsolver.RoutingSearchParameters other)
Builder setMixedIntegerSchedulingSolver(com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver value)
.operations_research.RoutingSearchParameters.SchedulingSolver mixed_integer_scheduling_solver = 34;
.lang.Override final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields)
Builder clearCheapestInsertionFirstSolutionMinNeighbors()
int32 cheapest_insertion_first_solution_min_neighbors = 44;
Builder setLocalSearchMetaheuristic(com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value value)
com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators getLocalSearchOperators()
.operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators local_search_operators ...
Builder clearLocalSearchOperators()
.operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators local_search_operators ...
Builder setLocalSearchOperators(com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators value)
.operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators local_search_operators ...
.lang.Override int getMixedIntegerSchedulingSolverValue()
.operations_research.RoutingSearchParameters.SchedulingSolver mixed_integer_scheduling_solver = 34;
.lang.Override com.google.ortools.util.OptionalBoolean getUseCpSat()
static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
.lang.Override com.google.ortools.constraintsolver.RoutingSearchParameters build()
Builder setContinuousSchedulingSolverValue(int value)
.operations_research.RoutingSearchParameters.SchedulingSolver continuous_scheduling_solver = 33;
Builder setImprovementLimitParameters(com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.Builder builderForValue)
Builder setTimeLimit(com.google.protobuf.Duration.Builder builderForValue)
.lang.Override Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
Builder setUseCp(com.google.ortools.util.OptionalBoolean value)
Builder setUseCpSat(com.google.ortools.util.OptionalBoolean value)
Builder setContinuousSchedulingSolver(com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver value)
.operations_research.RoutingSearchParameters.SchedulingSolver continuous_scheduling_solver = 33;
.lang.Override Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
.lang.Override Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
.lang.Override Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)
.lang.Override Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value)
.lang.Override final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields)
.lang.Override com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters build()
.lang.Override Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)
Builder mergeFrom(com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters other)
.lang.Override com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters buildPartial()
.lang.Override com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
.lang.Override com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters getDefaultInstanceForType()
.lang.Override final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields)
.lang.Override Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
.lang.Override Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
static com.google.protobuf.Parser< ImprovementSearchLimitParameters > parser()
.lang.Override com.google.protobuf.Parser< ImprovementSearchLimitParameters > getParserForType()
.lang.Override Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
static com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters parseFrom(com.google.protobuf.CodedInputStream input)
static com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters parseFrom(java.nio.ByteBuffer data)
.lang.Override com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
static com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters parseFrom(java.io.InputStream input)
static Builder newBuilder(com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters prototype)
static com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters getDefaultInstance()
static com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
.lang.Override com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters getDefaultInstanceForType()
static com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters parseDelimitedFrom(java.io.InputStream input)
static com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters parseFrom(byte[] data)
static com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters parseFrom(com.google.protobuf.ByteString data)
.lang.Override Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
.lang.Override Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)
.lang.Override Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value)
.lang.Override final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields)
.lang.Override Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)
.lang.Override com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
.lang.Override final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields)
.lang.Override com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators getDefaultInstanceForType()
.lang.Override com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators buildPartial()
Builder mergeFrom(com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators other)
.lang.Override Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
.lang.Override com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators build()
.lang.Override Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
.lang.Override com.google.ortools.util.OptionalBoolean getUseRelocatePathGlobalCheapestInsertionInsertUnperformed()
static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parseFrom(java.nio.ByteBuffer data)
static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
.lang.Override com.google.protobuf.Parser< LocalSearchNeighborhoodOperators > getParserForType()
static com.google.protobuf.Parser< LocalSearchNeighborhoodOperators > parser()
static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parseFrom(com.google.protobuf.ByteString data)
.lang.Override Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parseFrom(byte[] data)
.lang.Override com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
static Builder newBuilder(com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators prototype)
static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
.lang.Override com.google.ortools.util.OptionalBoolean getUseGlobalCheapestInsertionExpensiveChainLns()
.lang.Override com.google.ortools.util.OptionalBoolean getUseLocalCheapestInsertionExpensiveChainLns()
static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
.lang.Override com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators getDefaultInstanceForType()
static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parseDelimitedFrom(java.io.InputStream input)
static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parseFrom(java.io.InputStream input)
static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators getDefaultInstance()
static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parseFrom(com.google.protobuf.CodedInputStream input)
static com.google.ortools.constraintsolver.RoutingSearchParameters parseFrom(java.nio.ByteBuffer data)
static com.google.ortools.constraintsolver.RoutingSearchParameters getDefaultInstance()
.lang.Override int getCheapestInsertionLsOperatorMinNeighbors()
int32 cheapest_insertion_ls_operator_min_neighbors = 45;
.lang.Override com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value getLocalSearchMetaheuristic()
.lang.Override com.google.ortools.constraintsolver.FirstSolutionStrategy.Value getFirstSolutionStrategy()
.lang.Override Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
.lang.Override com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver getContinuousSchedulingSolver()
.operations_research.RoutingSearchParameters.SchedulingSolver continuous_scheduling_solver = 33;
static com.google.ortools.constraintsolver.RoutingSearchParameters parseFrom(byte[] data)
.lang.Override com.google.ortools.constraintsolver.RoutingSearchParameters getDefaultInstanceForType()
.lang.Override com.google.protobuf.DurationOrBuilder getLnsTimeLimitOrBuilder()
static com.google.protobuf.Parser< RoutingSearchParameters > parser()
.lang.Override com.google.protobuf.DurationOrBuilder getTimeLimitOrBuilder()
.lang.Override double getLogCostOffset()
double log_cost_offset = 29;
.lang.Override com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters getImprovementLimitParameters()
static com.google.ortools.constraintsolver.RoutingSearchParameters parseFrom(com.google.protobuf.ByteString data)
.lang.Override com.google.ortools.util.OptionalBoolean getUseCp()
.lang.Override void writeTo(com.google.protobuf.CodedOutputStream output)
.lang.Override com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver getMixedIntegerSchedulingSolver()
.operations_research.RoutingSearchParameters.SchedulingSolver mixed_integer_scheduling_solver = 34;
static com.google.ortools.constraintsolver.RoutingSearchParameters parseDelimitedFrom(java.io.InputStream input)
static com.google.ortools.constraintsolver.RoutingSearchParameters parseFrom(java.io.InputStream input)
.lang.Override com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
.lang.Override final com.google.protobuf.UnknownFieldSet getUnknownFields()
.lang.Override int getCheapestInsertionFirstSolutionMinNeighbors()
int32 cheapest_insertion_first_solution_min_neighbors = 44;
static com.google.ortools.constraintsolver.RoutingSearchParameters parseFrom(com.google.protobuf.CodedInputStream input)
.lang.Override int getContinuousSchedulingSolverValue()
.operations_research.RoutingSearchParameters.SchedulingSolver continuous_scheduling_solver = 33;
.lang.Override com.google.protobuf.Duration getTimeLimit()
static com.google.ortools.constraintsolver.RoutingSearchParameters parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static Builder newBuilder(com.google.ortools.constraintsolver.RoutingSearchParameters prototype)
.lang.Override com.google.protobuf.Parser< RoutingSearchParameters > getParserForType()
static com.google.ortools.constraintsolver.RoutingSearchParameters parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static com.google.ortools.constraintsolver.RoutingSearchParameters parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
.lang.Override boolean hasLocalSearchOperators()
.operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators local_search_operators ...
.lang.Override java.lang.Object newInstance(UnusedPrivateParameter unused)
.lang.Override int getMixedIntegerSchedulingSolverValue()
.operations_research.RoutingSearchParameters.SchedulingSolver mixed_integer_scheduling_solver = 34;
static com.google.ortools.constraintsolver.RoutingSearchParameters parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
.lang.Override com.google.ortools.util.OptionalBoolean getUseCpSat()
.lang.Override boolean equals(final java.lang.Object obj)
static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
.lang.Override com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParametersOrBuilder getImprovementLimitParametersOrBuilder()
static com.google.ortools.constraintsolver.RoutingSearchParameters parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
.lang.Override com.google.protobuf.Duration getLnsTimeLimit()
.lang.Override com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators getLocalSearchOperators()
.operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators local_search_operators ...
.lang.Override com.google.protobuf.ByteString getLogTagBytes()
.lang.Override com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder getLocalSearchOperatorsOrBuilder()
.operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators local_search_operators ...
static com.google.ortools.constraintsolver.RoutingSearchParameters parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static com.google.protobuf.Internal.EnumLiteMap< SchedulingSolver > internalGetValueMap()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
static SchedulingSolver valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()