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  case 368: {
302 
303  cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_ = input.readBool();
304  break;
305  }
306  default: {
307  if (!parseUnknownField(
308  input, unknownFields, extensionRegistry, tag)) {
309  done = true;
310  }
311  break;
312  }
313  }
314  }
315  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
316  throw e.setUnfinishedMessage(this);
317  } catch (java.io.IOException e) {
318  throw new com.google.protobuf.InvalidProtocolBufferException(
319  e).setUnfinishedMessage(this);
320  } finally {
321  this.unknownFields = unknownFields.build();
322  makeExtensionsImmutable();
323  }
324  }
325  public static final com.google.protobuf.Descriptors.Descriptor
327  return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_descriptor;
328  }
329 
330  @java.lang.Override
331  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
333  return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_fieldAccessorTable
334  .ensureFieldAccessorsInitialized(
335  com.google.ortools.constraintsolver.RoutingSearchParameters.class, com.google.ortools.constraintsolver.RoutingSearchParameters.Builder.class);
336  }
337 
346  public enum SchedulingSolver
347  implements com.google.protobuf.ProtocolMessageEnum {
351  UNSET(0),
355  GLOP(1),
359  CP_SAT(2),
361  ;
362 
366  public static final int UNSET_VALUE = 0;
370  public static final int GLOP_VALUE = 1;
374  public static final int CP_SAT_VALUE = 2;
375 
376 
377  public final int getNumber() {
378  if (this == UNRECOGNIZED) {
379  throw new java.lang.IllegalArgumentException(
380  "Can't get the number of an unknown enum value.");
381  }
382  return value;
383  }
384 
390  @java.lang.Deprecated
391  public static SchedulingSolver valueOf(int value) {
392  return forNumber(value);
393  }
394 
399  public static SchedulingSolver forNumber(int value) {
400  switch (value) {
401  case 0: return UNSET;
402  case 1: return GLOP;
403  case 2: return CP_SAT;
404  default: return null;
405  }
406  }
407 
408  public static com.google.protobuf.Internal.EnumLiteMap<SchedulingSolver>
410  return internalValueMap;
411  }
412  private static final com.google.protobuf.Internal.EnumLiteMap<
413  SchedulingSolver> internalValueMap =
414  new com.google.protobuf.Internal.EnumLiteMap<SchedulingSolver>() {
415  public SchedulingSolver findValueByNumber(int number) {
416  return SchedulingSolver.forNumber(number);
417  }
418  };
419 
420  public final com.google.protobuf.Descriptors.EnumValueDescriptor
422  if (this == UNRECOGNIZED) {
423  throw new java.lang.IllegalStateException(
424  "Can't get the descriptor of an unrecognized enum value.");
425  }
426  return getDescriptor().getValues().get(ordinal());
427  }
428  public final com.google.protobuf.Descriptors.EnumDescriptor
430  return getDescriptor();
431  }
432  public static final com.google.protobuf.Descriptors.EnumDescriptor
434  return com.google.ortools.constraintsolver.RoutingSearchParameters.getDescriptor().getEnumTypes().get(0);
435  }
436 
437  private static final SchedulingSolver[] VALUES = values();
438 
439  public static SchedulingSolver valueOf(
440  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
441  if (desc.getType() != getDescriptor()) {
442  throw new java.lang.IllegalArgumentException(
443  "EnumValueDescriptor is not for this type.");
444  }
445  if (desc.getIndex() == -1) {
446  return UNRECOGNIZED;
447  }
448  return VALUES[desc.getIndex()];
449  }
450 
451  private final int value;
452 
453  private SchedulingSolver(int value) {
454  this.value = value;
455  }
456 
457  // @@protoc_insertion_point(enum_scope:operations_research.RoutingSearchParameters.SchedulingSolver)
458  }
459 
461  // @@protoc_insertion_point(interface_extends:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
462  com.google.protobuf.MessageOrBuilder {
463 
497  com.google.ortools.util.OptionalBoolean getUseRelocate();
498 
532  com.google.ortools.util.OptionalBoolean getUseRelocatePair();
533 
563  com.google.ortools.util.OptionalBoolean getUseLightRelocatePair();
564 
624  com.google.ortools.util.OptionalBoolean getUseRelocateNeighbors();
625 
665  com.google.ortools.util.OptionalBoolean getUseRelocateSubtrip();
666 
696  com.google.ortools.util.OptionalBoolean getUseExchange();
697 
727  com.google.ortools.util.OptionalBoolean getUseExchangePair();
728 
748  com.google.ortools.util.OptionalBoolean getUseExchangeSubtrip();
749 
783  com.google.ortools.util.OptionalBoolean getUseCross();
784 
802  com.google.ortools.util.OptionalBoolean getUseCrossExchange();
803 
839  com.google.ortools.util.OptionalBoolean getUseRelocateExpensiveChain();
840 
876  com.google.ortools.util.OptionalBoolean getUseTwoOpt();
877 
915  com.google.ortools.util.OptionalBoolean getUseOrOpt();
916 
940  com.google.ortools.util.OptionalBoolean getUseLinKernighan();
941 
969  com.google.ortools.util.OptionalBoolean getUseTspOpt();
970 
1000  com.google.ortools.util.OptionalBoolean getUseMakeActive();
1001 
1037  com.google.ortools.util.OptionalBoolean getUseRelocateAndMakeActive();
1038 
1064  com.google.ortools.util.OptionalBoolean getUseMakeInactive();
1065 
1093  com.google.ortools.util.OptionalBoolean getUseMakeChainInactive();
1094 
1120  com.google.ortools.util.OptionalBoolean getUseSwapActive();
1121 
1157  com.google.ortools.util.OptionalBoolean getUseExtendedSwapActive();
1158 
1196  com.google.ortools.util.OptionalBoolean getUseNodePairSwapActive();
1197 
1229  com.google.ortools.util.OptionalBoolean getUsePathLns();
1230 
1248  com.google.ortools.util.OptionalBoolean getUseFullPathLns();
1249 
1277  com.google.ortools.util.OptionalBoolean getUseTspLns();
1278 
1300  com.google.ortools.util.OptionalBoolean getUseInactiveLns();
1301 
1323  com.google.ortools.util.OptionalBoolean getUseGlobalCheapestInsertionPathLns();
1324 
1342  com.google.ortools.util.OptionalBoolean getUseLocalCheapestInsertionPathLns();
1343 
1365  com.google.ortools.util.OptionalBoolean getUseRelocatePathGlobalCheapestInsertionInsertUnperformed();
1366 
1390  com.google.ortools.util.OptionalBoolean getUseGlobalCheapestInsertionExpensiveChainLns();
1391 
1411  com.google.ortools.util.OptionalBoolean getUseLocalCheapestInsertionExpensiveChainLns();
1412 
1436  com.google.ortools.util.OptionalBoolean getUseGlobalCheapestInsertionCloseNodesLns();
1437 
1457  com.google.ortools.util.OptionalBoolean getUseLocalCheapestInsertionCloseNodesLns();
1458  }
1467  public static final class LocalSearchNeighborhoodOperators extends
1468  com.google.protobuf.GeneratedMessageV3 implements
1469  // @@protoc_insertion_point(message_implements:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
1471  private static final long serialVersionUID = 0L;
1472  // Use LocalSearchNeighborhoodOperators.newBuilder() to construct.
1473  private LocalSearchNeighborhoodOperators(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
1474  super(builder);
1475  }
1477  useRelocate_ = 0;
1478  useRelocatePair_ = 0;
1479  useLightRelocatePair_ = 0;
1480  useRelocateNeighbors_ = 0;
1481  useRelocateSubtrip_ = 0;
1482  useExchange_ = 0;
1483  useExchangePair_ = 0;
1484  useExchangeSubtrip_ = 0;
1485  useCross_ = 0;
1486  useCrossExchange_ = 0;
1487  useRelocateExpensiveChain_ = 0;
1488  useTwoOpt_ = 0;
1489  useOrOpt_ = 0;
1490  useLinKernighan_ = 0;
1491  useTspOpt_ = 0;
1492  useMakeActive_ = 0;
1493  useRelocateAndMakeActive_ = 0;
1494  useMakeInactive_ = 0;
1495  useMakeChainInactive_ = 0;
1496  useSwapActive_ = 0;
1497  useExtendedSwapActive_ = 0;
1498  useNodePairSwapActive_ = 0;
1499  usePathLns_ = 0;
1500  useFullPathLns_ = 0;
1501  useTspLns_ = 0;
1502  useInactiveLns_ = 0;
1503  useGlobalCheapestInsertionPathLns_ = 0;
1504  useLocalCheapestInsertionPathLns_ = 0;
1505  useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = 0;
1506  useGlobalCheapestInsertionExpensiveChainLns_ = 0;
1507  useLocalCheapestInsertionExpensiveChainLns_ = 0;
1508  useGlobalCheapestInsertionCloseNodesLns_ = 0;
1509  useLocalCheapestInsertionCloseNodesLns_ = 0;
1510  }
1511 
1512  @java.lang.Override
1513  @SuppressWarnings({"unused"})
1514  protected java.lang.Object newInstance(
1515  UnusedPrivateParameter unused) {
1516  return new LocalSearchNeighborhoodOperators();
1517  }
1518 
1519  @java.lang.Override
1520  public final com.google.protobuf.UnknownFieldSet
1522  return this.unknownFields;
1523  }
1525  com.google.protobuf.CodedInputStream input,
1526  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1527  throws com.google.protobuf.InvalidProtocolBufferException {
1528  this();
1529  if (extensionRegistry == null) {
1530  throw new java.lang.NullPointerException();
1531  }
1532  com.google.protobuf.UnknownFieldSet.Builder unknownFields =
1533  com.google.protobuf.UnknownFieldSet.newBuilder();
1534  try {
1535  boolean done = false;
1536  while (!done) {
1537  int tag = input.readTag();
1538  switch (tag) {
1539  case 0:
1540  done = true;
1541  break;
1542  case 8: {
1543  int rawValue = input.readEnum();
1544 
1545  useRelocate_ = rawValue;
1546  break;
1547  }
1548  case 16: {
1549  int rawValue = input.readEnum();
1550 
1551  useRelocatePair_ = rawValue;
1552  break;
1553  }
1554  case 24: {
1555  int rawValue = input.readEnum();
1556 
1557  useRelocateNeighbors_ = rawValue;
1558  break;
1559  }
1560  case 32: {
1561  int rawValue = input.readEnum();
1562 
1563  useExchange_ = rawValue;
1564  break;
1565  }
1566  case 40: {
1567  int rawValue = input.readEnum();
1568 
1569  useCross_ = rawValue;
1570  break;
1571  }
1572  case 48: {
1573  int rawValue = input.readEnum();
1574 
1575  useCrossExchange_ = rawValue;
1576  break;
1577  }
1578  case 56: {
1579  int rawValue = input.readEnum();
1580 
1581  useTwoOpt_ = rawValue;
1582  break;
1583  }
1584  case 64: {
1585  int rawValue = input.readEnum();
1586 
1587  useOrOpt_ = rawValue;
1588  break;
1589  }
1590  case 72: {
1591  int rawValue = input.readEnum();
1592 
1593  useLinKernighan_ = rawValue;
1594  break;
1595  }
1596  case 80: {
1597  int rawValue = input.readEnum();
1598 
1599  useTspOpt_ = rawValue;
1600  break;
1601  }
1602  case 88: {
1603  int rawValue = input.readEnum();
1604 
1605  useMakeActive_ = rawValue;
1606  break;
1607  }
1608  case 96: {
1609  int rawValue = input.readEnum();
1610 
1611  useMakeInactive_ = rawValue;
1612  break;
1613  }
1614  case 104: {
1615  int rawValue = input.readEnum();
1616 
1617  useMakeChainInactive_ = rawValue;
1618  break;
1619  }
1620  case 112: {
1621  int rawValue = input.readEnum();
1622 
1623  useSwapActive_ = rawValue;
1624  break;
1625  }
1626  case 120: {
1627  int rawValue = input.readEnum();
1628 
1629  useExtendedSwapActive_ = rawValue;
1630  break;
1631  }
1632  case 128: {
1633  int rawValue = input.readEnum();
1634 
1635  usePathLns_ = rawValue;
1636  break;
1637  }
1638  case 136: {
1639  int rawValue = input.readEnum();
1640 
1641  useFullPathLns_ = rawValue;
1642  break;
1643  }
1644  case 144: {
1645  int rawValue = input.readEnum();
1646 
1647  useTspLns_ = rawValue;
1648  break;
1649  }
1650  case 152: {
1651  int rawValue = input.readEnum();
1652 
1653  useInactiveLns_ = rawValue;
1654  break;
1655  }
1656  case 160: {
1657  int rawValue = input.readEnum();
1658 
1659  useNodePairSwapActive_ = rawValue;
1660  break;
1661  }
1662  case 168: {
1663  int rawValue = input.readEnum();
1664 
1665  useRelocateAndMakeActive_ = rawValue;
1666  break;
1667  }
1668  case 176: {
1669  int rawValue = input.readEnum();
1670 
1671  useExchangePair_ = rawValue;
1672  break;
1673  }
1674  case 184: {
1675  int rawValue = input.readEnum();
1676 
1677  useRelocateExpensiveChain_ = rawValue;
1678  break;
1679  }
1680  case 192: {
1681  int rawValue = input.readEnum();
1682 
1683  useLightRelocatePair_ = rawValue;
1684  break;
1685  }
1686  case 200: {
1687  int rawValue = input.readEnum();
1688 
1689  useRelocateSubtrip_ = rawValue;
1690  break;
1691  }
1692  case 208: {
1693  int rawValue = input.readEnum();
1694 
1695  useExchangeSubtrip_ = rawValue;
1696  break;
1697  }
1698  case 216: {
1699  int rawValue = input.readEnum();
1700 
1701  useGlobalCheapestInsertionPathLns_ = rawValue;
1702  break;
1703  }
1704  case 224: {
1705  int rawValue = input.readEnum();
1706 
1707  useLocalCheapestInsertionPathLns_ = rawValue;
1708  break;
1709  }
1710  case 232: {
1711  int rawValue = input.readEnum();
1712 
1713  useGlobalCheapestInsertionExpensiveChainLns_ = rawValue;
1714  break;
1715  }
1716  case 240: {
1717  int rawValue = input.readEnum();
1718 
1719  useLocalCheapestInsertionExpensiveChainLns_ = rawValue;
1720  break;
1721  }
1722  case 248: {
1723  int rawValue = input.readEnum();
1724 
1725  useGlobalCheapestInsertionCloseNodesLns_ = rawValue;
1726  break;
1727  }
1728  case 256: {
1729  int rawValue = input.readEnum();
1730 
1731  useLocalCheapestInsertionCloseNodesLns_ = rawValue;
1732  break;
1733  }
1734  case 264: {
1735  int rawValue = input.readEnum();
1736 
1737  useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = rawValue;
1738  break;
1739  }
1740  default: {
1741  if (!parseUnknownField(
1742  input, unknownFields, extensionRegistry, tag)) {
1743  done = true;
1744  }
1745  break;
1746  }
1747  }
1748  }
1749  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
1750  throw e.setUnfinishedMessage(this);
1751  } catch (java.io.IOException e) {
1752  throw new com.google.protobuf.InvalidProtocolBufferException(
1753  e).setUnfinishedMessage(this);
1754  } finally {
1755  this.unknownFields = unknownFields.build();
1756  makeExtensionsImmutable();
1757  }
1758  }
1759  public static final com.google.protobuf.Descriptors.Descriptor
1761  return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_LocalSearchNeighborhoodOperators_descriptor;
1762  }
1763 
1764  @java.lang.Override
1765  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
1767  return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_LocalSearchNeighborhoodOperators_fieldAccessorTable
1768  .ensureFieldAccessorsInitialized(
1769  com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.class, com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.Builder.class);
1770  }
1771 
1772  public static final int USE_RELOCATE_FIELD_NUMBER = 1;
1773  private int useRelocate_;
1790  @java.lang.Override public int getUseRelocateValue() {
1791  return useRelocate_;
1792  }
1809  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseRelocate() {
1810  @SuppressWarnings("deprecation")
1811  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useRelocate_);
1812  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
1813  }
1814 
1815  public static final int USE_RELOCATE_PAIR_FIELD_NUMBER = 2;
1816  private int useRelocatePair_;
1833  @java.lang.Override public int getUseRelocatePairValue() {
1834  return useRelocatePair_;
1835  }
1852  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseRelocatePair() {
1853  @SuppressWarnings("deprecation")
1854  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useRelocatePair_);
1855  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
1856  }
1857 
1858  public static final int USE_LIGHT_RELOCATE_PAIR_FIELD_NUMBER = 24;
1859  private int useLightRelocatePair_;
1874  @java.lang.Override public int getUseLightRelocatePairValue() {
1875  return useLightRelocatePair_;
1876  }
1891  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseLightRelocatePair() {
1892  @SuppressWarnings("deprecation")
1893  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useLightRelocatePair_);
1894  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
1895  }
1896 
1897  public static final int USE_RELOCATE_NEIGHBORS_FIELD_NUMBER = 3;
1898  private int useRelocateNeighbors_;
1928  @java.lang.Override public int getUseRelocateNeighborsValue() {
1929  return useRelocateNeighbors_;
1930  }
1960  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseRelocateNeighbors() {
1961  @SuppressWarnings("deprecation")
1962  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useRelocateNeighbors_);
1963  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
1964  }
1965 
1966  public static final int USE_RELOCATE_SUBTRIP_FIELD_NUMBER = 25;
1967  private int useRelocateSubtrip_;
1987  @java.lang.Override public int getUseRelocateSubtripValue() {
1988  return useRelocateSubtrip_;
1989  }
2009  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseRelocateSubtrip() {
2010  @SuppressWarnings("deprecation")
2011  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useRelocateSubtrip_);
2012  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2013  }
2014 
2015  public static final int USE_EXCHANGE_FIELD_NUMBER = 4;
2016  private int useExchange_;
2031  @java.lang.Override public int getUseExchangeValue() {
2032  return useExchange_;
2033  }
2048  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseExchange() {
2049  @SuppressWarnings("deprecation")
2050  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useExchange_);
2051  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2052  }
2053 
2054  public static final int USE_EXCHANGE_PAIR_FIELD_NUMBER = 22;
2055  private int useExchangePair_;
2070  @java.lang.Override public int getUseExchangePairValue() {
2071  return useExchangePair_;
2072  }
2087  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseExchangePair() {
2088  @SuppressWarnings("deprecation")
2089  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useExchangePair_);
2090  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2091  }
2092 
2093  public static final int USE_EXCHANGE_SUBTRIP_FIELD_NUMBER = 26;
2094  private int useExchangeSubtrip_;
2104  @java.lang.Override public int getUseExchangeSubtripValue() {
2105  return useExchangeSubtrip_;
2106  }
2116  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseExchangeSubtrip() {
2117  @SuppressWarnings("deprecation")
2118  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useExchangeSubtrip_);
2119  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2120  }
2121 
2122  public static final int USE_CROSS_FIELD_NUMBER = 5;
2123  private int useCross_;
2140  @java.lang.Override public int getUseCrossValue() {
2141  return useCross_;
2142  }
2159  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseCross() {
2160  @SuppressWarnings("deprecation")
2161  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useCross_);
2162  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2163  }
2164 
2165  public static final int USE_CROSS_EXCHANGE_FIELD_NUMBER = 6;
2166  private int useCrossExchange_;
2175  @java.lang.Override public int getUseCrossExchangeValue() {
2176  return useCrossExchange_;
2177  }
2186  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseCrossExchange() {
2187  @SuppressWarnings("deprecation")
2188  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useCrossExchange_);
2189  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2190  }
2191 
2192  public static final int USE_RELOCATE_EXPENSIVE_CHAIN_FIELD_NUMBER = 23;
2193  private int useRelocateExpensiveChain_;
2211  @java.lang.Override public int getUseRelocateExpensiveChainValue() {
2212  return useRelocateExpensiveChain_;
2213  }
2231  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseRelocateExpensiveChain() {
2232  @SuppressWarnings("deprecation")
2233  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useRelocateExpensiveChain_);
2234  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2235  }
2236 
2237  public static final int USE_TWO_OPT_FIELD_NUMBER = 7;
2238  private int useTwoOpt_;
2256  @java.lang.Override public int getUseTwoOptValue() {
2257  return useTwoOpt_;
2258  }
2276  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseTwoOpt() {
2277  @SuppressWarnings("deprecation")
2278  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useTwoOpt_);
2279  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2280  }
2281 
2282  public static final int USE_OR_OPT_FIELD_NUMBER = 8;
2283  private int useOrOpt_;
2302  @java.lang.Override public int getUseOrOptValue() {
2303  return useOrOpt_;
2304  }
2323  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseOrOpt() {
2324  @SuppressWarnings("deprecation")
2325  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useOrOpt_);
2326  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2327  }
2328 
2329  public static final int USE_LIN_KERNIGHAN_FIELD_NUMBER = 9;
2330  private int useLinKernighan_;
2342  @java.lang.Override public int getUseLinKernighanValue() {
2343  return useLinKernighan_;
2344  }
2356  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseLinKernighan() {
2357  @SuppressWarnings("deprecation")
2358  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useLinKernighan_);
2359  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2360  }
2361 
2362  public static final int USE_TSP_OPT_FIELD_NUMBER = 10;
2363  private int useTspOpt_;
2377  @java.lang.Override public int getUseTspOptValue() {
2378  return useTspOpt_;
2379  }
2393  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseTspOpt() {
2394  @SuppressWarnings("deprecation")
2395  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useTspOpt_);
2396  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2397  }
2398 
2399  public static final int USE_MAKE_ACTIVE_FIELD_NUMBER = 11;
2400  private int useMakeActive_;
2415  @java.lang.Override public int getUseMakeActiveValue() {
2416  return useMakeActive_;
2417  }
2432  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseMakeActive() {
2433  @SuppressWarnings("deprecation")
2434  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useMakeActive_);
2435  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2436  }
2437 
2438  public static final int USE_RELOCATE_AND_MAKE_ACTIVE_FIELD_NUMBER = 21;
2439  private int useRelocateAndMakeActive_;
2457  @java.lang.Override public int getUseRelocateAndMakeActiveValue() {
2458  return useRelocateAndMakeActive_;
2459  }
2477  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseRelocateAndMakeActive() {
2478  @SuppressWarnings("deprecation")
2479  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useRelocateAndMakeActive_);
2480  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2481  }
2482 
2483  public static final int USE_MAKE_INACTIVE_FIELD_NUMBER = 12;
2484  private int useMakeInactive_;
2497  @java.lang.Override public int getUseMakeInactiveValue() {
2498  return useMakeInactive_;
2499  }
2512  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseMakeInactive() {
2513  @SuppressWarnings("deprecation")
2514  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useMakeInactive_);
2515  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2516  }
2517 
2518  public static final int USE_MAKE_CHAIN_INACTIVE_FIELD_NUMBER = 13;
2519  private int useMakeChainInactive_;
2533  @java.lang.Override public int getUseMakeChainInactiveValue() {
2534  return useMakeChainInactive_;
2535  }
2549  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseMakeChainInactive() {
2550  @SuppressWarnings("deprecation")
2551  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useMakeChainInactive_);
2552  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2553  }
2554 
2555  public static final int USE_SWAP_ACTIVE_FIELD_NUMBER = 14;
2556  private int useSwapActive_;
2569  @java.lang.Override public int getUseSwapActiveValue() {
2570  return useSwapActive_;
2571  }
2584  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseSwapActive() {
2585  @SuppressWarnings("deprecation")
2586  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useSwapActive_);
2587  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2588  }
2589 
2590  public static final int USE_EXTENDED_SWAP_ACTIVE_FIELD_NUMBER = 15;
2591  private int useExtendedSwapActive_;
2609  @java.lang.Override public int getUseExtendedSwapActiveValue() {
2610  return useExtendedSwapActive_;
2611  }
2629  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseExtendedSwapActive() {
2630  @SuppressWarnings("deprecation")
2631  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useExtendedSwapActive_);
2632  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2633  }
2634 
2635  public static final int USE_NODE_PAIR_SWAP_ACTIVE_FIELD_NUMBER = 20;
2636  private int useNodePairSwapActive_;
2655  @java.lang.Override public int getUseNodePairSwapActiveValue() {
2656  return useNodePairSwapActive_;
2657  }
2676  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseNodePairSwapActive() {
2677  @SuppressWarnings("deprecation")
2678  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useNodePairSwapActive_);
2679  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2680  }
2681 
2682  public static final int USE_PATH_LNS_FIELD_NUMBER = 16;
2683  private int usePathLns_;
2699  @java.lang.Override public int getUsePathLnsValue() {
2700  return usePathLns_;
2701  }
2717  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUsePathLns() {
2718  @SuppressWarnings("deprecation")
2719  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(usePathLns_);
2720  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2721  }
2722 
2723  public static final int USE_FULL_PATH_LNS_FIELD_NUMBER = 17;
2724  private int useFullPathLns_;
2733  @java.lang.Override public int getUseFullPathLnsValue() {
2734  return useFullPathLns_;
2735  }
2744  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseFullPathLns() {
2745  @SuppressWarnings("deprecation")
2746  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useFullPathLns_);
2747  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2748  }
2749 
2750  public static final int USE_TSP_LNS_FIELD_NUMBER = 18;
2751  private int useTspLns_;
2765  @java.lang.Override public int getUseTspLnsValue() {
2766  return useTspLns_;
2767  }
2781  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseTspLns() {
2782  @SuppressWarnings("deprecation")
2783  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useTspLns_);
2784  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2785  }
2786 
2787  public static final int USE_INACTIVE_LNS_FIELD_NUMBER = 19;
2788  private int useInactiveLns_;
2799  @java.lang.Override public int getUseInactiveLnsValue() {
2800  return useInactiveLns_;
2801  }
2812  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseInactiveLns() {
2813  @SuppressWarnings("deprecation")
2814  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useInactiveLns_);
2815  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2816  }
2817 
2819  private int useGlobalCheapestInsertionPathLns_;
2830  @java.lang.Override public int getUseGlobalCheapestInsertionPathLnsValue() {
2831  return useGlobalCheapestInsertionPathLns_;
2832  }
2843  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseGlobalCheapestInsertionPathLns() {
2844  @SuppressWarnings("deprecation")
2845  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useGlobalCheapestInsertionPathLns_);
2846  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2847  }
2848 
2850  private int useLocalCheapestInsertionPathLns_;
2859  @java.lang.Override public int getUseLocalCheapestInsertionPathLnsValue() {
2860  return useLocalCheapestInsertionPathLns_;
2861  }
2870  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseLocalCheapestInsertionPathLns() {
2871  @SuppressWarnings("deprecation")
2872  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useLocalCheapestInsertionPathLns_);
2873  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2874  }
2875 
2877  private int useRelocatePathGlobalCheapestInsertionInsertUnperformed_;
2889  return useRelocatePathGlobalCheapestInsertionInsertUnperformed_;
2890  }
2901  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseRelocatePathGlobalCheapestInsertionInsertUnperformed() {
2902  @SuppressWarnings("deprecation")
2903  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useRelocatePathGlobalCheapestInsertionInsertUnperformed_);
2904  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2905  }
2906 
2908  private int useGlobalCheapestInsertionExpensiveChainLns_;
2920  @java.lang.Override public int getUseGlobalCheapestInsertionExpensiveChainLnsValue() {
2921  return useGlobalCheapestInsertionExpensiveChainLns_;
2922  }
2934  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseGlobalCheapestInsertionExpensiveChainLns() {
2935  @SuppressWarnings("deprecation")
2936  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useGlobalCheapestInsertionExpensiveChainLns_);
2937  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2938  }
2939 
2941  private int useLocalCheapestInsertionExpensiveChainLns_;
2951  @java.lang.Override public int getUseLocalCheapestInsertionExpensiveChainLnsValue() {
2952  return useLocalCheapestInsertionExpensiveChainLns_;
2953  }
2963  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseLocalCheapestInsertionExpensiveChainLns() {
2964  @SuppressWarnings("deprecation")
2965  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useLocalCheapestInsertionExpensiveChainLns_);
2966  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2967  }
2968 
2970  private int useGlobalCheapestInsertionCloseNodesLns_;
2982  @java.lang.Override public int getUseGlobalCheapestInsertionCloseNodesLnsValue() {
2983  return useGlobalCheapestInsertionCloseNodesLns_;
2984  }
2996  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseGlobalCheapestInsertionCloseNodesLns() {
2997  @SuppressWarnings("deprecation")
2998  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useGlobalCheapestInsertionCloseNodesLns_);
2999  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
3000  }
3001 
3003  private int useLocalCheapestInsertionCloseNodesLns_;
3013  @java.lang.Override public int getUseLocalCheapestInsertionCloseNodesLnsValue() {
3014  return useLocalCheapestInsertionCloseNodesLns_;
3015  }
3025  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseLocalCheapestInsertionCloseNodesLns() {
3026  @SuppressWarnings("deprecation")
3027  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useLocalCheapestInsertionCloseNodesLns_);
3028  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
3029  }
3030 
3031  private byte memoizedIsInitialized = -1;
3032  @java.lang.Override
3033  public final boolean isInitialized() {
3034  byte isInitialized = memoizedIsInitialized;
3035  if (isInitialized == 1) return true;
3036  if (isInitialized == 0) return false;
3037 
3038  memoizedIsInitialized = 1;
3039  return true;
3040  }
3041 
3042  @java.lang.Override
3043  public void writeTo(com.google.protobuf.CodedOutputStream output)
3044  throws java.io.IOException {
3045  if (useRelocate_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3046  output.writeEnum(1, useRelocate_);
3047  }
3048  if (useRelocatePair_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3049  output.writeEnum(2, useRelocatePair_);
3050  }
3051  if (useRelocateNeighbors_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3052  output.writeEnum(3, useRelocateNeighbors_);
3053  }
3054  if (useExchange_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3055  output.writeEnum(4, useExchange_);
3056  }
3057  if (useCross_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3058  output.writeEnum(5, useCross_);
3059  }
3060  if (useCrossExchange_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3061  output.writeEnum(6, useCrossExchange_);
3062  }
3063  if (useTwoOpt_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3064  output.writeEnum(7, useTwoOpt_);
3065  }
3066  if (useOrOpt_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3067  output.writeEnum(8, useOrOpt_);
3068  }
3069  if (useLinKernighan_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3070  output.writeEnum(9, useLinKernighan_);
3071  }
3072  if (useTspOpt_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3073  output.writeEnum(10, useTspOpt_);
3074  }
3075  if (useMakeActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3076  output.writeEnum(11, useMakeActive_);
3077  }
3078  if (useMakeInactive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3079  output.writeEnum(12, useMakeInactive_);
3080  }
3081  if (useMakeChainInactive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3082  output.writeEnum(13, useMakeChainInactive_);
3083  }
3084  if (useSwapActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3085  output.writeEnum(14, useSwapActive_);
3086  }
3087  if (useExtendedSwapActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3088  output.writeEnum(15, useExtendedSwapActive_);
3089  }
3090  if (usePathLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3091  output.writeEnum(16, usePathLns_);
3092  }
3093  if (useFullPathLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3094  output.writeEnum(17, useFullPathLns_);
3095  }
3096  if (useTspLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3097  output.writeEnum(18, useTspLns_);
3098  }
3099  if (useInactiveLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3100  output.writeEnum(19, useInactiveLns_);
3101  }
3102  if (useNodePairSwapActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3103  output.writeEnum(20, useNodePairSwapActive_);
3104  }
3105  if (useRelocateAndMakeActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3106  output.writeEnum(21, useRelocateAndMakeActive_);
3107  }
3108  if (useExchangePair_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3109  output.writeEnum(22, useExchangePair_);
3110  }
3111  if (useRelocateExpensiveChain_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3112  output.writeEnum(23, useRelocateExpensiveChain_);
3113  }
3114  if (useLightRelocatePair_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3115  output.writeEnum(24, useLightRelocatePair_);
3116  }
3117  if (useRelocateSubtrip_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3118  output.writeEnum(25, useRelocateSubtrip_);
3119  }
3120  if (useExchangeSubtrip_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3121  output.writeEnum(26, useExchangeSubtrip_);
3122  }
3123  if (useGlobalCheapestInsertionPathLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3124  output.writeEnum(27, useGlobalCheapestInsertionPathLns_);
3125  }
3126  if (useLocalCheapestInsertionPathLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3127  output.writeEnum(28, useLocalCheapestInsertionPathLns_);
3128  }
3129  if (useGlobalCheapestInsertionExpensiveChainLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3130  output.writeEnum(29, useGlobalCheapestInsertionExpensiveChainLns_);
3131  }
3132  if (useLocalCheapestInsertionExpensiveChainLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3133  output.writeEnum(30, useLocalCheapestInsertionExpensiveChainLns_);
3134  }
3135  if (useGlobalCheapestInsertionCloseNodesLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3136  output.writeEnum(31, useGlobalCheapestInsertionCloseNodesLns_);
3137  }
3138  if (useLocalCheapestInsertionCloseNodesLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3139  output.writeEnum(32, useLocalCheapestInsertionCloseNodesLns_);
3140  }
3141  if (useRelocatePathGlobalCheapestInsertionInsertUnperformed_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3142  output.writeEnum(33, useRelocatePathGlobalCheapestInsertionInsertUnperformed_);
3143  }
3144  unknownFields.writeTo(output);
3145  }
3146 
3147  @java.lang.Override
3148  public int getSerializedSize() {
3149  int size = memoizedSize;
3150  if (size != -1) return size;
3151 
3152  size = 0;
3153  if (useRelocate_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3154  size += com.google.protobuf.CodedOutputStream
3155  .computeEnumSize(1, useRelocate_);
3156  }
3157  if (useRelocatePair_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3158  size += com.google.protobuf.CodedOutputStream
3159  .computeEnumSize(2, useRelocatePair_);
3160  }
3161  if (useRelocateNeighbors_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3162  size += com.google.protobuf.CodedOutputStream
3163  .computeEnumSize(3, useRelocateNeighbors_);
3164  }
3165  if (useExchange_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3166  size += com.google.protobuf.CodedOutputStream
3167  .computeEnumSize(4, useExchange_);
3168  }
3169  if (useCross_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3170  size += com.google.protobuf.CodedOutputStream
3171  .computeEnumSize(5, useCross_);
3172  }
3173  if (useCrossExchange_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3174  size += com.google.protobuf.CodedOutputStream
3175  .computeEnumSize(6, useCrossExchange_);
3176  }
3177  if (useTwoOpt_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3178  size += com.google.protobuf.CodedOutputStream
3179  .computeEnumSize(7, useTwoOpt_);
3180  }
3181  if (useOrOpt_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3182  size += com.google.protobuf.CodedOutputStream
3183  .computeEnumSize(8, useOrOpt_);
3184  }
3185  if (useLinKernighan_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3186  size += com.google.protobuf.CodedOutputStream
3187  .computeEnumSize(9, useLinKernighan_);
3188  }
3189  if (useTspOpt_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3190  size += com.google.protobuf.CodedOutputStream
3191  .computeEnumSize(10, useTspOpt_);
3192  }
3193  if (useMakeActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3194  size += com.google.protobuf.CodedOutputStream
3195  .computeEnumSize(11, useMakeActive_);
3196  }
3197  if (useMakeInactive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3198  size += com.google.protobuf.CodedOutputStream
3199  .computeEnumSize(12, useMakeInactive_);
3200  }
3201  if (useMakeChainInactive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3202  size += com.google.protobuf.CodedOutputStream
3203  .computeEnumSize(13, useMakeChainInactive_);
3204  }
3205  if (useSwapActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3206  size += com.google.protobuf.CodedOutputStream
3207  .computeEnumSize(14, useSwapActive_);
3208  }
3209  if (useExtendedSwapActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3210  size += com.google.protobuf.CodedOutputStream
3211  .computeEnumSize(15, useExtendedSwapActive_);
3212  }
3213  if (usePathLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3214  size += com.google.protobuf.CodedOutputStream
3215  .computeEnumSize(16, usePathLns_);
3216  }
3217  if (useFullPathLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3218  size += com.google.protobuf.CodedOutputStream
3219  .computeEnumSize(17, useFullPathLns_);
3220  }
3221  if (useTspLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3222  size += com.google.protobuf.CodedOutputStream
3223  .computeEnumSize(18, useTspLns_);
3224  }
3225  if (useInactiveLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3226  size += com.google.protobuf.CodedOutputStream
3227  .computeEnumSize(19, useInactiveLns_);
3228  }
3229  if (useNodePairSwapActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3230  size += com.google.protobuf.CodedOutputStream
3231  .computeEnumSize(20, useNodePairSwapActive_);
3232  }
3233  if (useRelocateAndMakeActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3234  size += com.google.protobuf.CodedOutputStream
3235  .computeEnumSize(21, useRelocateAndMakeActive_);
3236  }
3237  if (useExchangePair_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3238  size += com.google.protobuf.CodedOutputStream
3239  .computeEnumSize(22, useExchangePair_);
3240  }
3241  if (useRelocateExpensiveChain_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3242  size += com.google.protobuf.CodedOutputStream
3243  .computeEnumSize(23, useRelocateExpensiveChain_);
3244  }
3245  if (useLightRelocatePair_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3246  size += com.google.protobuf.CodedOutputStream
3247  .computeEnumSize(24, useLightRelocatePair_);
3248  }
3249  if (useRelocateSubtrip_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3250  size += com.google.protobuf.CodedOutputStream
3251  .computeEnumSize(25, useRelocateSubtrip_);
3252  }
3253  if (useExchangeSubtrip_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3254  size += com.google.protobuf.CodedOutputStream
3255  .computeEnumSize(26, useExchangeSubtrip_);
3256  }
3257  if (useGlobalCheapestInsertionPathLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3258  size += com.google.protobuf.CodedOutputStream
3259  .computeEnumSize(27, useGlobalCheapestInsertionPathLns_);
3260  }
3261  if (useLocalCheapestInsertionPathLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3262  size += com.google.protobuf.CodedOutputStream
3263  .computeEnumSize(28, useLocalCheapestInsertionPathLns_);
3264  }
3265  if (useGlobalCheapestInsertionExpensiveChainLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3266  size += com.google.protobuf.CodedOutputStream
3267  .computeEnumSize(29, useGlobalCheapestInsertionExpensiveChainLns_);
3268  }
3269  if (useLocalCheapestInsertionExpensiveChainLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3270  size += com.google.protobuf.CodedOutputStream
3271  .computeEnumSize(30, useLocalCheapestInsertionExpensiveChainLns_);
3272  }
3273  if (useGlobalCheapestInsertionCloseNodesLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3274  size += com.google.protobuf.CodedOutputStream
3275  .computeEnumSize(31, useGlobalCheapestInsertionCloseNodesLns_);
3276  }
3277  if (useLocalCheapestInsertionCloseNodesLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3278  size += com.google.protobuf.CodedOutputStream
3279  .computeEnumSize(32, useLocalCheapestInsertionCloseNodesLns_);
3280  }
3281  if (useRelocatePathGlobalCheapestInsertionInsertUnperformed_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3282  size += com.google.protobuf.CodedOutputStream
3283  .computeEnumSize(33, useRelocatePathGlobalCheapestInsertionInsertUnperformed_);
3284  }
3285  size += unknownFields.getSerializedSize();
3286  memoizedSize = size;
3287  return size;
3288  }
3289 
3290  @java.lang.Override
3291  public boolean equals(final java.lang.Object obj) {
3292  if (obj == this) {
3293  return true;
3294  }
3295  if (!(obj instanceof com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators)) {
3296  return super.equals(obj);
3297  }
3298  com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators other = (com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators) obj;
3299 
3300  if (useRelocate_ != other.useRelocate_) return false;
3301  if (useRelocatePair_ != other.useRelocatePair_) return false;
3302  if (useLightRelocatePair_ != other.useLightRelocatePair_) return false;
3303  if (useRelocateNeighbors_ != other.useRelocateNeighbors_) return false;
3304  if (useRelocateSubtrip_ != other.useRelocateSubtrip_) return false;
3305  if (useExchange_ != other.useExchange_) return false;
3306  if (useExchangePair_ != other.useExchangePair_) return false;
3307  if (useExchangeSubtrip_ != other.useExchangeSubtrip_) return false;
3308  if (useCross_ != other.useCross_) return false;
3309  if (useCrossExchange_ != other.useCrossExchange_) return false;
3310  if (useRelocateExpensiveChain_ != other.useRelocateExpensiveChain_) return false;
3311  if (useTwoOpt_ != other.useTwoOpt_) return false;
3312  if (useOrOpt_ != other.useOrOpt_) return false;
3313  if (useLinKernighan_ != other.useLinKernighan_) return false;
3314  if (useTspOpt_ != other.useTspOpt_) return false;
3315  if (useMakeActive_ != other.useMakeActive_) return false;
3316  if (useRelocateAndMakeActive_ != other.useRelocateAndMakeActive_) return false;
3317  if (useMakeInactive_ != other.useMakeInactive_) return false;
3318  if (useMakeChainInactive_ != other.useMakeChainInactive_) return false;
3319  if (useSwapActive_ != other.useSwapActive_) return false;
3320  if (useExtendedSwapActive_ != other.useExtendedSwapActive_) return false;
3321  if (useNodePairSwapActive_ != other.useNodePairSwapActive_) return false;
3322  if (usePathLns_ != other.usePathLns_) return false;
3323  if (useFullPathLns_ != other.useFullPathLns_) return false;
3324  if (useTspLns_ != other.useTspLns_) return false;
3325  if (useInactiveLns_ != other.useInactiveLns_) return false;
3326  if (useGlobalCheapestInsertionPathLns_ != other.useGlobalCheapestInsertionPathLns_) return false;
3327  if (useLocalCheapestInsertionPathLns_ != other.useLocalCheapestInsertionPathLns_) return false;
3328  if (useRelocatePathGlobalCheapestInsertionInsertUnperformed_ != other.useRelocatePathGlobalCheapestInsertionInsertUnperformed_) return false;
3329  if (useGlobalCheapestInsertionExpensiveChainLns_ != other.useGlobalCheapestInsertionExpensiveChainLns_) return false;
3330  if (useLocalCheapestInsertionExpensiveChainLns_ != other.useLocalCheapestInsertionExpensiveChainLns_) return false;
3331  if (useGlobalCheapestInsertionCloseNodesLns_ != other.useGlobalCheapestInsertionCloseNodesLns_) return false;
3332  if (useLocalCheapestInsertionCloseNodesLns_ != other.useLocalCheapestInsertionCloseNodesLns_) return false;
3333  if (!unknownFields.equals(other.unknownFields)) return false;
3334  return true;
3335  }
3336 
3337  @java.lang.Override
3338  public int hashCode() {
3339  if (memoizedHashCode != 0) {
3340  return memoizedHashCode;
3341  }
3342  int hash = 41;
3343  hash = (19 * hash) + getDescriptor().hashCode();
3344  hash = (37 * hash) + USE_RELOCATE_FIELD_NUMBER;
3345  hash = (53 * hash) + useRelocate_;
3346  hash = (37 * hash) + USE_RELOCATE_PAIR_FIELD_NUMBER;
3347  hash = (53 * hash) + useRelocatePair_;
3348  hash = (37 * hash) + USE_LIGHT_RELOCATE_PAIR_FIELD_NUMBER;
3349  hash = (53 * hash) + useLightRelocatePair_;
3350  hash = (37 * hash) + USE_RELOCATE_NEIGHBORS_FIELD_NUMBER;
3351  hash = (53 * hash) + useRelocateNeighbors_;
3352  hash = (37 * hash) + USE_RELOCATE_SUBTRIP_FIELD_NUMBER;
3353  hash = (53 * hash) + useRelocateSubtrip_;
3354  hash = (37 * hash) + USE_EXCHANGE_FIELD_NUMBER;
3355  hash = (53 * hash) + useExchange_;
3356  hash = (37 * hash) + USE_EXCHANGE_PAIR_FIELD_NUMBER;
3357  hash = (53 * hash) + useExchangePair_;
3358  hash = (37 * hash) + USE_EXCHANGE_SUBTRIP_FIELD_NUMBER;
3359  hash = (53 * hash) + useExchangeSubtrip_;
3360  hash = (37 * hash) + USE_CROSS_FIELD_NUMBER;
3361  hash = (53 * hash) + useCross_;
3362  hash = (37 * hash) + USE_CROSS_EXCHANGE_FIELD_NUMBER;
3363  hash = (53 * hash) + useCrossExchange_;
3364  hash = (37 * hash) + USE_RELOCATE_EXPENSIVE_CHAIN_FIELD_NUMBER;
3365  hash = (53 * hash) + useRelocateExpensiveChain_;
3366  hash = (37 * hash) + USE_TWO_OPT_FIELD_NUMBER;
3367  hash = (53 * hash) + useTwoOpt_;
3368  hash = (37 * hash) + USE_OR_OPT_FIELD_NUMBER;
3369  hash = (53 * hash) + useOrOpt_;
3370  hash = (37 * hash) + USE_LIN_KERNIGHAN_FIELD_NUMBER;
3371  hash = (53 * hash) + useLinKernighan_;
3372  hash = (37 * hash) + USE_TSP_OPT_FIELD_NUMBER;
3373  hash = (53 * hash) + useTspOpt_;
3374  hash = (37 * hash) + USE_MAKE_ACTIVE_FIELD_NUMBER;
3375  hash = (53 * hash) + useMakeActive_;
3376  hash = (37 * hash) + USE_RELOCATE_AND_MAKE_ACTIVE_FIELD_NUMBER;
3377  hash = (53 * hash) + useRelocateAndMakeActive_;
3378  hash = (37 * hash) + USE_MAKE_INACTIVE_FIELD_NUMBER;
3379  hash = (53 * hash) + useMakeInactive_;
3380  hash = (37 * hash) + USE_MAKE_CHAIN_INACTIVE_FIELD_NUMBER;
3381  hash = (53 * hash) + useMakeChainInactive_;
3382  hash = (37 * hash) + USE_SWAP_ACTIVE_FIELD_NUMBER;
3383  hash = (53 * hash) + useSwapActive_;
3384  hash = (37 * hash) + USE_EXTENDED_SWAP_ACTIVE_FIELD_NUMBER;
3385  hash = (53 * hash) + useExtendedSwapActive_;
3386  hash = (37 * hash) + USE_NODE_PAIR_SWAP_ACTIVE_FIELD_NUMBER;
3387  hash = (53 * hash) + useNodePairSwapActive_;
3388  hash = (37 * hash) + USE_PATH_LNS_FIELD_NUMBER;
3389  hash = (53 * hash) + usePathLns_;
3390  hash = (37 * hash) + USE_FULL_PATH_LNS_FIELD_NUMBER;
3391  hash = (53 * hash) + useFullPathLns_;
3392  hash = (37 * hash) + USE_TSP_LNS_FIELD_NUMBER;
3393  hash = (53 * hash) + useTspLns_;
3394  hash = (37 * hash) + USE_INACTIVE_LNS_FIELD_NUMBER;
3395  hash = (53 * hash) + useInactiveLns_;
3397  hash = (53 * hash) + useGlobalCheapestInsertionPathLns_;
3399  hash = (53 * hash) + useLocalCheapestInsertionPathLns_;
3401  hash = (53 * hash) + useRelocatePathGlobalCheapestInsertionInsertUnperformed_;
3403  hash = (53 * hash) + useGlobalCheapestInsertionExpensiveChainLns_;
3405  hash = (53 * hash) + useLocalCheapestInsertionExpensiveChainLns_;
3407  hash = (53 * hash) + useGlobalCheapestInsertionCloseNodesLns_;
3409  hash = (53 * hash) + useLocalCheapestInsertionCloseNodesLns_;
3410  hash = (29 * hash) + unknownFields.hashCode();
3411  memoizedHashCode = hash;
3412  return hash;
3413  }
3414 
3415  public static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parseFrom(
3416  java.nio.ByteBuffer data)
3417  throws com.google.protobuf.InvalidProtocolBufferException {
3418  return PARSER.parseFrom(data);
3419  }
3420  public static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parseFrom(
3421  java.nio.ByteBuffer data,
3422  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3423  throws com.google.protobuf.InvalidProtocolBufferException {
3424  return PARSER.parseFrom(data, extensionRegistry);
3425  }
3426  public static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parseFrom(
3427  com.google.protobuf.ByteString data)
3428  throws com.google.protobuf.InvalidProtocolBufferException {
3429  return PARSER.parseFrom(data);
3430  }
3431  public static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parseFrom(
3432  com.google.protobuf.ByteString data,
3433  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3434  throws com.google.protobuf.InvalidProtocolBufferException {
3435  return PARSER.parseFrom(data, extensionRegistry);
3436  }
3437  public static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parseFrom(byte[] data)
3438  throws com.google.protobuf.InvalidProtocolBufferException {
3439  return PARSER.parseFrom(data);
3440  }
3441  public static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parseFrom(
3442  byte[] data,
3443  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3444  throws com.google.protobuf.InvalidProtocolBufferException {
3445  return PARSER.parseFrom(data, extensionRegistry);
3446  }
3447  public static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parseFrom(java.io.InputStream input)
3448  throws java.io.IOException {
3449  return com.google.protobuf.GeneratedMessageV3
3450  .parseWithIOException(PARSER, input);
3451  }
3452  public static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parseFrom(
3453  java.io.InputStream input,
3454  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3455  throws java.io.IOException {
3456  return com.google.protobuf.GeneratedMessageV3
3457  .parseWithIOException(PARSER, input, extensionRegistry);
3458  }
3459  public static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parseDelimitedFrom(java.io.InputStream input)
3460  throws java.io.IOException {
3461  return com.google.protobuf.GeneratedMessageV3
3462  .parseDelimitedWithIOException(PARSER, input);
3463  }
3464  public static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parseDelimitedFrom(
3465  java.io.InputStream input,
3466  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3467  throws java.io.IOException {
3468  return com.google.protobuf.GeneratedMessageV3
3469  .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
3470  }
3471  public static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parseFrom(
3472  com.google.protobuf.CodedInputStream input)
3473  throws java.io.IOException {
3474  return com.google.protobuf.GeneratedMessageV3
3475  .parseWithIOException(PARSER, input);
3476  }
3477  public static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parseFrom(
3478  com.google.protobuf.CodedInputStream input,
3479  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3480  throws java.io.IOException {
3481  return com.google.protobuf.GeneratedMessageV3
3482  .parseWithIOException(PARSER, input, extensionRegistry);
3483  }
3484 
3485  @java.lang.Override
3486  public Builder newBuilderForType() { return newBuilder(); }
3487  public static Builder newBuilder() {
3488  return DEFAULT_INSTANCE.toBuilder();
3489  }
3490  public static Builder newBuilder(com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators prototype) {
3491  return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
3492  }
3493  @java.lang.Override
3494  public Builder toBuilder() {
3495  return this == DEFAULT_INSTANCE
3496  ? new Builder() : new Builder().mergeFrom(this);
3497  }
3498 
3499  @java.lang.Override
3501  com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
3502  Builder builder = new Builder(parent);
3503  return builder;
3504  }
3513  public static final class Builder extends
3514  com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
3515  // @@protoc_insertion_point(builder_implements:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
3516  com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder {
3517  public static final com.google.protobuf.Descriptors.Descriptor
3519  return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_LocalSearchNeighborhoodOperators_descriptor;
3520  }
3521 
3522  @java.lang.Override
3523  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
3525  return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_LocalSearchNeighborhoodOperators_fieldAccessorTable
3526  .ensureFieldAccessorsInitialized(
3527  com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.class, com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.Builder.class);
3528  }
3529 
3530  // Construct using com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.newBuilder()
3531  private Builder() {
3532  maybeForceBuilderInitialization();
3533  }
3534 
3535  private Builder(
3536  com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
3537  super(parent);
3538  maybeForceBuilderInitialization();
3539  }
3540  private void maybeForceBuilderInitialization() {
3541  if (com.google.protobuf.GeneratedMessageV3
3542  .alwaysUseFieldBuilders) {
3543  }
3544  }
3545  @java.lang.Override
3546  public Builder clear() {
3547  super.clear();
3548  useRelocate_ = 0;
3549 
3550  useRelocatePair_ = 0;
3551 
3552  useLightRelocatePair_ = 0;
3553 
3554  useRelocateNeighbors_ = 0;
3555 
3556  useRelocateSubtrip_ = 0;
3557 
3558  useExchange_ = 0;
3559 
3560  useExchangePair_ = 0;
3561 
3562  useExchangeSubtrip_ = 0;
3563 
3564  useCross_ = 0;
3565 
3566  useCrossExchange_ = 0;
3567 
3568  useRelocateExpensiveChain_ = 0;
3569 
3570  useTwoOpt_ = 0;
3571 
3572  useOrOpt_ = 0;
3573 
3574  useLinKernighan_ = 0;
3575 
3576  useTspOpt_ = 0;
3577 
3578  useMakeActive_ = 0;
3579 
3580  useRelocateAndMakeActive_ = 0;
3581 
3582  useMakeInactive_ = 0;
3583 
3584  useMakeChainInactive_ = 0;
3585 
3586  useSwapActive_ = 0;
3587 
3588  useExtendedSwapActive_ = 0;
3589 
3590  useNodePairSwapActive_ = 0;
3591 
3592  usePathLns_ = 0;
3593 
3594  useFullPathLns_ = 0;
3595 
3596  useTspLns_ = 0;
3597 
3598  useInactiveLns_ = 0;
3599 
3600  useGlobalCheapestInsertionPathLns_ = 0;
3601 
3602  useLocalCheapestInsertionPathLns_ = 0;
3603 
3604  useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = 0;
3605 
3606  useGlobalCheapestInsertionExpensiveChainLns_ = 0;
3607 
3608  useLocalCheapestInsertionExpensiveChainLns_ = 0;
3609 
3610  useGlobalCheapestInsertionCloseNodesLns_ = 0;
3611 
3612  useLocalCheapestInsertionCloseNodesLns_ = 0;
3613 
3614  return this;
3615  }
3616 
3617  @java.lang.Override
3618  public com.google.protobuf.Descriptors.Descriptor
3620  return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_LocalSearchNeighborhoodOperators_descriptor;
3621  }
3622 
3623  @java.lang.Override
3624  public com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators getDefaultInstanceForType() {
3625  return com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.getDefaultInstance();
3626  }
3627 
3628  @java.lang.Override
3629  public com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators build() {
3630  com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators result = buildPartial();
3631  if (!result.isInitialized()) {
3632  throw newUninitializedMessageException(result);
3633  }
3634  return result;
3635  }
3636 
3637  @java.lang.Override
3638  public com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators buildPartial() {
3639  com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators result = new com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators(this);
3640  result.useRelocate_ = useRelocate_;
3641  result.useRelocatePair_ = useRelocatePair_;
3642  result.useLightRelocatePair_ = useLightRelocatePair_;
3643  result.useRelocateNeighbors_ = useRelocateNeighbors_;
3644  result.useRelocateSubtrip_ = useRelocateSubtrip_;
3645  result.useExchange_ = useExchange_;
3646  result.useExchangePair_ = useExchangePair_;
3647  result.useExchangeSubtrip_ = useExchangeSubtrip_;
3648  result.useCross_ = useCross_;
3649  result.useCrossExchange_ = useCrossExchange_;
3650  result.useRelocateExpensiveChain_ = useRelocateExpensiveChain_;
3651  result.useTwoOpt_ = useTwoOpt_;
3652  result.useOrOpt_ = useOrOpt_;
3653  result.useLinKernighan_ = useLinKernighan_;
3654  result.useTspOpt_ = useTspOpt_;
3655  result.useMakeActive_ = useMakeActive_;
3656  result.useRelocateAndMakeActive_ = useRelocateAndMakeActive_;
3657  result.useMakeInactive_ = useMakeInactive_;
3658  result.useMakeChainInactive_ = useMakeChainInactive_;
3659  result.useSwapActive_ = useSwapActive_;
3660  result.useExtendedSwapActive_ = useExtendedSwapActive_;
3661  result.useNodePairSwapActive_ = useNodePairSwapActive_;
3662  result.usePathLns_ = usePathLns_;
3663  result.useFullPathLns_ = useFullPathLns_;
3664  result.useTspLns_ = useTspLns_;
3665  result.useInactiveLns_ = useInactiveLns_;
3666  result.useGlobalCheapestInsertionPathLns_ = useGlobalCheapestInsertionPathLns_;
3667  result.useLocalCheapestInsertionPathLns_ = useLocalCheapestInsertionPathLns_;
3668  result.useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = useRelocatePathGlobalCheapestInsertionInsertUnperformed_;
3669  result.useGlobalCheapestInsertionExpensiveChainLns_ = useGlobalCheapestInsertionExpensiveChainLns_;
3670  result.useLocalCheapestInsertionExpensiveChainLns_ = useLocalCheapestInsertionExpensiveChainLns_;
3671  result.useGlobalCheapestInsertionCloseNodesLns_ = useGlobalCheapestInsertionCloseNodesLns_;
3672  result.useLocalCheapestInsertionCloseNodesLns_ = useLocalCheapestInsertionCloseNodesLns_;
3673  onBuilt();
3674  return result;
3675  }
3676 
3677  @java.lang.Override
3678  public Builder clone() {
3679  return super.clone();
3680  }
3681  @java.lang.Override
3683  com.google.protobuf.Descriptors.FieldDescriptor field,
3684  java.lang.Object value) {
3685  return super.setField(field, value);
3686  }
3687  @java.lang.Override
3689  com.google.protobuf.Descriptors.FieldDescriptor field) {
3690  return super.clearField(field);
3691  }
3692  @java.lang.Override
3694  com.google.protobuf.Descriptors.OneofDescriptor oneof) {
3695  return super.clearOneof(oneof);
3696  }
3697  @java.lang.Override
3699  com.google.protobuf.Descriptors.FieldDescriptor field,
3700  int index, java.lang.Object value) {
3701  return super.setRepeatedField(field, index, value);
3702  }
3703  @java.lang.Override
3705  com.google.protobuf.Descriptors.FieldDescriptor field,
3706  java.lang.Object value) {
3707  return super.addRepeatedField(field, value);
3708  }
3709  @java.lang.Override
3710  public Builder mergeFrom(com.google.protobuf.Message other) {
3711  if (other instanceof com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators) {
3712  return mergeFrom((com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators)other);
3713  } else {
3714  super.mergeFrom(other);
3715  return this;
3716  }
3717  }
3718 
3719  public Builder mergeFrom(com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators other) {
3720  if (other == com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.getDefaultInstance()) return this;
3721  if (other.useRelocate_ != 0) {
3722  setUseRelocateValue(other.getUseRelocateValue());
3723  }
3724  if (other.useRelocatePair_ != 0) {
3725  setUseRelocatePairValue(other.getUseRelocatePairValue());
3726  }
3727  if (other.useLightRelocatePair_ != 0) {
3728  setUseLightRelocatePairValue(other.getUseLightRelocatePairValue());
3729  }
3730  if (other.useRelocateNeighbors_ != 0) {
3731  setUseRelocateNeighborsValue(other.getUseRelocateNeighborsValue());
3732  }
3733  if (other.useRelocateSubtrip_ != 0) {
3734  setUseRelocateSubtripValue(other.getUseRelocateSubtripValue());
3735  }
3736  if (other.useExchange_ != 0) {
3737  setUseExchangeValue(other.getUseExchangeValue());
3738  }
3739  if (other.useExchangePair_ != 0) {
3740  setUseExchangePairValue(other.getUseExchangePairValue());
3741  }
3742  if (other.useExchangeSubtrip_ != 0) {
3743  setUseExchangeSubtripValue(other.getUseExchangeSubtripValue());
3744  }
3745  if (other.useCross_ != 0) {
3746  setUseCrossValue(other.getUseCrossValue());
3747  }
3748  if (other.useCrossExchange_ != 0) {
3749  setUseCrossExchangeValue(other.getUseCrossExchangeValue());
3750  }
3751  if (other.useRelocateExpensiveChain_ != 0) {
3752  setUseRelocateExpensiveChainValue(other.getUseRelocateExpensiveChainValue());
3753  }
3754  if (other.useTwoOpt_ != 0) {
3755  setUseTwoOptValue(other.getUseTwoOptValue());
3756  }
3757  if (other.useOrOpt_ != 0) {
3758  setUseOrOptValue(other.getUseOrOptValue());
3759  }
3760  if (other.useLinKernighan_ != 0) {
3761  setUseLinKernighanValue(other.getUseLinKernighanValue());
3762  }
3763  if (other.useTspOpt_ != 0) {
3764  setUseTspOptValue(other.getUseTspOptValue());
3765  }
3766  if (other.useMakeActive_ != 0) {
3767  setUseMakeActiveValue(other.getUseMakeActiveValue());
3768  }
3769  if (other.useRelocateAndMakeActive_ != 0) {
3770  setUseRelocateAndMakeActiveValue(other.getUseRelocateAndMakeActiveValue());
3771  }
3772  if (other.useMakeInactive_ != 0) {
3773  setUseMakeInactiveValue(other.getUseMakeInactiveValue());
3774  }
3775  if (other.useMakeChainInactive_ != 0) {
3776  setUseMakeChainInactiveValue(other.getUseMakeChainInactiveValue());
3777  }
3778  if (other.useSwapActive_ != 0) {
3779  setUseSwapActiveValue(other.getUseSwapActiveValue());
3780  }
3781  if (other.useExtendedSwapActive_ != 0) {
3782  setUseExtendedSwapActiveValue(other.getUseExtendedSwapActiveValue());
3783  }
3784  if (other.useNodePairSwapActive_ != 0) {
3785  setUseNodePairSwapActiveValue(other.getUseNodePairSwapActiveValue());
3786  }
3787  if (other.usePathLns_ != 0) {
3788  setUsePathLnsValue(other.getUsePathLnsValue());
3789  }
3790  if (other.useFullPathLns_ != 0) {
3791  setUseFullPathLnsValue(other.getUseFullPathLnsValue());
3792  }
3793  if (other.useTspLns_ != 0) {
3794  setUseTspLnsValue(other.getUseTspLnsValue());
3795  }
3796  if (other.useInactiveLns_ != 0) {
3797  setUseInactiveLnsValue(other.getUseInactiveLnsValue());
3798  }
3799  if (other.useGlobalCheapestInsertionPathLns_ != 0) {
3800  setUseGlobalCheapestInsertionPathLnsValue(other.getUseGlobalCheapestInsertionPathLnsValue());
3801  }
3802  if (other.useLocalCheapestInsertionPathLns_ != 0) {
3803  setUseLocalCheapestInsertionPathLnsValue(other.getUseLocalCheapestInsertionPathLnsValue());
3804  }
3805  if (other.useRelocatePathGlobalCheapestInsertionInsertUnperformed_ != 0) {
3806  setUseRelocatePathGlobalCheapestInsertionInsertUnperformedValue(other.getUseRelocatePathGlobalCheapestInsertionInsertUnperformedValue());
3807  }
3808  if (other.useGlobalCheapestInsertionExpensiveChainLns_ != 0) {
3809  setUseGlobalCheapestInsertionExpensiveChainLnsValue(other.getUseGlobalCheapestInsertionExpensiveChainLnsValue());
3810  }
3811  if (other.useLocalCheapestInsertionExpensiveChainLns_ != 0) {
3812  setUseLocalCheapestInsertionExpensiveChainLnsValue(other.getUseLocalCheapestInsertionExpensiveChainLnsValue());
3813  }
3814  if (other.useGlobalCheapestInsertionCloseNodesLns_ != 0) {
3815  setUseGlobalCheapestInsertionCloseNodesLnsValue(other.getUseGlobalCheapestInsertionCloseNodesLnsValue());
3816  }
3817  if (other.useLocalCheapestInsertionCloseNodesLns_ != 0) {
3818  setUseLocalCheapestInsertionCloseNodesLnsValue(other.getUseLocalCheapestInsertionCloseNodesLnsValue());
3819  }
3820  this.mergeUnknownFields(other.unknownFields);
3821  onChanged();
3822  return this;
3823  }
3824 
3825  @java.lang.Override
3826  public final boolean isInitialized() {
3827  return true;
3828  }
3829 
3830  @java.lang.Override
3832  com.google.protobuf.CodedInputStream input,
3833  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3834  throws java.io.IOException {
3835  com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parsedMessage = null;
3836  try {
3837  parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
3838  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
3839  parsedMessage = (com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators) e.getUnfinishedMessage();
3840  throw e.unwrapIOException();
3841  } finally {
3842  if (parsedMessage != null) {
3843  mergeFrom(parsedMessage);
3844  }
3845  }
3846  return this;
3847  }
3848 
3849  private int useRelocate_ = 0;
3866  @java.lang.Override public int getUseRelocateValue() {
3867  return useRelocate_;
3868  }
3886  public Builder setUseRelocateValue(int value) {
3887 
3888  useRelocate_ = value;
3889  onChanged();
3890  return this;
3891  }
3908  @java.lang.Override
3909  public com.google.ortools.util.OptionalBoolean getUseRelocate() {
3910  @SuppressWarnings("deprecation")
3911  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useRelocate_);
3912  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
3913  }
3931  public Builder setUseRelocate(com.google.ortools.util.OptionalBoolean value) {
3932  if (value == null) {
3933  throw new NullPointerException();
3934  }
3935 
3936  useRelocate_ = value.getNumber();
3937  onChanged();
3938  return this;
3939  }
3957 
3958  useRelocate_ = 0;
3959  onChanged();
3960  return this;
3961  }
3962 
3963  private int useRelocatePair_ = 0;
3980  @java.lang.Override public int getUseRelocatePairValue() {
3981  return useRelocatePair_;
3982  }
4000  public Builder setUseRelocatePairValue(int value) {
4001 
4002  useRelocatePair_ = value;
4003  onChanged();
4004  return this;
4005  }
4022  @java.lang.Override
4023  public com.google.ortools.util.OptionalBoolean getUseRelocatePair() {
4024  @SuppressWarnings("deprecation")
4025  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useRelocatePair_);
4026  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
4027  }
4045  public Builder setUseRelocatePair(com.google.ortools.util.OptionalBoolean value) {
4046  if (value == null) {
4047  throw new NullPointerException();
4048  }
4049 
4050  useRelocatePair_ = value.getNumber();
4051  onChanged();
4052  return this;
4053  }
4071 
4072  useRelocatePair_ = 0;
4073  onChanged();
4074  return this;
4075  }
4076 
4077  private int useLightRelocatePair_ = 0;
4092  @java.lang.Override public int getUseLightRelocatePairValue() {
4093  return useLightRelocatePair_;
4094  }
4111 
4112  useLightRelocatePair_ = value;
4113  onChanged();
4114  return this;
4115  }
4130  @java.lang.Override
4131  public com.google.ortools.util.OptionalBoolean getUseLightRelocatePair() {
4132  @SuppressWarnings("deprecation")
4133  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useLightRelocatePair_);
4134  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
4135  }
4151  public Builder setUseLightRelocatePair(com.google.ortools.util.OptionalBoolean value) {
4152  if (value == null) {
4153  throw new NullPointerException();
4154  }
4155 
4156  useLightRelocatePair_ = value.getNumber();
4157  onChanged();
4158  return this;
4159  }
4175 
4176  useLightRelocatePair_ = 0;
4177  onChanged();
4178  return this;
4179  }
4180 
4181  private int useRelocateNeighbors_ = 0;
4211  @java.lang.Override public int getUseRelocateNeighborsValue() {
4212  return useRelocateNeighbors_;
4213  }
4245 
4246  useRelocateNeighbors_ = value;
4247  onChanged();
4248  return this;
4249  }
4279  @java.lang.Override
4280  public com.google.ortools.util.OptionalBoolean getUseRelocateNeighbors() {
4281  @SuppressWarnings("deprecation")
4282  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useRelocateNeighbors_);
4283  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
4284  }
4315  public Builder setUseRelocateNeighbors(com.google.ortools.util.OptionalBoolean value) {
4316  if (value == null) {
4317  throw new NullPointerException();
4318  }
4319 
4320  useRelocateNeighbors_ = value.getNumber();
4321  onChanged();
4322  return this;
4323  }
4354 
4355  useRelocateNeighbors_ = 0;
4356  onChanged();
4357  return this;
4358  }
4359 
4360  private int useRelocateSubtrip_ = 0;
4380  @java.lang.Override public int getUseRelocateSubtripValue() {
4381  return useRelocateSubtrip_;
4382  }
4404 
4405  useRelocateSubtrip_ = value;
4406  onChanged();
4407  return this;
4408  }
4428  @java.lang.Override
4429  public com.google.ortools.util.OptionalBoolean getUseRelocateSubtrip() {
4430  @SuppressWarnings("deprecation")
4431  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useRelocateSubtrip_);
4432  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
4433  }
4454  public Builder setUseRelocateSubtrip(com.google.ortools.util.OptionalBoolean value) {
4455  if (value == null) {
4456  throw new NullPointerException();
4457  }
4458 
4459  useRelocateSubtrip_ = value.getNumber();
4460  onChanged();
4461  return this;
4462  }
4483 
4484  useRelocateSubtrip_ = 0;
4485  onChanged();
4486  return this;
4487  }
4488 
4489  private int useExchange_ = 0;
4504  @java.lang.Override public int getUseExchangeValue() {
4505  return useExchange_;
4506  }
4522  public Builder setUseExchangeValue(int value) {
4523 
4524  useExchange_ = value;
4525  onChanged();
4526  return this;
4527  }
4542  @java.lang.Override
4543  public com.google.ortools.util.OptionalBoolean getUseExchange() {
4544  @SuppressWarnings("deprecation")
4545  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useExchange_);
4546  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
4547  }
4563  public Builder setUseExchange(com.google.ortools.util.OptionalBoolean value) {
4564  if (value == null) {
4565  throw new NullPointerException();
4566  }
4567 
4568  useExchange_ = value.getNumber();
4569  onChanged();
4570  return this;
4571  }
4587 
4588  useExchange_ = 0;
4589  onChanged();
4590  return this;
4591  }
4592 
4593  private int useExchangePair_ = 0;
4608  @java.lang.Override public int getUseExchangePairValue() {
4609  return useExchangePair_;
4610  }
4626  public Builder setUseExchangePairValue(int value) {
4627 
4628  useExchangePair_ = value;
4629  onChanged();
4630  return this;
4631  }
4646  @java.lang.Override
4647  public com.google.ortools.util.OptionalBoolean getUseExchangePair() {
4648  @SuppressWarnings("deprecation")
4649  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useExchangePair_);
4650  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
4651  }
4667  public Builder setUseExchangePair(com.google.ortools.util.OptionalBoolean value) {
4668  if (value == null) {
4669  throw new NullPointerException();
4670  }
4671 
4672  useExchangePair_ = value.getNumber();
4673  onChanged();
4674  return this;
4675  }
4691 
4692  useExchangePair_ = 0;
4693  onChanged();
4694  return this;
4695  }
4696 
4697  private int useExchangeSubtrip_ = 0;
4707  @java.lang.Override public int getUseExchangeSubtripValue() {
4708  return useExchangeSubtrip_;
4709  }
4721 
4722  useExchangeSubtrip_ = value;
4723  onChanged();
4724  return this;
4725  }
4735  @java.lang.Override
4736  public com.google.ortools.util.OptionalBoolean getUseExchangeSubtrip() {
4737  @SuppressWarnings("deprecation")
4738  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useExchangeSubtrip_);
4739  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
4740  }
4751  public Builder setUseExchangeSubtrip(com.google.ortools.util.OptionalBoolean value) {
4752  if (value == null) {
4753  throw new NullPointerException();
4754  }
4755 
4756  useExchangeSubtrip_ = value.getNumber();
4757  onChanged();
4758  return this;
4759  }
4770 
4771  useExchangeSubtrip_ = 0;
4772  onChanged();
4773  return this;
4774  }
4775 
4776  private int useCross_ = 0;
4793  @java.lang.Override public int getUseCrossValue() {
4794  return useCross_;
4795  }
4813  public Builder setUseCrossValue(int value) {
4814 
4815  useCross_ = value;
4816  onChanged();
4817  return this;
4818  }
4835  @java.lang.Override
4836  public com.google.ortools.util.OptionalBoolean getUseCross() {
4837  @SuppressWarnings("deprecation")
4838  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useCross_);
4839  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
4840  }
4858  public Builder setUseCross(com.google.ortools.util.OptionalBoolean value) {
4859  if (value == null) {
4860  throw new NullPointerException();
4861  }
4862 
4863  useCross_ = value.getNumber();
4864  onChanged();
4865  return this;
4866  }
4884 
4885  useCross_ = 0;
4886  onChanged();
4887  return this;
4888  }
4889 
4890  private int useCrossExchange_ = 0;
4899  @java.lang.Override public int getUseCrossExchangeValue() {
4900  return useCrossExchange_;
4901  }
4911  public Builder setUseCrossExchangeValue(int value) {
4912 
4913  useCrossExchange_ = value;
4914  onChanged();
4915  return this;
4916  }
4925  @java.lang.Override
4926  public com.google.ortools.util.OptionalBoolean getUseCrossExchange() {
4927  @SuppressWarnings("deprecation")
4928  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useCrossExchange_);
4929  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
4930  }
4940  public Builder setUseCrossExchange(com.google.ortools.util.OptionalBoolean value) {
4941  if (value == null) {
4942  throw new NullPointerException();
4943  }
4944 
4945  useCrossExchange_ = value.getNumber();
4946  onChanged();
4947  return this;
4948  }
4958 
4959  useCrossExchange_ = 0;
4960  onChanged();
4961  return this;
4962  }
4963 
4964  private int useRelocateExpensiveChain_ = 0;
4982  @java.lang.Override public int getUseRelocateExpensiveChainValue() {
4983  return useRelocateExpensiveChain_;
4984  }
5004 
5005  useRelocateExpensiveChain_ = value;
5006  onChanged();
5007  return this;
5008  }
5026  @java.lang.Override
5027  public com.google.ortools.util.OptionalBoolean getUseRelocateExpensiveChain() {
5028  @SuppressWarnings("deprecation")
5029  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useRelocateExpensiveChain_);
5030  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
5031  }
5050  public Builder setUseRelocateExpensiveChain(com.google.ortools.util.OptionalBoolean value) {
5051  if (value == null) {
5052  throw new NullPointerException();
5053  }
5054 
5055  useRelocateExpensiveChain_ = value.getNumber();
5056  onChanged();
5057  return this;
5058  }
5077 
5078  useRelocateExpensiveChain_ = 0;
5079  onChanged();
5080  return this;
5081  }
5082 
5083  private int useTwoOpt_ = 0;
5101  @java.lang.Override public int getUseTwoOptValue() {
5102  return useTwoOpt_;
5103  }
5122  public Builder setUseTwoOptValue(int value) {
5123 
5124  useTwoOpt_ = value;
5125  onChanged();
5126  return this;
5127  }
5145  @java.lang.Override
5146  public com.google.ortools.util.OptionalBoolean getUseTwoOpt() {
5147  @SuppressWarnings("deprecation")
5148  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useTwoOpt_);
5149  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
5150  }
5169  public Builder setUseTwoOpt(com.google.ortools.util.OptionalBoolean value) {
5170  if (value == null) {
5171  throw new NullPointerException();
5172  }
5173 
5174  useTwoOpt_ = value.getNumber();
5175  onChanged();
5176  return this;
5177  }
5196 
5197  useTwoOpt_ = 0;
5198  onChanged();
5199  return this;
5200  }
5201 
5202  private int useOrOpt_ = 0;
5221  @java.lang.Override public int getUseOrOptValue() {
5222  return useOrOpt_;
5223  }
5243  public Builder setUseOrOptValue(int value) {
5244 
5245  useOrOpt_ = value;
5246  onChanged();
5247  return this;
5248  }
5267  @java.lang.Override
5268  public com.google.ortools.util.OptionalBoolean getUseOrOpt() {
5269  @SuppressWarnings("deprecation")
5270  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useOrOpt_);
5271  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
5272  }
5292  public Builder setUseOrOpt(com.google.ortools.util.OptionalBoolean value) {
5293  if (value == null) {
5294  throw new NullPointerException();
5295  }
5296 
5297  useOrOpt_ = value.getNumber();
5298  onChanged();
5299  return this;
5300  }
5320 
5321  useOrOpt_ = 0;
5322  onChanged();
5323  return this;
5324  }
5325 
5326  private int useLinKernighan_ = 0;
5338  @java.lang.Override public int getUseLinKernighanValue() {
5339  return useLinKernighan_;
5340  }
5353  public Builder setUseLinKernighanValue(int value) {
5354 
5355  useLinKernighan_ = value;
5356  onChanged();
5357  return this;
5358  }
5370  @java.lang.Override
5371  public com.google.ortools.util.OptionalBoolean getUseLinKernighan() {
5372  @SuppressWarnings("deprecation")
5373  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useLinKernighan_);
5374  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
5375  }
5388  public Builder setUseLinKernighan(com.google.ortools.util.OptionalBoolean value) {
5389  if (value == null) {
5390  throw new NullPointerException();
5391  }
5392 
5393  useLinKernighan_ = value.getNumber();
5394  onChanged();
5395  return this;
5396  }
5409 
5410  useLinKernighan_ = 0;
5411  onChanged();
5412  return this;
5413  }
5414 
5415  private int useTspOpt_ = 0;
5429  @java.lang.Override public int getUseTspOptValue() {
5430  return useTspOpt_;
5431  }
5446  public Builder setUseTspOptValue(int value) {
5447 
5448  useTspOpt_ = value;
5449  onChanged();
5450  return this;
5451  }
5465  @java.lang.Override
5466  public com.google.ortools.util.OptionalBoolean getUseTspOpt() {
5467  @SuppressWarnings("deprecation")
5468  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useTspOpt_);
5469  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
5470  }
5485  public Builder setUseTspOpt(com.google.ortools.util.OptionalBoolean value) {
5486  if (value == null) {
5487  throw new NullPointerException();
5488  }
5489 
5490  useTspOpt_ = value.getNumber();
5491  onChanged();
5492  return this;
5493  }
5508 
5509  useTspOpt_ = 0;
5510  onChanged();
5511  return this;
5512  }
5513 
5514  private int useMakeActive_ = 0;
5529  @java.lang.Override public int getUseMakeActiveValue() {
5530  return useMakeActive_;
5531  }
5547  public Builder setUseMakeActiveValue(int value) {
5548 
5549  useMakeActive_ = value;
5550  onChanged();
5551  return this;
5552  }
5567  @java.lang.Override
5568  public com.google.ortools.util.OptionalBoolean getUseMakeActive() {
5569  @SuppressWarnings("deprecation")
5570  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useMakeActive_);
5571  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
5572  }
5588  public Builder setUseMakeActive(com.google.ortools.util.OptionalBoolean value) {
5589  if (value == null) {
5590  throw new NullPointerException();
5591  }
5592 
5593  useMakeActive_ = value.getNumber();
5594  onChanged();
5595  return this;
5596  }
5612 
5613  useMakeActive_ = 0;
5614  onChanged();
5615  return this;
5616  }
5617 
5618  private int useRelocateAndMakeActive_ = 0;
5636  @java.lang.Override public int getUseRelocateAndMakeActiveValue() {
5637  return useRelocateAndMakeActive_;
5638  }
5658 
5659  useRelocateAndMakeActive_ = value;
5660  onChanged();
5661  return this;
5662  }
5680  @java.lang.Override
5681  public com.google.ortools.util.OptionalBoolean getUseRelocateAndMakeActive() {
5682  @SuppressWarnings("deprecation")
5683  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useRelocateAndMakeActive_);
5684  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
5685  }
5704  public Builder setUseRelocateAndMakeActive(com.google.ortools.util.OptionalBoolean value) {
5705  if (value == null) {
5706  throw new NullPointerException();
5707  }
5708 
5709  useRelocateAndMakeActive_ = value.getNumber();
5710  onChanged();
5711  return this;
5712  }
5731 
5732  useRelocateAndMakeActive_ = 0;
5733  onChanged();
5734  return this;
5735  }
5736 
5737  private int useMakeInactive_ = 0;
5750  @java.lang.Override public int getUseMakeInactiveValue() {
5751  return useMakeInactive_;
5752  }
5766  public Builder setUseMakeInactiveValue(int value) {
5767 
5768  useMakeInactive_ = value;
5769  onChanged();
5770  return this;
5771  }
5784  @java.lang.Override
5785  public com.google.ortools.util.OptionalBoolean getUseMakeInactive() {
5786  @SuppressWarnings("deprecation")
5787  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useMakeInactive_);
5788  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
5789  }
5803  public Builder setUseMakeInactive(com.google.ortools.util.OptionalBoolean value) {
5804  if (value == null) {
5805  throw new NullPointerException();
5806  }
5807 
5808  useMakeInactive_ = value.getNumber();
5809  onChanged();
5810  return this;
5811  }
5825 
5826  useMakeInactive_ = 0;
5827  onChanged();
5828  return this;
5829  }
5830 
5831  private int useMakeChainInactive_ = 0;
5845  @java.lang.Override public int getUseMakeChainInactiveValue() {
5846  return useMakeChainInactive_;
5847  }
5863 
5864  useMakeChainInactive_ = value;
5865  onChanged();
5866  return this;
5867  }
5881  @java.lang.Override
5882  public com.google.ortools.util.OptionalBoolean getUseMakeChainInactive() {
5883  @SuppressWarnings("deprecation")
5884  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useMakeChainInactive_);
5885  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
5886  }
5901  public Builder setUseMakeChainInactive(com.google.ortools.util.OptionalBoolean value) {
5902  if (value == null) {
5903  throw new NullPointerException();
5904  }
5905 
5906  useMakeChainInactive_ = value.getNumber();
5907  onChanged();
5908  return this;
5909  }
5924 
5925  useMakeChainInactive_ = 0;
5926  onChanged();
5927  return this;
5928  }
5929 
5930  private int useSwapActive_ = 0;
5943  @java.lang.Override public int getUseSwapActiveValue() {
5944  return useSwapActive_;
5945  }
5959  public Builder setUseSwapActiveValue(int value) {
5960 
5961  useSwapActive_ = value;
5962  onChanged();
5963  return this;
5964  }
5977  @java.lang.Override
5978  public com.google.ortools.util.OptionalBoolean getUseSwapActive() {
5979  @SuppressWarnings("deprecation")
5980  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useSwapActive_);
5981  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
5982  }
5996  public Builder setUseSwapActive(com.google.ortools.util.OptionalBoolean value) {
5997  if (value == null) {
5998  throw new NullPointerException();
5999  }
6000 
6001  useSwapActive_ = value.getNumber();
6002  onChanged();
6003  return this;
6004  }
6018 
6019  useSwapActive_ = 0;
6020  onChanged();
6021  return this;
6022  }
6023 
6024  private int useExtendedSwapActive_ = 0;
6042  @java.lang.Override public int getUseExtendedSwapActiveValue() {
6043  return useExtendedSwapActive_;
6044  }
6064 
6065  useExtendedSwapActive_ = value;
6066  onChanged();
6067  return this;
6068  }
6086  @java.lang.Override
6087  public com.google.ortools.util.OptionalBoolean getUseExtendedSwapActive() {
6088  @SuppressWarnings("deprecation")
6089  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useExtendedSwapActive_);
6090  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6091  }
6110  public Builder setUseExtendedSwapActive(com.google.ortools.util.OptionalBoolean value) {
6111  if (value == null) {
6112  throw new NullPointerException();
6113  }
6114 
6115  useExtendedSwapActive_ = value.getNumber();
6116  onChanged();
6117  return this;
6118  }
6137 
6138  useExtendedSwapActive_ = 0;
6139  onChanged();
6140  return this;
6141  }
6142 
6143  private int useNodePairSwapActive_ = 0;
6162  @java.lang.Override public int getUseNodePairSwapActiveValue() {
6163  return useNodePairSwapActive_;
6164  }
6185 
6186  useNodePairSwapActive_ = value;
6187  onChanged();
6188  return this;
6189  }
6208  @java.lang.Override
6209  public com.google.ortools.util.OptionalBoolean getUseNodePairSwapActive() {
6210  @SuppressWarnings("deprecation")
6211  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useNodePairSwapActive_);
6212  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6213  }
6233  public Builder setUseNodePairSwapActive(com.google.ortools.util.OptionalBoolean value) {
6234  if (value == null) {
6235  throw new NullPointerException();
6236  }
6237 
6238  useNodePairSwapActive_ = value.getNumber();
6239  onChanged();
6240  return this;
6241  }
6261 
6262  useNodePairSwapActive_ = 0;
6263  onChanged();
6264  return this;
6265  }
6266 
6267  private int usePathLns_ = 0;
6283  @java.lang.Override public int getUsePathLnsValue() {
6284  return usePathLns_;
6285  }
6302  public Builder setUsePathLnsValue(int value) {
6303 
6304  usePathLns_ = value;
6305  onChanged();
6306  return this;
6307  }
6323  @java.lang.Override
6324  public com.google.ortools.util.OptionalBoolean getUsePathLns() {
6325  @SuppressWarnings("deprecation")
6326  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(usePathLns_);
6327  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6328  }
6345  public Builder setUsePathLns(com.google.ortools.util.OptionalBoolean value) {
6346  if (value == null) {
6347  throw new NullPointerException();
6348  }
6349 
6350  usePathLns_ = value.getNumber();
6351  onChanged();
6352  return this;
6353  }
6370 
6371  usePathLns_ = 0;
6372  onChanged();
6373  return this;
6374  }
6375 
6376  private int useFullPathLns_ = 0;
6385  @java.lang.Override public int getUseFullPathLnsValue() {
6386  return useFullPathLns_;
6387  }
6397  public Builder setUseFullPathLnsValue(int value) {
6398 
6399  useFullPathLns_ = value;
6400  onChanged();
6401  return this;
6402  }
6411  @java.lang.Override
6412  public com.google.ortools.util.OptionalBoolean getUseFullPathLns() {
6413  @SuppressWarnings("deprecation")
6414  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useFullPathLns_);
6415  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6416  }
6426  public Builder setUseFullPathLns(com.google.ortools.util.OptionalBoolean value) {
6427  if (value == null) {
6428  throw new NullPointerException();
6429  }
6430 
6431  useFullPathLns_ = value.getNumber();
6432  onChanged();
6433  return this;
6434  }
6444 
6445  useFullPathLns_ = 0;
6446  onChanged();
6447  return this;
6448  }
6449 
6450  private int useTspLns_ = 0;
6464  @java.lang.Override public int getUseTspLnsValue() {
6465  return useTspLns_;
6466  }
6481  public Builder setUseTspLnsValue(int value) {
6482 
6483  useTspLns_ = value;
6484  onChanged();
6485  return this;
6486  }
6500  @java.lang.Override
6501  public com.google.ortools.util.OptionalBoolean getUseTspLns() {
6502  @SuppressWarnings("deprecation")
6503  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useTspLns_);
6504  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6505  }
6520  public Builder setUseTspLns(com.google.ortools.util.OptionalBoolean value) {
6521  if (value == null) {
6522  throw new NullPointerException();
6523  }
6524 
6525  useTspLns_ = value.getNumber();
6526  onChanged();
6527  return this;
6528  }
6543 
6544  useTspLns_ = 0;
6545  onChanged();
6546  return this;
6547  }
6548 
6549  private int useInactiveLns_ = 0;
6560  @java.lang.Override public int getUseInactiveLnsValue() {
6561  return useInactiveLns_;
6562  }
6574  public Builder setUseInactiveLnsValue(int value) {
6575 
6576  useInactiveLns_ = value;
6577  onChanged();
6578  return this;
6579  }
6590  @java.lang.Override
6591  public com.google.ortools.util.OptionalBoolean getUseInactiveLns() {
6592  @SuppressWarnings("deprecation")
6593  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useInactiveLns_);
6594  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6595  }
6607  public Builder setUseInactiveLns(com.google.ortools.util.OptionalBoolean value) {
6608  if (value == null) {
6609  throw new NullPointerException();
6610  }
6611 
6612  useInactiveLns_ = value.getNumber();
6613  onChanged();
6614  return this;
6615  }
6627 
6628  useInactiveLns_ = 0;
6629  onChanged();
6630  return this;
6631  }
6632 
6633  private int useGlobalCheapestInsertionPathLns_ = 0;
6644  @java.lang.Override public int getUseGlobalCheapestInsertionPathLnsValue() {
6645  return useGlobalCheapestInsertionPathLns_;
6646  }
6659 
6660  useGlobalCheapestInsertionPathLns_ = value;
6661  onChanged();
6662  return this;
6663  }
6674  @java.lang.Override
6675  public com.google.ortools.util.OptionalBoolean getUseGlobalCheapestInsertionPathLns() {
6676  @SuppressWarnings("deprecation")
6677  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useGlobalCheapestInsertionPathLns_);
6678  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6679  }
6691  public Builder setUseGlobalCheapestInsertionPathLns(com.google.ortools.util.OptionalBoolean value) {
6692  if (value == null) {
6693  throw new NullPointerException();
6694  }
6695 
6696  useGlobalCheapestInsertionPathLns_ = value.getNumber();
6697  onChanged();
6698  return this;
6699  }
6711 
6712  useGlobalCheapestInsertionPathLns_ = 0;
6713  onChanged();
6714  return this;
6715  }
6716 
6717  private int useLocalCheapestInsertionPathLns_ = 0;
6726  @java.lang.Override public int getUseLocalCheapestInsertionPathLnsValue() {
6727  return useLocalCheapestInsertionPathLns_;
6728  }
6739 
6740  useLocalCheapestInsertionPathLns_ = value;
6741  onChanged();
6742  return this;
6743  }
6752  @java.lang.Override
6753  public com.google.ortools.util.OptionalBoolean getUseLocalCheapestInsertionPathLns() {
6754  @SuppressWarnings("deprecation")
6755  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useLocalCheapestInsertionPathLns_);
6756  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6757  }
6767  public Builder setUseLocalCheapestInsertionPathLns(com.google.ortools.util.OptionalBoolean value) {
6768  if (value == null) {
6769  throw new NullPointerException();
6770  }
6771 
6772  useLocalCheapestInsertionPathLns_ = value.getNumber();
6773  onChanged();
6774  return this;
6775  }
6785 
6786  useLocalCheapestInsertionPathLns_ = 0;
6787  onChanged();
6788  return this;
6789  }
6790 
6791  private int useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = 0;
6803  return useRelocatePathGlobalCheapestInsertionInsertUnperformed_;
6804  }
6817 
6818  useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = value;
6819  onChanged();
6820  return this;
6821  }
6832  @java.lang.Override
6833  public com.google.ortools.util.OptionalBoolean getUseRelocatePathGlobalCheapestInsertionInsertUnperformed() {
6834  @SuppressWarnings("deprecation")
6835  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useRelocatePathGlobalCheapestInsertionInsertUnperformed_);
6836  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6837  }
6849  public Builder setUseRelocatePathGlobalCheapestInsertionInsertUnperformed(com.google.ortools.util.OptionalBoolean value) {
6850  if (value == null) {
6851  throw new NullPointerException();
6852  }
6853 
6854  useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = value.getNumber();
6855  onChanged();
6856  return this;
6857  }
6869 
6870  useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = 0;
6871  onChanged();
6872  return this;
6873  }
6874 
6875  private int useGlobalCheapestInsertionExpensiveChainLns_ = 0;
6887  @java.lang.Override public int getUseGlobalCheapestInsertionExpensiveChainLnsValue() {
6888  return useGlobalCheapestInsertionExpensiveChainLns_;
6889  }
6903 
6904  useGlobalCheapestInsertionExpensiveChainLns_ = value;
6905  onChanged();
6906  return this;
6907  }
6919  @java.lang.Override
6920  public com.google.ortools.util.OptionalBoolean getUseGlobalCheapestInsertionExpensiveChainLns() {
6921  @SuppressWarnings("deprecation")
6922  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useGlobalCheapestInsertionExpensiveChainLns_);
6923  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6924  }
6937  public Builder setUseGlobalCheapestInsertionExpensiveChainLns(com.google.ortools.util.OptionalBoolean value) {
6938  if (value == null) {
6939  throw new NullPointerException();
6940  }
6941 
6942  useGlobalCheapestInsertionExpensiveChainLns_ = value.getNumber();
6943  onChanged();
6944  return this;
6945  }
6958 
6959  useGlobalCheapestInsertionExpensiveChainLns_ = 0;
6960  onChanged();
6961  return this;
6962  }
6963 
6964  private int useLocalCheapestInsertionExpensiveChainLns_ = 0;
6974  @java.lang.Override public int getUseLocalCheapestInsertionExpensiveChainLnsValue() {
6975  return useLocalCheapestInsertionExpensiveChainLns_;
6976  }
6988 
6989  useLocalCheapestInsertionExpensiveChainLns_ = value;
6990  onChanged();
6991  return this;
6992  }
7002  @java.lang.Override
7003  public com.google.ortools.util.OptionalBoolean getUseLocalCheapestInsertionExpensiveChainLns() {
7004  @SuppressWarnings("deprecation")
7005  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useLocalCheapestInsertionExpensiveChainLns_);
7006  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
7007  }
7018  public Builder setUseLocalCheapestInsertionExpensiveChainLns(com.google.ortools.util.OptionalBoolean value) {
7019  if (value == null) {
7020  throw new NullPointerException();
7021  }
7022 
7023  useLocalCheapestInsertionExpensiveChainLns_ = value.getNumber();
7024  onChanged();
7025  return this;
7026  }
7037 
7038  useLocalCheapestInsertionExpensiveChainLns_ = 0;
7039  onChanged();
7040  return this;
7041  }
7042 
7043  private int useGlobalCheapestInsertionCloseNodesLns_ = 0;
7055  @java.lang.Override public int getUseGlobalCheapestInsertionCloseNodesLnsValue() {
7056  return useGlobalCheapestInsertionCloseNodesLns_;
7057  }
7071 
7072  useGlobalCheapestInsertionCloseNodesLns_ = value;
7073  onChanged();
7074  return this;
7075  }
7087  @java.lang.Override
7088  public com.google.ortools.util.OptionalBoolean getUseGlobalCheapestInsertionCloseNodesLns() {
7089  @SuppressWarnings("deprecation")
7090  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useGlobalCheapestInsertionCloseNodesLns_);
7091  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
7092  }
7105  public Builder setUseGlobalCheapestInsertionCloseNodesLns(com.google.ortools.util.OptionalBoolean value) {
7106  if (value == null) {
7107  throw new NullPointerException();
7108  }
7109 
7110  useGlobalCheapestInsertionCloseNodesLns_ = value.getNumber();
7111  onChanged();
7112  return this;
7113  }
7126 
7127  useGlobalCheapestInsertionCloseNodesLns_ = 0;
7128  onChanged();
7129  return this;
7130  }
7131 
7132  private int useLocalCheapestInsertionCloseNodesLns_ = 0;
7142  @java.lang.Override public int getUseLocalCheapestInsertionCloseNodesLnsValue() {
7143  return useLocalCheapestInsertionCloseNodesLns_;
7144  }
7156 
7157  useLocalCheapestInsertionCloseNodesLns_ = value;
7158  onChanged();
7159  return this;
7160  }
7170  @java.lang.Override
7171  public com.google.ortools.util.OptionalBoolean getUseLocalCheapestInsertionCloseNodesLns() {
7172  @SuppressWarnings("deprecation")
7173  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useLocalCheapestInsertionCloseNodesLns_);
7174  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
7175  }
7186  public Builder setUseLocalCheapestInsertionCloseNodesLns(com.google.ortools.util.OptionalBoolean value) {
7187  if (value == null) {
7188  throw new NullPointerException();
7189  }
7190 
7191  useLocalCheapestInsertionCloseNodesLns_ = value.getNumber();
7192  onChanged();
7193  return this;
7194  }
7205 
7206  useLocalCheapestInsertionCloseNodesLns_ = 0;
7207  onChanged();
7208  return this;
7209  }
7210  @java.lang.Override
7212  final com.google.protobuf.UnknownFieldSet unknownFields) {
7213  return super.setUnknownFields(unknownFields);
7214  }
7215 
7216  @java.lang.Override
7218  final com.google.protobuf.UnknownFieldSet unknownFields) {
7219  return super.mergeUnknownFields(unknownFields);
7220  }
7221 
7222 
7223  // @@protoc_insertion_point(builder_scope:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
7224  }
7225 
7226  // @@protoc_insertion_point(class_scope:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
7227  private static final com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators DEFAULT_INSTANCE;
7228  static {
7229  DEFAULT_INSTANCE = new com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators();
7230  }
7231 
7232  public static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators getDefaultInstance() {
7233  return DEFAULT_INSTANCE;
7234  }
7235 
7236  private static final com.google.protobuf.Parser<LocalSearchNeighborhoodOperators>
7237  PARSER = new com.google.protobuf.AbstractParser<LocalSearchNeighborhoodOperators>() {
7238  @java.lang.Override
7239  public LocalSearchNeighborhoodOperators parsePartialFrom(
7240  com.google.protobuf.CodedInputStream input,
7241  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7242  throws com.google.protobuf.InvalidProtocolBufferException {
7243  return new LocalSearchNeighborhoodOperators(input, extensionRegistry);
7244  }
7245  };
7246 
7247  public static com.google.protobuf.Parser<LocalSearchNeighborhoodOperators> parser() {
7248  return PARSER;
7249  }
7250 
7251  @java.lang.Override
7252  public com.google.protobuf.Parser<LocalSearchNeighborhoodOperators> getParserForType() {
7253  return PARSER;
7254  }
7255 
7256  @java.lang.Override
7257  public com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators getDefaultInstanceForType() {
7258  return DEFAULT_INSTANCE;
7259  }
7260 
7261  }
7262 
7264  // @@protoc_insertion_point(interface_extends:operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters)
7265  com.google.protobuf.MessageOrBuilder {
7266 
7278 
7292  }
7300  public static final class ImprovementSearchLimitParameters extends
7301  com.google.protobuf.GeneratedMessageV3 implements
7302  // @@protoc_insertion_point(message_implements:operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters)
7304  private static final long serialVersionUID = 0L;
7305  // Use ImprovementSearchLimitParameters.newBuilder() to construct.
7306  private ImprovementSearchLimitParameters(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
7307  super(builder);
7308  }
7310  }
7311 
7312  @java.lang.Override
7313  @SuppressWarnings({"unused"})
7314  protected java.lang.Object newInstance(
7315  UnusedPrivateParameter unused) {
7316  return new ImprovementSearchLimitParameters();
7317  }
7318 
7319  @java.lang.Override
7320  public final com.google.protobuf.UnknownFieldSet
7322  return this.unknownFields;
7323  }
7325  com.google.protobuf.CodedInputStream input,
7326  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7327  throws com.google.protobuf.InvalidProtocolBufferException {
7328  this();
7329  if (extensionRegistry == null) {
7330  throw new java.lang.NullPointerException();
7331  }
7332  com.google.protobuf.UnknownFieldSet.Builder unknownFields =
7333  com.google.protobuf.UnknownFieldSet.newBuilder();
7334  try {
7335  boolean done = false;
7336  while (!done) {
7337  int tag = input.readTag();
7338  switch (tag) {
7339  case 0:
7340  done = true;
7341  break;
7342  case 305: {
7343 
7344  improvementRateCoefficient_ = input.readDouble();
7345  break;
7346  }
7347  case 312: {
7348 
7349  improvementRateSolutionsDistance_ = input.readInt32();
7350  break;
7351  }
7352  default: {
7353  if (!parseUnknownField(
7354  input, unknownFields, extensionRegistry, tag)) {
7355  done = true;
7356  }
7357  break;
7358  }
7359  }
7360  }
7361  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
7362  throw e.setUnfinishedMessage(this);
7363  } catch (java.io.IOException e) {
7364  throw new com.google.protobuf.InvalidProtocolBufferException(
7365  e).setUnfinishedMessage(this);
7366  } finally {
7367  this.unknownFields = unknownFields.build();
7368  makeExtensionsImmutable();
7369  }
7370  }
7371  public static final com.google.protobuf.Descriptors.Descriptor
7373  return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_ImprovementSearchLimitParameters_descriptor;
7374  }
7375 
7376  @java.lang.Override
7377  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
7379  return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_ImprovementSearchLimitParameters_fieldAccessorTable
7380  .ensureFieldAccessorsInitialized(
7381  com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.class, com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.Builder.class);
7382  }
7383 
7384  public static final int IMPROVEMENT_RATE_COEFFICIENT_FIELD_NUMBER = 38;
7385  private double improvementRateCoefficient_;
7396  @java.lang.Override
7398  return improvementRateCoefficient_;
7399  }
7400 
7402  private int improvementRateSolutionsDistance_;
7415  @java.lang.Override
7417  return improvementRateSolutionsDistance_;
7418  }
7419 
7420  private byte memoizedIsInitialized = -1;
7421  @java.lang.Override
7422  public final boolean isInitialized() {
7423  byte isInitialized = memoizedIsInitialized;
7424  if (isInitialized == 1) return true;
7425  if (isInitialized == 0) return false;
7426 
7427  memoizedIsInitialized = 1;
7428  return true;
7429  }
7430 
7431  @java.lang.Override
7432  public void writeTo(com.google.protobuf.CodedOutputStream output)
7433  throws java.io.IOException {
7434  if (improvementRateCoefficient_ != 0D) {
7435  output.writeDouble(38, improvementRateCoefficient_);
7436  }
7437  if (improvementRateSolutionsDistance_ != 0) {
7438  output.writeInt32(39, improvementRateSolutionsDistance_);
7439  }
7440  unknownFields.writeTo(output);
7441  }
7442 
7443  @java.lang.Override
7444  public int getSerializedSize() {
7445  int size = memoizedSize;
7446  if (size != -1) return size;
7447 
7448  size = 0;
7449  if (improvementRateCoefficient_ != 0D) {
7450  size += com.google.protobuf.CodedOutputStream
7451  .computeDoubleSize(38, improvementRateCoefficient_);
7452  }
7453  if (improvementRateSolutionsDistance_ != 0) {
7454  size += com.google.protobuf.CodedOutputStream
7455  .computeInt32Size(39, improvementRateSolutionsDistance_);
7456  }
7457  size += unknownFields.getSerializedSize();
7458  memoizedSize = size;
7459  return size;
7460  }
7461 
7462  @java.lang.Override
7463  public boolean equals(final java.lang.Object obj) {
7464  if (obj == this) {
7465  return true;
7466  }
7467  if (!(obj instanceof com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters)) {
7468  return super.equals(obj);
7469  }
7470  com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters other = (com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters) obj;
7471 
7472  if (java.lang.Double.doubleToLongBits(getImprovementRateCoefficient())
7473  != java.lang.Double.doubleToLongBits(
7474  other.getImprovementRateCoefficient())) return false;
7476  != other.getImprovementRateSolutionsDistance()) return false;
7477  if (!unknownFields.equals(other.unknownFields)) return false;
7478  return true;
7479  }
7480 
7481  @java.lang.Override
7482  public int hashCode() {
7483  if (memoizedHashCode != 0) {
7484  return memoizedHashCode;
7485  }
7486  int hash = 41;
7487  hash = (19 * hash) + getDescriptor().hashCode();
7488  hash = (37 * hash) + IMPROVEMENT_RATE_COEFFICIENT_FIELD_NUMBER;
7489  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7490  java.lang.Double.doubleToLongBits(getImprovementRateCoefficient()));
7492  hash = (53 * hash) + getImprovementRateSolutionsDistance();
7493  hash = (29 * hash) + unknownFields.hashCode();
7494  memoizedHashCode = hash;
7495  return hash;
7496  }
7497 
7498  public static com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters parseFrom(
7499  java.nio.ByteBuffer data)
7500  throws com.google.protobuf.InvalidProtocolBufferException {
7501  return PARSER.parseFrom(data);
7502  }
7503  public static com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters parseFrom(
7504  java.nio.ByteBuffer data,
7505  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7506  throws com.google.protobuf.InvalidProtocolBufferException {
7507  return PARSER.parseFrom(data, extensionRegistry);
7508  }
7509  public static com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters parseFrom(
7510  com.google.protobuf.ByteString data)
7511  throws com.google.protobuf.InvalidProtocolBufferException {
7512  return PARSER.parseFrom(data);
7513  }
7514  public static com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters parseFrom(
7515  com.google.protobuf.ByteString data,
7516  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7517  throws com.google.protobuf.InvalidProtocolBufferException {
7518  return PARSER.parseFrom(data, extensionRegistry);
7519  }
7520  public static com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters parseFrom(byte[] data)
7521  throws com.google.protobuf.InvalidProtocolBufferException {
7522  return PARSER.parseFrom(data);
7523  }
7524  public static com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters parseFrom(
7525  byte[] data,
7526  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7527  throws com.google.protobuf.InvalidProtocolBufferException {
7528  return PARSER.parseFrom(data, extensionRegistry);
7529  }
7530  public static com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters parseFrom(java.io.InputStream input)
7531  throws java.io.IOException {
7532  return com.google.protobuf.GeneratedMessageV3
7533  .parseWithIOException(PARSER, input);
7534  }
7535  public static com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters parseFrom(
7536  java.io.InputStream input,
7537  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7538  throws java.io.IOException {
7539  return com.google.protobuf.GeneratedMessageV3
7540  .parseWithIOException(PARSER, input, extensionRegistry);
7541  }
7542  public static com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters parseDelimitedFrom(java.io.InputStream input)
7543  throws java.io.IOException {
7544  return com.google.protobuf.GeneratedMessageV3
7545  .parseDelimitedWithIOException(PARSER, input);
7546  }
7547  public static com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters parseDelimitedFrom(
7548  java.io.InputStream input,
7549  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7550  throws java.io.IOException {
7551  return com.google.protobuf.GeneratedMessageV3
7552  .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
7553  }
7554  public static com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters parseFrom(
7555  com.google.protobuf.CodedInputStream input)
7556  throws java.io.IOException {
7557  return com.google.protobuf.GeneratedMessageV3
7558  .parseWithIOException(PARSER, input);
7559  }
7560  public static com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters parseFrom(
7561  com.google.protobuf.CodedInputStream input,
7562  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7563  throws java.io.IOException {
7564  return com.google.protobuf.GeneratedMessageV3
7565  .parseWithIOException(PARSER, input, extensionRegistry);
7566  }
7567 
7568  @java.lang.Override
7569  public Builder newBuilderForType() { return newBuilder(); }
7570  public static Builder newBuilder() {
7571  return DEFAULT_INSTANCE.toBuilder();
7572  }
7573  public static Builder newBuilder(com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters prototype) {
7574  return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
7575  }
7576  @java.lang.Override
7577  public Builder toBuilder() {
7578  return this == DEFAULT_INSTANCE
7579  ? new Builder() : new Builder().mergeFrom(this);
7580  }
7581 
7582  @java.lang.Override
7584  com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
7585  Builder builder = new Builder(parent);
7586  return builder;
7587  }
7595  public static final class Builder extends
7596  com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
7597  // @@protoc_insertion_point(builder_implements:operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters)
7598  com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParametersOrBuilder {
7599  public static final com.google.protobuf.Descriptors.Descriptor
7601  return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_ImprovementSearchLimitParameters_descriptor;
7602  }
7603 
7604  @java.lang.Override
7605  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
7607  return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_ImprovementSearchLimitParameters_fieldAccessorTable
7608  .ensureFieldAccessorsInitialized(
7609  com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.class, com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.Builder.class);
7610  }
7611 
7612  // Construct using com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.newBuilder()
7613  private Builder() {
7614  maybeForceBuilderInitialization();
7615  }
7616 
7617  private Builder(
7618  com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
7619  super(parent);
7620  maybeForceBuilderInitialization();
7621  }
7622  private void maybeForceBuilderInitialization() {
7623  if (com.google.protobuf.GeneratedMessageV3
7624  .alwaysUseFieldBuilders) {
7625  }
7626  }
7627  @java.lang.Override
7628  public Builder clear() {
7629  super.clear();
7630  improvementRateCoefficient_ = 0D;
7631 
7632  improvementRateSolutionsDistance_ = 0;
7633 
7634  return this;
7635  }
7636 
7637  @java.lang.Override
7638  public com.google.protobuf.Descriptors.Descriptor
7640  return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_ImprovementSearchLimitParameters_descriptor;
7641  }
7642 
7643  @java.lang.Override
7644  public com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters getDefaultInstanceForType() {
7645  return com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.getDefaultInstance();
7646  }
7647 
7648  @java.lang.Override
7649  public com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters build() {
7650  com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters result = buildPartial();
7651  if (!result.isInitialized()) {
7652  throw newUninitializedMessageException(result);
7653  }
7654  return result;
7655  }
7656 
7657  @java.lang.Override
7658  public com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters buildPartial() {
7659  com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters result = new com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters(this);
7660  result.improvementRateCoefficient_ = improvementRateCoefficient_;
7661  result.improvementRateSolutionsDistance_ = improvementRateSolutionsDistance_;
7662  onBuilt();
7663  return result;
7664  }
7665 
7666  @java.lang.Override
7667  public Builder clone() {
7668  return super.clone();
7669  }
7670  @java.lang.Override
7672  com.google.protobuf.Descriptors.FieldDescriptor field,
7673  java.lang.Object value) {
7674  return super.setField(field, value);
7675  }
7676  @java.lang.Override
7678  com.google.protobuf.Descriptors.FieldDescriptor field) {
7679  return super.clearField(field);
7680  }
7681  @java.lang.Override
7683  com.google.protobuf.Descriptors.OneofDescriptor oneof) {
7684  return super.clearOneof(oneof);
7685  }
7686  @java.lang.Override
7688  com.google.protobuf.Descriptors.FieldDescriptor field,
7689  int index, java.lang.Object value) {
7690  return super.setRepeatedField(field, index, value);
7691  }
7692  @java.lang.Override
7694  com.google.protobuf.Descriptors.FieldDescriptor field,
7695  java.lang.Object value) {
7696  return super.addRepeatedField(field, value);
7697  }
7698  @java.lang.Override
7699  public Builder mergeFrom(com.google.protobuf.Message other) {
7700  if (other instanceof com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters) {
7701  return mergeFrom((com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters)other);
7702  } else {
7703  super.mergeFrom(other);
7704  return this;
7705  }
7706  }
7707 
7708  public Builder mergeFrom(com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters other) {
7709  if (other == com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.getDefaultInstance()) return this;
7710  if (other.getImprovementRateCoefficient() != 0D) {
7711  setImprovementRateCoefficient(other.getImprovementRateCoefficient());
7712  }
7713  if (other.getImprovementRateSolutionsDistance() != 0) {
7714  setImprovementRateSolutionsDistance(other.getImprovementRateSolutionsDistance());
7715  }
7716  this.mergeUnknownFields(other.unknownFields);
7717  onChanged();
7718  return this;
7719  }
7720 
7721  @java.lang.Override
7722  public final boolean isInitialized() {
7723  return true;
7724  }
7725 
7726  @java.lang.Override
7728  com.google.protobuf.CodedInputStream input,
7729  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7730  throws java.io.IOException {
7731  com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters parsedMessage = null;
7732  try {
7733  parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
7734  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
7735  parsedMessage = (com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters) e.getUnfinishedMessage();
7736  throw e.unwrapIOException();
7737  } finally {
7738  if (parsedMessage != null) {
7739  mergeFrom(parsedMessage);
7740  }
7741  }
7742  return this;
7743  }
7744 
7745  private double improvementRateCoefficient_ ;
7756  @java.lang.Override
7758  return improvementRateCoefficient_;
7759  }
7772 
7773  improvementRateCoefficient_ = value;
7774  onChanged();
7775  return this;
7776  }
7788 
7789  improvementRateCoefficient_ = 0D;
7790  onChanged();
7791  return this;
7792  }
7793 
7794  private int improvementRateSolutionsDistance_ ;
7807  @java.lang.Override
7809  return improvementRateSolutionsDistance_;
7810  }
7825 
7826  improvementRateSolutionsDistance_ = value;
7827  onChanged();
7828  return this;
7829  }
7843 
7844  improvementRateSolutionsDistance_ = 0;
7845  onChanged();
7846  return this;
7847  }
7848  @java.lang.Override
7850  final com.google.protobuf.UnknownFieldSet unknownFields) {
7851  return super.setUnknownFields(unknownFields);
7852  }
7853 
7854  @java.lang.Override
7856  final com.google.protobuf.UnknownFieldSet unknownFields) {
7857  return super.mergeUnknownFields(unknownFields);
7858  }
7859 
7860 
7861  // @@protoc_insertion_point(builder_scope:operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters)
7862  }
7863 
7864  // @@protoc_insertion_point(class_scope:operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters)
7865  private static final com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters DEFAULT_INSTANCE;
7866  static {
7867  DEFAULT_INSTANCE = new com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters();
7868  }
7869 
7870  public static com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters getDefaultInstance() {
7871  return DEFAULT_INSTANCE;
7872  }
7873 
7874  private static final com.google.protobuf.Parser<ImprovementSearchLimitParameters>
7875  PARSER = new com.google.protobuf.AbstractParser<ImprovementSearchLimitParameters>() {
7876  @java.lang.Override
7877  public ImprovementSearchLimitParameters parsePartialFrom(
7878  com.google.protobuf.CodedInputStream input,
7879  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7880  throws com.google.protobuf.InvalidProtocolBufferException {
7881  return new ImprovementSearchLimitParameters(input, extensionRegistry);
7882  }
7883  };
7884 
7885  public static com.google.protobuf.Parser<ImprovementSearchLimitParameters> parser() {
7886  return PARSER;
7887  }
7888 
7889  @java.lang.Override
7890  public com.google.protobuf.Parser<ImprovementSearchLimitParameters> getParserForType() {
7891  return PARSER;
7892  }
7893 
7894  @java.lang.Override
7895  public com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters getDefaultInstanceForType() {
7896  return DEFAULT_INSTANCE;
7897  }
7898 
7899  }
7900 
7901  public static final int FIRST_SOLUTION_STRATEGY_FIELD_NUMBER = 1;
7902  private int firstSolutionStrategy_;
7911  @java.lang.Override public int getFirstSolutionStrategyValue() {
7912  return firstSolutionStrategy_;
7913  }
7922  @java.lang.Override public com.google.ortools.constraintsolver.FirstSolutionStrategy.Value getFirstSolutionStrategy() {
7923  @SuppressWarnings("deprecation")
7924  com.google.ortools.constraintsolver.FirstSolutionStrategy.Value result = com.google.ortools.constraintsolver.FirstSolutionStrategy.Value.valueOf(firstSolutionStrategy_);
7925  return result == null ? com.google.ortools.constraintsolver.FirstSolutionStrategy.Value.UNRECOGNIZED : result;
7926  }
7927 
7929  private boolean useUnfilteredFirstSolutionStrategy_;
7940  @java.lang.Override
7942  return useUnfilteredFirstSolutionStrategy_;
7943  }
7944 
7945  public static final int SAVINGS_NEIGHBORS_RATIO_FIELD_NUMBER = 14;
7946  private double savingsNeighborsRatio_;
7957  @java.lang.Override
7958  public double getSavingsNeighborsRatio() {
7959  return savingsNeighborsRatio_;
7960  }
7961 
7962  public static final int SAVINGS_MAX_MEMORY_USAGE_BYTES_FIELD_NUMBER = 23;
7963  private double savingsMaxMemoryUsageBytes_;
7977  @java.lang.Override
7979  return savingsMaxMemoryUsageBytes_;
7980  }
7981 
7982  public static final int SAVINGS_ADD_REVERSE_ARCS_FIELD_NUMBER = 15;
7983  private boolean savingsAddReverseArcs_;
7993  @java.lang.Override
7994  public boolean getSavingsAddReverseArcs() {
7995  return savingsAddReverseArcs_;
7996  }
7997 
7998  public static final int SAVINGS_ARC_COEFFICIENT_FIELD_NUMBER = 18;
7999  private double savingsArcCoefficient_;
8012  @java.lang.Override
8013  public double getSavingsArcCoefficient() {
8014  return savingsArcCoefficient_;
8015  }
8016 
8017  public static final int SAVINGS_PARALLEL_ROUTES_FIELD_NUMBER = 19;
8018  private boolean savingsParallelRoutes_;
8027  @java.lang.Override
8028  public boolean getSavingsParallelRoutes() {
8029  return savingsParallelRoutes_;
8030  }
8031 
8033  private double cheapestInsertionFarthestSeedsRatio_;
8044  @java.lang.Override
8046  return cheapestInsertionFarthestSeedsRatio_;
8047  }
8048 
8050  private double cheapestInsertionFirstSolutionNeighborsRatio_;
8072  @java.lang.Override
8074  return cheapestInsertionFirstSolutionNeighborsRatio_;
8075  }
8076 
8078  private int cheapestInsertionFirstSolutionMinNeighbors_;
8083  @java.lang.Override
8085  return cheapestInsertionFirstSolutionMinNeighbors_;
8086  }
8087 
8089  private double cheapestInsertionLsOperatorNeighborsRatio_;
8101  @java.lang.Override
8103  return cheapestInsertionLsOperatorNeighborsRatio_;
8104  }
8105 
8107  private int cheapestInsertionLsOperatorMinNeighbors_;
8112  @java.lang.Override
8114  return cheapestInsertionLsOperatorMinNeighbors_;
8115  }
8116 
8118  private boolean cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_;
8128  @java.lang.Override
8130  return cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_;
8131  }
8132 
8134  private boolean cheapestInsertionAddUnperformedEntries_;
8144  @java.lang.Override
8146  return cheapestInsertionAddUnperformedEntries_;
8147  }
8148 
8150  private boolean christofidesUseMinimumMatching_;
8160  @java.lang.Override
8162  return christofidesUseMinimumMatching_;
8163  }
8164 
8165  public static final int LOCAL_SEARCH_OPERATORS_FIELD_NUMBER = 3;
8166  private com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators localSearchOperators_;
8171  @java.lang.Override
8172  public boolean hasLocalSearchOperators() {
8173  return localSearchOperators_ != null;
8174  }
8179  @java.lang.Override
8180  public com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators getLocalSearchOperators() {
8181  return localSearchOperators_ == null ? com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.getDefaultInstance() : localSearchOperators_;
8182  }
8186  @java.lang.Override
8187  public com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder getLocalSearchOperatorsOrBuilder() {
8188  return getLocalSearchOperators();
8189  }
8190 
8192  private boolean useMultiArmedBanditConcatenateOperators_;
8203  @java.lang.Override
8205  return useMultiArmedBanditConcatenateOperators_;
8206  }
8207 
8209  private double multiArmedBanditCompoundOperatorMemoryCoefficient_;
8221  @java.lang.Override
8223  return multiArmedBanditCompoundOperatorMemoryCoefficient_;
8224  }
8225 
8227  private double multiArmedBanditCompoundOperatorExplorationCoefficient_;
8238  @java.lang.Override
8240  return multiArmedBanditCompoundOperatorExplorationCoefficient_;
8241  }
8242 
8244  private int relocateExpensiveChainNumArcsToConsider_;
8259  @java.lang.Override
8261  return relocateExpensiveChainNumArcsToConsider_;
8262  }
8263 
8265  private int heuristicExpensiveChainLnsNumArcsToConsider_;
8275  @java.lang.Override
8277  return heuristicExpensiveChainLnsNumArcsToConsider_;
8278  }
8279 
8281  private int heuristicCloseNodesLnsNumNodes_;
8291  @java.lang.Override
8293  return heuristicCloseNodesLnsNumNodes_;
8294  }
8295 
8296  public static final int LOCAL_SEARCH_METAHEURISTIC_FIELD_NUMBER = 4;
8297  private int localSearchMetaheuristic_;
8306  @java.lang.Override public int getLocalSearchMetaheuristicValue() {
8307  return localSearchMetaheuristic_;
8308  }
8317  @java.lang.Override public com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value getLocalSearchMetaheuristic() {
8318  @SuppressWarnings("deprecation")
8319  com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value result = com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value.valueOf(localSearchMetaheuristic_);
8320  return result == null ? com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value.UNRECOGNIZED : result;
8321  }
8322 
8324  private double guidedLocalSearchLambdaCoefficient_;
8336  @java.lang.Override
8338  return guidedLocalSearchLambdaCoefficient_;
8339  }
8340 
8341  public static final int USE_DEPTH_FIRST_SEARCH_FIELD_NUMBER = 6;
8342  private boolean useDepthFirstSearch_;
8353  @java.lang.Override
8354  public boolean getUseDepthFirstSearch() {
8355  return useDepthFirstSearch_;
8356  }
8357 
8358  public static final int USE_CP_FIELD_NUMBER = 28;
8359  private int useCp_;
8370  @java.lang.Override public int getUseCpValue() {
8371  return useCp_;
8372  }
8383  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseCp() {
8384  @SuppressWarnings("deprecation")
8385  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useCp_);
8386  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
8387  }
8388 
8389  public static final int USE_CP_SAT_FIELD_NUMBER = 27;
8390  private int useCpSat_;
8402  @java.lang.Override public int getUseCpSatValue() {
8403  return useCpSat_;
8404  }
8416  @java.lang.Override public com.google.ortools.util.OptionalBoolean getUseCpSat() {
8417  @SuppressWarnings("deprecation")
8418  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useCpSat_);
8419  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
8420  }
8421 
8422  public static final int CONTINUOUS_SCHEDULING_SOLVER_FIELD_NUMBER = 33;
8423  private int continuousSchedulingSolver_;
8428  @java.lang.Override public int getContinuousSchedulingSolverValue() {
8429  return continuousSchedulingSolver_;
8430  }
8435  @java.lang.Override public com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver getContinuousSchedulingSolver() {
8436  @SuppressWarnings("deprecation")
8437  com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver result = com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.valueOf(continuousSchedulingSolver_);
8438  return result == null ? com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.UNRECOGNIZED : result;
8439  }
8440 
8441  public static final int MIXED_INTEGER_SCHEDULING_SOLVER_FIELD_NUMBER = 34;
8442  private int mixedIntegerSchedulingSolver_;
8447  @java.lang.Override public int getMixedIntegerSchedulingSolverValue() {
8448  return mixedIntegerSchedulingSolver_;
8449  }
8454  @java.lang.Override public com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver getMixedIntegerSchedulingSolver() {
8455  @SuppressWarnings("deprecation")
8456  com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver result = com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.valueOf(mixedIntegerSchedulingSolver_);
8457  return result == null ? com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.UNRECOGNIZED : result;
8458  }
8459 
8460  public static final int OPTIMIZATION_STEP_FIELD_NUMBER = 7;
8461  private double optimizationStep_;
8472  @java.lang.Override
8473  public double getOptimizationStep() {
8474  return optimizationStep_;
8475  }
8476 
8477  public static final int NUMBER_OF_SOLUTIONS_TO_COLLECT_FIELD_NUMBER = 17;
8478  private int numberOfSolutionsToCollect_;
8488  @java.lang.Override
8490  return numberOfSolutionsToCollect_;
8491  }
8492 
8493  public static final int SOLUTION_LIMIT_FIELD_NUMBER = 8;
8494  private long solutionLimit_;
8505  @java.lang.Override
8506  public long getSolutionLimit() {
8507  return solutionLimit_;
8508  }
8509 
8510  public static final int TIME_LIMIT_FIELD_NUMBER = 9;
8511  private com.google.protobuf.Duration timeLimit_;
8520  @java.lang.Override
8521  public boolean hasTimeLimit() {
8522  return timeLimit_ != null;
8523  }
8532  @java.lang.Override
8533  public com.google.protobuf.Duration getTimeLimit() {
8534  return timeLimit_ == null ? com.google.protobuf.Duration.getDefaultInstance() : timeLimit_;
8535  }
8543  @java.lang.Override
8544  public com.google.protobuf.DurationOrBuilder getTimeLimitOrBuilder() {
8545  return getTimeLimit();
8546  }
8547 
8548  public static final int LNS_TIME_LIMIT_FIELD_NUMBER = 10;
8549  private com.google.protobuf.Duration lnsTimeLimit_;
8559  @java.lang.Override
8560  public boolean hasLnsTimeLimit() {
8561  return lnsTimeLimit_ != null;
8562  }
8572  @java.lang.Override
8573  public com.google.protobuf.Duration getLnsTimeLimit() {
8574  return lnsTimeLimit_ == null ? com.google.protobuf.Duration.getDefaultInstance() : lnsTimeLimit_;
8575  }
8584  @java.lang.Override
8585  public com.google.protobuf.DurationOrBuilder getLnsTimeLimitOrBuilder() {
8586  return getLnsTimeLimit();
8587  }
8588 
8589  public static final int IMPROVEMENT_LIMIT_PARAMETERS_FIELD_NUMBER = 37;
8590  private com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters improvementLimitParameters_;
8600  @java.lang.Override
8602  return improvementLimitParameters_ != null;
8603  }
8613  @java.lang.Override
8614  public com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters getImprovementLimitParameters() {
8615  return improvementLimitParameters_ == null ? com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.getDefaultInstance() : improvementLimitParameters_;
8616  }
8625  @java.lang.Override
8626  public com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParametersOrBuilder getImprovementLimitParametersOrBuilder() {
8628  }
8629 
8630  public static final int USE_FULL_PROPAGATION_FIELD_NUMBER = 11;
8631  private boolean useFullPropagation_;
8648  @java.lang.Override
8649  public boolean getUseFullPropagation() {
8650  return useFullPropagation_;
8651  }
8652 
8653  public static final int LOG_SEARCH_FIELD_NUMBER = 13;
8654  private boolean logSearch_;
8674  @java.lang.Override
8675  public boolean getLogSearch() {
8676  return logSearch_;
8677  }
8678 
8679  public static final int LOG_COST_SCALING_FACTOR_FIELD_NUMBER = 22;
8680  private double logCostScalingFactor_;
8690  @java.lang.Override
8691  public double getLogCostScalingFactor() {
8692  return logCostScalingFactor_;
8693  }
8694 
8695  public static final int LOG_COST_OFFSET_FIELD_NUMBER = 29;
8696  private double logCostOffset_;
8701  @java.lang.Override
8702  public double getLogCostOffset() {
8703  return logCostOffset_;
8704  }
8705 
8706  public static final int LOG_TAG_FIELD_NUMBER = 36;
8707  private volatile java.lang.Object logTag_;
8717  @java.lang.Override
8718  public java.lang.String getLogTag() {
8719  java.lang.Object ref = logTag_;
8720  if (ref instanceof java.lang.String) {
8721  return (java.lang.String) ref;
8722  } else {
8723  com.google.protobuf.ByteString bs =
8724  (com.google.protobuf.ByteString) ref;
8725  java.lang.String s = bs.toStringUtf8();
8726  logTag_ = s;
8727  return s;
8728  }
8729  }
8739  @java.lang.Override
8740  public com.google.protobuf.ByteString
8742  java.lang.Object ref = logTag_;
8743  if (ref instanceof java.lang.String) {
8744  com.google.protobuf.ByteString b =
8745  com.google.protobuf.ByteString.copyFromUtf8(
8746  (java.lang.String) ref);
8747  logTag_ = b;
8748  return b;
8749  } else {
8750  return (com.google.protobuf.ByteString) ref;
8751  }
8752  }
8753 
8754  private byte memoizedIsInitialized = -1;
8755  @java.lang.Override
8756  public final boolean isInitialized() {
8757  byte isInitialized = memoizedIsInitialized;
8758  if (isInitialized == 1) return true;
8759  if (isInitialized == 0) return false;
8760 
8761  memoizedIsInitialized = 1;
8762  return true;
8763  }
8764 
8765  @java.lang.Override
8766  public void writeTo(com.google.protobuf.CodedOutputStream output)
8767  throws java.io.IOException {
8768  if (firstSolutionStrategy_ != com.google.ortools.constraintsolver.FirstSolutionStrategy.Value.UNSET.getNumber()) {
8769  output.writeEnum(1, firstSolutionStrategy_);
8770  }
8771  if (useUnfilteredFirstSolutionStrategy_ != false) {
8772  output.writeBool(2, useUnfilteredFirstSolutionStrategy_);
8773  }
8774  if (localSearchOperators_ != null) {
8775  output.writeMessage(3, getLocalSearchOperators());
8776  }
8777  if (localSearchMetaheuristic_ != com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value.UNSET.getNumber()) {
8778  output.writeEnum(4, localSearchMetaheuristic_);
8779  }
8780  if (guidedLocalSearchLambdaCoefficient_ != 0D) {
8781  output.writeDouble(5, guidedLocalSearchLambdaCoefficient_);
8782  }
8783  if (useDepthFirstSearch_ != false) {
8784  output.writeBool(6, useDepthFirstSearch_);
8785  }
8786  if (optimizationStep_ != 0D) {
8787  output.writeDouble(7, optimizationStep_);
8788  }
8789  if (solutionLimit_ != 0L) {
8790  output.writeInt64(8, solutionLimit_);
8791  }
8792  if (timeLimit_ != null) {
8793  output.writeMessage(9, getTimeLimit());
8794  }
8795  if (lnsTimeLimit_ != null) {
8796  output.writeMessage(10, getLnsTimeLimit());
8797  }
8798  if (useFullPropagation_ != false) {
8799  output.writeBool(11, useFullPropagation_);
8800  }
8801  if (logSearch_ != false) {
8802  output.writeBool(13, logSearch_);
8803  }
8804  if (savingsNeighborsRatio_ != 0D) {
8805  output.writeDouble(14, savingsNeighborsRatio_);
8806  }
8807  if (savingsAddReverseArcs_ != false) {
8808  output.writeBool(15, savingsAddReverseArcs_);
8809  }
8810  if (cheapestInsertionFarthestSeedsRatio_ != 0D) {
8811  output.writeDouble(16, cheapestInsertionFarthestSeedsRatio_);
8812  }
8813  if (numberOfSolutionsToCollect_ != 0) {
8814  output.writeInt32(17, numberOfSolutionsToCollect_);
8815  }
8816  if (savingsArcCoefficient_ != 0D) {
8817  output.writeDouble(18, savingsArcCoefficient_);
8818  }
8819  if (savingsParallelRoutes_ != false) {
8820  output.writeBool(19, savingsParallelRoutes_);
8821  }
8822  if (relocateExpensiveChainNumArcsToConsider_ != 0) {
8823  output.writeInt32(20, relocateExpensiveChainNumArcsToConsider_);
8824  }
8825  if (cheapestInsertionFirstSolutionNeighborsRatio_ != 0D) {
8826  output.writeDouble(21, cheapestInsertionFirstSolutionNeighborsRatio_);
8827  }
8828  if (logCostScalingFactor_ != 0D) {
8829  output.writeDouble(22, logCostScalingFactor_);
8830  }
8831  if (savingsMaxMemoryUsageBytes_ != 0D) {
8832  output.writeDouble(23, savingsMaxMemoryUsageBytes_);
8833  }
8834  if (useCpSat_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
8835  output.writeEnum(27, useCpSat_);
8836  }
8837  if (useCp_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
8838  output.writeEnum(28, useCp_);
8839  }
8840  if (logCostOffset_ != 0D) {
8841  output.writeDouble(29, logCostOffset_);
8842  }
8843  if (christofidesUseMinimumMatching_ != false) {
8844  output.writeBool(30, christofidesUseMinimumMatching_);
8845  }
8846  if (cheapestInsertionLsOperatorNeighborsRatio_ != 0D) {
8847  output.writeDouble(31, cheapestInsertionLsOperatorNeighborsRatio_);
8848  }
8849  if (heuristicExpensiveChainLnsNumArcsToConsider_ != 0) {
8850  output.writeInt32(32, heuristicExpensiveChainLnsNumArcsToConsider_);
8851  }
8852  if (continuousSchedulingSolver_ != com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.UNSET.getNumber()) {
8853  output.writeEnum(33, continuousSchedulingSolver_);
8854  }
8855  if (mixedIntegerSchedulingSolver_ != com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.UNSET.getNumber()) {
8856  output.writeEnum(34, mixedIntegerSchedulingSolver_);
8857  }
8858  if (heuristicCloseNodesLnsNumNodes_ != 0) {
8859  output.writeInt32(35, heuristicCloseNodesLnsNumNodes_);
8860  }
8861  if (!getLogTagBytes().isEmpty()) {
8862  com.google.protobuf.GeneratedMessageV3.writeString(output, 36, logTag_);
8863  }
8864  if (improvementLimitParameters_ != null) {
8865  output.writeMessage(37, getImprovementLimitParameters());
8866  }
8867  if (cheapestInsertionAddUnperformedEntries_ != false) {
8868  output.writeBool(40, cheapestInsertionAddUnperformedEntries_);
8869  }
8870  if (useMultiArmedBanditConcatenateOperators_ != false) {
8871  output.writeBool(41, useMultiArmedBanditConcatenateOperators_);
8872  }
8873  if (multiArmedBanditCompoundOperatorMemoryCoefficient_ != 0D) {
8874  output.writeDouble(42, multiArmedBanditCompoundOperatorMemoryCoefficient_);
8875  }
8876  if (multiArmedBanditCompoundOperatorExplorationCoefficient_ != 0D) {
8877  output.writeDouble(43, multiArmedBanditCompoundOperatorExplorationCoefficient_);
8878  }
8879  if (cheapestInsertionFirstSolutionMinNeighbors_ != 0) {
8880  output.writeInt32(44, cheapestInsertionFirstSolutionMinNeighbors_);
8881  }
8882  if (cheapestInsertionLsOperatorMinNeighbors_ != 0) {
8883  output.writeInt32(45, cheapestInsertionLsOperatorMinNeighbors_);
8884  }
8885  if (cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_ != false) {
8886  output.writeBool(46, cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_);
8887  }
8888  unknownFields.writeTo(output);
8889  }
8890 
8891  @java.lang.Override
8892  public int getSerializedSize() {
8893  int size = memoizedSize;
8894  if (size != -1) return size;
8895 
8896  size = 0;
8897  if (firstSolutionStrategy_ != com.google.ortools.constraintsolver.FirstSolutionStrategy.Value.UNSET.getNumber()) {
8898  size += com.google.protobuf.CodedOutputStream
8899  .computeEnumSize(1, firstSolutionStrategy_);
8900  }
8901  if (useUnfilteredFirstSolutionStrategy_ != false) {
8902  size += com.google.protobuf.CodedOutputStream
8903  .computeBoolSize(2, useUnfilteredFirstSolutionStrategy_);
8904  }
8905  if (localSearchOperators_ != null) {
8906  size += com.google.protobuf.CodedOutputStream
8907  .computeMessageSize(3, getLocalSearchOperators());
8908  }
8909  if (localSearchMetaheuristic_ != com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value.UNSET.getNumber()) {
8910  size += com.google.protobuf.CodedOutputStream
8911  .computeEnumSize(4, localSearchMetaheuristic_);
8912  }
8913  if (guidedLocalSearchLambdaCoefficient_ != 0D) {
8914  size += com.google.protobuf.CodedOutputStream
8915  .computeDoubleSize(5, guidedLocalSearchLambdaCoefficient_);
8916  }
8917  if (useDepthFirstSearch_ != false) {
8918  size += com.google.protobuf.CodedOutputStream
8919  .computeBoolSize(6, useDepthFirstSearch_);
8920  }
8921  if (optimizationStep_ != 0D) {
8922  size += com.google.protobuf.CodedOutputStream
8923  .computeDoubleSize(7, optimizationStep_);
8924  }
8925  if (solutionLimit_ != 0L) {
8926  size += com.google.protobuf.CodedOutputStream
8927  .computeInt64Size(8, solutionLimit_);
8928  }
8929  if (timeLimit_ != null) {
8930  size += com.google.protobuf.CodedOutputStream
8931  .computeMessageSize(9, getTimeLimit());
8932  }
8933  if (lnsTimeLimit_ != null) {
8934  size += com.google.protobuf.CodedOutputStream
8935  .computeMessageSize(10, getLnsTimeLimit());
8936  }
8937  if (useFullPropagation_ != false) {
8938  size += com.google.protobuf.CodedOutputStream
8939  .computeBoolSize(11, useFullPropagation_);
8940  }
8941  if (logSearch_ != false) {
8942  size += com.google.protobuf.CodedOutputStream
8943  .computeBoolSize(13, logSearch_);
8944  }
8945  if (savingsNeighborsRatio_ != 0D) {
8946  size += com.google.protobuf.CodedOutputStream
8947  .computeDoubleSize(14, savingsNeighborsRatio_);
8948  }
8949  if (savingsAddReverseArcs_ != false) {
8950  size += com.google.protobuf.CodedOutputStream
8951  .computeBoolSize(15, savingsAddReverseArcs_);
8952  }
8953  if (cheapestInsertionFarthestSeedsRatio_ != 0D) {
8954  size += com.google.protobuf.CodedOutputStream
8955  .computeDoubleSize(16, cheapestInsertionFarthestSeedsRatio_);
8956  }
8957  if (numberOfSolutionsToCollect_ != 0) {
8958  size += com.google.protobuf.CodedOutputStream
8959  .computeInt32Size(17, numberOfSolutionsToCollect_);
8960  }
8961  if (savingsArcCoefficient_ != 0D) {
8962  size += com.google.protobuf.CodedOutputStream
8963  .computeDoubleSize(18, savingsArcCoefficient_);
8964  }
8965  if (savingsParallelRoutes_ != false) {
8966  size += com.google.protobuf.CodedOutputStream
8967  .computeBoolSize(19, savingsParallelRoutes_);
8968  }
8969  if (relocateExpensiveChainNumArcsToConsider_ != 0) {
8970  size += com.google.protobuf.CodedOutputStream
8971  .computeInt32Size(20, relocateExpensiveChainNumArcsToConsider_);
8972  }
8973  if (cheapestInsertionFirstSolutionNeighborsRatio_ != 0D) {
8974  size += com.google.protobuf.CodedOutputStream
8975  .computeDoubleSize(21, cheapestInsertionFirstSolutionNeighborsRatio_);
8976  }
8977  if (logCostScalingFactor_ != 0D) {
8978  size += com.google.protobuf.CodedOutputStream
8979  .computeDoubleSize(22, logCostScalingFactor_);
8980  }
8981  if (savingsMaxMemoryUsageBytes_ != 0D) {
8982  size += com.google.protobuf.CodedOutputStream
8983  .computeDoubleSize(23, savingsMaxMemoryUsageBytes_);
8984  }
8985  if (useCpSat_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
8986  size += com.google.protobuf.CodedOutputStream
8987  .computeEnumSize(27, useCpSat_);
8988  }
8989  if (useCp_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
8990  size += com.google.protobuf.CodedOutputStream
8991  .computeEnumSize(28, useCp_);
8992  }
8993  if (logCostOffset_ != 0D) {
8994  size += com.google.protobuf.CodedOutputStream
8995  .computeDoubleSize(29, logCostOffset_);
8996  }
8997  if (christofidesUseMinimumMatching_ != false) {
8998  size += com.google.protobuf.CodedOutputStream
8999  .computeBoolSize(30, christofidesUseMinimumMatching_);
9000  }
9001  if (cheapestInsertionLsOperatorNeighborsRatio_ != 0D) {
9002  size += com.google.protobuf.CodedOutputStream
9003  .computeDoubleSize(31, cheapestInsertionLsOperatorNeighborsRatio_);
9004  }
9005  if (heuristicExpensiveChainLnsNumArcsToConsider_ != 0) {
9006  size += com.google.protobuf.CodedOutputStream
9007  .computeInt32Size(32, heuristicExpensiveChainLnsNumArcsToConsider_);
9008  }
9009  if (continuousSchedulingSolver_ != com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.UNSET.getNumber()) {
9010  size += com.google.protobuf.CodedOutputStream
9011  .computeEnumSize(33, continuousSchedulingSolver_);
9012  }
9013  if (mixedIntegerSchedulingSolver_ != com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.UNSET.getNumber()) {
9014  size += com.google.protobuf.CodedOutputStream
9015  .computeEnumSize(34, mixedIntegerSchedulingSolver_);
9016  }
9017  if (heuristicCloseNodesLnsNumNodes_ != 0) {
9018  size += com.google.protobuf.CodedOutputStream
9019  .computeInt32Size(35, heuristicCloseNodesLnsNumNodes_);
9020  }
9021  if (!getLogTagBytes().isEmpty()) {
9022  size += com.google.protobuf.GeneratedMessageV3.computeStringSize(36, logTag_);
9023  }
9024  if (improvementLimitParameters_ != null) {
9025  size += com.google.protobuf.CodedOutputStream
9026  .computeMessageSize(37, getImprovementLimitParameters());
9027  }
9028  if (cheapestInsertionAddUnperformedEntries_ != false) {
9029  size += com.google.protobuf.CodedOutputStream
9030  .computeBoolSize(40, cheapestInsertionAddUnperformedEntries_);
9031  }
9032  if (useMultiArmedBanditConcatenateOperators_ != false) {
9033  size += com.google.protobuf.CodedOutputStream
9034  .computeBoolSize(41, useMultiArmedBanditConcatenateOperators_);
9035  }
9036  if (multiArmedBanditCompoundOperatorMemoryCoefficient_ != 0D) {
9037  size += com.google.protobuf.CodedOutputStream
9038  .computeDoubleSize(42, multiArmedBanditCompoundOperatorMemoryCoefficient_);
9039  }
9040  if (multiArmedBanditCompoundOperatorExplorationCoefficient_ != 0D) {
9041  size += com.google.protobuf.CodedOutputStream
9042  .computeDoubleSize(43, multiArmedBanditCompoundOperatorExplorationCoefficient_);
9043  }
9044  if (cheapestInsertionFirstSolutionMinNeighbors_ != 0) {
9045  size += com.google.protobuf.CodedOutputStream
9046  .computeInt32Size(44, cheapestInsertionFirstSolutionMinNeighbors_);
9047  }
9048  if (cheapestInsertionLsOperatorMinNeighbors_ != 0) {
9049  size += com.google.protobuf.CodedOutputStream
9050  .computeInt32Size(45, cheapestInsertionLsOperatorMinNeighbors_);
9051  }
9052  if (cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_ != false) {
9053  size += com.google.protobuf.CodedOutputStream
9054  .computeBoolSize(46, cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_);
9055  }
9056  size += unknownFields.getSerializedSize();
9057  memoizedSize = size;
9058  return size;
9059  }
9060 
9061  @java.lang.Override
9062  public boolean equals(final java.lang.Object obj) {
9063  if (obj == this) {
9064  return true;
9065  }
9066  if (!(obj instanceof com.google.ortools.constraintsolver.RoutingSearchParameters)) {
9067  return super.equals(obj);
9068  }
9069  com.google.ortools.constraintsolver.RoutingSearchParameters other = (com.google.ortools.constraintsolver.RoutingSearchParameters) obj;
9070 
9071  if (firstSolutionStrategy_ != other.firstSolutionStrategy_) return false;
9073  != other.getUseUnfilteredFirstSolutionStrategy()) return false;
9074  if (java.lang.Double.doubleToLongBits(getSavingsNeighborsRatio())
9075  != java.lang.Double.doubleToLongBits(
9076  other.getSavingsNeighborsRatio())) return false;
9077  if (java.lang.Double.doubleToLongBits(getSavingsMaxMemoryUsageBytes())
9078  != java.lang.Double.doubleToLongBits(
9079  other.getSavingsMaxMemoryUsageBytes())) return false;
9081  != other.getSavingsAddReverseArcs()) return false;
9082  if (java.lang.Double.doubleToLongBits(getSavingsArcCoefficient())
9083  != java.lang.Double.doubleToLongBits(
9084  other.getSavingsArcCoefficient())) return false;
9086  != other.getSavingsParallelRoutes()) return false;
9087  if (java.lang.Double.doubleToLongBits(getCheapestInsertionFarthestSeedsRatio())
9088  != java.lang.Double.doubleToLongBits(
9089  other.getCheapestInsertionFarthestSeedsRatio())) return false;
9090  if (java.lang.Double.doubleToLongBits(getCheapestInsertionFirstSolutionNeighborsRatio())
9091  != java.lang.Double.doubleToLongBits(
9092  other.getCheapestInsertionFirstSolutionNeighborsRatio())) return false;
9094  != other.getCheapestInsertionFirstSolutionMinNeighbors()) return false;
9095  if (java.lang.Double.doubleToLongBits(getCheapestInsertionLsOperatorNeighborsRatio())
9096  != java.lang.Double.doubleToLongBits(
9097  other.getCheapestInsertionLsOperatorNeighborsRatio())) return false;
9099  != other.getCheapestInsertionLsOperatorMinNeighbors()) return false;
9101  != other.getCheapestInsertionFirstSolutionUseNeighborsRatioForInitialization()) return false;
9103  != other.getCheapestInsertionAddUnperformedEntries()) return false;
9105  != other.getChristofidesUseMinimumMatching()) return false;
9106  if (hasLocalSearchOperators() != other.hasLocalSearchOperators()) return false;
9107  if (hasLocalSearchOperators()) {
9109  .equals(other.getLocalSearchOperators())) return false;
9110  }
9112  != other.getUseMultiArmedBanditConcatenateOperators()) return false;
9113  if (java.lang.Double.doubleToLongBits(getMultiArmedBanditCompoundOperatorMemoryCoefficient())
9114  != java.lang.Double.doubleToLongBits(
9115  other.getMultiArmedBanditCompoundOperatorMemoryCoefficient())) return false;
9116  if (java.lang.Double.doubleToLongBits(getMultiArmedBanditCompoundOperatorExplorationCoefficient())
9117  != java.lang.Double.doubleToLongBits(
9118  other.getMultiArmedBanditCompoundOperatorExplorationCoefficient())) return false;
9120  != other.getRelocateExpensiveChainNumArcsToConsider()) return false;
9122  != other.getHeuristicExpensiveChainLnsNumArcsToConsider()) return false;
9124  != other.getHeuristicCloseNodesLnsNumNodes()) return false;
9125  if (localSearchMetaheuristic_ != other.localSearchMetaheuristic_) return false;
9126  if (java.lang.Double.doubleToLongBits(getGuidedLocalSearchLambdaCoefficient())
9127  != java.lang.Double.doubleToLongBits(
9128  other.getGuidedLocalSearchLambdaCoefficient())) return false;
9130  != other.getUseDepthFirstSearch()) return false;
9131  if (useCp_ != other.useCp_) return false;
9132  if (useCpSat_ != other.useCpSat_) return false;
9133  if (continuousSchedulingSolver_ != other.continuousSchedulingSolver_) return false;
9134  if (mixedIntegerSchedulingSolver_ != other.mixedIntegerSchedulingSolver_) return false;
9135  if (java.lang.Double.doubleToLongBits(getOptimizationStep())
9136  != java.lang.Double.doubleToLongBits(
9137  other.getOptimizationStep())) return false;
9139  != other.getNumberOfSolutionsToCollect()) return false;
9140  if (getSolutionLimit()
9141  != other.getSolutionLimit()) return false;
9142  if (hasTimeLimit() != other.hasTimeLimit()) return false;
9143  if (hasTimeLimit()) {
9144  if (!getTimeLimit()
9145  .equals(other.getTimeLimit())) return false;
9146  }
9147  if (hasLnsTimeLimit() != other.hasLnsTimeLimit()) return false;
9148  if (hasLnsTimeLimit()) {
9149  if (!getLnsTimeLimit()
9150  .equals(other.getLnsTimeLimit())) return false;
9151  }
9152  if (hasImprovementLimitParameters() != other.hasImprovementLimitParameters()) return false;
9155  .equals(other.getImprovementLimitParameters())) return false;
9156  }
9157  if (getUseFullPropagation()
9158  != other.getUseFullPropagation()) return false;
9159  if (getLogSearch()
9160  != other.getLogSearch()) return false;
9161  if (java.lang.Double.doubleToLongBits(getLogCostScalingFactor())
9162  != java.lang.Double.doubleToLongBits(
9163  other.getLogCostScalingFactor())) return false;
9164  if (java.lang.Double.doubleToLongBits(getLogCostOffset())
9165  != java.lang.Double.doubleToLongBits(
9166  other.getLogCostOffset())) return false;
9167  if (!getLogTag()
9168  .equals(other.getLogTag())) return false;
9169  if (!unknownFields.equals(other.unknownFields)) return false;
9170  return true;
9171  }
9172 
9173  @java.lang.Override
9174  public int hashCode() {
9175  if (memoizedHashCode != 0) {
9176  return memoizedHashCode;
9177  }
9178  int hash = 41;
9179  hash = (19 * hash) + getDescriptor().hashCode();
9180  hash = (37 * hash) + FIRST_SOLUTION_STRATEGY_FIELD_NUMBER;
9181  hash = (53 * hash) + firstSolutionStrategy_;
9183  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9185  hash = (37 * hash) + SAVINGS_NEIGHBORS_RATIO_FIELD_NUMBER;
9186  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9187  java.lang.Double.doubleToLongBits(getSavingsNeighborsRatio()));
9188  hash = (37 * hash) + SAVINGS_MAX_MEMORY_USAGE_BYTES_FIELD_NUMBER;
9189  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9190  java.lang.Double.doubleToLongBits(getSavingsMaxMemoryUsageBytes()));
9191  hash = (37 * hash) + SAVINGS_ADD_REVERSE_ARCS_FIELD_NUMBER;
9192  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9194  hash = (37 * hash) + SAVINGS_ARC_COEFFICIENT_FIELD_NUMBER;
9195  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9196  java.lang.Double.doubleToLongBits(getSavingsArcCoefficient()));
9197  hash = (37 * hash) + SAVINGS_PARALLEL_ROUTES_FIELD_NUMBER;
9198  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9201  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9202  java.lang.Double.doubleToLongBits(getCheapestInsertionFarthestSeedsRatio()));
9204  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9205  java.lang.Double.doubleToLongBits(getCheapestInsertionFirstSolutionNeighborsRatio()));
9207  hash = (53 * hash) + getCheapestInsertionFirstSolutionMinNeighbors();
9209  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9210  java.lang.Double.doubleToLongBits(getCheapestInsertionLsOperatorNeighborsRatio()));
9212  hash = (53 * hash) + getCheapestInsertionLsOperatorMinNeighbors();
9214  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9217  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9220  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9222  if (hasLocalSearchOperators()) {
9223  hash = (37 * hash) + LOCAL_SEARCH_OPERATORS_FIELD_NUMBER;
9224  hash = (53 * hash) + getLocalSearchOperators().hashCode();
9225  }
9227  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9230  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9231  java.lang.Double.doubleToLongBits(getMultiArmedBanditCompoundOperatorMemoryCoefficient()));
9233  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9234  java.lang.Double.doubleToLongBits(getMultiArmedBanditCompoundOperatorExplorationCoefficient()));
9236  hash = (53 * hash) + getRelocateExpensiveChainNumArcsToConsider();
9238  hash = (53 * hash) + getHeuristicExpensiveChainLnsNumArcsToConsider();
9240  hash = (53 * hash) + getHeuristicCloseNodesLnsNumNodes();
9241  hash = (37 * hash) + LOCAL_SEARCH_METAHEURISTIC_FIELD_NUMBER;
9242  hash = (53 * hash) + localSearchMetaheuristic_;
9244  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9245  java.lang.Double.doubleToLongBits(getGuidedLocalSearchLambdaCoefficient()));
9246  hash = (37 * hash) + USE_DEPTH_FIRST_SEARCH_FIELD_NUMBER;
9247  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9249  hash = (37 * hash) + USE_CP_FIELD_NUMBER;
9250  hash = (53 * hash) + useCp_;
9251  hash = (37 * hash) + USE_CP_SAT_FIELD_NUMBER;
9252  hash = (53 * hash) + useCpSat_;
9253  hash = (37 * hash) + CONTINUOUS_SCHEDULING_SOLVER_FIELD_NUMBER;
9254  hash = (53 * hash) + continuousSchedulingSolver_;
9255  hash = (37 * hash) + MIXED_INTEGER_SCHEDULING_SOLVER_FIELD_NUMBER;
9256  hash = (53 * hash) + mixedIntegerSchedulingSolver_;
9257  hash = (37 * hash) + OPTIMIZATION_STEP_FIELD_NUMBER;
9258  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9259  java.lang.Double.doubleToLongBits(getOptimizationStep()));
9260  hash = (37 * hash) + NUMBER_OF_SOLUTIONS_TO_COLLECT_FIELD_NUMBER;
9261  hash = (53 * hash) + getNumberOfSolutionsToCollect();
9262  hash = (37 * hash) + SOLUTION_LIMIT_FIELD_NUMBER;
9263  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9264  getSolutionLimit());
9265  if (hasTimeLimit()) {
9266  hash = (37 * hash) + TIME_LIMIT_FIELD_NUMBER;
9267  hash = (53 * hash) + getTimeLimit().hashCode();
9268  }
9269  if (hasLnsTimeLimit()) {
9270  hash = (37 * hash) + LNS_TIME_LIMIT_FIELD_NUMBER;
9271  hash = (53 * hash) + getLnsTimeLimit().hashCode();
9272  }
9274  hash = (37 * hash) + IMPROVEMENT_LIMIT_PARAMETERS_FIELD_NUMBER;
9275  hash = (53 * hash) + getImprovementLimitParameters().hashCode();
9276  }
9277  hash = (37 * hash) + USE_FULL_PROPAGATION_FIELD_NUMBER;
9278  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9280  hash = (37 * hash) + LOG_SEARCH_FIELD_NUMBER;
9281  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9282  getLogSearch());
9283  hash = (37 * hash) + LOG_COST_SCALING_FACTOR_FIELD_NUMBER;
9284  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9285  java.lang.Double.doubleToLongBits(getLogCostScalingFactor()));
9286  hash = (37 * hash) + LOG_COST_OFFSET_FIELD_NUMBER;
9287  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9288  java.lang.Double.doubleToLongBits(getLogCostOffset()));
9289  hash = (37 * hash) + LOG_TAG_FIELD_NUMBER;
9290  hash = (53 * hash) + getLogTag().hashCode();
9291  hash = (29 * hash) + unknownFields.hashCode();
9292  memoizedHashCode = hash;
9293  return hash;
9294  }
9295 
9296  public static com.google.ortools.constraintsolver.RoutingSearchParameters parseFrom(
9297  java.nio.ByteBuffer data)
9298  throws com.google.protobuf.InvalidProtocolBufferException {
9299  return PARSER.parseFrom(data);
9300  }
9301  public static com.google.ortools.constraintsolver.RoutingSearchParameters parseFrom(
9302  java.nio.ByteBuffer data,
9303  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9304  throws com.google.protobuf.InvalidProtocolBufferException {
9305  return PARSER.parseFrom(data, extensionRegistry);
9306  }
9307  public static com.google.ortools.constraintsolver.RoutingSearchParameters parseFrom(
9308  com.google.protobuf.ByteString data)
9309  throws com.google.protobuf.InvalidProtocolBufferException {
9310  return PARSER.parseFrom(data);
9311  }
9312  public static com.google.ortools.constraintsolver.RoutingSearchParameters parseFrom(
9313  com.google.protobuf.ByteString data,
9314  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9315  throws com.google.protobuf.InvalidProtocolBufferException {
9316  return PARSER.parseFrom(data, extensionRegistry);
9317  }
9318  public static com.google.ortools.constraintsolver.RoutingSearchParameters parseFrom(byte[] data)
9319  throws com.google.protobuf.InvalidProtocolBufferException {
9320  return PARSER.parseFrom(data);
9321  }
9322  public static com.google.ortools.constraintsolver.RoutingSearchParameters parseFrom(
9323  byte[] data,
9324  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9325  throws com.google.protobuf.InvalidProtocolBufferException {
9326  return PARSER.parseFrom(data, extensionRegistry);
9327  }
9328  public static com.google.ortools.constraintsolver.RoutingSearchParameters parseFrom(java.io.InputStream input)
9329  throws java.io.IOException {
9330  return com.google.protobuf.GeneratedMessageV3
9331  .parseWithIOException(PARSER, input);
9332  }
9333  public static com.google.ortools.constraintsolver.RoutingSearchParameters parseFrom(
9334  java.io.InputStream input,
9335  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9336  throws java.io.IOException {
9337  return com.google.protobuf.GeneratedMessageV3
9338  .parseWithIOException(PARSER, input, extensionRegistry);
9339  }
9340  public static com.google.ortools.constraintsolver.RoutingSearchParameters parseDelimitedFrom(java.io.InputStream input)
9341  throws java.io.IOException {
9342  return com.google.protobuf.GeneratedMessageV3
9343  .parseDelimitedWithIOException(PARSER, input);
9344  }
9345  public static com.google.ortools.constraintsolver.RoutingSearchParameters parseDelimitedFrom(
9346  java.io.InputStream input,
9347  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9348  throws java.io.IOException {
9349  return com.google.protobuf.GeneratedMessageV3
9350  .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
9351  }
9352  public static com.google.ortools.constraintsolver.RoutingSearchParameters parseFrom(
9353  com.google.protobuf.CodedInputStream input)
9354  throws java.io.IOException {
9355  return com.google.protobuf.GeneratedMessageV3
9356  .parseWithIOException(PARSER, input);
9357  }
9358  public static com.google.ortools.constraintsolver.RoutingSearchParameters parseFrom(
9359  com.google.protobuf.CodedInputStream input,
9360  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9361  throws java.io.IOException {
9362  return com.google.protobuf.GeneratedMessageV3
9363  .parseWithIOException(PARSER, input, extensionRegistry);
9364  }
9365 
9366  @java.lang.Override
9367  public Builder newBuilderForType() { return newBuilder(); }
9368  public static Builder newBuilder() {
9369  return DEFAULT_INSTANCE.toBuilder();
9370  }
9371  public static Builder newBuilder(com.google.ortools.constraintsolver.RoutingSearchParameters prototype) {
9372  return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
9373  }
9374  @java.lang.Override
9375  public Builder toBuilder() {
9376  return this == DEFAULT_INSTANCE
9377  ? new Builder() : new Builder().mergeFrom(this);
9378  }
9379 
9380  @java.lang.Override
9382  com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
9383  Builder builder = new Builder(parent);
9384  return builder;
9385  }
9398  public static final class Builder extends
9399  com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
9400  // @@protoc_insertion_point(builder_implements:operations_research.RoutingSearchParameters)
9401  com.google.ortools.constraintsolver.RoutingSearchParametersOrBuilder {
9402  public static final com.google.protobuf.Descriptors.Descriptor
9404  return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_descriptor;
9405  }
9406 
9407  @java.lang.Override
9408  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
9410  return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_fieldAccessorTable
9411  .ensureFieldAccessorsInitialized(
9412  com.google.ortools.constraintsolver.RoutingSearchParameters.class, com.google.ortools.constraintsolver.RoutingSearchParameters.Builder.class);
9413  }
9414 
9415  // Construct using com.google.ortools.constraintsolver.RoutingSearchParameters.newBuilder()
9416  private Builder() {
9417  maybeForceBuilderInitialization();
9418  }
9419 
9420  private Builder(
9421  com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
9422  super(parent);
9423  maybeForceBuilderInitialization();
9424  }
9425  private void maybeForceBuilderInitialization() {
9426  if (com.google.protobuf.GeneratedMessageV3
9427  .alwaysUseFieldBuilders) {
9428  }
9429  }
9430  @java.lang.Override
9431  public Builder clear() {
9432  super.clear();
9433  firstSolutionStrategy_ = 0;
9434 
9435  useUnfilteredFirstSolutionStrategy_ = false;
9436 
9437  savingsNeighborsRatio_ = 0D;
9438 
9439  savingsMaxMemoryUsageBytes_ = 0D;
9440 
9441  savingsAddReverseArcs_ = false;
9442 
9443  savingsArcCoefficient_ = 0D;
9444 
9445  savingsParallelRoutes_ = false;
9446 
9447  cheapestInsertionFarthestSeedsRatio_ = 0D;
9448 
9449  cheapestInsertionFirstSolutionNeighborsRatio_ = 0D;
9450 
9451  cheapestInsertionFirstSolutionMinNeighbors_ = 0;
9452 
9453  cheapestInsertionLsOperatorNeighborsRatio_ = 0D;
9454 
9455  cheapestInsertionLsOperatorMinNeighbors_ = 0;
9456 
9457  cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_ = false;
9458 
9459  cheapestInsertionAddUnperformedEntries_ = false;
9460 
9461  christofidesUseMinimumMatching_ = false;
9462 
9463  if (localSearchOperatorsBuilder_ == null) {
9464  localSearchOperators_ = null;
9465  } else {
9466  localSearchOperators_ = null;
9467  localSearchOperatorsBuilder_ = null;
9468  }
9469  useMultiArmedBanditConcatenateOperators_ = false;
9470 
9471  multiArmedBanditCompoundOperatorMemoryCoefficient_ = 0D;
9472 
9473  multiArmedBanditCompoundOperatorExplorationCoefficient_ = 0D;
9474 
9475  relocateExpensiveChainNumArcsToConsider_ = 0;
9476 
9477  heuristicExpensiveChainLnsNumArcsToConsider_ = 0;
9478 
9479  heuristicCloseNodesLnsNumNodes_ = 0;
9480 
9481  localSearchMetaheuristic_ = 0;
9482 
9483  guidedLocalSearchLambdaCoefficient_ = 0D;
9484 
9485  useDepthFirstSearch_ = false;
9486 
9487  useCp_ = 0;
9488 
9489  useCpSat_ = 0;
9490 
9491  continuousSchedulingSolver_ = 0;
9492 
9493  mixedIntegerSchedulingSolver_ = 0;
9494 
9495  optimizationStep_ = 0D;
9496 
9497  numberOfSolutionsToCollect_ = 0;
9498 
9499  solutionLimit_ = 0L;
9500 
9501  if (timeLimitBuilder_ == null) {
9502  timeLimit_ = null;
9503  } else {
9504  timeLimit_ = null;
9505  timeLimitBuilder_ = null;
9506  }
9507  if (lnsTimeLimitBuilder_ == null) {
9508  lnsTimeLimit_ = null;
9509  } else {
9510  lnsTimeLimit_ = null;
9511  lnsTimeLimitBuilder_ = null;
9512  }
9513  if (improvementLimitParametersBuilder_ == null) {
9514  improvementLimitParameters_ = null;
9515  } else {
9516  improvementLimitParameters_ = null;
9517  improvementLimitParametersBuilder_ = null;
9518  }
9519  useFullPropagation_ = false;
9520 
9521  logSearch_ = false;
9522 
9523  logCostScalingFactor_ = 0D;
9524 
9525  logCostOffset_ = 0D;
9526 
9527  logTag_ = "";
9528 
9529  return this;
9530  }
9531 
9532  @java.lang.Override
9533  public com.google.protobuf.Descriptors.Descriptor
9535  return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_descriptor;
9536  }
9537 
9538  @java.lang.Override
9539  public com.google.ortools.constraintsolver.RoutingSearchParameters getDefaultInstanceForType() {
9540  return com.google.ortools.constraintsolver.RoutingSearchParameters.getDefaultInstance();
9541  }
9542 
9543  @java.lang.Override
9544  public com.google.ortools.constraintsolver.RoutingSearchParameters build() {
9545  com.google.ortools.constraintsolver.RoutingSearchParameters result = buildPartial();
9546  if (!result.isInitialized()) {
9547  throw newUninitializedMessageException(result);
9548  }
9549  return result;
9550  }
9551 
9552  @java.lang.Override
9553  public com.google.ortools.constraintsolver.RoutingSearchParameters buildPartial() {
9554  com.google.ortools.constraintsolver.RoutingSearchParameters result = new com.google.ortools.constraintsolver.RoutingSearchParameters(this);
9555  result.firstSolutionStrategy_ = firstSolutionStrategy_;
9556  result.useUnfilteredFirstSolutionStrategy_ = useUnfilteredFirstSolutionStrategy_;
9557  result.savingsNeighborsRatio_ = savingsNeighborsRatio_;
9558  result.savingsMaxMemoryUsageBytes_ = savingsMaxMemoryUsageBytes_;
9559  result.savingsAddReverseArcs_ = savingsAddReverseArcs_;
9560  result.savingsArcCoefficient_ = savingsArcCoefficient_;
9561  result.savingsParallelRoutes_ = savingsParallelRoutes_;
9562  result.cheapestInsertionFarthestSeedsRatio_ = cheapestInsertionFarthestSeedsRatio_;
9563  result.cheapestInsertionFirstSolutionNeighborsRatio_ = cheapestInsertionFirstSolutionNeighborsRatio_;
9564  result.cheapestInsertionFirstSolutionMinNeighbors_ = cheapestInsertionFirstSolutionMinNeighbors_;
9565  result.cheapestInsertionLsOperatorNeighborsRatio_ = cheapestInsertionLsOperatorNeighborsRatio_;
9566  result.cheapestInsertionLsOperatorMinNeighbors_ = cheapestInsertionLsOperatorMinNeighbors_;
9567  result.cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_ = cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_;
9568  result.cheapestInsertionAddUnperformedEntries_ = cheapestInsertionAddUnperformedEntries_;
9569  result.christofidesUseMinimumMatching_ = christofidesUseMinimumMatching_;
9570  if (localSearchOperatorsBuilder_ == null) {
9571  result.localSearchOperators_ = localSearchOperators_;
9572  } else {
9573  result.localSearchOperators_ = localSearchOperatorsBuilder_.build();
9574  }
9575  result.useMultiArmedBanditConcatenateOperators_ = useMultiArmedBanditConcatenateOperators_;
9576  result.multiArmedBanditCompoundOperatorMemoryCoefficient_ = multiArmedBanditCompoundOperatorMemoryCoefficient_;
9577  result.multiArmedBanditCompoundOperatorExplorationCoefficient_ = multiArmedBanditCompoundOperatorExplorationCoefficient_;
9578  result.relocateExpensiveChainNumArcsToConsider_ = relocateExpensiveChainNumArcsToConsider_;
9579  result.heuristicExpensiveChainLnsNumArcsToConsider_ = heuristicExpensiveChainLnsNumArcsToConsider_;
9580  result.heuristicCloseNodesLnsNumNodes_ = heuristicCloseNodesLnsNumNodes_;
9581  result.localSearchMetaheuristic_ = localSearchMetaheuristic_;
9582  result.guidedLocalSearchLambdaCoefficient_ = guidedLocalSearchLambdaCoefficient_;
9583  result.useDepthFirstSearch_ = useDepthFirstSearch_;
9584  result.useCp_ = useCp_;
9585  result.useCpSat_ = useCpSat_;
9586  result.continuousSchedulingSolver_ = continuousSchedulingSolver_;
9587  result.mixedIntegerSchedulingSolver_ = mixedIntegerSchedulingSolver_;
9588  result.optimizationStep_ = optimizationStep_;
9589  result.numberOfSolutionsToCollect_ = numberOfSolutionsToCollect_;
9590  result.solutionLimit_ = solutionLimit_;
9591  if (timeLimitBuilder_ == null) {
9592  result.timeLimit_ = timeLimit_;
9593  } else {
9594  result.timeLimit_ = timeLimitBuilder_.build();
9595  }
9596  if (lnsTimeLimitBuilder_ == null) {
9597  result.lnsTimeLimit_ = lnsTimeLimit_;
9598  } else {
9599  result.lnsTimeLimit_ = lnsTimeLimitBuilder_.build();
9600  }
9601  if (improvementLimitParametersBuilder_ == null) {
9602  result.improvementLimitParameters_ = improvementLimitParameters_;
9603  } else {
9604  result.improvementLimitParameters_ = improvementLimitParametersBuilder_.build();
9605  }
9606  result.useFullPropagation_ = useFullPropagation_;
9607  result.logSearch_ = logSearch_;
9608  result.logCostScalingFactor_ = logCostScalingFactor_;
9609  result.logCostOffset_ = logCostOffset_;
9610  result.logTag_ = logTag_;
9611  onBuilt();
9612  return result;
9613  }
9614 
9615  @java.lang.Override
9616  public Builder clone() {
9617  return super.clone();
9618  }
9619  @java.lang.Override
9621  com.google.protobuf.Descriptors.FieldDescriptor field,
9622  java.lang.Object value) {
9623  return super.setField(field, value);
9624  }
9625  @java.lang.Override
9627  com.google.protobuf.Descriptors.FieldDescriptor field) {
9628  return super.clearField(field);
9629  }
9630  @java.lang.Override
9632  com.google.protobuf.Descriptors.OneofDescriptor oneof) {
9633  return super.clearOneof(oneof);
9634  }
9635  @java.lang.Override
9637  com.google.protobuf.Descriptors.FieldDescriptor field,
9638  int index, java.lang.Object value) {
9639  return super.setRepeatedField(field, index, value);
9640  }
9641  @java.lang.Override
9643  com.google.protobuf.Descriptors.FieldDescriptor field,
9644  java.lang.Object value) {
9645  return super.addRepeatedField(field, value);
9646  }
9647  @java.lang.Override
9648  public Builder mergeFrom(com.google.protobuf.Message other) {
9649  if (other instanceof com.google.ortools.constraintsolver.RoutingSearchParameters) {
9650  return mergeFrom((com.google.ortools.constraintsolver.RoutingSearchParameters)other);
9651  } else {
9652  super.mergeFrom(other);
9653  return this;
9654  }
9655  }
9656 
9657  public Builder mergeFrom(com.google.ortools.constraintsolver.RoutingSearchParameters other) {
9658  if (other == com.google.ortools.constraintsolver.RoutingSearchParameters.getDefaultInstance()) return this;
9659  if (other.firstSolutionStrategy_ != 0) {
9660  setFirstSolutionStrategyValue(other.getFirstSolutionStrategyValue());
9661  }
9662  if (other.getUseUnfilteredFirstSolutionStrategy() != false) {
9663  setUseUnfilteredFirstSolutionStrategy(other.getUseUnfilteredFirstSolutionStrategy());
9664  }
9665  if (other.getSavingsNeighborsRatio() != 0D) {
9666  setSavingsNeighborsRatio(other.getSavingsNeighborsRatio());
9667  }
9668  if (other.getSavingsMaxMemoryUsageBytes() != 0D) {
9669  setSavingsMaxMemoryUsageBytes(other.getSavingsMaxMemoryUsageBytes());
9670  }
9671  if (other.getSavingsAddReverseArcs() != false) {
9672  setSavingsAddReverseArcs(other.getSavingsAddReverseArcs());
9673  }
9674  if (other.getSavingsArcCoefficient() != 0D) {
9675  setSavingsArcCoefficient(other.getSavingsArcCoefficient());
9676  }
9677  if (other.getSavingsParallelRoutes() != false) {
9678  setSavingsParallelRoutes(other.getSavingsParallelRoutes());
9679  }
9680  if (other.getCheapestInsertionFarthestSeedsRatio() != 0D) {
9681  setCheapestInsertionFarthestSeedsRatio(other.getCheapestInsertionFarthestSeedsRatio());
9682  }
9683  if (other.getCheapestInsertionFirstSolutionNeighborsRatio() != 0D) {
9684  setCheapestInsertionFirstSolutionNeighborsRatio(other.getCheapestInsertionFirstSolutionNeighborsRatio());
9685  }
9686  if (other.getCheapestInsertionFirstSolutionMinNeighbors() != 0) {
9687  setCheapestInsertionFirstSolutionMinNeighbors(other.getCheapestInsertionFirstSolutionMinNeighbors());
9688  }
9689  if (other.getCheapestInsertionLsOperatorNeighborsRatio() != 0D) {
9690  setCheapestInsertionLsOperatorNeighborsRatio(other.getCheapestInsertionLsOperatorNeighborsRatio());
9691  }
9692  if (other.getCheapestInsertionLsOperatorMinNeighbors() != 0) {
9693  setCheapestInsertionLsOperatorMinNeighbors(other.getCheapestInsertionLsOperatorMinNeighbors());
9694  }
9695  if (other.getCheapestInsertionFirstSolutionUseNeighborsRatioForInitialization() != false) {
9696  setCheapestInsertionFirstSolutionUseNeighborsRatioForInitialization(other.getCheapestInsertionFirstSolutionUseNeighborsRatioForInitialization());
9697  }
9698  if (other.getCheapestInsertionAddUnperformedEntries() != false) {
9699  setCheapestInsertionAddUnperformedEntries(other.getCheapestInsertionAddUnperformedEntries());
9700  }
9701  if (other.getChristofidesUseMinimumMatching() != false) {
9702  setChristofidesUseMinimumMatching(other.getChristofidesUseMinimumMatching());
9703  }
9704  if (other.hasLocalSearchOperators()) {
9705  mergeLocalSearchOperators(other.getLocalSearchOperators());
9706  }
9707  if (other.getUseMultiArmedBanditConcatenateOperators() != false) {
9708  setUseMultiArmedBanditConcatenateOperators(other.getUseMultiArmedBanditConcatenateOperators());
9709  }
9710  if (other.getMultiArmedBanditCompoundOperatorMemoryCoefficient() != 0D) {
9711  setMultiArmedBanditCompoundOperatorMemoryCoefficient(other.getMultiArmedBanditCompoundOperatorMemoryCoefficient());
9712  }
9713  if (other.getMultiArmedBanditCompoundOperatorExplorationCoefficient() != 0D) {
9714  setMultiArmedBanditCompoundOperatorExplorationCoefficient(other.getMultiArmedBanditCompoundOperatorExplorationCoefficient());
9715  }
9716  if (other.getRelocateExpensiveChainNumArcsToConsider() != 0) {
9717  setRelocateExpensiveChainNumArcsToConsider(other.getRelocateExpensiveChainNumArcsToConsider());
9718  }
9719  if (other.getHeuristicExpensiveChainLnsNumArcsToConsider() != 0) {
9720  setHeuristicExpensiveChainLnsNumArcsToConsider(other.getHeuristicExpensiveChainLnsNumArcsToConsider());
9721  }
9722  if (other.getHeuristicCloseNodesLnsNumNodes() != 0) {
9723  setHeuristicCloseNodesLnsNumNodes(other.getHeuristicCloseNodesLnsNumNodes());
9724  }
9725  if (other.localSearchMetaheuristic_ != 0) {
9726  setLocalSearchMetaheuristicValue(other.getLocalSearchMetaheuristicValue());
9727  }
9728  if (other.getGuidedLocalSearchLambdaCoefficient() != 0D) {
9729  setGuidedLocalSearchLambdaCoefficient(other.getGuidedLocalSearchLambdaCoefficient());
9730  }
9731  if (other.getUseDepthFirstSearch() != false) {
9732  setUseDepthFirstSearch(other.getUseDepthFirstSearch());
9733  }
9734  if (other.useCp_ != 0) {
9735  setUseCpValue(other.getUseCpValue());
9736  }
9737  if (other.useCpSat_ != 0) {
9738  setUseCpSatValue(other.getUseCpSatValue());
9739  }
9740  if (other.continuousSchedulingSolver_ != 0) {
9741  setContinuousSchedulingSolverValue(other.getContinuousSchedulingSolverValue());
9742  }
9743  if (other.mixedIntegerSchedulingSolver_ != 0) {
9744  setMixedIntegerSchedulingSolverValue(other.getMixedIntegerSchedulingSolverValue());
9745  }
9746  if (other.getOptimizationStep() != 0D) {
9747  setOptimizationStep(other.getOptimizationStep());
9748  }
9749  if (other.getNumberOfSolutionsToCollect() != 0) {
9750  setNumberOfSolutionsToCollect(other.getNumberOfSolutionsToCollect());
9751  }
9752  if (other.getSolutionLimit() != 0L) {
9753  setSolutionLimit(other.getSolutionLimit());
9754  }
9755  if (other.hasTimeLimit()) {
9756  mergeTimeLimit(other.getTimeLimit());
9757  }
9758  if (other.hasLnsTimeLimit()) {
9759  mergeLnsTimeLimit(other.getLnsTimeLimit());
9760  }
9761  if (other.hasImprovementLimitParameters()) {
9762  mergeImprovementLimitParameters(other.getImprovementLimitParameters());
9763  }
9764  if (other.getUseFullPropagation() != false) {
9765  setUseFullPropagation(other.getUseFullPropagation());
9766  }
9767  if (other.getLogSearch() != false) {
9768  setLogSearch(other.getLogSearch());
9769  }
9770  if (other.getLogCostScalingFactor() != 0D) {
9771  setLogCostScalingFactor(other.getLogCostScalingFactor());
9772  }
9773  if (other.getLogCostOffset() != 0D) {
9774  setLogCostOffset(other.getLogCostOffset());
9775  }
9776  if (!other.getLogTag().isEmpty()) {
9777  logTag_ = other.logTag_;
9778  onChanged();
9779  }
9780  this.mergeUnknownFields(other.unknownFields);
9781  onChanged();
9782  return this;
9783  }
9784 
9785  @java.lang.Override
9786  public final boolean isInitialized() {
9787  return true;
9788  }
9789 
9790  @java.lang.Override
9792  com.google.protobuf.CodedInputStream input,
9793  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9794  throws java.io.IOException {
9795  com.google.ortools.constraintsolver.RoutingSearchParameters parsedMessage = null;
9796  try {
9797  parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
9798  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
9799  parsedMessage = (com.google.ortools.constraintsolver.RoutingSearchParameters) e.getUnfinishedMessage();
9800  throw e.unwrapIOException();
9801  } finally {
9802  if (parsedMessage != null) {
9803  mergeFrom(parsedMessage);
9804  }
9805  }
9806  return this;
9807  }
9808 
9809  private int firstSolutionStrategy_ = 0;
9818  @java.lang.Override public int getFirstSolutionStrategyValue() {
9819  return firstSolutionStrategy_;
9820  }
9831 
9832  firstSolutionStrategy_ = value;
9833  onChanged();
9834  return this;
9835  }
9844  @java.lang.Override
9845  public com.google.ortools.constraintsolver.FirstSolutionStrategy.Value getFirstSolutionStrategy() {
9846  @SuppressWarnings("deprecation")
9847  com.google.ortools.constraintsolver.FirstSolutionStrategy.Value result = com.google.ortools.constraintsolver.FirstSolutionStrategy.Value.valueOf(firstSolutionStrategy_);
9848  return result == null ? com.google.ortools.constraintsolver.FirstSolutionStrategy.Value.UNRECOGNIZED : result;
9849  }
9859  public Builder setFirstSolutionStrategy(com.google.ortools.constraintsolver.FirstSolutionStrategy.Value value) {
9860  if (value == null) {
9861  throw new NullPointerException();
9862  }
9863 
9864  firstSolutionStrategy_ = value.getNumber();
9865  onChanged();
9866  return this;
9867  }
9877 
9878  firstSolutionStrategy_ = 0;
9879  onChanged();
9880  return this;
9881  }
9882 
9883  private boolean useUnfilteredFirstSolutionStrategy_ ;
9894  @java.lang.Override
9896  return useUnfilteredFirstSolutionStrategy_;
9897  }
9910 
9911  useUnfilteredFirstSolutionStrategy_ = value;
9912  onChanged();
9913  return this;
9914  }
9926 
9927  useUnfilteredFirstSolutionStrategy_ = false;
9928  onChanged();
9929  return this;
9930  }
9931 
9932  private double savingsNeighborsRatio_ ;
9943  @java.lang.Override
9944  public double getSavingsNeighborsRatio() {
9945  return savingsNeighborsRatio_;
9946  }
9958  public Builder setSavingsNeighborsRatio(double value) {
9959 
9960  savingsNeighborsRatio_ = value;
9961  onChanged();
9962  return this;
9963  }
9975 
9976  savingsNeighborsRatio_ = 0D;
9977  onChanged();
9978  return this;
9979  }
9980 
9981  private double savingsMaxMemoryUsageBytes_ ;
9995  @java.lang.Override
9997  return savingsMaxMemoryUsageBytes_;
9998  }
10014 
10015  savingsMaxMemoryUsageBytes_ = value;
10016  onChanged();
10017  return this;
10018  }
10033 
10034  savingsMaxMemoryUsageBytes_ = 0D;
10035  onChanged();
10036  return this;
10037  }
10038 
10039  private boolean savingsAddReverseArcs_ ;
10049  @java.lang.Override
10050  public boolean getSavingsAddReverseArcs() {
10051  return savingsAddReverseArcs_;
10052  }
10063  public Builder setSavingsAddReverseArcs(boolean value) {
10064 
10065  savingsAddReverseArcs_ = value;
10066  onChanged();
10067  return this;
10068  }
10079 
10080  savingsAddReverseArcs_ = false;
10081  onChanged();
10082  return this;
10083  }
10084 
10085  private double savingsArcCoefficient_ ;
10098  @java.lang.Override
10099  public double getSavingsArcCoefficient() {
10100  return savingsArcCoefficient_;
10101  }
10115  public Builder setSavingsArcCoefficient(double value) {
10116 
10117  savingsArcCoefficient_ = value;
10118  onChanged();
10119  return this;
10120  }
10134 
10135  savingsArcCoefficient_ = 0D;
10136  onChanged();
10137  return this;
10138  }
10139 
10140  private boolean savingsParallelRoutes_ ;
10149  @java.lang.Override
10150  public boolean getSavingsParallelRoutes() {
10151  return savingsParallelRoutes_;
10152  }
10162  public Builder setSavingsParallelRoutes(boolean value) {
10163 
10164  savingsParallelRoutes_ = value;
10165  onChanged();
10166  return this;
10167  }
10177 
10178  savingsParallelRoutes_ = false;
10179  onChanged();
10180  return this;
10181  }
10182 
10183  private double cheapestInsertionFarthestSeedsRatio_ ;
10194  @java.lang.Override
10196  return cheapestInsertionFarthestSeedsRatio_;
10197  }
10210 
10211  cheapestInsertionFarthestSeedsRatio_ = value;
10212  onChanged();
10213  return this;
10214  }
10226 
10227  cheapestInsertionFarthestSeedsRatio_ = 0D;
10228  onChanged();
10229  return this;
10230  }
10231 
10232  private double cheapestInsertionFirstSolutionNeighborsRatio_ ;
10254  @java.lang.Override
10256  return cheapestInsertionFirstSolutionNeighborsRatio_;
10257  }
10281 
10282  cheapestInsertionFirstSolutionNeighborsRatio_ = value;
10283  onChanged();
10284  return this;
10285  }
10308 
10309  cheapestInsertionFirstSolutionNeighborsRatio_ = 0D;
10310  onChanged();
10311  return this;
10312  }
10313 
10314  private int cheapestInsertionFirstSolutionMinNeighbors_ ;
10319  @java.lang.Override
10321  return cheapestInsertionFirstSolutionMinNeighbors_;
10322  }
10329 
10330  cheapestInsertionFirstSolutionMinNeighbors_ = value;
10331  onChanged();
10332  return this;
10333  }
10339 
10340  cheapestInsertionFirstSolutionMinNeighbors_ = 0;
10341  onChanged();
10342  return this;
10343  }
10344 
10345  private double cheapestInsertionLsOperatorNeighborsRatio_ ;
10357  @java.lang.Override
10359  return cheapestInsertionLsOperatorNeighborsRatio_;
10360  }
10374 
10375  cheapestInsertionLsOperatorNeighborsRatio_ = value;
10376  onChanged();
10377  return this;
10378  }
10391 
10392  cheapestInsertionLsOperatorNeighborsRatio_ = 0D;
10393  onChanged();
10394  return this;
10395  }
10396 
10397  private int cheapestInsertionLsOperatorMinNeighbors_ ;
10402  @java.lang.Override
10404  return cheapestInsertionLsOperatorMinNeighbors_;
10405  }
10412 
10413  cheapestInsertionLsOperatorMinNeighbors_ = value;
10414  onChanged();
10415  return this;
10416  }
10422 
10423  cheapestInsertionLsOperatorMinNeighbors_ = 0;
10424  onChanged();
10425  return this;
10426  }
10427 
10428  private boolean cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_ ;
10438  @java.lang.Override
10440  return cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_;
10441  }
10453 
10454  cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_ = value;
10455  onChanged();
10456  return this;
10457  }
10468 
10469  cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_ = false;
10470  onChanged();
10471  return this;
10472  }
10473 
10474  private boolean cheapestInsertionAddUnperformedEntries_ ;
10484  @java.lang.Override
10486  return cheapestInsertionAddUnperformedEntries_;
10487  }
10499 
10500  cheapestInsertionAddUnperformedEntries_ = value;
10501  onChanged();
10502  return this;
10503  }
10514 
10515  cheapestInsertionAddUnperformedEntries_ = false;
10516  onChanged();
10517  return this;
10518  }
10519 
10520  private boolean christofidesUseMinimumMatching_ ;
10530  @java.lang.Override
10532  return christofidesUseMinimumMatching_;
10533  }
10545 
10546  christofidesUseMinimumMatching_ = value;
10547  onChanged();
10548  return this;
10549  }
10560 
10561  christofidesUseMinimumMatching_ = false;
10562  onChanged();
10563  return this;
10564  }
10565 
10566  private com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators localSearchOperators_;
10567  private com.google.protobuf.SingleFieldBuilderV3<
10568  com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators, com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.Builder, com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder> localSearchOperatorsBuilder_;
10573  public boolean hasLocalSearchOperators() {
10574  return localSearchOperatorsBuilder_ != null || localSearchOperators_ != null;
10575  }
10580  public com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators getLocalSearchOperators() {
10581  if (localSearchOperatorsBuilder_ == null) {
10582  return localSearchOperators_ == null ? com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.getDefaultInstance() : localSearchOperators_;
10583  } else {
10584  return localSearchOperatorsBuilder_.getMessage();
10585  }
10586  }
10590  public Builder setLocalSearchOperators(com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators value) {
10591  if (localSearchOperatorsBuilder_ == null) {
10592  if (value == null) {
10593  throw new NullPointerException();
10594  }
10595  localSearchOperators_ = value;
10596  onChanged();
10597  } else {
10598  localSearchOperatorsBuilder_.setMessage(value);
10599  }
10600 
10601  return this;
10602  }
10607  com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.Builder builderForValue) {
10608  if (localSearchOperatorsBuilder_ == null) {
10609  localSearchOperators_ = builderForValue.build();
10610  onChanged();
10611  } else {
10612  localSearchOperatorsBuilder_.setMessage(builderForValue.build());
10613  }
10614 
10615  return this;
10616  }
10620  public Builder mergeLocalSearchOperators(com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators value) {
10621  if (localSearchOperatorsBuilder_ == null) {
10622  if (localSearchOperators_ != null) {
10623  localSearchOperators_ =
10624  com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.newBuilder(localSearchOperators_).mergeFrom(value).buildPartial();
10625  } else {
10626  localSearchOperators_ = value;
10627  }
10628  onChanged();
10629  } else {
10630  localSearchOperatorsBuilder_.mergeFrom(value);
10631  }
10632 
10633  return this;
10634  }
10639  if (localSearchOperatorsBuilder_ == null) {
10640  localSearchOperators_ = null;
10641  onChanged();
10642  } else {
10643  localSearchOperators_ = null;
10644  localSearchOperatorsBuilder_ = null;
10645  }
10646 
10647  return this;
10648  }
10652  public com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.Builder getLocalSearchOperatorsBuilder() {
10653 
10654  onChanged();
10655  return getLocalSearchOperatorsFieldBuilder().getBuilder();
10656  }
10660  public com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder getLocalSearchOperatorsOrBuilder() {
10661  if (localSearchOperatorsBuilder_ != null) {
10662  return localSearchOperatorsBuilder_.getMessageOrBuilder();
10663  } else {
10664  return localSearchOperators_ == null ?
10665  com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.getDefaultInstance() : localSearchOperators_;
10666  }
10667  }
10671  private com.google.protobuf.SingleFieldBuilderV3<
10672  com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators, com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.Builder, com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder>
10673  getLocalSearchOperatorsFieldBuilder() {
10674  if (localSearchOperatorsBuilder_ == null) {
10675  localSearchOperatorsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
10676  com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators, com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.Builder, com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder>(
10678  getParentForChildren(),
10679  isClean());
10680  localSearchOperators_ = null;
10681  }
10682  return localSearchOperatorsBuilder_;
10683  }
10684 
10685  private boolean useMultiArmedBanditConcatenateOperators_ ;
10696  @java.lang.Override
10698  return useMultiArmedBanditConcatenateOperators_;
10699  }
10712 
10713  useMultiArmedBanditConcatenateOperators_ = value;
10714  onChanged();
10715  return this;
10716  }
10728 
10729  useMultiArmedBanditConcatenateOperators_ = false;
10730  onChanged();
10731  return this;
10732  }
10733 
10734  private double multiArmedBanditCompoundOperatorMemoryCoefficient_ ;
10746  @java.lang.Override
10748  return multiArmedBanditCompoundOperatorMemoryCoefficient_;
10749  }
10763 
10764  multiArmedBanditCompoundOperatorMemoryCoefficient_ = value;
10765  onChanged();
10766  return this;
10767  }
10780 
10781  multiArmedBanditCompoundOperatorMemoryCoefficient_ = 0D;
10782  onChanged();
10783  return this;
10784  }
10785 
10786  private double multiArmedBanditCompoundOperatorExplorationCoefficient_ ;
10797  @java.lang.Override
10799  return multiArmedBanditCompoundOperatorExplorationCoefficient_;
10800  }
10813 
10814  multiArmedBanditCompoundOperatorExplorationCoefficient_ = value;
10815  onChanged();
10816  return this;
10817  }
10829 
10830  multiArmedBanditCompoundOperatorExplorationCoefficient_ = 0D;
10831  onChanged();
10832  return this;
10833  }
10834 
10835  private int relocateExpensiveChainNumArcsToConsider_ ;
10850  @java.lang.Override
10852  return relocateExpensiveChainNumArcsToConsider_;
10853  }
10870 
10871  relocateExpensiveChainNumArcsToConsider_ = value;
10872  onChanged();
10873  return this;
10874  }
10890 
10891  relocateExpensiveChainNumArcsToConsider_ = 0;
10892  onChanged();
10893  return this;
10894  }
10895 
10896  private int heuristicExpensiveChainLnsNumArcsToConsider_ ;
10906  @java.lang.Override
10908  return heuristicExpensiveChainLnsNumArcsToConsider_;
10909  }
10921 
10922  heuristicExpensiveChainLnsNumArcsToConsider_ = value;
10923  onChanged();
10924  return this;
10925  }
10936 
10937  heuristicExpensiveChainLnsNumArcsToConsider_ = 0;
10938  onChanged();
10939  return this;
10940  }
10941 
10942  private int heuristicCloseNodesLnsNumNodes_ ;
10952  @java.lang.Override
10954  return heuristicCloseNodesLnsNumNodes_;
10955  }
10967 
10968  heuristicCloseNodesLnsNumNodes_ = value;
10969  onChanged();
10970  return this;
10971  }
10982 
10983  heuristicCloseNodesLnsNumNodes_ = 0;
10984  onChanged();
10985  return this;
10986  }
10987 
10988  private int localSearchMetaheuristic_ = 0;
10997  @java.lang.Override public int getLocalSearchMetaheuristicValue() {
10998  return localSearchMetaheuristic_;
10999  }
11010 
11011  localSearchMetaheuristic_ = value;
11012  onChanged();
11013  return this;
11014  }
11023  @java.lang.Override
11024  public com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value getLocalSearchMetaheuristic() {
11025  @SuppressWarnings("deprecation")
11026  com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value result = com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value.valueOf(localSearchMetaheuristic_);
11027  return result == null ? com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value.UNRECOGNIZED : result;
11028  }
11038  public Builder setLocalSearchMetaheuristic(com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value value) {
11039  if (value == null) {
11040  throw new NullPointerException();
11041  }
11042 
11043  localSearchMetaheuristic_ = value.getNumber();
11044  onChanged();
11045  return this;
11046  }
11056 
11057  localSearchMetaheuristic_ = 0;
11058  onChanged();
11059  return this;
11060  }
11061 
11062  private double guidedLocalSearchLambdaCoefficient_ ;
11074  @java.lang.Override
11076  return guidedLocalSearchLambdaCoefficient_;
11077  }
11091 
11092  guidedLocalSearchLambdaCoefficient_ = value;
11093  onChanged();
11094  return this;
11095  }
11108 
11109  guidedLocalSearchLambdaCoefficient_ = 0D;
11110  onChanged();
11111  return this;
11112  }
11113 
11114  private boolean useDepthFirstSearch_ ;
11125  @java.lang.Override
11126  public boolean getUseDepthFirstSearch() {
11127  return useDepthFirstSearch_;
11128  }
11140  public Builder setUseDepthFirstSearch(boolean value) {
11141 
11142  useDepthFirstSearch_ = value;
11143  onChanged();
11144  return this;
11145  }
11157 
11158  useDepthFirstSearch_ = false;
11159  onChanged();
11160  return this;
11161  }
11162 
11163  private int useCp_ = 0;
11174  @java.lang.Override public int getUseCpValue() {
11175  return useCp_;
11176  }
11188  public Builder setUseCpValue(int value) {
11189 
11190  useCp_ = value;
11191  onChanged();
11192  return this;
11193  }
11204  @java.lang.Override
11205  public com.google.ortools.util.OptionalBoolean getUseCp() {
11206  @SuppressWarnings("deprecation")
11207  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useCp_);
11208  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
11209  }
11221  public Builder setUseCp(com.google.ortools.util.OptionalBoolean value) {
11222  if (value == null) {
11223  throw new NullPointerException();
11224  }
11225 
11226  useCp_ = value.getNumber();
11227  onChanged();
11228  return this;
11229  }
11240  public Builder clearUseCp() {
11241 
11242  useCp_ = 0;
11243  onChanged();
11244  return this;
11245  }
11246 
11247  private int useCpSat_ = 0;
11259  @java.lang.Override public int getUseCpSatValue() {
11260  return useCpSat_;
11261  }
11274  public Builder setUseCpSatValue(int value) {
11275 
11276  useCpSat_ = value;
11277  onChanged();
11278  return this;
11279  }
11291  @java.lang.Override
11292  public com.google.ortools.util.OptionalBoolean getUseCpSat() {
11293  @SuppressWarnings("deprecation")
11294  com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.valueOf(useCpSat_);
11295  return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
11296  }
11309  public Builder setUseCpSat(com.google.ortools.util.OptionalBoolean value) {
11310  if (value == null) {
11311  throw new NullPointerException();
11312  }
11313 
11314  useCpSat_ = value.getNumber();
11315  onChanged();
11316  return this;
11317  }
11330 
11331  useCpSat_ = 0;
11332  onChanged();
11333  return this;
11334  }
11335 
11336  private int continuousSchedulingSolver_ = 0;
11341  @java.lang.Override public int getContinuousSchedulingSolverValue() {
11342  return continuousSchedulingSolver_;
11343  }
11350 
11351  continuousSchedulingSolver_ = value;
11352  onChanged();
11353  return this;
11354  }
11359  @java.lang.Override
11360  public com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver getContinuousSchedulingSolver() {
11361  @SuppressWarnings("deprecation")
11362  com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver result = com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.valueOf(continuousSchedulingSolver_);
11363  return result == null ? com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.UNRECOGNIZED : result;
11364  }
11370  public Builder setContinuousSchedulingSolver(com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver value) {
11371  if (value == null) {
11372  throw new NullPointerException();
11373  }
11374 
11375  continuousSchedulingSolver_ = value.getNumber();
11376  onChanged();
11377  return this;
11378  }
11384 
11385  continuousSchedulingSolver_ = 0;
11386  onChanged();
11387  return this;
11388  }
11389 
11390  private int mixedIntegerSchedulingSolver_ = 0;
11395  @java.lang.Override public int getMixedIntegerSchedulingSolverValue() {
11396  return mixedIntegerSchedulingSolver_;
11397  }
11404 
11405  mixedIntegerSchedulingSolver_ = value;
11406  onChanged();
11407  return this;
11408  }
11413  @java.lang.Override
11414  public com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver getMixedIntegerSchedulingSolver() {
11415  @SuppressWarnings("deprecation")
11416  com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver result = com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.valueOf(mixedIntegerSchedulingSolver_);
11417  return result == null ? com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.UNRECOGNIZED : result;
11418  }
11424  public Builder setMixedIntegerSchedulingSolver(com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver value) {
11425  if (value == null) {
11426  throw new NullPointerException();
11427  }
11428 
11429  mixedIntegerSchedulingSolver_ = value.getNumber();
11430  onChanged();
11431  return this;
11432  }
11438 
11439  mixedIntegerSchedulingSolver_ = 0;
11440  onChanged();
11441  return this;
11442  }
11443 
11444  private double optimizationStep_ ;
11455  @java.lang.Override
11456  public double getOptimizationStep() {
11457  return optimizationStep_;
11458  }
11470  public Builder setOptimizationStep(double value) {
11471 
11472  optimizationStep_ = value;
11473  onChanged();
11474  return this;
11475  }
11487 
11488  optimizationStep_ = 0D;
11489  onChanged();
11490  return this;
11491  }
11492 
11493  private int numberOfSolutionsToCollect_ ;
11503  @java.lang.Override
11505  return numberOfSolutionsToCollect_;
11506  }
11518 
11519  numberOfSolutionsToCollect_ = value;
11520  onChanged();
11521  return this;
11522  }
11533 
11534  numberOfSolutionsToCollect_ = 0;
11535  onChanged();
11536  return this;
11537  }
11538 
11539  private long solutionLimit_ ;
11550  @java.lang.Override
11551  public long getSolutionLimit() {
11552  return solutionLimit_;
11553  }
11565  public Builder setSolutionLimit(long value) {
11566 
11567  solutionLimit_ = value;
11568  onChanged();
11569  return this;
11570  }
11582 
11583  solutionLimit_ = 0L;
11584  onChanged();
11585  return this;
11586  }
11587 
11588  private com.google.protobuf.Duration timeLimit_;
11589  private com.google.protobuf.SingleFieldBuilderV3<
11590  com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> timeLimitBuilder_;
11599  public boolean hasTimeLimit() {
11600  return timeLimitBuilder_ != null || timeLimit_ != null;
11601  }
11610  public com.google.protobuf.Duration getTimeLimit() {
11611  if (timeLimitBuilder_ == null) {
11612  return timeLimit_ == null ? com.google.protobuf.Duration.getDefaultInstance() : timeLimit_;
11613  } else {
11614  return timeLimitBuilder_.getMessage();
11615  }
11616  }
11624  public Builder setTimeLimit(com.google.protobuf.Duration value) {
11625  if (timeLimitBuilder_ == null) {
11626  if (value == null) {
11627  throw new NullPointerException();
11628  }
11629  timeLimit_ = value;
11630  onChanged();
11631  } else {
11632  timeLimitBuilder_.setMessage(value);
11633  }
11634 
11635  return this;
11636  }
11645  com.google.protobuf.Duration.Builder builderForValue) {
11646  if (timeLimitBuilder_ == null) {
11647  timeLimit_ = builderForValue.build();
11648  onChanged();
11649  } else {
11650  timeLimitBuilder_.setMessage(builderForValue.build());
11651  }
11652 
11653  return this;
11654  }
11662  public Builder mergeTimeLimit(com.google.protobuf.Duration value) {
11663  if (timeLimitBuilder_ == null) {
11664  if (timeLimit_ != null) {
11665  timeLimit_ =
11666  com.google.protobuf.Duration.newBuilder(timeLimit_).mergeFrom(value).buildPartial();
11667  } else {
11668  timeLimit_ = value;
11669  }
11670  onChanged();
11671  } else {
11672  timeLimitBuilder_.mergeFrom(value);
11673  }
11674 
11675  return this;
11676  }
11685  if (timeLimitBuilder_ == null) {
11686  timeLimit_ = null;
11687  onChanged();
11688  } else {
11689  timeLimit_ = null;
11690  timeLimitBuilder_ = null;
11691  }
11692 
11693  return this;
11694  }
11702  public com.google.protobuf.Duration.Builder getTimeLimitBuilder() {
11703 
11704  onChanged();
11705  return getTimeLimitFieldBuilder().getBuilder();
11706  }
11714  public com.google.protobuf.DurationOrBuilder getTimeLimitOrBuilder() {
11715  if (timeLimitBuilder_ != null) {
11716  return timeLimitBuilder_.getMessageOrBuilder();
11717  } else {
11718  return timeLimit_ == null ?
11719  com.google.protobuf.Duration.getDefaultInstance() : timeLimit_;
11720  }
11721  }
11729  private com.google.protobuf.SingleFieldBuilderV3<
11730  com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder>
11731  getTimeLimitFieldBuilder() {
11732  if (timeLimitBuilder_ == null) {
11733  timeLimitBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
11734  com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder>(
11735  getTimeLimit(),
11736  getParentForChildren(),
11737  isClean());
11738  timeLimit_ = null;
11739  }
11740  return timeLimitBuilder_;
11741  }
11742 
11743  private com.google.protobuf.Duration lnsTimeLimit_;
11744  private com.google.protobuf.SingleFieldBuilderV3<
11745  com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> lnsTimeLimitBuilder_;
11755  public boolean hasLnsTimeLimit() {
11756  return lnsTimeLimitBuilder_ != null || lnsTimeLimit_ != null;
11757  }
11767  public com.google.protobuf.Duration getLnsTimeLimit() {
11768  if (lnsTimeLimitBuilder_ == null) {
11769  return lnsTimeLimit_ == null ? com.google.protobuf.Duration.getDefaultInstance() : lnsTimeLimit_;
11770  } else {
11771  return lnsTimeLimitBuilder_.getMessage();
11772  }
11773  }
11782  public Builder setLnsTimeLimit(com.google.protobuf.Duration value) {
11783  if (lnsTimeLimitBuilder_ == null) {
11784  if (value == null) {
11785  throw new NullPointerException();
11786  }
11787  lnsTimeLimit_ = value;
11788  onChanged();
11789  } else {
11790  lnsTimeLimitBuilder_.setMessage(value);
11791  }
11792 
11793  return this;
11794  }
11804  com.google.protobuf.Duration.Builder builderForValue) {
11805  if (lnsTimeLimitBuilder_ == null) {
11806  lnsTimeLimit_ = builderForValue.build();
11807  onChanged();
11808  } else {
11809  lnsTimeLimitBuilder_.setMessage(builderForValue.build());
11810  }
11811 
11812  return this;
11813  }
11822  public Builder mergeLnsTimeLimit(com.google.protobuf.Duration value) {
11823  if (lnsTimeLimitBuilder_ == null) {
11824  if (lnsTimeLimit_ != null) {
11825  lnsTimeLimit_ =
11826  com.google.protobuf.Duration.newBuilder(lnsTimeLimit_).mergeFrom(value).buildPartial();
11827  } else {
11828  lnsTimeLimit_ = value;
11829  }
11830  onChanged();
11831  } else {
11832  lnsTimeLimitBuilder_.mergeFrom(value);
11833  }
11834 
11835  return this;
11836  }
11846  if (lnsTimeLimitBuilder_ == null) {
11847  lnsTimeLimit_ = null;
11848  onChanged();
11849  } else {
11850  lnsTimeLimit_ = null;
11851  lnsTimeLimitBuilder_ = null;
11852  }
11853 
11854  return this;
11855  }
11864  public com.google.protobuf.Duration.Builder getLnsTimeLimitBuilder() {
11865 
11866  onChanged();
11867  return getLnsTimeLimitFieldBuilder().getBuilder();
11868  }
11877  public com.google.protobuf.DurationOrBuilder getLnsTimeLimitOrBuilder() {
11878  if (lnsTimeLimitBuilder_ != null) {
11879  return lnsTimeLimitBuilder_.getMessageOrBuilder();
11880  } else {
11881  return lnsTimeLimit_ == null ?
11882  com.google.protobuf.Duration.getDefaultInstance() : lnsTimeLimit_;
11883  }
11884  }
11893  private com.google.protobuf.SingleFieldBuilderV3<
11894  com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder>
11895  getLnsTimeLimitFieldBuilder() {
11896  if (lnsTimeLimitBuilder_ == null) {
11897  lnsTimeLimitBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
11898  com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder>(
11899  getLnsTimeLimit(),
11900  getParentForChildren(),
11901  isClean());
11902  lnsTimeLimit_ = null;
11903  }
11904  return lnsTimeLimitBuilder_;
11905  }
11906 
11907  private com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters improvementLimitParameters_;
11908  private com.google.protobuf.SingleFieldBuilderV3<
11909  com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters, com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.Builder, com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParametersOrBuilder> improvementLimitParametersBuilder_;
11920  return improvementLimitParametersBuilder_ != null || improvementLimitParameters_ != null;
11921  }
11931  public com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters getImprovementLimitParameters() {
11932  if (improvementLimitParametersBuilder_ == null) {
11933  return improvementLimitParameters_ == null ? com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.getDefaultInstance() : improvementLimitParameters_;
11934  } else {
11935  return improvementLimitParametersBuilder_.getMessage();
11936  }
11937  }
11946  public Builder setImprovementLimitParameters(com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters value) {
11947  if (improvementLimitParametersBuilder_ == null) {
11948  if (value == null) {
11949  throw new NullPointerException();
11950  }
11951  improvementLimitParameters_ = value;
11952  onChanged();
11953  } else {
11954  improvementLimitParametersBuilder_.setMessage(value);
11955  }
11956 
11957  return this;
11958  }
11968  com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.Builder builderForValue) {
11969  if (improvementLimitParametersBuilder_ == null) {
11970  improvementLimitParameters_ = builderForValue.build();
11971  onChanged();
11972  } else {
11973  improvementLimitParametersBuilder_.setMessage(builderForValue.build());
11974  }
11975 
11976  return this;
11977  }
11986  public Builder mergeImprovementLimitParameters(com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters value) {
11987  if (improvementLimitParametersBuilder_ == null) {
11988  if (improvementLimitParameters_ != null) {
11989  improvementLimitParameters_ =
11990  com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.newBuilder(improvementLimitParameters_).mergeFrom(value).buildPartial();
11991  } else {
11992  improvementLimitParameters_ = value;
11993  }
11994  onChanged();
11995  } else {
11996  improvementLimitParametersBuilder_.mergeFrom(value);
11997  }
11998 
11999  return this;
12000  }
12010  if (improvementLimitParametersBuilder_ == null) {
12011  improvementLimitParameters_ = null;
12012  onChanged();
12013  } else {
12014  improvementLimitParameters_ = null;
12015  improvementLimitParametersBuilder_ = null;
12016  }
12017 
12018  return this;
12019  }
12028  public com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.Builder getImprovementLimitParametersBuilder() {
12029 
12030  onChanged();
12031  return getImprovementLimitParametersFieldBuilder().getBuilder();
12032  }
12041  public com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParametersOrBuilder getImprovementLimitParametersOrBuilder() {
12042  if (improvementLimitParametersBuilder_ != null) {
12043  return improvementLimitParametersBuilder_.getMessageOrBuilder();
12044  } else {
12045  return improvementLimitParameters_ == null ?
12046  com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.getDefaultInstance() : improvementLimitParameters_;
12047  }
12048  }
12057  private com.google.protobuf.SingleFieldBuilderV3<
12058  com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters, com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.Builder, com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParametersOrBuilder>
12059  getImprovementLimitParametersFieldBuilder() {
12060  if (improvementLimitParametersBuilder_ == null) {
12061  improvementLimitParametersBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
12062  com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters, com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.Builder, com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParametersOrBuilder>(
12064  getParentForChildren(),
12065  isClean());
12066  improvementLimitParameters_ = null;
12067  }
12068  return improvementLimitParametersBuilder_;
12069  }
12070 
12071  private boolean useFullPropagation_ ;
12088  @java.lang.Override
12089  public boolean getUseFullPropagation() {
12090  return useFullPropagation_;
12091  }
12109  public Builder setUseFullPropagation(boolean value) {
12110 
12111  useFullPropagation_ = value;
12112  onChanged();
12113  return this;
12114  }
12132 
12133  useFullPropagation_ = false;
12134  onChanged();
12135  return this;
12136  }
12137 
12138  private boolean logSearch_ ;
12158  @java.lang.Override
12159  public boolean getLogSearch() {
12160  return logSearch_;
12161  }
12182  public Builder setLogSearch(boolean value) {
12183 
12184  logSearch_ = value;
12185  onChanged();
12186  return this;
12187  }
12208 
12209  logSearch_ = false;
12210  onChanged();
12211  return this;
12212  }
12213 
12214  private double logCostScalingFactor_ ;
12224  @java.lang.Override
12225  public double getLogCostScalingFactor() {
12226  return logCostScalingFactor_;
12227  }
12238  public Builder setLogCostScalingFactor(double value) {
12239 
12240  logCostScalingFactor_ = value;
12241  onChanged();
12242  return this;
12243  }
12254 
12255  logCostScalingFactor_ = 0D;
12256  onChanged();
12257  return this;
12258  }
12259 
12260  private double logCostOffset_ ;
12265  @java.lang.Override
12266  public double getLogCostOffset() {
12267  return logCostOffset_;
12268  }
12274  public Builder setLogCostOffset(double value) {
12275 
12276  logCostOffset_ = value;
12277  onChanged();
12278  return this;
12279  }
12285 
12286  logCostOffset_ = 0D;
12287  onChanged();
12288  return this;
12289  }
12290 
12291  private java.lang.Object logTag_ = "";
12301  public java.lang.String getLogTag() {
12302  java.lang.Object ref = logTag_;
12303  if (!(ref instanceof java.lang.String)) {
12304  com.google.protobuf.ByteString bs =
12305  (com.google.protobuf.ByteString) ref;
12306  java.lang.String s = bs.toStringUtf8();
12307  logTag_ = s;
12308  return s;
12309  } else {
12310  return (java.lang.String) ref;
12311  }
12312  }
12322  public com.google.protobuf.ByteString
12324  java.lang.Object ref = logTag_;
12325  if (ref instanceof String) {
12326  com.google.protobuf.ByteString b =
12327  com.google.protobuf.ByteString.copyFromUtf8(
12328  (java.lang.String) ref);
12329  logTag_ = b;
12330  return b;
12331  } else {
12332  return (com.google.protobuf.ByteString) ref;
12333  }
12334  }
12346  java.lang.String value) {
12347  if (value == null) {
12348  throw new NullPointerException();
12349  }
12350 
12351  logTag_ = value;
12352  onChanged();
12353  return this;
12354  }
12365 
12366  logTag_ = getDefaultInstance().getLogTag();
12367  onChanged();
12368  return this;
12369  }
12381  com.google.protobuf.ByteString value) {
12382  if (value == null) {
12383  throw new NullPointerException();
12384  }
12385  checkByteStringIsUtf8(value);
12386 
12387  logTag_ = value;
12388  onChanged();
12389  return this;
12390  }
12391  @java.lang.Override
12393  final com.google.protobuf.UnknownFieldSet unknownFields) {
12394  return super.setUnknownFields(unknownFields);
12395  }
12396 
12397  @java.lang.Override
12399  final com.google.protobuf.UnknownFieldSet unknownFields) {
12400  return super.mergeUnknownFields(unknownFields);
12401  }
12402 
12403 
12404  // @@protoc_insertion_point(builder_scope:operations_research.RoutingSearchParameters)
12405  }
12406 
12407  // @@protoc_insertion_point(class_scope:operations_research.RoutingSearchParameters)
12408  private static final com.google.ortools.constraintsolver.RoutingSearchParameters DEFAULT_INSTANCE;
12409  static {
12410  DEFAULT_INSTANCE = new com.google.ortools.constraintsolver.RoutingSearchParameters();
12411  }
12412 
12413  public static com.google.ortools.constraintsolver.RoutingSearchParameters getDefaultInstance() {
12414  return DEFAULT_INSTANCE;
12415  }
12416 
12417  private static final com.google.protobuf.Parser<RoutingSearchParameters>
12418  PARSER = new com.google.protobuf.AbstractParser<RoutingSearchParameters>() {
12419  @java.lang.Override
12420  public RoutingSearchParameters parsePartialFrom(
12421  com.google.protobuf.CodedInputStream input,
12422  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
12423  throws com.google.protobuf.InvalidProtocolBufferException {
12424  return new RoutingSearchParameters(input, extensionRegistry);
12425  }
12426  };
12427 
12428  public static com.google.protobuf.Parser<RoutingSearchParameters> parser() {
12429  return PARSER;
12430  }
12431 
12432  @java.lang.Override
12433  public com.google.protobuf.Parser<RoutingSearchParameters> getParserForType() {
12434  return PARSER;
12435  }
12436 
12437  @java.lang.Override
12438  public com.google.ortools.constraintsolver.RoutingSearchParameters getDefaultInstanceForType() {
12439  return DEFAULT_INSTANCE;
12440  }
12441 
12442 }
12443 
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()