Google OR-Tools v9.11
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
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// Protobuf Java Version: 4.26.1
5package com.google.ortools.constraintsolver;
6
20public final class RoutingSearchParameters extends
21 com.google.protobuf.GeneratedMessage implements
22 // @@protoc_insertion_point(message_implements:operations_research.RoutingSearchParameters)
24private static final long serialVersionUID = 0L;
25 static {
26 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
27 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
28 /* major= */ 4,
29 /* minor= */ 26,
30 /* patch= */ 1,
31 /* suffix= */ "",
32 RoutingSearchParameters.class.getName());
33 }
34 // Use RoutingSearchParameters.newBuilder() to construct.
35 private RoutingSearchParameters(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
36 super(builder);
37 }
38 private RoutingSearchParameters() {
39 firstSolutionStrategy_ = 0;
40 localCheapestInsertionPickupDeliveryStrategy_ = 0;
41 localCheapestCostInsertionPickupDeliveryStrategy_ = 0;
42 localSearchMetaheuristic_ = 0;
43 useCp_ = 0;
44 useCpSat_ = 0;
45 useGeneralizedCpSat_ = 0;
46 continuousSchedulingSolver_ = 0;
47 mixedIntegerSchedulingSolver_ = 0;
48 logTag_ = "";
49 }
50
51 public static final com.google.protobuf.Descriptors.Descriptor
53 return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_descriptor;
54 }
55
56 @java.lang.Override
57 protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
59 return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_fieldAccessorTable
60 .ensureFieldAccessorsInitialized(
61 com.google.ortools.constraintsolver.RoutingSearchParameters.class, com.google.ortools.constraintsolver.RoutingSearchParameters.Builder.class);
62 }
63
74 implements com.google.protobuf.ProtocolMessageEnum {
112 ;
113
114 static {
115 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
116 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
117 /* major= */ 4,
118 /* minor= */ 26,
119 /* patch= */ 1,
120 /* suffix= */ "",
121 PairInsertionStrategy.class.getName());
122 }
130 public static final int AUTOMATIC_VALUE = 0;
138 public static final int BEST_PICKUP_THEN_BEST_DELIVERY_VALUE = 1;
146 public static final int BEST_PICKUP_DELIVERY_PAIR_VALUE = 2;
158 public static final int BEST_PICKUP_DELIVERY_PAIR_MULTITOUR_VALUE = 3;
159
160
161 public final int getNumber() {
162 if (this == UNRECOGNIZED) {
163 throw new java.lang.IllegalArgumentException(
164 "Can't get the number of an unknown enum value.");
165 }
166 return value;
167 }
168
174 @java.lang.Deprecated
175 public static PairInsertionStrategy valueOf(int value) {
176 return forNumber(value);
177 }
178
183 public static PairInsertionStrategy forNumber(int value) {
184 switch (value) {
185 case 0: return AUTOMATIC;
186 case 1: return BEST_PICKUP_THEN_BEST_DELIVERY;
187 case 2: return BEST_PICKUP_DELIVERY_PAIR;
188 case 3: return BEST_PICKUP_DELIVERY_PAIR_MULTITOUR;
189 default: return null;
190 }
191 }
192
193 public static com.google.protobuf.Internal.EnumLiteMap<PairInsertionStrategy>
195 return internalValueMap;
196 }
197 private static final com.google.protobuf.Internal.EnumLiteMap<
198 PairInsertionStrategy> internalValueMap =
199 new com.google.protobuf.Internal.EnumLiteMap<PairInsertionStrategy>() {
200 public PairInsertionStrategy findValueByNumber(int number) {
201 return PairInsertionStrategy.forNumber(number);
202 }
203 };
204
205 public final com.google.protobuf.Descriptors.EnumValueDescriptor
207 if (this == UNRECOGNIZED) {
208 throw new java.lang.IllegalStateException(
209 "Can't get the descriptor of an unrecognized enum value.");
210 }
211 return getDescriptor().getValues().get(ordinal());
212 }
213 public final com.google.protobuf.Descriptors.EnumDescriptor
215 return getDescriptor();
216 }
217 public static final com.google.protobuf.Descriptors.EnumDescriptor
219 return com.google.ortools.constraintsolver.RoutingSearchParameters.getDescriptor().getEnumTypes().get(0);
220 }
221
222 private static final PairInsertionStrategy[] VALUES = values();
223
225 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
226 if (desc.getType() != getDescriptor()) {
227 throw new java.lang.IllegalArgumentException(
228 "EnumValueDescriptor is not for this type.");
229 }
230 if (desc.getIndex() == -1) {
231 return UNRECOGNIZED;
232 }
233 return VALUES[desc.getIndex()];
234 }
235
236 private final int value;
237
238 private PairInsertionStrategy(int value) {
239 this.value = value;
240 }
241
242 // @@protoc_insertion_point(enum_scope:operations_research.RoutingSearchParameters.PairInsertionStrategy)
243 }
244
254 implements com.google.protobuf.ProtocolMessageEnum {
268 ;
269
270 static {
271 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
272 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
273 /* major= */ 4,
274 /* minor= */ 26,
275 /* patch= */ 1,
276 /* suffix= */ "",
277 SchedulingSolver.class.getName());
278 }
282 public static final int SCHEDULING_UNSET_VALUE = 0;
286 public static final int SCHEDULING_GLOP_VALUE = 1;
290 public static final int SCHEDULING_CP_SAT_VALUE = 2;
291
292
293 public final int getNumber() {
294 if (this == UNRECOGNIZED) {
295 throw new java.lang.IllegalArgumentException(
296 "Can't get the number of an unknown enum value.");
297 }
298 return value;
299 }
300
306 @java.lang.Deprecated
307 public static SchedulingSolver valueOf(int value) {
308 return forNumber(value);
309 }
310
315 public static SchedulingSolver forNumber(int value) {
316 switch (value) {
317 case 0: return SCHEDULING_UNSET;
318 case 1: return SCHEDULING_GLOP;
319 case 2: return SCHEDULING_CP_SAT;
320 default: return null;
321 }
322 }
323
324 public static com.google.protobuf.Internal.EnumLiteMap<SchedulingSolver>
326 return internalValueMap;
327 }
328 private static final com.google.protobuf.Internal.EnumLiteMap<
329 SchedulingSolver> internalValueMap =
330 new com.google.protobuf.Internal.EnumLiteMap<SchedulingSolver>() {
331 public SchedulingSolver findValueByNumber(int number) {
332 return SchedulingSolver.forNumber(number);
333 }
334 };
335
336 public final com.google.protobuf.Descriptors.EnumValueDescriptor
338 if (this == UNRECOGNIZED) {
339 throw new java.lang.IllegalStateException(
340 "Can't get the descriptor of an unrecognized enum value.");
341 }
342 return getDescriptor().getValues().get(ordinal());
343 }
344 public final com.google.protobuf.Descriptors.EnumDescriptor
346 return getDescriptor();
347 }
348 public static final com.google.protobuf.Descriptors.EnumDescriptor
350 return com.google.ortools.constraintsolver.RoutingSearchParameters.getDescriptor().getEnumTypes().get(1);
351 }
352
353 private static final SchedulingSolver[] VALUES = values();
354
356 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
357 if (desc.getType() != getDescriptor()) {
358 throw new java.lang.IllegalArgumentException(
359 "EnumValueDescriptor is not for this type.");
360 }
361 if (desc.getIndex() == -1) {
362 return UNRECOGNIZED;
363 }
364 return VALUES[desc.getIndex()];
365 }
366
367 private final int value;
368
369 private SchedulingSolver(int value) {
370 this.value = value;
371 }
372
373 // @@protoc_insertion_point(enum_scope:operations_research.RoutingSearchParameters.SchedulingSolver)
374 }
375
377 // @@protoc_insertion_point(interface_extends:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
378 com.google.protobuf.MessageOrBuilder {
379
414
449
480
541
586
617
648
669
704
723
760
797
836
861
890
921
958
985
1014
1041
1078
1107
1146
1179
1198
1227
1250
1273
1292
1315
1340
1361
1386
1407 }
1416 public static final class LocalSearchNeighborhoodOperators extends
1417 com.google.protobuf.GeneratedMessage implements
1418 // @@protoc_insertion_point(message_implements:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
1420 private static final long serialVersionUID = 0L;
1421 static {
1422 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
1423 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
1424 /* major= */ 4,
1425 /* minor= */ 26,
1426 /* patch= */ 1,
1427 /* suffix= */ "",
1428 LocalSearchNeighborhoodOperators.class.getName());
1429 }
1430 // Use LocalSearchNeighborhoodOperators.newBuilder() to construct.
1431 private LocalSearchNeighborhoodOperators(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
1432 super(builder);
1433 }
1435 useRelocate_ = 0;
1436 useRelocatePair_ = 0;
1437 useLightRelocatePair_ = 0;
1438 useRelocateNeighbors_ = 0;
1439 useRelocateSubtrip_ = 0;
1440 useExchange_ = 0;
1441 useExchangePair_ = 0;
1442 useExchangeSubtrip_ = 0;
1443 useCross_ = 0;
1444 useCrossExchange_ = 0;
1445 useRelocateExpensiveChain_ = 0;
1446 useTwoOpt_ = 0;
1447 useOrOpt_ = 0;
1448 useLinKernighan_ = 0;
1449 useTspOpt_ = 0;
1450 useMakeActive_ = 0;
1451 useRelocateAndMakeActive_ = 0;
1452 useMakeInactive_ = 0;
1453 useMakeChainInactive_ = 0;
1454 useSwapActive_ = 0;
1455 useExtendedSwapActive_ = 0;
1456 useShortestPathSwapActive_ = 0;
1457 useNodePairSwapActive_ = 0;
1458 usePathLns_ = 0;
1459 useFullPathLns_ = 0;
1460 useTspLns_ = 0;
1461 useInactiveLns_ = 0;
1462 useGlobalCheapestInsertionPathLns_ = 0;
1463 useLocalCheapestInsertionPathLns_ = 0;
1464 useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = 0;
1465 useGlobalCheapestInsertionExpensiveChainLns_ = 0;
1466 useLocalCheapestInsertionExpensiveChainLns_ = 0;
1467 useGlobalCheapestInsertionCloseNodesLns_ = 0;
1468 useLocalCheapestInsertionCloseNodesLns_ = 0;
1469 }
1470
1471 public static final com.google.protobuf.Descriptors.Descriptor
1473 return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_LocalSearchNeighborhoodOperators_descriptor;
1474 }
1475
1476 @java.lang.Override
1477 protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
1479 return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_LocalSearchNeighborhoodOperators_fieldAccessorTable
1480 .ensureFieldAccessorsInitialized(
1481 com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.class, com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.Builder.class);
1482 }
1483
1484 public static final int USE_RELOCATE_FIELD_NUMBER = 1;
1485 private int useRelocate_ = 0;
1502 @java.lang.Override public int getUseRelocateValue() {
1503 return useRelocate_;
1504 }
1522 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useRelocate_);
1523 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
1524 }
1525
1526 public static final int USE_RELOCATE_PAIR_FIELD_NUMBER = 2;
1527 private int useRelocatePair_ = 0;
1544 @java.lang.Override public int getUseRelocatePairValue() {
1545 return useRelocatePair_;
1546 }
1564 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useRelocatePair_);
1565 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
1566 }
1567
1568 public static final int USE_LIGHT_RELOCATE_PAIR_FIELD_NUMBER = 24;
1569 private int useLightRelocatePair_ = 0;
1584 @java.lang.Override public int getUseLightRelocatePairValue() {
1585 return useLightRelocatePair_;
1586 }
1602 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useLightRelocatePair_);
1603 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
1604 }
1605
1606 public static final int USE_RELOCATE_NEIGHBORS_FIELD_NUMBER = 3;
1607 private int useRelocateNeighbors_ = 0;
1637 @java.lang.Override public int getUseRelocateNeighborsValue() {
1638 return useRelocateNeighbors_;
1639 }
1670 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useRelocateNeighbors_);
1671 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
1672 }
1673
1674 public static final int USE_RELOCATE_SUBTRIP_FIELD_NUMBER = 25;
1675 private int useRelocateSubtrip_ = 0;
1697 @java.lang.Override public int getUseRelocateSubtripValue() {
1698 return useRelocateSubtrip_;
1699 }
1722 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useRelocateSubtrip_);
1723 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
1724 }
1725
1726 public static final int USE_EXCHANGE_FIELD_NUMBER = 4;
1727 private int useExchange_ = 0;
1742 @java.lang.Override public int getUseExchangeValue() {
1743 return useExchange_;
1744 }
1760 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useExchange_);
1761 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
1762 }
1763
1764 public static final int USE_EXCHANGE_PAIR_FIELD_NUMBER = 22;
1765 private int useExchangePair_ = 0;
1780 @java.lang.Override public int getUseExchangePairValue() {
1781 return useExchangePair_;
1782 }
1798 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useExchangePair_);
1799 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
1800 }
1801
1802 public static final int USE_EXCHANGE_SUBTRIP_FIELD_NUMBER = 26;
1803 private int useExchangeSubtrip_ = 0;
1813 @java.lang.Override public int getUseExchangeSubtripValue() {
1814 return useExchangeSubtrip_;
1815 }
1826 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useExchangeSubtrip_);
1827 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
1828 }
1829
1830 public static final int USE_CROSS_FIELD_NUMBER = 5;
1831 private int useCross_ = 0;
1848 @java.lang.Override public int getUseCrossValue() {
1849 return useCross_;
1850 }
1868 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useCross_);
1869 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
1870 }
1871
1872 public static final int USE_CROSS_EXCHANGE_FIELD_NUMBER = 6;
1873 private int useCrossExchange_ = 0;
1882 @java.lang.Override public int getUseCrossExchangeValue() {
1883 return useCrossExchange_;
1884 }
1894 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useCrossExchange_);
1895 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
1896 }
1897
1898 public static final int USE_RELOCATE_EXPENSIVE_CHAIN_FIELD_NUMBER = 23;
1899 private int useRelocateExpensiveChain_ = 0;
1917 @java.lang.Override public int getUseRelocateExpensiveChainValue() {
1918 return useRelocateExpensiveChain_;
1919 }
1938 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useRelocateExpensiveChain_);
1939 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
1940 }
1941
1942 public static final int USE_TWO_OPT_FIELD_NUMBER = 7;
1943 private int useTwoOpt_ = 0;
1961 @java.lang.Override public int getUseTwoOptValue() {
1962 return useTwoOpt_;
1963 }
1982 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useTwoOpt_);
1983 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
1984 }
1985
1986 public static final int USE_OR_OPT_FIELD_NUMBER = 8;
1987 private int useOrOpt_ = 0;
2006 @java.lang.Override public int getUseOrOptValue() {
2007 return useOrOpt_;
2008 }
2028 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useOrOpt_);
2029 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2030 }
2031
2032 public static final int USE_LIN_KERNIGHAN_FIELD_NUMBER = 9;
2033 private int useLinKernighan_ = 0;
2045 @java.lang.Override public int getUseLinKernighanValue() {
2046 return useLinKernighan_;
2047 }
2060 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useLinKernighan_);
2061 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2062 }
2063
2064 public static final int USE_TSP_OPT_FIELD_NUMBER = 10;
2065 private int useTspOpt_ = 0;
2079 @java.lang.Override public int getUseTspOptValue() {
2080 return useTspOpt_;
2081 }
2096 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useTspOpt_);
2097 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2098 }
2099
2100 public static final int USE_MAKE_ACTIVE_FIELD_NUMBER = 11;
2101 private int useMakeActive_ = 0;
2116 @java.lang.Override public int getUseMakeActiveValue() {
2117 return useMakeActive_;
2118 }
2134 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useMakeActive_);
2135 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2136 }
2137
2138 public static final int USE_RELOCATE_AND_MAKE_ACTIVE_FIELD_NUMBER = 21;
2139 private int useRelocateAndMakeActive_ = 0;
2157 @java.lang.Override public int getUseRelocateAndMakeActiveValue() {
2158 return useRelocateAndMakeActive_;
2159 }
2178 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useRelocateAndMakeActive_);
2179 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2180 }
2181
2182 public static final int USE_MAKE_INACTIVE_FIELD_NUMBER = 12;
2183 private int useMakeInactive_ = 0;
2196 @java.lang.Override public int getUseMakeInactiveValue() {
2197 return useMakeInactive_;
2198 }
2212 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useMakeInactive_);
2213 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2214 }
2215
2216 public static final int USE_MAKE_CHAIN_INACTIVE_FIELD_NUMBER = 13;
2217 private int useMakeChainInactive_ = 0;
2231 @java.lang.Override public int getUseMakeChainInactiveValue() {
2232 return useMakeChainInactive_;
2233 }
2248 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useMakeChainInactive_);
2249 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2250 }
2251
2252 public static final int USE_SWAP_ACTIVE_FIELD_NUMBER = 14;
2253 private int useSwapActive_ = 0;
2266 @java.lang.Override public int getUseSwapActiveValue() {
2267 return useSwapActive_;
2268 }
2282 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useSwapActive_);
2283 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2284 }
2285
2286 public static final int USE_EXTENDED_SWAP_ACTIVE_FIELD_NUMBER = 15;
2287 private int useExtendedSwapActive_ = 0;
2305 @java.lang.Override public int getUseExtendedSwapActiveValue() {
2306 return useExtendedSwapActive_;
2307 }
2326 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useExtendedSwapActive_);
2327 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2328 }
2329
2331 private int useShortestPathSwapActive_ = 0;
2345 @java.lang.Override public int getUseShortestPathSwapActiveValue() {
2346 return useShortestPathSwapActive_;
2347 }
2362 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useShortestPathSwapActive_);
2363 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2364 }
2365
2366 public static final int USE_NODE_PAIR_SWAP_ACTIVE_FIELD_NUMBER = 20;
2367 private int useNodePairSwapActive_ = 0;
2386 @java.lang.Override public int getUseNodePairSwapActiveValue() {
2387 return useNodePairSwapActive_;
2388 }
2408 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useNodePairSwapActive_);
2409 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2410 }
2411
2412 public static final int USE_PATH_LNS_FIELD_NUMBER = 16;
2413 private int usePathLns_ = 0;
2429 @java.lang.Override public int getUsePathLnsValue() {
2430 return usePathLns_;
2431 }
2448 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(usePathLns_);
2449 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2450 }
2451
2452 public static final int USE_FULL_PATH_LNS_FIELD_NUMBER = 17;
2453 private int useFullPathLns_ = 0;
2462 @java.lang.Override public int getUseFullPathLnsValue() {
2463 return useFullPathLns_;
2464 }
2474 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useFullPathLns_);
2475 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2476 }
2477
2478 public static final int USE_TSP_LNS_FIELD_NUMBER = 18;
2479 private int useTspLns_ = 0;
2493 @java.lang.Override public int getUseTspLnsValue() {
2494 return useTspLns_;
2495 }
2510 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useTspLns_);
2511 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2512 }
2513
2514 public static final int USE_INACTIVE_LNS_FIELD_NUMBER = 19;
2515 private int useInactiveLns_ = 0;
2526 @java.lang.Override public int getUseInactiveLnsValue() {
2527 return useInactiveLns_;
2528 }
2540 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useInactiveLns_);
2541 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2542 }
2543
2545 private int useGlobalCheapestInsertionPathLns_ = 0;
2556 @java.lang.Override public int getUseGlobalCheapestInsertionPathLnsValue() {
2557 return useGlobalCheapestInsertionPathLns_;
2558 }
2570 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useGlobalCheapestInsertionPathLns_);
2571 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2572 }
2573
2575 private int useLocalCheapestInsertionPathLns_ = 0;
2584 @java.lang.Override public int getUseLocalCheapestInsertionPathLnsValue() {
2585 return useLocalCheapestInsertionPathLns_;
2586 }
2596 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useLocalCheapestInsertionPathLns_);
2597 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2598 }
2599
2601 private int useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = 0;
2613 return useRelocatePathGlobalCheapestInsertionInsertUnperformed_;
2614 }
2626 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useRelocatePathGlobalCheapestInsertionInsertUnperformed_);
2627 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2628 }
2629
2631 private int useGlobalCheapestInsertionExpensiveChainLns_ = 0;
2644 return useGlobalCheapestInsertionExpensiveChainLns_;
2645 }
2658 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useGlobalCheapestInsertionExpensiveChainLns_);
2659 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2660 }
2661
2663 private int useLocalCheapestInsertionExpensiveChainLns_ = 0;
2674 return useLocalCheapestInsertionExpensiveChainLns_;
2675 }
2686 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useLocalCheapestInsertionExpensiveChainLns_);
2687 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2688 }
2689
2691 private int useGlobalCheapestInsertionCloseNodesLns_ = 0;
2703 @java.lang.Override public int getUseGlobalCheapestInsertionCloseNodesLnsValue() {
2704 return useGlobalCheapestInsertionCloseNodesLns_;
2705 }
2718 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useGlobalCheapestInsertionCloseNodesLns_);
2719 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2720 }
2721
2723 private int useLocalCheapestInsertionCloseNodesLns_ = 0;
2733 @java.lang.Override public int getUseLocalCheapestInsertionCloseNodesLnsValue() {
2734 return useLocalCheapestInsertionCloseNodesLns_;
2735 }
2746 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useLocalCheapestInsertionCloseNodesLns_);
2747 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2748 }
2749
2750 private byte memoizedIsInitialized = -1;
2751 @java.lang.Override
2752 public final boolean isInitialized() {
2753 byte isInitialized = memoizedIsInitialized;
2754 if (isInitialized == 1) return true;
2755 if (isInitialized == 0) return false;
2756
2757 memoizedIsInitialized = 1;
2758 return true;
2759 }
2760
2761 @java.lang.Override
2762 public void writeTo(com.google.protobuf.CodedOutputStream output)
2763 throws java.io.IOException {
2764 if (useRelocate_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2765 output.writeEnum(1, useRelocate_);
2766 }
2767 if (useRelocatePair_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2768 output.writeEnum(2, useRelocatePair_);
2769 }
2770 if (useRelocateNeighbors_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2771 output.writeEnum(3, useRelocateNeighbors_);
2772 }
2773 if (useExchange_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2774 output.writeEnum(4, useExchange_);
2775 }
2776 if (useCross_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2777 output.writeEnum(5, useCross_);
2778 }
2779 if (useCrossExchange_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2780 output.writeEnum(6, useCrossExchange_);
2781 }
2782 if (useTwoOpt_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2783 output.writeEnum(7, useTwoOpt_);
2784 }
2785 if (useOrOpt_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2786 output.writeEnum(8, useOrOpt_);
2787 }
2788 if (useLinKernighan_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2789 output.writeEnum(9, useLinKernighan_);
2790 }
2791 if (useTspOpt_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2792 output.writeEnum(10, useTspOpt_);
2793 }
2794 if (useMakeActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2795 output.writeEnum(11, useMakeActive_);
2796 }
2797 if (useMakeInactive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2798 output.writeEnum(12, useMakeInactive_);
2799 }
2800 if (useMakeChainInactive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2801 output.writeEnum(13, useMakeChainInactive_);
2802 }
2803 if (useSwapActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2804 output.writeEnum(14, useSwapActive_);
2805 }
2806 if (useExtendedSwapActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2807 output.writeEnum(15, useExtendedSwapActive_);
2808 }
2809 if (usePathLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2810 output.writeEnum(16, usePathLns_);
2811 }
2812 if (useFullPathLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2813 output.writeEnum(17, useFullPathLns_);
2814 }
2815 if (useTspLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2816 output.writeEnum(18, useTspLns_);
2817 }
2818 if (useInactiveLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2819 output.writeEnum(19, useInactiveLns_);
2820 }
2821 if (useNodePairSwapActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2822 output.writeEnum(20, useNodePairSwapActive_);
2823 }
2824 if (useRelocateAndMakeActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2825 output.writeEnum(21, useRelocateAndMakeActive_);
2826 }
2827 if (useExchangePair_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2828 output.writeEnum(22, useExchangePair_);
2829 }
2830 if (useRelocateExpensiveChain_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2831 output.writeEnum(23, useRelocateExpensiveChain_);
2832 }
2833 if (useLightRelocatePair_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2834 output.writeEnum(24, useLightRelocatePair_);
2835 }
2836 if (useRelocateSubtrip_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2837 output.writeEnum(25, useRelocateSubtrip_);
2838 }
2839 if (useExchangeSubtrip_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2840 output.writeEnum(26, useExchangeSubtrip_);
2841 }
2842 if (useGlobalCheapestInsertionPathLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2843 output.writeEnum(27, useGlobalCheapestInsertionPathLns_);
2844 }
2845 if (useLocalCheapestInsertionPathLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2846 output.writeEnum(28, useLocalCheapestInsertionPathLns_);
2847 }
2848 if (useGlobalCheapestInsertionExpensiveChainLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2849 output.writeEnum(29, useGlobalCheapestInsertionExpensiveChainLns_);
2850 }
2851 if (useLocalCheapestInsertionExpensiveChainLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2852 output.writeEnum(30, useLocalCheapestInsertionExpensiveChainLns_);
2853 }
2854 if (useGlobalCheapestInsertionCloseNodesLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2855 output.writeEnum(31, useGlobalCheapestInsertionCloseNodesLns_);
2856 }
2857 if (useLocalCheapestInsertionCloseNodesLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2858 output.writeEnum(32, useLocalCheapestInsertionCloseNodesLns_);
2859 }
2860 if (useRelocatePathGlobalCheapestInsertionInsertUnperformed_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2861 output.writeEnum(33, useRelocatePathGlobalCheapestInsertionInsertUnperformed_);
2862 }
2863 if (useShortestPathSwapActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2864 output.writeEnum(34, useShortestPathSwapActive_);
2865 }
2866 getUnknownFields().writeTo(output);
2867 }
2868
2869 @java.lang.Override
2870 public int getSerializedSize() {
2871 int size = memoizedSize;
2872 if (size != -1) return size;
2873
2874 size = 0;
2875 if (useRelocate_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2876 size += com.google.protobuf.CodedOutputStream
2877 .computeEnumSize(1, useRelocate_);
2878 }
2879 if (useRelocatePair_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2880 size += com.google.protobuf.CodedOutputStream
2881 .computeEnumSize(2, useRelocatePair_);
2882 }
2883 if (useRelocateNeighbors_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2884 size += com.google.protobuf.CodedOutputStream
2885 .computeEnumSize(3, useRelocateNeighbors_);
2886 }
2887 if (useExchange_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2888 size += com.google.protobuf.CodedOutputStream
2889 .computeEnumSize(4, useExchange_);
2890 }
2891 if (useCross_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2892 size += com.google.protobuf.CodedOutputStream
2893 .computeEnumSize(5, useCross_);
2894 }
2895 if (useCrossExchange_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2896 size += com.google.protobuf.CodedOutputStream
2897 .computeEnumSize(6, useCrossExchange_);
2898 }
2899 if (useTwoOpt_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2900 size += com.google.protobuf.CodedOutputStream
2901 .computeEnumSize(7, useTwoOpt_);
2902 }
2903 if (useOrOpt_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2904 size += com.google.protobuf.CodedOutputStream
2905 .computeEnumSize(8, useOrOpt_);
2906 }
2907 if (useLinKernighan_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2908 size += com.google.protobuf.CodedOutputStream
2909 .computeEnumSize(9, useLinKernighan_);
2910 }
2911 if (useTspOpt_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2912 size += com.google.protobuf.CodedOutputStream
2913 .computeEnumSize(10, useTspOpt_);
2914 }
2915 if (useMakeActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2916 size += com.google.protobuf.CodedOutputStream
2917 .computeEnumSize(11, useMakeActive_);
2918 }
2919 if (useMakeInactive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2920 size += com.google.protobuf.CodedOutputStream
2921 .computeEnumSize(12, useMakeInactive_);
2922 }
2923 if (useMakeChainInactive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2924 size += com.google.protobuf.CodedOutputStream
2925 .computeEnumSize(13, useMakeChainInactive_);
2926 }
2927 if (useSwapActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2928 size += com.google.protobuf.CodedOutputStream
2929 .computeEnumSize(14, useSwapActive_);
2930 }
2931 if (useExtendedSwapActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2932 size += com.google.protobuf.CodedOutputStream
2933 .computeEnumSize(15, useExtendedSwapActive_);
2934 }
2935 if (usePathLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2936 size += com.google.protobuf.CodedOutputStream
2937 .computeEnumSize(16, usePathLns_);
2938 }
2939 if (useFullPathLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2940 size += com.google.protobuf.CodedOutputStream
2941 .computeEnumSize(17, useFullPathLns_);
2942 }
2943 if (useTspLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2944 size += com.google.protobuf.CodedOutputStream
2945 .computeEnumSize(18, useTspLns_);
2946 }
2947 if (useInactiveLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2948 size += com.google.protobuf.CodedOutputStream
2949 .computeEnumSize(19, useInactiveLns_);
2950 }
2951 if (useNodePairSwapActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2952 size += com.google.protobuf.CodedOutputStream
2953 .computeEnumSize(20, useNodePairSwapActive_);
2954 }
2955 if (useRelocateAndMakeActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2956 size += com.google.protobuf.CodedOutputStream
2957 .computeEnumSize(21, useRelocateAndMakeActive_);
2958 }
2959 if (useExchangePair_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2960 size += com.google.protobuf.CodedOutputStream
2961 .computeEnumSize(22, useExchangePair_);
2962 }
2963 if (useRelocateExpensiveChain_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2964 size += com.google.protobuf.CodedOutputStream
2965 .computeEnumSize(23, useRelocateExpensiveChain_);
2966 }
2967 if (useLightRelocatePair_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2968 size += com.google.protobuf.CodedOutputStream
2969 .computeEnumSize(24, useLightRelocatePair_);
2970 }
2971 if (useRelocateSubtrip_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2972 size += com.google.protobuf.CodedOutputStream
2973 .computeEnumSize(25, useRelocateSubtrip_);
2974 }
2975 if (useExchangeSubtrip_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2976 size += com.google.protobuf.CodedOutputStream
2977 .computeEnumSize(26, useExchangeSubtrip_);
2978 }
2979 if (useGlobalCheapestInsertionPathLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2980 size += com.google.protobuf.CodedOutputStream
2981 .computeEnumSize(27, useGlobalCheapestInsertionPathLns_);
2982 }
2983 if (useLocalCheapestInsertionPathLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2984 size += com.google.protobuf.CodedOutputStream
2985 .computeEnumSize(28, useLocalCheapestInsertionPathLns_);
2986 }
2987 if (useGlobalCheapestInsertionExpensiveChainLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2988 size += com.google.protobuf.CodedOutputStream
2989 .computeEnumSize(29, useGlobalCheapestInsertionExpensiveChainLns_);
2990 }
2991 if (useLocalCheapestInsertionExpensiveChainLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2992 size += com.google.protobuf.CodedOutputStream
2993 .computeEnumSize(30, useLocalCheapestInsertionExpensiveChainLns_);
2994 }
2995 if (useGlobalCheapestInsertionCloseNodesLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
2996 size += com.google.protobuf.CodedOutputStream
2997 .computeEnumSize(31, useGlobalCheapestInsertionCloseNodesLns_);
2998 }
2999 if (useLocalCheapestInsertionCloseNodesLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3000 size += com.google.protobuf.CodedOutputStream
3001 .computeEnumSize(32, useLocalCheapestInsertionCloseNodesLns_);
3002 }
3003 if (useRelocatePathGlobalCheapestInsertionInsertUnperformed_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3004 size += com.google.protobuf.CodedOutputStream
3005 .computeEnumSize(33, useRelocatePathGlobalCheapestInsertionInsertUnperformed_);
3006 }
3007 if (useShortestPathSwapActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3008 size += com.google.protobuf.CodedOutputStream
3009 .computeEnumSize(34, useShortestPathSwapActive_);
3010 }
3011 size += getUnknownFields().getSerializedSize();
3012 memoizedSize = size;
3013 return size;
3014 }
3015
3016 @java.lang.Override
3017 public boolean equals(final java.lang.Object obj) {
3018 if (obj == this) {
3019 return true;
3020 }
3021 if (!(obj instanceof com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators)) {
3022 return super.equals(obj);
3023 }
3024 com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators other = (com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators) obj;
3025
3026 if (useRelocate_ != other.useRelocate_) return false;
3027 if (useRelocatePair_ != other.useRelocatePair_) return false;
3028 if (useLightRelocatePair_ != other.useLightRelocatePair_) return false;
3029 if (useRelocateNeighbors_ != other.useRelocateNeighbors_) return false;
3030 if (useRelocateSubtrip_ != other.useRelocateSubtrip_) return false;
3031 if (useExchange_ != other.useExchange_) return false;
3032 if (useExchangePair_ != other.useExchangePair_) return false;
3033 if (useExchangeSubtrip_ != other.useExchangeSubtrip_) return false;
3034 if (useCross_ != other.useCross_) return false;
3035 if (useCrossExchange_ != other.useCrossExchange_) return false;
3036 if (useRelocateExpensiveChain_ != other.useRelocateExpensiveChain_) return false;
3037 if (useTwoOpt_ != other.useTwoOpt_) return false;
3038 if (useOrOpt_ != other.useOrOpt_) return false;
3039 if (useLinKernighan_ != other.useLinKernighan_) return false;
3040 if (useTspOpt_ != other.useTspOpt_) return false;
3041 if (useMakeActive_ != other.useMakeActive_) return false;
3042 if (useRelocateAndMakeActive_ != other.useRelocateAndMakeActive_) return false;
3043 if (useMakeInactive_ != other.useMakeInactive_) return false;
3044 if (useMakeChainInactive_ != other.useMakeChainInactive_) return false;
3045 if (useSwapActive_ != other.useSwapActive_) return false;
3046 if (useExtendedSwapActive_ != other.useExtendedSwapActive_) return false;
3047 if (useShortestPathSwapActive_ != other.useShortestPathSwapActive_) return false;
3048 if (useNodePairSwapActive_ != other.useNodePairSwapActive_) return false;
3049 if (usePathLns_ != other.usePathLns_) return false;
3050 if (useFullPathLns_ != other.useFullPathLns_) return false;
3051 if (useTspLns_ != other.useTspLns_) return false;
3052 if (useInactiveLns_ != other.useInactiveLns_) return false;
3053 if (useGlobalCheapestInsertionPathLns_ != other.useGlobalCheapestInsertionPathLns_) return false;
3054 if (useLocalCheapestInsertionPathLns_ != other.useLocalCheapestInsertionPathLns_) return false;
3055 if (useRelocatePathGlobalCheapestInsertionInsertUnperformed_ != other.useRelocatePathGlobalCheapestInsertionInsertUnperformed_) return false;
3056 if (useGlobalCheapestInsertionExpensiveChainLns_ != other.useGlobalCheapestInsertionExpensiveChainLns_) return false;
3057 if (useLocalCheapestInsertionExpensiveChainLns_ != other.useLocalCheapestInsertionExpensiveChainLns_) return false;
3058 if (useGlobalCheapestInsertionCloseNodesLns_ != other.useGlobalCheapestInsertionCloseNodesLns_) return false;
3059 if (useLocalCheapestInsertionCloseNodesLns_ != other.useLocalCheapestInsertionCloseNodesLns_) return false;
3060 if (!getUnknownFields().equals(other.getUnknownFields())) return false;
3061 return true;
3062 }
3063
3064 @java.lang.Override
3065 public int hashCode() {
3066 if (memoizedHashCode != 0) {
3067 return memoizedHashCode;
3068 }
3069 int hash = 41;
3070 hash = (19 * hash) + getDescriptor().hashCode();
3071 hash = (37 * hash) + USE_RELOCATE_FIELD_NUMBER;
3072 hash = (53 * hash) + useRelocate_;
3073 hash = (37 * hash) + USE_RELOCATE_PAIR_FIELD_NUMBER;
3074 hash = (53 * hash) + useRelocatePair_;
3075 hash = (37 * hash) + USE_LIGHT_RELOCATE_PAIR_FIELD_NUMBER;
3076 hash = (53 * hash) + useLightRelocatePair_;
3077 hash = (37 * hash) + USE_RELOCATE_NEIGHBORS_FIELD_NUMBER;
3078 hash = (53 * hash) + useRelocateNeighbors_;
3079 hash = (37 * hash) + USE_RELOCATE_SUBTRIP_FIELD_NUMBER;
3080 hash = (53 * hash) + useRelocateSubtrip_;
3081 hash = (37 * hash) + USE_EXCHANGE_FIELD_NUMBER;
3082 hash = (53 * hash) + useExchange_;
3083 hash = (37 * hash) + USE_EXCHANGE_PAIR_FIELD_NUMBER;
3084 hash = (53 * hash) + useExchangePair_;
3085 hash = (37 * hash) + USE_EXCHANGE_SUBTRIP_FIELD_NUMBER;
3086 hash = (53 * hash) + useExchangeSubtrip_;
3087 hash = (37 * hash) + USE_CROSS_FIELD_NUMBER;
3088 hash = (53 * hash) + useCross_;
3089 hash = (37 * hash) + USE_CROSS_EXCHANGE_FIELD_NUMBER;
3090 hash = (53 * hash) + useCrossExchange_;
3091 hash = (37 * hash) + USE_RELOCATE_EXPENSIVE_CHAIN_FIELD_NUMBER;
3092 hash = (53 * hash) + useRelocateExpensiveChain_;
3093 hash = (37 * hash) + USE_TWO_OPT_FIELD_NUMBER;
3094 hash = (53 * hash) + useTwoOpt_;
3095 hash = (37 * hash) + USE_OR_OPT_FIELD_NUMBER;
3096 hash = (53 * hash) + useOrOpt_;
3097 hash = (37 * hash) + USE_LIN_KERNIGHAN_FIELD_NUMBER;
3098 hash = (53 * hash) + useLinKernighan_;
3099 hash = (37 * hash) + USE_TSP_OPT_FIELD_NUMBER;
3100 hash = (53 * hash) + useTspOpt_;
3101 hash = (37 * hash) + USE_MAKE_ACTIVE_FIELD_NUMBER;
3102 hash = (53 * hash) + useMakeActive_;
3103 hash = (37 * hash) + USE_RELOCATE_AND_MAKE_ACTIVE_FIELD_NUMBER;
3104 hash = (53 * hash) + useRelocateAndMakeActive_;
3105 hash = (37 * hash) + USE_MAKE_INACTIVE_FIELD_NUMBER;
3106 hash = (53 * hash) + useMakeInactive_;
3107 hash = (37 * hash) + USE_MAKE_CHAIN_INACTIVE_FIELD_NUMBER;
3108 hash = (53 * hash) + useMakeChainInactive_;
3109 hash = (37 * hash) + USE_SWAP_ACTIVE_FIELD_NUMBER;
3110 hash = (53 * hash) + useSwapActive_;
3111 hash = (37 * hash) + USE_EXTENDED_SWAP_ACTIVE_FIELD_NUMBER;
3112 hash = (53 * hash) + useExtendedSwapActive_;
3113 hash = (37 * hash) + USE_SHORTEST_PATH_SWAP_ACTIVE_FIELD_NUMBER;
3114 hash = (53 * hash) + useShortestPathSwapActive_;
3115 hash = (37 * hash) + USE_NODE_PAIR_SWAP_ACTIVE_FIELD_NUMBER;
3116 hash = (53 * hash) + useNodePairSwapActive_;
3117 hash = (37 * hash) + USE_PATH_LNS_FIELD_NUMBER;
3118 hash = (53 * hash) + usePathLns_;
3119 hash = (37 * hash) + USE_FULL_PATH_LNS_FIELD_NUMBER;
3120 hash = (53 * hash) + useFullPathLns_;
3121 hash = (37 * hash) + USE_TSP_LNS_FIELD_NUMBER;
3122 hash = (53 * hash) + useTspLns_;
3123 hash = (37 * hash) + USE_INACTIVE_LNS_FIELD_NUMBER;
3124 hash = (53 * hash) + useInactiveLns_;
3126 hash = (53 * hash) + useGlobalCheapestInsertionPathLns_;
3128 hash = (53 * hash) + useLocalCheapestInsertionPathLns_;
3130 hash = (53 * hash) + useRelocatePathGlobalCheapestInsertionInsertUnperformed_;
3132 hash = (53 * hash) + useGlobalCheapestInsertionExpensiveChainLns_;
3134 hash = (53 * hash) + useLocalCheapestInsertionExpensiveChainLns_;
3136 hash = (53 * hash) + useGlobalCheapestInsertionCloseNodesLns_;
3138 hash = (53 * hash) + useLocalCheapestInsertionCloseNodesLns_;
3139 hash = (29 * hash) + getUnknownFields().hashCode();
3140 memoizedHashCode = hash;
3141 return hash;
3142 }
3143
3145 java.nio.ByteBuffer data)
3146 throws com.google.protobuf.InvalidProtocolBufferException {
3147 return PARSER.parseFrom(data);
3148 }
3150 java.nio.ByteBuffer data,
3151 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3152 throws com.google.protobuf.InvalidProtocolBufferException {
3153 return PARSER.parseFrom(data, extensionRegistry);
3154 }
3156 com.google.protobuf.ByteString data)
3157 throws com.google.protobuf.InvalidProtocolBufferException {
3158 return PARSER.parseFrom(data);
3159 }
3161 com.google.protobuf.ByteString data,
3162 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3163 throws com.google.protobuf.InvalidProtocolBufferException {
3164 return PARSER.parseFrom(data, extensionRegistry);
3165 }
3167 throws com.google.protobuf.InvalidProtocolBufferException {
3168 return PARSER.parseFrom(data);
3169 }
3171 byte[] data,
3172 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3173 throws com.google.protobuf.InvalidProtocolBufferException {
3174 return PARSER.parseFrom(data, extensionRegistry);
3175 }
3177 throws java.io.IOException {
3178 return com.google.protobuf.GeneratedMessage
3179 .parseWithIOException(PARSER, input);
3180 }
3182 java.io.InputStream input,
3183 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3184 throws java.io.IOException {
3185 return com.google.protobuf.GeneratedMessage
3186 .parseWithIOException(PARSER, input, extensionRegistry);
3187 }
3188
3190 throws java.io.IOException {
3191 return com.google.protobuf.GeneratedMessage
3192 .parseDelimitedWithIOException(PARSER, input);
3193 }
3194
3196 java.io.InputStream input,
3197 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3198 throws java.io.IOException {
3199 return com.google.protobuf.GeneratedMessage
3200 .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
3201 }
3203 com.google.protobuf.CodedInputStream input)
3204 throws java.io.IOException {
3205 return com.google.protobuf.GeneratedMessage
3206 .parseWithIOException(PARSER, input);
3207 }
3209 com.google.protobuf.CodedInputStream input,
3210 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3211 throws java.io.IOException {
3212 return com.google.protobuf.GeneratedMessage
3213 .parseWithIOException(PARSER, input, extensionRegistry);
3214 }
3215
3216 @java.lang.Override
3217 public Builder newBuilderForType() { return newBuilder(); }
3218 public static Builder newBuilder() {
3219 return DEFAULT_INSTANCE.toBuilder();
3220 }
3221 public static Builder newBuilder(com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators prototype) {
3222 return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
3223 }
3224 @java.lang.Override
3226 return this == DEFAULT_INSTANCE
3227 ? new Builder() : new Builder().mergeFrom(this);
3228 }
3229
3230 @java.lang.Override
3232 com.google.protobuf.GeneratedMessage.BuilderParent parent) {
3233 Builder builder = new Builder(parent);
3234 return builder;
3235 }
3244 public static final class Builder extends
3245 com.google.protobuf.GeneratedMessage.Builder<Builder> implements
3246 // @@protoc_insertion_point(builder_implements:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
3247 com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder {
3248 public static final com.google.protobuf.Descriptors.Descriptor
3250 return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_LocalSearchNeighborhoodOperators_descriptor;
3251 }
3252
3253 @java.lang.Override
3254 protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
3256 return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_LocalSearchNeighborhoodOperators_fieldAccessorTable
3257 .ensureFieldAccessorsInitialized(
3258 com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.class, com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.Builder.class);
3259 }
3260
3261 // Construct using com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.newBuilder()
3262 private Builder() {
3263
3264 }
3265
3266 private Builder(
3267 com.google.protobuf.GeneratedMessage.BuilderParent parent) {
3268 super(parent);
3269
3270 }
3271 @java.lang.Override
3272 public Builder clear() {
3273 super.clear();
3274 bitField0_ = 0;
3275 bitField1_ = 0;
3276 useRelocate_ = 0;
3277 useRelocatePair_ = 0;
3278 useLightRelocatePair_ = 0;
3279 useRelocateNeighbors_ = 0;
3280 useRelocateSubtrip_ = 0;
3281 useExchange_ = 0;
3282 useExchangePair_ = 0;
3283 useExchangeSubtrip_ = 0;
3284 useCross_ = 0;
3285 useCrossExchange_ = 0;
3286 useRelocateExpensiveChain_ = 0;
3287 useTwoOpt_ = 0;
3288 useOrOpt_ = 0;
3289 useLinKernighan_ = 0;
3290 useTspOpt_ = 0;
3291 useMakeActive_ = 0;
3292 useRelocateAndMakeActive_ = 0;
3293 useMakeInactive_ = 0;
3294 useMakeChainInactive_ = 0;
3295 useSwapActive_ = 0;
3296 useExtendedSwapActive_ = 0;
3297 useShortestPathSwapActive_ = 0;
3298 useNodePairSwapActive_ = 0;
3299 usePathLns_ = 0;
3300 useFullPathLns_ = 0;
3301 useTspLns_ = 0;
3302 useInactiveLns_ = 0;
3303 useGlobalCheapestInsertionPathLns_ = 0;
3304 useLocalCheapestInsertionPathLns_ = 0;
3305 useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = 0;
3306 useGlobalCheapestInsertionExpensiveChainLns_ = 0;
3307 useLocalCheapestInsertionExpensiveChainLns_ = 0;
3308 useGlobalCheapestInsertionCloseNodesLns_ = 0;
3309 useLocalCheapestInsertionCloseNodesLns_ = 0;
3310 return this;
3311 }
3312
3313 @java.lang.Override
3314 public com.google.protobuf.Descriptors.Descriptor
3316 return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_LocalSearchNeighborhoodOperators_descriptor;
3317 }
3318
3319 @java.lang.Override
3321 return com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.getDefaultInstance();
3322 }
3323
3324 @java.lang.Override
3332
3333 @java.lang.Override
3335 com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators result = new com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators(this);
3336 if (bitField0_ != 0) { buildPartial0(result); }
3337 if (bitField1_ != 0) { buildPartial1(result); }
3338 onBuilt();
3339 return result;
3340 }
3341
3342 private void buildPartial0(com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators result) {
3343 int from_bitField0_ = bitField0_;
3344 if (((from_bitField0_ & 0x00000001) != 0)) {
3345 result.useRelocate_ = useRelocate_;
3346 }
3347 if (((from_bitField0_ & 0x00000002) != 0)) {
3348 result.useRelocatePair_ = useRelocatePair_;
3349 }
3350 if (((from_bitField0_ & 0x00000004) != 0)) {
3351 result.useLightRelocatePair_ = useLightRelocatePair_;
3352 }
3353 if (((from_bitField0_ & 0x00000008) != 0)) {
3354 result.useRelocateNeighbors_ = useRelocateNeighbors_;
3355 }
3356 if (((from_bitField0_ & 0x00000010) != 0)) {
3357 result.useRelocateSubtrip_ = useRelocateSubtrip_;
3358 }
3359 if (((from_bitField0_ & 0x00000020) != 0)) {
3360 result.useExchange_ = useExchange_;
3361 }
3362 if (((from_bitField0_ & 0x00000040) != 0)) {
3363 result.useExchangePair_ = useExchangePair_;
3364 }
3365 if (((from_bitField0_ & 0x00000080) != 0)) {
3366 result.useExchangeSubtrip_ = useExchangeSubtrip_;
3367 }
3368 if (((from_bitField0_ & 0x00000100) != 0)) {
3369 result.useCross_ = useCross_;
3370 }
3371 if (((from_bitField0_ & 0x00000200) != 0)) {
3372 result.useCrossExchange_ = useCrossExchange_;
3373 }
3374 if (((from_bitField0_ & 0x00000400) != 0)) {
3375 result.useRelocateExpensiveChain_ = useRelocateExpensiveChain_;
3376 }
3377 if (((from_bitField0_ & 0x00000800) != 0)) {
3378 result.useTwoOpt_ = useTwoOpt_;
3379 }
3380 if (((from_bitField0_ & 0x00001000) != 0)) {
3381 result.useOrOpt_ = useOrOpt_;
3382 }
3383 if (((from_bitField0_ & 0x00002000) != 0)) {
3384 result.useLinKernighan_ = useLinKernighan_;
3385 }
3386 if (((from_bitField0_ & 0x00004000) != 0)) {
3387 result.useTspOpt_ = useTspOpt_;
3388 }
3389 if (((from_bitField0_ & 0x00008000) != 0)) {
3390 result.useMakeActive_ = useMakeActive_;
3391 }
3392 if (((from_bitField0_ & 0x00010000) != 0)) {
3393 result.useRelocateAndMakeActive_ = useRelocateAndMakeActive_;
3394 }
3395 if (((from_bitField0_ & 0x00020000) != 0)) {
3396 result.useMakeInactive_ = useMakeInactive_;
3397 }
3398 if (((from_bitField0_ & 0x00040000) != 0)) {
3399 result.useMakeChainInactive_ = useMakeChainInactive_;
3400 }
3401 if (((from_bitField0_ & 0x00080000) != 0)) {
3402 result.useSwapActive_ = useSwapActive_;
3403 }
3404 if (((from_bitField0_ & 0x00100000) != 0)) {
3405 result.useExtendedSwapActive_ = useExtendedSwapActive_;
3406 }
3407 if (((from_bitField0_ & 0x00200000) != 0)) {
3408 result.useShortestPathSwapActive_ = useShortestPathSwapActive_;
3409 }
3410 if (((from_bitField0_ & 0x00400000) != 0)) {
3411 result.useNodePairSwapActive_ = useNodePairSwapActive_;
3412 }
3413 if (((from_bitField0_ & 0x00800000) != 0)) {
3414 result.usePathLns_ = usePathLns_;
3415 }
3416 if (((from_bitField0_ & 0x01000000) != 0)) {
3417 result.useFullPathLns_ = useFullPathLns_;
3418 }
3419 if (((from_bitField0_ & 0x02000000) != 0)) {
3420 result.useTspLns_ = useTspLns_;
3421 }
3422 if (((from_bitField0_ & 0x04000000) != 0)) {
3423 result.useInactiveLns_ = useInactiveLns_;
3424 }
3425 if (((from_bitField0_ & 0x08000000) != 0)) {
3426 result.useGlobalCheapestInsertionPathLns_ = useGlobalCheapestInsertionPathLns_;
3427 }
3428 if (((from_bitField0_ & 0x10000000) != 0)) {
3429 result.useLocalCheapestInsertionPathLns_ = useLocalCheapestInsertionPathLns_;
3430 }
3431 if (((from_bitField0_ & 0x20000000) != 0)) {
3432 result.useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = useRelocatePathGlobalCheapestInsertionInsertUnperformed_;
3433 }
3434 if (((from_bitField0_ & 0x40000000) != 0)) {
3435 result.useGlobalCheapestInsertionExpensiveChainLns_ = useGlobalCheapestInsertionExpensiveChainLns_;
3436 }
3437 if (((from_bitField0_ & 0x80000000) != 0)) {
3438 result.useLocalCheapestInsertionExpensiveChainLns_ = useLocalCheapestInsertionExpensiveChainLns_;
3439 }
3440 }
3441
3442 private void buildPartial1(com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators result) {
3443 int from_bitField1_ = bitField1_;
3444 if (((from_bitField1_ & 0x00000001) != 0)) {
3445 result.useGlobalCheapestInsertionCloseNodesLns_ = useGlobalCheapestInsertionCloseNodesLns_;
3446 }
3447 if (((from_bitField1_ & 0x00000002) != 0)) {
3448 result.useLocalCheapestInsertionCloseNodesLns_ = useLocalCheapestInsertionCloseNodesLns_;
3449 }
3450 }
3451
3452 @java.lang.Override
3453 public Builder mergeFrom(com.google.protobuf.Message other) {
3454 if (other instanceof com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators) {
3455 return mergeFrom((com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators)other);
3456 } else {
3457 super.mergeFrom(other);
3458 return this;
3459 }
3460 }
3461
3462 public Builder mergeFrom(com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators other) {
3463 if (other == com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.getDefaultInstance()) return this;
3464 if (other.useRelocate_ != 0) {
3465 setUseRelocateValue(other.getUseRelocateValue());
3466 }
3467 if (other.useRelocatePair_ != 0) {
3468 setUseRelocatePairValue(other.getUseRelocatePairValue());
3469 }
3470 if (other.useLightRelocatePair_ != 0) {
3471 setUseLightRelocatePairValue(other.getUseLightRelocatePairValue());
3472 }
3473 if (other.useRelocateNeighbors_ != 0) {
3474 setUseRelocateNeighborsValue(other.getUseRelocateNeighborsValue());
3475 }
3476 if (other.useRelocateSubtrip_ != 0) {
3477 setUseRelocateSubtripValue(other.getUseRelocateSubtripValue());
3478 }
3479 if (other.useExchange_ != 0) {
3480 setUseExchangeValue(other.getUseExchangeValue());
3481 }
3482 if (other.useExchangePair_ != 0) {
3483 setUseExchangePairValue(other.getUseExchangePairValue());
3484 }
3485 if (other.useExchangeSubtrip_ != 0) {
3486 setUseExchangeSubtripValue(other.getUseExchangeSubtripValue());
3487 }
3488 if (other.useCross_ != 0) {
3489 setUseCrossValue(other.getUseCrossValue());
3490 }
3491 if (other.useCrossExchange_ != 0) {
3492 setUseCrossExchangeValue(other.getUseCrossExchangeValue());
3493 }
3494 if (other.useRelocateExpensiveChain_ != 0) {
3495 setUseRelocateExpensiveChainValue(other.getUseRelocateExpensiveChainValue());
3496 }
3497 if (other.useTwoOpt_ != 0) {
3498 setUseTwoOptValue(other.getUseTwoOptValue());
3499 }
3500 if (other.useOrOpt_ != 0) {
3501 setUseOrOptValue(other.getUseOrOptValue());
3502 }
3503 if (other.useLinKernighan_ != 0) {
3504 setUseLinKernighanValue(other.getUseLinKernighanValue());
3505 }
3506 if (other.useTspOpt_ != 0) {
3507 setUseTspOptValue(other.getUseTspOptValue());
3508 }
3509 if (other.useMakeActive_ != 0) {
3510 setUseMakeActiveValue(other.getUseMakeActiveValue());
3511 }
3512 if (other.useRelocateAndMakeActive_ != 0) {
3513 setUseRelocateAndMakeActiveValue(other.getUseRelocateAndMakeActiveValue());
3514 }
3515 if (other.useMakeInactive_ != 0) {
3516 setUseMakeInactiveValue(other.getUseMakeInactiveValue());
3517 }
3518 if (other.useMakeChainInactive_ != 0) {
3519 setUseMakeChainInactiveValue(other.getUseMakeChainInactiveValue());
3520 }
3521 if (other.useSwapActive_ != 0) {
3522 setUseSwapActiveValue(other.getUseSwapActiveValue());
3523 }
3524 if (other.useExtendedSwapActive_ != 0) {
3525 setUseExtendedSwapActiveValue(other.getUseExtendedSwapActiveValue());
3526 }
3527 if (other.useShortestPathSwapActive_ != 0) {
3528 setUseShortestPathSwapActiveValue(other.getUseShortestPathSwapActiveValue());
3529 }
3530 if (other.useNodePairSwapActive_ != 0) {
3531 setUseNodePairSwapActiveValue(other.getUseNodePairSwapActiveValue());
3532 }
3533 if (other.usePathLns_ != 0) {
3534 setUsePathLnsValue(other.getUsePathLnsValue());
3535 }
3536 if (other.useFullPathLns_ != 0) {
3537 setUseFullPathLnsValue(other.getUseFullPathLnsValue());
3538 }
3539 if (other.useTspLns_ != 0) {
3540 setUseTspLnsValue(other.getUseTspLnsValue());
3541 }
3542 if (other.useInactiveLns_ != 0) {
3543 setUseInactiveLnsValue(other.getUseInactiveLnsValue());
3544 }
3545 if (other.useGlobalCheapestInsertionPathLns_ != 0) {
3546 setUseGlobalCheapestInsertionPathLnsValue(other.getUseGlobalCheapestInsertionPathLnsValue());
3547 }
3548 if (other.useLocalCheapestInsertionPathLns_ != 0) {
3549 setUseLocalCheapestInsertionPathLnsValue(other.getUseLocalCheapestInsertionPathLnsValue());
3550 }
3551 if (other.useRelocatePathGlobalCheapestInsertionInsertUnperformed_ != 0) {
3552 setUseRelocatePathGlobalCheapestInsertionInsertUnperformedValue(other.getUseRelocatePathGlobalCheapestInsertionInsertUnperformedValue());
3553 }
3554 if (other.useGlobalCheapestInsertionExpensiveChainLns_ != 0) {
3555 setUseGlobalCheapestInsertionExpensiveChainLnsValue(other.getUseGlobalCheapestInsertionExpensiveChainLnsValue());
3556 }
3557 if (other.useLocalCheapestInsertionExpensiveChainLns_ != 0) {
3558 setUseLocalCheapestInsertionExpensiveChainLnsValue(other.getUseLocalCheapestInsertionExpensiveChainLnsValue());
3559 }
3560 if (other.useGlobalCheapestInsertionCloseNodesLns_ != 0) {
3561 setUseGlobalCheapestInsertionCloseNodesLnsValue(other.getUseGlobalCheapestInsertionCloseNodesLnsValue());
3562 }
3563 if (other.useLocalCheapestInsertionCloseNodesLns_ != 0) {
3564 setUseLocalCheapestInsertionCloseNodesLnsValue(other.getUseLocalCheapestInsertionCloseNodesLnsValue());
3565 }
3566 this.mergeUnknownFields(other.getUnknownFields());
3567 onChanged();
3568 return this;
3569 }
3570
3571 @java.lang.Override
3572 public final boolean isInitialized() {
3573 return true;
3574 }
3575
3576 @java.lang.Override
3578 com.google.protobuf.CodedInputStream input,
3579 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3580 throws java.io.IOException {
3581 if (extensionRegistry == null) {
3582 throw new java.lang.NullPointerException();
3583 }
3584 try {
3585 boolean done = false;
3586 while (!done) {
3587 int tag = input.readTag();
3588 switch (tag) {
3589 case 0:
3590 done = true;
3591 break;
3592 case 8: {
3593 useRelocate_ = input.readEnum();
3594 bitField0_ |= 0x00000001;
3595 break;
3596 } // case 8
3597 case 16: {
3598 useRelocatePair_ = input.readEnum();
3599 bitField0_ |= 0x00000002;
3600 break;
3601 } // case 16
3602 case 24: {
3603 useRelocateNeighbors_ = input.readEnum();
3604 bitField0_ |= 0x00000008;
3605 break;
3606 } // case 24
3607 case 32: {
3608 useExchange_ = input.readEnum();
3609 bitField0_ |= 0x00000020;
3610 break;
3611 } // case 32
3612 case 40: {
3613 useCross_ = input.readEnum();
3614 bitField0_ |= 0x00000100;
3615 break;
3616 } // case 40
3617 case 48: {
3618 useCrossExchange_ = input.readEnum();
3619 bitField0_ |= 0x00000200;
3620 break;
3621 } // case 48
3622 case 56: {
3623 useTwoOpt_ = input.readEnum();
3624 bitField0_ |= 0x00000800;
3625 break;
3626 } // case 56
3627 case 64: {
3628 useOrOpt_ = input.readEnum();
3629 bitField0_ |= 0x00001000;
3630 break;
3631 } // case 64
3632 case 72: {
3633 useLinKernighan_ = input.readEnum();
3634 bitField0_ |= 0x00002000;
3635 break;
3636 } // case 72
3637 case 80: {
3638 useTspOpt_ = input.readEnum();
3639 bitField0_ |= 0x00004000;
3640 break;
3641 } // case 80
3642 case 88: {
3643 useMakeActive_ = input.readEnum();
3644 bitField0_ |= 0x00008000;
3645 break;
3646 } // case 88
3647 case 96: {
3648 useMakeInactive_ = input.readEnum();
3649 bitField0_ |= 0x00020000;
3650 break;
3651 } // case 96
3652 case 104: {
3653 useMakeChainInactive_ = input.readEnum();
3654 bitField0_ |= 0x00040000;
3655 break;
3656 } // case 104
3657 case 112: {
3658 useSwapActive_ = input.readEnum();
3659 bitField0_ |= 0x00080000;
3660 break;
3661 } // case 112
3662 case 120: {
3663 useExtendedSwapActive_ = input.readEnum();
3664 bitField0_ |= 0x00100000;
3665 break;
3666 } // case 120
3667 case 128: {
3668 usePathLns_ = input.readEnum();
3669 bitField0_ |= 0x00800000;
3670 break;
3671 } // case 128
3672 case 136: {
3673 useFullPathLns_ = input.readEnum();
3674 bitField0_ |= 0x01000000;
3675 break;
3676 } // case 136
3677 case 144: {
3678 useTspLns_ = input.readEnum();
3679 bitField0_ |= 0x02000000;
3680 break;
3681 } // case 144
3682 case 152: {
3683 useInactiveLns_ = input.readEnum();
3684 bitField0_ |= 0x04000000;
3685 break;
3686 } // case 152
3687 case 160: {
3688 useNodePairSwapActive_ = input.readEnum();
3689 bitField0_ |= 0x00400000;
3690 break;
3691 } // case 160
3692 case 168: {
3693 useRelocateAndMakeActive_ = input.readEnum();
3694 bitField0_ |= 0x00010000;
3695 break;
3696 } // case 168
3697 case 176: {
3698 useExchangePair_ = input.readEnum();
3699 bitField0_ |= 0x00000040;
3700 break;
3701 } // case 176
3702 case 184: {
3703 useRelocateExpensiveChain_ = input.readEnum();
3704 bitField0_ |= 0x00000400;
3705 break;
3706 } // case 184
3707 case 192: {
3708 useLightRelocatePair_ = input.readEnum();
3709 bitField0_ |= 0x00000004;
3710 break;
3711 } // case 192
3712 case 200: {
3713 useRelocateSubtrip_ = input.readEnum();
3714 bitField0_ |= 0x00000010;
3715 break;
3716 } // case 200
3717 case 208: {
3718 useExchangeSubtrip_ = input.readEnum();
3719 bitField0_ |= 0x00000080;
3720 break;
3721 } // case 208
3722 case 216: {
3723 useGlobalCheapestInsertionPathLns_ = input.readEnum();
3724 bitField0_ |= 0x08000000;
3725 break;
3726 } // case 216
3727 case 224: {
3728 useLocalCheapestInsertionPathLns_ = input.readEnum();
3729 bitField0_ |= 0x10000000;
3730 break;
3731 } // case 224
3732 case 232: {
3733 useGlobalCheapestInsertionExpensiveChainLns_ = input.readEnum();
3734 bitField0_ |= 0x40000000;
3735 break;
3736 } // case 232
3737 case 240: {
3738 useLocalCheapestInsertionExpensiveChainLns_ = input.readEnum();
3739 bitField0_ |= 0x80000000;
3740 break;
3741 } // case 240
3742 case 248: {
3743 useGlobalCheapestInsertionCloseNodesLns_ = input.readEnum();
3744 bitField1_ |= 0x00000001;
3745 break;
3746 } // case 248
3747 case 256: {
3748 useLocalCheapestInsertionCloseNodesLns_ = input.readEnum();
3749 bitField1_ |= 0x00000002;
3750 break;
3751 } // case 256
3752 case 264: {
3753 useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = input.readEnum();
3754 bitField0_ |= 0x20000000;
3755 break;
3756 } // case 264
3757 case 272: {
3758 useShortestPathSwapActive_ = input.readEnum();
3759 bitField0_ |= 0x00200000;
3760 break;
3761 } // case 272
3762 default: {
3763 if (!super.parseUnknownField(input, extensionRegistry, tag)) {
3764 done = true; // was an endgroup tag
3765 }
3766 break;
3767 } // default:
3768 } // switch (tag)
3769 } // while (!done)
3770 } catch (com.google.protobuf.InvalidProtocolBufferException e) {
3771 throw e.unwrapIOException();
3772 } finally {
3773 onChanged();
3774 } // finally
3775 return this;
3776 }
3777 private int bitField0_;
3778 private int bitField1_;
3779
3780 private int useRelocate_ = 0;
3797 @java.lang.Override public int getUseRelocateValue() {
3798 return useRelocate_;
3799 }
3817 public Builder setUseRelocateValue(int value) {
3818 useRelocate_ = value;
3819 bitField0_ |= 0x00000001;
3820 onChanged();
3821 return this;
3822 }
3839 @java.lang.Override
3841 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useRelocate_);
3842 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
3843 }
3861 public Builder setUseRelocate(com.google.ortools.util.OptionalBoolean value) {
3862 if (value == null) {
3863 throw new NullPointerException();
3864 }
3865 bitField0_ |= 0x00000001;
3866 useRelocate_ = value.getNumber();
3867 onChanged();
3868 return this;
3869 }
3887 bitField0_ = (bitField0_ & ~0x00000001);
3888 useRelocate_ = 0;
3889 onChanged();
3890 return this;
3891 }
3892
3893 private int useRelocatePair_ = 0;
3910 @java.lang.Override public int getUseRelocatePairValue() {
3911 return useRelocatePair_;
3912 }
3931 useRelocatePair_ = value;
3932 bitField0_ |= 0x00000002;
3933 onChanged();
3934 return this;
3935 }
3952 @java.lang.Override
3954 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useRelocatePair_);
3955 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
3956 }
3974 public Builder setUseRelocatePair(com.google.ortools.util.OptionalBoolean value) {
3975 if (value == null) {
3976 throw new NullPointerException();
3977 }
3978 bitField0_ |= 0x00000002;
3979 useRelocatePair_ = value.getNumber();
3980 onChanged();
3981 return this;
3982 }
4000 bitField0_ = (bitField0_ & ~0x00000002);
4001 useRelocatePair_ = 0;
4002 onChanged();
4003 return this;
4004 }
4005
4006 private int useLightRelocatePair_ = 0;
4021 @java.lang.Override public int getUseLightRelocatePairValue() {
4022 return useLightRelocatePair_;
4023 }
4040 useLightRelocatePair_ = value;
4041 bitField0_ |= 0x00000004;
4042 onChanged();
4043 return this;
4044 }
4059 @java.lang.Override
4061 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useLightRelocatePair_);
4062 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
4063 }
4079 public Builder setUseLightRelocatePair(com.google.ortools.util.OptionalBoolean value) {
4080 if (value == null) {
4081 throw new NullPointerException();
4082 }
4083 bitField0_ |= 0x00000004;
4084 useLightRelocatePair_ = value.getNumber();
4085 onChanged();
4086 return this;
4087 }
4103 bitField0_ = (bitField0_ & ~0x00000004);
4104 useLightRelocatePair_ = 0;
4105 onChanged();
4106 return this;
4107 }
4108
4109 private int useRelocateNeighbors_ = 0;
4139 @java.lang.Override public int getUseRelocateNeighborsValue() {
4140 return useRelocateNeighbors_;
4141 }
4173 useRelocateNeighbors_ = value;
4174 bitField0_ |= 0x00000008;
4175 onChanged();
4176 return this;
4177 }
4207 @java.lang.Override
4209 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useRelocateNeighbors_);
4210 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
4211 }
4242 public Builder setUseRelocateNeighbors(com.google.ortools.util.OptionalBoolean value) {
4243 if (value == null) {
4244 throw new NullPointerException();
4245 }
4246 bitField0_ |= 0x00000008;
4247 useRelocateNeighbors_ = value.getNumber();
4248 onChanged();
4249 return this;
4250 }
4281 bitField0_ = (bitField0_ & ~0x00000008);
4282 useRelocateNeighbors_ = 0;
4283 onChanged();
4284 return this;
4285 }
4286
4287 private int useRelocateSubtrip_ = 0;
4309 @java.lang.Override public int getUseRelocateSubtripValue() {
4310 return useRelocateSubtrip_;
4311 }
4335 useRelocateSubtrip_ = value;
4336 bitField0_ |= 0x00000010;
4337 onChanged();
4338 return this;
4339 }
4361 @java.lang.Override
4363 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useRelocateSubtrip_);
4364 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
4365 }
4388 public Builder setUseRelocateSubtrip(com.google.ortools.util.OptionalBoolean value) {
4389 if (value == null) {
4390 throw new NullPointerException();
4391 }
4392 bitField0_ |= 0x00000010;
4393 useRelocateSubtrip_ = value.getNumber();
4394 onChanged();
4395 return this;
4396 }
4419 bitField0_ = (bitField0_ & ~0x00000010);
4420 useRelocateSubtrip_ = 0;
4421 onChanged();
4422 return this;
4423 }
4424
4425 private int useExchange_ = 0;
4440 @java.lang.Override public int getUseExchangeValue() {
4441 return useExchange_;
4442 }
4458 public Builder setUseExchangeValue(int value) {
4459 useExchange_ = value;
4460 bitField0_ |= 0x00000020;
4461 onChanged();
4462 return this;
4463 }
4478 @java.lang.Override
4480 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useExchange_);
4481 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
4482 }
4498 public Builder setUseExchange(com.google.ortools.util.OptionalBoolean value) {
4499 if (value == null) {
4500 throw new NullPointerException();
4501 }
4502 bitField0_ |= 0x00000020;
4503 useExchange_ = value.getNumber();
4504 onChanged();
4505 return this;
4506 }
4522 bitField0_ = (bitField0_ & ~0x00000020);
4523 useExchange_ = 0;
4524 onChanged();
4525 return this;
4526 }
4527
4528 private int useExchangePair_ = 0;
4543 @java.lang.Override public int getUseExchangePairValue() {
4544 return useExchangePair_;
4545 }
4562 useExchangePair_ = value;
4563 bitField0_ |= 0x00000040;
4564 onChanged();
4565 return this;
4566 }
4581 @java.lang.Override
4583 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useExchangePair_);
4584 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
4585 }
4601 public Builder setUseExchangePair(com.google.ortools.util.OptionalBoolean value) {
4602 if (value == null) {
4603 throw new NullPointerException();
4604 }
4605 bitField0_ |= 0x00000040;
4606 useExchangePair_ = value.getNumber();
4607 onChanged();
4608 return this;
4609 }
4625 bitField0_ = (bitField0_ & ~0x00000040);
4626 useExchangePair_ = 0;
4627 onChanged();
4628 return this;
4629 }
4630
4631 private int useExchangeSubtrip_ = 0;
4641 @java.lang.Override public int getUseExchangeSubtripValue() {
4642 return useExchangeSubtrip_;
4643 }
4655 useExchangeSubtrip_ = value;
4656 bitField0_ |= 0x00000080;
4657 onChanged();
4658 return this;
4659 }
4669 @java.lang.Override
4671 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useExchangeSubtrip_);
4672 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
4673 }
4684 public Builder setUseExchangeSubtrip(com.google.ortools.util.OptionalBoolean value) {
4685 if (value == null) {
4686 throw new NullPointerException();
4687 }
4688 bitField0_ |= 0x00000080;
4689 useExchangeSubtrip_ = value.getNumber();
4690 onChanged();
4691 return this;
4692 }
4703 bitField0_ = (bitField0_ & ~0x00000080);
4704 useExchangeSubtrip_ = 0;
4705 onChanged();
4706 return this;
4707 }
4708
4709 private int useCross_ = 0;
4726 @java.lang.Override public int getUseCrossValue() {
4727 return useCross_;
4728 }
4746 public Builder setUseCrossValue(int value) {
4747 useCross_ = value;
4748 bitField0_ |= 0x00000100;
4749 onChanged();
4750 return this;
4751 }
4768 @java.lang.Override
4770 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useCross_);
4771 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
4772 }
4790 public Builder setUseCross(com.google.ortools.util.OptionalBoolean value) {
4791 if (value == null) {
4792 throw new NullPointerException();
4793 }
4794 bitField0_ |= 0x00000100;
4795 useCross_ = value.getNumber();
4796 onChanged();
4797 return this;
4798 }
4816 bitField0_ = (bitField0_ & ~0x00000100);
4817 useCross_ = 0;
4818 onChanged();
4819 return this;
4820 }
4821
4822 private int useCrossExchange_ = 0;
4831 @java.lang.Override public int getUseCrossExchangeValue() {
4832 return useCrossExchange_;
4833 }
4844 useCrossExchange_ = value;
4845 bitField0_ |= 0x00000200;
4846 onChanged();
4847 return this;
4848 }
4857 @java.lang.Override
4859 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useCrossExchange_);
4860 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
4861 }
4871 public Builder setUseCrossExchange(com.google.ortools.util.OptionalBoolean value) {
4872 if (value == null) {
4873 throw new NullPointerException();
4874 }
4875 bitField0_ |= 0x00000200;
4876 useCrossExchange_ = value.getNumber();
4877 onChanged();
4878 return this;
4879 }
4889 bitField0_ = (bitField0_ & ~0x00000200);
4890 useCrossExchange_ = 0;
4891 onChanged();
4892 return this;
4893 }
4894
4895 private int useRelocateExpensiveChain_ = 0;
4913 @java.lang.Override public int getUseRelocateExpensiveChainValue() {
4914 return useRelocateExpensiveChain_;
4915 }
4935 useRelocateExpensiveChain_ = value;
4936 bitField0_ |= 0x00000400;
4937 onChanged();
4938 return this;
4939 }
4957 @java.lang.Override
4959 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useRelocateExpensiveChain_);
4960 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
4961 }
4980 public Builder setUseRelocateExpensiveChain(com.google.ortools.util.OptionalBoolean value) {
4981 if (value == null) {
4982 throw new NullPointerException();
4983 }
4984 bitField0_ |= 0x00000400;
4985 useRelocateExpensiveChain_ = value.getNumber();
4986 onChanged();
4987 return this;
4988 }
5007 bitField0_ = (bitField0_ & ~0x00000400);
5008 useRelocateExpensiveChain_ = 0;
5009 onChanged();
5010 return this;
5011 }
5012
5013 private int useTwoOpt_ = 0;
5031 @java.lang.Override public int getUseTwoOptValue() {
5032 return useTwoOpt_;
5033 }
5052 public Builder setUseTwoOptValue(int value) {
5053 useTwoOpt_ = value;
5054 bitField0_ |= 0x00000800;
5055 onChanged();
5056 return this;
5057 }
5075 @java.lang.Override
5077 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useTwoOpt_);
5078 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
5079 }
5098 public Builder setUseTwoOpt(com.google.ortools.util.OptionalBoolean value) {
5099 if (value == null) {
5100 throw new NullPointerException();
5101 }
5102 bitField0_ |= 0x00000800;
5103 useTwoOpt_ = value.getNumber();
5104 onChanged();
5105 return this;
5106 }
5125 bitField0_ = (bitField0_ & ~0x00000800);
5126 useTwoOpt_ = 0;
5127 onChanged();
5128 return this;
5129 }
5130
5131 private int useOrOpt_ = 0;
5150 @java.lang.Override public int getUseOrOptValue() {
5151 return useOrOpt_;
5152 }
5172 public Builder setUseOrOptValue(int value) {
5173 useOrOpt_ = value;
5174 bitField0_ |= 0x00001000;
5175 onChanged();
5176 return this;
5177 }
5196 @java.lang.Override
5198 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useOrOpt_);
5199 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
5200 }
5220 public Builder setUseOrOpt(com.google.ortools.util.OptionalBoolean value) {
5221 if (value == null) {
5222 throw new NullPointerException();
5223 }
5224 bitField0_ |= 0x00001000;
5225 useOrOpt_ = value.getNumber();
5226 onChanged();
5227 return this;
5228 }
5248 bitField0_ = (bitField0_ & ~0x00001000);
5249 useOrOpt_ = 0;
5250 onChanged();
5251 return this;
5252 }
5253
5254 private int useLinKernighan_ = 0;
5266 @java.lang.Override public int getUseLinKernighanValue() {
5267 return useLinKernighan_;
5268 }
5282 useLinKernighan_ = value;
5283 bitField0_ |= 0x00002000;
5284 onChanged();
5285 return this;
5286 }
5298 @java.lang.Override
5300 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useLinKernighan_);
5301 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
5302 }
5315 public Builder setUseLinKernighan(com.google.ortools.util.OptionalBoolean value) {
5316 if (value == null) {
5317 throw new NullPointerException();
5318 }
5319 bitField0_ |= 0x00002000;
5320 useLinKernighan_ = value.getNumber();
5321 onChanged();
5322 return this;
5323 }
5336 bitField0_ = (bitField0_ & ~0x00002000);
5337 useLinKernighan_ = 0;
5338 onChanged();
5339 return this;
5340 }
5341
5342 private int useTspOpt_ = 0;
5356 @java.lang.Override public int getUseTspOptValue() {
5357 return useTspOpt_;
5358 }
5373 public Builder setUseTspOptValue(int value) {
5374 useTspOpt_ = value;
5375 bitField0_ |= 0x00004000;
5376 onChanged();
5377 return this;
5378 }
5392 @java.lang.Override
5394 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useTspOpt_);
5395 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
5396 }
5411 public Builder setUseTspOpt(com.google.ortools.util.OptionalBoolean value) {
5412 if (value == null) {
5413 throw new NullPointerException();
5414 }
5415 bitField0_ |= 0x00004000;
5416 useTspOpt_ = value.getNumber();
5417 onChanged();
5418 return this;
5419 }
5434 bitField0_ = (bitField0_ & ~0x00004000);
5435 useTspOpt_ = 0;
5436 onChanged();
5437 return this;
5438 }
5439
5440 private int useMakeActive_ = 0;
5455 @java.lang.Override public int getUseMakeActiveValue() {
5456 return useMakeActive_;
5457 }
5473 public Builder setUseMakeActiveValue(int value) {
5474 useMakeActive_ = value;
5475 bitField0_ |= 0x00008000;
5476 onChanged();
5477 return this;
5478 }
5493 @java.lang.Override
5495 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useMakeActive_);
5496 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
5497 }
5513 public Builder setUseMakeActive(com.google.ortools.util.OptionalBoolean value) {
5514 if (value == null) {
5515 throw new NullPointerException();
5516 }
5517 bitField0_ |= 0x00008000;
5518 useMakeActive_ = value.getNumber();
5519 onChanged();
5520 return this;
5521 }
5537 bitField0_ = (bitField0_ & ~0x00008000);
5538 useMakeActive_ = 0;
5539 onChanged();
5540 return this;
5541 }
5542
5543 private int useRelocateAndMakeActive_ = 0;
5561 @java.lang.Override public int getUseRelocateAndMakeActiveValue() {
5562 return useRelocateAndMakeActive_;
5563 }
5583 useRelocateAndMakeActive_ = value;
5584 bitField0_ |= 0x00010000;
5585 onChanged();
5586 return this;
5587 }
5605 @java.lang.Override
5607 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useRelocateAndMakeActive_);
5608 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
5609 }
5628 public Builder setUseRelocateAndMakeActive(com.google.ortools.util.OptionalBoolean value) {
5629 if (value == null) {
5630 throw new NullPointerException();
5631 }
5632 bitField0_ |= 0x00010000;
5633 useRelocateAndMakeActive_ = value.getNumber();
5634 onChanged();
5635 return this;
5636 }
5655 bitField0_ = (bitField0_ & ~0x00010000);
5656 useRelocateAndMakeActive_ = 0;
5657 onChanged();
5658 return this;
5659 }
5660
5661 private int useMakeInactive_ = 0;
5674 @java.lang.Override public int getUseMakeInactiveValue() {
5675 return useMakeInactive_;
5676 }
5691 useMakeInactive_ = value;
5692 bitField0_ |= 0x00020000;
5693 onChanged();
5694 return this;
5695 }
5708 @java.lang.Override
5710 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useMakeInactive_);
5711 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
5712 }
5726 public Builder setUseMakeInactive(com.google.ortools.util.OptionalBoolean value) {
5727 if (value == null) {
5728 throw new NullPointerException();
5729 }
5730 bitField0_ |= 0x00020000;
5731 useMakeInactive_ = value.getNumber();
5732 onChanged();
5733 return this;
5734 }
5748 bitField0_ = (bitField0_ & ~0x00020000);
5749 useMakeInactive_ = 0;
5750 onChanged();
5751 return this;
5752 }
5753
5754 private int useMakeChainInactive_ = 0;
5768 @java.lang.Override public int getUseMakeChainInactiveValue() {
5769 return useMakeChainInactive_;
5770 }
5786 useMakeChainInactive_ = value;
5787 bitField0_ |= 0x00040000;
5788 onChanged();
5789 return this;
5790 }
5804 @java.lang.Override
5806 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useMakeChainInactive_);
5807 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
5808 }
5823 public Builder setUseMakeChainInactive(com.google.ortools.util.OptionalBoolean value) {
5824 if (value == null) {
5825 throw new NullPointerException();
5826 }
5827 bitField0_ |= 0x00040000;
5828 useMakeChainInactive_ = value.getNumber();
5829 onChanged();
5830 return this;
5831 }
5846 bitField0_ = (bitField0_ & ~0x00040000);
5847 useMakeChainInactive_ = 0;
5848 onChanged();
5849 return this;
5850 }
5851
5852 private int useSwapActive_ = 0;
5865 @java.lang.Override public int getUseSwapActiveValue() {
5866 return useSwapActive_;
5867 }
5881 public Builder setUseSwapActiveValue(int value) {
5882 useSwapActive_ = value;
5883 bitField0_ |= 0x00080000;
5884 onChanged();
5885 return this;
5886 }
5899 @java.lang.Override
5901 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useSwapActive_);
5902 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
5903 }
5917 public Builder setUseSwapActive(com.google.ortools.util.OptionalBoolean value) {
5918 if (value == null) {
5919 throw new NullPointerException();
5920 }
5921 bitField0_ |= 0x00080000;
5922 useSwapActive_ = value.getNumber();
5923 onChanged();
5924 return this;
5925 }
5939 bitField0_ = (bitField0_ & ~0x00080000);
5940 useSwapActive_ = 0;
5941 onChanged();
5942 return this;
5943 }
5944
5945 private int useExtendedSwapActive_ = 0;
5963 @java.lang.Override public int getUseExtendedSwapActiveValue() {
5964 return useExtendedSwapActive_;
5965 }
5985 useExtendedSwapActive_ = value;
5986 bitField0_ |= 0x00100000;
5987 onChanged();
5988 return this;
5989 }
6007 @java.lang.Override
6009 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useExtendedSwapActive_);
6010 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6011 }
6030 public Builder setUseExtendedSwapActive(com.google.ortools.util.OptionalBoolean value) {
6031 if (value == null) {
6032 throw new NullPointerException();
6033 }
6034 bitField0_ |= 0x00100000;
6035 useExtendedSwapActive_ = value.getNumber();
6036 onChanged();
6037 return this;
6038 }
6057 bitField0_ = (bitField0_ & ~0x00100000);
6058 useExtendedSwapActive_ = 0;
6059 onChanged();
6060 return this;
6061 }
6062
6063 private int useShortestPathSwapActive_ = 0;
6077 @java.lang.Override public int getUseShortestPathSwapActiveValue() {
6078 return useShortestPathSwapActive_;
6079 }
6095 useShortestPathSwapActive_ = value;
6096 bitField0_ |= 0x00200000;
6097 onChanged();
6098 return this;
6099 }
6113 @java.lang.Override
6115 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useShortestPathSwapActive_);
6116 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6117 }
6132 public Builder setUseShortestPathSwapActive(com.google.ortools.util.OptionalBoolean value) {
6133 if (value == null) {
6134 throw new NullPointerException();
6135 }
6136 bitField0_ |= 0x00200000;
6137 useShortestPathSwapActive_ = value.getNumber();
6138 onChanged();
6139 return this;
6140 }
6155 bitField0_ = (bitField0_ & ~0x00200000);
6156 useShortestPathSwapActive_ = 0;
6157 onChanged();
6158 return this;
6159 }
6160
6161 private int useNodePairSwapActive_ = 0;
6180 @java.lang.Override public int getUseNodePairSwapActiveValue() {
6181 return useNodePairSwapActive_;
6182 }
6203 useNodePairSwapActive_ = value;
6204 bitField0_ |= 0x00400000;
6205 onChanged();
6206 return this;
6207 }
6226 @java.lang.Override
6228 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useNodePairSwapActive_);
6229 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6230 }
6250 public Builder setUseNodePairSwapActive(com.google.ortools.util.OptionalBoolean value) {
6251 if (value == null) {
6252 throw new NullPointerException();
6253 }
6254 bitField0_ |= 0x00400000;
6255 useNodePairSwapActive_ = value.getNumber();
6256 onChanged();
6257 return this;
6258 }
6278 bitField0_ = (bitField0_ & ~0x00400000);
6279 useNodePairSwapActive_ = 0;
6280 onChanged();
6281 return this;
6282 }
6283
6284 private int usePathLns_ = 0;
6300 @java.lang.Override public int getUsePathLnsValue() {
6301 return usePathLns_;
6302 }
6319 public Builder setUsePathLnsValue(int value) {
6320 usePathLns_ = value;
6321 bitField0_ |= 0x00800000;
6322 onChanged();
6323 return this;
6324 }
6340 @java.lang.Override
6342 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(usePathLns_);
6343 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6344 }
6361 public Builder setUsePathLns(com.google.ortools.util.OptionalBoolean value) {
6362 if (value == null) {
6363 throw new NullPointerException();
6364 }
6365 bitField0_ |= 0x00800000;
6366 usePathLns_ = value.getNumber();
6367 onChanged();
6368 return this;
6369 }
6386 bitField0_ = (bitField0_ & ~0x00800000);
6387 usePathLns_ = 0;
6388 onChanged();
6389 return this;
6390 }
6391
6392 private int useFullPathLns_ = 0;
6401 @java.lang.Override public int getUseFullPathLnsValue() {
6402 return useFullPathLns_;
6403 }
6414 useFullPathLns_ = value;
6415 bitField0_ |= 0x01000000;
6416 onChanged();
6417 return this;
6418 }
6427 @java.lang.Override
6429 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useFullPathLns_);
6430 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6431 }
6441 public Builder setUseFullPathLns(com.google.ortools.util.OptionalBoolean value) {
6442 if (value == null) {
6443 throw new NullPointerException();
6444 }
6445 bitField0_ |= 0x01000000;
6446 useFullPathLns_ = value.getNumber();
6447 onChanged();
6448 return this;
6449 }
6459 bitField0_ = (bitField0_ & ~0x01000000);
6460 useFullPathLns_ = 0;
6461 onChanged();
6462 return this;
6463 }
6464
6465 private int useTspLns_ = 0;
6479 @java.lang.Override public int getUseTspLnsValue() {
6480 return useTspLns_;
6481 }
6496 public Builder setUseTspLnsValue(int value) {
6497 useTspLns_ = value;
6498 bitField0_ |= 0x02000000;
6499 onChanged();
6500 return this;
6501 }
6515 @java.lang.Override
6517 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useTspLns_);
6518 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6519 }
6534 public Builder setUseTspLns(com.google.ortools.util.OptionalBoolean value) {
6535 if (value == null) {
6536 throw new NullPointerException();
6537 }
6538 bitField0_ |= 0x02000000;
6539 useTspLns_ = value.getNumber();
6540 onChanged();
6541 return this;
6542 }
6557 bitField0_ = (bitField0_ & ~0x02000000);
6558 useTspLns_ = 0;
6559 onChanged();
6560 return this;
6561 }
6562
6563 private int useInactiveLns_ = 0;
6574 @java.lang.Override public int getUseInactiveLnsValue() {
6575 return useInactiveLns_;
6576 }
6589 useInactiveLns_ = value;
6590 bitField0_ |= 0x04000000;
6591 onChanged();
6592 return this;
6593 }
6604 @java.lang.Override
6606 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useInactiveLns_);
6607 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6608 }
6620 public Builder setUseInactiveLns(com.google.ortools.util.OptionalBoolean value) {
6621 if (value == null) {
6622 throw new NullPointerException();
6623 }
6624 bitField0_ |= 0x04000000;
6625 useInactiveLns_ = value.getNumber();
6626 onChanged();
6627 return this;
6628 }
6640 bitField0_ = (bitField0_ & ~0x04000000);
6641 useInactiveLns_ = 0;
6642 onChanged();
6643 return this;
6644 }
6645
6646 private int useGlobalCheapestInsertionPathLns_ = 0;
6657 @java.lang.Override public int getUseGlobalCheapestInsertionPathLnsValue() {
6658 return useGlobalCheapestInsertionPathLns_;
6659 }
6672 useGlobalCheapestInsertionPathLns_ = value;
6673 bitField0_ |= 0x08000000;
6674 onChanged();
6675 return this;
6676 }
6687 @java.lang.Override
6689 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useGlobalCheapestInsertionPathLns_);
6690 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6691 }
6703 public Builder setUseGlobalCheapestInsertionPathLns(com.google.ortools.util.OptionalBoolean value) {
6704 if (value == null) {
6705 throw new NullPointerException();
6706 }
6707 bitField0_ |= 0x08000000;
6708 useGlobalCheapestInsertionPathLns_ = value.getNumber();
6709 onChanged();
6710 return this;
6711 }
6723 bitField0_ = (bitField0_ & ~0x08000000);
6724 useGlobalCheapestInsertionPathLns_ = 0;
6725 onChanged();
6726 return this;
6727 }
6728
6729 private int useLocalCheapestInsertionPathLns_ = 0;
6738 @java.lang.Override public int getUseLocalCheapestInsertionPathLnsValue() {
6739 return useLocalCheapestInsertionPathLns_;
6740 }
6751 useLocalCheapestInsertionPathLns_ = value;
6752 bitField0_ |= 0x10000000;
6753 onChanged();
6754 return this;
6755 }
6764 @java.lang.Override
6766 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useLocalCheapestInsertionPathLns_);
6767 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6768 }
6778 public Builder setUseLocalCheapestInsertionPathLns(com.google.ortools.util.OptionalBoolean value) {
6779 if (value == null) {
6780 throw new NullPointerException();
6781 }
6782 bitField0_ |= 0x10000000;
6783 useLocalCheapestInsertionPathLns_ = value.getNumber();
6784 onChanged();
6785 return this;
6786 }
6796 bitField0_ = (bitField0_ & ~0x10000000);
6797 useLocalCheapestInsertionPathLns_ = 0;
6798 onChanged();
6799 return this;
6800 }
6801
6802 private int useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = 0;
6814 return useRelocatePathGlobalCheapestInsertionInsertUnperformed_;
6815 }
6828 useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = value;
6829 bitField0_ |= 0x20000000;
6830 onChanged();
6831 return this;
6832 }
6843 @java.lang.Override
6845 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useRelocatePathGlobalCheapestInsertionInsertUnperformed_);
6846 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6847 }
6859 public Builder setUseRelocatePathGlobalCheapestInsertionInsertUnperformed(com.google.ortools.util.OptionalBoolean value) {
6860 if (value == null) {
6861 throw new NullPointerException();
6862 }
6863 bitField0_ |= 0x20000000;
6864 useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = value.getNumber();
6865 onChanged();
6866 return this;
6867 }
6879 bitField0_ = (bitField0_ & ~0x20000000);
6880 useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = 0;
6881 onChanged();
6882 return this;
6883 }
6884
6885 private int useGlobalCheapestInsertionExpensiveChainLns_ = 0;
6898 return useGlobalCheapestInsertionExpensiveChainLns_;
6899 }
6913 useGlobalCheapestInsertionExpensiveChainLns_ = value;
6914 bitField0_ |= 0x40000000;
6915 onChanged();
6916 return this;
6917 }
6929 @java.lang.Override
6931 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useGlobalCheapestInsertionExpensiveChainLns_);
6932 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6933 }
6946 public Builder setUseGlobalCheapestInsertionExpensiveChainLns(com.google.ortools.util.OptionalBoolean value) {
6947 if (value == null) {
6948 throw new NullPointerException();
6949 }
6950 bitField0_ |= 0x40000000;
6951 useGlobalCheapestInsertionExpensiveChainLns_ = value.getNumber();
6952 onChanged();
6953 return this;
6954 }
6967 bitField0_ = (bitField0_ & ~0x40000000);
6968 useGlobalCheapestInsertionExpensiveChainLns_ = 0;
6969 onChanged();
6970 return this;
6971 }
6972
6973 private int useLocalCheapestInsertionExpensiveChainLns_ = 0;
6984 return useLocalCheapestInsertionExpensiveChainLns_;
6985 }
6997 useLocalCheapestInsertionExpensiveChainLns_ = value;
6998 bitField0_ |= 0x80000000;
6999 onChanged();
7000 return this;
7001 }
7011 @java.lang.Override
7013 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useLocalCheapestInsertionExpensiveChainLns_);
7014 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
7015 }
7026 public Builder setUseLocalCheapestInsertionExpensiveChainLns(com.google.ortools.util.OptionalBoolean value) {
7027 if (value == null) {
7028 throw new NullPointerException();
7029 }
7030 bitField0_ |= 0x80000000;
7031 useLocalCheapestInsertionExpensiveChainLns_ = value.getNumber();
7032 onChanged();
7033 return this;
7034 }
7045 bitField0_ = (bitField0_ & ~0x80000000);
7046 useLocalCheapestInsertionExpensiveChainLns_ = 0;
7047 onChanged();
7048 return this;
7049 }
7050
7051 private int useGlobalCheapestInsertionCloseNodesLns_ = 0;
7063 @java.lang.Override public int getUseGlobalCheapestInsertionCloseNodesLnsValue() {
7064 return useGlobalCheapestInsertionCloseNodesLns_;
7065 }
7079 useGlobalCheapestInsertionCloseNodesLns_ = value;
7080 bitField1_ |= 0x00000001;
7081 onChanged();
7082 return this;
7083 }
7095 @java.lang.Override
7097 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useGlobalCheapestInsertionCloseNodesLns_);
7098 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
7099 }
7112 public Builder setUseGlobalCheapestInsertionCloseNodesLns(com.google.ortools.util.OptionalBoolean value) {
7113 if (value == null) {
7114 throw new NullPointerException();
7115 }
7116 bitField1_ |= 0x00000001;
7117 useGlobalCheapestInsertionCloseNodesLns_ = value.getNumber();
7118 onChanged();
7119 return this;
7120 }
7133 bitField1_ = (bitField1_ & ~0x00000001);
7134 useGlobalCheapestInsertionCloseNodesLns_ = 0;
7135 onChanged();
7136 return this;
7137 }
7138
7139 private int useLocalCheapestInsertionCloseNodesLns_ = 0;
7149 @java.lang.Override public int getUseLocalCheapestInsertionCloseNodesLnsValue() {
7150 return useLocalCheapestInsertionCloseNodesLns_;
7151 }
7163 useLocalCheapestInsertionCloseNodesLns_ = value;
7164 bitField1_ |= 0x00000002;
7165 onChanged();
7166 return this;
7167 }
7177 @java.lang.Override
7179 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useLocalCheapestInsertionCloseNodesLns_);
7180 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
7181 }
7192 public Builder setUseLocalCheapestInsertionCloseNodesLns(com.google.ortools.util.OptionalBoolean value) {
7193 if (value == null) {
7194 throw new NullPointerException();
7195 }
7196 bitField1_ |= 0x00000002;
7197 useLocalCheapestInsertionCloseNodesLns_ = value.getNumber();
7198 onChanged();
7199 return this;
7200 }
7211 bitField1_ = (bitField1_ & ~0x00000002);
7212 useLocalCheapestInsertionCloseNodesLns_ = 0;
7213 onChanged();
7214 return this;
7215 }
7216
7217 // @@protoc_insertion_point(builder_scope:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
7218 }
7219
7220 // @@protoc_insertion_point(class_scope:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
7222 static {
7223 DEFAULT_INSTANCE = new com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators();
7224 }
7225
7229
7230 private static final com.google.protobuf.Parser<LocalSearchNeighborhoodOperators>
7231 PARSER = new com.google.protobuf.AbstractParser<LocalSearchNeighborhoodOperators>() {
7232 @java.lang.Override
7233 public LocalSearchNeighborhoodOperators parsePartialFrom(
7234 com.google.protobuf.CodedInputStream input,
7235 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7236 throws com.google.protobuf.InvalidProtocolBufferException {
7237 Builder builder = newBuilder();
7238 try {
7239 builder.mergeFrom(input, extensionRegistry);
7240 } catch (com.google.protobuf.InvalidProtocolBufferException e) {
7241 throw e.setUnfinishedMessage(builder.buildPartial());
7242 } catch (com.google.protobuf.UninitializedMessageException e) {
7243 throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
7244 } catch (java.io.IOException e) {
7245 throw new com.google.protobuf.InvalidProtocolBufferException(e)
7246 .setUnfinishedMessage(builder.buildPartial());
7247 }
7248 return builder.buildPartial();
7249 }
7250 };
7251
7252 public static com.google.protobuf.Parser<LocalSearchNeighborhoodOperators> parser() {
7253 return PARSER;
7254 }
7255
7256 @java.lang.Override
7257 public com.google.protobuf.Parser<LocalSearchNeighborhoodOperators> getParserForType() {
7258 return PARSER;
7259 }
7260
7261 @java.lang.Override
7265
7266 }
7267
7269 // @@protoc_insertion_point(interface_extends:operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters)
7270 com.google.protobuf.MessageOrBuilder {
7271
7283
7297 }
7305 public static final class ImprovementSearchLimitParameters extends
7306 com.google.protobuf.GeneratedMessage implements
7307 // @@protoc_insertion_point(message_implements:operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters)
7309 private static final long serialVersionUID = 0L;
7310 static {
7311 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
7312 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
7313 /* major= */ 4,
7314 /* minor= */ 26,
7315 /* patch= */ 1,
7316 /* suffix= */ "",
7317 ImprovementSearchLimitParameters.class.getName());
7318 }
7319 // Use ImprovementSearchLimitParameters.newBuilder() to construct.
7320 private ImprovementSearchLimitParameters(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
7321 super(builder);
7322 }
7324 }
7325
7326 public static final com.google.protobuf.Descriptors.Descriptor
7328 return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_ImprovementSearchLimitParameters_descriptor;
7329 }
7330
7331 @java.lang.Override
7332 protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
7334 return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_ImprovementSearchLimitParameters_fieldAccessorTable
7335 .ensureFieldAccessorsInitialized(
7336 com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.class, com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.Builder.class);
7337 }
7338
7339 public static final int IMPROVEMENT_RATE_COEFFICIENT_FIELD_NUMBER = 38;
7340 private double improvementRateCoefficient_ = 0D;
7351 @java.lang.Override
7353 return improvementRateCoefficient_;
7354 }
7355
7357 private int improvementRateSolutionsDistance_ = 0;
7370 @java.lang.Override
7372 return improvementRateSolutionsDistance_;
7373 }
7374
7375 private byte memoizedIsInitialized = -1;
7376 @java.lang.Override
7377 public final boolean isInitialized() {
7378 byte isInitialized = memoizedIsInitialized;
7379 if (isInitialized == 1) return true;
7380 if (isInitialized == 0) return false;
7381
7382 memoizedIsInitialized = 1;
7383 return true;
7384 }
7385
7386 @java.lang.Override
7387 public void writeTo(com.google.protobuf.CodedOutputStream output)
7388 throws java.io.IOException {
7389 if (java.lang.Double.doubleToRawLongBits(improvementRateCoefficient_) != 0) {
7390 output.writeDouble(38, improvementRateCoefficient_);
7391 }
7392 if (improvementRateSolutionsDistance_ != 0) {
7393 output.writeInt32(39, improvementRateSolutionsDistance_);
7394 }
7395 getUnknownFields().writeTo(output);
7396 }
7397
7398 @java.lang.Override
7399 public int getSerializedSize() {
7400 int size = memoizedSize;
7401 if (size != -1) return size;
7402
7403 size = 0;
7404 if (java.lang.Double.doubleToRawLongBits(improvementRateCoefficient_) != 0) {
7405 size += com.google.protobuf.CodedOutputStream
7406 .computeDoubleSize(38, improvementRateCoefficient_);
7407 }
7408 if (improvementRateSolutionsDistance_ != 0) {
7409 size += com.google.protobuf.CodedOutputStream
7410 .computeInt32Size(39, improvementRateSolutionsDistance_);
7411 }
7412 size += getUnknownFields().getSerializedSize();
7413 memoizedSize = size;
7414 return size;
7415 }
7416
7417 @java.lang.Override
7418 public boolean equals(final java.lang.Object obj) {
7419 if (obj == this) {
7420 return true;
7421 }
7422 if (!(obj instanceof com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters)) {
7423 return super.equals(obj);
7424 }
7425 com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters other = (com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters) obj;
7426
7427 if (java.lang.Double.doubleToLongBits(getImprovementRateCoefficient())
7428 != java.lang.Double.doubleToLongBits(
7429 other.getImprovementRateCoefficient())) return false;
7431 != other.getImprovementRateSolutionsDistance()) return false;
7432 if (!getUnknownFields().equals(other.getUnknownFields())) return false;
7433 return true;
7434 }
7435
7436 @java.lang.Override
7437 public int hashCode() {
7438 if (memoizedHashCode != 0) {
7439 return memoizedHashCode;
7440 }
7441 int hash = 41;
7442 hash = (19 * hash) + getDescriptor().hashCode();
7443 hash = (37 * hash) + IMPROVEMENT_RATE_COEFFICIENT_FIELD_NUMBER;
7444 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7445 java.lang.Double.doubleToLongBits(getImprovementRateCoefficient()));
7447 hash = (53 * hash) + getImprovementRateSolutionsDistance();
7448 hash = (29 * hash) + getUnknownFields().hashCode();
7449 memoizedHashCode = hash;
7450 return hash;
7451 }
7452
7454 java.nio.ByteBuffer data)
7455 throws com.google.protobuf.InvalidProtocolBufferException {
7456 return PARSER.parseFrom(data);
7457 }
7459 java.nio.ByteBuffer data,
7460 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7461 throws com.google.protobuf.InvalidProtocolBufferException {
7462 return PARSER.parseFrom(data, extensionRegistry);
7463 }
7465 com.google.protobuf.ByteString data)
7466 throws com.google.protobuf.InvalidProtocolBufferException {
7467 return PARSER.parseFrom(data);
7468 }
7470 com.google.protobuf.ByteString data,
7471 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7472 throws com.google.protobuf.InvalidProtocolBufferException {
7473 return PARSER.parseFrom(data, extensionRegistry);
7474 }
7476 throws com.google.protobuf.InvalidProtocolBufferException {
7477 return PARSER.parseFrom(data);
7478 }
7480 byte[] data,
7481 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7482 throws com.google.protobuf.InvalidProtocolBufferException {
7483 return PARSER.parseFrom(data, extensionRegistry);
7484 }
7486 throws java.io.IOException {
7487 return com.google.protobuf.GeneratedMessage
7488 .parseWithIOException(PARSER, input);
7489 }
7491 java.io.InputStream input,
7492 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7493 throws java.io.IOException {
7494 return com.google.protobuf.GeneratedMessage
7495 .parseWithIOException(PARSER, input, extensionRegistry);
7496 }
7497
7499 throws java.io.IOException {
7500 return com.google.protobuf.GeneratedMessage
7501 .parseDelimitedWithIOException(PARSER, input);
7502 }
7503
7505 java.io.InputStream input,
7506 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7507 throws java.io.IOException {
7508 return com.google.protobuf.GeneratedMessage
7509 .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
7510 }
7512 com.google.protobuf.CodedInputStream input)
7513 throws java.io.IOException {
7514 return com.google.protobuf.GeneratedMessage
7515 .parseWithIOException(PARSER, input);
7516 }
7518 com.google.protobuf.CodedInputStream input,
7519 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7520 throws java.io.IOException {
7521 return com.google.protobuf.GeneratedMessage
7522 .parseWithIOException(PARSER, input, extensionRegistry);
7523 }
7524
7525 @java.lang.Override
7526 public Builder newBuilderForType() { return newBuilder(); }
7527 public static Builder newBuilder() {
7528 return DEFAULT_INSTANCE.toBuilder();
7529 }
7530 public static Builder newBuilder(com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters prototype) {
7531 return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
7532 }
7533 @java.lang.Override
7535 return this == DEFAULT_INSTANCE
7536 ? new Builder() : new Builder().mergeFrom(this);
7537 }
7538
7539 @java.lang.Override
7541 com.google.protobuf.GeneratedMessage.BuilderParent parent) {
7542 Builder builder = new Builder(parent);
7543 return builder;
7544 }
7552 public static final class Builder extends
7553 com.google.protobuf.GeneratedMessage.Builder<Builder> implements
7554 // @@protoc_insertion_point(builder_implements:operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters)
7555 com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParametersOrBuilder {
7556 public static final com.google.protobuf.Descriptors.Descriptor
7558 return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_ImprovementSearchLimitParameters_descriptor;
7559 }
7560
7561 @java.lang.Override
7562 protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
7564 return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_ImprovementSearchLimitParameters_fieldAccessorTable
7565 .ensureFieldAccessorsInitialized(
7566 com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.class, com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.Builder.class);
7567 }
7568
7569 // Construct using com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.newBuilder()
7570 private Builder() {
7571
7572 }
7573
7574 private Builder(
7575 com.google.protobuf.GeneratedMessage.BuilderParent parent) {
7576 super(parent);
7577
7578 }
7579 @java.lang.Override
7580 public Builder clear() {
7581 super.clear();
7582 bitField0_ = 0;
7583 improvementRateCoefficient_ = 0D;
7584 improvementRateSolutionsDistance_ = 0;
7585 return this;
7586 }
7587
7588 @java.lang.Override
7589 public com.google.protobuf.Descriptors.Descriptor
7591 return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_ImprovementSearchLimitParameters_descriptor;
7592 }
7593
7594 @java.lang.Override
7596 return com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.getDefaultInstance();
7597 }
7598
7599 @java.lang.Override
7607
7608 @java.lang.Override
7610 com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters result = new com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters(this);
7611 if (bitField0_ != 0) { buildPartial0(result); }
7612 onBuilt();
7613 return result;
7614 }
7615
7616 private void buildPartial0(com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters result) {
7617 int from_bitField0_ = bitField0_;
7618 if (((from_bitField0_ & 0x00000001) != 0)) {
7619 result.improvementRateCoefficient_ = improvementRateCoefficient_;
7620 }
7621 if (((from_bitField0_ & 0x00000002) != 0)) {
7622 result.improvementRateSolutionsDistance_ = improvementRateSolutionsDistance_;
7623 }
7624 }
7625
7626 @java.lang.Override
7627 public Builder mergeFrom(com.google.protobuf.Message other) {
7628 if (other instanceof com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters) {
7629 return mergeFrom((com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters)other);
7630 } else {
7631 super.mergeFrom(other);
7632 return this;
7633 }
7634 }
7635
7636 public Builder mergeFrom(com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters other) {
7637 if (other == com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.getDefaultInstance()) return this;
7638 if (other.getImprovementRateCoefficient() != 0D) {
7639 setImprovementRateCoefficient(other.getImprovementRateCoefficient());
7640 }
7641 if (other.getImprovementRateSolutionsDistance() != 0) {
7642 setImprovementRateSolutionsDistance(other.getImprovementRateSolutionsDistance());
7643 }
7644 this.mergeUnknownFields(other.getUnknownFields());
7645 onChanged();
7646 return this;
7647 }
7648
7649 @java.lang.Override
7650 public final boolean isInitialized() {
7651 return true;
7652 }
7653
7654 @java.lang.Override
7656 com.google.protobuf.CodedInputStream input,
7657 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7658 throws java.io.IOException {
7659 if (extensionRegistry == null) {
7660 throw new java.lang.NullPointerException();
7661 }
7662 try {
7663 boolean done = false;
7664 while (!done) {
7665 int tag = input.readTag();
7666 switch (tag) {
7667 case 0:
7668 done = true;
7669 break;
7670 case 305: {
7671 improvementRateCoefficient_ = input.readDouble();
7672 bitField0_ |= 0x00000001;
7673 break;
7674 } // case 305
7675 case 312: {
7676 improvementRateSolutionsDistance_ = input.readInt32();
7677 bitField0_ |= 0x00000002;
7678 break;
7679 } // case 312
7680 default: {
7681 if (!super.parseUnknownField(input, extensionRegistry, tag)) {
7682 done = true; // was an endgroup tag
7683 }
7684 break;
7685 } // default:
7686 } // switch (tag)
7687 } // while (!done)
7688 } catch (com.google.protobuf.InvalidProtocolBufferException e) {
7689 throw e.unwrapIOException();
7690 } finally {
7691 onChanged();
7692 } // finally
7693 return this;
7694 }
7695 private int bitField0_;
7696
7697 private double improvementRateCoefficient_ ;
7708 @java.lang.Override
7710 return improvementRateCoefficient_;
7711 }
7724
7725 improvementRateCoefficient_ = value;
7726 bitField0_ |= 0x00000001;
7727 onChanged();
7728 return this;
7729 }
7741 bitField0_ = (bitField0_ & ~0x00000001);
7742 improvementRateCoefficient_ = 0D;
7743 onChanged();
7744 return this;
7745 }
7746
7747 private int improvementRateSolutionsDistance_ ;
7760 @java.lang.Override
7762 return improvementRateSolutionsDistance_;
7763 }
7778
7779 improvementRateSolutionsDistance_ = value;
7780 bitField0_ |= 0x00000002;
7781 onChanged();
7782 return this;
7783 }
7797 bitField0_ = (bitField0_ & ~0x00000002);
7798 improvementRateSolutionsDistance_ = 0;
7799 onChanged();
7800 return this;
7801 }
7802
7803 // @@protoc_insertion_point(builder_scope:operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters)
7804 }
7805
7806 // @@protoc_insertion_point(class_scope:operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters)
7808 static {
7809 DEFAULT_INSTANCE = new com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters();
7810 }
7811
7815
7816 private static final com.google.protobuf.Parser<ImprovementSearchLimitParameters>
7817 PARSER = new com.google.protobuf.AbstractParser<ImprovementSearchLimitParameters>() {
7818 @java.lang.Override
7819 public ImprovementSearchLimitParameters parsePartialFrom(
7820 com.google.protobuf.CodedInputStream input,
7821 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7822 throws com.google.protobuf.InvalidProtocolBufferException {
7823 Builder builder = newBuilder();
7824 try {
7825 builder.mergeFrom(input, extensionRegistry);
7826 } catch (com.google.protobuf.InvalidProtocolBufferException e) {
7827 throw e.setUnfinishedMessage(builder.buildPartial());
7828 } catch (com.google.protobuf.UninitializedMessageException e) {
7829 throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
7830 } catch (java.io.IOException e) {
7831 throw new com.google.protobuf.InvalidProtocolBufferException(e)
7832 .setUnfinishedMessage(builder.buildPartial());
7833 }
7834 return builder.buildPartial();
7835 }
7836 };
7837
7838 public static com.google.protobuf.Parser<ImprovementSearchLimitParameters> parser() {
7839 return PARSER;
7840 }
7841
7842 @java.lang.Override
7843 public com.google.protobuf.Parser<ImprovementSearchLimitParameters> getParserForType() {
7844 return PARSER;
7845 }
7846
7847 @java.lang.Override
7851
7852 }
7853
7854 private int bitField0_;
7855 public static final int FIRST_SOLUTION_STRATEGY_FIELD_NUMBER = 1;
7856 private int firstSolutionStrategy_ = 0;
7865 @java.lang.Override public int getFirstSolutionStrategyValue() {
7866 return firstSolutionStrategy_;
7867 }
7877 com.google.ortools.constraintsolver.FirstSolutionStrategy.Value result = com.google.ortools.constraintsolver.FirstSolutionStrategy.Value.forNumber(firstSolutionStrategy_);
7878 return result == null ? com.google.ortools.constraintsolver.FirstSolutionStrategy.Value.UNRECOGNIZED : result;
7879 }
7880
7882 private boolean useUnfilteredFirstSolutionStrategy_ = false;
7894 @java.lang.Override
7896 return useUnfilteredFirstSolutionStrategy_;
7897 }
7898
7899 public static final int SAVINGS_NEIGHBORS_RATIO_FIELD_NUMBER = 14;
7900 private double savingsNeighborsRatio_ = 0D;
7911 @java.lang.Override
7913 return savingsNeighborsRatio_;
7914 }
7915
7917 private double savingsMaxMemoryUsageBytes_ = 0D;
7931 @java.lang.Override
7933 return savingsMaxMemoryUsageBytes_;
7934 }
7935
7936 public static final int SAVINGS_ADD_REVERSE_ARCS_FIELD_NUMBER = 15;
7937 private boolean savingsAddReverseArcs_ = false;
7947 @java.lang.Override
7948 public boolean getSavingsAddReverseArcs() {
7949 return savingsAddReverseArcs_;
7950 }
7951
7952 public static final int SAVINGS_ARC_COEFFICIENT_FIELD_NUMBER = 18;
7953 private double savingsArcCoefficient_ = 0D;
7966 @java.lang.Override
7968 return savingsArcCoefficient_;
7969 }
7970
7971 public static final int SAVINGS_PARALLEL_ROUTES_FIELD_NUMBER = 19;
7972 private boolean savingsParallelRoutes_ = false;
7981 @java.lang.Override
7982 public boolean getSavingsParallelRoutes() {
7983 return savingsParallelRoutes_;
7984 }
7985
7987 private double cheapestInsertionFarthestSeedsRatio_ = 0D;
7998 @java.lang.Override
8000 return cheapestInsertionFarthestSeedsRatio_;
8001 }
8002
8004 private double cheapestInsertionFirstSolutionNeighborsRatio_ = 0D;
8027 @java.lang.Override
8029 return cheapestInsertionFirstSolutionNeighborsRatio_;
8030 }
8031
8033 private int cheapestInsertionFirstSolutionMinNeighbors_ = 0;
8038 @java.lang.Override
8040 return cheapestInsertionFirstSolutionMinNeighbors_;
8041 }
8042
8044 private double cheapestInsertionLsOperatorNeighborsRatio_ = 0D;
8056 @java.lang.Override
8058 return cheapestInsertionLsOperatorNeighborsRatio_;
8059 }
8060
8062 private int cheapestInsertionLsOperatorMinNeighbors_ = 0;
8067 @java.lang.Override
8069 return cheapestInsertionLsOperatorMinNeighbors_;
8070 }
8071
8073 private boolean cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_ = false;
8083 @java.lang.Override
8085 return cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_;
8086 }
8087
8089 private boolean cheapestInsertionAddUnperformedEntries_ = false;
8099 @java.lang.Override
8101 return cheapestInsertionAddUnperformedEntries_;
8102 }
8103
8105 private int localCheapestInsertionPickupDeliveryStrategy_ = 0;
8116 return localCheapestInsertionPickupDeliveryStrategy_;
8117 }
8128 com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy result = com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy.forNumber(localCheapestInsertionPickupDeliveryStrategy_);
8129 return result == null ? com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy.UNRECOGNIZED : result;
8130 }
8131
8133 private int localCheapestCostInsertionPickupDeliveryStrategy_ = 0;
8144 return localCheapestCostInsertionPickupDeliveryStrategy_;
8145 }
8156 com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy result = com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy.forNumber(localCheapestCostInsertionPickupDeliveryStrategy_);
8157 return result == null ? com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy.UNRECOGNIZED : result;
8158 }
8159
8161 private boolean christofidesUseMinimumMatching_ = false;
8171 @java.lang.Override
8173 return christofidesUseMinimumMatching_;
8174 }
8175
8177 private int firstSolutionOptimizationPeriod_ = 0;
8192 @java.lang.Override
8194 return firstSolutionOptimizationPeriod_;
8195 }
8196
8197 public static final int LOCAL_SEARCH_OPERATORS_FIELD_NUMBER = 3;
8203 @java.lang.Override
8204 public boolean hasLocalSearchOperators() {
8205 return ((bitField0_ & 0x00000001) != 0);
8206 }
8211 @java.lang.Override
8213 return localSearchOperators_ == null ? com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.getDefaultInstance() : localSearchOperators_;
8214 }
8218 @java.lang.Override
8220 return localSearchOperators_ == null ? com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.getDefaultInstance() : localSearchOperators_;
8221 }
8222
8223 public static final int LS_OPERATOR_NEIGHBORS_RATIO_FIELD_NUMBER = 53;
8224 private double lsOperatorNeighborsRatio_ = 0D;
8235 @java.lang.Override
8237 return lsOperatorNeighborsRatio_;
8238 }
8239
8240 public static final int LS_OPERATOR_MIN_NEIGHBORS_FIELD_NUMBER = 54;
8241 private int lsOperatorMinNeighbors_ = 0;
8246 @java.lang.Override
8248 return lsOperatorMinNeighbors_;
8249 }
8250
8252 private boolean useMultiArmedBanditConcatenateOperators_ = false;
8263 @java.lang.Override
8265 return useMultiArmedBanditConcatenateOperators_;
8266 }
8267
8269 private double multiArmedBanditCompoundOperatorMemoryCoefficient_ = 0D;
8281 @java.lang.Override
8283 return multiArmedBanditCompoundOperatorMemoryCoefficient_;
8284 }
8285
8287 private double multiArmedBanditCompoundOperatorExplorationCoefficient_ = 0D;
8298 @java.lang.Override
8300 return multiArmedBanditCompoundOperatorExplorationCoefficient_;
8301 }
8302
8304 private int relocateExpensiveChainNumArcsToConsider_ = 0;
8319 @java.lang.Override
8321 return relocateExpensiveChainNumArcsToConsider_;
8322 }
8323
8325 private int heuristicExpensiveChainLnsNumArcsToConsider_ = 0;
8335 @java.lang.Override
8337 return heuristicExpensiveChainLnsNumArcsToConsider_;
8338 }
8339
8341 private int heuristicCloseNodesLnsNumNodes_ = 0;
8351 @java.lang.Override
8353 return heuristicCloseNodesLnsNumNodes_;
8354 }
8355
8356 public static final int LOCAL_SEARCH_METAHEURISTIC_FIELD_NUMBER = 4;
8357 private int localSearchMetaheuristic_ = 0;
8366 @java.lang.Override public int getLocalSearchMetaheuristicValue() {
8367 return localSearchMetaheuristic_;
8368 }
8378 com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value result = com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value.forNumber(localSearchMetaheuristic_);
8379 return result == null ? com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value.UNRECOGNIZED : result;
8380 }
8381
8383 private double guidedLocalSearchLambdaCoefficient_ = 0D;
8395 @java.lang.Override
8397 return guidedLocalSearchLambdaCoefficient_;
8398 }
8399
8401 private boolean guidedLocalSearchResetPenaltiesOnNewBestSolution_ = false;
8411 @java.lang.Override
8413 return guidedLocalSearchResetPenaltiesOnNewBestSolution_;
8414 }
8415
8416 public static final int USE_DEPTH_FIRST_SEARCH_FIELD_NUMBER = 6;
8417 private boolean useDepthFirstSearch_ = false;
8429 @java.lang.Override
8430 public boolean getUseDepthFirstSearch() {
8431 return useDepthFirstSearch_;
8432 }
8433
8434 public static final int USE_CP_FIELD_NUMBER = 28;
8435 private int useCp_ = 0;
8446 @java.lang.Override public int getUseCpValue() {
8447 return useCp_;
8448 }
8460 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useCp_);
8461 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
8462 }
8463
8464 public static final int USE_CP_SAT_FIELD_NUMBER = 27;
8465 private int useCpSat_ = 0;
8477 @java.lang.Override public int getUseCpSatValue() {
8478 return useCpSat_;
8479 }
8492 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useCpSat_);
8493 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
8494 }
8495
8496 public static final int USE_GENERALIZED_CP_SAT_FIELD_NUMBER = 47;
8497 private int useGeneralizedCpSat_ = 0;
8509 @java.lang.Override public int getUseGeneralizedCpSatValue() {
8510 return useGeneralizedCpSat_;
8511 }
8524 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useGeneralizedCpSat_);
8525 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
8526 }
8527
8528 public static final int SAT_PARAMETERS_FIELD_NUMBER = 48;
8529 private com.google.ortools.sat.SatParameters satParameters_;
8539 @java.lang.Override
8540 public boolean hasSatParameters() {
8541 return ((bitField0_ & 0x00000002) != 0);
8542 }
8552 @java.lang.Override
8554 return satParameters_ == null ? com.google.ortools.sat.SatParameters.getDefaultInstance() : satParameters_;
8555 }
8564 @java.lang.Override
8566 return satParameters_ == null ? com.google.ortools.sat.SatParameters.getDefaultInstance() : satParameters_;
8567 }
8568
8570 private boolean reportIntermediateCpSatSolutions_ = false;
8580 @java.lang.Override
8582 return reportIntermediateCpSatSolutions_;
8583 }
8584
8586 private int fallbackToCpSatSizeThreshold_ = 0;
8596 @java.lang.Override
8598 return fallbackToCpSatSizeThreshold_;
8599 }
8600
8601 public static final int CONTINUOUS_SCHEDULING_SOLVER_FIELD_NUMBER = 33;
8602 private int continuousSchedulingSolver_ = 0;
8607 @java.lang.Override public int getContinuousSchedulingSolverValue() {
8608 return continuousSchedulingSolver_;
8609 }
8615 com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver result = com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.forNumber(continuousSchedulingSolver_);
8616 return result == null ? com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.UNRECOGNIZED : result;
8617 }
8618
8620 private int mixedIntegerSchedulingSolver_ = 0;
8625 @java.lang.Override public int getMixedIntegerSchedulingSolverValue() {
8626 return mixedIntegerSchedulingSolver_;
8627 }
8633 com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver result = com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.forNumber(mixedIntegerSchedulingSolver_);
8634 return result == null ? com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.UNRECOGNIZED : result;
8635 }
8636
8638 private boolean disableSchedulingBewareThisMayDegradePerformance_ = false;
8648 @java.lang.Override
8650 return ((bitField0_ & 0x00000004) != 0);
8651 }
8661 @java.lang.Override
8663 return disableSchedulingBewareThisMayDegradePerformance_;
8664 }
8665
8666 public static final int OPTIMIZATION_STEP_FIELD_NUMBER = 7;
8667 private double optimizationStep_ = 0D;
8678 @java.lang.Override
8679 public double getOptimizationStep() {
8680 return optimizationStep_;
8681 }
8682
8684 private int numberOfSolutionsToCollect_ = 0;
8694 @java.lang.Override
8696 return numberOfSolutionsToCollect_;
8697 }
8698
8699 public static final int SOLUTION_LIMIT_FIELD_NUMBER = 8;
8700 private long solutionLimit_ = 0L;
8711 @java.lang.Override
8712 public long getSolutionLimit() {
8713 return solutionLimit_;
8714 }
8715
8716 public static final int TIME_LIMIT_FIELD_NUMBER = 9;
8717 private com.google.protobuf.Duration timeLimit_;
8726 @java.lang.Override
8727 public boolean hasTimeLimit() {
8728 return ((bitField0_ & 0x00000008) != 0);
8729 }
8738 @java.lang.Override
8739 public com.google.protobuf.Duration getTimeLimit() {
8740 return timeLimit_ == null ? com.google.protobuf.Duration.getDefaultInstance() : timeLimit_;
8741 }
8749 @java.lang.Override
8750 public com.google.protobuf.DurationOrBuilder getTimeLimitOrBuilder() {
8751 return timeLimit_ == null ? com.google.protobuf.Duration.getDefaultInstance() : timeLimit_;
8752 }
8753
8754 public static final int LNS_TIME_LIMIT_FIELD_NUMBER = 10;
8755 private com.google.protobuf.Duration lnsTimeLimit_;
8765 @java.lang.Override
8766 public boolean hasLnsTimeLimit() {
8767 return ((bitField0_ & 0x00000010) != 0);
8768 }
8778 @java.lang.Override
8779 public com.google.protobuf.Duration getLnsTimeLimit() {
8780 return lnsTimeLimit_ == null ? com.google.protobuf.Duration.getDefaultInstance() : lnsTimeLimit_;
8781 }
8790 @java.lang.Override
8791 public com.google.protobuf.DurationOrBuilder getLnsTimeLimitOrBuilder() {
8792 return lnsTimeLimit_ == null ? com.google.protobuf.Duration.getDefaultInstance() : lnsTimeLimit_;
8793 }
8794
8796 private double secondaryLsTimeLimitRatio_ = 0D;
8810 @java.lang.Override
8812 return secondaryLsTimeLimitRatio_;
8813 }
8814
8815 public static final int IMPROVEMENT_LIMIT_PARAMETERS_FIELD_NUMBER = 37;
8826 @java.lang.Override
8828 return ((bitField0_ & 0x00000020) != 0);
8829 }
8839 @java.lang.Override
8841 return improvementLimitParameters_ == null ? com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.getDefaultInstance() : improvementLimitParameters_;
8842 }
8851 @java.lang.Override
8853 return improvementLimitParameters_ == null ? com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.getDefaultInstance() : improvementLimitParameters_;
8854 }
8855
8856 public static final int USE_FULL_PROPAGATION_FIELD_NUMBER = 11;
8857 private boolean useFullPropagation_ = false;
8875 @java.lang.Override
8876 public boolean getUseFullPropagation() {
8877 return useFullPropagation_;
8878 }
8879
8880 public static final int LOG_SEARCH_FIELD_NUMBER = 13;
8881 private boolean logSearch_ = false;
8902 @java.lang.Override
8903 public boolean getLogSearch() {
8904 return logSearch_;
8905 }
8906
8907 public static final int LOG_COST_SCALING_FACTOR_FIELD_NUMBER = 22;
8908 private double logCostScalingFactor_ = 0D;
8918 @java.lang.Override
8919 public double getLogCostScalingFactor() {
8920 return logCostScalingFactor_;
8921 }
8922
8923 public static final int LOG_COST_OFFSET_FIELD_NUMBER = 29;
8924 private double logCostOffset_ = 0D;
8929 @java.lang.Override
8930 public double getLogCostOffset() {
8931 return logCostOffset_;
8932 }
8933
8934 public static final int LOG_TAG_FIELD_NUMBER = 36;
8935 @SuppressWarnings("serial")
8936 private volatile java.lang.Object logTag_ = "";
8946 @java.lang.Override
8947 public java.lang.String getLogTag() {
8948 java.lang.Object ref = logTag_;
8949 if (ref instanceof java.lang.String) {
8950 return (java.lang.String) ref;
8951 } else {
8952 com.google.protobuf.ByteString bs =
8953 (com.google.protobuf.ByteString) ref;
8954 java.lang.String s = bs.toStringUtf8();
8955 logTag_ = s;
8956 return s;
8957 }
8958 }
8968 @java.lang.Override
8969 public com.google.protobuf.ByteString
8971 java.lang.Object ref = logTag_;
8972 if (ref instanceof java.lang.String) {
8973 com.google.protobuf.ByteString b =
8974 com.google.protobuf.ByteString.copyFromUtf8(
8975 (java.lang.String) ref);
8976 logTag_ = b;
8977 return b;
8978 } else {
8979 return (com.google.protobuf.ByteString) ref;
8980 }
8981 }
8982
8983 public static final int USE_ITERATED_LOCAL_SEARCH_FIELD_NUMBER = 58;
8984 private boolean useIteratedLocalSearch_ = false;
8994 @java.lang.Override
8995 public boolean getUseIteratedLocalSearch() {
8996 return useIteratedLocalSearch_;
8997 }
8998
9000 private operations_research.RoutingIls.IteratedLocalSearchParameters iteratedLocalSearchParameters_;
9009 @java.lang.Override
9011 return ((bitField0_ & 0x00000040) != 0);
9012 }
9021 @java.lang.Override
9032 @java.lang.Override
9036
9037 private byte memoizedIsInitialized = -1;
9038 @java.lang.Override
9039 public final boolean isInitialized() {
9040 byte isInitialized = memoizedIsInitialized;
9041 if (isInitialized == 1) return true;
9042 if (isInitialized == 0) return false;
9043
9044 memoizedIsInitialized = 1;
9045 return true;
9046 }
9047
9048 @java.lang.Override
9049 public void writeTo(com.google.protobuf.CodedOutputStream output)
9050 throws java.io.IOException {
9051 if (firstSolutionStrategy_ != com.google.ortools.constraintsolver.FirstSolutionStrategy.Value.UNSET.getNumber()) {
9052 output.writeEnum(1, firstSolutionStrategy_);
9053 }
9054 if (useUnfilteredFirstSolutionStrategy_ != false) {
9055 output.writeBool(2, useUnfilteredFirstSolutionStrategy_);
9056 }
9057 if (((bitField0_ & 0x00000001) != 0)) {
9058 output.writeMessage(3, getLocalSearchOperators());
9059 }
9060 if (localSearchMetaheuristic_ != com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value.UNSET.getNumber()) {
9061 output.writeEnum(4, localSearchMetaheuristic_);
9062 }
9063 if (java.lang.Double.doubleToRawLongBits(guidedLocalSearchLambdaCoefficient_) != 0) {
9064 output.writeDouble(5, guidedLocalSearchLambdaCoefficient_);
9065 }
9066 if (useDepthFirstSearch_ != false) {
9067 output.writeBool(6, useDepthFirstSearch_);
9068 }
9069 if (java.lang.Double.doubleToRawLongBits(optimizationStep_) != 0) {
9070 output.writeDouble(7, optimizationStep_);
9071 }
9072 if (solutionLimit_ != 0L) {
9073 output.writeInt64(8, solutionLimit_);
9074 }
9075 if (((bitField0_ & 0x00000008) != 0)) {
9076 output.writeMessage(9, getTimeLimit());
9077 }
9078 if (((bitField0_ & 0x00000010) != 0)) {
9079 output.writeMessage(10, getLnsTimeLimit());
9080 }
9081 if (useFullPropagation_ != false) {
9082 output.writeBool(11, useFullPropagation_);
9083 }
9084 if (logSearch_ != false) {
9085 output.writeBool(13, logSearch_);
9086 }
9087 if (java.lang.Double.doubleToRawLongBits(savingsNeighborsRatio_) != 0) {
9088 output.writeDouble(14, savingsNeighborsRatio_);
9089 }
9090 if (savingsAddReverseArcs_ != false) {
9091 output.writeBool(15, savingsAddReverseArcs_);
9092 }
9093 if (java.lang.Double.doubleToRawLongBits(cheapestInsertionFarthestSeedsRatio_) != 0) {
9094 output.writeDouble(16, cheapestInsertionFarthestSeedsRatio_);
9095 }
9096 if (numberOfSolutionsToCollect_ != 0) {
9097 output.writeInt32(17, numberOfSolutionsToCollect_);
9098 }
9099 if (java.lang.Double.doubleToRawLongBits(savingsArcCoefficient_) != 0) {
9100 output.writeDouble(18, savingsArcCoefficient_);
9101 }
9102 if (savingsParallelRoutes_ != false) {
9103 output.writeBool(19, savingsParallelRoutes_);
9104 }
9105 if (relocateExpensiveChainNumArcsToConsider_ != 0) {
9106 output.writeInt32(20, relocateExpensiveChainNumArcsToConsider_);
9107 }
9108 if (java.lang.Double.doubleToRawLongBits(cheapestInsertionFirstSolutionNeighborsRatio_) != 0) {
9109 output.writeDouble(21, cheapestInsertionFirstSolutionNeighborsRatio_);
9110 }
9111 if (java.lang.Double.doubleToRawLongBits(logCostScalingFactor_) != 0) {
9112 output.writeDouble(22, logCostScalingFactor_);
9113 }
9114 if (java.lang.Double.doubleToRawLongBits(savingsMaxMemoryUsageBytes_) != 0) {
9115 output.writeDouble(23, savingsMaxMemoryUsageBytes_);
9116 }
9117 if (useCpSat_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
9118 output.writeEnum(27, useCpSat_);
9119 }
9120 if (useCp_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
9121 output.writeEnum(28, useCp_);
9122 }
9123 if (java.lang.Double.doubleToRawLongBits(logCostOffset_) != 0) {
9124 output.writeDouble(29, logCostOffset_);
9125 }
9126 if (christofidesUseMinimumMatching_ != false) {
9127 output.writeBool(30, christofidesUseMinimumMatching_);
9128 }
9129 if (java.lang.Double.doubleToRawLongBits(cheapestInsertionLsOperatorNeighborsRatio_) != 0) {
9130 output.writeDouble(31, cheapestInsertionLsOperatorNeighborsRatio_);
9131 }
9132 if (heuristicExpensiveChainLnsNumArcsToConsider_ != 0) {
9133 output.writeInt32(32, heuristicExpensiveChainLnsNumArcsToConsider_);
9134 }
9135 if (continuousSchedulingSolver_ != com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.SCHEDULING_UNSET.getNumber()) {
9136 output.writeEnum(33, continuousSchedulingSolver_);
9137 }
9138 if (mixedIntegerSchedulingSolver_ != com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.SCHEDULING_UNSET.getNumber()) {
9139 output.writeEnum(34, mixedIntegerSchedulingSolver_);
9140 }
9141 if (heuristicCloseNodesLnsNumNodes_ != 0) {
9142 output.writeInt32(35, heuristicCloseNodesLnsNumNodes_);
9143 }
9144 if (!com.google.protobuf.GeneratedMessage.isStringEmpty(logTag_)) {
9145 com.google.protobuf.GeneratedMessage.writeString(output, 36, logTag_);
9146 }
9147 if (((bitField0_ & 0x00000020) != 0)) {
9148 output.writeMessage(37, getImprovementLimitParameters());
9149 }
9150 if (cheapestInsertionAddUnperformedEntries_ != false) {
9151 output.writeBool(40, cheapestInsertionAddUnperformedEntries_);
9152 }
9153 if (useMultiArmedBanditConcatenateOperators_ != false) {
9154 output.writeBool(41, useMultiArmedBanditConcatenateOperators_);
9155 }
9156 if (java.lang.Double.doubleToRawLongBits(multiArmedBanditCompoundOperatorMemoryCoefficient_) != 0) {
9157 output.writeDouble(42, multiArmedBanditCompoundOperatorMemoryCoefficient_);
9158 }
9159 if (java.lang.Double.doubleToRawLongBits(multiArmedBanditCompoundOperatorExplorationCoefficient_) != 0) {
9160 output.writeDouble(43, multiArmedBanditCompoundOperatorExplorationCoefficient_);
9161 }
9162 if (cheapestInsertionFirstSolutionMinNeighbors_ != 0) {
9163 output.writeInt32(44, cheapestInsertionFirstSolutionMinNeighbors_);
9164 }
9165 if (cheapestInsertionLsOperatorMinNeighbors_ != 0) {
9166 output.writeInt32(45, cheapestInsertionLsOperatorMinNeighbors_);
9167 }
9168 if (cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_ != false) {
9169 output.writeBool(46, cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_);
9170 }
9171 if (useGeneralizedCpSat_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
9172 output.writeEnum(47, useGeneralizedCpSat_);
9173 }
9174 if (((bitField0_ & 0x00000002) != 0)) {
9175 output.writeMessage(48, getSatParameters());
9176 }
9177 if (localCheapestInsertionPickupDeliveryStrategy_ != com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy.AUTOMATIC.getNumber()) {
9178 output.writeEnum(49, localCheapestInsertionPickupDeliveryStrategy_);
9179 }
9180 if (((bitField0_ & 0x00000004) != 0)) {
9181 output.writeBool(50, disableSchedulingBewareThisMayDegradePerformance_);
9182 }
9183 if (guidedLocalSearchResetPenaltiesOnNewBestSolution_ != false) {
9184 output.writeBool(51, guidedLocalSearchResetPenaltiesOnNewBestSolution_);
9185 }
9186 if (fallbackToCpSatSizeThreshold_ != 0) {
9187 output.writeInt32(52, fallbackToCpSatSizeThreshold_);
9188 }
9189 if (java.lang.Double.doubleToRawLongBits(lsOperatorNeighborsRatio_) != 0) {
9190 output.writeDouble(53, lsOperatorNeighborsRatio_);
9191 }
9192 if (lsOperatorMinNeighbors_ != 0) {
9193 output.writeInt32(54, lsOperatorMinNeighbors_);
9194 }
9195 if (localCheapestCostInsertionPickupDeliveryStrategy_ != com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy.AUTOMATIC.getNumber()) {
9196 output.writeEnum(55, localCheapestCostInsertionPickupDeliveryStrategy_);
9197 }
9198 if (reportIntermediateCpSatSolutions_ != false) {
9199 output.writeBool(56, reportIntermediateCpSatSolutions_);
9200 }
9201 if (java.lang.Double.doubleToRawLongBits(secondaryLsTimeLimitRatio_) != 0) {
9202 output.writeDouble(57, secondaryLsTimeLimitRatio_);
9203 }
9204 if (useIteratedLocalSearch_ != false) {
9205 output.writeBool(58, useIteratedLocalSearch_);
9206 }
9207 if (firstSolutionOptimizationPeriod_ != 0) {
9208 output.writeInt32(59, firstSolutionOptimizationPeriod_);
9209 }
9210 if (((bitField0_ & 0x00000040) != 0)) {
9211 output.writeMessage(60, getIteratedLocalSearchParameters());
9212 }
9213 getUnknownFields().writeTo(output);
9214 }
9215
9216 @java.lang.Override
9217 public int getSerializedSize() {
9218 int size = memoizedSize;
9219 if (size != -1) return size;
9220
9221 size = 0;
9222 if (firstSolutionStrategy_ != com.google.ortools.constraintsolver.FirstSolutionStrategy.Value.UNSET.getNumber()) {
9223 size += com.google.protobuf.CodedOutputStream
9224 .computeEnumSize(1, firstSolutionStrategy_);
9225 }
9226 if (useUnfilteredFirstSolutionStrategy_ != false) {
9227 size += com.google.protobuf.CodedOutputStream
9228 .computeBoolSize(2, useUnfilteredFirstSolutionStrategy_);
9229 }
9230 if (((bitField0_ & 0x00000001) != 0)) {
9231 size += com.google.protobuf.CodedOutputStream
9232 .computeMessageSize(3, getLocalSearchOperators());
9233 }
9234 if (localSearchMetaheuristic_ != com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value.UNSET.getNumber()) {
9235 size += com.google.protobuf.CodedOutputStream
9236 .computeEnumSize(4, localSearchMetaheuristic_);
9237 }
9238 if (java.lang.Double.doubleToRawLongBits(guidedLocalSearchLambdaCoefficient_) != 0) {
9239 size += com.google.protobuf.CodedOutputStream
9240 .computeDoubleSize(5, guidedLocalSearchLambdaCoefficient_);
9241 }
9242 if (useDepthFirstSearch_ != false) {
9243 size += com.google.protobuf.CodedOutputStream
9244 .computeBoolSize(6, useDepthFirstSearch_);
9245 }
9246 if (java.lang.Double.doubleToRawLongBits(optimizationStep_) != 0) {
9247 size += com.google.protobuf.CodedOutputStream
9248 .computeDoubleSize(7, optimizationStep_);
9249 }
9250 if (solutionLimit_ != 0L) {
9251 size += com.google.protobuf.CodedOutputStream
9252 .computeInt64Size(8, solutionLimit_);
9253 }
9254 if (((bitField0_ & 0x00000008) != 0)) {
9255 size += com.google.protobuf.CodedOutputStream
9256 .computeMessageSize(9, getTimeLimit());
9257 }
9258 if (((bitField0_ & 0x00000010) != 0)) {
9259 size += com.google.protobuf.CodedOutputStream
9260 .computeMessageSize(10, getLnsTimeLimit());
9261 }
9262 if (useFullPropagation_ != false) {
9263 size += com.google.protobuf.CodedOutputStream
9264 .computeBoolSize(11, useFullPropagation_);
9265 }
9266 if (logSearch_ != false) {
9267 size += com.google.protobuf.CodedOutputStream
9268 .computeBoolSize(13, logSearch_);
9269 }
9270 if (java.lang.Double.doubleToRawLongBits(savingsNeighborsRatio_) != 0) {
9271 size += com.google.protobuf.CodedOutputStream
9272 .computeDoubleSize(14, savingsNeighborsRatio_);
9273 }
9274 if (savingsAddReverseArcs_ != false) {
9275 size += com.google.protobuf.CodedOutputStream
9276 .computeBoolSize(15, savingsAddReverseArcs_);
9277 }
9278 if (java.lang.Double.doubleToRawLongBits(cheapestInsertionFarthestSeedsRatio_) != 0) {
9279 size += com.google.protobuf.CodedOutputStream
9280 .computeDoubleSize(16, cheapestInsertionFarthestSeedsRatio_);
9281 }
9282 if (numberOfSolutionsToCollect_ != 0) {
9283 size += com.google.protobuf.CodedOutputStream
9284 .computeInt32Size(17, numberOfSolutionsToCollect_);
9285 }
9286 if (java.lang.Double.doubleToRawLongBits(savingsArcCoefficient_) != 0) {
9287 size += com.google.protobuf.CodedOutputStream
9288 .computeDoubleSize(18, savingsArcCoefficient_);
9289 }
9290 if (savingsParallelRoutes_ != false) {
9291 size += com.google.protobuf.CodedOutputStream
9292 .computeBoolSize(19, savingsParallelRoutes_);
9293 }
9294 if (relocateExpensiveChainNumArcsToConsider_ != 0) {
9295 size += com.google.protobuf.CodedOutputStream
9296 .computeInt32Size(20, relocateExpensiveChainNumArcsToConsider_);
9297 }
9298 if (java.lang.Double.doubleToRawLongBits(cheapestInsertionFirstSolutionNeighborsRatio_) != 0) {
9299 size += com.google.protobuf.CodedOutputStream
9300 .computeDoubleSize(21, cheapestInsertionFirstSolutionNeighborsRatio_);
9301 }
9302 if (java.lang.Double.doubleToRawLongBits(logCostScalingFactor_) != 0) {
9303 size += com.google.protobuf.CodedOutputStream
9304 .computeDoubleSize(22, logCostScalingFactor_);
9305 }
9306 if (java.lang.Double.doubleToRawLongBits(savingsMaxMemoryUsageBytes_) != 0) {
9307 size += com.google.protobuf.CodedOutputStream
9308 .computeDoubleSize(23, savingsMaxMemoryUsageBytes_);
9309 }
9310 if (useCpSat_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
9311 size += com.google.protobuf.CodedOutputStream
9312 .computeEnumSize(27, useCpSat_);
9313 }
9314 if (useCp_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
9315 size += com.google.protobuf.CodedOutputStream
9316 .computeEnumSize(28, useCp_);
9317 }
9318 if (java.lang.Double.doubleToRawLongBits(logCostOffset_) != 0) {
9319 size += com.google.protobuf.CodedOutputStream
9320 .computeDoubleSize(29, logCostOffset_);
9321 }
9322 if (christofidesUseMinimumMatching_ != false) {
9323 size += com.google.protobuf.CodedOutputStream
9324 .computeBoolSize(30, christofidesUseMinimumMatching_);
9325 }
9326 if (java.lang.Double.doubleToRawLongBits(cheapestInsertionLsOperatorNeighborsRatio_) != 0) {
9327 size += com.google.protobuf.CodedOutputStream
9328 .computeDoubleSize(31, cheapestInsertionLsOperatorNeighborsRatio_);
9329 }
9330 if (heuristicExpensiveChainLnsNumArcsToConsider_ != 0) {
9331 size += com.google.protobuf.CodedOutputStream
9332 .computeInt32Size(32, heuristicExpensiveChainLnsNumArcsToConsider_);
9333 }
9334 if (continuousSchedulingSolver_ != com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.SCHEDULING_UNSET.getNumber()) {
9335 size += com.google.protobuf.CodedOutputStream
9336 .computeEnumSize(33, continuousSchedulingSolver_);
9337 }
9338 if (mixedIntegerSchedulingSolver_ != com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.SCHEDULING_UNSET.getNumber()) {
9339 size += com.google.protobuf.CodedOutputStream
9340 .computeEnumSize(34, mixedIntegerSchedulingSolver_);
9341 }
9342 if (heuristicCloseNodesLnsNumNodes_ != 0) {
9343 size += com.google.protobuf.CodedOutputStream
9344 .computeInt32Size(35, heuristicCloseNodesLnsNumNodes_);
9345 }
9346 if (!com.google.protobuf.GeneratedMessage.isStringEmpty(logTag_)) {
9347 size += com.google.protobuf.GeneratedMessage.computeStringSize(36, logTag_);
9348 }
9349 if (((bitField0_ & 0x00000020) != 0)) {
9350 size += com.google.protobuf.CodedOutputStream
9351 .computeMessageSize(37, getImprovementLimitParameters());
9352 }
9353 if (cheapestInsertionAddUnperformedEntries_ != false) {
9354 size += com.google.protobuf.CodedOutputStream
9355 .computeBoolSize(40, cheapestInsertionAddUnperformedEntries_);
9356 }
9357 if (useMultiArmedBanditConcatenateOperators_ != false) {
9358 size += com.google.protobuf.CodedOutputStream
9359 .computeBoolSize(41, useMultiArmedBanditConcatenateOperators_);
9360 }
9361 if (java.lang.Double.doubleToRawLongBits(multiArmedBanditCompoundOperatorMemoryCoefficient_) != 0) {
9362 size += com.google.protobuf.CodedOutputStream
9363 .computeDoubleSize(42, multiArmedBanditCompoundOperatorMemoryCoefficient_);
9364 }
9365 if (java.lang.Double.doubleToRawLongBits(multiArmedBanditCompoundOperatorExplorationCoefficient_) != 0) {
9366 size += com.google.protobuf.CodedOutputStream
9367 .computeDoubleSize(43, multiArmedBanditCompoundOperatorExplorationCoefficient_);
9368 }
9369 if (cheapestInsertionFirstSolutionMinNeighbors_ != 0) {
9370 size += com.google.protobuf.CodedOutputStream
9371 .computeInt32Size(44, cheapestInsertionFirstSolutionMinNeighbors_);
9372 }
9373 if (cheapestInsertionLsOperatorMinNeighbors_ != 0) {
9374 size += com.google.protobuf.CodedOutputStream
9375 .computeInt32Size(45, cheapestInsertionLsOperatorMinNeighbors_);
9376 }
9377 if (cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_ != false) {
9378 size += com.google.protobuf.CodedOutputStream
9379 .computeBoolSize(46, cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_);
9380 }
9381 if (useGeneralizedCpSat_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
9382 size += com.google.protobuf.CodedOutputStream
9383 .computeEnumSize(47, useGeneralizedCpSat_);
9384 }
9385 if (((bitField0_ & 0x00000002) != 0)) {
9386 size += com.google.protobuf.CodedOutputStream
9387 .computeMessageSize(48, getSatParameters());
9388 }
9389 if (localCheapestInsertionPickupDeliveryStrategy_ != com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy.AUTOMATIC.getNumber()) {
9390 size += com.google.protobuf.CodedOutputStream
9391 .computeEnumSize(49, localCheapestInsertionPickupDeliveryStrategy_);
9392 }
9393 if (((bitField0_ & 0x00000004) != 0)) {
9394 size += com.google.protobuf.CodedOutputStream
9395 .computeBoolSize(50, disableSchedulingBewareThisMayDegradePerformance_);
9396 }
9397 if (guidedLocalSearchResetPenaltiesOnNewBestSolution_ != false) {
9398 size += com.google.protobuf.CodedOutputStream
9399 .computeBoolSize(51, guidedLocalSearchResetPenaltiesOnNewBestSolution_);
9400 }
9401 if (fallbackToCpSatSizeThreshold_ != 0) {
9402 size += com.google.protobuf.CodedOutputStream
9403 .computeInt32Size(52, fallbackToCpSatSizeThreshold_);
9404 }
9405 if (java.lang.Double.doubleToRawLongBits(lsOperatorNeighborsRatio_) != 0) {
9406 size += com.google.protobuf.CodedOutputStream
9407 .computeDoubleSize(53, lsOperatorNeighborsRatio_);
9408 }
9409 if (lsOperatorMinNeighbors_ != 0) {
9410 size += com.google.protobuf.CodedOutputStream
9411 .computeInt32Size(54, lsOperatorMinNeighbors_);
9412 }
9413 if (localCheapestCostInsertionPickupDeliveryStrategy_ != com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy.AUTOMATIC.getNumber()) {
9414 size += com.google.protobuf.CodedOutputStream
9415 .computeEnumSize(55, localCheapestCostInsertionPickupDeliveryStrategy_);
9416 }
9417 if (reportIntermediateCpSatSolutions_ != false) {
9418 size += com.google.protobuf.CodedOutputStream
9419 .computeBoolSize(56, reportIntermediateCpSatSolutions_);
9420 }
9421 if (java.lang.Double.doubleToRawLongBits(secondaryLsTimeLimitRatio_) != 0) {
9422 size += com.google.protobuf.CodedOutputStream
9423 .computeDoubleSize(57, secondaryLsTimeLimitRatio_);
9424 }
9425 if (useIteratedLocalSearch_ != false) {
9426 size += com.google.protobuf.CodedOutputStream
9427 .computeBoolSize(58, useIteratedLocalSearch_);
9428 }
9429 if (firstSolutionOptimizationPeriod_ != 0) {
9430 size += com.google.protobuf.CodedOutputStream
9431 .computeInt32Size(59, firstSolutionOptimizationPeriod_);
9432 }
9433 if (((bitField0_ & 0x00000040) != 0)) {
9434 size += com.google.protobuf.CodedOutputStream
9435 .computeMessageSize(60, getIteratedLocalSearchParameters());
9436 }
9437 size += getUnknownFields().getSerializedSize();
9438 memoizedSize = size;
9439 return size;
9440 }
9441
9442 @java.lang.Override
9443 public boolean equals(final java.lang.Object obj) {
9444 if (obj == this) {
9445 return true;
9446 }
9447 if (!(obj instanceof com.google.ortools.constraintsolver.RoutingSearchParameters)) {
9448 return super.equals(obj);
9449 }
9450 com.google.ortools.constraintsolver.RoutingSearchParameters other = (com.google.ortools.constraintsolver.RoutingSearchParameters) obj;
9451
9452 if (firstSolutionStrategy_ != other.firstSolutionStrategy_) return false;
9454 != other.getUseUnfilteredFirstSolutionStrategy()) return false;
9455 if (java.lang.Double.doubleToLongBits(getSavingsNeighborsRatio())
9456 != java.lang.Double.doubleToLongBits(
9457 other.getSavingsNeighborsRatio())) return false;
9458 if (java.lang.Double.doubleToLongBits(getSavingsMaxMemoryUsageBytes())
9459 != java.lang.Double.doubleToLongBits(
9460 other.getSavingsMaxMemoryUsageBytes())) return false;
9462 != other.getSavingsAddReverseArcs()) return false;
9463 if (java.lang.Double.doubleToLongBits(getSavingsArcCoefficient())
9464 != java.lang.Double.doubleToLongBits(
9465 other.getSavingsArcCoefficient())) return false;
9467 != other.getSavingsParallelRoutes()) return false;
9468 if (java.lang.Double.doubleToLongBits(getCheapestInsertionFarthestSeedsRatio())
9469 != java.lang.Double.doubleToLongBits(
9470 other.getCheapestInsertionFarthestSeedsRatio())) return false;
9471 if (java.lang.Double.doubleToLongBits(getCheapestInsertionFirstSolutionNeighborsRatio())
9472 != java.lang.Double.doubleToLongBits(
9475 != other.getCheapestInsertionFirstSolutionMinNeighbors()) return false;
9476 if (java.lang.Double.doubleToLongBits(getCheapestInsertionLsOperatorNeighborsRatio())
9477 != java.lang.Double.doubleToLongBits(
9478 other.getCheapestInsertionLsOperatorNeighborsRatio())) return false;
9480 != other.getCheapestInsertionLsOperatorMinNeighbors()) return false;
9484 != other.getCheapestInsertionAddUnperformedEntries()) return false;
9485 if (localCheapestInsertionPickupDeliveryStrategy_ != other.localCheapestInsertionPickupDeliveryStrategy_) return false;
9486 if (localCheapestCostInsertionPickupDeliveryStrategy_ != other.localCheapestCostInsertionPickupDeliveryStrategy_) return false;
9488 != other.getChristofidesUseMinimumMatching()) return false;
9490 != other.getFirstSolutionOptimizationPeriod()) return false;
9491 if (hasLocalSearchOperators() != other.hasLocalSearchOperators()) return false;
9494 .equals(other.getLocalSearchOperators())) return false;
9495 }
9496 if (java.lang.Double.doubleToLongBits(getLsOperatorNeighborsRatio())
9497 != java.lang.Double.doubleToLongBits(
9498 other.getLsOperatorNeighborsRatio())) return false;
9500 != other.getLsOperatorMinNeighbors()) return false;
9502 != other.getUseMultiArmedBanditConcatenateOperators()) return false;
9503 if (java.lang.Double.doubleToLongBits(getMultiArmedBanditCompoundOperatorMemoryCoefficient())
9504 != java.lang.Double.doubleToLongBits(
9506 if (java.lang.Double.doubleToLongBits(getMultiArmedBanditCompoundOperatorExplorationCoefficient())
9507 != java.lang.Double.doubleToLongBits(
9510 != other.getRelocateExpensiveChainNumArcsToConsider()) return false;
9512 != other.getHeuristicExpensiveChainLnsNumArcsToConsider()) return false;
9514 != other.getHeuristicCloseNodesLnsNumNodes()) return false;
9515 if (localSearchMetaheuristic_ != other.localSearchMetaheuristic_) return false;
9516 if (java.lang.Double.doubleToLongBits(getGuidedLocalSearchLambdaCoefficient())
9517 != java.lang.Double.doubleToLongBits(
9518 other.getGuidedLocalSearchLambdaCoefficient())) return false;
9522 != other.getUseDepthFirstSearch()) return false;
9523 if (useCp_ != other.useCp_) return false;
9524 if (useCpSat_ != other.useCpSat_) return false;
9525 if (useGeneralizedCpSat_ != other.useGeneralizedCpSat_) return false;
9526 if (hasSatParameters() != other.hasSatParameters()) return false;
9527 if (hasSatParameters()) {
9528 if (!getSatParameters()
9529 .equals(other.getSatParameters())) return false;
9530 }
9532 != other.getReportIntermediateCpSatSolutions()) return false;
9534 != other.getFallbackToCpSatSizeThreshold()) return false;
9535 if (continuousSchedulingSolver_ != other.continuousSchedulingSolver_) return false;
9536 if (mixedIntegerSchedulingSolver_ != other.mixedIntegerSchedulingSolver_) return false;
9541 }
9542 if (java.lang.Double.doubleToLongBits(getOptimizationStep())
9543 != java.lang.Double.doubleToLongBits(
9544 other.getOptimizationStep())) return false;
9546 != other.getNumberOfSolutionsToCollect()) return false;
9547 if (getSolutionLimit()
9548 != other.getSolutionLimit()) return false;
9549 if (hasTimeLimit() != other.hasTimeLimit()) return false;
9550 if (hasTimeLimit()) {
9551 if (!getTimeLimit()
9552 .equals(other.getTimeLimit())) return false;
9553 }
9554 if (hasLnsTimeLimit() != other.hasLnsTimeLimit()) return false;
9555 if (hasLnsTimeLimit()) {
9556 if (!getLnsTimeLimit()
9557 .equals(other.getLnsTimeLimit())) return false;
9558 }
9559 if (java.lang.Double.doubleToLongBits(getSecondaryLsTimeLimitRatio())
9560 != java.lang.Double.doubleToLongBits(
9561 other.getSecondaryLsTimeLimitRatio())) return false;
9562 if (hasImprovementLimitParameters() != other.hasImprovementLimitParameters()) return false;
9565 .equals(other.getImprovementLimitParameters())) return false;
9566 }
9568 != other.getUseFullPropagation()) return false;
9569 if (getLogSearch()
9570 != other.getLogSearch()) return false;
9571 if (java.lang.Double.doubleToLongBits(getLogCostScalingFactor())
9572 != java.lang.Double.doubleToLongBits(
9573 other.getLogCostScalingFactor())) return false;
9574 if (java.lang.Double.doubleToLongBits(getLogCostOffset())
9575 != java.lang.Double.doubleToLongBits(
9576 other.getLogCostOffset())) return false;
9577 if (!getLogTag()
9578 .equals(other.getLogTag())) return false;
9580 != other.getUseIteratedLocalSearch()) return false;
9584 .equals(other.getIteratedLocalSearchParameters())) return false;
9585 }
9586 if (!getUnknownFields().equals(other.getUnknownFields())) return false;
9587 return true;
9588 }
9589
9590 @java.lang.Override
9591 public int hashCode() {
9592 if (memoizedHashCode != 0) {
9593 return memoizedHashCode;
9594 }
9595 int hash = 41;
9596 hash = (19 * hash) + getDescriptor().hashCode();
9597 hash = (37 * hash) + FIRST_SOLUTION_STRATEGY_FIELD_NUMBER;
9598 hash = (53 * hash) + firstSolutionStrategy_;
9600 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9602 hash = (37 * hash) + SAVINGS_NEIGHBORS_RATIO_FIELD_NUMBER;
9603 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9604 java.lang.Double.doubleToLongBits(getSavingsNeighborsRatio()));
9606 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9607 java.lang.Double.doubleToLongBits(getSavingsMaxMemoryUsageBytes()));
9608 hash = (37 * hash) + SAVINGS_ADD_REVERSE_ARCS_FIELD_NUMBER;
9609 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9611 hash = (37 * hash) + SAVINGS_ARC_COEFFICIENT_FIELD_NUMBER;
9612 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9613 java.lang.Double.doubleToLongBits(getSavingsArcCoefficient()));
9614 hash = (37 * hash) + SAVINGS_PARALLEL_ROUTES_FIELD_NUMBER;
9615 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9618 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9619 java.lang.Double.doubleToLongBits(getCheapestInsertionFarthestSeedsRatio()));
9621 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9622 java.lang.Double.doubleToLongBits(getCheapestInsertionFirstSolutionNeighborsRatio()));
9624 hash = (53 * hash) + getCheapestInsertionFirstSolutionMinNeighbors();
9626 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9627 java.lang.Double.doubleToLongBits(getCheapestInsertionLsOperatorNeighborsRatio()));
9629 hash = (53 * hash) + getCheapestInsertionLsOperatorMinNeighbors();
9631 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9634 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9637 hash = (53 * hash) + localCheapestInsertionPickupDeliveryStrategy_;
9639 hash = (53 * hash) + localCheapestCostInsertionPickupDeliveryStrategy_;
9641 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9644 hash = (53 * hash) + getFirstSolutionOptimizationPeriod();
9646 hash = (37 * hash) + LOCAL_SEARCH_OPERATORS_FIELD_NUMBER;
9647 hash = (53 * hash) + getLocalSearchOperators().hashCode();
9648 }
9649 hash = (37 * hash) + LS_OPERATOR_NEIGHBORS_RATIO_FIELD_NUMBER;
9650 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9651 java.lang.Double.doubleToLongBits(getLsOperatorNeighborsRatio()));
9652 hash = (37 * hash) + LS_OPERATOR_MIN_NEIGHBORS_FIELD_NUMBER;
9653 hash = (53 * hash) + getLsOperatorMinNeighbors();
9655 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9658 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9659 java.lang.Double.doubleToLongBits(getMultiArmedBanditCompoundOperatorMemoryCoefficient()));
9661 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9662 java.lang.Double.doubleToLongBits(getMultiArmedBanditCompoundOperatorExplorationCoefficient()));
9664 hash = (53 * hash) + getRelocateExpensiveChainNumArcsToConsider();
9668 hash = (53 * hash) + getHeuristicCloseNodesLnsNumNodes();
9669 hash = (37 * hash) + LOCAL_SEARCH_METAHEURISTIC_FIELD_NUMBER;
9670 hash = (53 * hash) + localSearchMetaheuristic_;
9672 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9673 java.lang.Double.doubleToLongBits(getGuidedLocalSearchLambdaCoefficient()));
9675 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9677 hash = (37 * hash) + USE_DEPTH_FIRST_SEARCH_FIELD_NUMBER;
9678 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9680 hash = (37 * hash) + USE_CP_FIELD_NUMBER;
9681 hash = (53 * hash) + useCp_;
9682 hash = (37 * hash) + USE_CP_SAT_FIELD_NUMBER;
9683 hash = (53 * hash) + useCpSat_;
9684 hash = (37 * hash) + USE_GENERALIZED_CP_SAT_FIELD_NUMBER;
9685 hash = (53 * hash) + useGeneralizedCpSat_;
9686 if (hasSatParameters()) {
9687 hash = (37 * hash) + SAT_PARAMETERS_FIELD_NUMBER;
9688 hash = (53 * hash) + getSatParameters().hashCode();
9689 }
9691 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9694 hash = (53 * hash) + getFallbackToCpSatSizeThreshold();
9695 hash = (37 * hash) + CONTINUOUS_SCHEDULING_SOLVER_FIELD_NUMBER;
9696 hash = (53 * hash) + continuousSchedulingSolver_;
9698 hash = (53 * hash) + mixedIntegerSchedulingSolver_;
9701 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9703 }
9704 hash = (37 * hash) + OPTIMIZATION_STEP_FIELD_NUMBER;
9705 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9706 java.lang.Double.doubleToLongBits(getOptimizationStep()));
9708 hash = (53 * hash) + getNumberOfSolutionsToCollect();
9709 hash = (37 * hash) + SOLUTION_LIMIT_FIELD_NUMBER;
9710 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9712 if (hasTimeLimit()) {
9713 hash = (37 * hash) + TIME_LIMIT_FIELD_NUMBER;
9714 hash = (53 * hash) + getTimeLimit().hashCode();
9715 }
9716 if (hasLnsTimeLimit()) {
9717 hash = (37 * hash) + LNS_TIME_LIMIT_FIELD_NUMBER;
9718 hash = (53 * hash) + getLnsTimeLimit().hashCode();
9719 }
9720 hash = (37 * hash) + SECONDARY_LS_TIME_LIMIT_RATIO_FIELD_NUMBER;
9721 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9722 java.lang.Double.doubleToLongBits(getSecondaryLsTimeLimitRatio()));
9724 hash = (37 * hash) + IMPROVEMENT_LIMIT_PARAMETERS_FIELD_NUMBER;
9725 hash = (53 * hash) + getImprovementLimitParameters().hashCode();
9726 }
9727 hash = (37 * hash) + USE_FULL_PROPAGATION_FIELD_NUMBER;
9728 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9730 hash = (37 * hash) + LOG_SEARCH_FIELD_NUMBER;
9731 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9732 getLogSearch());
9733 hash = (37 * hash) + LOG_COST_SCALING_FACTOR_FIELD_NUMBER;
9734 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9735 java.lang.Double.doubleToLongBits(getLogCostScalingFactor()));
9736 hash = (37 * hash) + LOG_COST_OFFSET_FIELD_NUMBER;
9737 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
9738 java.lang.Double.doubleToLongBits(getLogCostOffset()));
9739 hash = (37 * hash) + LOG_TAG_FIELD_NUMBER;
9740 hash = (53 * hash) + getLogTag().hashCode();
9741 hash = (37 * hash) + USE_ITERATED_LOCAL_SEARCH_FIELD_NUMBER;
9742 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
9746 hash = (53 * hash) + getIteratedLocalSearchParameters().hashCode();
9747 }
9748 hash = (29 * hash) + getUnknownFields().hashCode();
9749 memoizedHashCode = hash;
9750 return hash;
9751 }
9752
9754 java.nio.ByteBuffer data)
9755 throws com.google.protobuf.InvalidProtocolBufferException {
9756 return PARSER.parseFrom(data);
9757 }
9759 java.nio.ByteBuffer data,
9760 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9761 throws com.google.protobuf.InvalidProtocolBufferException {
9762 return PARSER.parseFrom(data, extensionRegistry);
9763 }
9765 com.google.protobuf.ByteString data)
9766 throws com.google.protobuf.InvalidProtocolBufferException {
9767 return PARSER.parseFrom(data);
9768 }
9770 com.google.protobuf.ByteString data,
9771 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9772 throws com.google.protobuf.InvalidProtocolBufferException {
9773 return PARSER.parseFrom(data, extensionRegistry);
9774 }
9776 throws com.google.protobuf.InvalidProtocolBufferException {
9777 return PARSER.parseFrom(data);
9778 }
9780 byte[] data,
9781 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9782 throws com.google.protobuf.InvalidProtocolBufferException {
9783 return PARSER.parseFrom(data, extensionRegistry);
9784 }
9786 throws java.io.IOException {
9787 return com.google.protobuf.GeneratedMessage
9788 .parseWithIOException(PARSER, input);
9789 }
9791 java.io.InputStream input,
9792 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9793 throws java.io.IOException {
9794 return com.google.protobuf.GeneratedMessage
9795 .parseWithIOException(PARSER, input, extensionRegistry);
9796 }
9797
9799 throws java.io.IOException {
9800 return com.google.protobuf.GeneratedMessage
9801 .parseDelimitedWithIOException(PARSER, input);
9802 }
9803
9805 java.io.InputStream input,
9806 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9807 throws java.io.IOException {
9808 return com.google.protobuf.GeneratedMessage
9809 .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
9810 }
9812 com.google.protobuf.CodedInputStream input)
9813 throws java.io.IOException {
9814 return com.google.protobuf.GeneratedMessage
9815 .parseWithIOException(PARSER, input);
9816 }
9818 com.google.protobuf.CodedInputStream input,
9819 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9820 throws java.io.IOException {
9821 return com.google.protobuf.GeneratedMessage
9822 .parseWithIOException(PARSER, input, extensionRegistry);
9823 }
9824
9825 @java.lang.Override
9826 public Builder newBuilderForType() { return newBuilder(); }
9827 public static Builder newBuilder() {
9828 return DEFAULT_INSTANCE.toBuilder();
9829 }
9830 public static Builder newBuilder(com.google.ortools.constraintsolver.RoutingSearchParameters prototype) {
9831 return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
9832 }
9833 @java.lang.Override
9835 return this == DEFAULT_INSTANCE
9836 ? new Builder() : new Builder().mergeFrom(this);
9837 }
9838
9839 @java.lang.Override
9841 com.google.protobuf.GeneratedMessage.BuilderParent parent) {
9842 Builder builder = new Builder(parent);
9843 return builder;
9844 }
9858 public static final class Builder extends
9859 com.google.protobuf.GeneratedMessage.Builder<Builder> implements
9860 // @@protoc_insertion_point(builder_implements:operations_research.RoutingSearchParameters)
9861 com.google.ortools.constraintsolver.RoutingSearchParametersOrBuilder {
9862 public static final com.google.protobuf.Descriptors.Descriptor
9864 return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_descriptor;
9865 }
9866
9867 @java.lang.Override
9868 protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
9870 return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_fieldAccessorTable
9871 .ensureFieldAccessorsInitialized(
9872 com.google.ortools.constraintsolver.RoutingSearchParameters.class, com.google.ortools.constraintsolver.RoutingSearchParameters.Builder.class);
9873 }
9874
9875 // Construct using com.google.ortools.constraintsolver.RoutingSearchParameters.newBuilder()
9876 private Builder() {
9877 maybeForceBuilderInitialization();
9878 }
9879
9880 private Builder(
9881 com.google.protobuf.GeneratedMessage.BuilderParent parent) {
9882 super(parent);
9883 maybeForceBuilderInitialization();
9884 }
9885 private void maybeForceBuilderInitialization() {
9886 if (com.google.protobuf.GeneratedMessage
9887 .alwaysUseFieldBuilders) {
9888 getLocalSearchOperatorsFieldBuilder();
9889 getSatParametersFieldBuilder();
9890 getTimeLimitFieldBuilder();
9891 getLnsTimeLimitFieldBuilder();
9892 getImprovementLimitParametersFieldBuilder();
9893 getIteratedLocalSearchParametersFieldBuilder();
9894 }
9895 }
9896 @java.lang.Override
9897 public Builder clear() {
9898 super.clear();
9899 bitField0_ = 0;
9900 bitField1_ = 0;
9901 firstSolutionStrategy_ = 0;
9902 useUnfilteredFirstSolutionStrategy_ = false;
9903 savingsNeighborsRatio_ = 0D;
9904 savingsMaxMemoryUsageBytes_ = 0D;
9905 savingsAddReverseArcs_ = false;
9906 savingsArcCoefficient_ = 0D;
9907 savingsParallelRoutes_ = false;
9908 cheapestInsertionFarthestSeedsRatio_ = 0D;
9909 cheapestInsertionFirstSolutionNeighborsRatio_ = 0D;
9910 cheapestInsertionFirstSolutionMinNeighbors_ = 0;
9911 cheapestInsertionLsOperatorNeighborsRatio_ = 0D;
9912 cheapestInsertionLsOperatorMinNeighbors_ = 0;
9913 cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_ = false;
9914 cheapestInsertionAddUnperformedEntries_ = false;
9915 localCheapestInsertionPickupDeliveryStrategy_ = 0;
9916 localCheapestCostInsertionPickupDeliveryStrategy_ = 0;
9917 christofidesUseMinimumMatching_ = false;
9918 firstSolutionOptimizationPeriod_ = 0;
9919 localSearchOperators_ = null;
9920 if (localSearchOperatorsBuilder_ != null) {
9921 localSearchOperatorsBuilder_.dispose();
9922 localSearchOperatorsBuilder_ = null;
9923 }
9924 lsOperatorNeighborsRatio_ = 0D;
9925 lsOperatorMinNeighbors_ = 0;
9926 useMultiArmedBanditConcatenateOperators_ = false;
9927 multiArmedBanditCompoundOperatorMemoryCoefficient_ = 0D;
9928 multiArmedBanditCompoundOperatorExplorationCoefficient_ = 0D;
9929 relocateExpensiveChainNumArcsToConsider_ = 0;
9930 heuristicExpensiveChainLnsNumArcsToConsider_ = 0;
9931 heuristicCloseNodesLnsNumNodes_ = 0;
9932 localSearchMetaheuristic_ = 0;
9933 guidedLocalSearchLambdaCoefficient_ = 0D;
9934 guidedLocalSearchResetPenaltiesOnNewBestSolution_ = false;
9935 useDepthFirstSearch_ = false;
9936 useCp_ = 0;
9937 useCpSat_ = 0;
9938 useGeneralizedCpSat_ = 0;
9939 satParameters_ = null;
9940 if (satParametersBuilder_ != null) {
9941 satParametersBuilder_.dispose();
9942 satParametersBuilder_ = null;
9943 }
9944 reportIntermediateCpSatSolutions_ = false;
9945 fallbackToCpSatSizeThreshold_ = 0;
9946 continuousSchedulingSolver_ = 0;
9947 mixedIntegerSchedulingSolver_ = 0;
9948 disableSchedulingBewareThisMayDegradePerformance_ = false;
9949 optimizationStep_ = 0D;
9950 numberOfSolutionsToCollect_ = 0;
9951 solutionLimit_ = 0L;
9952 timeLimit_ = null;
9953 if (timeLimitBuilder_ != null) {
9954 timeLimitBuilder_.dispose();
9955 timeLimitBuilder_ = null;
9956 }
9957 lnsTimeLimit_ = null;
9958 if (lnsTimeLimitBuilder_ != null) {
9959 lnsTimeLimitBuilder_.dispose();
9960 lnsTimeLimitBuilder_ = null;
9961 }
9962 secondaryLsTimeLimitRatio_ = 0D;
9963 improvementLimitParameters_ = null;
9964 if (improvementLimitParametersBuilder_ != null) {
9965 improvementLimitParametersBuilder_.dispose();
9966 improvementLimitParametersBuilder_ = null;
9967 }
9968 useFullPropagation_ = false;
9969 logSearch_ = false;
9970 logCostScalingFactor_ = 0D;
9971 logCostOffset_ = 0D;
9972 logTag_ = "";
9973 useIteratedLocalSearch_ = false;
9974 iteratedLocalSearchParameters_ = null;
9975 if (iteratedLocalSearchParametersBuilder_ != null) {
9976 iteratedLocalSearchParametersBuilder_.dispose();
9977 iteratedLocalSearchParametersBuilder_ = null;
9978 }
9979 return this;
9980 }
9981
9982 @java.lang.Override
9983 public com.google.protobuf.Descriptors.Descriptor
9985 return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_descriptor;
9986 }
9987
9988 @java.lang.Override
9990 return com.google.ortools.constraintsolver.RoutingSearchParameters.getDefaultInstance();
9991 }
9992
9993 @java.lang.Override
9996 if (!result.isInitialized()) {
9997 throw newUninitializedMessageException(result);
9998 }
9999 return result;
10000 }
10001
10002 @java.lang.Override
10004 com.google.ortools.constraintsolver.RoutingSearchParameters result = new com.google.ortools.constraintsolver.RoutingSearchParameters(this);
10005 if (bitField0_ != 0) { buildPartial0(result); }
10006 if (bitField1_ != 0) { buildPartial1(result); }
10007 onBuilt();
10008 return result;
10009 }
10010
10011 private void buildPartial0(com.google.ortools.constraintsolver.RoutingSearchParameters result) {
10012 int from_bitField0_ = bitField0_;
10013 if (((from_bitField0_ & 0x00000001) != 0)) {
10014 result.firstSolutionStrategy_ = firstSolutionStrategy_;
10015 }
10016 if (((from_bitField0_ & 0x00000002) != 0)) {
10017 result.useUnfilteredFirstSolutionStrategy_ = useUnfilteredFirstSolutionStrategy_;
10018 }
10019 if (((from_bitField0_ & 0x00000004) != 0)) {
10020 result.savingsNeighborsRatio_ = savingsNeighborsRatio_;
10021 }
10022 if (((from_bitField0_ & 0x00000008) != 0)) {
10023 result.savingsMaxMemoryUsageBytes_ = savingsMaxMemoryUsageBytes_;
10024 }
10025 if (((from_bitField0_ & 0x00000010) != 0)) {
10026 result.savingsAddReverseArcs_ = savingsAddReverseArcs_;
10027 }
10028 if (((from_bitField0_ & 0x00000020) != 0)) {
10029 result.savingsArcCoefficient_ = savingsArcCoefficient_;
10030 }
10031 if (((from_bitField0_ & 0x00000040) != 0)) {
10032 result.savingsParallelRoutes_ = savingsParallelRoutes_;
10033 }
10034 if (((from_bitField0_ & 0x00000080) != 0)) {
10035 result.cheapestInsertionFarthestSeedsRatio_ = cheapestInsertionFarthestSeedsRatio_;
10036 }
10037 if (((from_bitField0_ & 0x00000100) != 0)) {
10038 result.cheapestInsertionFirstSolutionNeighborsRatio_ = cheapestInsertionFirstSolutionNeighborsRatio_;
10039 }
10040 if (((from_bitField0_ & 0x00000200) != 0)) {
10041 result.cheapestInsertionFirstSolutionMinNeighbors_ = cheapestInsertionFirstSolutionMinNeighbors_;
10042 }
10043 if (((from_bitField0_ & 0x00000400) != 0)) {
10044 result.cheapestInsertionLsOperatorNeighborsRatio_ = cheapestInsertionLsOperatorNeighborsRatio_;
10045 }
10046 if (((from_bitField0_ & 0x00000800) != 0)) {
10047 result.cheapestInsertionLsOperatorMinNeighbors_ = cheapestInsertionLsOperatorMinNeighbors_;
10048 }
10049 if (((from_bitField0_ & 0x00001000) != 0)) {
10050 result.cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_ = cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_;
10051 }
10052 if (((from_bitField0_ & 0x00002000) != 0)) {
10053 result.cheapestInsertionAddUnperformedEntries_ = cheapestInsertionAddUnperformedEntries_;
10054 }
10055 if (((from_bitField0_ & 0x00004000) != 0)) {
10056 result.localCheapestInsertionPickupDeliveryStrategy_ = localCheapestInsertionPickupDeliveryStrategy_;
10057 }
10058 if (((from_bitField0_ & 0x00008000) != 0)) {
10059 result.localCheapestCostInsertionPickupDeliveryStrategy_ = localCheapestCostInsertionPickupDeliveryStrategy_;
10060 }
10061 if (((from_bitField0_ & 0x00010000) != 0)) {
10062 result.christofidesUseMinimumMatching_ = christofidesUseMinimumMatching_;
10063 }
10064 if (((from_bitField0_ & 0x00020000) != 0)) {
10065 result.firstSolutionOptimizationPeriod_ = firstSolutionOptimizationPeriod_;
10066 }
10067 int to_bitField0_ = 0;
10068 if (((from_bitField0_ & 0x00040000) != 0)) {
10069 result.localSearchOperators_ = localSearchOperatorsBuilder_ == null
10070 ? localSearchOperators_
10071 : localSearchOperatorsBuilder_.build();
10072 to_bitField0_ |= 0x00000001;
10073 }
10074 if (((from_bitField0_ & 0x00080000) != 0)) {
10075 result.lsOperatorNeighborsRatio_ = lsOperatorNeighborsRatio_;
10076 }
10077 if (((from_bitField0_ & 0x00100000) != 0)) {
10078 result.lsOperatorMinNeighbors_ = lsOperatorMinNeighbors_;
10079 }
10080 if (((from_bitField0_ & 0x00200000) != 0)) {
10081 result.useMultiArmedBanditConcatenateOperators_ = useMultiArmedBanditConcatenateOperators_;
10082 }
10083 if (((from_bitField0_ & 0x00400000) != 0)) {
10084 result.multiArmedBanditCompoundOperatorMemoryCoefficient_ = multiArmedBanditCompoundOperatorMemoryCoefficient_;
10085 }
10086 if (((from_bitField0_ & 0x00800000) != 0)) {
10087 result.multiArmedBanditCompoundOperatorExplorationCoefficient_ = multiArmedBanditCompoundOperatorExplorationCoefficient_;
10088 }
10089 if (((from_bitField0_ & 0x01000000) != 0)) {
10090 result.relocateExpensiveChainNumArcsToConsider_ = relocateExpensiveChainNumArcsToConsider_;
10091 }
10092 if (((from_bitField0_ & 0x02000000) != 0)) {
10093 result.heuristicExpensiveChainLnsNumArcsToConsider_ = heuristicExpensiveChainLnsNumArcsToConsider_;
10094 }
10095 if (((from_bitField0_ & 0x04000000) != 0)) {
10096 result.heuristicCloseNodesLnsNumNodes_ = heuristicCloseNodesLnsNumNodes_;
10097 }
10098 if (((from_bitField0_ & 0x08000000) != 0)) {
10099 result.localSearchMetaheuristic_ = localSearchMetaheuristic_;
10100 }
10101 if (((from_bitField0_ & 0x10000000) != 0)) {
10102 result.guidedLocalSearchLambdaCoefficient_ = guidedLocalSearchLambdaCoefficient_;
10103 }
10104 if (((from_bitField0_ & 0x20000000) != 0)) {
10105 result.guidedLocalSearchResetPenaltiesOnNewBestSolution_ = guidedLocalSearchResetPenaltiesOnNewBestSolution_;
10106 }
10107 if (((from_bitField0_ & 0x40000000) != 0)) {
10108 result.useDepthFirstSearch_ = useDepthFirstSearch_;
10109 }
10110 if (((from_bitField0_ & 0x80000000) != 0)) {
10111 result.useCp_ = useCp_;
10112 }
10113 result.bitField0_ |= to_bitField0_;
10114 }
10115
10116 private void buildPartial1(com.google.ortools.constraintsolver.RoutingSearchParameters result) {
10117 int from_bitField1_ = bitField1_;
10118 if (((from_bitField1_ & 0x00000001) != 0)) {
10119 result.useCpSat_ = useCpSat_;
10120 }
10121 if (((from_bitField1_ & 0x00000002) != 0)) {
10122 result.useGeneralizedCpSat_ = useGeneralizedCpSat_;
10123 }
10124 int to_bitField0_ = 0;
10125 if (((from_bitField1_ & 0x00000004) != 0)) {
10126 result.satParameters_ = satParametersBuilder_ == null
10127 ? satParameters_
10128 : satParametersBuilder_.build();
10129 to_bitField0_ |= 0x00000002;
10130 }
10131 if (((from_bitField1_ & 0x00000008) != 0)) {
10132 result.reportIntermediateCpSatSolutions_ = reportIntermediateCpSatSolutions_;
10133 }
10134 if (((from_bitField1_ & 0x00000010) != 0)) {
10135 result.fallbackToCpSatSizeThreshold_ = fallbackToCpSatSizeThreshold_;
10136 }
10137 if (((from_bitField1_ & 0x00000020) != 0)) {
10138 result.continuousSchedulingSolver_ = continuousSchedulingSolver_;
10139 }
10140 if (((from_bitField1_ & 0x00000040) != 0)) {
10141 result.mixedIntegerSchedulingSolver_ = mixedIntegerSchedulingSolver_;
10142 }
10143 if (((from_bitField1_ & 0x00000080) != 0)) {
10144 result.disableSchedulingBewareThisMayDegradePerformance_ = disableSchedulingBewareThisMayDegradePerformance_;
10145 to_bitField0_ |= 0x00000004;
10146 }
10147 if (((from_bitField1_ & 0x00000100) != 0)) {
10148 result.optimizationStep_ = optimizationStep_;
10149 }
10150 if (((from_bitField1_ & 0x00000200) != 0)) {
10151 result.numberOfSolutionsToCollect_ = numberOfSolutionsToCollect_;
10152 }
10153 if (((from_bitField1_ & 0x00000400) != 0)) {
10154 result.solutionLimit_ = solutionLimit_;
10155 }
10156 if (((from_bitField1_ & 0x00000800) != 0)) {
10157 result.timeLimit_ = timeLimitBuilder_ == null
10158 ? timeLimit_
10159 : timeLimitBuilder_.build();
10160 to_bitField0_ |= 0x00000008;
10161 }
10162 if (((from_bitField1_ & 0x00001000) != 0)) {
10163 result.lnsTimeLimit_ = lnsTimeLimitBuilder_ == null
10164 ? lnsTimeLimit_
10165 : lnsTimeLimitBuilder_.build();
10166 to_bitField0_ |= 0x00000010;
10167 }
10168 if (((from_bitField1_ & 0x00002000) != 0)) {
10169 result.secondaryLsTimeLimitRatio_ = secondaryLsTimeLimitRatio_;
10170 }
10171 if (((from_bitField1_ & 0x00004000) != 0)) {
10172 result.improvementLimitParameters_ = improvementLimitParametersBuilder_ == null
10173 ? improvementLimitParameters_
10174 : improvementLimitParametersBuilder_.build();
10175 to_bitField0_ |= 0x00000020;
10176 }
10177 if (((from_bitField1_ & 0x00008000) != 0)) {
10178 result.useFullPropagation_ = useFullPropagation_;
10179 }
10180 if (((from_bitField1_ & 0x00010000) != 0)) {
10181 result.logSearch_ = logSearch_;
10182 }
10183 if (((from_bitField1_ & 0x00020000) != 0)) {
10184 result.logCostScalingFactor_ = logCostScalingFactor_;
10185 }
10186 if (((from_bitField1_ & 0x00040000) != 0)) {
10187 result.logCostOffset_ = logCostOffset_;
10188 }
10189 if (((from_bitField1_ & 0x00080000) != 0)) {
10190 result.logTag_ = logTag_;
10191 }
10192 if (((from_bitField1_ & 0x00100000) != 0)) {
10193 result.useIteratedLocalSearch_ = useIteratedLocalSearch_;
10194 }
10195 if (((from_bitField1_ & 0x00200000) != 0)) {
10196 result.iteratedLocalSearchParameters_ = iteratedLocalSearchParametersBuilder_ == null
10197 ? iteratedLocalSearchParameters_
10198 : iteratedLocalSearchParametersBuilder_.build();
10199 to_bitField0_ |= 0x00000040;
10200 }
10201 result.bitField0_ |= to_bitField0_;
10202 }
10203
10204 @java.lang.Override
10205 public Builder mergeFrom(com.google.protobuf.Message other) {
10206 if (other instanceof com.google.ortools.constraintsolver.RoutingSearchParameters) {
10207 return mergeFrom((com.google.ortools.constraintsolver.RoutingSearchParameters)other);
10208 } else {
10209 super.mergeFrom(other);
10210 return this;
10211 }
10212 }
10213
10214 public Builder mergeFrom(com.google.ortools.constraintsolver.RoutingSearchParameters other) {
10215 if (other == com.google.ortools.constraintsolver.RoutingSearchParameters.getDefaultInstance()) return this;
10216 if (other.firstSolutionStrategy_ != 0) {
10217 setFirstSolutionStrategyValue(other.getFirstSolutionStrategyValue());
10218 }
10219 if (other.getUseUnfilteredFirstSolutionStrategy() != false) {
10220 setUseUnfilteredFirstSolutionStrategy(other.getUseUnfilteredFirstSolutionStrategy());
10221 }
10222 if (other.getSavingsNeighborsRatio() != 0D) {
10223 setSavingsNeighborsRatio(other.getSavingsNeighborsRatio());
10224 }
10225 if (other.getSavingsMaxMemoryUsageBytes() != 0D) {
10226 setSavingsMaxMemoryUsageBytes(other.getSavingsMaxMemoryUsageBytes());
10227 }
10228 if (other.getSavingsAddReverseArcs() != false) {
10229 setSavingsAddReverseArcs(other.getSavingsAddReverseArcs());
10230 }
10231 if (other.getSavingsArcCoefficient() != 0D) {
10232 setSavingsArcCoefficient(other.getSavingsArcCoefficient());
10233 }
10234 if (other.getSavingsParallelRoutes() != false) {
10235 setSavingsParallelRoutes(other.getSavingsParallelRoutes());
10236 }
10237 if (other.getCheapestInsertionFarthestSeedsRatio() != 0D) {
10238 setCheapestInsertionFarthestSeedsRatio(other.getCheapestInsertionFarthestSeedsRatio());
10239 }
10240 if (other.getCheapestInsertionFirstSolutionNeighborsRatio() != 0D) {
10241 setCheapestInsertionFirstSolutionNeighborsRatio(other.getCheapestInsertionFirstSolutionNeighborsRatio());
10242 }
10243 if (other.getCheapestInsertionFirstSolutionMinNeighbors() != 0) {
10244 setCheapestInsertionFirstSolutionMinNeighbors(other.getCheapestInsertionFirstSolutionMinNeighbors());
10245 }
10246 if (other.getCheapestInsertionLsOperatorNeighborsRatio() != 0D) {
10247 setCheapestInsertionLsOperatorNeighborsRatio(other.getCheapestInsertionLsOperatorNeighborsRatio());
10248 }
10249 if (other.getCheapestInsertionLsOperatorMinNeighbors() != 0) {
10250 setCheapestInsertionLsOperatorMinNeighbors(other.getCheapestInsertionLsOperatorMinNeighbors());
10251 }
10252 if (other.getCheapestInsertionFirstSolutionUseNeighborsRatioForInitialization() != false) {
10253 setCheapestInsertionFirstSolutionUseNeighborsRatioForInitialization(other.getCheapestInsertionFirstSolutionUseNeighborsRatioForInitialization());
10254 }
10255 if (other.getCheapestInsertionAddUnperformedEntries() != false) {
10256 setCheapestInsertionAddUnperformedEntries(other.getCheapestInsertionAddUnperformedEntries());
10257 }
10258 if (other.localCheapestInsertionPickupDeliveryStrategy_ != 0) {
10259 setLocalCheapestInsertionPickupDeliveryStrategyValue(other.getLocalCheapestInsertionPickupDeliveryStrategyValue());
10260 }
10261 if (other.localCheapestCostInsertionPickupDeliveryStrategy_ != 0) {
10262 setLocalCheapestCostInsertionPickupDeliveryStrategyValue(other.getLocalCheapestCostInsertionPickupDeliveryStrategyValue());
10263 }
10264 if (other.getChristofidesUseMinimumMatching() != false) {
10265 setChristofidesUseMinimumMatching(other.getChristofidesUseMinimumMatching());
10266 }
10267 if (other.getFirstSolutionOptimizationPeriod() != 0) {
10268 setFirstSolutionOptimizationPeriod(other.getFirstSolutionOptimizationPeriod());
10269 }
10270 if (other.hasLocalSearchOperators()) {
10271 mergeLocalSearchOperators(other.getLocalSearchOperators());
10272 }
10273 if (other.getLsOperatorNeighborsRatio() != 0D) {
10274 setLsOperatorNeighborsRatio(other.getLsOperatorNeighborsRatio());
10275 }
10276 if (other.getLsOperatorMinNeighbors() != 0) {
10277 setLsOperatorMinNeighbors(other.getLsOperatorMinNeighbors());
10278 }
10279 if (other.getUseMultiArmedBanditConcatenateOperators() != false) {
10280 setUseMultiArmedBanditConcatenateOperators(other.getUseMultiArmedBanditConcatenateOperators());
10281 }
10282 if (other.getMultiArmedBanditCompoundOperatorMemoryCoefficient() != 0D) {
10283 setMultiArmedBanditCompoundOperatorMemoryCoefficient(other.getMultiArmedBanditCompoundOperatorMemoryCoefficient());
10284 }
10285 if (other.getMultiArmedBanditCompoundOperatorExplorationCoefficient() != 0D) {
10286 setMultiArmedBanditCompoundOperatorExplorationCoefficient(other.getMultiArmedBanditCompoundOperatorExplorationCoefficient());
10287 }
10288 if (other.getRelocateExpensiveChainNumArcsToConsider() != 0) {
10289 setRelocateExpensiveChainNumArcsToConsider(other.getRelocateExpensiveChainNumArcsToConsider());
10290 }
10291 if (other.getHeuristicExpensiveChainLnsNumArcsToConsider() != 0) {
10292 setHeuristicExpensiveChainLnsNumArcsToConsider(other.getHeuristicExpensiveChainLnsNumArcsToConsider());
10293 }
10294 if (other.getHeuristicCloseNodesLnsNumNodes() != 0) {
10295 setHeuristicCloseNodesLnsNumNodes(other.getHeuristicCloseNodesLnsNumNodes());
10296 }
10297 if (other.localSearchMetaheuristic_ != 0) {
10298 setLocalSearchMetaheuristicValue(other.getLocalSearchMetaheuristicValue());
10299 }
10300 if (other.getGuidedLocalSearchLambdaCoefficient() != 0D) {
10301 setGuidedLocalSearchLambdaCoefficient(other.getGuidedLocalSearchLambdaCoefficient());
10302 }
10303 if (other.getGuidedLocalSearchResetPenaltiesOnNewBestSolution() != false) {
10304 setGuidedLocalSearchResetPenaltiesOnNewBestSolution(other.getGuidedLocalSearchResetPenaltiesOnNewBestSolution());
10305 }
10306 if (other.getUseDepthFirstSearch() != false) {
10307 setUseDepthFirstSearch(other.getUseDepthFirstSearch());
10308 }
10309 if (other.useCp_ != 0) {
10310 setUseCpValue(other.getUseCpValue());
10311 }
10312 if (other.useCpSat_ != 0) {
10313 setUseCpSatValue(other.getUseCpSatValue());
10314 }
10315 if (other.useGeneralizedCpSat_ != 0) {
10316 setUseGeneralizedCpSatValue(other.getUseGeneralizedCpSatValue());
10317 }
10318 if (other.hasSatParameters()) {
10319 mergeSatParameters(other.getSatParameters());
10320 }
10321 if (other.getReportIntermediateCpSatSolutions() != false) {
10322 setReportIntermediateCpSatSolutions(other.getReportIntermediateCpSatSolutions());
10323 }
10324 if (other.getFallbackToCpSatSizeThreshold() != 0) {
10325 setFallbackToCpSatSizeThreshold(other.getFallbackToCpSatSizeThreshold());
10326 }
10327 if (other.continuousSchedulingSolver_ != 0) {
10328 setContinuousSchedulingSolverValue(other.getContinuousSchedulingSolverValue());
10329 }
10330 if (other.mixedIntegerSchedulingSolver_ != 0) {
10331 setMixedIntegerSchedulingSolverValue(other.getMixedIntegerSchedulingSolverValue());
10332 }
10333 if (other.hasDisableSchedulingBewareThisMayDegradePerformance()) {
10334 setDisableSchedulingBewareThisMayDegradePerformance(other.getDisableSchedulingBewareThisMayDegradePerformance());
10335 }
10336 if (other.getOptimizationStep() != 0D) {
10337 setOptimizationStep(other.getOptimizationStep());
10338 }
10339 if (other.getNumberOfSolutionsToCollect() != 0) {
10340 setNumberOfSolutionsToCollect(other.getNumberOfSolutionsToCollect());
10341 }
10342 if (other.getSolutionLimit() != 0L) {
10343 setSolutionLimit(other.getSolutionLimit());
10344 }
10345 if (other.hasTimeLimit()) {
10346 mergeTimeLimit(other.getTimeLimit());
10347 }
10348 if (other.hasLnsTimeLimit()) {
10349 mergeLnsTimeLimit(other.getLnsTimeLimit());
10350 }
10351 if (other.getSecondaryLsTimeLimitRatio() != 0D) {
10352 setSecondaryLsTimeLimitRatio(other.getSecondaryLsTimeLimitRatio());
10353 }
10354 if (other.hasImprovementLimitParameters()) {
10355 mergeImprovementLimitParameters(other.getImprovementLimitParameters());
10356 }
10357 if (other.getUseFullPropagation() != false) {
10358 setUseFullPropagation(other.getUseFullPropagation());
10359 }
10360 if (other.getLogSearch() != false) {
10361 setLogSearch(other.getLogSearch());
10362 }
10363 if (other.getLogCostScalingFactor() != 0D) {
10364 setLogCostScalingFactor(other.getLogCostScalingFactor());
10365 }
10366 if (other.getLogCostOffset() != 0D) {
10367 setLogCostOffset(other.getLogCostOffset());
10368 }
10369 if (!other.getLogTag().isEmpty()) {
10370 logTag_ = other.logTag_;
10371 bitField1_ |= 0x00080000;
10372 onChanged();
10373 }
10374 if (other.getUseIteratedLocalSearch() != false) {
10375 setUseIteratedLocalSearch(other.getUseIteratedLocalSearch());
10376 }
10377 if (other.hasIteratedLocalSearchParameters()) {
10378 mergeIteratedLocalSearchParameters(other.getIteratedLocalSearchParameters());
10379 }
10380 this.mergeUnknownFields(other.getUnknownFields());
10381 onChanged();
10382 return this;
10383 }
10384
10385 @java.lang.Override
10386 public final boolean isInitialized() {
10387 return true;
10388 }
10389
10390 @java.lang.Override
10392 com.google.protobuf.CodedInputStream input,
10393 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
10394 throws java.io.IOException {
10395 if (extensionRegistry == null) {
10396 throw new java.lang.NullPointerException();
10397 }
10398 try {
10399 boolean done = false;
10400 while (!done) {
10401 int tag = input.readTag();
10402 switch (tag) {
10403 case 0:
10404 done = true;
10405 break;
10406 case 8: {
10407 firstSolutionStrategy_ = input.readEnum();
10408 bitField0_ |= 0x00000001;
10409 break;
10410 } // case 8
10411 case 16: {
10412 useUnfilteredFirstSolutionStrategy_ = input.readBool();
10413 bitField0_ |= 0x00000002;
10414 break;
10415 } // case 16
10416 case 26: {
10417 input.readMessage(
10418 getLocalSearchOperatorsFieldBuilder().getBuilder(),
10419 extensionRegistry);
10420 bitField0_ |= 0x00040000;
10421 break;
10422 } // case 26
10423 case 32: {
10424 localSearchMetaheuristic_ = input.readEnum();
10425 bitField0_ |= 0x08000000;
10426 break;
10427 } // case 32
10428 case 41: {
10429 guidedLocalSearchLambdaCoefficient_ = input.readDouble();
10430 bitField0_ |= 0x10000000;
10431 break;
10432 } // case 41
10433 case 48: {
10434 useDepthFirstSearch_ = input.readBool();
10435 bitField0_ |= 0x40000000;
10436 break;
10437 } // case 48
10438 case 57: {
10439 optimizationStep_ = input.readDouble();
10440 bitField1_ |= 0x00000100;
10441 break;
10442 } // case 57
10443 case 64: {
10444 solutionLimit_ = input.readInt64();
10445 bitField1_ |= 0x00000400;
10446 break;
10447 } // case 64
10448 case 74: {
10449 input.readMessage(
10450 getTimeLimitFieldBuilder().getBuilder(),
10451 extensionRegistry);
10452 bitField1_ |= 0x00000800;
10453 break;
10454 } // case 74
10455 case 82: {
10456 input.readMessage(
10457 getLnsTimeLimitFieldBuilder().getBuilder(),
10458 extensionRegistry);
10459 bitField1_ |= 0x00001000;
10460 break;
10461 } // case 82
10462 case 88: {
10463 useFullPropagation_ = input.readBool();
10464 bitField1_ |= 0x00008000;
10465 break;
10466 } // case 88
10467 case 104: {
10468 logSearch_ = input.readBool();
10469 bitField1_ |= 0x00010000;
10470 break;
10471 } // case 104
10472 case 113: {
10473 savingsNeighborsRatio_ = input.readDouble();
10474 bitField0_ |= 0x00000004;
10475 break;
10476 } // case 113
10477 case 120: {
10478 savingsAddReverseArcs_ = input.readBool();
10479 bitField0_ |= 0x00000010;
10480 break;
10481 } // case 120
10482 case 129: {
10483 cheapestInsertionFarthestSeedsRatio_ = input.readDouble();
10484 bitField0_ |= 0x00000080;
10485 break;
10486 } // case 129
10487 case 136: {
10488 numberOfSolutionsToCollect_ = input.readInt32();
10489 bitField1_ |= 0x00000200;
10490 break;
10491 } // case 136
10492 case 145: {
10493 savingsArcCoefficient_ = input.readDouble();
10494 bitField0_ |= 0x00000020;
10495 break;
10496 } // case 145
10497 case 152: {
10498 savingsParallelRoutes_ = input.readBool();
10499 bitField0_ |= 0x00000040;
10500 break;
10501 } // case 152
10502 case 160: {
10503 relocateExpensiveChainNumArcsToConsider_ = input.readInt32();
10504 bitField0_ |= 0x01000000;
10505 break;
10506 } // case 160
10507 case 169: {
10508 cheapestInsertionFirstSolutionNeighborsRatio_ = input.readDouble();
10509 bitField0_ |= 0x00000100;
10510 break;
10511 } // case 169
10512 case 177: {
10513 logCostScalingFactor_ = input.readDouble();
10514 bitField1_ |= 0x00020000;
10515 break;
10516 } // case 177
10517 case 185: {
10518 savingsMaxMemoryUsageBytes_ = input.readDouble();
10519 bitField0_ |= 0x00000008;
10520 break;
10521 } // case 185
10522 case 216: {
10523 useCpSat_ = input.readEnum();
10524 bitField1_ |= 0x00000001;
10525 break;
10526 } // case 216
10527 case 224: {
10528 useCp_ = input.readEnum();
10529 bitField0_ |= 0x80000000;
10530 break;
10531 } // case 224
10532 case 233: {
10533 logCostOffset_ = input.readDouble();
10534 bitField1_ |= 0x00040000;
10535 break;
10536 } // case 233
10537 case 240: {
10538 christofidesUseMinimumMatching_ = input.readBool();
10539 bitField0_ |= 0x00010000;
10540 break;
10541 } // case 240
10542 case 249: {
10543 cheapestInsertionLsOperatorNeighborsRatio_ = input.readDouble();
10544 bitField0_ |= 0x00000400;
10545 break;
10546 } // case 249
10547 case 256: {
10548 heuristicExpensiveChainLnsNumArcsToConsider_ = input.readInt32();
10549 bitField0_ |= 0x02000000;
10550 break;
10551 } // case 256
10552 case 264: {
10553 continuousSchedulingSolver_ = input.readEnum();
10554 bitField1_ |= 0x00000020;
10555 break;
10556 } // case 264
10557 case 272: {
10558 mixedIntegerSchedulingSolver_ = input.readEnum();
10559 bitField1_ |= 0x00000040;
10560 break;
10561 } // case 272
10562 case 280: {
10563 heuristicCloseNodesLnsNumNodes_ = input.readInt32();
10564 bitField0_ |= 0x04000000;
10565 break;
10566 } // case 280
10567 case 290: {
10568 logTag_ = input.readStringRequireUtf8();
10569 bitField1_ |= 0x00080000;
10570 break;
10571 } // case 290
10572 case 298: {
10573 input.readMessage(
10574 getImprovementLimitParametersFieldBuilder().getBuilder(),
10575 extensionRegistry);
10576 bitField1_ |= 0x00004000;
10577 break;
10578 } // case 298
10579 case 320: {
10580 cheapestInsertionAddUnperformedEntries_ = input.readBool();
10581 bitField0_ |= 0x00002000;
10582 break;
10583 } // case 320
10584 case 328: {
10585 useMultiArmedBanditConcatenateOperators_ = input.readBool();
10586 bitField0_ |= 0x00200000;
10587 break;
10588 } // case 328
10589 case 337: {
10590 multiArmedBanditCompoundOperatorMemoryCoefficient_ = input.readDouble();
10591 bitField0_ |= 0x00400000;
10592 break;
10593 } // case 337
10594 case 345: {
10595 multiArmedBanditCompoundOperatorExplorationCoefficient_ = input.readDouble();
10596 bitField0_ |= 0x00800000;
10597 break;
10598 } // case 345
10599 case 352: {
10600 cheapestInsertionFirstSolutionMinNeighbors_ = input.readInt32();
10601 bitField0_ |= 0x00000200;
10602 break;
10603 } // case 352
10604 case 360: {
10605 cheapestInsertionLsOperatorMinNeighbors_ = input.readInt32();
10606 bitField0_ |= 0x00000800;
10607 break;
10608 } // case 360
10609 case 368: {
10610 cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_ = input.readBool();
10611 bitField0_ |= 0x00001000;
10612 break;
10613 } // case 368
10614 case 376: {
10615 useGeneralizedCpSat_ = input.readEnum();
10616 bitField1_ |= 0x00000002;
10617 break;
10618 } // case 376
10619 case 386: {
10620 input.readMessage(
10621 getSatParametersFieldBuilder().getBuilder(),
10622 extensionRegistry);
10623 bitField1_ |= 0x00000004;
10624 break;
10625 } // case 386
10626 case 392: {
10627 localCheapestInsertionPickupDeliveryStrategy_ = input.readEnum();
10628 bitField0_ |= 0x00004000;
10629 break;
10630 } // case 392
10631 case 400: {
10632 disableSchedulingBewareThisMayDegradePerformance_ = input.readBool();
10633 bitField1_ |= 0x00000080;
10634 break;
10635 } // case 400
10636 case 408: {
10637 guidedLocalSearchResetPenaltiesOnNewBestSolution_ = input.readBool();
10638 bitField0_ |= 0x20000000;
10639 break;
10640 } // case 408
10641 case 416: {
10642 fallbackToCpSatSizeThreshold_ = input.readInt32();
10643 bitField1_ |= 0x00000010;
10644 break;
10645 } // case 416
10646 case 425: {
10647 lsOperatorNeighborsRatio_ = input.readDouble();
10648 bitField0_ |= 0x00080000;
10649 break;
10650 } // case 425
10651 case 432: {
10652 lsOperatorMinNeighbors_ = input.readInt32();
10653 bitField0_ |= 0x00100000;
10654 break;
10655 } // case 432
10656 case 440: {
10657 localCheapestCostInsertionPickupDeliveryStrategy_ = input.readEnum();
10658 bitField0_ |= 0x00008000;
10659 break;
10660 } // case 440
10661 case 448: {
10662 reportIntermediateCpSatSolutions_ = input.readBool();
10663 bitField1_ |= 0x00000008;
10664 break;
10665 } // case 448
10666 case 457: {
10667 secondaryLsTimeLimitRatio_ = input.readDouble();
10668 bitField1_ |= 0x00002000;
10669 break;
10670 } // case 457
10671 case 464: {
10672 useIteratedLocalSearch_ = input.readBool();
10673 bitField1_ |= 0x00100000;
10674 break;
10675 } // case 464
10676 case 472: {
10677 firstSolutionOptimizationPeriod_ = input.readInt32();
10678 bitField0_ |= 0x00020000;
10679 break;
10680 } // case 472
10681 case 482: {
10682 input.readMessage(
10683 getIteratedLocalSearchParametersFieldBuilder().getBuilder(),
10684 extensionRegistry);
10685 bitField1_ |= 0x00200000;
10686 break;
10687 } // case 482
10688 default: {
10689 if (!super.parseUnknownField(input, extensionRegistry, tag)) {
10690 done = true; // was an endgroup tag
10691 }
10692 break;
10693 } // default:
10694 } // switch (tag)
10695 } // while (!done)
10696 } catch (com.google.protobuf.InvalidProtocolBufferException e) {
10697 throw e.unwrapIOException();
10698 } finally {
10699 onChanged();
10700 } // finally
10701 return this;
10702 }
10703 private int bitField0_;
10704 private int bitField1_;
10705
10706 private int firstSolutionStrategy_ = 0;
10715 @java.lang.Override public int getFirstSolutionStrategyValue() {
10716 return firstSolutionStrategy_;
10717 }
10728 firstSolutionStrategy_ = value;
10729 bitField0_ |= 0x00000001;
10730 onChanged();
10731 return this;
10732 }
10741 @java.lang.Override
10743 com.google.ortools.constraintsolver.FirstSolutionStrategy.Value result = com.google.ortools.constraintsolver.FirstSolutionStrategy.Value.forNumber(firstSolutionStrategy_);
10744 return result == null ? com.google.ortools.constraintsolver.FirstSolutionStrategy.Value.UNRECOGNIZED : result;
10745 }
10755 public Builder setFirstSolutionStrategy(com.google.ortools.constraintsolver.FirstSolutionStrategy.Value value) {
10756 if (value == null) {
10757 throw new NullPointerException();
10758 }
10759 bitField0_ |= 0x00000001;
10760 firstSolutionStrategy_ = value.getNumber();
10761 onChanged();
10762 return this;
10763 }
10773 bitField0_ = (bitField0_ & ~0x00000001);
10774 firstSolutionStrategy_ = 0;
10775 onChanged();
10776 return this;
10777 }
10778
10779 private boolean useUnfilteredFirstSolutionStrategy_ ;
10791 @java.lang.Override
10793 return useUnfilteredFirstSolutionStrategy_;
10794 }
10808
10809 useUnfilteredFirstSolutionStrategy_ = value;
10810 bitField0_ |= 0x00000002;
10811 onChanged();
10812 return this;
10813 }
10826 bitField0_ = (bitField0_ & ~0x00000002);
10827 useUnfilteredFirstSolutionStrategy_ = false;
10828 onChanged();
10829 return this;
10830 }
10831
10832 private double savingsNeighborsRatio_ ;
10843 @java.lang.Override
10845 return savingsNeighborsRatio_;
10846 }
10858 public Builder setSavingsNeighborsRatio(double value) {
10859
10860 savingsNeighborsRatio_ = value;
10861 bitField0_ |= 0x00000004;
10862 onChanged();
10863 return this;
10864 }
10876 bitField0_ = (bitField0_ & ~0x00000004);
10877 savingsNeighborsRatio_ = 0D;
10878 onChanged();
10879 return this;
10880 }
10881
10882 private double savingsMaxMemoryUsageBytes_ ;
10896 @java.lang.Override
10898 return savingsMaxMemoryUsageBytes_;
10899 }
10915
10916 savingsMaxMemoryUsageBytes_ = value;
10917 bitField0_ |= 0x00000008;
10918 onChanged();
10919 return this;
10920 }
10935 bitField0_ = (bitField0_ & ~0x00000008);
10936 savingsMaxMemoryUsageBytes_ = 0D;
10937 onChanged();
10938 return this;
10939 }
10940
10941 private boolean savingsAddReverseArcs_ ;
10951 @java.lang.Override
10952 public boolean getSavingsAddReverseArcs() {
10953 return savingsAddReverseArcs_;
10954 }
10965 public Builder setSavingsAddReverseArcs(boolean value) {
10966
10967 savingsAddReverseArcs_ = value;
10968 bitField0_ |= 0x00000010;
10969 onChanged();
10970 return this;
10971 }
10982 bitField0_ = (bitField0_ & ~0x00000010);
10983 savingsAddReverseArcs_ = false;
10984 onChanged();
10985 return this;
10986 }
10987
10988 private double savingsArcCoefficient_ ;
11001 @java.lang.Override
11003 return savingsArcCoefficient_;
11004 }
11018 public Builder setSavingsArcCoefficient(double value) {
11019
11020 savingsArcCoefficient_ = value;
11021 bitField0_ |= 0x00000020;
11022 onChanged();
11023 return this;
11024 }
11038 bitField0_ = (bitField0_ & ~0x00000020);
11039 savingsArcCoefficient_ = 0D;
11040 onChanged();
11041 return this;
11042 }
11043
11044 private boolean savingsParallelRoutes_ ;
11053 @java.lang.Override
11054 public boolean getSavingsParallelRoutes() {
11055 return savingsParallelRoutes_;
11056 }
11066 public Builder setSavingsParallelRoutes(boolean value) {
11067
11068 savingsParallelRoutes_ = value;
11069 bitField0_ |= 0x00000040;
11070 onChanged();
11071 return this;
11072 }
11082 bitField0_ = (bitField0_ & ~0x00000040);
11083 savingsParallelRoutes_ = false;
11084 onChanged();
11085 return this;
11086 }
11087
11088 private double cheapestInsertionFarthestSeedsRatio_ ;
11099 @java.lang.Override
11101 return cheapestInsertionFarthestSeedsRatio_;
11102 }
11115
11116 cheapestInsertionFarthestSeedsRatio_ = value;
11117 bitField0_ |= 0x00000080;
11118 onChanged();
11119 return this;
11120 }
11132 bitField0_ = (bitField0_ & ~0x00000080);
11133 cheapestInsertionFarthestSeedsRatio_ = 0D;
11134 onChanged();
11135 return this;
11136 }
11137
11138 private double cheapestInsertionFirstSolutionNeighborsRatio_ ;
11161 @java.lang.Override
11163 return cheapestInsertionFirstSolutionNeighborsRatio_;
11164 }
11189
11190 cheapestInsertionFirstSolutionNeighborsRatio_ = value;
11191 bitField0_ |= 0x00000100;
11192 onChanged();
11193 return this;
11194 }
11218 bitField0_ = (bitField0_ & ~0x00000100);
11219 cheapestInsertionFirstSolutionNeighborsRatio_ = 0D;
11220 onChanged();
11221 return this;
11222 }
11223
11224 private int cheapestInsertionFirstSolutionMinNeighbors_ ;
11229 @java.lang.Override
11231 return cheapestInsertionFirstSolutionMinNeighbors_;
11232 }
11239
11240 cheapestInsertionFirstSolutionMinNeighbors_ = value;
11241 bitField0_ |= 0x00000200;
11242 onChanged();
11243 return this;
11244 }
11250 bitField0_ = (bitField0_ & ~0x00000200);
11251 cheapestInsertionFirstSolutionMinNeighbors_ = 0;
11252 onChanged();
11253 return this;
11254 }
11255
11256 private double cheapestInsertionLsOperatorNeighborsRatio_ ;
11268 @java.lang.Override
11270 return cheapestInsertionLsOperatorNeighborsRatio_;
11271 }
11285
11286 cheapestInsertionLsOperatorNeighborsRatio_ = value;
11287 bitField0_ |= 0x00000400;
11288 onChanged();
11289 return this;
11290 }
11303 bitField0_ = (bitField0_ & ~0x00000400);
11304 cheapestInsertionLsOperatorNeighborsRatio_ = 0D;
11305 onChanged();
11306 return this;
11307 }
11308
11309 private int cheapestInsertionLsOperatorMinNeighbors_ ;
11314 @java.lang.Override
11316 return cheapestInsertionLsOperatorMinNeighbors_;
11317 }
11324
11325 cheapestInsertionLsOperatorMinNeighbors_ = value;
11326 bitField0_ |= 0x00000800;
11327 onChanged();
11328 return this;
11329 }
11335 bitField0_ = (bitField0_ & ~0x00000800);
11336 cheapestInsertionLsOperatorMinNeighbors_ = 0;
11337 onChanged();
11338 return this;
11339 }
11340
11341 private boolean cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_ ;
11351 @java.lang.Override
11353 return cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_;
11354 }
11366
11367 cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_ = value;
11368 bitField0_ |= 0x00001000;
11369 onChanged();
11370 return this;
11371 }
11382 bitField0_ = (bitField0_ & ~0x00001000);
11383 cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_ = false;
11384 onChanged();
11385 return this;
11386 }
11387
11388 private boolean cheapestInsertionAddUnperformedEntries_ ;
11398 @java.lang.Override
11400 return cheapestInsertionAddUnperformedEntries_;
11401 }
11413
11414 cheapestInsertionAddUnperformedEntries_ = value;
11415 bitField0_ |= 0x00002000;
11416 onChanged();
11417 return this;
11418 }
11429 bitField0_ = (bitField0_ & ~0x00002000);
11430 cheapestInsertionAddUnperformedEntries_ = false;
11431 onChanged();
11432 return this;
11433 }
11434
11435 private int localCheapestInsertionPickupDeliveryStrategy_ = 0;
11446 return localCheapestInsertionPickupDeliveryStrategy_;
11447 }
11459 localCheapestInsertionPickupDeliveryStrategy_ = value;
11460 bitField0_ |= 0x00004000;
11461 onChanged();
11462 return this;
11463 }
11473 @java.lang.Override
11475 com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy result = com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy.forNumber(localCheapestInsertionPickupDeliveryStrategy_);
11476 return result == null ? com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy.UNRECOGNIZED : result;
11477 }
11488 public Builder setLocalCheapestInsertionPickupDeliveryStrategy(com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy value) {
11489 if (value == null) {
11490 throw new NullPointerException();
11491 }
11492 bitField0_ |= 0x00004000;
11493 localCheapestInsertionPickupDeliveryStrategy_ = value.getNumber();
11494 onChanged();
11495 return this;
11496 }
11507 bitField0_ = (bitField0_ & ~0x00004000);
11508 localCheapestInsertionPickupDeliveryStrategy_ = 0;
11509 onChanged();
11510 return this;
11511 }
11512
11513 private int localCheapestCostInsertionPickupDeliveryStrategy_ = 0;
11524 return localCheapestCostInsertionPickupDeliveryStrategy_;
11525 }
11537 localCheapestCostInsertionPickupDeliveryStrategy_ = value;
11538 bitField0_ |= 0x00008000;
11539 onChanged();
11540 return this;
11541 }
11551 @java.lang.Override
11553 com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy result = com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy.forNumber(localCheapestCostInsertionPickupDeliveryStrategy_);
11554 return result == null ? com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy.UNRECOGNIZED : result;
11555 }
11566 public Builder setLocalCheapestCostInsertionPickupDeliveryStrategy(com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy value) {
11567 if (value == null) {
11568 throw new NullPointerException();
11569 }
11570 bitField0_ |= 0x00008000;
11571 localCheapestCostInsertionPickupDeliveryStrategy_ = value.getNumber();
11572 onChanged();
11573 return this;
11574 }
11585 bitField0_ = (bitField0_ & ~0x00008000);
11586 localCheapestCostInsertionPickupDeliveryStrategy_ = 0;
11587 onChanged();
11588 return this;
11589 }
11590
11591 private boolean christofidesUseMinimumMatching_ ;
11601 @java.lang.Override
11603 return christofidesUseMinimumMatching_;
11604 }
11616
11617 christofidesUseMinimumMatching_ = value;
11618 bitField0_ |= 0x00010000;
11619 onChanged();
11620 return this;
11621 }
11632 bitField0_ = (bitField0_ & ~0x00010000);
11633 christofidesUseMinimumMatching_ = false;
11634 onChanged();
11635 return this;
11636 }
11637
11638 private int firstSolutionOptimizationPeriod_ ;
11653 @java.lang.Override
11655 return firstSolutionOptimizationPeriod_;
11656 }
11673
11674 firstSolutionOptimizationPeriod_ = value;
11675 bitField0_ |= 0x00020000;
11676 onChanged();
11677 return this;
11678 }
11694 bitField0_ = (bitField0_ & ~0x00020000);
11695 firstSolutionOptimizationPeriod_ = 0;
11696 onChanged();
11697 return this;
11698 }
11699
11701 private com.google.protobuf.SingleFieldBuilder<
11702 com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators, com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.Builder, com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder> localSearchOperatorsBuilder_;
11707 public boolean hasLocalSearchOperators() {
11708 return ((bitField0_ & 0x00040000) != 0);
11709 }
11715 if (localSearchOperatorsBuilder_ == null) {
11716 return localSearchOperators_ == null ? com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.getDefaultInstance() : localSearchOperators_;
11717 } else {
11718 return localSearchOperatorsBuilder_.getMessage();
11719 }
11720 }
11724 public Builder setLocalSearchOperators(com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators value) {
11725 if (localSearchOperatorsBuilder_ == null) {
11726 if (value == null) {
11727 throw new NullPointerException();
11728 }
11729 localSearchOperators_ = value;
11730 } else {
11731 localSearchOperatorsBuilder_.setMessage(value);
11732 }
11733 bitField0_ |= 0x00040000;
11734 onChanged();
11735 return this;
11736 }
11741 com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.Builder builderForValue) {
11742 if (localSearchOperatorsBuilder_ == null) {
11743 localSearchOperators_ = builderForValue.build();
11744 } else {
11745 localSearchOperatorsBuilder_.setMessage(builderForValue.build());
11746 }
11747 bitField0_ |= 0x00040000;
11748 onChanged();
11749 return this;
11750 }
11754 public Builder mergeLocalSearchOperators(com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators value) {
11755 if (localSearchOperatorsBuilder_ == null) {
11756 if (((bitField0_ & 0x00040000) != 0) &&
11757 localSearchOperators_ != null &&
11758 localSearchOperators_ != com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.getDefaultInstance()) {
11759 getLocalSearchOperatorsBuilder().mergeFrom(value);
11760 } else {
11761 localSearchOperators_ = value;
11762 }
11763 } else {
11764 localSearchOperatorsBuilder_.mergeFrom(value);
11765 }
11766 if (localSearchOperators_ != null) {
11767 bitField0_ |= 0x00040000;
11768 onChanged();
11769 }
11770 return this;
11771 }
11776 bitField0_ = (bitField0_ & ~0x00040000);
11777 localSearchOperators_ = null;
11778 if (localSearchOperatorsBuilder_ != null) {
11779 localSearchOperatorsBuilder_.dispose();
11780 localSearchOperatorsBuilder_ = null;
11781 }
11782 onChanged();
11783 return this;
11784 }
11789 bitField0_ |= 0x00040000;
11790 onChanged();
11791 return getLocalSearchOperatorsFieldBuilder().getBuilder();
11792 }
11797 if (localSearchOperatorsBuilder_ != null) {
11798 return localSearchOperatorsBuilder_.getMessageOrBuilder();
11799 } else {
11800 return localSearchOperators_ == null ?
11801 com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.getDefaultInstance() : localSearchOperators_;
11802 }
11803 }
11807 private com.google.protobuf.SingleFieldBuilder<
11808 com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators, com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.Builder, com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder>
11809 getLocalSearchOperatorsFieldBuilder() {
11810 if (localSearchOperatorsBuilder_ == null) {
11811 localSearchOperatorsBuilder_ = new com.google.protobuf.SingleFieldBuilder<
11812 com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators, com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.Builder, com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder>(
11814 getParentForChildren(),
11815 isClean());
11816 localSearchOperators_ = null;
11817 }
11818 return localSearchOperatorsBuilder_;
11819 }
11820
11821 private double lsOperatorNeighborsRatio_ ;
11832 @java.lang.Override
11834 return lsOperatorNeighborsRatio_;
11835 }
11848
11849 lsOperatorNeighborsRatio_ = value;
11850 bitField0_ |= 0x00080000;
11851 onChanged();
11852 return this;
11853 }
11865 bitField0_ = (bitField0_ & ~0x00080000);
11866 lsOperatorNeighborsRatio_ = 0D;
11867 onChanged();
11868 return this;
11869 }
11870
11871 private int lsOperatorMinNeighbors_ ;
11876 @java.lang.Override
11878 return lsOperatorMinNeighbors_;
11879 }
11886
11887 lsOperatorMinNeighbors_ = value;
11888 bitField0_ |= 0x00100000;
11889 onChanged();
11890 return this;
11891 }
11897 bitField0_ = (bitField0_ & ~0x00100000);
11898 lsOperatorMinNeighbors_ = 0;
11899 onChanged();
11900 return this;
11901 }
11902
11903 private boolean useMultiArmedBanditConcatenateOperators_ ;
11914 @java.lang.Override
11916 return useMultiArmedBanditConcatenateOperators_;
11917 }
11930
11931 useMultiArmedBanditConcatenateOperators_ = value;
11932 bitField0_ |= 0x00200000;
11933 onChanged();
11934 return this;
11935 }
11947 bitField0_ = (bitField0_ & ~0x00200000);
11948 useMultiArmedBanditConcatenateOperators_ = false;
11949 onChanged();
11950 return this;
11951 }
11952
11953 private double multiArmedBanditCompoundOperatorMemoryCoefficient_ ;
11965 @java.lang.Override
11967 return multiArmedBanditCompoundOperatorMemoryCoefficient_;
11968 }
11982
11983 multiArmedBanditCompoundOperatorMemoryCoefficient_ = value;
11984 bitField0_ |= 0x00400000;
11985 onChanged();
11986 return this;
11987 }
12000 bitField0_ = (bitField0_ & ~0x00400000);
12001 multiArmedBanditCompoundOperatorMemoryCoefficient_ = 0D;
12002 onChanged();
12003 return this;
12004 }
12005
12006 private double multiArmedBanditCompoundOperatorExplorationCoefficient_ ;
12017 @java.lang.Override
12019 return multiArmedBanditCompoundOperatorExplorationCoefficient_;
12020 }
12033
12034 multiArmedBanditCompoundOperatorExplorationCoefficient_ = value;
12035 bitField0_ |= 0x00800000;
12036 onChanged();
12037 return this;
12038 }
12050 bitField0_ = (bitField0_ & ~0x00800000);
12051 multiArmedBanditCompoundOperatorExplorationCoefficient_ = 0D;
12052 onChanged();
12053 return this;
12054 }
12055
12056 private int relocateExpensiveChainNumArcsToConsider_ ;
12071 @java.lang.Override
12073 return relocateExpensiveChainNumArcsToConsider_;
12074 }
12091
12092 relocateExpensiveChainNumArcsToConsider_ = value;
12093 bitField0_ |= 0x01000000;
12094 onChanged();
12095 return this;
12096 }
12112 bitField0_ = (bitField0_ & ~0x01000000);
12113 relocateExpensiveChainNumArcsToConsider_ = 0;
12114 onChanged();
12115 return this;
12116 }
12117
12118 private int heuristicExpensiveChainLnsNumArcsToConsider_ ;
12128 @java.lang.Override
12130 return heuristicExpensiveChainLnsNumArcsToConsider_;
12131 }
12143
12144 heuristicExpensiveChainLnsNumArcsToConsider_ = value;
12145 bitField0_ |= 0x02000000;
12146 onChanged();
12147 return this;
12148 }
12159 bitField0_ = (bitField0_ & ~0x02000000);
12160 heuristicExpensiveChainLnsNumArcsToConsider_ = 0;
12161 onChanged();
12162 return this;
12163 }
12164
12165 private int heuristicCloseNodesLnsNumNodes_ ;
12175 @java.lang.Override
12177 return heuristicCloseNodesLnsNumNodes_;
12178 }
12190
12191 heuristicCloseNodesLnsNumNodes_ = value;
12192 bitField0_ |= 0x04000000;
12193 onChanged();
12194 return this;
12195 }
12206 bitField0_ = (bitField0_ & ~0x04000000);
12207 heuristicCloseNodesLnsNumNodes_ = 0;
12208 onChanged();
12209 return this;
12210 }
12211
12212 private int localSearchMetaheuristic_ = 0;
12221 @java.lang.Override public int getLocalSearchMetaheuristicValue() {
12222 return localSearchMetaheuristic_;
12223 }
12234 localSearchMetaheuristic_ = value;
12235 bitField0_ |= 0x08000000;
12236 onChanged();
12237 return this;
12238 }
12247 @java.lang.Override
12249 com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value result = com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value.forNumber(localSearchMetaheuristic_);
12250 return result == null ? com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value.UNRECOGNIZED : result;
12251 }
12261 public Builder setLocalSearchMetaheuristic(com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value value) {
12262 if (value == null) {
12263 throw new NullPointerException();
12264 }
12265 bitField0_ |= 0x08000000;
12266 localSearchMetaheuristic_ = value.getNumber();
12267 onChanged();
12268 return this;
12269 }
12279 bitField0_ = (bitField0_ & ~0x08000000);
12280 localSearchMetaheuristic_ = 0;
12281 onChanged();
12282 return this;
12283 }
12284
12285 private double guidedLocalSearchLambdaCoefficient_ ;
12297 @java.lang.Override
12299 return guidedLocalSearchLambdaCoefficient_;
12300 }
12314
12315 guidedLocalSearchLambdaCoefficient_ = value;
12316 bitField0_ |= 0x10000000;
12317 onChanged();
12318 return this;
12319 }
12332 bitField0_ = (bitField0_ & ~0x10000000);
12333 guidedLocalSearchLambdaCoefficient_ = 0D;
12334 onChanged();
12335 return this;
12336 }
12337
12338 private boolean guidedLocalSearchResetPenaltiesOnNewBestSolution_ ;
12348 @java.lang.Override
12350 return guidedLocalSearchResetPenaltiesOnNewBestSolution_;
12351 }
12363
12364 guidedLocalSearchResetPenaltiesOnNewBestSolution_ = value;
12365 bitField0_ |= 0x20000000;
12366 onChanged();
12367 return this;
12368 }
12379 bitField0_ = (bitField0_ & ~0x20000000);
12380 guidedLocalSearchResetPenaltiesOnNewBestSolution_ = false;
12381 onChanged();
12382 return this;
12383 }
12384
12385 private boolean useDepthFirstSearch_ ;
12397 @java.lang.Override
12398 public boolean getUseDepthFirstSearch() {
12399 return useDepthFirstSearch_;
12400 }
12413 public Builder setUseDepthFirstSearch(boolean value) {
12414
12415 useDepthFirstSearch_ = value;
12416 bitField0_ |= 0x40000000;
12417 onChanged();
12418 return this;
12419 }
12432 bitField0_ = (bitField0_ & ~0x40000000);
12433 useDepthFirstSearch_ = false;
12434 onChanged();
12435 return this;
12436 }
12437
12438 private int useCp_ = 0;
12449 @java.lang.Override public int getUseCpValue() {
12450 return useCp_;
12451 }
12463 public Builder setUseCpValue(int value) {
12464 useCp_ = value;
12465 bitField0_ |= 0x80000000;
12466 onChanged();
12467 return this;
12468 }
12479 @java.lang.Override
12481 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useCp_);
12482 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
12483 }
12495 public Builder setUseCp(com.google.ortools.util.OptionalBoolean value) {
12496 if (value == null) {
12497 throw new NullPointerException();
12498 }
12499 bitField0_ |= 0x80000000;
12500 useCp_ = value.getNumber();
12501 onChanged();
12502 return this;
12503 }
12515 bitField0_ = (bitField0_ & ~0x80000000);
12516 useCp_ = 0;
12517 onChanged();
12518 return this;
12519 }
12520
12521 private int useCpSat_ = 0;
12533 @java.lang.Override public int getUseCpSatValue() {
12534 return useCpSat_;
12535 }
12548 public Builder setUseCpSatValue(int value) {
12549 useCpSat_ = value;
12550 bitField1_ |= 0x00000001;
12551 onChanged();
12552 return this;
12553 }
12565 @java.lang.Override
12567 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useCpSat_);
12568 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
12569 }
12582 public Builder setUseCpSat(com.google.ortools.util.OptionalBoolean value) {
12583 if (value == null) {
12584 throw new NullPointerException();
12585 }
12586 bitField1_ |= 0x00000001;
12587 useCpSat_ = value.getNumber();
12588 onChanged();
12589 return this;
12590 }
12603 bitField1_ = (bitField1_ & ~0x00000001);
12604 useCpSat_ = 0;
12605 onChanged();
12606 return this;
12607 }
12608
12609 private int useGeneralizedCpSat_ = 0;
12621 @java.lang.Override public int getUseGeneralizedCpSatValue() {
12622 return useGeneralizedCpSat_;
12623 }
12637 useGeneralizedCpSat_ = value;
12638 bitField1_ |= 0x00000002;
12639 onChanged();
12640 return this;
12641 }
12653 @java.lang.Override
12655 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useGeneralizedCpSat_);
12656 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
12657 }
12670 public Builder setUseGeneralizedCpSat(com.google.ortools.util.OptionalBoolean value) {
12671 if (value == null) {
12672 throw new NullPointerException();
12673 }
12674 bitField1_ |= 0x00000002;
12675 useGeneralizedCpSat_ = value.getNumber();
12676 onChanged();
12677 return this;
12678 }
12691 bitField1_ = (bitField1_ & ~0x00000002);
12692 useGeneralizedCpSat_ = 0;
12693 onChanged();
12694 return this;
12695 }
12696
12697 private com.google.ortools.sat.SatParameters satParameters_;
12698 private com.google.protobuf.SingleFieldBuilder<
12699 com.google.ortools.sat.SatParameters, com.google.ortools.sat.SatParameters.Builder, com.google.ortools.sat.SatParametersOrBuilder> satParametersBuilder_;
12709 public boolean hasSatParameters() {
12710 return ((bitField1_ & 0x00000004) != 0);
12711 }
12722 if (satParametersBuilder_ == null) {
12723 return satParameters_ == null ? com.google.ortools.sat.SatParameters.getDefaultInstance() : satParameters_;
12724 } else {
12725 return satParametersBuilder_.getMessage();
12726 }
12727 }
12736 public Builder setSatParameters(com.google.ortools.sat.SatParameters value) {
12737 if (satParametersBuilder_ == null) {
12738 if (value == null) {
12739 throw new NullPointerException();
12740 }
12741 satParameters_ = value;
12742 } else {
12743 satParametersBuilder_.setMessage(value);
12744 }
12745 bitField1_ |= 0x00000004;
12746 onChanged();
12747 return this;
12748 }
12758 com.google.ortools.sat.SatParameters.Builder builderForValue) {
12759 if (satParametersBuilder_ == null) {
12760 satParameters_ = builderForValue.build();
12761 } else {
12762 satParametersBuilder_.setMessage(builderForValue.build());
12763 }
12764 bitField1_ |= 0x00000004;
12765 onChanged();
12766 return this;
12767 }
12776 public Builder mergeSatParameters(com.google.ortools.sat.SatParameters value) {
12777 if (satParametersBuilder_ == null) {
12778 if (((bitField1_ & 0x00000004) != 0) &&
12779 satParameters_ != null &&
12780 satParameters_ != com.google.ortools.sat.SatParameters.getDefaultInstance()) {
12782 } else {
12783 satParameters_ = value;
12784 }
12785 } else {
12786 satParametersBuilder_.mergeFrom(value);
12787 }
12788 if (satParameters_ != null) {
12789 bitField1_ |= 0x00000004;
12790 onChanged();
12791 }
12792 return this;
12793 }
12803 bitField1_ = (bitField1_ & ~0x00000004);
12804 satParameters_ = null;
12805 if (satParametersBuilder_ != null) {
12806 satParametersBuilder_.dispose();
12807 satParametersBuilder_ = null;
12808 }
12809 onChanged();
12810 return this;
12811 }
12821 bitField1_ |= 0x00000004;
12822 onChanged();
12823 return getSatParametersFieldBuilder().getBuilder();
12824 }
12834 if (satParametersBuilder_ != null) {
12835 return satParametersBuilder_.getMessageOrBuilder();
12836 } else {
12837 return satParameters_ == null ?
12838 com.google.ortools.sat.SatParameters.getDefaultInstance() : satParameters_;
12839 }
12840 }
12849 private com.google.protobuf.SingleFieldBuilder<
12850 com.google.ortools.sat.SatParameters, com.google.ortools.sat.SatParameters.Builder, com.google.ortools.sat.SatParametersOrBuilder>
12851 getSatParametersFieldBuilder() {
12852 if (satParametersBuilder_ == null) {
12853 satParametersBuilder_ = new com.google.protobuf.SingleFieldBuilder<
12854 com.google.ortools.sat.SatParameters, com.google.ortools.sat.SatParameters.Builder, com.google.ortools.sat.SatParametersOrBuilder>(
12856 getParentForChildren(),
12857 isClean());
12858 satParameters_ = null;
12859 }
12860 return satParametersBuilder_;
12861 }
12862
12863 private boolean reportIntermediateCpSatSolutions_ ;
12873 @java.lang.Override
12875 return reportIntermediateCpSatSolutions_;
12876 }
12888
12889 reportIntermediateCpSatSolutions_ = value;
12890 bitField1_ |= 0x00000008;
12891 onChanged();
12892 return this;
12893 }
12904 bitField1_ = (bitField1_ & ~0x00000008);
12905 reportIntermediateCpSatSolutions_ = false;
12906 onChanged();
12907 return this;
12908 }
12909
12910 private int fallbackToCpSatSizeThreshold_ ;
12920 @java.lang.Override
12922 return fallbackToCpSatSizeThreshold_;
12923 }
12935
12936 fallbackToCpSatSizeThreshold_ = value;
12937 bitField1_ |= 0x00000010;
12938 onChanged();
12939 return this;
12940 }
12951 bitField1_ = (bitField1_ & ~0x00000010);
12952 fallbackToCpSatSizeThreshold_ = 0;
12953 onChanged();
12954 return this;
12955 }
12956
12957 private int continuousSchedulingSolver_ = 0;
12962 @java.lang.Override public int getContinuousSchedulingSolverValue() {
12963 return continuousSchedulingSolver_;
12964 }
12971 continuousSchedulingSolver_ = value;
12972 bitField1_ |= 0x00000020;
12973 onChanged();
12974 return this;
12975 }
12980 @java.lang.Override
12982 com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver result = com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.forNumber(continuousSchedulingSolver_);
12983 return result == null ? com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.UNRECOGNIZED : result;
12984 }
12990 public Builder setContinuousSchedulingSolver(com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver value) {
12991 if (value == null) {
12992 throw new NullPointerException();
12993 }
12994 bitField1_ |= 0x00000020;
12995 continuousSchedulingSolver_ = value.getNumber();
12996 onChanged();
12997 return this;
12998 }
13004 bitField1_ = (bitField1_ & ~0x00000020);
13005 continuousSchedulingSolver_ = 0;
13006 onChanged();
13007 return this;
13008 }
13009
13010 private int mixedIntegerSchedulingSolver_ = 0;
13015 @java.lang.Override public int getMixedIntegerSchedulingSolverValue() {
13016 return mixedIntegerSchedulingSolver_;
13017 }
13024 mixedIntegerSchedulingSolver_ = value;
13025 bitField1_ |= 0x00000040;
13026 onChanged();
13027 return this;
13028 }
13033 @java.lang.Override
13035 com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver result = com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.forNumber(mixedIntegerSchedulingSolver_);
13036 return result == null ? com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.UNRECOGNIZED : result;
13037 }
13043 public Builder setMixedIntegerSchedulingSolver(com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver value) {
13044 if (value == null) {
13045 throw new NullPointerException();
13046 }
13047 bitField1_ |= 0x00000040;
13048 mixedIntegerSchedulingSolver_ = value.getNumber();
13049 onChanged();
13050 return this;
13051 }
13057 bitField1_ = (bitField1_ & ~0x00000040);
13058 mixedIntegerSchedulingSolver_ = 0;
13059 onChanged();
13060 return this;
13061 }
13062
13063 private boolean disableSchedulingBewareThisMayDegradePerformance_ ;
13073 @java.lang.Override
13075 return ((bitField1_ & 0x00000080) != 0);
13076 }
13086 @java.lang.Override
13088 return disableSchedulingBewareThisMayDegradePerformance_;
13089 }
13101
13102 disableSchedulingBewareThisMayDegradePerformance_ = value;
13103 bitField1_ |= 0x00000080;
13104 onChanged();
13105 return this;
13106 }
13117 bitField1_ = (bitField1_ & ~0x00000080);
13118 disableSchedulingBewareThisMayDegradePerformance_ = false;
13119 onChanged();
13120 return this;
13121 }
13122
13123 private double optimizationStep_ ;
13134 @java.lang.Override
13135 public double getOptimizationStep() {
13136 return optimizationStep_;
13137 }
13149 public Builder setOptimizationStep(double value) {
13150
13151 optimizationStep_ = value;
13152 bitField1_ |= 0x00000100;
13153 onChanged();
13154 return this;
13155 }
13167 bitField1_ = (bitField1_ & ~0x00000100);
13168 optimizationStep_ = 0D;
13169 onChanged();
13170 return this;
13171 }
13172
13173 private int numberOfSolutionsToCollect_ ;
13183 @java.lang.Override
13185 return numberOfSolutionsToCollect_;
13186 }
13198
13199 numberOfSolutionsToCollect_ = value;
13200 bitField1_ |= 0x00000200;
13201 onChanged();
13202 return this;
13203 }
13214 bitField1_ = (bitField1_ & ~0x00000200);
13215 numberOfSolutionsToCollect_ = 0;
13216 onChanged();
13217 return this;
13218 }
13219
13220 private long solutionLimit_ ;
13231 @java.lang.Override
13232 public long getSolutionLimit() {
13233 return solutionLimit_;
13234 }
13246 public Builder setSolutionLimit(long value) {
13247
13248 solutionLimit_ = value;
13249 bitField1_ |= 0x00000400;
13250 onChanged();
13251 return this;
13252 }
13264 bitField1_ = (bitField1_ & ~0x00000400);
13265 solutionLimit_ = 0L;
13266 onChanged();
13267 return this;
13268 }
13269
13270 private com.google.protobuf.Duration timeLimit_;
13271 private com.google.protobuf.SingleFieldBuilder<
13272 com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> timeLimitBuilder_;
13281 public boolean hasTimeLimit() {
13282 return ((bitField1_ & 0x00000800) != 0);
13283 }
13292 public com.google.protobuf.Duration getTimeLimit() {
13293 if (timeLimitBuilder_ == null) {
13294 return timeLimit_ == null ? com.google.protobuf.Duration.getDefaultInstance() : timeLimit_;
13295 } else {
13296 return timeLimitBuilder_.getMessage();
13297 }
13298 }
13306 public Builder setTimeLimit(com.google.protobuf.Duration value) {
13307 if (timeLimitBuilder_ == null) {
13308 if (value == null) {
13309 throw new NullPointerException();
13310 }
13311 timeLimit_ = value;
13312 } else {
13313 timeLimitBuilder_.setMessage(value);
13314 }
13315 bitField1_ |= 0x00000800;
13316 onChanged();
13317 return this;
13318 }
13327 com.google.protobuf.Duration.Builder builderForValue) {
13328 if (timeLimitBuilder_ == null) {
13329 timeLimit_ = builderForValue.build();
13330 } else {
13331 timeLimitBuilder_.setMessage(builderForValue.build());
13332 }
13333 bitField1_ |= 0x00000800;
13334 onChanged();
13335 return this;
13336 }
13344 public Builder mergeTimeLimit(com.google.protobuf.Duration value) {
13345 if (timeLimitBuilder_ == null) {
13346 if (((bitField1_ & 0x00000800) != 0) &&
13347 timeLimit_ != null &&
13348 timeLimit_ != com.google.protobuf.Duration.getDefaultInstance()) {
13349 getTimeLimitBuilder().mergeFrom(value);
13350 } else {
13351 timeLimit_ = value;
13352 }
13353 } else {
13354 timeLimitBuilder_.mergeFrom(value);
13355 }
13356 if (timeLimit_ != null) {
13357 bitField1_ |= 0x00000800;
13358 onChanged();
13359 }
13360 return this;
13361 }
13370 bitField1_ = (bitField1_ & ~0x00000800);
13371 timeLimit_ = null;
13372 if (timeLimitBuilder_ != null) {
13373 timeLimitBuilder_.dispose();
13374 timeLimitBuilder_ = null;
13375 }
13376 onChanged();
13377 return this;
13378 }
13386 public com.google.protobuf.Duration.Builder getTimeLimitBuilder() {
13387 bitField1_ |= 0x00000800;
13388 onChanged();
13389 return getTimeLimitFieldBuilder().getBuilder();
13390 }
13398 public com.google.protobuf.DurationOrBuilder getTimeLimitOrBuilder() {
13399 if (timeLimitBuilder_ != null) {
13400 return timeLimitBuilder_.getMessageOrBuilder();
13401 } else {
13402 return timeLimit_ == null ?
13403 com.google.protobuf.Duration.getDefaultInstance() : timeLimit_;
13404 }
13405 }
13413 private com.google.protobuf.SingleFieldBuilder<
13414 com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder>
13415 getTimeLimitFieldBuilder() {
13416 if (timeLimitBuilder_ == null) {
13417 timeLimitBuilder_ = new com.google.protobuf.SingleFieldBuilder<
13418 com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder>(
13419 getTimeLimit(),
13420 getParentForChildren(),
13421 isClean());
13422 timeLimit_ = null;
13423 }
13424 return timeLimitBuilder_;
13425 }
13426
13427 private com.google.protobuf.Duration lnsTimeLimit_;
13428 private com.google.protobuf.SingleFieldBuilder<
13429 com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> lnsTimeLimitBuilder_;
13439 public boolean hasLnsTimeLimit() {
13440 return ((bitField1_ & 0x00001000) != 0);
13441 }
13451 public com.google.protobuf.Duration getLnsTimeLimit() {
13452 if (lnsTimeLimitBuilder_ == null) {
13453 return lnsTimeLimit_ == null ? com.google.protobuf.Duration.getDefaultInstance() : lnsTimeLimit_;
13454 } else {
13455 return lnsTimeLimitBuilder_.getMessage();
13456 }
13457 }
13466 public Builder setLnsTimeLimit(com.google.protobuf.Duration value) {
13467 if (lnsTimeLimitBuilder_ == null) {
13468 if (value == null) {
13469 throw new NullPointerException();
13470 }
13471 lnsTimeLimit_ = value;
13472 } else {
13473 lnsTimeLimitBuilder_.setMessage(value);
13474 }
13475 bitField1_ |= 0x00001000;
13476 onChanged();
13477 return this;
13478 }
13488 com.google.protobuf.Duration.Builder builderForValue) {
13489 if (lnsTimeLimitBuilder_ == null) {
13490 lnsTimeLimit_ = builderForValue.build();
13491 } else {
13492 lnsTimeLimitBuilder_.setMessage(builderForValue.build());
13493 }
13494 bitField1_ |= 0x00001000;
13495 onChanged();
13496 return this;
13497 }
13506 public Builder mergeLnsTimeLimit(com.google.protobuf.Duration value) {
13507 if (lnsTimeLimitBuilder_ == null) {
13508 if (((bitField1_ & 0x00001000) != 0) &&
13509 lnsTimeLimit_ != null &&
13510 lnsTimeLimit_ != com.google.protobuf.Duration.getDefaultInstance()) {
13511 getLnsTimeLimitBuilder().mergeFrom(value);
13512 } else {
13513 lnsTimeLimit_ = value;
13514 }
13515 } else {
13516 lnsTimeLimitBuilder_.mergeFrom(value);
13517 }
13518 if (lnsTimeLimit_ != null) {
13519 bitField1_ |= 0x00001000;
13520 onChanged();
13521 }
13522 return this;
13523 }
13533 bitField1_ = (bitField1_ & ~0x00001000);
13534 lnsTimeLimit_ = null;
13535 if (lnsTimeLimitBuilder_ != null) {
13536 lnsTimeLimitBuilder_.dispose();
13537 lnsTimeLimitBuilder_ = null;
13538 }
13539 onChanged();
13540 return this;
13541 }
13550 public com.google.protobuf.Duration.Builder getLnsTimeLimitBuilder() {
13551 bitField1_ |= 0x00001000;
13552 onChanged();
13553 return getLnsTimeLimitFieldBuilder().getBuilder();
13554 }
13563 public com.google.protobuf.DurationOrBuilder getLnsTimeLimitOrBuilder() {
13564 if (lnsTimeLimitBuilder_ != null) {
13565 return lnsTimeLimitBuilder_.getMessageOrBuilder();
13566 } else {
13567 return lnsTimeLimit_ == null ?
13568 com.google.protobuf.Duration.getDefaultInstance() : lnsTimeLimit_;
13569 }
13570 }
13579 private com.google.protobuf.SingleFieldBuilder<
13580 com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder>
13581 getLnsTimeLimitFieldBuilder() {
13582 if (lnsTimeLimitBuilder_ == null) {
13583 lnsTimeLimitBuilder_ = new com.google.protobuf.SingleFieldBuilder<
13584 com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder>(
13586 getParentForChildren(),
13587 isClean());
13588 lnsTimeLimit_ = null;
13589 }
13590 return lnsTimeLimitBuilder_;
13591 }
13592
13593 private double secondaryLsTimeLimitRatio_ ;
13607 @java.lang.Override
13609 return secondaryLsTimeLimitRatio_;
13610 }
13626
13627 secondaryLsTimeLimitRatio_ = value;
13628 bitField1_ |= 0x00002000;
13629 onChanged();
13630 return this;
13631 }
13646 bitField1_ = (bitField1_ & ~0x00002000);
13647 secondaryLsTimeLimitRatio_ = 0D;
13648 onChanged();
13649 return this;
13650 }
13651
13653 private com.google.protobuf.SingleFieldBuilder<
13654 com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters, com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.Builder, com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParametersOrBuilder> improvementLimitParametersBuilder_;
13665 return ((bitField1_ & 0x00004000) != 0);
13666 }
13677 if (improvementLimitParametersBuilder_ == null) {
13678 return improvementLimitParameters_ == null ? com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.getDefaultInstance() : improvementLimitParameters_;
13679 } else {
13680 return improvementLimitParametersBuilder_.getMessage();
13681 }
13682 }
13691 public Builder setImprovementLimitParameters(com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters value) {
13692 if (improvementLimitParametersBuilder_ == null) {
13693 if (value == null) {
13694 throw new NullPointerException();
13695 }
13696 improvementLimitParameters_ = value;
13697 } else {
13698 improvementLimitParametersBuilder_.setMessage(value);
13699 }
13700 bitField1_ |= 0x00004000;
13701 onChanged();
13702 return this;
13703 }
13713 com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.Builder builderForValue) {
13714 if (improvementLimitParametersBuilder_ == null) {
13715 improvementLimitParameters_ = builderForValue.build();
13716 } else {
13717 improvementLimitParametersBuilder_.setMessage(builderForValue.build());
13718 }
13719 bitField1_ |= 0x00004000;
13720 onChanged();
13721 return this;
13722 }
13731 public Builder mergeImprovementLimitParameters(com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters value) {
13732 if (improvementLimitParametersBuilder_ == null) {
13733 if (((bitField1_ & 0x00004000) != 0) &&
13734 improvementLimitParameters_ != null &&
13735 improvementLimitParameters_ != com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.getDefaultInstance()) {
13736 getImprovementLimitParametersBuilder().mergeFrom(value);
13737 } else {
13738 improvementLimitParameters_ = value;
13739 }
13740 } else {
13741 improvementLimitParametersBuilder_.mergeFrom(value);
13742 }
13743 if (improvementLimitParameters_ != null) {
13744 bitField1_ |= 0x00004000;
13745 onChanged();
13746 }
13747 return this;
13748 }
13758 bitField1_ = (bitField1_ & ~0x00004000);
13759 improvementLimitParameters_ = null;
13760 if (improvementLimitParametersBuilder_ != null) {
13761 improvementLimitParametersBuilder_.dispose();
13762 improvementLimitParametersBuilder_ = null;
13763 }
13764 onChanged();
13765 return this;
13766 }
13776 bitField1_ |= 0x00004000;
13777 onChanged();
13778 return getImprovementLimitParametersFieldBuilder().getBuilder();
13779 }
13789 if (improvementLimitParametersBuilder_ != null) {
13790 return improvementLimitParametersBuilder_.getMessageOrBuilder();
13791 } else {
13792 return improvementLimitParameters_ == null ?
13793 com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.getDefaultInstance() : improvementLimitParameters_;
13794 }
13795 }
13804 private com.google.protobuf.SingleFieldBuilder<
13805 com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters, com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.Builder, com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParametersOrBuilder>
13806 getImprovementLimitParametersFieldBuilder() {
13807 if (improvementLimitParametersBuilder_ == null) {
13808 improvementLimitParametersBuilder_ = new com.google.protobuf.SingleFieldBuilder<
13809 com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters, com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.Builder, com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParametersOrBuilder>(
13811 getParentForChildren(),
13812 isClean());
13813 improvementLimitParameters_ = null;
13814 }
13815 return improvementLimitParametersBuilder_;
13816 }
13817
13818 private boolean useFullPropagation_ ;
13836 @java.lang.Override
13837 public boolean getUseFullPropagation() {
13838 return useFullPropagation_;
13839 }
13858 public Builder setUseFullPropagation(boolean value) {
13859
13860 useFullPropagation_ = value;
13861 bitField1_ |= 0x00008000;
13862 onChanged();
13863 return this;
13864 }
13883 bitField1_ = (bitField1_ & ~0x00008000);
13884 useFullPropagation_ = false;
13885 onChanged();
13886 return this;
13887 }
13888
13889 private boolean logSearch_ ;
13910 @java.lang.Override
13911 public boolean getLogSearch() {
13912 return logSearch_;
13913 }
13935 public Builder setLogSearch(boolean value) {
13936
13937 logSearch_ = value;
13938 bitField1_ |= 0x00010000;
13939 onChanged();
13940 return this;
13941 }
13963 bitField1_ = (bitField1_ & ~0x00010000);
13964 logSearch_ = false;
13965 onChanged();
13966 return this;
13967 }
13968
13969 private double logCostScalingFactor_ ;
13979 @java.lang.Override
13980 public double getLogCostScalingFactor() {
13981 return logCostScalingFactor_;
13982 }
13993 public Builder setLogCostScalingFactor(double value) {
13994
13995 logCostScalingFactor_ = value;
13996 bitField1_ |= 0x00020000;
13997 onChanged();
13998 return this;
13999 }
14010 bitField1_ = (bitField1_ & ~0x00020000);
14011 logCostScalingFactor_ = 0D;
14012 onChanged();
14013 return this;
14014 }
14015
14016 private double logCostOffset_ ;
14021 @java.lang.Override
14022 public double getLogCostOffset() {
14023 return logCostOffset_;
14024 }
14030 public Builder setLogCostOffset(double value) {
14031
14032 logCostOffset_ = value;
14033 bitField1_ |= 0x00040000;
14034 onChanged();
14035 return this;
14036 }
14042 bitField1_ = (bitField1_ & ~0x00040000);
14043 logCostOffset_ = 0D;
14044 onChanged();
14045 return this;
14046 }
14047
14048 private java.lang.Object logTag_ = "";
14058 public java.lang.String getLogTag() {
14059 java.lang.Object ref = logTag_;
14060 if (!(ref instanceof java.lang.String)) {
14061 com.google.protobuf.ByteString bs =
14062 (com.google.protobuf.ByteString) ref;
14063 java.lang.String s = bs.toStringUtf8();
14064 logTag_ = s;
14065 return s;
14066 } else {
14067 return (java.lang.String) ref;
14068 }
14069 }
14079 public com.google.protobuf.ByteString
14081 java.lang.Object ref = logTag_;
14082 if (ref instanceof String) {
14083 com.google.protobuf.ByteString b =
14084 com.google.protobuf.ByteString.copyFromUtf8(
14085 (java.lang.String) ref);
14086 logTag_ = b;
14087 return b;
14088 } else {
14089 return (com.google.protobuf.ByteString) ref;
14090 }
14091 }
14103 java.lang.String value) {
14104 if (value == null) { throw new NullPointerException(); }
14105 logTag_ = value;
14106 bitField1_ |= 0x00080000;
14107 onChanged();
14108 return this;
14109 }
14120 logTag_ = getDefaultInstance().getLogTag();
14121 bitField1_ = (bitField1_ & ~0x00080000);
14122 onChanged();
14123 return this;
14124 }
14136 com.google.protobuf.ByteString value) {
14137 if (value == null) { throw new NullPointerException(); }
14138 checkByteStringIsUtf8(value);
14139 logTag_ = value;
14140 bitField1_ |= 0x00080000;
14141 onChanged();
14142 return this;
14143 }
14144
14145 private boolean useIteratedLocalSearch_ ;
14155 @java.lang.Override
14156 public boolean getUseIteratedLocalSearch() {
14157 return useIteratedLocalSearch_;
14158 }
14169 public Builder setUseIteratedLocalSearch(boolean value) {
14170
14171 useIteratedLocalSearch_ = value;
14172 bitField1_ |= 0x00100000;
14173 onChanged();
14174 return this;
14175 }
14186 bitField1_ = (bitField1_ & ~0x00100000);
14187 useIteratedLocalSearch_ = false;
14188 onChanged();
14189 return this;
14190 }
14191
14192 private operations_research.RoutingIls.IteratedLocalSearchParameters iteratedLocalSearchParameters_;
14193 private com.google.protobuf.SingleFieldBuilder<
14204 return ((bitField1_ & 0x00200000) != 0);
14205 }
14215 if (iteratedLocalSearchParametersBuilder_ == null) {
14216 return iteratedLocalSearchParameters_ == null ? operations_research.RoutingIls.IteratedLocalSearchParameters.getDefaultInstance() : iteratedLocalSearchParameters_;
14217 } else {
14218 return iteratedLocalSearchParametersBuilder_.getMessage();
14219 }
14220 }
14229 if (iteratedLocalSearchParametersBuilder_ == null) {
14230 if (value == null) {
14231 throw new NullPointerException();
14232 }
14233 iteratedLocalSearchParameters_ = value;
14234 } else {
14235 iteratedLocalSearchParametersBuilder_.setMessage(value);
14236 }
14237 bitField1_ |= 0x00200000;
14238 onChanged();
14239 return this;
14240 }
14250 if (iteratedLocalSearchParametersBuilder_ == null) {
14251 iteratedLocalSearchParameters_ = builderForValue.build();
14252 } else {
14253 iteratedLocalSearchParametersBuilder_.setMessage(builderForValue.build());
14254 }
14255 bitField1_ |= 0x00200000;
14256 onChanged();
14257 return this;
14258 }
14267 if (iteratedLocalSearchParametersBuilder_ == null) {
14268 if (((bitField1_ & 0x00200000) != 0) &&
14269 iteratedLocalSearchParameters_ != null &&
14272 } else {
14273 iteratedLocalSearchParameters_ = value;
14274 }
14275 } else {
14276 iteratedLocalSearchParametersBuilder_.mergeFrom(value);
14277 }
14278 if (iteratedLocalSearchParameters_ != null) {
14279 bitField1_ |= 0x00200000;
14280 onChanged();
14281 }
14282 return this;
14283 }
14292 bitField1_ = (bitField1_ & ~0x00200000);
14293 iteratedLocalSearchParameters_ = null;
14294 if (iteratedLocalSearchParametersBuilder_ != null) {
14295 iteratedLocalSearchParametersBuilder_.dispose();
14296 iteratedLocalSearchParametersBuilder_ = null;
14297 }
14298 onChanged();
14299 return this;
14300 }
14309 bitField1_ |= 0x00200000;
14310 onChanged();
14311 return getIteratedLocalSearchParametersFieldBuilder().getBuilder();
14312 }
14321 if (iteratedLocalSearchParametersBuilder_ != null) {
14322 return iteratedLocalSearchParametersBuilder_.getMessageOrBuilder();
14323 } else {
14324 return iteratedLocalSearchParameters_ == null ?
14326 }
14327 }
14335 private com.google.protobuf.SingleFieldBuilder<
14337 getIteratedLocalSearchParametersFieldBuilder() {
14338 if (iteratedLocalSearchParametersBuilder_ == null) {
14339 iteratedLocalSearchParametersBuilder_ = new com.google.protobuf.SingleFieldBuilder<
14342 getParentForChildren(),
14343 isClean());
14344 iteratedLocalSearchParameters_ = null;
14345 }
14346 return iteratedLocalSearchParametersBuilder_;
14347 }
14348
14349 // @@protoc_insertion_point(builder_scope:operations_research.RoutingSearchParameters)
14350 }
14351
14352 // @@protoc_insertion_point(class_scope:operations_research.RoutingSearchParameters)
14353 private static final com.google.ortools.constraintsolver.RoutingSearchParameters DEFAULT_INSTANCE;
14354 static {
14355 DEFAULT_INSTANCE = new com.google.ortools.constraintsolver.RoutingSearchParameters();
14356 }
14357
14359 return DEFAULT_INSTANCE;
14360 }
14361
14362 private static final com.google.protobuf.Parser<RoutingSearchParameters>
14363 PARSER = new com.google.protobuf.AbstractParser<RoutingSearchParameters>() {
14364 @java.lang.Override
14365 public RoutingSearchParameters parsePartialFrom(
14366 com.google.protobuf.CodedInputStream input,
14367 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
14368 throws com.google.protobuf.InvalidProtocolBufferException {
14369 Builder builder = newBuilder();
14370 try {
14371 builder.mergeFrom(input, extensionRegistry);
14372 } catch (com.google.protobuf.InvalidProtocolBufferException e) {
14373 throw e.setUnfinishedMessage(builder.buildPartial());
14374 } catch (com.google.protobuf.UninitializedMessageException e) {
14375 throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
14376 } catch (java.io.IOException e) {
14377 throw new com.google.protobuf.InvalidProtocolBufferException(e)
14378 .setUnfinishedMessage(builder.buildPartial());
14379 }
14380 return builder.buildPartial();
14381 }
14382 };
14383
14384 public static com.google.protobuf.Parser<RoutingSearchParameters> parser() {
14385 return PARSER;
14386 }
14387
14388 @java.lang.Override
14389 public com.google.protobuf.Parser<RoutingSearchParameters> getParserForType() {
14390 return PARSER;
14391 }
14392
14393 @java.lang.Override
14395 return DEFAULT_INSTANCE;
14396 }
14397
14398}
14399
Builder setLocalCheapestCostInsertionPickupDeliveryStrategy(com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy value)
Builder mergeFrom(com.google.ortools.constraintsolver.RoutingSearchParameters other)
Builder setIteratedLocalSearchParameters(operations_research.RoutingIls.IteratedLocalSearchParameters.Builder builderForValue)
com.google.ortools.constraintsolver.RoutingSearchParameters buildPartial()
Builder setLnsTimeLimit(com.google.protobuf.Duration.Builder builderForValue)
Builder setImprovementLimitParameters(com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters value)
operations_research.RoutingIls.IteratedLocalSearchParameters getIteratedLocalSearchParameters()
operations_research.RoutingIls.IteratedLocalSearchParameters.Builder getIteratedLocalSearchParametersBuilder()
Builder setFirstSolutionStrategy(com.google.ortools.constraintsolver.FirstSolutionStrategy.Value value)
operations_research.RoutingIls.IteratedLocalSearchParametersOrBuilder getIteratedLocalSearchParametersOrBuilder()
com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.Builder getLocalSearchOperatorsBuilder()
Builder setLocalSearchOperators(com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.Builder builderForValue)
com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters getImprovementLimitParameters()
com.google.ortools.constraintsolver.RoutingSearchParameters build()
static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver getMixedIntegerSchedulingSolver()
com.google.ortools.constraintsolver.FirstSolutionStrategy.Value getFirstSolutionStrategy()
Builder setImprovementLimitParameters(com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.Builder builderForValue)
Builder mergeImprovementLimitParameters(com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters value)
Builder setUseCpSat(com.google.ortools.util.OptionalBoolean value)
Builder setContinuousSchedulingSolver(com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver value)
Builder mergeIteratedLocalSearchParameters(operations_research.RoutingIls.IteratedLocalSearchParameters value)
Builder setLocalSearchOperators(com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators value)
com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable()
Builder setMixedIntegerSchedulingSolver(com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver value)
Builder mergeLocalSearchOperators(com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators value)
com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver getContinuousSchedulingSolver()
Builder setUseGeneralizedCpSat(com.google.ortools.util.OptionalBoolean value)
Builder setIteratedLocalSearchParameters(operations_research.RoutingIls.IteratedLocalSearchParameters value)
Builder setUseCp(com.google.ortools.util.OptionalBoolean value)
com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value getLocalSearchMetaheuristic()
Builder setSatParameters(com.google.ortools.sat.SatParameters value)
com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators getLocalSearchOperators()
com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder getLocalSearchOperatorsOrBuilder()
com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy getLocalCheapestCostInsertionPickupDeliveryStrategy()
Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
com.google.ortools.constraintsolver.RoutingSearchParameters getDefaultInstanceForType()
Builder setTimeLimit(com.google.protobuf.Duration.Builder builderForValue)
com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParametersOrBuilder getImprovementLimitParametersOrBuilder()
Builder mergeSatParameters(com.google.ortools.sat.SatParameters value)
Builder setLocalCheapestInsertionPickupDeliveryStrategy(com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy value)
com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy getLocalCheapestInsertionPickupDeliveryStrategy()
Builder setLocalSearchMetaheuristic(com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value value)
com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.Builder getImprovementLimitParametersBuilder()
Builder setSatParameters(com.google.ortools.sat.SatParameters.Builder builderForValue)
com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters buildPartial()
Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters build()
Builder mergeFrom(com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters other)
com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters getDefaultInstanceForType()
static Builder newBuilder(com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters prototype)
static com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
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(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
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(byte[] data)
static com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters parseFrom(java.io.InputStream input)
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 parseDelimitedFrom(java.io.InputStream input)
static com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters parseFrom(com.google.protobuf.ByteString data)
static com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters getDefaultInstance()
static com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters parseFrom(java.nio.ByteBuffer data)
static com.google.protobuf.Parser< ImprovementSearchLimitParameters > parser()
com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators buildPartial()
com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators getDefaultInstanceForType()
Builder mergeFrom(com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators other)
Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators build()
com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators getDefaultInstanceForType()
static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static com.google.protobuf.Parser< LocalSearchNeighborhoodOperators > parser()
static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parseFrom(java.io.InputStream input)
static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parseFrom(com.google.protobuf.CodedInputStream input)
static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static Builder newBuilder(com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators prototype)
static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators getDefaultInstance()
static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parseFrom(java.nio.ByteBuffer data)
static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parseFrom(com.google.protobuf.ByteString data)
static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parseDelimitedFrom(java.io.InputStream input)
static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parseFrom(byte[] data)
static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static com.google.ortools.constraintsolver.RoutingSearchParameters parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
com.google.ortools.constraintsolver.RoutingSearchParameters getDefaultInstanceForType()
static Builder newBuilder(com.google.ortools.constraintsolver.RoutingSearchParameters prototype)
com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value getLocalSearchMetaheuristic()
static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
static com.google.ortools.constraintsolver.RoutingSearchParameters parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable()
com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters getImprovementLimitParameters()
com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParametersOrBuilder getImprovementLimitParametersOrBuilder()
static com.google.ortools.constraintsolver.RoutingSearchParameters parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static com.google.ortools.constraintsolver.RoutingSearchParameters parseDelimitedFrom(java.io.InputStream input)
static com.google.ortools.constraintsolver.RoutingSearchParameters getDefaultInstance()
com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver getMixedIntegerSchedulingSolver()
static com.google.ortools.constraintsolver.RoutingSearchParameters parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
com.google.ortools.constraintsolver.FirstSolutionStrategy.Value getFirstSolutionStrategy()
com.google.ortools.sat.SatParametersOrBuilder getSatParametersOrBuilder()
operations_research.RoutingIls.IteratedLocalSearchParameters getIteratedLocalSearchParameters()
static com.google.ortools.constraintsolver.RoutingSearchParameters parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder getLocalSearchOperatorsOrBuilder()
static com.google.ortools.constraintsolver.RoutingSearchParameters parseFrom(com.google.protobuf.ByteString data)
com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy getLocalCheapestCostInsertionPickupDeliveryStrategy()
static com.google.ortools.constraintsolver.RoutingSearchParameters parseFrom(byte[] data)
void writeTo(com.google.protobuf.CodedOutputStream output)
static com.google.ortools.constraintsolver.RoutingSearchParameters parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
Builder newBuilderForType(com.google.protobuf.GeneratedMessage.BuilderParent parent)
static com.google.ortools.constraintsolver.RoutingSearchParameters parseFrom(java.nio.ByteBuffer data)
static com.google.ortools.constraintsolver.RoutingSearchParameters parseFrom(com.google.protobuf.CodedInputStream input)
com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver getContinuousSchedulingSolver()
static com.google.protobuf.Parser< RoutingSearchParameters > parser()
com.google.protobuf.Parser< RoutingSearchParameters > getParserForType()
com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators getLocalSearchOperators()
static com.google.ortools.constraintsolver.RoutingSearchParameters parseFrom(java.io.InputStream input)
com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy getLocalCheapestInsertionPickupDeliveryStrategy()
operations_research.RoutingIls.IteratedLocalSearchParametersOrBuilder getIteratedLocalSearchParametersOrBuilder()
static operations_research.RoutingIls.IteratedLocalSearchParameters getDefaultInstance()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static PairInsertionStrategy valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static com.google.protobuf.Internal.EnumLiteMap< PairInsertionStrategy > internalGetValueMap()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static SchedulingSolver valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static com.google.protobuf.Internal.EnumLiteMap< SchedulingSolver > internalGetValueMap()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()