Google OR-Tools v9.12
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// NO CHECKED-IN PROTOBUF GENCODE
3// source: ortools/constraint_solver/routing_parameters.proto
4// Protobuf Java Version: 4.29.3
5
6package com.google.ortools.constraintsolver;
7
21public final class RoutingSearchParameters extends
22 com.google.protobuf.GeneratedMessage implements
23 // @@protoc_insertion_point(message_implements:operations_research.RoutingSearchParameters)
25private static final long serialVersionUID = 0L;
26 static {
27 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
28 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
29 /* major= */ 4,
30 /* minor= */ 29,
31 /* patch= */ 3,
32 /* suffix= */ "",
33 RoutingSearchParameters.class.getName());
34 }
35 // Use RoutingSearchParameters.newBuilder() to construct.
36 private RoutingSearchParameters(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
37 super(builder);
38 }
39 private RoutingSearchParameters() {
40 firstSolutionStrategy_ = 0;
41 localCheapestInsertionPickupDeliveryStrategy_ = 0;
42 localCheapestCostInsertionPickupDeliveryStrategy_ = 0;
43 localCheapestInsertionSortingProperties_ = emptyIntList();
44 localSearchMetaheuristic_ = 0;
45 localSearchMetaheuristics_ = emptyIntList();
46 useCp_ = 0;
47 useCpSat_ = 0;
48 useGeneralizedCpSat_ = 0;
49 continuousSchedulingSolver_ = 0;
50 mixedIntegerSchedulingSolver_ = 0;
51 logTag_ = "";
52 }
53
54 public static final com.google.protobuf.Descriptors.Descriptor
56 return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_descriptor;
57 }
58
59 @java.lang.Override
60 protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
62 return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_fieldAccessorTable
63 .ensureFieldAccessorsInitialized(
64 com.google.ortools.constraintsolver.RoutingSearchParameters.class, com.google.ortools.constraintsolver.RoutingSearchParameters.Builder.class);
65 }
66
76 public enum PairInsertionStrategy
77 implements com.google.protobuf.ProtocolMessageEnum {
115 ;
116
117 static {
118 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
119 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
120 /* major= */ 4,
121 /* minor= */ 29,
122 /* patch= */ 3,
123 /* suffix= */ "",
124 PairInsertionStrategy.class.getName());
125 }
133 public static final int AUTOMATIC_VALUE = 0;
141 public static final int BEST_PICKUP_THEN_BEST_DELIVERY_VALUE = 1;
149 public static final int BEST_PICKUP_DELIVERY_PAIR_VALUE = 2;
161 public static final int BEST_PICKUP_DELIVERY_PAIR_MULTITOUR_VALUE = 3;
162
163
164 public final int getNumber() {
165 if (this == UNRECOGNIZED) {
166 throw new java.lang.IllegalArgumentException(
167 "Can't get the number of an unknown enum value.");
168 }
169 return value;
170 }
171
177 @java.lang.Deprecated
178 public static PairInsertionStrategy valueOf(int value) {
179 return forNumber(value);
180 }
181
186 public static PairInsertionStrategy forNumber(int value) {
187 switch (value) {
188 case 0: return AUTOMATIC;
189 case 1: return BEST_PICKUP_THEN_BEST_DELIVERY;
190 case 2: return BEST_PICKUP_DELIVERY_PAIR;
192 default: return null;
193 }
194 }
195
196 public static com.google.protobuf.Internal.EnumLiteMap<PairInsertionStrategy>
198 return internalValueMap;
199 }
200 private static final com.google.protobuf.Internal.EnumLiteMap<
201 PairInsertionStrategy> internalValueMap =
202 new com.google.protobuf.Internal.EnumLiteMap<PairInsertionStrategy>() {
203 public PairInsertionStrategy findValueByNumber(int number) {
204 return PairInsertionStrategy.forNumber(number);
205 }
206 };
207
208 public final com.google.protobuf.Descriptors.EnumValueDescriptor
210 if (this == UNRECOGNIZED) {
211 throw new java.lang.IllegalStateException(
212 "Can't get the descriptor of an unrecognized enum value.");
213 }
214 return getDescriptor().getValues().get(ordinal());
215 }
216 public final com.google.protobuf.Descriptors.EnumDescriptor
218 return getDescriptor();
219 }
220 public static final com.google.protobuf.Descriptors.EnumDescriptor
222 return com.google.ortools.constraintsolver.RoutingSearchParameters.getDescriptor().getEnumTypes().get(0);
223 }
224
225 private static final PairInsertionStrategy[] VALUES = values();
226
227 public static PairInsertionStrategy valueOf(
228 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
229 if (desc.getType() != getDescriptor()) {
230 throw new java.lang.IllegalArgumentException(
231 "EnumValueDescriptor is not for this type.");
232 }
233 if (desc.getIndex() == -1) {
234 return UNRECOGNIZED;
235 }
236 return VALUES[desc.getIndex()];
237 }
238
239 private final int value;
240
241 private PairInsertionStrategy(int value) {
242 this.value = value;
243 }
244
245 // @@protoc_insertion_point(enum_scope:operations_research.RoutingSearchParameters.PairInsertionStrategy)
246 }
247
256 public enum InsertionSortingProperty
257 implements com.google.protobuf.ProtocolMessageEnum {
326 ;
327
328 static {
329 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
330 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
331 /* major= */ 4,
332 /* minor= */ 29,
333 /* patch= */ 3,
334 /* suffix= */ "",
335 InsertionSortingProperty.class.getName());
336 }
344 public static final int SORTING_PROPERTY_UNSPECIFIED_VALUE = 0;
352 public static final int SORTING_PROPERTY_ALLOWED_VEHICLES_VALUE = 1;
360 public static final int SORTING_PROPERTY_PENALTY_VALUE = 2;
404
405
406 public final int getNumber() {
407 if (this == UNRECOGNIZED) {
408 throw new java.lang.IllegalArgumentException(
409 "Can't get the number of an unknown enum value.");
410 }
411 return value;
412 }
413
419 @java.lang.Deprecated
420 public static InsertionSortingProperty valueOf(int value) {
421 return forNumber(value);
422 }
423
428 public static InsertionSortingProperty forNumber(int value) {
429 switch (value) {
430 case 0: return SORTING_PROPERTY_UNSPECIFIED;
432 case 2: return SORTING_PROPERTY_PENALTY;
438 default: return null;
439 }
440 }
441
442 public static com.google.protobuf.Internal.EnumLiteMap<InsertionSortingProperty>
444 return internalValueMap;
445 }
446 private static final com.google.protobuf.Internal.EnumLiteMap<
447 InsertionSortingProperty> internalValueMap =
448 new com.google.protobuf.Internal.EnumLiteMap<InsertionSortingProperty>() {
449 public InsertionSortingProperty findValueByNumber(int number) {
450 return InsertionSortingProperty.forNumber(number);
451 }
452 };
453
454 public final com.google.protobuf.Descriptors.EnumValueDescriptor
456 if (this == UNRECOGNIZED) {
457 throw new java.lang.IllegalStateException(
458 "Can't get the descriptor of an unrecognized enum value.");
459 }
460 return getDescriptor().getValues().get(ordinal());
461 }
462 public final com.google.protobuf.Descriptors.EnumDescriptor
464 return getDescriptor();
465 }
466 public static final com.google.protobuf.Descriptors.EnumDescriptor
468 return com.google.ortools.constraintsolver.RoutingSearchParameters.getDescriptor().getEnumTypes().get(1);
469 }
470
471 private static final InsertionSortingProperty[] VALUES = values();
472
473 public static InsertionSortingProperty valueOf(
474 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
475 if (desc.getType() != getDescriptor()) {
476 throw new java.lang.IllegalArgumentException(
477 "EnumValueDescriptor is not for this type.");
478 }
479 if (desc.getIndex() == -1) {
480 return UNRECOGNIZED;
481 }
482 return VALUES[desc.getIndex()];
483 }
484
485 private final int value;
486
487 private InsertionSortingProperty(int value) {
488 this.value = value;
489 }
490
491 // @@protoc_insertion_point(enum_scope:operations_research.RoutingSearchParameters.InsertionSortingProperty)
492 }
493
502 public enum SchedulingSolver
503 implements com.google.protobuf.ProtocolMessageEnum {
517 ;
518
519 static {
520 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
521 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
522 /* major= */ 4,
523 /* minor= */ 29,
524 /* patch= */ 3,
525 /* suffix= */ "",
526 SchedulingSolver.class.getName());
527 }
531 public static final int SCHEDULING_UNSET_VALUE = 0;
535 public static final int SCHEDULING_GLOP_VALUE = 1;
539 public static final int SCHEDULING_CP_SAT_VALUE = 2;
540
541
542 public final int getNumber() {
543 if (this == UNRECOGNIZED) {
544 throw new java.lang.IllegalArgumentException(
545 "Can't get the number of an unknown enum value.");
546 }
547 return value;
548 }
549
555 @java.lang.Deprecated
556 public static SchedulingSolver valueOf(int value) {
557 return forNumber(value);
558 }
559
564 public static SchedulingSolver forNumber(int value) {
565 switch (value) {
566 case 0: return SCHEDULING_UNSET;
567 case 1: return SCHEDULING_GLOP;
568 case 2: return SCHEDULING_CP_SAT;
569 default: return null;
570 }
571 }
572
573 public static com.google.protobuf.Internal.EnumLiteMap<SchedulingSolver>
575 return internalValueMap;
576 }
577 private static final com.google.protobuf.Internal.EnumLiteMap<
578 SchedulingSolver> internalValueMap =
579 new com.google.protobuf.Internal.EnumLiteMap<SchedulingSolver>() {
580 public SchedulingSolver findValueByNumber(int number) {
581 return SchedulingSolver.forNumber(number);
582 }
583 };
584
585 public final com.google.protobuf.Descriptors.EnumValueDescriptor
587 if (this == UNRECOGNIZED) {
588 throw new java.lang.IllegalStateException(
589 "Can't get the descriptor of an unrecognized enum value.");
590 }
591 return getDescriptor().getValues().get(ordinal());
592 }
593 public final com.google.protobuf.Descriptors.EnumDescriptor
595 return getDescriptor();
596 }
597 public static final com.google.protobuf.Descriptors.EnumDescriptor
599 return com.google.ortools.constraintsolver.RoutingSearchParameters.getDescriptor().getEnumTypes().get(2);
600 }
601
602 private static final SchedulingSolver[] VALUES = values();
603
604 public static SchedulingSolver valueOf(
605 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
606 if (desc.getType() != getDescriptor()) {
607 throw new java.lang.IllegalArgumentException(
608 "EnumValueDescriptor is not for this type.");
609 }
610 if (desc.getIndex() == -1) {
611 return UNRECOGNIZED;
612 }
613 return VALUES[desc.getIndex()];
614 }
615
616 private final int value;
617
618 private SchedulingSolver(int value) {
619 this.value = value;
620 }
621
622 // @@protoc_insertion_point(enum_scope:operations_research.RoutingSearchParameters.SchedulingSolver)
623 }
624
626 // @@protoc_insertion_point(interface_extends:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
627 com.google.protobuf.MessageOrBuilder {
628
663
698
729
790
835
866
897
918
953
972
1009
1046
1085
1110
1139
1170
1207
1236
1271
1298
1327
1354
1383
1420
1449
1470
1509
1542
1561
1590
1613
1636
1655
1678
1703
1724
1749
1770 }
1771
1779 public static final class LocalSearchNeighborhoodOperators extends
1780 com.google.protobuf.GeneratedMessage implements
1781 // @@protoc_insertion_point(message_implements:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
1783 private static final long serialVersionUID = 0L;
1784 static {
1785 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
1786 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
1787 /* major= */ 4,
1788 /* minor= */ 29,
1789 /* patch= */ 3,
1790 /* suffix= */ "",
1791 LocalSearchNeighborhoodOperators.class.getName());
1792 }
1793 // Use LocalSearchNeighborhoodOperators.newBuilder() to construct.
1794 private LocalSearchNeighborhoodOperators(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
1795 super(builder);
1796 }
1797 private LocalSearchNeighborhoodOperators() {
1798 useRelocate_ = 0;
1799 useRelocatePair_ = 0;
1800 useLightRelocatePair_ = 0;
1801 useRelocateNeighbors_ = 0;
1802 useRelocateSubtrip_ = 0;
1803 useExchange_ = 0;
1804 useExchangePair_ = 0;
1805 useExchangeSubtrip_ = 0;
1806 useCross_ = 0;
1807 useCrossExchange_ = 0;
1808 useRelocateExpensiveChain_ = 0;
1809 useTwoOpt_ = 0;
1810 useOrOpt_ = 0;
1811 useLinKernighan_ = 0;
1812 useTspOpt_ = 0;
1813 useMakeActive_ = 0;
1814 useRelocateAndMakeActive_ = 0;
1815 useExchangeAndMakeActive_ = 0;
1816 useExchangePathStartEndsAndMakeActive_ = 0;
1817 useMakeInactive_ = 0;
1818 useMakeChainInactive_ = 0;
1819 useSwapActive_ = 0;
1820 useSwapActiveChain_ = 0;
1821 useExtendedSwapActive_ = 0;
1822 useShortestPathSwapActive_ = 0;
1823 useShortestPathTwoOpt_ = 0;
1824 useNodePairSwapActive_ = 0;
1825 usePathLns_ = 0;
1826 useFullPathLns_ = 0;
1827 useTspLns_ = 0;
1828 useInactiveLns_ = 0;
1829 useGlobalCheapestInsertionPathLns_ = 0;
1830 useLocalCheapestInsertionPathLns_ = 0;
1831 useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = 0;
1832 useGlobalCheapestInsertionExpensiveChainLns_ = 0;
1833 useLocalCheapestInsertionExpensiveChainLns_ = 0;
1834 useGlobalCheapestInsertionCloseNodesLns_ = 0;
1835 useLocalCheapestInsertionCloseNodesLns_ = 0;
1836 }
1837
1838 public static final com.google.protobuf.Descriptors.Descriptor
1840 return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_LocalSearchNeighborhoodOperators_descriptor;
1841 }
1842
1843 @java.lang.Override
1844 protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
1846 return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_LocalSearchNeighborhoodOperators_fieldAccessorTable
1847 .ensureFieldAccessorsInitialized(
1848 com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.class, com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.Builder.class);
1849 }
1850
1851 public static final int USE_RELOCATE_FIELD_NUMBER = 1;
1852 private int useRelocate_ = 0;
1869 @java.lang.Override public int getUseRelocateValue() {
1870 return useRelocate_;
1871 }
1872
1889 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useRelocate_);
1890 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
1891 }
1892
1893 public static final int USE_RELOCATE_PAIR_FIELD_NUMBER = 2;
1894 private int useRelocatePair_ = 0;
1911 @java.lang.Override public int getUseRelocatePairValue() {
1912 return useRelocatePair_;
1913 }
1914
1931 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useRelocatePair_);
1932 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
1933 }
1934
1935 public static final int USE_LIGHT_RELOCATE_PAIR_FIELD_NUMBER = 24;
1936 private int useLightRelocatePair_ = 0;
1951 @java.lang.Override public int getUseLightRelocatePairValue() {
1952 return useLightRelocatePair_;
1953 }
1954
1969 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useLightRelocatePair_);
1970 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
1971 }
1972
1973 public static final int USE_RELOCATE_NEIGHBORS_FIELD_NUMBER = 3;
1974 private int useRelocateNeighbors_ = 0;
2004 @java.lang.Override public int getUseRelocateNeighborsValue() {
2005 return useRelocateNeighbors_;
2006 }
2007
2037 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useRelocateNeighbors_);
2038 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2039 }
2040
2041 public static final int USE_RELOCATE_SUBTRIP_FIELD_NUMBER = 25;
2042 private int useRelocateSubtrip_ = 0;
2064 @java.lang.Override public int getUseRelocateSubtripValue() {
2065 return useRelocateSubtrip_;
2066 }
2067
2089 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useRelocateSubtrip_);
2090 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2091 }
2092
2093 public static final int USE_EXCHANGE_FIELD_NUMBER = 4;
2094 private int useExchange_ = 0;
2109 @java.lang.Override public int getUseExchangeValue() {
2110 return useExchange_;
2111 }
2112
2127 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useExchange_);
2128 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2129 }
2130
2131 public static final int USE_EXCHANGE_PAIR_FIELD_NUMBER = 22;
2132 private int useExchangePair_ = 0;
2147 @java.lang.Override public int getUseExchangePairValue() {
2148 return useExchangePair_;
2149 }
2150
2165 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useExchangePair_);
2166 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2167 }
2168
2169 public static final int USE_EXCHANGE_SUBTRIP_FIELD_NUMBER = 26;
2170 private int useExchangeSubtrip_ = 0;
2180 @java.lang.Override public int getUseExchangeSubtripValue() {
2181 return useExchangeSubtrip_;
2182 }
2183
2193 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useExchangeSubtrip_);
2194 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2195 }
2196
2197 public static final int USE_CROSS_FIELD_NUMBER = 5;
2198 private int useCross_ = 0;
2215 @java.lang.Override public int getUseCrossValue() {
2216 return useCross_;
2217 }
2218
2235 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useCross_);
2236 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2237 }
2238
2239 public static final int USE_CROSS_EXCHANGE_FIELD_NUMBER = 6;
2240 private int useCrossExchange_ = 0;
2249 @java.lang.Override public int getUseCrossExchangeValue() {
2250 return useCrossExchange_;
2251 }
2252
2261 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useCrossExchange_);
2262 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2263 }
2264
2265 public static final int USE_RELOCATE_EXPENSIVE_CHAIN_FIELD_NUMBER = 23;
2266 private int useRelocateExpensiveChain_ = 0;
2284 @java.lang.Override public int getUseRelocateExpensiveChainValue() {
2285 return useRelocateExpensiveChain_;
2286 }
2287
2305 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useRelocateExpensiveChain_);
2306 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2307 }
2308
2309 public static final int USE_TWO_OPT_FIELD_NUMBER = 7;
2310 private int useTwoOpt_ = 0;
2328 @java.lang.Override public int getUseTwoOptValue() {
2329 return useTwoOpt_;
2330 }
2331
2349 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useTwoOpt_);
2350 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2351 }
2352
2353 public static final int USE_OR_OPT_FIELD_NUMBER = 8;
2354 private int useOrOpt_ = 0;
2373 @java.lang.Override public int getUseOrOptValue() {
2374 return useOrOpt_;
2375 }
2376
2395 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useOrOpt_);
2396 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2397 }
2398
2399 public static final int USE_LIN_KERNIGHAN_FIELD_NUMBER = 9;
2400 private int useLinKernighan_ = 0;
2412 @java.lang.Override public int getUseLinKernighanValue() {
2413 return useLinKernighan_;
2414 }
2415
2427 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useLinKernighan_);
2428 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2429 }
2430
2431 public static final int USE_TSP_OPT_FIELD_NUMBER = 10;
2432 private int useTspOpt_ = 0;
2446 @java.lang.Override public int getUseTspOptValue() {
2447 return useTspOpt_;
2448 }
2449
2463 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useTspOpt_);
2464 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2465 }
2466
2467 public static final int USE_MAKE_ACTIVE_FIELD_NUMBER = 11;
2468 private int useMakeActive_ = 0;
2483 @java.lang.Override public int getUseMakeActiveValue() {
2484 return useMakeActive_;
2485 }
2486
2501 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useMakeActive_);
2502 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2503 }
2504
2505 public static final int USE_RELOCATE_AND_MAKE_ACTIVE_FIELD_NUMBER = 21;
2506 private int useRelocateAndMakeActive_ = 0;
2524 @java.lang.Override public int getUseRelocateAndMakeActiveValue() {
2525 return useRelocateAndMakeActive_;
2526 }
2527
2545 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useRelocateAndMakeActive_);
2546 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2547 }
2548
2549 public static final int USE_EXCHANGE_AND_MAKE_ACTIVE_FIELD_NUMBER = 37;
2550 private int useExchangeAndMakeActive_ = 0;
2564 @java.lang.Override public int getUseExchangeAndMakeActiveValue() {
2565 return useExchangeAndMakeActive_;
2566 }
2567
2581 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useExchangeAndMakeActive_);
2582 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2583 }
2584
2586 private int useExchangePathStartEndsAndMakeActive_ = 0;
2603 @java.lang.Override public int getUseExchangePathStartEndsAndMakeActiveValue() {
2604 return useExchangePathStartEndsAndMakeActive_;
2605 }
2606
2623 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useExchangePathStartEndsAndMakeActive_);
2624 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2625 }
2626
2627 public static final int USE_MAKE_INACTIVE_FIELD_NUMBER = 12;
2628 private int useMakeInactive_ = 0;
2641 @java.lang.Override public int getUseMakeInactiveValue() {
2642 return useMakeInactive_;
2643 }
2644
2657 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useMakeInactive_);
2658 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2659 }
2660
2661 public static final int USE_MAKE_CHAIN_INACTIVE_FIELD_NUMBER = 13;
2662 private int useMakeChainInactive_ = 0;
2676 @java.lang.Override public int getUseMakeChainInactiveValue() {
2677 return useMakeChainInactive_;
2678 }
2679
2693 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useMakeChainInactive_);
2694 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2695 }
2696
2697 public static final int USE_SWAP_ACTIVE_FIELD_NUMBER = 14;
2698 private int useSwapActive_ = 0;
2711 @java.lang.Override public int getUseSwapActiveValue() {
2712 return useSwapActive_;
2713 }
2714
2727 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useSwapActive_);
2728 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2729 }
2730
2731 public static final int USE_SWAP_ACTIVE_CHAIN_FIELD_NUMBER = 35;
2732 private int useSwapActiveChain_ = 0;
2746 @java.lang.Override public int getUseSwapActiveChainValue() {
2747 return useSwapActiveChain_;
2748 }
2749
2763 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useSwapActiveChain_);
2764 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2765 }
2766
2767 public static final int USE_EXTENDED_SWAP_ACTIVE_FIELD_NUMBER = 15;
2768 private int useExtendedSwapActive_ = 0;
2786 @java.lang.Override public int getUseExtendedSwapActiveValue() {
2787 return useExtendedSwapActive_;
2788 }
2789
2807 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useExtendedSwapActive_);
2808 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2809 }
2810
2812 private int useShortestPathSwapActive_ = 0;
2826 @java.lang.Override public int getUseShortestPathSwapActiveValue() {
2827 return useShortestPathSwapActive_;
2828 }
2829
2843 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useShortestPathSwapActive_);
2844 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2845 }
2846
2847 public static final int USE_SHORTEST_PATH_TWO_OPT_FIELD_NUMBER = 36;
2848 private int useShortestPathTwoOpt_ = 0;
2858 @java.lang.Override public int getUseShortestPathTwoOptValue() {
2859 return useShortestPathTwoOpt_;
2860 }
2861
2871 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useShortestPathTwoOpt_);
2872 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2873 }
2874
2875 public static final int USE_NODE_PAIR_SWAP_ACTIVE_FIELD_NUMBER = 20;
2876 private int useNodePairSwapActive_ = 0;
2895 @java.lang.Override public int getUseNodePairSwapActiveValue() {
2896 return useNodePairSwapActive_;
2897 }
2898
2917 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useNodePairSwapActive_);
2918 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2919 }
2920
2921 public static final int USE_PATH_LNS_FIELD_NUMBER = 16;
2922 private int usePathLns_ = 0;
2938 @java.lang.Override public int getUsePathLnsValue() {
2939 return usePathLns_;
2940 }
2941
2957 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(usePathLns_);
2958 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2959 }
2960
2961 public static final int USE_FULL_PATH_LNS_FIELD_NUMBER = 17;
2962 private int useFullPathLns_ = 0;
2971 @java.lang.Override public int getUseFullPathLnsValue() {
2972 return useFullPathLns_;
2973 }
2974
2983 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useFullPathLns_);
2984 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2985 }
2986
2987 public static final int USE_TSP_LNS_FIELD_NUMBER = 18;
2988 private int useTspLns_ = 0;
3002 @java.lang.Override public int getUseTspLnsValue() {
3003 return useTspLns_;
3004 }
3005
3019 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useTspLns_);
3020 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
3021 }
3022
3023 public static final int USE_INACTIVE_LNS_FIELD_NUMBER = 19;
3024 private int useInactiveLns_ = 0;
3035 @java.lang.Override public int getUseInactiveLnsValue() {
3036 return useInactiveLns_;
3037 }
3038
3049 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useInactiveLns_);
3050 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
3051 }
3052
3054 private int useGlobalCheapestInsertionPathLns_ = 0;
3065 @java.lang.Override public int getUseGlobalCheapestInsertionPathLnsValue() {
3066 return useGlobalCheapestInsertionPathLns_;
3067 }
3068
3079 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useGlobalCheapestInsertionPathLns_);
3080 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
3081 }
3082
3084 private int useLocalCheapestInsertionPathLns_ = 0;
3093 @java.lang.Override public int getUseLocalCheapestInsertionPathLnsValue() {
3094 return useLocalCheapestInsertionPathLns_;
3095 }
3096
3105 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useLocalCheapestInsertionPathLns_);
3106 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
3107 }
3108
3110 private int useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = 0;
3122 return useRelocatePathGlobalCheapestInsertionInsertUnperformed_;
3123 }
3124
3135 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useRelocatePathGlobalCheapestInsertionInsertUnperformed_);
3136 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
3137 }
3138
3140 private int useGlobalCheapestInsertionExpensiveChainLns_ = 0;
3153 return useGlobalCheapestInsertionExpensiveChainLns_;
3154 }
3155
3167 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useGlobalCheapestInsertionExpensiveChainLns_);
3168 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
3169 }
3170
3172 private int useLocalCheapestInsertionExpensiveChainLns_ = 0;
3183 return useLocalCheapestInsertionExpensiveChainLns_;
3184 }
3185
3195 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useLocalCheapestInsertionExpensiveChainLns_);
3196 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
3197 }
3198
3200 private int useGlobalCheapestInsertionCloseNodesLns_ = 0;
3212 @java.lang.Override public int getUseGlobalCheapestInsertionCloseNodesLnsValue() {
3213 return useGlobalCheapestInsertionCloseNodesLns_;
3214 }
3215
3227 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useGlobalCheapestInsertionCloseNodesLns_);
3228 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
3229 }
3230
3232 private int useLocalCheapestInsertionCloseNodesLns_ = 0;
3242 @java.lang.Override public int getUseLocalCheapestInsertionCloseNodesLnsValue() {
3243 return useLocalCheapestInsertionCloseNodesLns_;
3244 }
3245
3255 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useLocalCheapestInsertionCloseNodesLns_);
3256 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
3257 }
3258
3259 private byte memoizedIsInitialized = -1;
3260 @java.lang.Override
3261 public final boolean isInitialized() {
3262 byte isInitialized = memoizedIsInitialized;
3263 if (isInitialized == 1) return true;
3264 if (isInitialized == 0) return false;
3265
3266 memoizedIsInitialized = 1;
3267 return true;
3268 }
3269
3270 @java.lang.Override
3271 public void writeTo(com.google.protobuf.CodedOutputStream output)
3272 throws java.io.IOException {
3273 if (useRelocate_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3274 output.writeEnum(1, useRelocate_);
3275 }
3276 if (useRelocatePair_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3277 output.writeEnum(2, useRelocatePair_);
3278 }
3279 if (useRelocateNeighbors_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3280 output.writeEnum(3, useRelocateNeighbors_);
3281 }
3282 if (useExchange_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3283 output.writeEnum(4, useExchange_);
3284 }
3285 if (useCross_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3286 output.writeEnum(5, useCross_);
3287 }
3288 if (useCrossExchange_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3289 output.writeEnum(6, useCrossExchange_);
3290 }
3291 if (useTwoOpt_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3292 output.writeEnum(7, useTwoOpt_);
3293 }
3294 if (useOrOpt_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3295 output.writeEnum(8, useOrOpt_);
3296 }
3297 if (useLinKernighan_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3298 output.writeEnum(9, useLinKernighan_);
3299 }
3300 if (useTspOpt_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3301 output.writeEnum(10, useTspOpt_);
3302 }
3303 if (useMakeActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3304 output.writeEnum(11, useMakeActive_);
3305 }
3306 if (useMakeInactive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3307 output.writeEnum(12, useMakeInactive_);
3308 }
3309 if (useMakeChainInactive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3310 output.writeEnum(13, useMakeChainInactive_);
3311 }
3312 if (useSwapActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3313 output.writeEnum(14, useSwapActive_);
3314 }
3315 if (useExtendedSwapActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3316 output.writeEnum(15, useExtendedSwapActive_);
3317 }
3318 if (usePathLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3319 output.writeEnum(16, usePathLns_);
3320 }
3321 if (useFullPathLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3322 output.writeEnum(17, useFullPathLns_);
3323 }
3324 if (useTspLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3325 output.writeEnum(18, useTspLns_);
3326 }
3327 if (useInactiveLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3328 output.writeEnum(19, useInactiveLns_);
3329 }
3330 if (useNodePairSwapActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3331 output.writeEnum(20, useNodePairSwapActive_);
3332 }
3333 if (useRelocateAndMakeActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3334 output.writeEnum(21, useRelocateAndMakeActive_);
3335 }
3336 if (useExchangePair_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3337 output.writeEnum(22, useExchangePair_);
3338 }
3339 if (useRelocateExpensiveChain_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3340 output.writeEnum(23, useRelocateExpensiveChain_);
3341 }
3342 if (useLightRelocatePair_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3343 output.writeEnum(24, useLightRelocatePair_);
3344 }
3345 if (useRelocateSubtrip_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3346 output.writeEnum(25, useRelocateSubtrip_);
3347 }
3348 if (useExchangeSubtrip_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3349 output.writeEnum(26, useExchangeSubtrip_);
3350 }
3351 if (useGlobalCheapestInsertionPathLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3352 output.writeEnum(27, useGlobalCheapestInsertionPathLns_);
3353 }
3354 if (useLocalCheapestInsertionPathLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3355 output.writeEnum(28, useLocalCheapestInsertionPathLns_);
3356 }
3357 if (useGlobalCheapestInsertionExpensiveChainLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3358 output.writeEnum(29, useGlobalCheapestInsertionExpensiveChainLns_);
3359 }
3360 if (useLocalCheapestInsertionExpensiveChainLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3361 output.writeEnum(30, useLocalCheapestInsertionExpensiveChainLns_);
3362 }
3363 if (useGlobalCheapestInsertionCloseNodesLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3364 output.writeEnum(31, useGlobalCheapestInsertionCloseNodesLns_);
3365 }
3366 if (useLocalCheapestInsertionCloseNodesLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3367 output.writeEnum(32, useLocalCheapestInsertionCloseNodesLns_);
3368 }
3369 if (useRelocatePathGlobalCheapestInsertionInsertUnperformed_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3370 output.writeEnum(33, useRelocatePathGlobalCheapestInsertionInsertUnperformed_);
3371 }
3372 if (useShortestPathSwapActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3373 output.writeEnum(34, useShortestPathSwapActive_);
3374 }
3375 if (useSwapActiveChain_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3376 output.writeEnum(35, useSwapActiveChain_);
3377 }
3378 if (useShortestPathTwoOpt_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3379 output.writeEnum(36, useShortestPathTwoOpt_);
3380 }
3381 if (useExchangeAndMakeActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3382 output.writeEnum(37, useExchangeAndMakeActive_);
3383 }
3384 if (useExchangePathStartEndsAndMakeActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3385 output.writeEnum(38, useExchangePathStartEndsAndMakeActive_);
3386 }
3387 getUnknownFields().writeTo(output);
3388 }
3389
3390 @java.lang.Override
3391 public int getSerializedSize() {
3392 int size = memoizedSize;
3393 if (size != -1) return size;
3394
3395 size = 0;
3396 if (useRelocate_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3397 size += com.google.protobuf.CodedOutputStream
3398 .computeEnumSize(1, useRelocate_);
3399 }
3400 if (useRelocatePair_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3401 size += com.google.protobuf.CodedOutputStream
3402 .computeEnumSize(2, useRelocatePair_);
3403 }
3404 if (useRelocateNeighbors_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3405 size += com.google.protobuf.CodedOutputStream
3406 .computeEnumSize(3, useRelocateNeighbors_);
3407 }
3408 if (useExchange_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3409 size += com.google.protobuf.CodedOutputStream
3410 .computeEnumSize(4, useExchange_);
3411 }
3412 if (useCross_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3413 size += com.google.protobuf.CodedOutputStream
3414 .computeEnumSize(5, useCross_);
3415 }
3416 if (useCrossExchange_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3417 size += com.google.protobuf.CodedOutputStream
3418 .computeEnumSize(6, useCrossExchange_);
3419 }
3420 if (useTwoOpt_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3421 size += com.google.protobuf.CodedOutputStream
3422 .computeEnumSize(7, useTwoOpt_);
3423 }
3424 if (useOrOpt_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3425 size += com.google.protobuf.CodedOutputStream
3426 .computeEnumSize(8, useOrOpt_);
3427 }
3428 if (useLinKernighan_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3429 size += com.google.protobuf.CodedOutputStream
3430 .computeEnumSize(9, useLinKernighan_);
3431 }
3432 if (useTspOpt_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3433 size += com.google.protobuf.CodedOutputStream
3434 .computeEnumSize(10, useTspOpt_);
3435 }
3436 if (useMakeActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3437 size += com.google.protobuf.CodedOutputStream
3438 .computeEnumSize(11, useMakeActive_);
3439 }
3440 if (useMakeInactive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3441 size += com.google.protobuf.CodedOutputStream
3442 .computeEnumSize(12, useMakeInactive_);
3443 }
3444 if (useMakeChainInactive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3445 size += com.google.protobuf.CodedOutputStream
3446 .computeEnumSize(13, useMakeChainInactive_);
3447 }
3448 if (useSwapActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3449 size += com.google.protobuf.CodedOutputStream
3450 .computeEnumSize(14, useSwapActive_);
3451 }
3452 if (useExtendedSwapActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3453 size += com.google.protobuf.CodedOutputStream
3454 .computeEnumSize(15, useExtendedSwapActive_);
3455 }
3456 if (usePathLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3457 size += com.google.protobuf.CodedOutputStream
3458 .computeEnumSize(16, usePathLns_);
3459 }
3460 if (useFullPathLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3461 size += com.google.protobuf.CodedOutputStream
3462 .computeEnumSize(17, useFullPathLns_);
3463 }
3464 if (useTspLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3465 size += com.google.protobuf.CodedOutputStream
3466 .computeEnumSize(18, useTspLns_);
3467 }
3468 if (useInactiveLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3469 size += com.google.protobuf.CodedOutputStream
3470 .computeEnumSize(19, useInactiveLns_);
3471 }
3472 if (useNodePairSwapActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3473 size += com.google.protobuf.CodedOutputStream
3474 .computeEnumSize(20, useNodePairSwapActive_);
3475 }
3476 if (useRelocateAndMakeActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3477 size += com.google.protobuf.CodedOutputStream
3478 .computeEnumSize(21, useRelocateAndMakeActive_);
3479 }
3480 if (useExchangePair_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3481 size += com.google.protobuf.CodedOutputStream
3482 .computeEnumSize(22, useExchangePair_);
3483 }
3484 if (useRelocateExpensiveChain_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3485 size += com.google.protobuf.CodedOutputStream
3486 .computeEnumSize(23, useRelocateExpensiveChain_);
3487 }
3488 if (useLightRelocatePair_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3489 size += com.google.protobuf.CodedOutputStream
3490 .computeEnumSize(24, useLightRelocatePair_);
3491 }
3492 if (useRelocateSubtrip_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3493 size += com.google.protobuf.CodedOutputStream
3494 .computeEnumSize(25, useRelocateSubtrip_);
3495 }
3496 if (useExchangeSubtrip_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3497 size += com.google.protobuf.CodedOutputStream
3498 .computeEnumSize(26, useExchangeSubtrip_);
3499 }
3500 if (useGlobalCheapestInsertionPathLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3501 size += com.google.protobuf.CodedOutputStream
3502 .computeEnumSize(27, useGlobalCheapestInsertionPathLns_);
3503 }
3504 if (useLocalCheapestInsertionPathLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3505 size += com.google.protobuf.CodedOutputStream
3506 .computeEnumSize(28, useLocalCheapestInsertionPathLns_);
3507 }
3508 if (useGlobalCheapestInsertionExpensiveChainLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3509 size += com.google.protobuf.CodedOutputStream
3510 .computeEnumSize(29, useGlobalCheapestInsertionExpensiveChainLns_);
3511 }
3512 if (useLocalCheapestInsertionExpensiveChainLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3513 size += com.google.protobuf.CodedOutputStream
3514 .computeEnumSize(30, useLocalCheapestInsertionExpensiveChainLns_);
3515 }
3516 if (useGlobalCheapestInsertionCloseNodesLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3517 size += com.google.protobuf.CodedOutputStream
3518 .computeEnumSize(31, useGlobalCheapestInsertionCloseNodesLns_);
3519 }
3520 if (useLocalCheapestInsertionCloseNodesLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3521 size += com.google.protobuf.CodedOutputStream
3522 .computeEnumSize(32, useLocalCheapestInsertionCloseNodesLns_);
3523 }
3524 if (useRelocatePathGlobalCheapestInsertionInsertUnperformed_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3525 size += com.google.protobuf.CodedOutputStream
3526 .computeEnumSize(33, useRelocatePathGlobalCheapestInsertionInsertUnperformed_);
3527 }
3528 if (useShortestPathSwapActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3529 size += com.google.protobuf.CodedOutputStream
3530 .computeEnumSize(34, useShortestPathSwapActive_);
3531 }
3532 if (useSwapActiveChain_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3533 size += com.google.protobuf.CodedOutputStream
3534 .computeEnumSize(35, useSwapActiveChain_);
3535 }
3536 if (useShortestPathTwoOpt_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3537 size += com.google.protobuf.CodedOutputStream
3538 .computeEnumSize(36, useShortestPathTwoOpt_);
3539 }
3540 if (useExchangeAndMakeActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3541 size += com.google.protobuf.CodedOutputStream
3542 .computeEnumSize(37, useExchangeAndMakeActive_);
3543 }
3544 if (useExchangePathStartEndsAndMakeActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3545 size += com.google.protobuf.CodedOutputStream
3546 .computeEnumSize(38, useExchangePathStartEndsAndMakeActive_);
3547 }
3548 size += getUnknownFields().getSerializedSize();
3549 memoizedSize = size;
3550 return size;
3551 }
3552
3553 @java.lang.Override
3554 public boolean equals(final java.lang.Object obj) {
3555 if (obj == this) {
3556 return true;
3557 }
3558 if (!(obj instanceof com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators)) {
3559 return super.equals(obj);
3560 }
3561 com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators other = (com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators) obj;
3562
3563 if (useRelocate_ != other.useRelocate_) return false;
3564 if (useRelocatePair_ != other.useRelocatePair_) return false;
3565 if (useLightRelocatePair_ != other.useLightRelocatePair_) return false;
3566 if (useRelocateNeighbors_ != other.useRelocateNeighbors_) return false;
3567 if (useRelocateSubtrip_ != other.useRelocateSubtrip_) return false;
3568 if (useExchange_ != other.useExchange_) return false;
3569 if (useExchangePair_ != other.useExchangePair_) return false;
3570 if (useExchangeSubtrip_ != other.useExchangeSubtrip_) return false;
3571 if (useCross_ != other.useCross_) return false;
3572 if (useCrossExchange_ != other.useCrossExchange_) return false;
3573 if (useRelocateExpensiveChain_ != other.useRelocateExpensiveChain_) return false;
3574 if (useTwoOpt_ != other.useTwoOpt_) return false;
3575 if (useOrOpt_ != other.useOrOpt_) return false;
3576 if (useLinKernighan_ != other.useLinKernighan_) return false;
3577 if (useTspOpt_ != other.useTspOpt_) return false;
3578 if (useMakeActive_ != other.useMakeActive_) return false;
3579 if (useRelocateAndMakeActive_ != other.useRelocateAndMakeActive_) return false;
3580 if (useExchangeAndMakeActive_ != other.useExchangeAndMakeActive_) return false;
3581 if (useExchangePathStartEndsAndMakeActive_ != other.useExchangePathStartEndsAndMakeActive_) return false;
3582 if (useMakeInactive_ != other.useMakeInactive_) return false;
3583 if (useMakeChainInactive_ != other.useMakeChainInactive_) return false;
3584 if (useSwapActive_ != other.useSwapActive_) return false;
3585 if (useSwapActiveChain_ != other.useSwapActiveChain_) return false;
3586 if (useExtendedSwapActive_ != other.useExtendedSwapActive_) return false;
3587 if (useShortestPathSwapActive_ != other.useShortestPathSwapActive_) return false;
3588 if (useShortestPathTwoOpt_ != other.useShortestPathTwoOpt_) return false;
3589 if (useNodePairSwapActive_ != other.useNodePairSwapActive_) return false;
3590 if (usePathLns_ != other.usePathLns_) return false;
3591 if (useFullPathLns_ != other.useFullPathLns_) return false;
3592 if (useTspLns_ != other.useTspLns_) return false;
3593 if (useInactiveLns_ != other.useInactiveLns_) return false;
3594 if (useGlobalCheapestInsertionPathLns_ != other.useGlobalCheapestInsertionPathLns_) return false;
3595 if (useLocalCheapestInsertionPathLns_ != other.useLocalCheapestInsertionPathLns_) return false;
3596 if (useRelocatePathGlobalCheapestInsertionInsertUnperformed_ != other.useRelocatePathGlobalCheapestInsertionInsertUnperformed_) return false;
3597 if (useGlobalCheapestInsertionExpensiveChainLns_ != other.useGlobalCheapestInsertionExpensiveChainLns_) return false;
3598 if (useLocalCheapestInsertionExpensiveChainLns_ != other.useLocalCheapestInsertionExpensiveChainLns_) return false;
3599 if (useGlobalCheapestInsertionCloseNodesLns_ != other.useGlobalCheapestInsertionCloseNodesLns_) return false;
3600 if (useLocalCheapestInsertionCloseNodesLns_ != other.useLocalCheapestInsertionCloseNodesLns_) return false;
3601 if (!getUnknownFields().equals(other.getUnknownFields())) return false;
3602 return true;
3603 }
3604
3605 @java.lang.Override
3606 public int hashCode() {
3607 if (memoizedHashCode != 0) {
3608 return memoizedHashCode;
3609 }
3610 int hash = 41;
3611 hash = (19 * hash) + getDescriptor().hashCode();
3612 hash = (37 * hash) + USE_RELOCATE_FIELD_NUMBER;
3613 hash = (53 * hash) + useRelocate_;
3614 hash = (37 * hash) + USE_RELOCATE_PAIR_FIELD_NUMBER;
3615 hash = (53 * hash) + useRelocatePair_;
3616 hash = (37 * hash) + USE_LIGHT_RELOCATE_PAIR_FIELD_NUMBER;
3617 hash = (53 * hash) + useLightRelocatePair_;
3618 hash = (37 * hash) + USE_RELOCATE_NEIGHBORS_FIELD_NUMBER;
3619 hash = (53 * hash) + useRelocateNeighbors_;
3620 hash = (37 * hash) + USE_RELOCATE_SUBTRIP_FIELD_NUMBER;
3621 hash = (53 * hash) + useRelocateSubtrip_;
3622 hash = (37 * hash) + USE_EXCHANGE_FIELD_NUMBER;
3623 hash = (53 * hash) + useExchange_;
3624 hash = (37 * hash) + USE_EXCHANGE_PAIR_FIELD_NUMBER;
3625 hash = (53 * hash) + useExchangePair_;
3626 hash = (37 * hash) + USE_EXCHANGE_SUBTRIP_FIELD_NUMBER;
3627 hash = (53 * hash) + useExchangeSubtrip_;
3628 hash = (37 * hash) + USE_CROSS_FIELD_NUMBER;
3629 hash = (53 * hash) + useCross_;
3630 hash = (37 * hash) + USE_CROSS_EXCHANGE_FIELD_NUMBER;
3631 hash = (53 * hash) + useCrossExchange_;
3632 hash = (37 * hash) + USE_RELOCATE_EXPENSIVE_CHAIN_FIELD_NUMBER;
3633 hash = (53 * hash) + useRelocateExpensiveChain_;
3634 hash = (37 * hash) + USE_TWO_OPT_FIELD_NUMBER;
3635 hash = (53 * hash) + useTwoOpt_;
3636 hash = (37 * hash) + USE_OR_OPT_FIELD_NUMBER;
3637 hash = (53 * hash) + useOrOpt_;
3638 hash = (37 * hash) + USE_LIN_KERNIGHAN_FIELD_NUMBER;
3639 hash = (53 * hash) + useLinKernighan_;
3640 hash = (37 * hash) + USE_TSP_OPT_FIELD_NUMBER;
3641 hash = (53 * hash) + useTspOpt_;
3642 hash = (37 * hash) + USE_MAKE_ACTIVE_FIELD_NUMBER;
3643 hash = (53 * hash) + useMakeActive_;
3644 hash = (37 * hash) + USE_RELOCATE_AND_MAKE_ACTIVE_FIELD_NUMBER;
3645 hash = (53 * hash) + useRelocateAndMakeActive_;
3646 hash = (37 * hash) + USE_EXCHANGE_AND_MAKE_ACTIVE_FIELD_NUMBER;
3647 hash = (53 * hash) + useExchangeAndMakeActive_;
3649 hash = (53 * hash) + useExchangePathStartEndsAndMakeActive_;
3650 hash = (37 * hash) + USE_MAKE_INACTIVE_FIELD_NUMBER;
3651 hash = (53 * hash) + useMakeInactive_;
3652 hash = (37 * hash) + USE_MAKE_CHAIN_INACTIVE_FIELD_NUMBER;
3653 hash = (53 * hash) + useMakeChainInactive_;
3654 hash = (37 * hash) + USE_SWAP_ACTIVE_FIELD_NUMBER;
3655 hash = (53 * hash) + useSwapActive_;
3656 hash = (37 * hash) + USE_SWAP_ACTIVE_CHAIN_FIELD_NUMBER;
3657 hash = (53 * hash) + useSwapActiveChain_;
3658 hash = (37 * hash) + USE_EXTENDED_SWAP_ACTIVE_FIELD_NUMBER;
3659 hash = (53 * hash) + useExtendedSwapActive_;
3660 hash = (37 * hash) + USE_SHORTEST_PATH_SWAP_ACTIVE_FIELD_NUMBER;
3661 hash = (53 * hash) + useShortestPathSwapActive_;
3662 hash = (37 * hash) + USE_SHORTEST_PATH_TWO_OPT_FIELD_NUMBER;
3663 hash = (53 * hash) + useShortestPathTwoOpt_;
3664 hash = (37 * hash) + USE_NODE_PAIR_SWAP_ACTIVE_FIELD_NUMBER;
3665 hash = (53 * hash) + useNodePairSwapActive_;
3666 hash = (37 * hash) + USE_PATH_LNS_FIELD_NUMBER;
3667 hash = (53 * hash) + usePathLns_;
3668 hash = (37 * hash) + USE_FULL_PATH_LNS_FIELD_NUMBER;
3669 hash = (53 * hash) + useFullPathLns_;
3670 hash = (37 * hash) + USE_TSP_LNS_FIELD_NUMBER;
3671 hash = (53 * hash) + useTspLns_;
3672 hash = (37 * hash) + USE_INACTIVE_LNS_FIELD_NUMBER;
3673 hash = (53 * hash) + useInactiveLns_;
3675 hash = (53 * hash) + useGlobalCheapestInsertionPathLns_;
3677 hash = (53 * hash) + useLocalCheapestInsertionPathLns_;
3679 hash = (53 * hash) + useRelocatePathGlobalCheapestInsertionInsertUnperformed_;
3681 hash = (53 * hash) + useGlobalCheapestInsertionExpensiveChainLns_;
3683 hash = (53 * hash) + useLocalCheapestInsertionExpensiveChainLns_;
3685 hash = (53 * hash) + useGlobalCheapestInsertionCloseNodesLns_;
3687 hash = (53 * hash) + useLocalCheapestInsertionCloseNodesLns_;
3688 hash = (29 * hash) + getUnknownFields().hashCode();
3689 memoizedHashCode = hash;
3690 return hash;
3691 }
3692
3694 java.nio.ByteBuffer data)
3695 throws com.google.protobuf.InvalidProtocolBufferException {
3696 return PARSER.parseFrom(data);
3697 }
3699 java.nio.ByteBuffer data,
3700 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3701 throws com.google.protobuf.InvalidProtocolBufferException {
3702 return PARSER.parseFrom(data, extensionRegistry);
3703 }
3705 com.google.protobuf.ByteString data)
3706 throws com.google.protobuf.InvalidProtocolBufferException {
3707 return PARSER.parseFrom(data);
3708 }
3710 com.google.protobuf.ByteString data,
3711 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3712 throws com.google.protobuf.InvalidProtocolBufferException {
3713 return PARSER.parseFrom(data, extensionRegistry);
3714 }
3716 throws com.google.protobuf.InvalidProtocolBufferException {
3717 return PARSER.parseFrom(data);
3718 }
3720 byte[] data,
3721 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3722 throws com.google.protobuf.InvalidProtocolBufferException {
3723 return PARSER.parseFrom(data, extensionRegistry);
3724 }
3726 throws java.io.IOException {
3727 return com.google.protobuf.GeneratedMessage
3728 .parseWithIOException(PARSER, input);
3729 }
3731 java.io.InputStream input,
3732 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3733 throws java.io.IOException {
3734 return com.google.protobuf.GeneratedMessage
3735 .parseWithIOException(PARSER, input, extensionRegistry);
3736 }
3737
3739 throws java.io.IOException {
3740 return com.google.protobuf.GeneratedMessage
3741 .parseDelimitedWithIOException(PARSER, input);
3742 }
3743
3745 java.io.InputStream input,
3746 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3747 throws java.io.IOException {
3748 return com.google.protobuf.GeneratedMessage
3749 .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
3750 }
3752 com.google.protobuf.CodedInputStream input)
3753 throws java.io.IOException {
3754 return com.google.protobuf.GeneratedMessage
3755 .parseWithIOException(PARSER, input);
3756 }
3758 com.google.protobuf.CodedInputStream input,
3759 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3760 throws java.io.IOException {
3761 return com.google.protobuf.GeneratedMessage
3762 .parseWithIOException(PARSER, input, extensionRegistry);
3763 }
3764
3765 @java.lang.Override
3766 public Builder newBuilderForType() { return newBuilder(); }
3767 public static Builder newBuilder() {
3768 return DEFAULT_INSTANCE.toBuilder();
3769 }
3770 public static Builder newBuilder(com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators prototype) {
3771 return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
3772 }
3773 @java.lang.Override
3775 return this == DEFAULT_INSTANCE
3776 ? new Builder() : new Builder().mergeFrom(this);
3777 }
3778
3779 @java.lang.Override
3781 com.google.protobuf.GeneratedMessage.BuilderParent parent) {
3782 Builder builder = new Builder(parent);
3783 return builder;
3784 }
3785
3793 public static final class Builder extends
3794 com.google.protobuf.GeneratedMessage.Builder<Builder> implements
3795 // @@protoc_insertion_point(builder_implements:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
3796 com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder {
3797 public static final com.google.protobuf.Descriptors.Descriptor
3799 return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_LocalSearchNeighborhoodOperators_descriptor;
3800 }
3801
3802 @java.lang.Override
3803 protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
3805 return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_LocalSearchNeighborhoodOperators_fieldAccessorTable
3806 .ensureFieldAccessorsInitialized(
3807 com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.class, com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.Builder.class);
3808 }
3809
3810 // Construct using com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.newBuilder()
3811 private Builder() {
3812
3813 }
3814
3815 private Builder(
3816 com.google.protobuf.GeneratedMessage.BuilderParent parent) {
3817 super(parent);
3818
3819 }
3820 @java.lang.Override
3821 public Builder clear() {
3822 super.clear();
3823 bitField0_ = 0;
3824 bitField1_ = 0;
3825 useRelocate_ = 0;
3826 useRelocatePair_ = 0;
3827 useLightRelocatePair_ = 0;
3828 useRelocateNeighbors_ = 0;
3829 useRelocateSubtrip_ = 0;
3830 useExchange_ = 0;
3831 useExchangePair_ = 0;
3832 useExchangeSubtrip_ = 0;
3833 useCross_ = 0;
3834 useCrossExchange_ = 0;
3835 useRelocateExpensiveChain_ = 0;
3836 useTwoOpt_ = 0;
3837 useOrOpt_ = 0;
3838 useLinKernighan_ = 0;
3839 useTspOpt_ = 0;
3840 useMakeActive_ = 0;
3841 useRelocateAndMakeActive_ = 0;
3842 useExchangeAndMakeActive_ = 0;
3843 useExchangePathStartEndsAndMakeActive_ = 0;
3844 useMakeInactive_ = 0;
3845 useMakeChainInactive_ = 0;
3846 useSwapActive_ = 0;
3847 useSwapActiveChain_ = 0;
3848 useExtendedSwapActive_ = 0;
3849 useShortestPathSwapActive_ = 0;
3850 useShortestPathTwoOpt_ = 0;
3851 useNodePairSwapActive_ = 0;
3852 usePathLns_ = 0;
3853 useFullPathLns_ = 0;
3854 useTspLns_ = 0;
3855 useInactiveLns_ = 0;
3856 useGlobalCheapestInsertionPathLns_ = 0;
3857 useLocalCheapestInsertionPathLns_ = 0;
3858 useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = 0;
3859 useGlobalCheapestInsertionExpensiveChainLns_ = 0;
3860 useLocalCheapestInsertionExpensiveChainLns_ = 0;
3861 useGlobalCheapestInsertionCloseNodesLns_ = 0;
3862 useLocalCheapestInsertionCloseNodesLns_ = 0;
3863 return this;
3864 }
3865
3866 @java.lang.Override
3867 public com.google.protobuf.Descriptors.Descriptor
3869 return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_LocalSearchNeighborhoodOperators_descriptor;
3870 }
3871
3872 @java.lang.Override
3874 return com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.getDefaultInstance();
3875 }
3876
3877 @java.lang.Override
3885
3886 @java.lang.Override
3888 com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators result = new com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators(this);
3889 if (bitField0_ != 0) { buildPartial0(result); }
3890 if (bitField1_ != 0) { buildPartial1(result); }
3891 onBuilt();
3892 return result;
3893 }
3894
3895 private void buildPartial0(com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators result) {
3896 int from_bitField0_ = bitField0_;
3897 if (((from_bitField0_ & 0x00000001) != 0)) {
3898 result.useRelocate_ = useRelocate_;
3899 }
3900 if (((from_bitField0_ & 0x00000002) != 0)) {
3901 result.useRelocatePair_ = useRelocatePair_;
3902 }
3903 if (((from_bitField0_ & 0x00000004) != 0)) {
3904 result.useLightRelocatePair_ = useLightRelocatePair_;
3905 }
3906 if (((from_bitField0_ & 0x00000008) != 0)) {
3907 result.useRelocateNeighbors_ = useRelocateNeighbors_;
3908 }
3909 if (((from_bitField0_ & 0x00000010) != 0)) {
3910 result.useRelocateSubtrip_ = useRelocateSubtrip_;
3911 }
3912 if (((from_bitField0_ & 0x00000020) != 0)) {
3913 result.useExchange_ = useExchange_;
3914 }
3915 if (((from_bitField0_ & 0x00000040) != 0)) {
3916 result.useExchangePair_ = useExchangePair_;
3917 }
3918 if (((from_bitField0_ & 0x00000080) != 0)) {
3919 result.useExchangeSubtrip_ = useExchangeSubtrip_;
3920 }
3921 if (((from_bitField0_ & 0x00000100) != 0)) {
3922 result.useCross_ = useCross_;
3923 }
3924 if (((from_bitField0_ & 0x00000200) != 0)) {
3925 result.useCrossExchange_ = useCrossExchange_;
3926 }
3927 if (((from_bitField0_ & 0x00000400) != 0)) {
3928 result.useRelocateExpensiveChain_ = useRelocateExpensiveChain_;
3929 }
3930 if (((from_bitField0_ & 0x00000800) != 0)) {
3931 result.useTwoOpt_ = useTwoOpt_;
3932 }
3933 if (((from_bitField0_ & 0x00001000) != 0)) {
3934 result.useOrOpt_ = useOrOpt_;
3935 }
3936 if (((from_bitField0_ & 0x00002000) != 0)) {
3937 result.useLinKernighan_ = useLinKernighan_;
3938 }
3939 if (((from_bitField0_ & 0x00004000) != 0)) {
3940 result.useTspOpt_ = useTspOpt_;
3941 }
3942 if (((from_bitField0_ & 0x00008000) != 0)) {
3943 result.useMakeActive_ = useMakeActive_;
3944 }
3945 if (((from_bitField0_ & 0x00010000) != 0)) {
3946 result.useRelocateAndMakeActive_ = useRelocateAndMakeActive_;
3947 }
3948 if (((from_bitField0_ & 0x00020000) != 0)) {
3949 result.useExchangeAndMakeActive_ = useExchangeAndMakeActive_;
3950 }
3951 if (((from_bitField0_ & 0x00040000) != 0)) {
3952 result.useExchangePathStartEndsAndMakeActive_ = useExchangePathStartEndsAndMakeActive_;
3953 }
3954 if (((from_bitField0_ & 0x00080000) != 0)) {
3955 result.useMakeInactive_ = useMakeInactive_;
3956 }
3957 if (((from_bitField0_ & 0x00100000) != 0)) {
3958 result.useMakeChainInactive_ = useMakeChainInactive_;
3959 }
3960 if (((from_bitField0_ & 0x00200000) != 0)) {
3961 result.useSwapActive_ = useSwapActive_;
3962 }
3963 if (((from_bitField0_ & 0x00400000) != 0)) {
3964 result.useSwapActiveChain_ = useSwapActiveChain_;
3965 }
3966 if (((from_bitField0_ & 0x00800000) != 0)) {
3967 result.useExtendedSwapActive_ = useExtendedSwapActive_;
3968 }
3969 if (((from_bitField0_ & 0x01000000) != 0)) {
3970 result.useShortestPathSwapActive_ = useShortestPathSwapActive_;
3971 }
3972 if (((from_bitField0_ & 0x02000000) != 0)) {
3973 result.useShortestPathTwoOpt_ = useShortestPathTwoOpt_;
3974 }
3975 if (((from_bitField0_ & 0x04000000) != 0)) {
3976 result.useNodePairSwapActive_ = useNodePairSwapActive_;
3977 }
3978 if (((from_bitField0_ & 0x08000000) != 0)) {
3979 result.usePathLns_ = usePathLns_;
3980 }
3981 if (((from_bitField0_ & 0x10000000) != 0)) {
3982 result.useFullPathLns_ = useFullPathLns_;
3983 }
3984 if (((from_bitField0_ & 0x20000000) != 0)) {
3985 result.useTspLns_ = useTspLns_;
3986 }
3987 if (((from_bitField0_ & 0x40000000) != 0)) {
3988 result.useInactiveLns_ = useInactiveLns_;
3989 }
3990 if (((from_bitField0_ & 0x80000000) != 0)) {
3991 result.useGlobalCheapestInsertionPathLns_ = useGlobalCheapestInsertionPathLns_;
3992 }
3993 }
3994
3995 private void buildPartial1(com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators result) {
3996 int from_bitField1_ = bitField1_;
3997 if (((from_bitField1_ & 0x00000001) != 0)) {
3998 result.useLocalCheapestInsertionPathLns_ = useLocalCheapestInsertionPathLns_;
3999 }
4000 if (((from_bitField1_ & 0x00000002) != 0)) {
4001 result.useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = useRelocatePathGlobalCheapestInsertionInsertUnperformed_;
4002 }
4003 if (((from_bitField1_ & 0x00000004) != 0)) {
4004 result.useGlobalCheapestInsertionExpensiveChainLns_ = useGlobalCheapestInsertionExpensiveChainLns_;
4005 }
4006 if (((from_bitField1_ & 0x00000008) != 0)) {
4007 result.useLocalCheapestInsertionExpensiveChainLns_ = useLocalCheapestInsertionExpensiveChainLns_;
4008 }
4009 if (((from_bitField1_ & 0x00000010) != 0)) {
4010 result.useGlobalCheapestInsertionCloseNodesLns_ = useGlobalCheapestInsertionCloseNodesLns_;
4011 }
4012 if (((from_bitField1_ & 0x00000020) != 0)) {
4013 result.useLocalCheapestInsertionCloseNodesLns_ = useLocalCheapestInsertionCloseNodesLns_;
4014 }
4015 }
4016
4017 @java.lang.Override
4018 public Builder mergeFrom(com.google.protobuf.Message other) {
4019 if (other instanceof com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators) {
4020 return mergeFrom((com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators)other);
4021 } else {
4022 super.mergeFrom(other);
4023 return this;
4024 }
4025 }
4026
4027 public Builder mergeFrom(com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators other) {
4028 if (other == com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.getDefaultInstance()) return this;
4029 if (other.useRelocate_ != 0) {
4030 setUseRelocateValue(other.getUseRelocateValue());
4031 }
4032 if (other.useRelocatePair_ != 0) {
4033 setUseRelocatePairValue(other.getUseRelocatePairValue());
4034 }
4035 if (other.useLightRelocatePair_ != 0) {
4036 setUseLightRelocatePairValue(other.getUseLightRelocatePairValue());
4037 }
4038 if (other.useRelocateNeighbors_ != 0) {
4039 setUseRelocateNeighborsValue(other.getUseRelocateNeighborsValue());
4040 }
4041 if (other.useRelocateSubtrip_ != 0) {
4042 setUseRelocateSubtripValue(other.getUseRelocateSubtripValue());
4043 }
4044 if (other.useExchange_ != 0) {
4045 setUseExchangeValue(other.getUseExchangeValue());
4046 }
4047 if (other.useExchangePair_ != 0) {
4048 setUseExchangePairValue(other.getUseExchangePairValue());
4049 }
4050 if (other.useExchangeSubtrip_ != 0) {
4051 setUseExchangeSubtripValue(other.getUseExchangeSubtripValue());
4052 }
4053 if (other.useCross_ != 0) {
4054 setUseCrossValue(other.getUseCrossValue());
4055 }
4056 if (other.useCrossExchange_ != 0) {
4057 setUseCrossExchangeValue(other.getUseCrossExchangeValue());
4058 }
4059 if (other.useRelocateExpensiveChain_ != 0) {
4060 setUseRelocateExpensiveChainValue(other.getUseRelocateExpensiveChainValue());
4061 }
4062 if (other.useTwoOpt_ != 0) {
4063 setUseTwoOptValue(other.getUseTwoOptValue());
4064 }
4065 if (other.useOrOpt_ != 0) {
4066 setUseOrOptValue(other.getUseOrOptValue());
4067 }
4068 if (other.useLinKernighan_ != 0) {
4069 setUseLinKernighanValue(other.getUseLinKernighanValue());
4070 }
4071 if (other.useTspOpt_ != 0) {
4072 setUseTspOptValue(other.getUseTspOptValue());
4073 }
4074 if (other.useMakeActive_ != 0) {
4075 setUseMakeActiveValue(other.getUseMakeActiveValue());
4076 }
4077 if (other.useRelocateAndMakeActive_ != 0) {
4078 setUseRelocateAndMakeActiveValue(other.getUseRelocateAndMakeActiveValue());
4079 }
4080 if (other.useExchangeAndMakeActive_ != 0) {
4081 setUseExchangeAndMakeActiveValue(other.getUseExchangeAndMakeActiveValue());
4082 }
4083 if (other.useExchangePathStartEndsAndMakeActive_ != 0) {
4084 setUseExchangePathStartEndsAndMakeActiveValue(other.getUseExchangePathStartEndsAndMakeActiveValue());
4085 }
4086 if (other.useMakeInactive_ != 0) {
4087 setUseMakeInactiveValue(other.getUseMakeInactiveValue());
4088 }
4089 if (other.useMakeChainInactive_ != 0) {
4090 setUseMakeChainInactiveValue(other.getUseMakeChainInactiveValue());
4091 }
4092 if (other.useSwapActive_ != 0) {
4093 setUseSwapActiveValue(other.getUseSwapActiveValue());
4094 }
4095 if (other.useSwapActiveChain_ != 0) {
4096 setUseSwapActiveChainValue(other.getUseSwapActiveChainValue());
4097 }
4098 if (other.useExtendedSwapActive_ != 0) {
4099 setUseExtendedSwapActiveValue(other.getUseExtendedSwapActiveValue());
4100 }
4101 if (other.useShortestPathSwapActive_ != 0) {
4102 setUseShortestPathSwapActiveValue(other.getUseShortestPathSwapActiveValue());
4103 }
4104 if (other.useShortestPathTwoOpt_ != 0) {
4105 setUseShortestPathTwoOptValue(other.getUseShortestPathTwoOptValue());
4106 }
4107 if (other.useNodePairSwapActive_ != 0) {
4108 setUseNodePairSwapActiveValue(other.getUseNodePairSwapActiveValue());
4109 }
4110 if (other.usePathLns_ != 0) {
4111 setUsePathLnsValue(other.getUsePathLnsValue());
4112 }
4113 if (other.useFullPathLns_ != 0) {
4114 setUseFullPathLnsValue(other.getUseFullPathLnsValue());
4115 }
4116 if (other.useTspLns_ != 0) {
4117 setUseTspLnsValue(other.getUseTspLnsValue());
4118 }
4119 if (other.useInactiveLns_ != 0) {
4120 setUseInactiveLnsValue(other.getUseInactiveLnsValue());
4121 }
4122 if (other.useGlobalCheapestInsertionPathLns_ != 0) {
4123 setUseGlobalCheapestInsertionPathLnsValue(other.getUseGlobalCheapestInsertionPathLnsValue());
4124 }
4125 if (other.useLocalCheapestInsertionPathLns_ != 0) {
4126 setUseLocalCheapestInsertionPathLnsValue(other.getUseLocalCheapestInsertionPathLnsValue());
4127 }
4128 if (other.useRelocatePathGlobalCheapestInsertionInsertUnperformed_ != 0) {
4129 setUseRelocatePathGlobalCheapestInsertionInsertUnperformedValue(other.getUseRelocatePathGlobalCheapestInsertionInsertUnperformedValue());
4130 }
4131 if (other.useGlobalCheapestInsertionExpensiveChainLns_ != 0) {
4132 setUseGlobalCheapestInsertionExpensiveChainLnsValue(other.getUseGlobalCheapestInsertionExpensiveChainLnsValue());
4133 }
4134 if (other.useLocalCheapestInsertionExpensiveChainLns_ != 0) {
4135 setUseLocalCheapestInsertionExpensiveChainLnsValue(other.getUseLocalCheapestInsertionExpensiveChainLnsValue());
4136 }
4137 if (other.useGlobalCheapestInsertionCloseNodesLns_ != 0) {
4138 setUseGlobalCheapestInsertionCloseNodesLnsValue(other.getUseGlobalCheapestInsertionCloseNodesLnsValue());
4139 }
4140 if (other.useLocalCheapestInsertionCloseNodesLns_ != 0) {
4141 setUseLocalCheapestInsertionCloseNodesLnsValue(other.getUseLocalCheapestInsertionCloseNodesLnsValue());
4142 }
4143 this.mergeUnknownFields(other.getUnknownFields());
4144 onChanged();
4145 return this;
4146 }
4147
4148 @java.lang.Override
4149 public final boolean isInitialized() {
4150 return true;
4151 }
4152
4153 @java.lang.Override
4154 public Builder mergeFrom(
4155 com.google.protobuf.CodedInputStream input,
4156 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
4157 throws java.io.IOException {
4158 if (extensionRegistry == null) {
4159 throw new java.lang.NullPointerException();
4160 }
4161 try {
4162 boolean done = false;
4163 while (!done) {
4164 int tag = input.readTag();
4165 switch (tag) {
4166 case 0:
4167 done = true;
4168 break;
4169 case 8: {
4170 useRelocate_ = input.readEnum();
4171 bitField0_ |= 0x00000001;
4172 break;
4173 } // case 8
4174 case 16: {
4175 useRelocatePair_ = input.readEnum();
4176 bitField0_ |= 0x00000002;
4177 break;
4178 } // case 16
4179 case 24: {
4180 useRelocateNeighbors_ = input.readEnum();
4181 bitField0_ |= 0x00000008;
4182 break;
4183 } // case 24
4184 case 32: {
4185 useExchange_ = input.readEnum();
4186 bitField0_ |= 0x00000020;
4187 break;
4188 } // case 32
4189 case 40: {
4190 useCross_ = input.readEnum();
4191 bitField0_ |= 0x00000100;
4192 break;
4193 } // case 40
4194 case 48: {
4195 useCrossExchange_ = input.readEnum();
4196 bitField0_ |= 0x00000200;
4197 break;
4198 } // case 48
4199 case 56: {
4200 useTwoOpt_ = input.readEnum();
4201 bitField0_ |= 0x00000800;
4202 break;
4203 } // case 56
4204 case 64: {
4205 useOrOpt_ = input.readEnum();
4206 bitField0_ |= 0x00001000;
4207 break;
4208 } // case 64
4209 case 72: {
4210 useLinKernighan_ = input.readEnum();
4211 bitField0_ |= 0x00002000;
4212 break;
4213 } // case 72
4214 case 80: {
4215 useTspOpt_ = input.readEnum();
4216 bitField0_ |= 0x00004000;
4217 break;
4218 } // case 80
4219 case 88: {
4220 useMakeActive_ = input.readEnum();
4221 bitField0_ |= 0x00008000;
4222 break;
4223 } // case 88
4224 case 96: {
4225 useMakeInactive_ = input.readEnum();
4226 bitField0_ |= 0x00080000;
4227 break;
4228 } // case 96
4229 case 104: {
4230 useMakeChainInactive_ = input.readEnum();
4231 bitField0_ |= 0x00100000;
4232 break;
4233 } // case 104
4234 case 112: {
4235 useSwapActive_ = input.readEnum();
4236 bitField0_ |= 0x00200000;
4237 break;
4238 } // case 112
4239 case 120: {
4240 useExtendedSwapActive_ = input.readEnum();
4241 bitField0_ |= 0x00800000;
4242 break;
4243 } // case 120
4244 case 128: {
4245 usePathLns_ = input.readEnum();
4246 bitField0_ |= 0x08000000;
4247 break;
4248 } // case 128
4249 case 136: {
4250 useFullPathLns_ = input.readEnum();
4251 bitField0_ |= 0x10000000;
4252 break;
4253 } // case 136
4254 case 144: {
4255 useTspLns_ = input.readEnum();
4256 bitField0_ |= 0x20000000;
4257 break;
4258 } // case 144
4259 case 152: {
4260 useInactiveLns_ = input.readEnum();
4261 bitField0_ |= 0x40000000;
4262 break;
4263 } // case 152
4264 case 160: {
4265 useNodePairSwapActive_ = input.readEnum();
4266 bitField0_ |= 0x04000000;
4267 break;
4268 } // case 160
4269 case 168: {
4270 useRelocateAndMakeActive_ = input.readEnum();
4271 bitField0_ |= 0x00010000;
4272 break;
4273 } // case 168
4274 case 176: {
4275 useExchangePair_ = input.readEnum();
4276 bitField0_ |= 0x00000040;
4277 break;
4278 } // case 176
4279 case 184: {
4280 useRelocateExpensiveChain_ = input.readEnum();
4281 bitField0_ |= 0x00000400;
4282 break;
4283 } // case 184
4284 case 192: {
4285 useLightRelocatePair_ = input.readEnum();
4286 bitField0_ |= 0x00000004;
4287 break;
4288 } // case 192
4289 case 200: {
4290 useRelocateSubtrip_ = input.readEnum();
4291 bitField0_ |= 0x00000010;
4292 break;
4293 } // case 200
4294 case 208: {
4295 useExchangeSubtrip_ = input.readEnum();
4296 bitField0_ |= 0x00000080;
4297 break;
4298 } // case 208
4299 case 216: {
4300 useGlobalCheapestInsertionPathLns_ = input.readEnum();
4301 bitField0_ |= 0x80000000;
4302 break;
4303 } // case 216
4304 case 224: {
4305 useLocalCheapestInsertionPathLns_ = input.readEnum();
4306 bitField1_ |= 0x00000001;
4307 break;
4308 } // case 224
4309 case 232: {
4310 useGlobalCheapestInsertionExpensiveChainLns_ = input.readEnum();
4311 bitField1_ |= 0x00000004;
4312 break;
4313 } // case 232
4314 case 240: {
4315 useLocalCheapestInsertionExpensiveChainLns_ = input.readEnum();
4316 bitField1_ |= 0x00000008;
4317 break;
4318 } // case 240
4319 case 248: {
4320 useGlobalCheapestInsertionCloseNodesLns_ = input.readEnum();
4321 bitField1_ |= 0x00000010;
4322 break;
4323 } // case 248
4324 case 256: {
4325 useLocalCheapestInsertionCloseNodesLns_ = input.readEnum();
4326 bitField1_ |= 0x00000020;
4327 break;
4328 } // case 256
4329 case 264: {
4330 useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = input.readEnum();
4331 bitField1_ |= 0x00000002;
4332 break;
4333 } // case 264
4334 case 272: {
4335 useShortestPathSwapActive_ = input.readEnum();
4336 bitField0_ |= 0x01000000;
4337 break;
4338 } // case 272
4339 case 280: {
4340 useSwapActiveChain_ = input.readEnum();
4341 bitField0_ |= 0x00400000;
4342 break;
4343 } // case 280
4344 case 288: {
4345 useShortestPathTwoOpt_ = input.readEnum();
4346 bitField0_ |= 0x02000000;
4347 break;
4348 } // case 288
4349 case 296: {
4350 useExchangeAndMakeActive_ = input.readEnum();
4351 bitField0_ |= 0x00020000;
4352 break;
4353 } // case 296
4354 case 304: {
4355 useExchangePathStartEndsAndMakeActive_ = input.readEnum();
4356 bitField0_ |= 0x00040000;
4357 break;
4358 } // case 304
4359 default: {
4360 if (!super.parseUnknownField(input, extensionRegistry, tag)) {
4361 done = true; // was an endgroup tag
4362 }
4363 break;
4364 } // default:
4365 } // switch (tag)
4366 } // while (!done)
4367 } catch (com.google.protobuf.InvalidProtocolBufferException e) {
4368 throw e.unwrapIOException();
4369 } finally {
4370 onChanged();
4371 } // finally
4372 return this;
4373 }
4374 private int bitField0_;
4375 private int bitField1_;
4376
4377 private int useRelocate_ = 0;
4394 @java.lang.Override public int getUseRelocateValue() {
4395 return useRelocate_;
4396 }
4397
4414 public Builder setUseRelocateValue(int value) {
4415 useRelocate_ = value;
4416 bitField0_ |= 0x00000001;
4417 onChanged();
4418 return this;
4419 }
4420
4436 @java.lang.Override
4438 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useRelocate_);
4439 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
4440 }
4441
4458 public Builder setUseRelocate(com.google.ortools.util.OptionalBoolean value) {
4459 if (value == null) {
4460 throw new NullPointerException();
4461 }
4462 bitField0_ |= 0x00000001;
4463 useRelocate_ = value.getNumber();
4464 onChanged();
4465 return this;
4466 }
4467
4483 public Builder clearUseRelocate() {
4484 bitField0_ = (bitField0_ & ~0x00000001);
4485 useRelocate_ = 0;
4486 onChanged();
4487 return this;
4488 }
4489
4490 private int useRelocatePair_ = 0;
4507 @java.lang.Override public int getUseRelocatePairValue() {
4508 return useRelocatePair_;
4509 }
4510
4527 public Builder setUseRelocatePairValue(int value) {
4528 useRelocatePair_ = value;
4529 bitField0_ |= 0x00000002;
4530 onChanged();
4531 return this;
4532 }
4533
4549 @java.lang.Override
4551 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useRelocatePair_);
4552 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
4553 }
4554
4571 public Builder setUseRelocatePair(com.google.ortools.util.OptionalBoolean value) {
4572 if (value == null) {
4573 throw new NullPointerException();
4574 }
4575 bitField0_ |= 0x00000002;
4576 useRelocatePair_ = value.getNumber();
4577 onChanged();
4578 return this;
4579 }
4580
4596 public Builder clearUseRelocatePair() {
4597 bitField0_ = (bitField0_ & ~0x00000002);
4598 useRelocatePair_ = 0;
4599 onChanged();
4600 return this;
4601 }
4602
4603 private int useLightRelocatePair_ = 0;
4618 @java.lang.Override public int getUseLightRelocatePairValue() {
4619 return useLightRelocatePair_;
4620 }
4621
4636 public Builder setUseLightRelocatePairValue(int value) {
4637 useLightRelocatePair_ = value;
4638 bitField0_ |= 0x00000004;
4639 onChanged();
4640 return this;
4641 }
4642
4656 @java.lang.Override
4658 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useLightRelocatePair_);
4659 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
4660 }
4661
4676 public Builder setUseLightRelocatePair(com.google.ortools.util.OptionalBoolean value) {
4677 if (value == null) {
4678 throw new NullPointerException();
4679 }
4680 bitField0_ |= 0x00000004;
4681 useLightRelocatePair_ = value.getNumber();
4682 onChanged();
4683 return this;
4684 }
4685
4699 public Builder clearUseLightRelocatePair() {
4700 bitField0_ = (bitField0_ & ~0x00000004);
4701 useLightRelocatePair_ = 0;
4702 onChanged();
4703 return this;
4704 }
4705
4706 private int useRelocateNeighbors_ = 0;
4736 @java.lang.Override public int getUseRelocateNeighborsValue() {
4737 return useRelocateNeighbors_;
4738 }
4739
4769 public Builder setUseRelocateNeighborsValue(int value) {
4770 useRelocateNeighbors_ = value;
4771 bitField0_ |= 0x00000008;
4772 onChanged();
4773 return this;
4774 }
4775
4804 @java.lang.Override
4806 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useRelocateNeighbors_);
4807 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
4808 }
4809
4839 public Builder setUseRelocateNeighbors(com.google.ortools.util.OptionalBoolean value) {
4840 if (value == null) {
4841 throw new NullPointerException();
4842 }
4843 bitField0_ |= 0x00000008;
4844 useRelocateNeighbors_ = value.getNumber();
4845 onChanged();
4846 return this;
4847 }
4848
4877 public Builder clearUseRelocateNeighbors() {
4878 bitField0_ = (bitField0_ & ~0x00000008);
4879 useRelocateNeighbors_ = 0;
4880 onChanged();
4881 return this;
4882 }
4883
4884 private int useRelocateSubtrip_ = 0;
4906 @java.lang.Override public int getUseRelocateSubtripValue() {
4907 return useRelocateSubtrip_;
4908 }
4909
4931 public Builder setUseRelocateSubtripValue(int value) {
4932 useRelocateSubtrip_ = value;
4933 bitField0_ |= 0x00000010;
4934 onChanged();
4935 return this;
4936 }
4937
4958 @java.lang.Override
4960 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useRelocateSubtrip_);
4961 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
4962 }
4963
4985 public Builder setUseRelocateSubtrip(com.google.ortools.util.OptionalBoolean value) {
4986 if (value == null) {
4987 throw new NullPointerException();
4988 }
4989 bitField0_ |= 0x00000010;
4990 useRelocateSubtrip_ = value.getNumber();
4991 onChanged();
4992 return this;
4993 }
4994
5015 public Builder clearUseRelocateSubtrip() {
5016 bitField0_ = (bitField0_ & ~0x00000010);
5017 useRelocateSubtrip_ = 0;
5018 onChanged();
5019 return this;
5020 }
5021
5022 private int useExchange_ = 0;
5037 @java.lang.Override public int getUseExchangeValue() {
5038 return useExchange_;
5039 }
5040
5055 public Builder setUseExchangeValue(int value) {
5056 useExchange_ = value;
5057 bitField0_ |= 0x00000020;
5058 onChanged();
5059 return this;
5060 }
5061
5075 @java.lang.Override
5077 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useExchange_);
5078 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
5079 }
5080
5095 public Builder setUseExchange(com.google.ortools.util.OptionalBoolean value) {
5096 if (value == null) {
5097 throw new NullPointerException();
5098 }
5099 bitField0_ |= 0x00000020;
5100 useExchange_ = value.getNumber();
5101 onChanged();
5102 return this;
5103 }
5104
5118 public Builder clearUseExchange() {
5119 bitField0_ = (bitField0_ & ~0x00000020);
5120 useExchange_ = 0;
5121 onChanged();
5122 return this;
5123 }
5124
5125 private int useExchangePair_ = 0;
5140 @java.lang.Override public int getUseExchangePairValue() {
5141 return useExchangePair_;
5142 }
5143
5158 public Builder setUseExchangePairValue(int value) {
5159 useExchangePair_ = value;
5160 bitField0_ |= 0x00000040;
5161 onChanged();
5162 return this;
5163 }
5164
5178 @java.lang.Override
5180 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useExchangePair_);
5181 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
5182 }
5183
5198 public Builder setUseExchangePair(com.google.ortools.util.OptionalBoolean value) {
5199 if (value == null) {
5200 throw new NullPointerException();
5201 }
5202 bitField0_ |= 0x00000040;
5203 useExchangePair_ = value.getNumber();
5204 onChanged();
5205 return this;
5206 }
5207
5221 public Builder clearUseExchangePair() {
5222 bitField0_ = (bitField0_ & ~0x00000040);
5223 useExchangePair_ = 0;
5224 onChanged();
5225 return this;
5226 }
5227
5228 private int useExchangeSubtrip_ = 0;
5238 @java.lang.Override public int getUseExchangeSubtripValue() {
5239 return useExchangeSubtrip_;
5240 }
5241
5251 public Builder setUseExchangeSubtripValue(int value) {
5252 useExchangeSubtrip_ = value;
5253 bitField0_ |= 0x00000080;
5254 onChanged();
5255 return this;
5256 }
5257
5266 @java.lang.Override
5268 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useExchangeSubtrip_);
5269 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
5270 }
5271
5281 public Builder setUseExchangeSubtrip(com.google.ortools.util.OptionalBoolean value) {
5282 if (value == null) {
5283 throw new NullPointerException();
5284 }
5285 bitField0_ |= 0x00000080;
5286 useExchangeSubtrip_ = value.getNumber();
5287 onChanged();
5288 return this;
5289 }
5290
5299 public Builder clearUseExchangeSubtrip() {
5300 bitField0_ = (bitField0_ & ~0x00000080);
5301 useExchangeSubtrip_ = 0;
5302 onChanged();
5303 return this;
5304 }
5305
5306 private int useCross_ = 0;
5323 @java.lang.Override public int getUseCrossValue() {
5324 return useCross_;
5325 }
5326
5343 public Builder setUseCrossValue(int value) {
5344 useCross_ = value;
5345 bitField0_ |= 0x00000100;
5346 onChanged();
5347 return this;
5348 }
5349
5365 @java.lang.Override
5367 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useCross_);
5368 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
5369 }
5370
5387 public Builder setUseCross(com.google.ortools.util.OptionalBoolean value) {
5388 if (value == null) {
5389 throw new NullPointerException();
5390 }
5391 bitField0_ |= 0x00000100;
5392 useCross_ = value.getNumber();
5393 onChanged();
5394 return this;
5395 }
5396
5412 public Builder clearUseCross() {
5413 bitField0_ = (bitField0_ & ~0x00000100);
5414 useCross_ = 0;
5415 onChanged();
5416 return this;
5417 }
5418
5419 private int useCrossExchange_ = 0;
5428 @java.lang.Override public int getUseCrossExchangeValue() {
5429 return useCrossExchange_;
5430 }
5431
5440 public Builder setUseCrossExchangeValue(int value) {
5441 useCrossExchange_ = value;
5442 bitField0_ |= 0x00000200;
5443 onChanged();
5444 return this;
5445 }
5446
5454 @java.lang.Override
5456 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useCrossExchange_);
5457 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
5458 }
5459
5468 public Builder setUseCrossExchange(com.google.ortools.util.OptionalBoolean value) {
5469 if (value == null) {
5470 throw new NullPointerException();
5471 }
5472 bitField0_ |= 0x00000200;
5473 useCrossExchange_ = value.getNumber();
5474 onChanged();
5475 return this;
5476 }
5477
5485 public Builder clearUseCrossExchange() {
5486 bitField0_ = (bitField0_ & ~0x00000200);
5487 useCrossExchange_ = 0;
5488 onChanged();
5489 return this;
5490 }
5491
5492 private int useRelocateExpensiveChain_ = 0;
5510 @java.lang.Override public int getUseRelocateExpensiveChainValue() {
5511 return useRelocateExpensiveChain_;
5512 }
5513
5531 public Builder setUseRelocateExpensiveChainValue(int value) {
5532 useRelocateExpensiveChain_ = value;
5533 bitField0_ |= 0x00000400;
5534 onChanged();
5535 return this;
5536 }
5537
5554 @java.lang.Override
5556 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useRelocateExpensiveChain_);
5557 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
5558 }
5559
5577 public Builder setUseRelocateExpensiveChain(com.google.ortools.util.OptionalBoolean value) {
5578 if (value == null) {
5579 throw new NullPointerException();
5580 }
5581 bitField0_ |= 0x00000400;
5582 useRelocateExpensiveChain_ = value.getNumber();
5583 onChanged();
5584 return this;
5585 }
5586
5604 bitField0_ = (bitField0_ & ~0x00000400);
5605 useRelocateExpensiveChain_ = 0;
5606 onChanged();
5607 return this;
5608 }
5609
5610 private int useTwoOpt_ = 0;
5628 @java.lang.Override public int getUseTwoOptValue() {
5629 return useTwoOpt_;
5630 }
5631
5649 public Builder setUseTwoOptValue(int value) {
5650 useTwoOpt_ = value;
5651 bitField0_ |= 0x00000800;
5652 onChanged();
5653 return this;
5654 }
5655
5672 @java.lang.Override
5674 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useTwoOpt_);
5675 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
5676 }
5677
5695 public Builder setUseTwoOpt(com.google.ortools.util.OptionalBoolean value) {
5696 if (value == null) {
5697 throw new NullPointerException();
5698 }
5699 bitField0_ |= 0x00000800;
5700 useTwoOpt_ = value.getNumber();
5701 onChanged();
5702 return this;
5703 }
5704
5721 public Builder clearUseTwoOpt() {
5722 bitField0_ = (bitField0_ & ~0x00000800);
5723 useTwoOpt_ = 0;
5724 onChanged();
5725 return this;
5726 }
5727
5728 private int useOrOpt_ = 0;
5747 @java.lang.Override public int getUseOrOptValue() {
5748 return useOrOpt_;
5749 }
5750
5769 public Builder setUseOrOptValue(int value) {
5770 useOrOpt_ = value;
5771 bitField0_ |= 0x00001000;
5772 onChanged();
5773 return this;
5774 }
5775
5793 @java.lang.Override
5795 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useOrOpt_);
5796 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
5797 }
5798
5817 public Builder setUseOrOpt(com.google.ortools.util.OptionalBoolean value) {
5818 if (value == null) {
5819 throw new NullPointerException();
5820 }
5821 bitField0_ |= 0x00001000;
5822 useOrOpt_ = value.getNumber();
5823 onChanged();
5824 return this;
5825 }
5826
5844 public Builder clearUseOrOpt() {
5845 bitField0_ = (bitField0_ & ~0x00001000);
5846 useOrOpt_ = 0;
5847 onChanged();
5848 return this;
5849 }
5850
5851 private int useLinKernighan_ = 0;
5863 @java.lang.Override public int getUseLinKernighanValue() {
5864 return useLinKernighan_;
5865 }
5866
5878 public Builder setUseLinKernighanValue(int value) {
5879 useLinKernighan_ = value;
5880 bitField0_ |= 0x00002000;
5881 onChanged();
5882 return this;
5883 }
5884
5895 @java.lang.Override
5897 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useLinKernighan_);
5898 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
5899 }
5900
5912 public Builder setUseLinKernighan(com.google.ortools.util.OptionalBoolean value) {
5913 if (value == null) {
5914 throw new NullPointerException();
5915 }
5916 bitField0_ |= 0x00002000;
5917 useLinKernighan_ = value.getNumber();
5918 onChanged();
5919 return this;
5920 }
5921
5932 public Builder clearUseLinKernighan() {
5933 bitField0_ = (bitField0_ & ~0x00002000);
5934 useLinKernighan_ = 0;
5935 onChanged();
5936 return this;
5937 }
5938
5939 private int useTspOpt_ = 0;
5953 @java.lang.Override public int getUseTspOptValue() {
5954 return useTspOpt_;
5955 }
5956
5970 public Builder setUseTspOptValue(int value) {
5971 useTspOpt_ = value;
5972 bitField0_ |= 0x00004000;
5973 onChanged();
5974 return this;
5975 }
5976
5989 @java.lang.Override
5991 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useTspOpt_);
5992 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
5993 }
5994
6008 public Builder setUseTspOpt(com.google.ortools.util.OptionalBoolean value) {
6009 if (value == null) {
6010 throw new NullPointerException();
6011 }
6012 bitField0_ |= 0x00004000;
6013 useTspOpt_ = value.getNumber();
6014 onChanged();
6015 return this;
6016 }
6017
6030 public Builder clearUseTspOpt() {
6031 bitField0_ = (bitField0_ & ~0x00004000);
6032 useTspOpt_ = 0;
6033 onChanged();
6034 return this;
6035 }
6036
6037 private int useMakeActive_ = 0;
6052 @java.lang.Override public int getUseMakeActiveValue() {
6053 return useMakeActive_;
6054 }
6055
6070 public Builder setUseMakeActiveValue(int value) {
6071 useMakeActive_ = value;
6072 bitField0_ |= 0x00008000;
6073 onChanged();
6074 return this;
6075 }
6076
6090 @java.lang.Override
6092 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useMakeActive_);
6093 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6094 }
6095
6110 public Builder setUseMakeActive(com.google.ortools.util.OptionalBoolean value) {
6111 if (value == null) {
6112 throw new NullPointerException();
6113 }
6114 bitField0_ |= 0x00008000;
6115 useMakeActive_ = value.getNumber();
6116 onChanged();
6117 return this;
6118 }
6119
6133 public Builder clearUseMakeActive() {
6134 bitField0_ = (bitField0_ & ~0x00008000);
6135 useMakeActive_ = 0;
6136 onChanged();
6137 return this;
6138 }
6139
6140 private int useRelocateAndMakeActive_ = 0;
6158 @java.lang.Override public int getUseRelocateAndMakeActiveValue() {
6159 return useRelocateAndMakeActive_;
6160 }
6161
6179 public Builder setUseRelocateAndMakeActiveValue(int value) {
6180 useRelocateAndMakeActive_ = value;
6181 bitField0_ |= 0x00010000;
6182 onChanged();
6183 return this;
6184 }
6185
6202 @java.lang.Override
6204 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useRelocateAndMakeActive_);
6205 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6206 }
6207
6225 public Builder setUseRelocateAndMakeActive(com.google.ortools.util.OptionalBoolean value) {
6226 if (value == null) {
6227 throw new NullPointerException();
6228 }
6229 bitField0_ |= 0x00010000;
6230 useRelocateAndMakeActive_ = value.getNumber();
6231 onChanged();
6232 return this;
6233 }
6234
6252 bitField0_ = (bitField0_ & ~0x00010000);
6253 useRelocateAndMakeActive_ = 0;
6254 onChanged();
6255 return this;
6256 }
6257
6258 private int useExchangeAndMakeActive_ = 0;
6272 @java.lang.Override public int getUseExchangeAndMakeActiveValue() {
6273 return useExchangeAndMakeActive_;
6274 }
6275
6289 public Builder setUseExchangeAndMakeActiveValue(int value) {
6290 useExchangeAndMakeActive_ = value;
6291 bitField0_ |= 0x00020000;
6292 onChanged();
6293 return this;
6294 }
6295
6308 @java.lang.Override
6310 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useExchangeAndMakeActive_);
6311 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6312 }
6313
6327 public Builder setUseExchangeAndMakeActive(com.google.ortools.util.OptionalBoolean value) {
6328 if (value == null) {
6329 throw new NullPointerException();
6330 }
6331 bitField0_ |= 0x00020000;
6332 useExchangeAndMakeActive_ = value.getNumber();
6333 onChanged();
6334 return this;
6335 }
6336
6350 bitField0_ = (bitField0_ & ~0x00020000);
6351 useExchangeAndMakeActive_ = 0;
6352 onChanged();
6353 return this;
6354 }
6355
6356 private int useExchangePathStartEndsAndMakeActive_ = 0;
6373 @java.lang.Override public int getUseExchangePathStartEndsAndMakeActiveValue() {
6374 return useExchangePathStartEndsAndMakeActive_;
6375 }
6376
6394 useExchangePathStartEndsAndMakeActive_ = value;
6395 bitField0_ |= 0x00040000;
6396 onChanged();
6397 return this;
6398 }
6399
6415 @java.lang.Override
6417 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useExchangePathStartEndsAndMakeActive_);
6418 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6419 }
6420
6437 public Builder setUseExchangePathStartEndsAndMakeActive(com.google.ortools.util.OptionalBoolean value) {
6438 if (value == null) {
6439 throw new NullPointerException();
6440 }
6441 bitField0_ |= 0x00040000;
6442 useExchangePathStartEndsAndMakeActive_ = value.getNumber();
6443 onChanged();
6444 return this;
6445 }
6446
6463 bitField0_ = (bitField0_ & ~0x00040000);
6464 useExchangePathStartEndsAndMakeActive_ = 0;
6465 onChanged();
6466 return this;
6467 }
6468
6469 private int useMakeInactive_ = 0;
6482 @java.lang.Override public int getUseMakeInactiveValue() {
6483 return useMakeInactive_;
6484 }
6485
6498 public Builder setUseMakeInactiveValue(int value) {
6499 useMakeInactive_ = value;
6500 bitField0_ |= 0x00080000;
6501 onChanged();
6502 return this;
6503 }
6504
6516 @java.lang.Override
6518 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useMakeInactive_);
6519 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6520 }
6521
6534 public Builder setUseMakeInactive(com.google.ortools.util.OptionalBoolean value) {
6535 if (value == null) {
6536 throw new NullPointerException();
6537 }
6538 bitField0_ |= 0x00080000;
6539 useMakeInactive_ = value.getNumber();
6540 onChanged();
6541 return this;
6542 }
6543
6555 public Builder clearUseMakeInactive() {
6556 bitField0_ = (bitField0_ & ~0x00080000);
6557 useMakeInactive_ = 0;
6558 onChanged();
6559 return this;
6560 }
6561
6562 private int useMakeChainInactive_ = 0;
6576 @java.lang.Override public int getUseMakeChainInactiveValue() {
6577 return useMakeChainInactive_;
6578 }
6579
6593 public Builder setUseMakeChainInactiveValue(int value) {
6594 useMakeChainInactive_ = value;
6595 bitField0_ |= 0x00100000;
6596 onChanged();
6597 return this;
6598 }
6599
6612 @java.lang.Override
6614 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useMakeChainInactive_);
6615 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6616 }
6617
6631 public Builder setUseMakeChainInactive(com.google.ortools.util.OptionalBoolean value) {
6632 if (value == null) {
6633 throw new NullPointerException();
6634 }
6635 bitField0_ |= 0x00100000;
6636 useMakeChainInactive_ = value.getNumber();
6637 onChanged();
6638 return this;
6639 }
6640
6653 public Builder clearUseMakeChainInactive() {
6654 bitField0_ = (bitField0_ & ~0x00100000);
6655 useMakeChainInactive_ = 0;
6656 onChanged();
6657 return this;
6658 }
6659
6660 private int useSwapActive_ = 0;
6673 @java.lang.Override public int getUseSwapActiveValue() {
6674 return useSwapActive_;
6675 }
6676
6689 public Builder setUseSwapActiveValue(int value) {
6690 useSwapActive_ = value;
6691 bitField0_ |= 0x00200000;
6692 onChanged();
6693 return this;
6694 }
6695
6707 @java.lang.Override
6709 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useSwapActive_);
6710 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6711 }
6712
6725 public Builder setUseSwapActive(com.google.ortools.util.OptionalBoolean value) {
6726 if (value == null) {
6727 throw new NullPointerException();
6728 }
6729 bitField0_ |= 0x00200000;
6730 useSwapActive_ = value.getNumber();
6731 onChanged();
6732 return this;
6733 }
6734
6746 public Builder clearUseSwapActive() {
6747 bitField0_ = (bitField0_ & ~0x00200000);
6748 useSwapActive_ = 0;
6749 onChanged();
6750 return this;
6751 }
6752
6753 private int useSwapActiveChain_ = 0;
6767 @java.lang.Override public int getUseSwapActiveChainValue() {
6768 return useSwapActiveChain_;
6769 }
6770
6784 public Builder setUseSwapActiveChainValue(int value) {
6785 useSwapActiveChain_ = value;
6786 bitField0_ |= 0x00400000;
6787 onChanged();
6788 return this;
6789 }
6790
6803 @java.lang.Override
6805 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useSwapActiveChain_);
6806 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6807 }
6808
6822 public Builder setUseSwapActiveChain(com.google.ortools.util.OptionalBoolean value) {
6823 if (value == null) {
6824 throw new NullPointerException();
6825 }
6826 bitField0_ |= 0x00400000;
6827 useSwapActiveChain_ = value.getNumber();
6828 onChanged();
6829 return this;
6830 }
6831
6844 public Builder clearUseSwapActiveChain() {
6845 bitField0_ = (bitField0_ & ~0x00400000);
6846 useSwapActiveChain_ = 0;
6847 onChanged();
6848 return this;
6849 }
6850
6851 private int useExtendedSwapActive_ = 0;
6869 @java.lang.Override public int getUseExtendedSwapActiveValue() {
6870 return useExtendedSwapActive_;
6871 }
6872
6890 public Builder setUseExtendedSwapActiveValue(int value) {
6891 useExtendedSwapActive_ = value;
6892 bitField0_ |= 0x00800000;
6893 onChanged();
6894 return this;
6895 }
6896
6913 @java.lang.Override
6915 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useExtendedSwapActive_);
6916 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6917 }
6918
6936 public Builder setUseExtendedSwapActive(com.google.ortools.util.OptionalBoolean value) {
6937 if (value == null) {
6938 throw new NullPointerException();
6939 }
6940 bitField0_ |= 0x00800000;
6941 useExtendedSwapActive_ = value.getNumber();
6942 onChanged();
6943 return this;
6944 }
6945
6963 bitField0_ = (bitField0_ & ~0x00800000);
6964 useExtendedSwapActive_ = 0;
6965 onChanged();
6966 return this;
6967 }
6968
6969 private int useShortestPathSwapActive_ = 0;
6983 @java.lang.Override public int getUseShortestPathSwapActiveValue() {
6984 return useShortestPathSwapActive_;
6985 }
6986
7000 public Builder setUseShortestPathSwapActiveValue(int value) {
7001 useShortestPathSwapActive_ = value;
7002 bitField0_ |= 0x01000000;
7003 onChanged();
7004 return this;
7005 }
7006
7019 @java.lang.Override
7021 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useShortestPathSwapActive_);
7022 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
7023 }
7024
7038 public Builder setUseShortestPathSwapActive(com.google.ortools.util.OptionalBoolean value) {
7039 if (value == null) {
7040 throw new NullPointerException();
7041 }
7042 bitField0_ |= 0x01000000;
7043 useShortestPathSwapActive_ = value.getNumber();
7044 onChanged();
7045 return this;
7046 }
7047
7061 bitField0_ = (bitField0_ & ~0x01000000);
7062 useShortestPathSwapActive_ = 0;
7063 onChanged();
7064 return this;
7065 }
7066
7067 private int useShortestPathTwoOpt_ = 0;
7077 @java.lang.Override public int getUseShortestPathTwoOptValue() {
7078 return useShortestPathTwoOpt_;
7079 }
7080
7090 public Builder setUseShortestPathTwoOptValue(int value) {
7091 useShortestPathTwoOpt_ = value;
7092 bitField0_ |= 0x02000000;
7093 onChanged();
7094 return this;
7095 }
7096
7105 @java.lang.Override
7107 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useShortestPathTwoOpt_);
7108 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
7109 }
7110
7120 public Builder setUseShortestPathTwoOpt(com.google.ortools.util.OptionalBoolean value) {
7121 if (value == null) {
7122 throw new NullPointerException();
7123 }
7124 bitField0_ |= 0x02000000;
7125 useShortestPathTwoOpt_ = value.getNumber();
7126 onChanged();
7127 return this;
7128 }
7129
7139 bitField0_ = (bitField0_ & ~0x02000000);
7140 useShortestPathTwoOpt_ = 0;
7141 onChanged();
7142 return this;
7143 }
7144
7145 private int useNodePairSwapActive_ = 0;
7164 @java.lang.Override public int getUseNodePairSwapActiveValue() {
7165 return useNodePairSwapActive_;
7166 }
7167
7186 public Builder setUseNodePairSwapActiveValue(int value) {
7187 useNodePairSwapActive_ = value;
7188 bitField0_ |= 0x04000000;
7189 onChanged();
7190 return this;
7191 }
7192
7210 @java.lang.Override
7212 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useNodePairSwapActive_);
7213 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
7214 }
7215
7234 public Builder setUseNodePairSwapActive(com.google.ortools.util.OptionalBoolean value) {
7235 if (value == null) {
7236 throw new NullPointerException();
7237 }
7238 bitField0_ |= 0x04000000;
7239 useNodePairSwapActive_ = value.getNumber();
7240 onChanged();
7241 return this;
7242 }
7243
7262 bitField0_ = (bitField0_ & ~0x04000000);
7263 useNodePairSwapActive_ = 0;
7264 onChanged();
7265 return this;
7266 }
7267
7268 private int usePathLns_ = 0;
7284 @java.lang.Override public int getUsePathLnsValue() {
7285 return usePathLns_;
7286 }
7287
7303 public Builder setUsePathLnsValue(int value) {
7304 usePathLns_ = value;
7305 bitField0_ |= 0x08000000;
7306 onChanged();
7307 return this;
7308 }
7309
7324 @java.lang.Override
7326 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(usePathLns_);
7327 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
7328 }
7329
7345 public Builder setUsePathLns(com.google.ortools.util.OptionalBoolean value) {
7346 if (value == null) {
7347 throw new NullPointerException();
7348 }
7349 bitField0_ |= 0x08000000;
7350 usePathLns_ = value.getNumber();
7351 onChanged();
7352 return this;
7353 }
7354
7369 public Builder clearUsePathLns() {
7370 bitField0_ = (bitField0_ & ~0x08000000);
7371 usePathLns_ = 0;
7372 onChanged();
7373 return this;
7374 }
7375
7376 private int useFullPathLns_ = 0;
7385 @java.lang.Override public int getUseFullPathLnsValue() {
7386 return useFullPathLns_;
7387 }
7388
7397 public Builder setUseFullPathLnsValue(int value) {
7398 useFullPathLns_ = value;
7399 bitField0_ |= 0x10000000;
7400 onChanged();
7401 return this;
7402 }
7403
7411 @java.lang.Override
7413 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useFullPathLns_);
7414 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
7415 }
7416
7425 public Builder setUseFullPathLns(com.google.ortools.util.OptionalBoolean value) {
7426 if (value == null) {
7427 throw new NullPointerException();
7428 }
7429 bitField0_ |= 0x10000000;
7430 useFullPathLns_ = value.getNumber();
7431 onChanged();
7432 return this;
7433 }
7434
7442 public Builder clearUseFullPathLns() {
7443 bitField0_ = (bitField0_ & ~0x10000000);
7444 useFullPathLns_ = 0;
7445 onChanged();
7446 return this;
7447 }
7448
7449 private int useTspLns_ = 0;
7463 @java.lang.Override public int getUseTspLnsValue() {
7464 return useTspLns_;
7465 }
7466
7480 public Builder setUseTspLnsValue(int value) {
7481 useTspLns_ = value;
7482 bitField0_ |= 0x20000000;
7483 onChanged();
7484 return this;
7485 }
7486
7499 @java.lang.Override
7501 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useTspLns_);
7502 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
7503 }
7504
7518 public Builder setUseTspLns(com.google.ortools.util.OptionalBoolean value) {
7519 if (value == null) {
7520 throw new NullPointerException();
7521 }
7522 bitField0_ |= 0x20000000;
7523 useTspLns_ = value.getNumber();
7524 onChanged();
7525 return this;
7526 }
7527
7540 public Builder clearUseTspLns() {
7541 bitField0_ = (bitField0_ & ~0x20000000);
7542 useTspLns_ = 0;
7543 onChanged();
7544 return this;
7545 }
7546
7547 private int useInactiveLns_ = 0;
7558 @java.lang.Override public int getUseInactiveLnsValue() {
7559 return useInactiveLns_;
7560 }
7561
7572 public Builder setUseInactiveLnsValue(int value) {
7573 useInactiveLns_ = value;
7574 bitField0_ |= 0x40000000;
7575 onChanged();
7576 return this;
7577 }
7578
7588 @java.lang.Override
7590 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useInactiveLns_);
7591 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
7592 }
7593
7604 public Builder setUseInactiveLns(com.google.ortools.util.OptionalBoolean value) {
7605 if (value == null) {
7606 throw new NullPointerException();
7607 }
7608 bitField0_ |= 0x40000000;
7609 useInactiveLns_ = value.getNumber();
7610 onChanged();
7611 return this;
7612 }
7613
7623 public Builder clearUseInactiveLns() {
7624 bitField0_ = (bitField0_ & ~0x40000000);
7625 useInactiveLns_ = 0;
7626 onChanged();
7627 return this;
7628 }
7629
7630 private int useGlobalCheapestInsertionPathLns_ = 0;
7641 @java.lang.Override public int getUseGlobalCheapestInsertionPathLnsValue() {
7642 return useGlobalCheapestInsertionPathLns_;
7643 }
7644
7656 useGlobalCheapestInsertionPathLns_ = value;
7657 bitField0_ |= 0x80000000;
7658 onChanged();
7659 return this;
7660 }
7661
7671 @java.lang.Override
7673 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useGlobalCheapestInsertionPathLns_);
7674 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
7675 }
7676
7687 public Builder setUseGlobalCheapestInsertionPathLns(com.google.ortools.util.OptionalBoolean value) {
7688 if (value == null) {
7689 throw new NullPointerException();
7690 }
7691 bitField0_ |= 0x80000000;
7692 useGlobalCheapestInsertionPathLns_ = value.getNumber();
7693 onChanged();
7694 return this;
7695 }
7696
7707 bitField0_ = (bitField0_ & ~0x80000000);
7708 useGlobalCheapestInsertionPathLns_ = 0;
7709 onChanged();
7710 return this;
7711 }
7712
7713 private int useLocalCheapestInsertionPathLns_ = 0;
7722 @java.lang.Override public int getUseLocalCheapestInsertionPathLnsValue() {
7723 return useLocalCheapestInsertionPathLns_;
7724 }
7725
7735 useLocalCheapestInsertionPathLns_ = value;
7736 bitField1_ |= 0x00000001;
7737 onChanged();
7738 return this;
7739 }
7740
7748 @java.lang.Override
7750 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useLocalCheapestInsertionPathLns_);
7751 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
7752 }
7753
7762 public Builder setUseLocalCheapestInsertionPathLns(com.google.ortools.util.OptionalBoolean value) {
7763 if (value == null) {
7764 throw new NullPointerException();
7765 }
7766 bitField1_ |= 0x00000001;
7767 useLocalCheapestInsertionPathLns_ = value.getNumber();
7768 onChanged();
7769 return this;
7770 }
7771
7780 bitField1_ = (bitField1_ & ~0x00000001);
7781 useLocalCheapestInsertionPathLns_ = 0;
7782 onChanged();
7783 return this;
7784 }
7785
7786 private int useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = 0;
7798 return useRelocatePathGlobalCheapestInsertionInsertUnperformed_;
7799 }
7800
7812 useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = value;
7813 bitField1_ |= 0x00000002;
7814 onChanged();
7815 return this;
7816 }
7817
7827 @java.lang.Override
7829 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useRelocatePathGlobalCheapestInsertionInsertUnperformed_);
7830 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
7831 }
7832
7843 public Builder setUseRelocatePathGlobalCheapestInsertionInsertUnperformed(com.google.ortools.util.OptionalBoolean value) {
7844 if (value == null) {
7845 throw new NullPointerException();
7846 }
7847 bitField1_ |= 0x00000002;
7848 useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = value.getNumber();
7849 onChanged();
7850 return this;
7851 }
7852
7863 bitField1_ = (bitField1_ & ~0x00000002);
7864 useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = 0;
7865 onChanged();
7866 return this;
7867 }
7868
7869 private int useGlobalCheapestInsertionExpensiveChainLns_ = 0;
7882 return useGlobalCheapestInsertionExpensiveChainLns_;
7883 }
7884
7897 useGlobalCheapestInsertionExpensiveChainLns_ = value;
7898 bitField1_ |= 0x00000004;
7899 onChanged();
7900 return this;
7901 }
7902
7913 @java.lang.Override
7915 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useGlobalCheapestInsertionExpensiveChainLns_);
7916 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
7917 }
7918
7930 public Builder setUseGlobalCheapestInsertionExpensiveChainLns(com.google.ortools.util.OptionalBoolean value) {
7931 if (value == null) {
7932 throw new NullPointerException();
7933 }
7934 bitField1_ |= 0x00000004;
7935 useGlobalCheapestInsertionExpensiveChainLns_ = value.getNumber();
7936 onChanged();
7937 return this;
7938 }
7939
7951 bitField1_ = (bitField1_ & ~0x00000004);
7952 useGlobalCheapestInsertionExpensiveChainLns_ = 0;
7953 onChanged();
7954 return this;
7955 }
7956
7957 private int useLocalCheapestInsertionExpensiveChainLns_ = 0;
7968 return useLocalCheapestInsertionExpensiveChainLns_;
7969 }
7970
7981 useLocalCheapestInsertionExpensiveChainLns_ = value;
7982 bitField1_ |= 0x00000008;
7983 onChanged();
7984 return this;
7985 }
7986
7995 @java.lang.Override
7997 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useLocalCheapestInsertionExpensiveChainLns_);
7998 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
7999 }
8000
8010 public Builder setUseLocalCheapestInsertionExpensiveChainLns(com.google.ortools.util.OptionalBoolean value) {
8011 if (value == null) {
8012 throw new NullPointerException();
8013 }
8014 bitField1_ |= 0x00000008;
8015 useLocalCheapestInsertionExpensiveChainLns_ = value.getNumber();
8016 onChanged();
8017 return this;
8018 }
8019
8029 bitField1_ = (bitField1_ & ~0x00000008);
8030 useLocalCheapestInsertionExpensiveChainLns_ = 0;
8031 onChanged();
8032 return this;
8033 }
8034
8035 private int useGlobalCheapestInsertionCloseNodesLns_ = 0;
8047 @java.lang.Override public int getUseGlobalCheapestInsertionCloseNodesLnsValue() {
8048 return useGlobalCheapestInsertionCloseNodesLns_;
8049 }
8050
8063 useGlobalCheapestInsertionCloseNodesLns_ = value;
8064 bitField1_ |= 0x00000010;
8065 onChanged();
8066 return this;
8067 }
8068
8079 @java.lang.Override
8081 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useGlobalCheapestInsertionCloseNodesLns_);
8082 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
8083 }
8084
8096 public Builder setUseGlobalCheapestInsertionCloseNodesLns(com.google.ortools.util.OptionalBoolean value) {
8097 if (value == null) {
8098 throw new NullPointerException();
8099 }
8100 bitField1_ |= 0x00000010;
8101 useGlobalCheapestInsertionCloseNodesLns_ = value.getNumber();
8102 onChanged();
8103 return this;
8104 }
8105
8117 bitField1_ = (bitField1_ & ~0x00000010);
8118 useGlobalCheapestInsertionCloseNodesLns_ = 0;
8119 onChanged();
8120 return this;
8121 }
8122
8123 private int useLocalCheapestInsertionCloseNodesLns_ = 0;
8133 @java.lang.Override public int getUseLocalCheapestInsertionCloseNodesLnsValue() {
8134 return useLocalCheapestInsertionCloseNodesLns_;
8135 }
8136
8147 useLocalCheapestInsertionCloseNodesLns_ = value;
8148 bitField1_ |= 0x00000020;
8149 onChanged();
8150 return this;
8151 }
8152
8161 @java.lang.Override
8163 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useLocalCheapestInsertionCloseNodesLns_);
8164 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
8165 }
8166
8176 public Builder setUseLocalCheapestInsertionCloseNodesLns(com.google.ortools.util.OptionalBoolean value) {
8177 if (value == null) {
8178 throw new NullPointerException();
8179 }
8180 bitField1_ |= 0x00000020;
8181 useLocalCheapestInsertionCloseNodesLns_ = value.getNumber();
8182 onChanged();
8183 return this;
8184 }
8185
8195 bitField1_ = (bitField1_ & ~0x00000020);
8196 useLocalCheapestInsertionCloseNodesLns_ = 0;
8197 onChanged();
8198 return this;
8199 }
8200
8201 // @@protoc_insertion_point(builder_scope:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
8202 }
8203
8204 // @@protoc_insertion_point(class_scope:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
8206 static {
8207 DEFAULT_INSTANCE = new com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators();
8208 }
8209
8213
8214 private static final com.google.protobuf.Parser<LocalSearchNeighborhoodOperators>
8215 PARSER = new com.google.protobuf.AbstractParser<LocalSearchNeighborhoodOperators>() {
8216 @java.lang.Override
8217 public LocalSearchNeighborhoodOperators parsePartialFrom(
8218 com.google.protobuf.CodedInputStream input,
8219 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8220 throws com.google.protobuf.InvalidProtocolBufferException {
8221 Builder builder = newBuilder();
8222 try {
8223 builder.mergeFrom(input, extensionRegistry);
8224 } catch (com.google.protobuf.InvalidProtocolBufferException e) {
8225 throw e.setUnfinishedMessage(builder.buildPartial());
8226 } catch (com.google.protobuf.UninitializedMessageException e) {
8227 throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
8228 } catch (java.io.IOException e) {
8229 throw new com.google.protobuf.InvalidProtocolBufferException(e)
8230 .setUnfinishedMessage(builder.buildPartial());
8231 }
8232 return builder.buildPartial();
8233 }
8234 };
8235
8236 public static com.google.protobuf.Parser<LocalSearchNeighborhoodOperators> parser() {
8237 return PARSER;
8238 }
8239
8240 @java.lang.Override
8241 public com.google.protobuf.Parser<LocalSearchNeighborhoodOperators> getParserForType() {
8242 return PARSER;
8243 }
8244
8245 @java.lang.Override
8249
8250 }
8251
8253 // @@protoc_insertion_point(interface_extends:operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters)
8254 com.google.protobuf.MessageOrBuilder {
8255
8267
8281 }
8282
8289 public static final class ImprovementSearchLimitParameters extends
8290 com.google.protobuf.GeneratedMessage implements
8291 // @@protoc_insertion_point(message_implements:operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters)
8293 private static final long serialVersionUID = 0L;
8294 static {
8295 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
8296 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
8297 /* major= */ 4,
8298 /* minor= */ 29,
8299 /* patch= */ 3,
8300 /* suffix= */ "",
8301 ImprovementSearchLimitParameters.class.getName());
8302 }
8303 // Use ImprovementSearchLimitParameters.newBuilder() to construct.
8304 private ImprovementSearchLimitParameters(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
8305 super(builder);
8306 }
8307 private ImprovementSearchLimitParameters() {
8308 }
8309
8310 public static final com.google.protobuf.Descriptors.Descriptor
8312 return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_ImprovementSearchLimitParameters_descriptor;
8313 }
8314
8315 @java.lang.Override
8316 protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
8318 return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_ImprovementSearchLimitParameters_fieldAccessorTable
8319 .ensureFieldAccessorsInitialized(
8320 com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.class, com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.Builder.class);
8321 }
8322
8323 public static final int IMPROVEMENT_RATE_COEFFICIENT_FIELD_NUMBER = 38;
8324 private double improvementRateCoefficient_ = 0D;
8335 @java.lang.Override
8337 return improvementRateCoefficient_;
8338 }
8339
8341 private int improvementRateSolutionsDistance_ = 0;
8354 @java.lang.Override
8356 return improvementRateSolutionsDistance_;
8357 }
8358
8359 private byte memoizedIsInitialized = -1;
8360 @java.lang.Override
8361 public final boolean isInitialized() {
8362 byte isInitialized = memoizedIsInitialized;
8363 if (isInitialized == 1) return true;
8364 if (isInitialized == 0) return false;
8365
8366 memoizedIsInitialized = 1;
8367 return true;
8368 }
8369
8370 @java.lang.Override
8371 public void writeTo(com.google.protobuf.CodedOutputStream output)
8372 throws java.io.IOException {
8373 if (java.lang.Double.doubleToRawLongBits(improvementRateCoefficient_) != 0) {
8374 output.writeDouble(38, improvementRateCoefficient_);
8375 }
8376 if (improvementRateSolutionsDistance_ != 0) {
8377 output.writeInt32(39, improvementRateSolutionsDistance_);
8378 }
8379 getUnknownFields().writeTo(output);
8380 }
8381
8382 @java.lang.Override
8383 public int getSerializedSize() {
8384 int size = memoizedSize;
8385 if (size != -1) return size;
8386
8387 size = 0;
8388 if (java.lang.Double.doubleToRawLongBits(improvementRateCoefficient_) != 0) {
8389 size += com.google.protobuf.CodedOutputStream
8390 .computeDoubleSize(38, improvementRateCoefficient_);
8391 }
8392 if (improvementRateSolutionsDistance_ != 0) {
8393 size += com.google.protobuf.CodedOutputStream
8394 .computeInt32Size(39, improvementRateSolutionsDistance_);
8395 }
8396 size += getUnknownFields().getSerializedSize();
8397 memoizedSize = size;
8398 return size;
8399 }
8400
8401 @java.lang.Override
8402 public boolean equals(final java.lang.Object obj) {
8403 if (obj == this) {
8404 return true;
8405 }
8406 if (!(obj instanceof com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters)) {
8407 return super.equals(obj);
8408 }
8409 com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters other = (com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters) obj;
8410
8411 if (java.lang.Double.doubleToLongBits(getImprovementRateCoefficient())
8412 != java.lang.Double.doubleToLongBits(
8413 other.getImprovementRateCoefficient())) return false;
8415 != other.getImprovementRateSolutionsDistance()) return false;
8416 if (!getUnknownFields().equals(other.getUnknownFields())) return false;
8417 return true;
8418 }
8419
8420 @java.lang.Override
8421 public int hashCode() {
8422 if (memoizedHashCode != 0) {
8423 return memoizedHashCode;
8424 }
8425 int hash = 41;
8426 hash = (19 * hash) + getDescriptor().hashCode();
8427 hash = (37 * hash) + IMPROVEMENT_RATE_COEFFICIENT_FIELD_NUMBER;
8428 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
8429 java.lang.Double.doubleToLongBits(getImprovementRateCoefficient()));
8431 hash = (53 * hash) + getImprovementRateSolutionsDistance();
8432 hash = (29 * hash) + getUnknownFields().hashCode();
8433 memoizedHashCode = hash;
8434 return hash;
8435 }
8436
8438 java.nio.ByteBuffer data)
8439 throws com.google.protobuf.InvalidProtocolBufferException {
8440 return PARSER.parseFrom(data);
8441 }
8443 java.nio.ByteBuffer data,
8444 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8445 throws com.google.protobuf.InvalidProtocolBufferException {
8446 return PARSER.parseFrom(data, extensionRegistry);
8447 }
8449 com.google.protobuf.ByteString data)
8450 throws com.google.protobuf.InvalidProtocolBufferException {
8451 return PARSER.parseFrom(data);
8452 }
8454 com.google.protobuf.ByteString data,
8455 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8456 throws com.google.protobuf.InvalidProtocolBufferException {
8457 return PARSER.parseFrom(data, extensionRegistry);
8458 }
8460 throws com.google.protobuf.InvalidProtocolBufferException {
8461 return PARSER.parseFrom(data);
8462 }
8464 byte[] data,
8465 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8466 throws com.google.protobuf.InvalidProtocolBufferException {
8467 return PARSER.parseFrom(data, extensionRegistry);
8468 }
8470 throws java.io.IOException {
8471 return com.google.protobuf.GeneratedMessage
8472 .parseWithIOException(PARSER, input);
8473 }
8475 java.io.InputStream input,
8476 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8477 throws java.io.IOException {
8478 return com.google.protobuf.GeneratedMessage
8479 .parseWithIOException(PARSER, input, extensionRegistry);
8480 }
8481
8483 throws java.io.IOException {
8484 return com.google.protobuf.GeneratedMessage
8485 .parseDelimitedWithIOException(PARSER, input);
8486 }
8487
8489 java.io.InputStream input,
8490 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8491 throws java.io.IOException {
8492 return com.google.protobuf.GeneratedMessage
8493 .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
8494 }
8496 com.google.protobuf.CodedInputStream input)
8497 throws java.io.IOException {
8498 return com.google.protobuf.GeneratedMessage
8499 .parseWithIOException(PARSER, input);
8500 }
8502 com.google.protobuf.CodedInputStream input,
8503 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8504 throws java.io.IOException {
8505 return com.google.protobuf.GeneratedMessage
8506 .parseWithIOException(PARSER, input, extensionRegistry);
8507 }
8508
8509 @java.lang.Override
8510 public Builder newBuilderForType() { return newBuilder(); }
8511 public static Builder newBuilder() {
8512 return DEFAULT_INSTANCE.toBuilder();
8513 }
8514 public static Builder newBuilder(com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters prototype) {
8515 return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
8516 }
8517 @java.lang.Override
8519 return this == DEFAULT_INSTANCE
8520 ? new Builder() : new Builder().mergeFrom(this);
8521 }
8522
8523 @java.lang.Override
8525 com.google.protobuf.GeneratedMessage.BuilderParent parent) {
8526 Builder builder = new Builder(parent);
8527 return builder;
8528 }
8529
8536 public static final class Builder extends
8537 com.google.protobuf.GeneratedMessage.Builder<Builder> implements
8538 // @@protoc_insertion_point(builder_implements:operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters)
8539 com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParametersOrBuilder {
8540 public static final com.google.protobuf.Descriptors.Descriptor
8542 return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_ImprovementSearchLimitParameters_descriptor;
8543 }
8544
8545 @java.lang.Override
8546 protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
8548 return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_ImprovementSearchLimitParameters_fieldAccessorTable
8549 .ensureFieldAccessorsInitialized(
8550 com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.class, com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.Builder.class);
8551 }
8552
8553 // Construct using com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.newBuilder()
8554 private Builder() {
8555
8556 }
8557
8558 private Builder(
8559 com.google.protobuf.GeneratedMessage.BuilderParent parent) {
8560 super(parent);
8561
8562 }
8563 @java.lang.Override
8564 public Builder clear() {
8565 super.clear();
8566 bitField0_ = 0;
8567 improvementRateCoefficient_ = 0D;
8568 improvementRateSolutionsDistance_ = 0;
8569 return this;
8570 }
8571
8572 @java.lang.Override
8573 public com.google.protobuf.Descriptors.Descriptor
8575 return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_ImprovementSearchLimitParameters_descriptor;
8576 }
8577
8578 @java.lang.Override
8580 return com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.getDefaultInstance();
8581 }
8582
8583 @java.lang.Override
8591
8592 @java.lang.Override
8594 com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters result = new com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters(this);
8595 if (bitField0_ != 0) { buildPartial0(result); }
8596 onBuilt();
8597 return result;
8598 }
8599
8600 private void buildPartial0(com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters result) {
8601 int from_bitField0_ = bitField0_;
8602 if (((from_bitField0_ & 0x00000001) != 0)) {
8603 result.improvementRateCoefficient_ = improvementRateCoefficient_;
8604 }
8605 if (((from_bitField0_ & 0x00000002) != 0)) {
8606 result.improvementRateSolutionsDistance_ = improvementRateSolutionsDistance_;
8607 }
8608 }
8609
8610 @java.lang.Override
8611 public Builder mergeFrom(com.google.protobuf.Message other) {
8612 if (other instanceof com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters) {
8613 return mergeFrom((com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters)other);
8614 } else {
8615 super.mergeFrom(other);
8616 return this;
8617 }
8618 }
8619
8620 public Builder mergeFrom(com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters other) {
8621 if (other == com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.getDefaultInstance()) return this;
8622 if (other.getImprovementRateCoefficient() != 0D) {
8623 setImprovementRateCoefficient(other.getImprovementRateCoefficient());
8624 }
8625 if (other.getImprovementRateSolutionsDistance() != 0) {
8626 setImprovementRateSolutionsDistance(other.getImprovementRateSolutionsDistance());
8627 }
8628 this.mergeUnknownFields(other.getUnknownFields());
8629 onChanged();
8630 return this;
8631 }
8632
8633 @java.lang.Override
8634 public final boolean isInitialized() {
8635 return true;
8636 }
8637
8638 @java.lang.Override
8639 public Builder mergeFrom(
8640 com.google.protobuf.CodedInputStream input,
8641 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8642 throws java.io.IOException {
8643 if (extensionRegistry == null) {
8644 throw new java.lang.NullPointerException();
8645 }
8646 try {
8647 boolean done = false;
8648 while (!done) {
8649 int tag = input.readTag();
8650 switch (tag) {
8651 case 0:
8652 done = true;
8653 break;
8654 case 305: {
8655 improvementRateCoefficient_ = input.readDouble();
8656 bitField0_ |= 0x00000001;
8657 break;
8658 } // case 305
8659 case 312: {
8660 improvementRateSolutionsDistance_ = input.readInt32();
8661 bitField0_ |= 0x00000002;
8662 break;
8663 } // case 312
8664 default: {
8665 if (!super.parseUnknownField(input, extensionRegistry, tag)) {
8666 done = true; // was an endgroup tag
8667 }
8668 break;
8669 } // default:
8670 } // switch (tag)
8671 } // while (!done)
8672 } catch (com.google.protobuf.InvalidProtocolBufferException e) {
8673 throw e.unwrapIOException();
8674 } finally {
8675 onChanged();
8676 } // finally
8677 return this;
8678 }
8679 private int bitField0_;
8680
8681 private double improvementRateCoefficient_ ;
8692 @java.lang.Override
8694 return improvementRateCoefficient_;
8695 }
8696
8707 public Builder setImprovementRateCoefficient(double value) {
8708
8709 improvementRateCoefficient_ = value;
8710 bitField0_ |= 0x00000001;
8711 onChanged();
8712 return this;
8713 }
8714
8725 bitField0_ = (bitField0_ & ~0x00000001);
8726 improvementRateCoefficient_ = 0D;
8727 onChanged();
8728 return this;
8729 }
8730
8731 private int improvementRateSolutionsDistance_ ;
8744 @java.lang.Override
8746 return improvementRateSolutionsDistance_;
8747 }
8748
8761 public Builder setImprovementRateSolutionsDistance(int value) {
8762
8763 improvementRateSolutionsDistance_ = value;
8764 bitField0_ |= 0x00000002;
8765 onChanged();
8766 return this;
8767 }
8768
8781 bitField0_ = (bitField0_ & ~0x00000002);
8782 improvementRateSolutionsDistance_ = 0;
8783 onChanged();
8784 return this;
8785 }
8786
8787 // @@protoc_insertion_point(builder_scope:operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters)
8788 }
8789
8790 // @@protoc_insertion_point(class_scope:operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters)
8792 static {
8793 DEFAULT_INSTANCE = new com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters();
8794 }
8795
8799
8800 private static final com.google.protobuf.Parser<ImprovementSearchLimitParameters>
8801 PARSER = new com.google.protobuf.AbstractParser<ImprovementSearchLimitParameters>() {
8802 @java.lang.Override
8803 public ImprovementSearchLimitParameters parsePartialFrom(
8804 com.google.protobuf.CodedInputStream input,
8805 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8806 throws com.google.protobuf.InvalidProtocolBufferException {
8807 Builder builder = newBuilder();
8808 try {
8809 builder.mergeFrom(input, extensionRegistry);
8810 } catch (com.google.protobuf.InvalidProtocolBufferException e) {
8811 throw e.setUnfinishedMessage(builder.buildPartial());
8812 } catch (com.google.protobuf.UninitializedMessageException e) {
8813 throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
8814 } catch (java.io.IOException e) {
8815 throw new com.google.protobuf.InvalidProtocolBufferException(e)
8816 .setUnfinishedMessage(builder.buildPartial());
8817 }
8818 return builder.buildPartial();
8819 }
8820 };
8821
8822 public static com.google.protobuf.Parser<ImprovementSearchLimitParameters> parser() {
8823 return PARSER;
8824 }
8825
8826 @java.lang.Override
8827 public com.google.protobuf.Parser<ImprovementSearchLimitParameters> getParserForType() {
8828 return PARSER;
8829 }
8830
8831 @java.lang.Override
8835
8836 }
8837
8838 private int bitField0_;
8839 public static final int FIRST_SOLUTION_STRATEGY_FIELD_NUMBER = 1;
8840 private int firstSolutionStrategy_ = 0;
8849 @java.lang.Override public int getFirstSolutionStrategyValue() {
8850 return firstSolutionStrategy_;
8851 }
8852
8861 com.google.ortools.constraintsolver.FirstSolutionStrategy.Value result = com.google.ortools.constraintsolver.FirstSolutionStrategy.Value.forNumber(firstSolutionStrategy_);
8863 }
8864
8866 private boolean useUnfilteredFirstSolutionStrategy_ = false;
8878 @java.lang.Override
8880 return useUnfilteredFirstSolutionStrategy_;
8881 }
8882
8883 public static final int SAVINGS_NEIGHBORS_RATIO_FIELD_NUMBER = 14;
8884 private double savingsNeighborsRatio_ = 0D;
8895 @java.lang.Override
8897 return savingsNeighborsRatio_;
8898 }
8899
8901 private double savingsMaxMemoryUsageBytes_ = 0D;
8915 @java.lang.Override
8917 return savingsMaxMemoryUsageBytes_;
8918 }
8919
8920 public static final int SAVINGS_ADD_REVERSE_ARCS_FIELD_NUMBER = 15;
8921 private boolean savingsAddReverseArcs_ = false;
8931 @java.lang.Override
8932 public boolean getSavingsAddReverseArcs() {
8933 return savingsAddReverseArcs_;
8934 }
8935
8936 public static final int SAVINGS_ARC_COEFFICIENT_FIELD_NUMBER = 18;
8937 private double savingsArcCoefficient_ = 0D;
8950 @java.lang.Override
8952 return savingsArcCoefficient_;
8953 }
8954
8956 private double cheapestInsertionFarthestSeedsRatio_ = 0D;
8967 @java.lang.Override
8969 return cheapestInsertionFarthestSeedsRatio_;
8970 }
8971
8973 private double cheapestInsertionFirstSolutionNeighborsRatio_ = 0D;
8996 @java.lang.Override
8998 return cheapestInsertionFirstSolutionNeighborsRatio_;
8999 }
9000
9002 private int cheapestInsertionFirstSolutionMinNeighbors_ = 0;
9007 @java.lang.Override
9009 return cheapestInsertionFirstSolutionMinNeighbors_;
9010 }
9011
9013 private double cheapestInsertionLsOperatorNeighborsRatio_ = 0D;
9025 @java.lang.Override
9027 return cheapestInsertionLsOperatorNeighborsRatio_;
9028 }
9029
9031 private int cheapestInsertionLsOperatorMinNeighbors_ = 0;
9036 @java.lang.Override
9038 return cheapestInsertionLsOperatorMinNeighbors_;
9039 }
9040
9042 private boolean cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_ = false;
9052 @java.lang.Override
9054 return cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_;
9055 }
9056
9058 private boolean cheapestInsertionAddUnperformedEntries_ = false;
9068 @java.lang.Override
9070 return cheapestInsertionAddUnperformedEntries_;
9071 }
9072
9074 private int localCheapestInsertionPickupDeliveryStrategy_ = 0;
9085 return localCheapestInsertionPickupDeliveryStrategy_;
9086 }
9087
9097 com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy result = com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy.forNumber(localCheapestInsertionPickupDeliveryStrategy_);
9099 }
9100
9102 private int localCheapestCostInsertionPickupDeliveryStrategy_ = 0;
9113 return localCheapestCostInsertionPickupDeliveryStrategy_;
9114 }
9115
9125 com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy result = com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy.forNumber(localCheapestCostInsertionPickupDeliveryStrategy_);
9127 }
9128
9130 @SuppressWarnings("serial")
9131 private com.google.protobuf.Internal.IntList localCheapestInsertionSortingProperties_;
9132 private static final com.google.protobuf.Internal.IntListAdapter.IntConverter<
9133 com.google.ortools.constraintsolver.RoutingSearchParameters.InsertionSortingProperty> localCheapestInsertionSortingProperties_converter_ =
9134 new com.google.protobuf.Internal.IntListAdapter.IntConverter<
9135 com.google.ortools.constraintsolver.RoutingSearchParameters.InsertionSortingProperty>() {
9137 com.google.ortools.constraintsolver.RoutingSearchParameters.InsertionSortingProperty result = com.google.ortools.constraintsolver.RoutingSearchParameters.InsertionSortingProperty.forNumber(from);
9139 }
9140 };
9154 @java.lang.Override
9155 public java.util.List<com.google.ortools.constraintsolver.RoutingSearchParameters.InsertionSortingProperty> getLocalCheapestInsertionSortingPropertiesList() {
9156 return new com.google.protobuf.Internal.IntListAdapter<
9157 com.google.ortools.constraintsolver.RoutingSearchParameters.InsertionSortingProperty>(localCheapestInsertionSortingProperties_, localCheapestInsertionSortingProperties_converter_);
9158 }
9159
9172 @java.lang.Override
9174 return localCheapestInsertionSortingProperties_.size();
9175 }
9176
9190 @java.lang.Override
9192 return localCheapestInsertionSortingProperties_converter_.convert(localCheapestInsertionSortingProperties_.getInt(index));
9193 }
9194
9207 @java.lang.Override
9208 public java.util.List<java.lang.Integer>
9210 return localCheapestInsertionSortingProperties_;
9211 }
9212
9226 @java.lang.Override
9228 return localCheapestInsertionSortingProperties_.getInt(index);
9229 }
9230 private int localCheapestInsertionSortingPropertiesMemoizedSerializedSize;
9231
9233 private boolean christofidesUseMinimumMatching_ = false;
9243 @java.lang.Override
9245 return christofidesUseMinimumMatching_;
9246 }
9247
9249 private int firstSolutionOptimizationPeriod_ = 0;
9264 @java.lang.Override
9266 return firstSolutionOptimizationPeriod_;
9267 }
9268
9269 public static final int LOCAL_SEARCH_OPERATORS_FIELD_NUMBER = 3;
9275 @java.lang.Override
9276 public boolean hasLocalSearchOperators() {
9277 return ((bitField0_ & 0x00000001) != 0);
9278 }
9279
9283 @java.lang.Override
9285 return localSearchOperators_ == null ? com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.getDefaultInstance() : localSearchOperators_;
9286 }
9287
9290 @java.lang.Override
9292 return localSearchOperators_ == null ? com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.getDefaultInstance() : localSearchOperators_;
9293 }
9294
9295 public static final int LS_OPERATOR_NEIGHBORS_RATIO_FIELD_NUMBER = 53;
9296 private double lsOperatorNeighborsRatio_ = 0D;
9307 @java.lang.Override
9309 return lsOperatorNeighborsRatio_;
9310 }
9311
9312 public static final int LS_OPERATOR_MIN_NEIGHBORS_FIELD_NUMBER = 54;
9313 private int lsOperatorMinNeighbors_ = 0;
9318 @java.lang.Override
9320 return lsOperatorMinNeighbors_;
9321 }
9322
9324 private boolean useMultiArmedBanditConcatenateOperators_ = false;
9335 @java.lang.Override
9337 return useMultiArmedBanditConcatenateOperators_;
9338 }
9339
9341 private double multiArmedBanditCompoundOperatorMemoryCoefficient_ = 0D;
9353 @java.lang.Override
9355 return multiArmedBanditCompoundOperatorMemoryCoefficient_;
9356 }
9357
9359 private double multiArmedBanditCompoundOperatorExplorationCoefficient_ = 0D;
9370 @java.lang.Override
9372 return multiArmedBanditCompoundOperatorExplorationCoefficient_;
9373 }
9374
9375 public static final int MAX_SWAP_ACTIVE_CHAIN_SIZE_FIELD_NUMBER = 66;
9376 private int maxSwapActiveChainSize_ = 0;
9385 @java.lang.Override
9387 return maxSwapActiveChainSize_;
9388 }
9389
9391 private int relocateExpensiveChainNumArcsToConsider_ = 0;
9406 @java.lang.Override
9408 return relocateExpensiveChainNumArcsToConsider_;
9409 }
9410
9412 private int heuristicExpensiveChainLnsNumArcsToConsider_ = 0;
9422 @java.lang.Override
9424 return heuristicExpensiveChainLnsNumArcsToConsider_;
9425 }
9426
9428 private int heuristicCloseNodesLnsNumNodes_ = 0;
9438 @java.lang.Override
9440 return heuristicCloseNodesLnsNumNodes_;
9441 }
9442
9443 public static final int LOCAL_SEARCH_METAHEURISTIC_FIELD_NUMBER = 4;
9444 private int localSearchMetaheuristic_ = 0;
9453 @java.lang.Override public int getLocalSearchMetaheuristicValue() {
9454 return localSearchMetaheuristic_;
9455 }
9456
9465 com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value result = com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value.forNumber(localSearchMetaheuristic_);
9467 }
9468
9469 public static final int LOCAL_SEARCH_METAHEURISTICS_FIELD_NUMBER = 63;
9470 @SuppressWarnings("serial")
9471 private com.google.protobuf.Internal.IntList localSearchMetaheuristics_;
9472 private static final com.google.protobuf.Internal.IntListAdapter.IntConverter<
9473 com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value> localSearchMetaheuristics_converter_ =
9474 new com.google.protobuf.Internal.IntListAdapter.IntConverter<
9477 com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value result = com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value.forNumber(from);
9479 }
9480 };
9492 @java.lang.Override
9493 public java.util.List<com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value> getLocalSearchMetaheuristicsList() {
9494 return new com.google.protobuf.Internal.IntListAdapter<
9495 com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value>(localSearchMetaheuristics_, localSearchMetaheuristics_converter_);
9496 }
9497
9508 @java.lang.Override
9510 return localSearchMetaheuristics_.size();
9511 }
9512
9524 @java.lang.Override
9526 return localSearchMetaheuristics_converter_.convert(localSearchMetaheuristics_.getInt(index));
9527 }
9528
9539 @java.lang.Override
9540 public java.util.List<java.lang.Integer>
9542 return localSearchMetaheuristics_;
9543 }
9544
9556 @java.lang.Override
9558 return localSearchMetaheuristics_.getInt(index);
9559 }
9560 private int localSearchMetaheuristicsMemoizedSerializedSize;
9561
9563 private int numMaxLocalOptimaBeforeMetaheuristicSwitch_ = 0;
9568 @java.lang.Override
9570 return numMaxLocalOptimaBeforeMetaheuristicSwitch_;
9571 }
9572
9574 private double guidedLocalSearchLambdaCoefficient_ = 0D;
9586 @java.lang.Override
9588 return guidedLocalSearchLambdaCoefficient_;
9589 }
9590
9592 private boolean guidedLocalSearchResetPenaltiesOnNewBestSolution_ = false;
9602 @java.lang.Override
9604 return guidedLocalSearchResetPenaltiesOnNewBestSolution_;
9605 }
9606
9608 private boolean guidedLocalSearchPenalizeWithVehicleClasses_ = false;
9619 @java.lang.Override
9621 return guidedLocalSearchPenalizeWithVehicleClasses_;
9622 }
9623
9625 private boolean useGuidedLocalSearchPenaltiesInLocalSearchOperators_ = false;
9635 @java.lang.Override
9637 return useGuidedLocalSearchPenaltiesInLocalSearchOperators_;
9638 }
9639
9640 public static final int USE_DEPTH_FIRST_SEARCH_FIELD_NUMBER = 6;
9641 private boolean useDepthFirstSearch_ = false;
9653 @java.lang.Override
9654 public boolean getUseDepthFirstSearch() {
9655 return useDepthFirstSearch_;
9656 }
9657
9658 public static final int USE_CP_FIELD_NUMBER = 28;
9659 private int useCp_ = 0;
9670 @java.lang.Override public int getUseCpValue() {
9671 return useCp_;
9672 }
9673
9684 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useCp_);
9685 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
9686 }
9687
9688 public static final int USE_CP_SAT_FIELD_NUMBER = 27;
9689 private int useCpSat_ = 0;
9701 @java.lang.Override public int getUseCpSatValue() {
9702 return useCpSat_;
9703 }
9704
9716 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useCpSat_);
9717 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
9718 }
9719
9720 public static final int USE_GENERALIZED_CP_SAT_FIELD_NUMBER = 47;
9721 private int useGeneralizedCpSat_ = 0;
9733 @java.lang.Override public int getUseGeneralizedCpSatValue() {
9734 return useGeneralizedCpSat_;
9735 }
9736
9748 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useGeneralizedCpSat_);
9749 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
9750 }
9751
9752 public static final int SAT_PARAMETERS_FIELD_NUMBER = 48;
9753 private com.google.ortools.sat.SatParameters satParameters_;
9763 @java.lang.Override
9764 public boolean hasSatParameters() {
9765 return ((bitField0_ & 0x00000002) != 0);
9766 }
9767
9776 @java.lang.Override
9778 return satParameters_ == null ? com.google.ortools.sat.SatParameters.getDefaultInstance() : satParameters_;
9779 }
9780
9788 @java.lang.Override
9790 return satParameters_ == null ? com.google.ortools.sat.SatParameters.getDefaultInstance() : satParameters_;
9791 }
9792
9794 private boolean reportIntermediateCpSatSolutions_ = false;
9804 @java.lang.Override
9806 return reportIntermediateCpSatSolutions_;
9807 }
9808
9810 private int fallbackToCpSatSizeThreshold_ = 0;
9820 @java.lang.Override
9822 return fallbackToCpSatSizeThreshold_;
9823 }
9824
9825 public static final int CONTINUOUS_SCHEDULING_SOLVER_FIELD_NUMBER = 33;
9826 private int continuousSchedulingSolver_ = 0;
9831 @java.lang.Override public int getContinuousSchedulingSolverValue() {
9832 return continuousSchedulingSolver_;
9833 }
9834
9839 com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver result = com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.forNumber(continuousSchedulingSolver_);
9841 }
9842
9844 private int mixedIntegerSchedulingSolver_ = 0;
9849 @java.lang.Override public int getMixedIntegerSchedulingSolverValue() {
9850 return mixedIntegerSchedulingSolver_;
9851 }
9852
9857 com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver result = com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.forNumber(mixedIntegerSchedulingSolver_);
9859 }
9860
9862 private boolean disableSchedulingBewareThisMayDegradePerformance_ = false;
9872 @java.lang.Override
9874 return ((bitField0_ & 0x00000004) != 0);
9875 }
9876
9885 @java.lang.Override
9887 return disableSchedulingBewareThisMayDegradePerformance_;
9888 }
9889
9890 public static final int OPTIMIZATION_STEP_FIELD_NUMBER = 7;
9891 private double optimizationStep_ = 0D;
9902 @java.lang.Override
9903 public double getOptimizationStep() {
9904 return optimizationStep_;
9905 }
9906
9908 private int numberOfSolutionsToCollect_ = 0;
9918 @java.lang.Override
9920 return numberOfSolutionsToCollect_;
9921 }
9922
9923 public static final int SOLUTION_LIMIT_FIELD_NUMBER = 8;
9924 private long solutionLimit_ = 0L;
9935 @java.lang.Override
9936 public long getSolutionLimit() {
9937 return solutionLimit_;
9938 }
9939
9940 public static final int TIME_LIMIT_FIELD_NUMBER = 9;
9941 private com.google.protobuf.Duration timeLimit_;
9950 @java.lang.Override
9951 public boolean hasTimeLimit() {
9952 return ((bitField0_ & 0x00000008) != 0);
9953 }
9954
9962 @java.lang.Override
9963 public com.google.protobuf.Duration getTimeLimit() {
9964 return timeLimit_ == null ? com.google.protobuf.Duration.getDefaultInstance() : timeLimit_;
9965 }
9966
9973 @java.lang.Override
9974 public com.google.protobuf.DurationOrBuilder getTimeLimitOrBuilder() {
9975 return timeLimit_ == null ? com.google.protobuf.Duration.getDefaultInstance() : timeLimit_;
9976 }
9977
9978 public static final int LNS_TIME_LIMIT_FIELD_NUMBER = 10;
9979 private com.google.protobuf.Duration lnsTimeLimit_;
9989 @java.lang.Override
9990 public boolean hasLnsTimeLimit() {
9991 return ((bitField0_ & 0x00000010) != 0);
9992 }
9993
10002 @java.lang.Override
10003 public com.google.protobuf.Duration getLnsTimeLimit() {
10004 return lnsTimeLimit_ == null ? com.google.protobuf.Duration.getDefaultInstance() : lnsTimeLimit_;
10005 }
10006
10014 @java.lang.Override
10015 public com.google.protobuf.DurationOrBuilder getLnsTimeLimitOrBuilder() {
10016 return lnsTimeLimit_ == null ? com.google.protobuf.Duration.getDefaultInstance() : lnsTimeLimit_;
10017 }
10018
10020 private double secondaryLsTimeLimitRatio_ = 0D;
10034 @java.lang.Override
10036 return secondaryLsTimeLimitRatio_;
10037 }
10038
10039 public static final int IMPROVEMENT_LIMIT_PARAMETERS_FIELD_NUMBER = 37;
10050 @java.lang.Override
10052 return ((bitField0_ & 0x00000020) != 0);
10053 }
10054
10063 @java.lang.Override
10065 return improvementLimitParameters_ == null ? com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.getDefaultInstance() : improvementLimitParameters_;
10066 }
10067
10075 @java.lang.Override
10077 return improvementLimitParameters_ == null ? com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.getDefaultInstance() : improvementLimitParameters_;
10078 }
10079
10080 public static final int USE_FULL_PROPAGATION_FIELD_NUMBER = 11;
10081 private boolean useFullPropagation_ = false;
10099 @java.lang.Override
10100 public boolean getUseFullPropagation() {
10101 return useFullPropagation_;
10102 }
10103
10104 public static final int LOG_SEARCH_FIELD_NUMBER = 13;
10105 private boolean logSearch_ = false;
10126 @java.lang.Override
10127 public boolean getLogSearch() {
10128 return logSearch_;
10129 }
10130
10131 public static final int LOG_COST_SCALING_FACTOR_FIELD_NUMBER = 22;
10132 private double logCostScalingFactor_ = 0D;
10142 @java.lang.Override
10143 public double getLogCostScalingFactor() {
10144 return logCostScalingFactor_;
10145 }
10146
10147 public static final int LOG_COST_OFFSET_FIELD_NUMBER = 29;
10148 private double logCostOffset_ = 0D;
10153 @java.lang.Override
10154 public double getLogCostOffset() {
10155 return logCostOffset_;
10156 }
10157
10158 public static final int LOG_TAG_FIELD_NUMBER = 36;
10159 @SuppressWarnings("serial")
10160 private volatile java.lang.Object logTag_ = "";
10170 @java.lang.Override
10171 public java.lang.String getLogTag() {
10172 java.lang.Object ref = logTag_;
10173 if (ref instanceof java.lang.String) {
10174 return (java.lang.String) ref;
10175 } else {
10176 com.google.protobuf.ByteString bs =
10177 (com.google.protobuf.ByteString) ref;
10178 java.lang.String s = bs.toStringUtf8();
10179 logTag_ = s;
10180 return s;
10181 }
10182 }
10183
10192 @java.lang.Override
10193 public com.google.protobuf.ByteString
10195 java.lang.Object ref = logTag_;
10196 if (ref instanceof java.lang.String) {
10197 com.google.protobuf.ByteString b =
10198 com.google.protobuf.ByteString.copyFromUtf8(
10199 (java.lang.String) ref);
10200 logTag_ = b;
10201 return b;
10202 } else {
10203 return (com.google.protobuf.ByteString) ref;
10204 }
10205 }
10206
10207 public static final int USE_ITERATED_LOCAL_SEARCH_FIELD_NUMBER = 58;
10208 private boolean useIteratedLocalSearch_ = false;
10218 @java.lang.Override
10219 public boolean getUseIteratedLocalSearch() {
10220 return useIteratedLocalSearch_;
10221 }
10222
10224 private com.google.ortools.constraintsolver.IteratedLocalSearchParameters iteratedLocalSearchParameters_;
10233 @java.lang.Override
10235 return ((bitField0_ & 0x00000040) != 0);
10236 }
10237
10245 @java.lang.Override
10247 return iteratedLocalSearchParameters_ == null ? com.google.ortools.constraintsolver.IteratedLocalSearchParameters.getDefaultInstance() : iteratedLocalSearchParameters_;
10248 }
10249
10256 @java.lang.Override
10258 return iteratedLocalSearchParameters_ == null ? com.google.ortools.constraintsolver.IteratedLocalSearchParameters.getDefaultInstance() : iteratedLocalSearchParameters_;
10259 }
10260
10261 private byte memoizedIsInitialized = -1;
10262 @java.lang.Override
10263 public final boolean isInitialized() {
10264 byte isInitialized = memoizedIsInitialized;
10265 if (isInitialized == 1) return true;
10266 if (isInitialized == 0) return false;
10267
10268 memoizedIsInitialized = 1;
10269 return true;
10270 }
10271
10272 @java.lang.Override
10273 public void writeTo(com.google.protobuf.CodedOutputStream output)
10274 throws java.io.IOException {
10276 if (firstSolutionStrategy_ != com.google.ortools.constraintsolver.FirstSolutionStrategy.Value.UNSET.getNumber()) {
10277 output.writeEnum(1, firstSolutionStrategy_);
10278 }
10279 if (useUnfilteredFirstSolutionStrategy_ != false) {
10280 output.writeBool(2, useUnfilteredFirstSolutionStrategy_);
10281 }
10282 if (((bitField0_ & 0x00000001) != 0)) {
10283 output.writeMessage(3, getLocalSearchOperators());
10284 }
10285 if (localSearchMetaheuristic_ != com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value.UNSET.getNumber()) {
10286 output.writeEnum(4, localSearchMetaheuristic_);
10287 }
10288 if (java.lang.Double.doubleToRawLongBits(guidedLocalSearchLambdaCoefficient_) != 0) {
10289 output.writeDouble(5, guidedLocalSearchLambdaCoefficient_);
10290 }
10291 if (useDepthFirstSearch_ != false) {
10292 output.writeBool(6, useDepthFirstSearch_);
10293 }
10294 if (java.lang.Double.doubleToRawLongBits(optimizationStep_) != 0) {
10295 output.writeDouble(7, optimizationStep_);
10296 }
10297 if (solutionLimit_ != 0L) {
10298 output.writeInt64(8, solutionLimit_);
10299 }
10300 if (((bitField0_ & 0x00000008) != 0)) {
10301 output.writeMessage(9, getTimeLimit());
10302 }
10303 if (((bitField0_ & 0x00000010) != 0)) {
10304 output.writeMessage(10, getLnsTimeLimit());
10305 }
10306 if (useFullPropagation_ != false) {
10307 output.writeBool(11, useFullPropagation_);
10308 }
10309 if (logSearch_ != false) {
10310 output.writeBool(13, logSearch_);
10311 }
10312 if (java.lang.Double.doubleToRawLongBits(savingsNeighborsRatio_) != 0) {
10313 output.writeDouble(14, savingsNeighborsRatio_);
10314 }
10315 if (savingsAddReverseArcs_ != false) {
10316 output.writeBool(15, savingsAddReverseArcs_);
10317 }
10318 if (java.lang.Double.doubleToRawLongBits(cheapestInsertionFarthestSeedsRatio_) != 0) {
10319 output.writeDouble(16, cheapestInsertionFarthestSeedsRatio_);
10320 }
10321 if (numberOfSolutionsToCollect_ != 0) {
10322 output.writeInt32(17, numberOfSolutionsToCollect_);
10323 }
10324 if (java.lang.Double.doubleToRawLongBits(savingsArcCoefficient_) != 0) {
10325 output.writeDouble(18, savingsArcCoefficient_);
10326 }
10327 if (relocateExpensiveChainNumArcsToConsider_ != 0) {
10328 output.writeInt32(20, relocateExpensiveChainNumArcsToConsider_);
10329 }
10330 if (java.lang.Double.doubleToRawLongBits(cheapestInsertionFirstSolutionNeighborsRatio_) != 0) {
10331 output.writeDouble(21, cheapestInsertionFirstSolutionNeighborsRatio_);
10332 }
10333 if (java.lang.Double.doubleToRawLongBits(logCostScalingFactor_) != 0) {
10334 output.writeDouble(22, logCostScalingFactor_);
10335 }
10336 if (java.lang.Double.doubleToRawLongBits(savingsMaxMemoryUsageBytes_) != 0) {
10337 output.writeDouble(23, savingsMaxMemoryUsageBytes_);
10338 }
10339 if (useCpSat_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
10340 output.writeEnum(27, useCpSat_);
10341 }
10342 if (useCp_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
10343 output.writeEnum(28, useCp_);
10344 }
10345 if (java.lang.Double.doubleToRawLongBits(logCostOffset_) != 0) {
10346 output.writeDouble(29, logCostOffset_);
10347 }
10348 if (christofidesUseMinimumMatching_ != false) {
10349 output.writeBool(30, christofidesUseMinimumMatching_);
10350 }
10351 if (java.lang.Double.doubleToRawLongBits(cheapestInsertionLsOperatorNeighborsRatio_) != 0) {
10352 output.writeDouble(31, cheapestInsertionLsOperatorNeighborsRatio_);
10353 }
10354 if (heuristicExpensiveChainLnsNumArcsToConsider_ != 0) {
10355 output.writeInt32(32, heuristicExpensiveChainLnsNumArcsToConsider_);
10356 }
10357 if (continuousSchedulingSolver_ != com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.SCHEDULING_UNSET.getNumber()) {
10358 output.writeEnum(33, continuousSchedulingSolver_);
10359 }
10360 if (mixedIntegerSchedulingSolver_ != com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.SCHEDULING_UNSET.getNumber()) {
10361 output.writeEnum(34, mixedIntegerSchedulingSolver_);
10362 }
10363 if (heuristicCloseNodesLnsNumNodes_ != 0) {
10364 output.writeInt32(35, heuristicCloseNodesLnsNumNodes_);
10365 }
10366 if (!com.google.protobuf.GeneratedMessage.isStringEmpty(logTag_)) {
10367 com.google.protobuf.GeneratedMessage.writeString(output, 36, logTag_);
10368 }
10369 if (((bitField0_ & 0x00000020) != 0)) {
10370 output.writeMessage(37, getImprovementLimitParameters());
10371 }
10372 if (cheapestInsertionAddUnperformedEntries_ != false) {
10373 output.writeBool(40, cheapestInsertionAddUnperformedEntries_);
10374 }
10375 if (useMultiArmedBanditConcatenateOperators_ != false) {
10376 output.writeBool(41, useMultiArmedBanditConcatenateOperators_);
10377 }
10378 if (java.lang.Double.doubleToRawLongBits(multiArmedBanditCompoundOperatorMemoryCoefficient_) != 0) {
10379 output.writeDouble(42, multiArmedBanditCompoundOperatorMemoryCoefficient_);
10380 }
10381 if (java.lang.Double.doubleToRawLongBits(multiArmedBanditCompoundOperatorExplorationCoefficient_) != 0) {
10382 output.writeDouble(43, multiArmedBanditCompoundOperatorExplorationCoefficient_);
10383 }
10384 if (cheapestInsertionFirstSolutionMinNeighbors_ != 0) {
10385 output.writeInt32(44, cheapestInsertionFirstSolutionMinNeighbors_);
10386 }
10387 if (cheapestInsertionLsOperatorMinNeighbors_ != 0) {
10388 output.writeInt32(45, cheapestInsertionLsOperatorMinNeighbors_);
10389 }
10390 if (cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_ != false) {
10391 output.writeBool(46, cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_);
10392 }
10393 if (useGeneralizedCpSat_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
10394 output.writeEnum(47, useGeneralizedCpSat_);
10395 }
10396 if (((bitField0_ & 0x00000002) != 0)) {
10397 output.writeMessage(48, getSatParameters());
10398 }
10399 if (localCheapestInsertionPickupDeliveryStrategy_ != com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy.AUTOMATIC.getNumber()) {
10400 output.writeEnum(49, localCheapestInsertionPickupDeliveryStrategy_);
10401 }
10402 if (((bitField0_ & 0x00000004) != 0)) {
10403 output.writeBool(50, disableSchedulingBewareThisMayDegradePerformance_);
10404 }
10405 if (guidedLocalSearchResetPenaltiesOnNewBestSolution_ != false) {
10406 output.writeBool(51, guidedLocalSearchResetPenaltiesOnNewBestSolution_);
10407 }
10408 if (fallbackToCpSatSizeThreshold_ != 0) {
10409 output.writeInt32(52, fallbackToCpSatSizeThreshold_);
10410 }
10411 if (java.lang.Double.doubleToRawLongBits(lsOperatorNeighborsRatio_) != 0) {
10412 output.writeDouble(53, lsOperatorNeighborsRatio_);
10413 }
10414 if (lsOperatorMinNeighbors_ != 0) {
10415 output.writeInt32(54, lsOperatorMinNeighbors_);
10416 }
10417 if (localCheapestCostInsertionPickupDeliveryStrategy_ != com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy.AUTOMATIC.getNumber()) {
10418 output.writeEnum(55, localCheapestCostInsertionPickupDeliveryStrategy_);
10419 }
10420 if (reportIntermediateCpSatSolutions_ != false) {
10421 output.writeBool(56, reportIntermediateCpSatSolutions_);
10422 }
10423 if (java.lang.Double.doubleToRawLongBits(secondaryLsTimeLimitRatio_) != 0) {
10424 output.writeDouble(57, secondaryLsTimeLimitRatio_);
10425 }
10426 if (useIteratedLocalSearch_ != false) {
10427 output.writeBool(58, useIteratedLocalSearch_);
10428 }
10429 if (firstSolutionOptimizationPeriod_ != 0) {
10430 output.writeInt32(59, firstSolutionOptimizationPeriod_);
10431 }
10432 if (((bitField0_ & 0x00000040) != 0)) {
10433 output.writeMessage(60, getIteratedLocalSearchParameters());
10434 }
10435 if (guidedLocalSearchPenalizeWithVehicleClasses_ != false) {
10436 output.writeBool(61, guidedLocalSearchPenalizeWithVehicleClasses_);
10437 }
10438 if (useGuidedLocalSearchPenaltiesInLocalSearchOperators_ != false) {
10439 output.writeBool(62, useGuidedLocalSearchPenaltiesInLocalSearchOperators_);
10440 }
10441 if (getLocalSearchMetaheuristicsList().size() > 0) {
10442 output.writeUInt32NoTag(506);
10443 output.writeUInt32NoTag(localSearchMetaheuristicsMemoizedSerializedSize);
10444 }
10445 for (int i = 0; i < localSearchMetaheuristics_.size(); i++) {
10446 output.writeEnumNoTag(localSearchMetaheuristics_.getInt(i));
10447 }
10448 if (numMaxLocalOptimaBeforeMetaheuristicSwitch_ != 0) {
10449 output.writeInt32(64, numMaxLocalOptimaBeforeMetaheuristicSwitch_);
10450 }
10451 if (maxSwapActiveChainSize_ != 0) {
10452 output.writeInt32(66, maxSwapActiveChainSize_);
10453 }
10455 output.writeUInt32NoTag(538);
10456 output.writeUInt32NoTag(localCheapestInsertionSortingPropertiesMemoizedSerializedSize);
10457 }
10458 for (int i = 0; i < localCheapestInsertionSortingProperties_.size(); i++) {
10459 output.writeEnumNoTag(localCheapestInsertionSortingProperties_.getInt(i));
10460 }
10461 getUnknownFields().writeTo(output);
10462 }
10463
10464 @java.lang.Override
10465 public int getSerializedSize() {
10466 int size = memoizedSize;
10467 if (size != -1) return size;
10468
10469 size = 0;
10470 if (firstSolutionStrategy_ != com.google.ortools.constraintsolver.FirstSolutionStrategy.Value.UNSET.getNumber()) {
10471 size += com.google.protobuf.CodedOutputStream
10472 .computeEnumSize(1, firstSolutionStrategy_);
10473 }
10474 if (useUnfilteredFirstSolutionStrategy_ != false) {
10475 size += com.google.protobuf.CodedOutputStream
10476 .computeBoolSize(2, useUnfilteredFirstSolutionStrategy_);
10477 }
10478 if (((bitField0_ & 0x00000001) != 0)) {
10479 size += com.google.protobuf.CodedOutputStream
10480 .computeMessageSize(3, getLocalSearchOperators());
10481 }
10482 if (localSearchMetaheuristic_ != com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value.UNSET.getNumber()) {
10483 size += com.google.protobuf.CodedOutputStream
10484 .computeEnumSize(4, localSearchMetaheuristic_);
10485 }
10486 if (java.lang.Double.doubleToRawLongBits(guidedLocalSearchLambdaCoefficient_) != 0) {
10487 size += com.google.protobuf.CodedOutputStream
10488 .computeDoubleSize(5, guidedLocalSearchLambdaCoefficient_);
10489 }
10490 if (useDepthFirstSearch_ != false) {
10491 size += com.google.protobuf.CodedOutputStream
10492 .computeBoolSize(6, useDepthFirstSearch_);
10493 }
10494 if (java.lang.Double.doubleToRawLongBits(optimizationStep_) != 0) {
10495 size += com.google.protobuf.CodedOutputStream
10496 .computeDoubleSize(7, optimizationStep_);
10497 }
10498 if (solutionLimit_ != 0L) {
10499 size += com.google.protobuf.CodedOutputStream
10500 .computeInt64Size(8, solutionLimit_);
10501 }
10502 if (((bitField0_ & 0x00000008) != 0)) {
10503 size += com.google.protobuf.CodedOutputStream
10504 .computeMessageSize(9, getTimeLimit());
10505 }
10506 if (((bitField0_ & 0x00000010) != 0)) {
10507 size += com.google.protobuf.CodedOutputStream
10508 .computeMessageSize(10, getLnsTimeLimit());
10509 }
10510 if (useFullPropagation_ != false) {
10511 size += com.google.protobuf.CodedOutputStream
10512 .computeBoolSize(11, useFullPropagation_);
10513 }
10514 if (logSearch_ != false) {
10515 size += com.google.protobuf.CodedOutputStream
10516 .computeBoolSize(13, logSearch_);
10517 }
10518 if (java.lang.Double.doubleToRawLongBits(savingsNeighborsRatio_) != 0) {
10519 size += com.google.protobuf.CodedOutputStream
10520 .computeDoubleSize(14, savingsNeighborsRatio_);
10521 }
10522 if (savingsAddReverseArcs_ != false) {
10523 size += com.google.protobuf.CodedOutputStream
10524 .computeBoolSize(15, savingsAddReverseArcs_);
10525 }
10526 if (java.lang.Double.doubleToRawLongBits(cheapestInsertionFarthestSeedsRatio_) != 0) {
10527 size += com.google.protobuf.CodedOutputStream
10528 .computeDoubleSize(16, cheapestInsertionFarthestSeedsRatio_);
10529 }
10530 if (numberOfSolutionsToCollect_ != 0) {
10531 size += com.google.protobuf.CodedOutputStream
10532 .computeInt32Size(17, numberOfSolutionsToCollect_);
10533 }
10534 if (java.lang.Double.doubleToRawLongBits(savingsArcCoefficient_) != 0) {
10535 size += com.google.protobuf.CodedOutputStream
10536 .computeDoubleSize(18, savingsArcCoefficient_);
10537 }
10538 if (relocateExpensiveChainNumArcsToConsider_ != 0) {
10539 size += com.google.protobuf.CodedOutputStream
10540 .computeInt32Size(20, relocateExpensiveChainNumArcsToConsider_);
10541 }
10542 if (java.lang.Double.doubleToRawLongBits(cheapestInsertionFirstSolutionNeighborsRatio_) != 0) {
10543 size += com.google.protobuf.CodedOutputStream
10544 .computeDoubleSize(21, cheapestInsertionFirstSolutionNeighborsRatio_);
10545 }
10546 if (java.lang.Double.doubleToRawLongBits(logCostScalingFactor_) != 0) {
10547 size += com.google.protobuf.CodedOutputStream
10548 .computeDoubleSize(22, logCostScalingFactor_);
10549 }
10550 if (java.lang.Double.doubleToRawLongBits(savingsMaxMemoryUsageBytes_) != 0) {
10551 size += com.google.protobuf.CodedOutputStream
10552 .computeDoubleSize(23, savingsMaxMemoryUsageBytes_);
10553 }
10554 if (useCpSat_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
10555 size += com.google.protobuf.CodedOutputStream
10556 .computeEnumSize(27, useCpSat_);
10557 }
10558 if (useCp_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
10559 size += com.google.protobuf.CodedOutputStream
10560 .computeEnumSize(28, useCp_);
10561 }
10562 if (java.lang.Double.doubleToRawLongBits(logCostOffset_) != 0) {
10563 size += com.google.protobuf.CodedOutputStream
10564 .computeDoubleSize(29, logCostOffset_);
10565 }
10566 if (christofidesUseMinimumMatching_ != false) {
10567 size += com.google.protobuf.CodedOutputStream
10568 .computeBoolSize(30, christofidesUseMinimumMatching_);
10569 }
10570 if (java.lang.Double.doubleToRawLongBits(cheapestInsertionLsOperatorNeighborsRatio_) != 0) {
10571 size += com.google.protobuf.CodedOutputStream
10572 .computeDoubleSize(31, cheapestInsertionLsOperatorNeighborsRatio_);
10573 }
10574 if (heuristicExpensiveChainLnsNumArcsToConsider_ != 0) {
10575 size += com.google.protobuf.CodedOutputStream
10576 .computeInt32Size(32, heuristicExpensiveChainLnsNumArcsToConsider_);
10577 }
10578 if (continuousSchedulingSolver_ != com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.SCHEDULING_UNSET.getNumber()) {
10579 size += com.google.protobuf.CodedOutputStream
10580 .computeEnumSize(33, continuousSchedulingSolver_);
10581 }
10582 if (mixedIntegerSchedulingSolver_ != com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.SCHEDULING_UNSET.getNumber()) {
10583 size += com.google.protobuf.CodedOutputStream
10584 .computeEnumSize(34, mixedIntegerSchedulingSolver_);
10585 }
10586 if (heuristicCloseNodesLnsNumNodes_ != 0) {
10587 size += com.google.protobuf.CodedOutputStream
10588 .computeInt32Size(35, heuristicCloseNodesLnsNumNodes_);
10589 }
10590 if (!com.google.protobuf.GeneratedMessage.isStringEmpty(logTag_)) {
10591 size += com.google.protobuf.GeneratedMessage.computeStringSize(36, logTag_);
10592 }
10593 if (((bitField0_ & 0x00000020) != 0)) {
10594 size += com.google.protobuf.CodedOutputStream
10595 .computeMessageSize(37, getImprovementLimitParameters());
10596 }
10597 if (cheapestInsertionAddUnperformedEntries_ != false) {
10598 size += com.google.protobuf.CodedOutputStream
10599 .computeBoolSize(40, cheapestInsertionAddUnperformedEntries_);
10600 }
10601 if (useMultiArmedBanditConcatenateOperators_ != false) {
10602 size += com.google.protobuf.CodedOutputStream
10603 .computeBoolSize(41, useMultiArmedBanditConcatenateOperators_);
10604 }
10605 if (java.lang.Double.doubleToRawLongBits(multiArmedBanditCompoundOperatorMemoryCoefficient_) != 0) {
10606 size += com.google.protobuf.CodedOutputStream
10607 .computeDoubleSize(42, multiArmedBanditCompoundOperatorMemoryCoefficient_);
10608 }
10609 if (java.lang.Double.doubleToRawLongBits(multiArmedBanditCompoundOperatorExplorationCoefficient_) != 0) {
10610 size += com.google.protobuf.CodedOutputStream
10611 .computeDoubleSize(43, multiArmedBanditCompoundOperatorExplorationCoefficient_);
10612 }
10613 if (cheapestInsertionFirstSolutionMinNeighbors_ != 0) {
10614 size += com.google.protobuf.CodedOutputStream
10615 .computeInt32Size(44, cheapestInsertionFirstSolutionMinNeighbors_);
10616 }
10617 if (cheapestInsertionLsOperatorMinNeighbors_ != 0) {
10618 size += com.google.protobuf.CodedOutputStream
10619 .computeInt32Size(45, cheapestInsertionLsOperatorMinNeighbors_);
10620 }
10621 if (cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_ != false) {
10622 size += com.google.protobuf.CodedOutputStream
10623 .computeBoolSize(46, cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_);
10624 }
10625 if (useGeneralizedCpSat_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
10626 size += com.google.protobuf.CodedOutputStream
10627 .computeEnumSize(47, useGeneralizedCpSat_);
10628 }
10629 if (((bitField0_ & 0x00000002) != 0)) {
10630 size += com.google.protobuf.CodedOutputStream
10631 .computeMessageSize(48, getSatParameters());
10632 }
10633 if (localCheapestInsertionPickupDeliveryStrategy_ != com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy.AUTOMATIC.getNumber()) {
10634 size += com.google.protobuf.CodedOutputStream
10635 .computeEnumSize(49, localCheapestInsertionPickupDeliveryStrategy_);
10636 }
10637 if (((bitField0_ & 0x00000004) != 0)) {
10638 size += com.google.protobuf.CodedOutputStream
10639 .computeBoolSize(50, disableSchedulingBewareThisMayDegradePerformance_);
10640 }
10641 if (guidedLocalSearchResetPenaltiesOnNewBestSolution_ != false) {
10642 size += com.google.protobuf.CodedOutputStream
10643 .computeBoolSize(51, guidedLocalSearchResetPenaltiesOnNewBestSolution_);
10644 }
10645 if (fallbackToCpSatSizeThreshold_ != 0) {
10646 size += com.google.protobuf.CodedOutputStream
10647 .computeInt32Size(52, fallbackToCpSatSizeThreshold_);
10648 }
10649 if (java.lang.Double.doubleToRawLongBits(lsOperatorNeighborsRatio_) != 0) {
10650 size += com.google.protobuf.CodedOutputStream
10651 .computeDoubleSize(53, lsOperatorNeighborsRatio_);
10652 }
10653 if (lsOperatorMinNeighbors_ != 0) {
10654 size += com.google.protobuf.CodedOutputStream
10655 .computeInt32Size(54, lsOperatorMinNeighbors_);
10656 }
10657 if (localCheapestCostInsertionPickupDeliveryStrategy_ != com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy.AUTOMATIC.getNumber()) {
10658 size += com.google.protobuf.CodedOutputStream
10659 .computeEnumSize(55, localCheapestCostInsertionPickupDeliveryStrategy_);
10660 }
10661 if (reportIntermediateCpSatSolutions_ != false) {
10662 size += com.google.protobuf.CodedOutputStream
10663 .computeBoolSize(56, reportIntermediateCpSatSolutions_);
10664 }
10665 if (java.lang.Double.doubleToRawLongBits(secondaryLsTimeLimitRatio_) != 0) {
10666 size += com.google.protobuf.CodedOutputStream
10667 .computeDoubleSize(57, secondaryLsTimeLimitRatio_);
10668 }
10669 if (useIteratedLocalSearch_ != false) {
10670 size += com.google.protobuf.CodedOutputStream
10671 .computeBoolSize(58, useIteratedLocalSearch_);
10672 }
10673 if (firstSolutionOptimizationPeriod_ != 0) {
10674 size += com.google.protobuf.CodedOutputStream
10675 .computeInt32Size(59, firstSolutionOptimizationPeriod_);
10676 }
10677 if (((bitField0_ & 0x00000040) != 0)) {
10678 size += com.google.protobuf.CodedOutputStream
10679 .computeMessageSize(60, getIteratedLocalSearchParameters());
10680 }
10681 if (guidedLocalSearchPenalizeWithVehicleClasses_ != false) {
10682 size += com.google.protobuf.CodedOutputStream
10683 .computeBoolSize(61, guidedLocalSearchPenalizeWithVehicleClasses_);
10684 }
10685 if (useGuidedLocalSearchPenaltiesInLocalSearchOperators_ != false) {
10686 size += com.google.protobuf.CodedOutputStream
10687 .computeBoolSize(62, useGuidedLocalSearchPenaltiesInLocalSearchOperators_);
10688 }
10689 {
10690 int dataSize = 0;
10691 for (int i = 0; i < localSearchMetaheuristics_.size(); i++) {
10692 dataSize += com.google.protobuf.CodedOutputStream
10693 .computeEnumSizeNoTag(localSearchMetaheuristics_.getInt(i));
10694 }
10695 size += dataSize;
10696 if (!getLocalSearchMetaheuristicsList().isEmpty()) { size += 2;
10697 size += com.google.protobuf.CodedOutputStream
10698 .computeUInt32SizeNoTag(dataSize);
10699 }localSearchMetaheuristicsMemoizedSerializedSize = dataSize;
10700 }
10701 if (numMaxLocalOptimaBeforeMetaheuristicSwitch_ != 0) {
10702 size += com.google.protobuf.CodedOutputStream
10703 .computeInt32Size(64, numMaxLocalOptimaBeforeMetaheuristicSwitch_);
10704 }
10705 if (maxSwapActiveChainSize_ != 0) {
10706 size += com.google.protobuf.CodedOutputStream
10707 .computeInt32Size(66, maxSwapActiveChainSize_);
10708 }
10709 {
10710 int dataSize = 0;
10711 for (int i = 0; i < localCheapestInsertionSortingProperties_.size(); i++) {
10712 dataSize += com.google.protobuf.CodedOutputStream
10713 .computeEnumSizeNoTag(localCheapestInsertionSortingProperties_.getInt(i));
10714 }
10715 size += dataSize;
10716 if (!getLocalCheapestInsertionSortingPropertiesList().isEmpty()) { size += 2;
10717 size += com.google.protobuf.CodedOutputStream
10718 .computeUInt32SizeNoTag(dataSize);
10719 }localCheapestInsertionSortingPropertiesMemoizedSerializedSize = dataSize;
10720 }
10721 size += getUnknownFields().getSerializedSize();
10722 memoizedSize = size;
10723 return size;
10724 }
10725
10726 @java.lang.Override
10727 public boolean equals(final java.lang.Object obj) {
10728 if (obj == this) {
10729 return true;
10730 }
10731 if (!(obj instanceof com.google.ortools.constraintsolver.RoutingSearchParameters)) {
10732 return super.equals(obj);
10733 }
10734 com.google.ortools.constraintsolver.RoutingSearchParameters other = (com.google.ortools.constraintsolver.RoutingSearchParameters) obj;
10735
10736 if (firstSolutionStrategy_ != other.firstSolutionStrategy_) return false;
10738 != other.getUseUnfilteredFirstSolutionStrategy()) return false;
10739 if (java.lang.Double.doubleToLongBits(getSavingsNeighborsRatio())
10740 != java.lang.Double.doubleToLongBits(
10741 other.getSavingsNeighborsRatio())) return false;
10742 if (java.lang.Double.doubleToLongBits(getSavingsMaxMemoryUsageBytes())
10743 != java.lang.Double.doubleToLongBits(
10744 other.getSavingsMaxMemoryUsageBytes())) return false;
10746 != other.getSavingsAddReverseArcs()) return false;
10747 if (java.lang.Double.doubleToLongBits(getSavingsArcCoefficient())
10748 != java.lang.Double.doubleToLongBits(
10749 other.getSavingsArcCoefficient())) return false;
10750 if (java.lang.Double.doubleToLongBits(getCheapestInsertionFarthestSeedsRatio())
10751 != java.lang.Double.doubleToLongBits(
10752 other.getCheapestInsertionFarthestSeedsRatio())) return false;
10753 if (java.lang.Double.doubleToLongBits(getCheapestInsertionFirstSolutionNeighborsRatio())
10754 != java.lang.Double.doubleToLongBits(
10757 != other.getCheapestInsertionFirstSolutionMinNeighbors()) return false;
10758 if (java.lang.Double.doubleToLongBits(getCheapestInsertionLsOperatorNeighborsRatio())
10759 != java.lang.Double.doubleToLongBits(
10760 other.getCheapestInsertionLsOperatorNeighborsRatio())) return false;
10762 != other.getCheapestInsertionLsOperatorMinNeighbors()) return false;
10766 != other.getCheapestInsertionAddUnperformedEntries()) return false;
10767 if (localCheapestInsertionPickupDeliveryStrategy_ != other.localCheapestInsertionPickupDeliveryStrategy_) return false;
10768 if (localCheapestCostInsertionPickupDeliveryStrategy_ != other.localCheapestCostInsertionPickupDeliveryStrategy_) return false;
10769 if (!localCheapestInsertionSortingProperties_.equals(other.localCheapestInsertionSortingProperties_)) return false;
10771 != other.getChristofidesUseMinimumMatching()) return false;
10773 != other.getFirstSolutionOptimizationPeriod()) return false;
10774 if (hasLocalSearchOperators() != other.hasLocalSearchOperators()) return false;
10777 .equals(other.getLocalSearchOperators())) return false;
10778 }
10779 if (java.lang.Double.doubleToLongBits(getLsOperatorNeighborsRatio())
10780 != java.lang.Double.doubleToLongBits(
10781 other.getLsOperatorNeighborsRatio())) return false;
10783 != other.getLsOperatorMinNeighbors()) return false;
10785 != other.getUseMultiArmedBanditConcatenateOperators()) return false;
10786 if (java.lang.Double.doubleToLongBits(getMultiArmedBanditCompoundOperatorMemoryCoefficient())
10787 != java.lang.Double.doubleToLongBits(
10789 if (java.lang.Double.doubleToLongBits(getMultiArmedBanditCompoundOperatorExplorationCoefficient())
10790 != java.lang.Double.doubleToLongBits(
10793 != other.getMaxSwapActiveChainSize()) return false;
10795 != other.getRelocateExpensiveChainNumArcsToConsider()) return false;
10797 != other.getHeuristicExpensiveChainLnsNumArcsToConsider()) return false;
10799 != other.getHeuristicCloseNodesLnsNumNodes()) return false;
10800 if (localSearchMetaheuristic_ != other.localSearchMetaheuristic_) return false;
10801 if (!localSearchMetaheuristics_.equals(other.localSearchMetaheuristics_)) return false;
10803 != other.getNumMaxLocalOptimaBeforeMetaheuristicSwitch()) return false;
10804 if (java.lang.Double.doubleToLongBits(getGuidedLocalSearchLambdaCoefficient())
10805 != java.lang.Double.doubleToLongBits(
10806 other.getGuidedLocalSearchLambdaCoefficient())) return false;
10810 != other.getGuidedLocalSearchPenalizeWithVehicleClasses()) return false;
10814 != other.getUseDepthFirstSearch()) return false;
10815 if (useCp_ != other.useCp_) return false;
10816 if (useCpSat_ != other.useCpSat_) return false;
10817 if (useGeneralizedCpSat_ != other.useGeneralizedCpSat_) return false;
10818 if (hasSatParameters() != other.hasSatParameters()) return false;
10819 if (hasSatParameters()) {
10820 if (!getSatParameters()
10821 .equals(other.getSatParameters())) return false;
10822 }
10824 != other.getReportIntermediateCpSatSolutions()) return false;
10826 != other.getFallbackToCpSatSizeThreshold()) return false;
10827 if (continuousSchedulingSolver_ != other.continuousSchedulingSolver_) return false;
10828 if (mixedIntegerSchedulingSolver_ != other.mixedIntegerSchedulingSolver_) return false;
10833 }
10834 if (java.lang.Double.doubleToLongBits(getOptimizationStep())
10835 != java.lang.Double.doubleToLongBits(
10836 other.getOptimizationStep())) return false;
10838 != other.getNumberOfSolutionsToCollect()) return false;
10839 if (getSolutionLimit()
10840 != other.getSolutionLimit()) return false;
10841 if (hasTimeLimit() != other.hasTimeLimit()) return false;
10842 if (hasTimeLimit()) {
10843 if (!getTimeLimit()
10844 .equals(other.getTimeLimit())) return false;
10845 }
10846 if (hasLnsTimeLimit() != other.hasLnsTimeLimit()) return false;
10847 if (hasLnsTimeLimit()) {
10848 if (!getLnsTimeLimit()
10849 .equals(other.getLnsTimeLimit())) return false;
10850 }
10851 if (java.lang.Double.doubleToLongBits(getSecondaryLsTimeLimitRatio())
10852 != java.lang.Double.doubleToLongBits(
10853 other.getSecondaryLsTimeLimitRatio())) return false;
10854 if (hasImprovementLimitParameters() != other.hasImprovementLimitParameters()) return false;
10857 .equals(other.getImprovementLimitParameters())) return false;
10858 }
10860 != other.getUseFullPropagation()) return false;
10861 if (getLogSearch()
10862 != other.getLogSearch()) return false;
10863 if (java.lang.Double.doubleToLongBits(getLogCostScalingFactor())
10864 != java.lang.Double.doubleToLongBits(
10865 other.getLogCostScalingFactor())) return false;
10866 if (java.lang.Double.doubleToLongBits(getLogCostOffset())
10867 != java.lang.Double.doubleToLongBits(
10868 other.getLogCostOffset())) return false;
10869 if (!getLogTag()
10870 .equals(other.getLogTag())) return false;
10872 != other.getUseIteratedLocalSearch()) return false;
10876 .equals(other.getIteratedLocalSearchParameters())) return false;
10877 }
10878 if (!getUnknownFields().equals(other.getUnknownFields())) return false;
10879 return true;
10880 }
10881
10882 @java.lang.Override
10883 public int hashCode() {
10884 if (memoizedHashCode != 0) {
10885 return memoizedHashCode;
10886 }
10887 int hash = 41;
10888 hash = (19 * hash) + getDescriptor().hashCode();
10889 hash = (37 * hash) + FIRST_SOLUTION_STRATEGY_FIELD_NUMBER;
10890 hash = (53 * hash) + firstSolutionStrategy_;
10892 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10894 hash = (37 * hash) + SAVINGS_NEIGHBORS_RATIO_FIELD_NUMBER;
10895 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
10896 java.lang.Double.doubleToLongBits(getSavingsNeighborsRatio()));
10898 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
10899 java.lang.Double.doubleToLongBits(getSavingsMaxMemoryUsageBytes()));
10900 hash = (37 * hash) + SAVINGS_ADD_REVERSE_ARCS_FIELD_NUMBER;
10901 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10903 hash = (37 * hash) + SAVINGS_ARC_COEFFICIENT_FIELD_NUMBER;
10904 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
10905 java.lang.Double.doubleToLongBits(getSavingsArcCoefficient()));
10907 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
10908 java.lang.Double.doubleToLongBits(getCheapestInsertionFarthestSeedsRatio()));
10910 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
10911 java.lang.Double.doubleToLongBits(getCheapestInsertionFirstSolutionNeighborsRatio()));
10913 hash = (53 * hash) + getCheapestInsertionFirstSolutionMinNeighbors();
10915 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
10916 java.lang.Double.doubleToLongBits(getCheapestInsertionLsOperatorNeighborsRatio()));
10918 hash = (53 * hash) + getCheapestInsertionLsOperatorMinNeighbors();
10920 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10923 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10926 hash = (53 * hash) + localCheapestInsertionPickupDeliveryStrategy_;
10928 hash = (53 * hash) + localCheapestCostInsertionPickupDeliveryStrategy_;
10931 hash = (53 * hash) + localCheapestInsertionSortingProperties_.hashCode();
10932 }
10934 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10937 hash = (53 * hash) + getFirstSolutionOptimizationPeriod();
10939 hash = (37 * hash) + LOCAL_SEARCH_OPERATORS_FIELD_NUMBER;
10940 hash = (53 * hash) + getLocalSearchOperators().hashCode();
10941 }
10942 hash = (37 * hash) + LS_OPERATOR_NEIGHBORS_RATIO_FIELD_NUMBER;
10943 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
10944 java.lang.Double.doubleToLongBits(getLsOperatorNeighborsRatio()));
10945 hash = (37 * hash) + LS_OPERATOR_MIN_NEIGHBORS_FIELD_NUMBER;
10946 hash = (53 * hash) + getLsOperatorMinNeighbors();
10948 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10951 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
10952 java.lang.Double.doubleToLongBits(getMultiArmedBanditCompoundOperatorMemoryCoefficient()));
10954 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
10955 java.lang.Double.doubleToLongBits(getMultiArmedBanditCompoundOperatorExplorationCoefficient()));
10956 hash = (37 * hash) + MAX_SWAP_ACTIVE_CHAIN_SIZE_FIELD_NUMBER;
10957 hash = (53 * hash) + getMaxSwapActiveChainSize();
10959 hash = (53 * hash) + getRelocateExpensiveChainNumArcsToConsider();
10963 hash = (53 * hash) + getHeuristicCloseNodesLnsNumNodes();
10964 hash = (37 * hash) + LOCAL_SEARCH_METAHEURISTIC_FIELD_NUMBER;
10965 hash = (53 * hash) + localSearchMetaheuristic_;
10967 hash = (37 * hash) + LOCAL_SEARCH_METAHEURISTICS_FIELD_NUMBER;
10968 hash = (53 * hash) + localSearchMetaheuristics_.hashCode();
10969 }
10971 hash = (53 * hash) + getNumMaxLocalOptimaBeforeMetaheuristicSwitch();
10973 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
10974 java.lang.Double.doubleToLongBits(getGuidedLocalSearchLambdaCoefficient()));
10976 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10979 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10982 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10984 hash = (37 * hash) + USE_DEPTH_FIRST_SEARCH_FIELD_NUMBER;
10985 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10987 hash = (37 * hash) + USE_CP_FIELD_NUMBER;
10988 hash = (53 * hash) + useCp_;
10989 hash = (37 * hash) + USE_CP_SAT_FIELD_NUMBER;
10990 hash = (53 * hash) + useCpSat_;
10991 hash = (37 * hash) + USE_GENERALIZED_CP_SAT_FIELD_NUMBER;
10992 hash = (53 * hash) + useGeneralizedCpSat_;
10993 if (hasSatParameters()) {
10994 hash = (37 * hash) + SAT_PARAMETERS_FIELD_NUMBER;
10995 hash = (53 * hash) + getSatParameters().hashCode();
10996 }
10998 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
11001 hash = (53 * hash) + getFallbackToCpSatSizeThreshold();
11002 hash = (37 * hash) + CONTINUOUS_SCHEDULING_SOLVER_FIELD_NUMBER;
11003 hash = (53 * hash) + continuousSchedulingSolver_;
11005 hash = (53 * hash) + mixedIntegerSchedulingSolver_;
11008 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
11010 }
11011 hash = (37 * hash) + OPTIMIZATION_STEP_FIELD_NUMBER;
11012 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
11013 java.lang.Double.doubleToLongBits(getOptimizationStep()));
11015 hash = (53 * hash) + getNumberOfSolutionsToCollect();
11016 hash = (37 * hash) + SOLUTION_LIMIT_FIELD_NUMBER;
11017 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
11019 if (hasTimeLimit()) {
11020 hash = (37 * hash) + TIME_LIMIT_FIELD_NUMBER;
11021 hash = (53 * hash) + getTimeLimit().hashCode();
11022 }
11023 if (hasLnsTimeLimit()) {
11024 hash = (37 * hash) + LNS_TIME_LIMIT_FIELD_NUMBER;
11025 hash = (53 * hash) + getLnsTimeLimit().hashCode();
11026 }
11027 hash = (37 * hash) + SECONDARY_LS_TIME_LIMIT_RATIO_FIELD_NUMBER;
11028 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
11029 java.lang.Double.doubleToLongBits(getSecondaryLsTimeLimitRatio()));
11031 hash = (37 * hash) + IMPROVEMENT_LIMIT_PARAMETERS_FIELD_NUMBER;
11032 hash = (53 * hash) + getImprovementLimitParameters().hashCode();
11033 }
11034 hash = (37 * hash) + USE_FULL_PROPAGATION_FIELD_NUMBER;
11035 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
11037 hash = (37 * hash) + LOG_SEARCH_FIELD_NUMBER;
11038 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
11039 getLogSearch());
11040 hash = (37 * hash) + LOG_COST_SCALING_FACTOR_FIELD_NUMBER;
11041 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
11042 java.lang.Double.doubleToLongBits(getLogCostScalingFactor()));
11043 hash = (37 * hash) + LOG_COST_OFFSET_FIELD_NUMBER;
11044 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
11045 java.lang.Double.doubleToLongBits(getLogCostOffset()));
11046 hash = (37 * hash) + LOG_TAG_FIELD_NUMBER;
11047 hash = (53 * hash) + getLogTag().hashCode();
11048 hash = (37 * hash) + USE_ITERATED_LOCAL_SEARCH_FIELD_NUMBER;
11049 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
11053 hash = (53 * hash) + getIteratedLocalSearchParameters().hashCode();
11054 }
11055 hash = (29 * hash) + getUnknownFields().hashCode();
11056 memoizedHashCode = hash;
11057 return hash;
11058 }
11059
11061 java.nio.ByteBuffer data)
11062 throws com.google.protobuf.InvalidProtocolBufferException {
11063 return PARSER.parseFrom(data);
11064 }
11066 java.nio.ByteBuffer data,
11067 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
11068 throws com.google.protobuf.InvalidProtocolBufferException {
11069 return PARSER.parseFrom(data, extensionRegistry);
11070 }
11072 com.google.protobuf.ByteString data)
11073 throws com.google.protobuf.InvalidProtocolBufferException {
11074 return PARSER.parseFrom(data);
11075 }
11077 com.google.protobuf.ByteString data,
11078 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
11079 throws com.google.protobuf.InvalidProtocolBufferException {
11080 return PARSER.parseFrom(data, extensionRegistry);
11081 }
11083 throws com.google.protobuf.InvalidProtocolBufferException {
11084 return PARSER.parseFrom(data);
11085 }
11087 byte[] data,
11088 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
11089 throws com.google.protobuf.InvalidProtocolBufferException {
11090 return PARSER.parseFrom(data, extensionRegistry);
11091 }
11093 throws java.io.IOException {
11094 return com.google.protobuf.GeneratedMessage
11095 .parseWithIOException(PARSER, input);
11096 }
11098 java.io.InputStream input,
11099 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
11100 throws java.io.IOException {
11101 return com.google.protobuf.GeneratedMessage
11102 .parseWithIOException(PARSER, input, extensionRegistry);
11103 }
11104
11106 throws java.io.IOException {
11107 return com.google.protobuf.GeneratedMessage
11108 .parseDelimitedWithIOException(PARSER, input);
11109 }
11110
11112 java.io.InputStream input,
11113 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
11114 throws java.io.IOException {
11115 return com.google.protobuf.GeneratedMessage
11116 .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
11117 }
11119 com.google.protobuf.CodedInputStream input)
11120 throws java.io.IOException {
11121 return com.google.protobuf.GeneratedMessage
11122 .parseWithIOException(PARSER, input);
11123 }
11125 com.google.protobuf.CodedInputStream input,
11126 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
11127 throws java.io.IOException {
11128 return com.google.protobuf.GeneratedMessage
11129 .parseWithIOException(PARSER, input, extensionRegistry);
11130 }
11131
11132 @java.lang.Override
11133 public Builder newBuilderForType() { return newBuilder(); }
11134 public static Builder newBuilder() {
11135 return DEFAULT_INSTANCE.toBuilder();
11136 }
11137 public static Builder newBuilder(com.google.ortools.constraintsolver.RoutingSearchParameters prototype) {
11138 return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
11139 }
11140 @java.lang.Override
11142 return this == DEFAULT_INSTANCE
11143 ? new Builder() : new Builder().mergeFrom(this);
11144 }
11145
11146 @java.lang.Override
11148 com.google.protobuf.GeneratedMessage.BuilderParent parent) {
11149 Builder builder = new Builder(parent);
11150 return builder;
11151 }
11152
11165 public static final class Builder extends
11166 com.google.protobuf.GeneratedMessage.Builder<Builder> implements
11167 // @@protoc_insertion_point(builder_implements:operations_research.RoutingSearchParameters)
11169 public static final com.google.protobuf.Descriptors.Descriptor
11171 return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_descriptor;
11172 }
11173
11174 @java.lang.Override
11175 protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
11177 return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_fieldAccessorTable
11178 .ensureFieldAccessorsInitialized(
11179 com.google.ortools.constraintsolver.RoutingSearchParameters.class, com.google.ortools.constraintsolver.RoutingSearchParameters.Builder.class);
11180 }
11181
11182 // Construct using com.google.ortools.constraintsolver.RoutingSearchParameters.newBuilder()
11183 private Builder() {
11184 maybeForceBuilderInitialization();
11185 }
11186
11187 private Builder(
11188 com.google.protobuf.GeneratedMessage.BuilderParent parent) {
11189 super(parent);
11190 maybeForceBuilderInitialization();
11191 }
11192 private void maybeForceBuilderInitialization() {
11193 if (com.google.protobuf.GeneratedMessage
11194 .alwaysUseFieldBuilders) {
11195 getLocalSearchOperatorsFieldBuilder();
11196 getSatParametersFieldBuilder();
11197 getTimeLimitFieldBuilder();
11198 getLnsTimeLimitFieldBuilder();
11199 getImprovementLimitParametersFieldBuilder();
11200 getIteratedLocalSearchParametersFieldBuilder();
11201 }
11202 }
11203 @java.lang.Override
11204 public Builder clear() {
11205 super.clear();
11206 bitField0_ = 0;
11207 bitField1_ = 0;
11208 firstSolutionStrategy_ = 0;
11209 useUnfilteredFirstSolutionStrategy_ = false;
11210 savingsNeighborsRatio_ = 0D;
11211 savingsMaxMemoryUsageBytes_ = 0D;
11212 savingsAddReverseArcs_ = false;
11213 savingsArcCoefficient_ = 0D;
11214 cheapestInsertionFarthestSeedsRatio_ = 0D;
11215 cheapestInsertionFirstSolutionNeighborsRatio_ = 0D;
11216 cheapestInsertionFirstSolutionMinNeighbors_ = 0;
11217 cheapestInsertionLsOperatorNeighborsRatio_ = 0D;
11218 cheapestInsertionLsOperatorMinNeighbors_ = 0;
11219 cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_ = false;
11220 cheapestInsertionAddUnperformedEntries_ = false;
11221 localCheapestInsertionPickupDeliveryStrategy_ = 0;
11222 localCheapestCostInsertionPickupDeliveryStrategy_ = 0;
11223 localCheapestInsertionSortingProperties_ = emptyIntList();
11224 bitField0_ = (bitField0_ & ~0x00008000);
11225 christofidesUseMinimumMatching_ = false;
11226 firstSolutionOptimizationPeriod_ = 0;
11227 localSearchOperators_ = null;
11228 if (localSearchOperatorsBuilder_ != null) {
11229 localSearchOperatorsBuilder_.dispose();
11230 localSearchOperatorsBuilder_ = null;
11231 }
11232 lsOperatorNeighborsRatio_ = 0D;
11233 lsOperatorMinNeighbors_ = 0;
11234 useMultiArmedBanditConcatenateOperators_ = false;
11235 multiArmedBanditCompoundOperatorMemoryCoefficient_ = 0D;
11236 multiArmedBanditCompoundOperatorExplorationCoefficient_ = 0D;
11237 maxSwapActiveChainSize_ = 0;
11238 relocateExpensiveChainNumArcsToConsider_ = 0;
11239 heuristicExpensiveChainLnsNumArcsToConsider_ = 0;
11240 heuristicCloseNodesLnsNumNodes_ = 0;
11241 localSearchMetaheuristic_ = 0;
11242 localSearchMetaheuristics_ = emptyIntList();
11243 bitField0_ = (bitField0_ & ~0x20000000);
11244 numMaxLocalOptimaBeforeMetaheuristicSwitch_ = 0;
11245 guidedLocalSearchLambdaCoefficient_ = 0D;
11246 guidedLocalSearchResetPenaltiesOnNewBestSolution_ = false;
11247 guidedLocalSearchPenalizeWithVehicleClasses_ = false;
11248 useGuidedLocalSearchPenaltiesInLocalSearchOperators_ = false;
11249 useDepthFirstSearch_ = false;
11250 useCp_ = 0;
11251 useCpSat_ = 0;
11252 useGeneralizedCpSat_ = 0;
11253 satParameters_ = null;
11254 if (satParametersBuilder_ != null) {
11255 satParametersBuilder_.dispose();
11256 satParametersBuilder_ = null;
11257 }
11258 reportIntermediateCpSatSolutions_ = false;
11259 fallbackToCpSatSizeThreshold_ = 0;
11260 continuousSchedulingSolver_ = 0;
11261 mixedIntegerSchedulingSolver_ = 0;
11262 disableSchedulingBewareThisMayDegradePerformance_ = false;
11263 optimizationStep_ = 0D;
11264 numberOfSolutionsToCollect_ = 0;
11265 solutionLimit_ = 0L;
11266 timeLimit_ = null;
11267 if (timeLimitBuilder_ != null) {
11268 timeLimitBuilder_.dispose();
11269 timeLimitBuilder_ = null;
11270 }
11271 lnsTimeLimit_ = null;
11272 if (lnsTimeLimitBuilder_ != null) {
11273 lnsTimeLimitBuilder_.dispose();
11274 lnsTimeLimitBuilder_ = null;
11275 }
11276 secondaryLsTimeLimitRatio_ = 0D;
11277 improvementLimitParameters_ = null;
11278 if (improvementLimitParametersBuilder_ != null) {
11279 improvementLimitParametersBuilder_.dispose();
11280 improvementLimitParametersBuilder_ = null;
11281 }
11282 useFullPropagation_ = false;
11283 logSearch_ = false;
11284 logCostScalingFactor_ = 0D;
11285 logCostOffset_ = 0D;
11286 logTag_ = "";
11287 useIteratedLocalSearch_ = false;
11288 iteratedLocalSearchParameters_ = null;
11289 if (iteratedLocalSearchParametersBuilder_ != null) {
11290 iteratedLocalSearchParametersBuilder_.dispose();
11291 iteratedLocalSearchParametersBuilder_ = null;
11292 }
11293 return this;
11294 }
11295
11296 @java.lang.Override
11297 public com.google.protobuf.Descriptors.Descriptor
11299 return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_descriptor;
11300 }
11301
11302 @java.lang.Override
11304 return com.google.ortools.constraintsolver.RoutingSearchParameters.getDefaultInstance();
11305 }
11306
11307 @java.lang.Override
11310 if (!result.isInitialized()) {
11311 throw newUninitializedMessageException(result);
11312 }
11313 return result;
11314 }
11315
11316 @java.lang.Override
11318 com.google.ortools.constraintsolver.RoutingSearchParameters result = new com.google.ortools.constraintsolver.RoutingSearchParameters(this);
11319 buildPartialRepeatedFields(result);
11320 if (bitField0_ != 0) { buildPartial0(result); }
11321 if (bitField1_ != 0) { buildPartial1(result); }
11322 onBuilt();
11323 return result;
11324 }
11325
11326 private void buildPartialRepeatedFields(com.google.ortools.constraintsolver.RoutingSearchParameters result) {
11327 if (((bitField0_ & 0x00008000) != 0)) {
11328 localCheapestInsertionSortingProperties_.makeImmutable();
11329 bitField0_ = (bitField0_ & ~0x00008000);
11330 }
11331 result.localCheapestInsertionSortingProperties_ = localCheapestInsertionSortingProperties_;
11332 if (((bitField0_ & 0x20000000) != 0)) {
11333 localSearchMetaheuristics_.makeImmutable();
11334 bitField0_ = (bitField0_ & ~0x20000000);
11335 }
11336 result.localSearchMetaheuristics_ = localSearchMetaheuristics_;
11337 }
11338
11339 private void buildPartial0(com.google.ortools.constraintsolver.RoutingSearchParameters result) {
11340 int from_bitField0_ = bitField0_;
11341 if (((from_bitField0_ & 0x00000001) != 0)) {
11342 result.firstSolutionStrategy_ = firstSolutionStrategy_;
11343 }
11344 if (((from_bitField0_ & 0x00000002) != 0)) {
11345 result.useUnfilteredFirstSolutionStrategy_ = useUnfilteredFirstSolutionStrategy_;
11346 }
11347 if (((from_bitField0_ & 0x00000004) != 0)) {
11348 result.savingsNeighborsRatio_ = savingsNeighborsRatio_;
11349 }
11350 if (((from_bitField0_ & 0x00000008) != 0)) {
11351 result.savingsMaxMemoryUsageBytes_ = savingsMaxMemoryUsageBytes_;
11352 }
11353 if (((from_bitField0_ & 0x00000010) != 0)) {
11354 result.savingsAddReverseArcs_ = savingsAddReverseArcs_;
11355 }
11356 if (((from_bitField0_ & 0x00000020) != 0)) {
11357 result.savingsArcCoefficient_ = savingsArcCoefficient_;
11358 }
11359 if (((from_bitField0_ & 0x00000040) != 0)) {
11360 result.cheapestInsertionFarthestSeedsRatio_ = cheapestInsertionFarthestSeedsRatio_;
11361 }
11362 if (((from_bitField0_ & 0x00000080) != 0)) {
11363 result.cheapestInsertionFirstSolutionNeighborsRatio_ = cheapestInsertionFirstSolutionNeighborsRatio_;
11364 }
11365 if (((from_bitField0_ & 0x00000100) != 0)) {
11366 result.cheapestInsertionFirstSolutionMinNeighbors_ = cheapestInsertionFirstSolutionMinNeighbors_;
11367 }
11368 if (((from_bitField0_ & 0x00000200) != 0)) {
11369 result.cheapestInsertionLsOperatorNeighborsRatio_ = cheapestInsertionLsOperatorNeighborsRatio_;
11370 }
11371 if (((from_bitField0_ & 0x00000400) != 0)) {
11372 result.cheapestInsertionLsOperatorMinNeighbors_ = cheapestInsertionLsOperatorMinNeighbors_;
11373 }
11374 if (((from_bitField0_ & 0x00000800) != 0)) {
11375 result.cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_ = cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_;
11376 }
11377 if (((from_bitField0_ & 0x00001000) != 0)) {
11378 result.cheapestInsertionAddUnperformedEntries_ = cheapestInsertionAddUnperformedEntries_;
11379 }
11380 if (((from_bitField0_ & 0x00002000) != 0)) {
11381 result.localCheapestInsertionPickupDeliveryStrategy_ = localCheapestInsertionPickupDeliveryStrategy_;
11382 }
11383 if (((from_bitField0_ & 0x00004000) != 0)) {
11384 result.localCheapestCostInsertionPickupDeliveryStrategy_ = localCheapestCostInsertionPickupDeliveryStrategy_;
11385 }
11386 if (((from_bitField0_ & 0x00010000) != 0)) {
11387 result.christofidesUseMinimumMatching_ = christofidesUseMinimumMatching_;
11388 }
11389 if (((from_bitField0_ & 0x00020000) != 0)) {
11390 result.firstSolutionOptimizationPeriod_ = firstSolutionOptimizationPeriod_;
11391 }
11392 int to_bitField0_ = 0;
11393 if (((from_bitField0_ & 0x00040000) != 0)) {
11394 result.localSearchOperators_ = localSearchOperatorsBuilder_ == null
11395 ? localSearchOperators_
11396 : localSearchOperatorsBuilder_.build();
11397 to_bitField0_ |= 0x00000001;
11398 }
11399 if (((from_bitField0_ & 0x00080000) != 0)) {
11400 result.lsOperatorNeighborsRatio_ = lsOperatorNeighborsRatio_;
11401 }
11402 if (((from_bitField0_ & 0x00100000) != 0)) {
11403 result.lsOperatorMinNeighbors_ = lsOperatorMinNeighbors_;
11404 }
11405 if (((from_bitField0_ & 0x00200000) != 0)) {
11406 result.useMultiArmedBanditConcatenateOperators_ = useMultiArmedBanditConcatenateOperators_;
11407 }
11408 if (((from_bitField0_ & 0x00400000) != 0)) {
11409 result.multiArmedBanditCompoundOperatorMemoryCoefficient_ = multiArmedBanditCompoundOperatorMemoryCoefficient_;
11410 }
11411 if (((from_bitField0_ & 0x00800000) != 0)) {
11412 result.multiArmedBanditCompoundOperatorExplorationCoefficient_ = multiArmedBanditCompoundOperatorExplorationCoefficient_;
11413 }
11414 if (((from_bitField0_ & 0x01000000) != 0)) {
11415 result.maxSwapActiveChainSize_ = maxSwapActiveChainSize_;
11416 }
11417 if (((from_bitField0_ & 0x02000000) != 0)) {
11418 result.relocateExpensiveChainNumArcsToConsider_ = relocateExpensiveChainNumArcsToConsider_;
11419 }
11420 if (((from_bitField0_ & 0x04000000) != 0)) {
11421 result.heuristicExpensiveChainLnsNumArcsToConsider_ = heuristicExpensiveChainLnsNumArcsToConsider_;
11422 }
11423 if (((from_bitField0_ & 0x08000000) != 0)) {
11424 result.heuristicCloseNodesLnsNumNodes_ = heuristicCloseNodesLnsNumNodes_;
11425 }
11426 if (((from_bitField0_ & 0x10000000) != 0)) {
11427 result.localSearchMetaheuristic_ = localSearchMetaheuristic_;
11428 }
11429 if (((from_bitField0_ & 0x40000000) != 0)) {
11430 result.numMaxLocalOptimaBeforeMetaheuristicSwitch_ = numMaxLocalOptimaBeforeMetaheuristicSwitch_;
11431 }
11432 if (((from_bitField0_ & 0x80000000) != 0)) {
11433 result.guidedLocalSearchLambdaCoefficient_ = guidedLocalSearchLambdaCoefficient_;
11434 }
11435 result.bitField0_ |= to_bitField0_;
11436 }
11437
11438 private void buildPartial1(com.google.ortools.constraintsolver.RoutingSearchParameters result) {
11439 int from_bitField1_ = bitField1_;
11440 if (((from_bitField1_ & 0x00000001) != 0)) {
11441 result.guidedLocalSearchResetPenaltiesOnNewBestSolution_ = guidedLocalSearchResetPenaltiesOnNewBestSolution_;
11442 }
11443 if (((from_bitField1_ & 0x00000002) != 0)) {
11444 result.guidedLocalSearchPenalizeWithVehicleClasses_ = guidedLocalSearchPenalizeWithVehicleClasses_;
11445 }
11446 if (((from_bitField1_ & 0x00000004) != 0)) {
11447 result.useGuidedLocalSearchPenaltiesInLocalSearchOperators_ = useGuidedLocalSearchPenaltiesInLocalSearchOperators_;
11448 }
11449 if (((from_bitField1_ & 0x00000008) != 0)) {
11450 result.useDepthFirstSearch_ = useDepthFirstSearch_;
11451 }
11452 if (((from_bitField1_ & 0x00000010) != 0)) {
11453 result.useCp_ = useCp_;
11454 }
11455 if (((from_bitField1_ & 0x00000020) != 0)) {
11456 result.useCpSat_ = useCpSat_;
11457 }
11458 if (((from_bitField1_ & 0x00000040) != 0)) {
11459 result.useGeneralizedCpSat_ = useGeneralizedCpSat_;
11460 }
11461 int to_bitField0_ = 0;
11462 if (((from_bitField1_ & 0x00000080) != 0)) {
11463 result.satParameters_ = satParametersBuilder_ == null
11464 ? satParameters_
11465 : satParametersBuilder_.build();
11466 to_bitField0_ |= 0x00000002;
11467 }
11468 if (((from_bitField1_ & 0x00000100) != 0)) {
11469 result.reportIntermediateCpSatSolutions_ = reportIntermediateCpSatSolutions_;
11470 }
11471 if (((from_bitField1_ & 0x00000200) != 0)) {
11472 result.fallbackToCpSatSizeThreshold_ = fallbackToCpSatSizeThreshold_;
11473 }
11474 if (((from_bitField1_ & 0x00000400) != 0)) {
11475 result.continuousSchedulingSolver_ = continuousSchedulingSolver_;
11476 }
11477 if (((from_bitField1_ & 0x00000800) != 0)) {
11478 result.mixedIntegerSchedulingSolver_ = mixedIntegerSchedulingSolver_;
11479 }
11480 if (((from_bitField1_ & 0x00001000) != 0)) {
11481 result.disableSchedulingBewareThisMayDegradePerformance_ = disableSchedulingBewareThisMayDegradePerformance_;
11482 to_bitField0_ |= 0x00000004;
11483 }
11484 if (((from_bitField1_ & 0x00002000) != 0)) {
11485 result.optimizationStep_ = optimizationStep_;
11486 }
11487 if (((from_bitField1_ & 0x00004000) != 0)) {
11488 result.numberOfSolutionsToCollect_ = numberOfSolutionsToCollect_;
11489 }
11490 if (((from_bitField1_ & 0x00008000) != 0)) {
11491 result.solutionLimit_ = solutionLimit_;
11492 }
11493 if (((from_bitField1_ & 0x00010000) != 0)) {
11494 result.timeLimit_ = timeLimitBuilder_ == null
11495 ? timeLimit_
11496 : timeLimitBuilder_.build();
11497 to_bitField0_ |= 0x00000008;
11498 }
11499 if (((from_bitField1_ & 0x00020000) != 0)) {
11500 result.lnsTimeLimit_ = lnsTimeLimitBuilder_ == null
11501 ? lnsTimeLimit_
11502 : lnsTimeLimitBuilder_.build();
11503 to_bitField0_ |= 0x00000010;
11504 }
11505 if (((from_bitField1_ & 0x00040000) != 0)) {
11506 result.secondaryLsTimeLimitRatio_ = secondaryLsTimeLimitRatio_;
11507 }
11508 if (((from_bitField1_ & 0x00080000) != 0)) {
11509 result.improvementLimitParameters_ = improvementLimitParametersBuilder_ == null
11510 ? improvementLimitParameters_
11511 : improvementLimitParametersBuilder_.build();
11512 to_bitField0_ |= 0x00000020;
11513 }
11514 if (((from_bitField1_ & 0x00100000) != 0)) {
11515 result.useFullPropagation_ = useFullPropagation_;
11516 }
11517 if (((from_bitField1_ & 0x00200000) != 0)) {
11518 result.logSearch_ = logSearch_;
11519 }
11520 if (((from_bitField1_ & 0x00400000) != 0)) {
11521 result.logCostScalingFactor_ = logCostScalingFactor_;
11522 }
11523 if (((from_bitField1_ & 0x00800000) != 0)) {
11524 result.logCostOffset_ = logCostOffset_;
11525 }
11526 if (((from_bitField1_ & 0x01000000) != 0)) {
11527 result.logTag_ = logTag_;
11528 }
11529 if (((from_bitField1_ & 0x02000000) != 0)) {
11530 result.useIteratedLocalSearch_ = useIteratedLocalSearch_;
11531 }
11532 if (((from_bitField1_ & 0x04000000) != 0)) {
11533 result.iteratedLocalSearchParameters_ = iteratedLocalSearchParametersBuilder_ == null
11534 ? iteratedLocalSearchParameters_
11535 : iteratedLocalSearchParametersBuilder_.build();
11536 to_bitField0_ |= 0x00000040;
11537 }
11538 result.bitField0_ |= to_bitField0_;
11539 }
11540
11541 @java.lang.Override
11542 public Builder mergeFrom(com.google.protobuf.Message other) {
11543 if (other instanceof com.google.ortools.constraintsolver.RoutingSearchParameters) {
11544 return mergeFrom((com.google.ortools.constraintsolver.RoutingSearchParameters)other);
11545 } else {
11546 super.mergeFrom(other);
11547 return this;
11548 }
11549 }
11550
11551 public Builder mergeFrom(com.google.ortools.constraintsolver.RoutingSearchParameters other) {
11552 if (other == com.google.ortools.constraintsolver.RoutingSearchParameters.getDefaultInstance()) return this;
11553 if (other.firstSolutionStrategy_ != 0) {
11554 setFirstSolutionStrategyValue(other.getFirstSolutionStrategyValue());
11555 }
11556 if (other.getUseUnfilteredFirstSolutionStrategy() != false) {
11557 setUseUnfilteredFirstSolutionStrategy(other.getUseUnfilteredFirstSolutionStrategy());
11558 }
11559 if (other.getSavingsNeighborsRatio() != 0D) {
11560 setSavingsNeighborsRatio(other.getSavingsNeighborsRatio());
11561 }
11562 if (other.getSavingsMaxMemoryUsageBytes() != 0D) {
11563 setSavingsMaxMemoryUsageBytes(other.getSavingsMaxMemoryUsageBytes());
11564 }
11565 if (other.getSavingsAddReverseArcs() != false) {
11566 setSavingsAddReverseArcs(other.getSavingsAddReverseArcs());
11567 }
11568 if (other.getSavingsArcCoefficient() != 0D) {
11569 setSavingsArcCoefficient(other.getSavingsArcCoefficient());
11570 }
11571 if (other.getCheapestInsertionFarthestSeedsRatio() != 0D) {
11572 setCheapestInsertionFarthestSeedsRatio(other.getCheapestInsertionFarthestSeedsRatio());
11573 }
11574 if (other.getCheapestInsertionFirstSolutionNeighborsRatio() != 0D) {
11575 setCheapestInsertionFirstSolutionNeighborsRatio(other.getCheapestInsertionFirstSolutionNeighborsRatio());
11576 }
11577 if (other.getCheapestInsertionFirstSolutionMinNeighbors() != 0) {
11578 setCheapestInsertionFirstSolutionMinNeighbors(other.getCheapestInsertionFirstSolutionMinNeighbors());
11579 }
11580 if (other.getCheapestInsertionLsOperatorNeighborsRatio() != 0D) {
11581 setCheapestInsertionLsOperatorNeighborsRatio(other.getCheapestInsertionLsOperatorNeighborsRatio());
11582 }
11583 if (other.getCheapestInsertionLsOperatorMinNeighbors() != 0) {
11584 setCheapestInsertionLsOperatorMinNeighbors(other.getCheapestInsertionLsOperatorMinNeighbors());
11585 }
11586 if (other.getCheapestInsertionFirstSolutionUseNeighborsRatioForInitialization() != false) {
11587 setCheapestInsertionFirstSolutionUseNeighborsRatioForInitialization(other.getCheapestInsertionFirstSolutionUseNeighborsRatioForInitialization());
11588 }
11589 if (other.getCheapestInsertionAddUnperformedEntries() != false) {
11590 setCheapestInsertionAddUnperformedEntries(other.getCheapestInsertionAddUnperformedEntries());
11591 }
11592 if (other.localCheapestInsertionPickupDeliveryStrategy_ != 0) {
11593 setLocalCheapestInsertionPickupDeliveryStrategyValue(other.getLocalCheapestInsertionPickupDeliveryStrategyValue());
11594 }
11595 if (other.localCheapestCostInsertionPickupDeliveryStrategy_ != 0) {
11596 setLocalCheapestCostInsertionPickupDeliveryStrategyValue(other.getLocalCheapestCostInsertionPickupDeliveryStrategyValue());
11597 }
11598 if (!other.localCheapestInsertionSortingProperties_.isEmpty()) {
11599 if (localCheapestInsertionSortingProperties_.isEmpty()) {
11600 localCheapestInsertionSortingProperties_ = other.localCheapestInsertionSortingProperties_;
11601 bitField0_ = (bitField0_ & ~0x00008000);
11602 } else {
11603 ensureLocalCheapestInsertionSortingPropertiesIsMutable();
11604 localCheapestInsertionSortingProperties_.addAll(other.localCheapestInsertionSortingProperties_);
11605 }
11606 onChanged();
11607 }
11608 if (other.getChristofidesUseMinimumMatching() != false) {
11609 setChristofidesUseMinimumMatching(other.getChristofidesUseMinimumMatching());
11610 }
11611 if (other.getFirstSolutionOptimizationPeriod() != 0) {
11612 setFirstSolutionOptimizationPeriod(other.getFirstSolutionOptimizationPeriod());
11613 }
11614 if (other.hasLocalSearchOperators()) {
11615 mergeLocalSearchOperators(other.getLocalSearchOperators());
11616 }
11617 if (other.getLsOperatorNeighborsRatio() != 0D) {
11618 setLsOperatorNeighborsRatio(other.getLsOperatorNeighborsRatio());
11619 }
11620 if (other.getLsOperatorMinNeighbors() != 0) {
11621 setLsOperatorMinNeighbors(other.getLsOperatorMinNeighbors());
11622 }
11623 if (other.getUseMultiArmedBanditConcatenateOperators() != false) {
11624 setUseMultiArmedBanditConcatenateOperators(other.getUseMultiArmedBanditConcatenateOperators());
11625 }
11626 if (other.getMultiArmedBanditCompoundOperatorMemoryCoefficient() != 0D) {
11627 setMultiArmedBanditCompoundOperatorMemoryCoefficient(other.getMultiArmedBanditCompoundOperatorMemoryCoefficient());
11628 }
11629 if (other.getMultiArmedBanditCompoundOperatorExplorationCoefficient() != 0D) {
11630 setMultiArmedBanditCompoundOperatorExplorationCoefficient(other.getMultiArmedBanditCompoundOperatorExplorationCoefficient());
11631 }
11632 if (other.getMaxSwapActiveChainSize() != 0) {
11633 setMaxSwapActiveChainSize(other.getMaxSwapActiveChainSize());
11634 }
11635 if (other.getRelocateExpensiveChainNumArcsToConsider() != 0) {
11636 setRelocateExpensiveChainNumArcsToConsider(other.getRelocateExpensiveChainNumArcsToConsider());
11637 }
11638 if (other.getHeuristicExpensiveChainLnsNumArcsToConsider() != 0) {
11639 setHeuristicExpensiveChainLnsNumArcsToConsider(other.getHeuristicExpensiveChainLnsNumArcsToConsider());
11640 }
11641 if (other.getHeuristicCloseNodesLnsNumNodes() != 0) {
11642 setHeuristicCloseNodesLnsNumNodes(other.getHeuristicCloseNodesLnsNumNodes());
11643 }
11644 if (other.localSearchMetaheuristic_ != 0) {
11645 setLocalSearchMetaheuristicValue(other.getLocalSearchMetaheuristicValue());
11646 }
11647 if (!other.localSearchMetaheuristics_.isEmpty()) {
11648 if (localSearchMetaheuristics_.isEmpty()) {
11649 localSearchMetaheuristics_ = other.localSearchMetaheuristics_;
11650 bitField0_ = (bitField0_ & ~0x20000000);
11651 } else {
11652 ensureLocalSearchMetaheuristicsIsMutable();
11653 localSearchMetaheuristics_.addAll(other.localSearchMetaheuristics_);
11654 }
11655 onChanged();
11656 }
11657 if (other.getNumMaxLocalOptimaBeforeMetaheuristicSwitch() != 0) {
11658 setNumMaxLocalOptimaBeforeMetaheuristicSwitch(other.getNumMaxLocalOptimaBeforeMetaheuristicSwitch());
11659 }
11660 if (other.getGuidedLocalSearchLambdaCoefficient() != 0D) {
11661 setGuidedLocalSearchLambdaCoefficient(other.getGuidedLocalSearchLambdaCoefficient());
11662 }
11663 if (other.getGuidedLocalSearchResetPenaltiesOnNewBestSolution() != false) {
11664 setGuidedLocalSearchResetPenaltiesOnNewBestSolution(other.getGuidedLocalSearchResetPenaltiesOnNewBestSolution());
11665 }
11666 if (other.getGuidedLocalSearchPenalizeWithVehicleClasses() != false) {
11667 setGuidedLocalSearchPenalizeWithVehicleClasses(other.getGuidedLocalSearchPenalizeWithVehicleClasses());
11668 }
11669 if (other.getUseGuidedLocalSearchPenaltiesInLocalSearchOperators() != false) {
11670 setUseGuidedLocalSearchPenaltiesInLocalSearchOperators(other.getUseGuidedLocalSearchPenaltiesInLocalSearchOperators());
11671 }
11672 if (other.getUseDepthFirstSearch() != false) {
11673 setUseDepthFirstSearch(other.getUseDepthFirstSearch());
11674 }
11675 if (other.useCp_ != 0) {
11676 setUseCpValue(other.getUseCpValue());
11677 }
11678 if (other.useCpSat_ != 0) {
11679 setUseCpSatValue(other.getUseCpSatValue());
11680 }
11681 if (other.useGeneralizedCpSat_ != 0) {
11682 setUseGeneralizedCpSatValue(other.getUseGeneralizedCpSatValue());
11683 }
11684 if (other.hasSatParameters()) {
11685 mergeSatParameters(other.getSatParameters());
11686 }
11687 if (other.getReportIntermediateCpSatSolutions() != false) {
11688 setReportIntermediateCpSatSolutions(other.getReportIntermediateCpSatSolutions());
11689 }
11690 if (other.getFallbackToCpSatSizeThreshold() != 0) {
11691 setFallbackToCpSatSizeThreshold(other.getFallbackToCpSatSizeThreshold());
11692 }
11693 if (other.continuousSchedulingSolver_ != 0) {
11694 setContinuousSchedulingSolverValue(other.getContinuousSchedulingSolverValue());
11695 }
11696 if (other.mixedIntegerSchedulingSolver_ != 0) {
11697 setMixedIntegerSchedulingSolverValue(other.getMixedIntegerSchedulingSolverValue());
11698 }
11699 if (other.hasDisableSchedulingBewareThisMayDegradePerformance()) {
11700 setDisableSchedulingBewareThisMayDegradePerformance(other.getDisableSchedulingBewareThisMayDegradePerformance());
11701 }
11702 if (other.getOptimizationStep() != 0D) {
11703 setOptimizationStep(other.getOptimizationStep());
11704 }
11705 if (other.getNumberOfSolutionsToCollect() != 0) {
11706 setNumberOfSolutionsToCollect(other.getNumberOfSolutionsToCollect());
11707 }
11708 if (other.getSolutionLimit() != 0L) {
11709 setSolutionLimit(other.getSolutionLimit());
11710 }
11711 if (other.hasTimeLimit()) {
11712 mergeTimeLimit(other.getTimeLimit());
11713 }
11714 if (other.hasLnsTimeLimit()) {
11715 mergeLnsTimeLimit(other.getLnsTimeLimit());
11716 }
11717 if (other.getSecondaryLsTimeLimitRatio() != 0D) {
11718 setSecondaryLsTimeLimitRatio(other.getSecondaryLsTimeLimitRatio());
11719 }
11720 if (other.hasImprovementLimitParameters()) {
11721 mergeImprovementLimitParameters(other.getImprovementLimitParameters());
11722 }
11723 if (other.getUseFullPropagation() != false) {
11724 setUseFullPropagation(other.getUseFullPropagation());
11725 }
11726 if (other.getLogSearch() != false) {
11727 setLogSearch(other.getLogSearch());
11728 }
11729 if (other.getLogCostScalingFactor() != 0D) {
11730 setLogCostScalingFactor(other.getLogCostScalingFactor());
11731 }
11732 if (other.getLogCostOffset() != 0D) {
11733 setLogCostOffset(other.getLogCostOffset());
11734 }
11735 if (!other.getLogTag().isEmpty()) {
11736 logTag_ = other.logTag_;
11737 bitField1_ |= 0x01000000;
11738 onChanged();
11739 }
11740 if (other.getUseIteratedLocalSearch() != false) {
11741 setUseIteratedLocalSearch(other.getUseIteratedLocalSearch());
11742 }
11743 if (other.hasIteratedLocalSearchParameters()) {
11744 mergeIteratedLocalSearchParameters(other.getIteratedLocalSearchParameters());
11745 }
11746 this.mergeUnknownFields(other.getUnknownFields());
11747 onChanged();
11748 return this;
11749 }
11750
11751 @java.lang.Override
11752 public final boolean isInitialized() {
11753 return true;
11754 }
11755
11756 @java.lang.Override
11757 public Builder mergeFrom(
11758 com.google.protobuf.CodedInputStream input,
11759 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
11760 throws java.io.IOException {
11761 if (extensionRegistry == null) {
11762 throw new java.lang.NullPointerException();
11763 }
11764 try {
11765 boolean done = false;
11766 while (!done) {
11767 int tag = input.readTag();
11768 switch (tag) {
11769 case 0:
11770 done = true;
11771 break;
11772 case 8: {
11773 firstSolutionStrategy_ = input.readEnum();
11774 bitField0_ |= 0x00000001;
11775 break;
11776 } // case 8
11777 case 16: {
11778 useUnfilteredFirstSolutionStrategy_ = input.readBool();
11779 bitField0_ |= 0x00000002;
11780 break;
11781 } // case 16
11782 case 26: {
11783 input.readMessage(
11784 getLocalSearchOperatorsFieldBuilder().getBuilder(),
11785 extensionRegistry);
11786 bitField0_ |= 0x00040000;
11787 break;
11788 } // case 26
11789 case 32: {
11790 localSearchMetaheuristic_ = input.readEnum();
11791 bitField0_ |= 0x10000000;
11792 break;
11793 } // case 32
11794 case 41: {
11795 guidedLocalSearchLambdaCoefficient_ = input.readDouble();
11796 bitField0_ |= 0x80000000;
11797 break;
11798 } // case 41
11799 case 48: {
11800 useDepthFirstSearch_ = input.readBool();
11801 bitField1_ |= 0x00000008;
11802 break;
11803 } // case 48
11804 case 57: {
11805 optimizationStep_ = input.readDouble();
11806 bitField1_ |= 0x00002000;
11807 break;
11808 } // case 57
11809 case 64: {
11810 solutionLimit_ = input.readInt64();
11811 bitField1_ |= 0x00008000;
11812 break;
11813 } // case 64
11814 case 74: {
11815 input.readMessage(
11816 getTimeLimitFieldBuilder().getBuilder(),
11817 extensionRegistry);
11818 bitField1_ |= 0x00010000;
11819 break;
11820 } // case 74
11821 case 82: {
11822 input.readMessage(
11823 getLnsTimeLimitFieldBuilder().getBuilder(),
11824 extensionRegistry);
11825 bitField1_ |= 0x00020000;
11826 break;
11827 } // case 82
11828 case 88: {
11829 useFullPropagation_ = input.readBool();
11830 bitField1_ |= 0x00100000;
11831 break;
11832 } // case 88
11833 case 104: {
11834 logSearch_ = input.readBool();
11835 bitField1_ |= 0x00200000;
11836 break;
11837 } // case 104
11838 case 113: {
11839 savingsNeighborsRatio_ = input.readDouble();
11840 bitField0_ |= 0x00000004;
11841 break;
11842 } // case 113
11843 case 120: {
11844 savingsAddReverseArcs_ = input.readBool();
11845 bitField0_ |= 0x00000010;
11846 break;
11847 } // case 120
11848 case 129: {
11849 cheapestInsertionFarthestSeedsRatio_ = input.readDouble();
11850 bitField0_ |= 0x00000040;
11851 break;
11852 } // case 129
11853 case 136: {
11854 numberOfSolutionsToCollect_ = input.readInt32();
11855 bitField1_ |= 0x00004000;
11856 break;
11857 } // case 136
11858 case 145: {
11859 savingsArcCoefficient_ = input.readDouble();
11860 bitField0_ |= 0x00000020;
11861 break;
11862 } // case 145
11863 case 160: {
11864 relocateExpensiveChainNumArcsToConsider_ = input.readInt32();
11865 bitField0_ |= 0x02000000;
11866 break;
11867 } // case 160
11868 case 169: {
11869 cheapestInsertionFirstSolutionNeighborsRatio_ = input.readDouble();
11870 bitField0_ |= 0x00000080;
11871 break;
11872 } // case 169
11873 case 177: {
11874 logCostScalingFactor_ = input.readDouble();
11875 bitField1_ |= 0x00400000;
11876 break;
11877 } // case 177
11878 case 185: {
11879 savingsMaxMemoryUsageBytes_ = input.readDouble();
11880 bitField0_ |= 0x00000008;
11881 break;
11882 } // case 185
11883 case 216: {
11884 useCpSat_ = input.readEnum();
11885 bitField1_ |= 0x00000020;
11886 break;
11887 } // case 216
11888 case 224: {
11889 useCp_ = input.readEnum();
11890 bitField1_ |= 0x00000010;
11891 break;
11892 } // case 224
11893 case 233: {
11894 logCostOffset_ = input.readDouble();
11895 bitField1_ |= 0x00800000;
11896 break;
11897 } // case 233
11898 case 240: {
11899 christofidesUseMinimumMatching_ = input.readBool();
11900 bitField0_ |= 0x00010000;
11901 break;
11902 } // case 240
11903 case 249: {
11904 cheapestInsertionLsOperatorNeighborsRatio_ = input.readDouble();
11905 bitField0_ |= 0x00000200;
11906 break;
11907 } // case 249
11908 case 256: {
11909 heuristicExpensiveChainLnsNumArcsToConsider_ = input.readInt32();
11910 bitField0_ |= 0x04000000;
11911 break;
11912 } // case 256
11913 case 264: {
11914 continuousSchedulingSolver_ = input.readEnum();
11915 bitField1_ |= 0x00000400;
11916 break;
11917 } // case 264
11918 case 272: {
11919 mixedIntegerSchedulingSolver_ = input.readEnum();
11920 bitField1_ |= 0x00000800;
11921 break;
11922 } // case 272
11923 case 280: {
11924 heuristicCloseNodesLnsNumNodes_ = input.readInt32();
11925 bitField0_ |= 0x08000000;
11926 break;
11927 } // case 280
11928 case 290: {
11929 logTag_ = input.readStringRequireUtf8();
11930 bitField1_ |= 0x01000000;
11931 break;
11932 } // case 290
11933 case 298: {
11934 input.readMessage(
11935 getImprovementLimitParametersFieldBuilder().getBuilder(),
11936 extensionRegistry);
11937 bitField1_ |= 0x00080000;
11938 break;
11939 } // case 298
11940 case 320: {
11941 cheapestInsertionAddUnperformedEntries_ = input.readBool();
11942 bitField0_ |= 0x00001000;
11943 break;
11944 } // case 320
11945 case 328: {
11946 useMultiArmedBanditConcatenateOperators_ = input.readBool();
11947 bitField0_ |= 0x00200000;
11948 break;
11949 } // case 328
11950 case 337: {
11951 multiArmedBanditCompoundOperatorMemoryCoefficient_ = input.readDouble();
11952 bitField0_ |= 0x00400000;
11953 break;
11954 } // case 337
11955 case 345: {
11956 multiArmedBanditCompoundOperatorExplorationCoefficient_ = input.readDouble();
11957 bitField0_ |= 0x00800000;
11958 break;
11959 } // case 345
11960 case 352: {
11961 cheapestInsertionFirstSolutionMinNeighbors_ = input.readInt32();
11962 bitField0_ |= 0x00000100;
11963 break;
11964 } // case 352
11965 case 360: {
11966 cheapestInsertionLsOperatorMinNeighbors_ = input.readInt32();
11967 bitField0_ |= 0x00000400;
11968 break;
11969 } // case 360
11970 case 368: {
11971 cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_ = input.readBool();
11972 bitField0_ |= 0x00000800;
11973 break;
11974 } // case 368
11975 case 376: {
11976 useGeneralizedCpSat_ = input.readEnum();
11977 bitField1_ |= 0x00000040;
11978 break;
11979 } // case 376
11980 case 386: {
11981 input.readMessage(
11982 getSatParametersFieldBuilder().getBuilder(),
11983 extensionRegistry);
11984 bitField1_ |= 0x00000080;
11985 break;
11986 } // case 386
11987 case 392: {
11988 localCheapestInsertionPickupDeliveryStrategy_ = input.readEnum();
11989 bitField0_ |= 0x00002000;
11990 break;
11991 } // case 392
11992 case 400: {
11993 disableSchedulingBewareThisMayDegradePerformance_ = input.readBool();
11994 bitField1_ |= 0x00001000;
11995 break;
11996 } // case 400
11997 case 408: {
11998 guidedLocalSearchResetPenaltiesOnNewBestSolution_ = input.readBool();
11999 bitField1_ |= 0x00000001;
12000 break;
12001 } // case 408
12002 case 416: {
12003 fallbackToCpSatSizeThreshold_ = input.readInt32();
12004 bitField1_ |= 0x00000200;
12005 break;
12006 } // case 416
12007 case 425: {
12008 lsOperatorNeighborsRatio_ = input.readDouble();
12009 bitField0_ |= 0x00080000;
12010 break;
12011 } // case 425
12012 case 432: {
12013 lsOperatorMinNeighbors_ = input.readInt32();
12014 bitField0_ |= 0x00100000;
12015 break;
12016 } // case 432
12017 case 440: {
12018 localCheapestCostInsertionPickupDeliveryStrategy_ = input.readEnum();
12019 bitField0_ |= 0x00004000;
12020 break;
12021 } // case 440
12022 case 448: {
12023 reportIntermediateCpSatSolutions_ = input.readBool();
12024 bitField1_ |= 0x00000100;
12025 break;
12026 } // case 448
12027 case 457: {
12028 secondaryLsTimeLimitRatio_ = input.readDouble();
12029 bitField1_ |= 0x00040000;
12030 break;
12031 } // case 457
12032 case 464: {
12033 useIteratedLocalSearch_ = input.readBool();
12034 bitField1_ |= 0x02000000;
12035 break;
12036 } // case 464
12037 case 472: {
12038 firstSolutionOptimizationPeriod_ = input.readInt32();
12039 bitField0_ |= 0x00020000;
12040 break;
12041 } // case 472
12042 case 482: {
12043 input.readMessage(
12044 getIteratedLocalSearchParametersFieldBuilder().getBuilder(),
12045 extensionRegistry);
12046 bitField1_ |= 0x04000000;
12047 break;
12048 } // case 482
12049 case 488: {
12050 guidedLocalSearchPenalizeWithVehicleClasses_ = input.readBool();
12051 bitField1_ |= 0x00000002;
12052 break;
12053 } // case 488
12054 case 496: {
12055 useGuidedLocalSearchPenaltiesInLocalSearchOperators_ = input.readBool();
12056 bitField1_ |= 0x00000004;
12057 break;
12058 } // case 496
12059 case 504: {
12060 int tmpRaw = input.readEnum();
12061 ensureLocalSearchMetaheuristicsIsMutable();
12062 localSearchMetaheuristics_.addInt(tmpRaw);
12063 break;
12064 } // case 504
12065 case 506: {
12066 int length = input.readRawVarint32();
12067 int oldLimit = input.pushLimit(length);
12068 while(input.getBytesUntilLimit() > 0) {
12069 int tmpRaw = input.readEnum();
12070 ensureLocalSearchMetaheuristicsIsMutable();
12071 localSearchMetaheuristics_.addInt(tmpRaw);
12072 }
12073 input.popLimit(oldLimit);
12074 break;
12075 } // case 506
12076 case 512: {
12077 numMaxLocalOptimaBeforeMetaheuristicSwitch_ = input.readInt32();
12078 bitField0_ |= 0x40000000;
12079 break;
12080 } // case 512
12081 case 528: {
12082 maxSwapActiveChainSize_ = input.readInt32();
12083 bitField0_ |= 0x01000000;
12084 break;
12085 } // case 528
12086 case 536: {
12087 int tmpRaw = input.readEnum();
12088 ensureLocalCheapestInsertionSortingPropertiesIsMutable();
12089 localCheapestInsertionSortingProperties_.addInt(tmpRaw);
12090 break;
12091 } // case 536
12092 case 538: {
12093 int length = input.readRawVarint32();
12094 int oldLimit = input.pushLimit(length);
12095 while(input.getBytesUntilLimit() > 0) {
12096 int tmpRaw = input.readEnum();
12097 ensureLocalCheapestInsertionSortingPropertiesIsMutable();
12098 localCheapestInsertionSortingProperties_.addInt(tmpRaw);
12099 }
12100 input.popLimit(oldLimit);
12101 break;
12102 } // case 538
12103 default: {
12104 if (!super.parseUnknownField(input, extensionRegistry, tag)) {
12105 done = true; // was an endgroup tag
12106 }
12107 break;
12108 } // default:
12109 } // switch (tag)
12110 } // while (!done)
12111 } catch (com.google.protobuf.InvalidProtocolBufferException e) {
12112 throw e.unwrapIOException();
12113 } finally {
12114 onChanged();
12115 } // finally
12116 return this;
12117 }
12118 private int bitField0_;
12119 private int bitField1_;
12120
12121 private int firstSolutionStrategy_ = 0;
12130 @java.lang.Override public int getFirstSolutionStrategyValue() {
12131 return firstSolutionStrategy_;
12132 }
12133
12142 public Builder setFirstSolutionStrategyValue(int value) {
12143 firstSolutionStrategy_ = value;
12144 bitField0_ |= 0x00000001;
12145 onChanged();
12146 return this;
12147 }
12148
12156 @java.lang.Override
12158 com.google.ortools.constraintsolver.FirstSolutionStrategy.Value result = com.google.ortools.constraintsolver.FirstSolutionStrategy.Value.forNumber(firstSolutionStrategy_);
12160 }
12161
12170 public Builder setFirstSolutionStrategy(com.google.ortools.constraintsolver.FirstSolutionStrategy.Value value) {
12171 if (value == null) {
12172 throw new NullPointerException();
12173 }
12174 bitField0_ |= 0x00000001;
12175 firstSolutionStrategy_ = value.getNumber();
12176 onChanged();
12177 return this;
12178 }
12179
12188 bitField0_ = (bitField0_ & ~0x00000001);
12189 firstSolutionStrategy_ = 0;
12190 onChanged();
12191 return this;
12192 }
12193
12194 private boolean useUnfilteredFirstSolutionStrategy_ ;
12206 @java.lang.Override
12208 return useUnfilteredFirstSolutionStrategy_;
12209 }
12210
12222 public Builder setUseUnfilteredFirstSolutionStrategy(boolean value) {
12223
12224 useUnfilteredFirstSolutionStrategy_ = value;
12225 bitField0_ |= 0x00000002;
12226 onChanged();
12227 return this;
12228 }
12229
12241 bitField0_ = (bitField0_ & ~0x00000002);
12242 useUnfilteredFirstSolutionStrategy_ = false;
12243 onChanged();
12244 return this;
12245 }
12246
12247 private double savingsNeighborsRatio_ ;
12258 @java.lang.Override
12260 return savingsNeighborsRatio_;
12261 }
12262
12273 public Builder setSavingsNeighborsRatio(double value) {
12274
12275 savingsNeighborsRatio_ = value;
12276 bitField0_ |= 0x00000004;
12277 onChanged();
12278 return this;
12279 }
12280
12291 bitField0_ = (bitField0_ & ~0x00000004);
12292 savingsNeighborsRatio_ = 0D;
12293 onChanged();
12294 return this;
12295 }
12296
12297 private double savingsMaxMemoryUsageBytes_ ;
12311 @java.lang.Override
12313 return savingsMaxMemoryUsageBytes_;
12314 }
12315
12329 public Builder setSavingsMaxMemoryUsageBytes(double value) {
12330
12331 savingsMaxMemoryUsageBytes_ = value;
12332 bitField0_ |= 0x00000008;
12333 onChanged();
12334 return this;
12335 }
12336
12350 bitField0_ = (bitField0_ & ~0x00000008);
12351 savingsMaxMemoryUsageBytes_ = 0D;
12352 onChanged();
12353 return this;
12354 }
12355
12356 private boolean savingsAddReverseArcs_ ;
12366 @java.lang.Override
12367 public boolean getSavingsAddReverseArcs() {
12368 return savingsAddReverseArcs_;
12369 }
12370
12380 public Builder setSavingsAddReverseArcs(boolean value) {
12381
12382 savingsAddReverseArcs_ = value;
12383 bitField0_ |= 0x00000010;
12384 onChanged();
12385 return this;
12386 }
12387
12397 bitField0_ = (bitField0_ & ~0x00000010);
12398 savingsAddReverseArcs_ = false;
12399 onChanged();
12400 return this;
12401 }
12402
12403 private double savingsArcCoefficient_ ;
12416 @java.lang.Override
12418 return savingsArcCoefficient_;
12419 }
12420
12433 public Builder setSavingsArcCoefficient(double value) {
12434
12435 savingsArcCoefficient_ = value;
12436 bitField0_ |= 0x00000020;
12437 onChanged();
12438 return this;
12439 }
12440
12453 bitField0_ = (bitField0_ & ~0x00000020);
12454 savingsArcCoefficient_ = 0D;
12455 onChanged();
12456 return this;
12457 }
12458
12459 private double cheapestInsertionFarthestSeedsRatio_ ;
12470 @java.lang.Override
12472 return cheapestInsertionFarthestSeedsRatio_;
12473 }
12474
12485 public Builder setCheapestInsertionFarthestSeedsRatio(double value) {
12486
12487 cheapestInsertionFarthestSeedsRatio_ = value;
12488 bitField0_ |= 0x00000040;
12489 onChanged();
12490 return this;
12491 }
12492
12503 bitField0_ = (bitField0_ & ~0x00000040);
12504 cheapestInsertionFarthestSeedsRatio_ = 0D;
12505 onChanged();
12506 return this;
12507 }
12508
12509 private double cheapestInsertionFirstSolutionNeighborsRatio_ ;
12532 @java.lang.Override
12534 return cheapestInsertionFirstSolutionNeighborsRatio_;
12535 }
12536
12560
12561 cheapestInsertionFirstSolutionNeighborsRatio_ = value;
12562 bitField0_ |= 0x00000080;
12563 onChanged();
12564 return this;
12565 }
12566
12589 bitField0_ = (bitField0_ & ~0x00000080);
12590 cheapestInsertionFirstSolutionNeighborsRatio_ = 0D;
12591 onChanged();
12592 return this;
12593 }
12594
12595 private int cheapestInsertionFirstSolutionMinNeighbors_ ;
12600 @java.lang.Override
12602 return cheapestInsertionFirstSolutionMinNeighbors_;
12603 }
12604
12610
12611 cheapestInsertionFirstSolutionMinNeighbors_ = value;
12612 bitField0_ |= 0x00000100;
12613 onChanged();
12614 return this;
12615 }
12616
12621 bitField0_ = (bitField0_ & ~0x00000100);
12622 cheapestInsertionFirstSolutionMinNeighbors_ = 0;
12623 onChanged();
12624 return this;
12625 }
12626
12627 private double cheapestInsertionLsOperatorNeighborsRatio_ ;
12639 @java.lang.Override
12641 return cheapestInsertionLsOperatorNeighborsRatio_;
12642 }
12643
12656
12657 cheapestInsertionLsOperatorNeighborsRatio_ = value;
12658 bitField0_ |= 0x00000200;
12659 onChanged();
12660 return this;
12661 }
12662
12674 bitField0_ = (bitField0_ & ~0x00000200);
12675 cheapestInsertionLsOperatorNeighborsRatio_ = 0D;
12676 onChanged();
12677 return this;
12678 }
12679
12680 private int cheapestInsertionLsOperatorMinNeighbors_ ;
12685 @java.lang.Override
12687 return cheapestInsertionLsOperatorMinNeighbors_;
12688 }
12689
12695
12696 cheapestInsertionLsOperatorMinNeighbors_ = value;
12697 bitField0_ |= 0x00000400;
12698 onChanged();
12699 return this;
12700 }
12701
12706 bitField0_ = (bitField0_ & ~0x00000400);
12707 cheapestInsertionLsOperatorMinNeighbors_ = 0;
12708 onChanged();
12709 return this;
12710 }
12711
12712 private boolean cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_ ;
12722 @java.lang.Override
12724 return cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_;
12725 }
12726
12737
12738 cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_ = value;
12739 bitField0_ |= 0x00000800;
12740 onChanged();
12741 return this;
12742 }
12743
12753 bitField0_ = (bitField0_ & ~0x00000800);
12754 cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_ = false;
12755 onChanged();
12756 return this;
12757 }
12758
12759 private boolean cheapestInsertionAddUnperformedEntries_ ;
12769 @java.lang.Override
12771 return cheapestInsertionAddUnperformedEntries_;
12772 }
12773
12783 public Builder setCheapestInsertionAddUnperformedEntries(boolean value) {
12784
12785 cheapestInsertionAddUnperformedEntries_ = value;
12786 bitField0_ |= 0x00001000;
12787 onChanged();
12788 return this;
12789 }
12790
12800 bitField0_ = (bitField0_ & ~0x00001000);
12801 cheapestInsertionAddUnperformedEntries_ = false;
12802 onChanged();
12803 return this;
12804 }
12805
12806 private int localCheapestInsertionPickupDeliveryStrategy_ = 0;
12817 return localCheapestInsertionPickupDeliveryStrategy_;
12818 }
12819
12830 localCheapestInsertionPickupDeliveryStrategy_ = value;
12831 bitField0_ |= 0x00002000;
12832 onChanged();
12833 return this;
12834 }
12835
12844 @java.lang.Override
12846 com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy result = com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy.forNumber(localCheapestInsertionPickupDeliveryStrategy_);
12848 }
12849
12859 public Builder setLocalCheapestInsertionPickupDeliveryStrategy(com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy value) {
12860 if (value == null) {
12861 throw new NullPointerException();
12862 }
12863 bitField0_ |= 0x00002000;
12864 localCheapestInsertionPickupDeliveryStrategy_ = value.getNumber();
12865 onChanged();
12866 return this;
12867 }
12868
12878 bitField0_ = (bitField0_ & ~0x00002000);
12879 localCheapestInsertionPickupDeliveryStrategy_ = 0;
12880 onChanged();
12881 return this;
12882 }
12883
12884 private int localCheapestCostInsertionPickupDeliveryStrategy_ = 0;
12895 return localCheapestCostInsertionPickupDeliveryStrategy_;
12896 }
12897
12908 localCheapestCostInsertionPickupDeliveryStrategy_ = value;
12909 bitField0_ |= 0x00004000;
12910 onChanged();
12911 return this;
12912 }
12913
12922 @java.lang.Override
12924 com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy result = com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy.forNumber(localCheapestCostInsertionPickupDeliveryStrategy_);
12926 }
12927
12937 public Builder setLocalCheapestCostInsertionPickupDeliveryStrategy(com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy value) {
12938 if (value == null) {
12939 throw new NullPointerException();
12940 }
12941 bitField0_ |= 0x00004000;
12942 localCheapestCostInsertionPickupDeliveryStrategy_ = value.getNumber();
12943 onChanged();
12944 return this;
12945 }
12946
12956 bitField0_ = (bitField0_ & ~0x00004000);
12957 localCheapestCostInsertionPickupDeliveryStrategy_ = 0;
12958 onChanged();
12959 return this;
12960 }
12961
12962 private com.google.protobuf.Internal.IntList localCheapestInsertionSortingProperties_ =
12963 emptyIntList();
12964 private void ensureLocalCheapestInsertionSortingPropertiesIsMutable() {
12965 if (!((bitField0_ & 0x00008000) != 0)) {
12966 localCheapestInsertionSortingProperties_ = makeMutableCopy(localCheapestInsertionSortingProperties_);
12967 bitField0_ |= 0x00008000;
12968 }
12969 }
12983 public java.util.List<com.google.ortools.constraintsolver.RoutingSearchParameters.InsertionSortingProperty> getLocalCheapestInsertionSortingPropertiesList() {
12984 return new com.google.protobuf.Internal.IntListAdapter<
12985 com.google.ortools.constraintsolver.RoutingSearchParameters.InsertionSortingProperty>(localCheapestInsertionSortingProperties_, localCheapestInsertionSortingProperties_converter_);
12986 }
12987
13001 return localCheapestInsertionSortingProperties_.size();
13002 }
13003
13018 return localCheapestInsertionSortingProperties_converter_.convert(localCheapestInsertionSortingProperties_.getInt(index));
13019 }
13020
13036 int index, com.google.ortools.constraintsolver.RoutingSearchParameters.InsertionSortingProperty value) {
13037 if (value == null) {
13038 throw new NullPointerException();
13039 }
13040 ensureLocalCheapestInsertionSortingPropertiesIsMutable();
13041 localCheapestInsertionSortingProperties_.setInt(index, value.getNumber());
13042 onChanged();
13043 return this;
13044 }
13045
13059 public Builder addLocalCheapestInsertionSortingProperties(com.google.ortools.constraintsolver.RoutingSearchParameters.InsertionSortingProperty value) {
13060 if (value == null) {
13061 throw new NullPointerException();
13062 }
13063 ensureLocalCheapestInsertionSortingPropertiesIsMutable();
13064 localCheapestInsertionSortingProperties_.addInt(value.getNumber());
13065 onChanged();
13066 return this;
13067 }
13068
13083 java.lang.Iterable<? extends com.google.ortools.constraintsolver.RoutingSearchParameters.InsertionSortingProperty> values) {
13084 ensureLocalCheapestInsertionSortingPropertiesIsMutable();
13085 for (com.google.ortools.constraintsolver.RoutingSearchParameters.InsertionSortingProperty value : values) {
13086 localCheapestInsertionSortingProperties_.addInt(value.getNumber());
13087 }
13088 onChanged();
13089 return this;
13090 }
13091
13105 localCheapestInsertionSortingProperties_ = emptyIntList();
13106 bitField0_ = (bitField0_ & ~0x00008000);
13107 onChanged();
13108 return this;
13109 }
13110
13123 public java.util.List<java.lang.Integer>
13125 return java.util.Collections.unmodifiableList(localCheapestInsertionSortingProperties_);
13126 }
13127
13142 return localCheapestInsertionSortingProperties_.getInt(index);
13143 }
13144
13160 int index, int value) {
13161 ensureLocalCheapestInsertionSortingPropertiesIsMutable();
13162 localCheapestInsertionSortingProperties_.setInt(index, value);
13163 onChanged();
13164 return this;
13165 }
13166
13181 ensureLocalCheapestInsertionSortingPropertiesIsMutable();
13182 localCheapestInsertionSortingProperties_.addInt(value);
13183 onChanged();
13184 return this;
13185 }
13186
13201 java.lang.Iterable<java.lang.Integer> values) {
13202 ensureLocalCheapestInsertionSortingPropertiesIsMutable();
13203 for (int value : values) {
13204 localCheapestInsertionSortingProperties_.addInt(value);
13205 }
13206 onChanged();
13207 return this;
13208 }
13209
13210 private boolean christofidesUseMinimumMatching_ ;
13220 @java.lang.Override
13222 return christofidesUseMinimumMatching_;
13223 }
13224
13234 public Builder setChristofidesUseMinimumMatching(boolean value) {
13235
13236 christofidesUseMinimumMatching_ = value;
13237 bitField0_ |= 0x00010000;
13238 onChanged();
13239 return this;
13240 }
13241
13251 bitField0_ = (bitField0_ & ~0x00010000);
13252 christofidesUseMinimumMatching_ = false;
13253 onChanged();
13254 return this;
13255 }
13256
13257 private int firstSolutionOptimizationPeriod_ ;
13272 @java.lang.Override
13274 return firstSolutionOptimizationPeriod_;
13275 }
13276
13291 public Builder setFirstSolutionOptimizationPeriod(int value) {
13292
13293 firstSolutionOptimizationPeriod_ = value;
13294 bitField0_ |= 0x00020000;
13295 onChanged();
13296 return this;
13297 }
13298
13313 bitField0_ = (bitField0_ & ~0x00020000);
13314 firstSolutionOptimizationPeriod_ = 0;
13315 onChanged();
13316 return this;
13317 }
13318
13320 private com.google.protobuf.SingleFieldBuilder<
13321 com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators, com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.Builder, com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder> localSearchOperatorsBuilder_;
13326 public boolean hasLocalSearchOperators() {
13327 return ((bitField0_ & 0x00040000) != 0);
13328 }
13329
13334 if (localSearchOperatorsBuilder_ == null) {
13335 return localSearchOperators_ == null ? com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.getDefaultInstance() : localSearchOperators_;
13336 } else {
13337 return localSearchOperatorsBuilder_.getMessage();
13338 }
13339 }
13340
13343 public Builder setLocalSearchOperators(com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators value) {
13344 if (localSearchOperatorsBuilder_ == null) {
13345 if (value == null) {
13346 throw new NullPointerException();
13347 }
13348 localSearchOperators_ = value;
13349 } else {
13350 localSearchOperatorsBuilder_.setMessage(value);
13351 }
13352 bitField0_ |= 0x00040000;
13353 onChanged();
13354 return this;
13355 }
13356
13360 com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.Builder builderForValue) {
13361 if (localSearchOperatorsBuilder_ == null) {
13362 localSearchOperators_ = builderForValue.build();
13363 } else {
13364 localSearchOperatorsBuilder_.setMessage(builderForValue.build());
13365 }
13366 bitField0_ |= 0x00040000;
13367 onChanged();
13368 return this;
13369 }
13370
13373 public Builder mergeLocalSearchOperators(com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators value) {
13374 if (localSearchOperatorsBuilder_ == null) {
13375 if (((bitField0_ & 0x00040000) != 0) &&
13376 localSearchOperators_ != null &&
13377 localSearchOperators_ != com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.getDefaultInstance()) {
13378 getLocalSearchOperatorsBuilder().mergeFrom(value);
13379 } else {
13380 localSearchOperators_ = value;
13381 }
13382 } else {
13383 localSearchOperatorsBuilder_.mergeFrom(value);
13384 }
13385 if (localSearchOperators_ != null) {
13386 bitField0_ |= 0x00040000;
13387 onChanged();
13388 }
13389 return this;
13390 }
13391
13394 public Builder clearLocalSearchOperators() {
13395 bitField0_ = (bitField0_ & ~0x00040000);
13396 localSearchOperators_ = null;
13397 if (localSearchOperatorsBuilder_ != null) {
13398 localSearchOperatorsBuilder_.dispose();
13399 localSearchOperatorsBuilder_ = null;
13400 }
13401 onChanged();
13402 return this;
13403 }
13404
13408 bitField0_ |= 0x00040000;
13409 onChanged();
13410 return getLocalSearchOperatorsFieldBuilder().getBuilder();
13411 }
13412
13416 if (localSearchOperatorsBuilder_ != null) {
13417 return localSearchOperatorsBuilder_.getMessageOrBuilder();
13418 } else {
13419 return localSearchOperators_ == null ?
13420 com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.getDefaultInstance() : localSearchOperators_;
13421 }
13422 }
13423
13426 private com.google.protobuf.SingleFieldBuilder<
13427 com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators, com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.Builder, com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder>
13428 getLocalSearchOperatorsFieldBuilder() {
13429 if (localSearchOperatorsBuilder_ == null) {
13430 localSearchOperatorsBuilder_ = new com.google.protobuf.SingleFieldBuilder<
13431 com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators, com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.Builder, com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder>(
13433 getParentForChildren(),
13434 isClean());
13435 localSearchOperators_ = null;
13436 }
13437 return localSearchOperatorsBuilder_;
13438 }
13439
13440 private double lsOperatorNeighborsRatio_ ;
13451 @java.lang.Override
13453 return lsOperatorNeighborsRatio_;
13454 }
13455
13466 public Builder setLsOperatorNeighborsRatio(double value) {
13467
13468 lsOperatorNeighborsRatio_ = value;
13469 bitField0_ |= 0x00080000;
13470 onChanged();
13471 return this;
13472 }
13473
13484 bitField0_ = (bitField0_ & ~0x00080000);
13485 lsOperatorNeighborsRatio_ = 0D;
13486 onChanged();
13487 return this;
13488 }
13489
13490 private int lsOperatorMinNeighbors_ ;
13495 @java.lang.Override
13497 return lsOperatorMinNeighbors_;
13498 }
13499
13504 public Builder setLsOperatorMinNeighbors(int value) {
13505
13506 lsOperatorMinNeighbors_ = value;
13507 bitField0_ |= 0x00100000;
13508 onChanged();
13509 return this;
13510 }
13511
13516 bitField0_ = (bitField0_ & ~0x00100000);
13517 lsOperatorMinNeighbors_ = 0;
13518 onChanged();
13519 return this;
13520 }
13521
13522 private boolean useMultiArmedBanditConcatenateOperators_ ;
13533 @java.lang.Override
13535 return useMultiArmedBanditConcatenateOperators_;
13536 }
13537
13548 public Builder setUseMultiArmedBanditConcatenateOperators(boolean value) {
13549
13550 useMultiArmedBanditConcatenateOperators_ = value;
13551 bitField0_ |= 0x00200000;
13552 onChanged();
13553 return this;
13554 }
13555
13566 bitField0_ = (bitField0_ & ~0x00200000);
13567 useMultiArmedBanditConcatenateOperators_ = false;
13568 onChanged();
13569 return this;
13570 }
13571
13572 private double multiArmedBanditCompoundOperatorMemoryCoefficient_ ;
13584 @java.lang.Override
13586 return multiArmedBanditCompoundOperatorMemoryCoefficient_;
13587 }
13588
13601
13602 multiArmedBanditCompoundOperatorMemoryCoefficient_ = value;
13603 bitField0_ |= 0x00400000;
13604 onChanged();
13605 return this;
13606 }
13607
13619 bitField0_ = (bitField0_ & ~0x00400000);
13620 multiArmedBanditCompoundOperatorMemoryCoefficient_ = 0D;
13621 onChanged();
13622 return this;
13623 }
13624
13625 private double multiArmedBanditCompoundOperatorExplorationCoefficient_ ;
13636 @java.lang.Override
13638 return multiArmedBanditCompoundOperatorExplorationCoefficient_;
13639 }
13640
13652
13653 multiArmedBanditCompoundOperatorExplorationCoefficient_ = value;
13654 bitField0_ |= 0x00800000;
13655 onChanged();
13656 return this;
13657 }
13658
13669 bitField0_ = (bitField0_ & ~0x00800000);
13670 multiArmedBanditCompoundOperatorExplorationCoefficient_ = 0D;
13671 onChanged();
13672 return this;
13673 }
13674
13675 private int maxSwapActiveChainSize_ ;
13684 @java.lang.Override
13686 return maxSwapActiveChainSize_;
13687 }
13688
13697 public Builder setMaxSwapActiveChainSize(int value) {
13698
13699 maxSwapActiveChainSize_ = value;
13700 bitField0_ |= 0x01000000;
13701 onChanged();
13702 return this;
13703 }
13704
13713 bitField0_ = (bitField0_ & ~0x01000000);
13714 maxSwapActiveChainSize_ = 0;
13715 onChanged();
13716 return this;
13717 }
13718
13719 private int relocateExpensiveChainNumArcsToConsider_ ;
13734 @java.lang.Override
13736 return relocateExpensiveChainNumArcsToConsider_;
13737 }
13738
13754
13755 relocateExpensiveChainNumArcsToConsider_ = value;
13756 bitField0_ |= 0x02000000;
13757 onChanged();
13758 return this;
13759 }
13760
13775 bitField0_ = (bitField0_ & ~0x02000000);
13776 relocateExpensiveChainNumArcsToConsider_ = 0;
13777 onChanged();
13778 return this;
13779 }
13780
13781 private int heuristicExpensiveChainLnsNumArcsToConsider_ ;
13791 @java.lang.Override
13793 return heuristicExpensiveChainLnsNumArcsToConsider_;
13794 }
13795
13806
13807 heuristicExpensiveChainLnsNumArcsToConsider_ = value;
13808 bitField0_ |= 0x04000000;
13809 onChanged();
13810 return this;
13811 }
13812
13822 bitField0_ = (bitField0_ & ~0x04000000);
13823 heuristicExpensiveChainLnsNumArcsToConsider_ = 0;
13824 onChanged();
13825 return this;
13826 }
13827
13828 private int heuristicCloseNodesLnsNumNodes_ ;
13838 @java.lang.Override
13840 return heuristicCloseNodesLnsNumNodes_;
13841 }
13842
13852 public Builder setHeuristicCloseNodesLnsNumNodes(int value) {
13853
13854 heuristicCloseNodesLnsNumNodes_ = value;
13855 bitField0_ |= 0x08000000;
13856 onChanged();
13857 return this;
13858 }
13859
13869 bitField0_ = (bitField0_ & ~0x08000000);
13870 heuristicCloseNodesLnsNumNodes_ = 0;
13871 onChanged();
13872 return this;
13873 }
13874
13875 private int localSearchMetaheuristic_ = 0;
13884 @java.lang.Override public int getLocalSearchMetaheuristicValue() {
13885 return localSearchMetaheuristic_;
13886 }
13887
13896 public Builder setLocalSearchMetaheuristicValue(int value) {
13897 localSearchMetaheuristic_ = value;
13898 bitField0_ |= 0x10000000;
13899 onChanged();
13900 return this;
13901 }
13902
13910 @java.lang.Override
13912 com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value result = com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value.forNumber(localSearchMetaheuristic_);
13914 }
13915
13924 public Builder setLocalSearchMetaheuristic(com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value value) {
13925 if (value == null) {
13926 throw new NullPointerException();
13927 }
13928 bitField0_ |= 0x10000000;
13929 localSearchMetaheuristic_ = value.getNumber();
13930 onChanged();
13931 return this;
13932 }
13933
13942 bitField0_ = (bitField0_ & ~0x10000000);
13943 localSearchMetaheuristic_ = 0;
13944 onChanged();
13945 return this;
13946 }
13947
13948 private com.google.protobuf.Internal.IntList localSearchMetaheuristics_ =
13949 emptyIntList();
13950 private void ensureLocalSearchMetaheuristicsIsMutable() {
13951 if (!((bitField0_ & 0x20000000) != 0)) {
13952 localSearchMetaheuristics_ = makeMutableCopy(localSearchMetaheuristics_);
13953 bitField0_ |= 0x20000000;
13954 }
13955 }
13967 public java.util.List<com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value> getLocalSearchMetaheuristicsList() {
13968 return new com.google.protobuf.Internal.IntListAdapter<
13969 com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value>(localSearchMetaheuristics_, localSearchMetaheuristics_converter_);
13970 }
13971
13983 return localSearchMetaheuristics_.size();
13984 }
13985
13998 return localSearchMetaheuristics_converter_.convert(localSearchMetaheuristics_.getInt(index));
13999 }
14000
14014 int index, com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value value) {
14015 if (value == null) {
14016 throw new NullPointerException();
14017 }
14018 ensureLocalSearchMetaheuristicsIsMutable();
14019 localSearchMetaheuristics_.setInt(index, value.getNumber());
14020 onChanged();
14021 return this;
14022 }
14023
14035 public Builder addLocalSearchMetaheuristics(com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value value) {
14036 if (value == null) {
14037 throw new NullPointerException();
14038 }
14039 ensureLocalSearchMetaheuristicsIsMutable();
14040 localSearchMetaheuristics_.addInt(value.getNumber());
14041 onChanged();
14042 return this;
14043 }
14044
14057 java.lang.Iterable<? extends com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value> values) {
14058 ensureLocalSearchMetaheuristicsIsMutable();
14059 for (com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value value : values) {
14060 localSearchMetaheuristics_.addInt(value.getNumber());
14061 }
14062 onChanged();
14063 return this;
14064 }
14065
14077 localSearchMetaheuristics_ = emptyIntList();
14078 bitField0_ = (bitField0_ & ~0x20000000);
14079 onChanged();
14080 return this;
14081 }
14082
14093 public java.util.List<java.lang.Integer>
14095 return java.util.Collections.unmodifiableList(localSearchMetaheuristics_);
14096 }
14097
14110 return localSearchMetaheuristics_.getInt(index);
14111 }
14112
14126 int index, int value) {
14127 ensureLocalSearchMetaheuristicsIsMutable();
14128 localSearchMetaheuristics_.setInt(index, value);
14129 onChanged();
14130 return this;
14131 }
14132
14144 public Builder addLocalSearchMetaheuristicsValue(int value) {
14145 ensureLocalSearchMetaheuristicsIsMutable();
14146 localSearchMetaheuristics_.addInt(value);
14147 onChanged();
14148 return this;
14149 }
14150
14163 java.lang.Iterable<java.lang.Integer> values) {
14164 ensureLocalSearchMetaheuristicsIsMutable();
14165 for (int value : values) {
14166 localSearchMetaheuristics_.addInt(value);
14167 }
14168 onChanged();
14169 return this;
14170 }
14171
14172 private int numMaxLocalOptimaBeforeMetaheuristicSwitch_ ;
14177 @java.lang.Override
14179 return numMaxLocalOptimaBeforeMetaheuristicSwitch_;
14180 }
14181
14187
14188 numMaxLocalOptimaBeforeMetaheuristicSwitch_ = value;
14189 bitField0_ |= 0x40000000;
14190 onChanged();
14191 return this;
14192 }
14193
14198 bitField0_ = (bitField0_ & ~0x40000000);
14199 numMaxLocalOptimaBeforeMetaheuristicSwitch_ = 0;
14200 onChanged();
14201 return this;
14202 }
14203
14204 private double guidedLocalSearchLambdaCoefficient_ ;
14216 @java.lang.Override
14218 return guidedLocalSearchLambdaCoefficient_;
14219 }
14220
14232 public Builder setGuidedLocalSearchLambdaCoefficient(double value) {
14233
14234 guidedLocalSearchLambdaCoefficient_ = value;
14235 bitField0_ |= 0x80000000;
14236 onChanged();
14237 return this;
14238 }
14239
14251 bitField0_ = (bitField0_ & ~0x80000000);
14252 guidedLocalSearchLambdaCoefficient_ = 0D;
14253 onChanged();
14254 return this;
14255 }
14256
14257 private boolean guidedLocalSearchResetPenaltiesOnNewBestSolution_ ;
14267 @java.lang.Override
14269 return guidedLocalSearchResetPenaltiesOnNewBestSolution_;
14270 }
14271
14282
14283 guidedLocalSearchResetPenaltiesOnNewBestSolution_ = value;
14284 bitField1_ |= 0x00000001;
14285 onChanged();
14286 return this;
14287 }
14288
14298 bitField1_ = (bitField1_ & ~0x00000001);
14299 guidedLocalSearchResetPenaltiesOnNewBestSolution_ = false;
14300 onChanged();
14301 return this;
14302 }
14303
14304 private boolean guidedLocalSearchPenalizeWithVehicleClasses_ ;
14315 @java.lang.Override
14317 return guidedLocalSearchPenalizeWithVehicleClasses_;
14318 }
14319
14331
14332 guidedLocalSearchPenalizeWithVehicleClasses_ = value;
14333 bitField1_ |= 0x00000002;
14334 onChanged();
14335 return this;
14336 }
14337
14348 bitField1_ = (bitField1_ & ~0x00000002);
14349 guidedLocalSearchPenalizeWithVehicleClasses_ = false;
14350 onChanged();
14351 return this;
14352 }
14353
14354 private boolean useGuidedLocalSearchPenaltiesInLocalSearchOperators_ ;
14364 @java.lang.Override
14366 return useGuidedLocalSearchPenaltiesInLocalSearchOperators_;
14367 }
14368
14379
14380 useGuidedLocalSearchPenaltiesInLocalSearchOperators_ = value;
14381 bitField1_ |= 0x00000004;
14382 onChanged();
14383 return this;
14384 }
14385
14395 bitField1_ = (bitField1_ & ~0x00000004);
14396 useGuidedLocalSearchPenaltiesInLocalSearchOperators_ = false;
14397 onChanged();
14398 return this;
14399 }
14400
14401 private boolean useDepthFirstSearch_ ;
14413 @java.lang.Override
14414 public boolean getUseDepthFirstSearch() {
14415 return useDepthFirstSearch_;
14416 }
14417
14429 public Builder setUseDepthFirstSearch(boolean value) {
14430
14431 useDepthFirstSearch_ = value;
14432 bitField1_ |= 0x00000008;
14433 onChanged();
14434 return this;
14435 }
14436
14447 public Builder clearUseDepthFirstSearch() {
14448 bitField1_ = (bitField1_ & ~0x00000008);
14449 useDepthFirstSearch_ = false;
14450 onChanged();
14451 return this;
14452 }
14453
14454 private int useCp_ = 0;
14465 @java.lang.Override public int getUseCpValue() {
14466 return useCp_;
14467 }
14468
14479 public Builder setUseCpValue(int value) {
14480 useCp_ = value;
14481 bitField1_ |= 0x00000010;
14482 onChanged();
14483 return this;
14484 }
14485
14495 @java.lang.Override
14497 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useCp_);
14498 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
14499 }
14500
14511 public Builder setUseCp(com.google.ortools.util.OptionalBoolean value) {
14512 if (value == null) {
14513 throw new NullPointerException();
14514 }
14515 bitField1_ |= 0x00000010;
14516 useCp_ = value.getNumber();
14517 onChanged();
14518 return this;
14519 }
14520
14530 public Builder clearUseCp() {
14531 bitField1_ = (bitField1_ & ~0x00000010);
14532 useCp_ = 0;
14533 onChanged();
14534 return this;
14535 }
14536
14537 private int useCpSat_ = 0;
14549 @java.lang.Override public int getUseCpSatValue() {
14550 return useCpSat_;
14551 }
14552
14564 public Builder setUseCpSatValue(int value) {
14565 useCpSat_ = value;
14566 bitField1_ |= 0x00000020;
14567 onChanged();
14568 return this;
14569 }
14570
14581 @java.lang.Override
14583 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useCpSat_);
14584 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
14585 }
14586
14598 public Builder setUseCpSat(com.google.ortools.util.OptionalBoolean value) {
14599 if (value == null) {
14600 throw new NullPointerException();
14601 }
14602 bitField1_ |= 0x00000020;
14603 useCpSat_ = value.getNumber();
14604 onChanged();
14605 return this;
14606 }
14607
14618 public Builder clearUseCpSat() {
14619 bitField1_ = (bitField1_ & ~0x00000020);
14620 useCpSat_ = 0;
14621 onChanged();
14622 return this;
14623 }
14624
14625 private int useGeneralizedCpSat_ = 0;
14637 @java.lang.Override public int getUseGeneralizedCpSatValue() {
14638 return useGeneralizedCpSat_;
14639 }
14640
14652 public Builder setUseGeneralizedCpSatValue(int value) {
14653 useGeneralizedCpSat_ = value;
14654 bitField1_ |= 0x00000040;
14655 onChanged();
14656 return this;
14657 }
14658
14669 @java.lang.Override
14671 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useGeneralizedCpSat_);
14672 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
14673 }
14674
14686 public Builder setUseGeneralizedCpSat(com.google.ortools.util.OptionalBoolean value) {
14687 if (value == null) {
14688 throw new NullPointerException();
14689 }
14690 bitField1_ |= 0x00000040;
14691 useGeneralizedCpSat_ = value.getNumber();
14692 onChanged();
14693 return this;
14694 }
14695
14706 public Builder clearUseGeneralizedCpSat() {
14707 bitField1_ = (bitField1_ & ~0x00000040);
14708 useGeneralizedCpSat_ = 0;
14709 onChanged();
14710 return this;
14711 }
14712
14713 private com.google.ortools.sat.SatParameters satParameters_;
14714 private com.google.protobuf.SingleFieldBuilder<
14715 com.google.ortools.sat.SatParameters, com.google.ortools.sat.SatParameters.Builder, com.google.ortools.sat.SatParametersOrBuilder> satParametersBuilder_;
14725 public boolean hasSatParameters() {
14726 return ((bitField1_ & 0x00000080) != 0);
14727 }
14728
14738 if (satParametersBuilder_ == null) {
14739 return satParameters_ == null ? com.google.ortools.sat.SatParameters.getDefaultInstance() : satParameters_;
14740 } else {
14741 return satParametersBuilder_.getMessage();
14742 }
14743 }
14744
14752 public Builder setSatParameters(com.google.ortools.sat.SatParameters value) {
14753 if (satParametersBuilder_ == null) {
14754 if (value == null) {
14755 throw new NullPointerException();
14756 }
14757 satParameters_ = value;
14758 } else {
14759 satParametersBuilder_.setMessage(value);
14760 }
14761 bitField1_ |= 0x00000080;
14762 onChanged();
14763 return this;
14764 }
14765
14773 public Builder setSatParameters(
14774 com.google.ortools.sat.SatParameters.Builder builderForValue) {
14775 if (satParametersBuilder_ == null) {
14776 satParameters_ = builderForValue.build();
14777 } else {
14778 satParametersBuilder_.setMessage(builderForValue.build());
14779 }
14780 bitField1_ |= 0x00000080;
14781 onChanged();
14782 return this;
14783 }
14784
14792 public Builder mergeSatParameters(com.google.ortools.sat.SatParameters value) {
14793 if (satParametersBuilder_ == null) {
14794 if (((bitField1_ & 0x00000080) != 0) &&
14795 satParameters_ != null &&
14796 satParameters_ != com.google.ortools.sat.SatParameters.getDefaultInstance()) {
14798 } else {
14799 satParameters_ = value;
14800 }
14801 } else {
14802 satParametersBuilder_.mergeFrom(value);
14803 }
14804 if (satParameters_ != null) {
14805 bitField1_ |= 0x00000080;
14806 onChanged();
14807 }
14808 return this;
14809 }
14810
14818 public Builder clearSatParameters() {
14819 bitField1_ = (bitField1_ & ~0x00000080);
14820 satParameters_ = null;
14821 if (satParametersBuilder_ != null) {
14822 satParametersBuilder_.dispose();
14823 satParametersBuilder_ = null;
14824 }
14825 onChanged();
14826 return this;
14827 }
14828
14837 bitField1_ |= 0x00000080;
14838 onChanged();
14839 return getSatParametersFieldBuilder().getBuilder();
14840 }
14841
14850 if (satParametersBuilder_ != null) {
14851 return satParametersBuilder_.getMessageOrBuilder();
14852 } else {
14853 return satParameters_ == null ?
14854 com.google.ortools.sat.SatParameters.getDefaultInstance() : satParameters_;
14855 }
14856 }
14857
14865 private com.google.protobuf.SingleFieldBuilder<
14866 com.google.ortools.sat.SatParameters, com.google.ortools.sat.SatParameters.Builder, com.google.ortools.sat.SatParametersOrBuilder>
14867 getSatParametersFieldBuilder() {
14868 if (satParametersBuilder_ == null) {
14869 satParametersBuilder_ = new com.google.protobuf.SingleFieldBuilder<
14870 com.google.ortools.sat.SatParameters, com.google.ortools.sat.SatParameters.Builder, com.google.ortools.sat.SatParametersOrBuilder>(
14872 getParentForChildren(),
14873 isClean());
14874 satParameters_ = null;
14875 }
14876 return satParametersBuilder_;
14877 }
14878
14879 private boolean reportIntermediateCpSatSolutions_ ;
14889 @java.lang.Override
14891 return reportIntermediateCpSatSolutions_;
14892 }
14893
14903 public Builder setReportIntermediateCpSatSolutions(boolean value) {
14904
14905 reportIntermediateCpSatSolutions_ = value;
14906 bitField1_ |= 0x00000100;
14907 onChanged();
14908 return this;
14909 }
14910
14920 bitField1_ = (bitField1_ & ~0x00000100);
14921 reportIntermediateCpSatSolutions_ = false;
14922 onChanged();
14923 return this;
14924 }
14925
14926 private int fallbackToCpSatSizeThreshold_ ;
14936 @java.lang.Override
14938 return fallbackToCpSatSizeThreshold_;
14939 }
14940
14950 public Builder setFallbackToCpSatSizeThreshold(int value) {
14951
14952 fallbackToCpSatSizeThreshold_ = value;
14953 bitField1_ |= 0x00000200;
14954 onChanged();
14955 return this;
14956 }
14957
14967 bitField1_ = (bitField1_ & ~0x00000200);
14968 fallbackToCpSatSizeThreshold_ = 0;
14969 onChanged();
14970 return this;
14971 }
14972
14973 private int continuousSchedulingSolver_ = 0;
14978 @java.lang.Override public int getContinuousSchedulingSolverValue() {
14979 return continuousSchedulingSolver_;
14980 }
14981
14986 public Builder setContinuousSchedulingSolverValue(int value) {
14987 continuousSchedulingSolver_ = value;
14988 bitField1_ |= 0x00000400;
14989 onChanged();
14990 return this;
14991 }
14992
14996 @java.lang.Override
14998 com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver result = com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.forNumber(continuousSchedulingSolver_);
15000 }
15001
15006 public Builder setContinuousSchedulingSolver(com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver value) {
15007 if (value == null) {
15008 throw new NullPointerException();
15009 }
15010 bitField1_ |= 0x00000400;
15011 continuousSchedulingSolver_ = value.getNumber();
15012 onChanged();
15013 return this;
15014 }
15015
15020 bitField1_ = (bitField1_ & ~0x00000400);
15021 continuousSchedulingSolver_ = 0;
15022 onChanged();
15023 return this;
15024 }
15025
15026 private int mixedIntegerSchedulingSolver_ = 0;
15031 @java.lang.Override public int getMixedIntegerSchedulingSolverValue() {
15032 return mixedIntegerSchedulingSolver_;
15033 }
15034
15039 public Builder setMixedIntegerSchedulingSolverValue(int value) {
15040 mixedIntegerSchedulingSolver_ = value;
15041 bitField1_ |= 0x00000800;
15042 onChanged();
15043 return this;
15044 }
15045
15049 @java.lang.Override
15051 com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver result = com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.forNumber(mixedIntegerSchedulingSolver_);
15053 }
15054
15059 public Builder setMixedIntegerSchedulingSolver(com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver value) {
15060 if (value == null) {
15061 throw new NullPointerException();
15062 }
15063 bitField1_ |= 0x00000800;
15064 mixedIntegerSchedulingSolver_ = value.getNumber();
15065 onChanged();
15066 return this;
15067 }
15068
15073 bitField1_ = (bitField1_ & ~0x00000800);
15074 mixedIntegerSchedulingSolver_ = 0;
15075 onChanged();
15076 return this;
15077 }
15078
15079 private boolean disableSchedulingBewareThisMayDegradePerformance_ ;
15089 @java.lang.Override
15091 return ((bitField1_ & 0x00001000) != 0);
15092 }
15093
15102 @java.lang.Override
15104 return disableSchedulingBewareThisMayDegradePerformance_;
15105 }
15106
15117
15118 disableSchedulingBewareThisMayDegradePerformance_ = value;
15119 bitField1_ |= 0x00001000;
15120 onChanged();
15121 return this;
15122 }
15123
15133 bitField1_ = (bitField1_ & ~0x00001000);
15134 disableSchedulingBewareThisMayDegradePerformance_ = false;
15135 onChanged();
15136 return this;
15137 }
15138
15139 private double optimizationStep_ ;
15150 @java.lang.Override
15151 public double getOptimizationStep() {
15152 return optimizationStep_;
15153 }
15154
15165 public Builder setOptimizationStep(double value) {
15166
15167 optimizationStep_ = value;
15168 bitField1_ |= 0x00002000;
15169 onChanged();
15170 return this;
15171 }
15172
15182 public Builder clearOptimizationStep() {
15183 bitField1_ = (bitField1_ & ~0x00002000);
15184 optimizationStep_ = 0D;
15185 onChanged();
15186 return this;
15187 }
15188
15189 private int numberOfSolutionsToCollect_ ;
15199 @java.lang.Override
15201 return numberOfSolutionsToCollect_;
15202 }
15203
15213 public Builder setNumberOfSolutionsToCollect(int value) {
15214
15215 numberOfSolutionsToCollect_ = value;
15216 bitField1_ |= 0x00004000;
15217 onChanged();
15218 return this;
15219 }
15220
15230 bitField1_ = (bitField1_ & ~0x00004000);
15231 numberOfSolutionsToCollect_ = 0;
15232 onChanged();
15233 return this;
15234 }
15235
15236 private long solutionLimit_ ;
15247 @java.lang.Override
15248 public long getSolutionLimit() {
15249 return solutionLimit_;
15250 }
15251
15262 public Builder setSolutionLimit(long value) {
15263
15264 solutionLimit_ = value;
15265 bitField1_ |= 0x00008000;
15266 onChanged();
15267 return this;
15268 }
15269
15279 public Builder clearSolutionLimit() {
15280 bitField1_ = (bitField1_ & ~0x00008000);
15281 solutionLimit_ = 0L;
15282 onChanged();
15283 return this;
15284 }
15285
15286 private com.google.protobuf.Duration timeLimit_;
15287 private com.google.protobuf.SingleFieldBuilder<
15288 com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> timeLimitBuilder_;
15297 public boolean hasTimeLimit() {
15298 return ((bitField1_ & 0x00010000) != 0);
15299 }
15300
15308 public com.google.protobuf.Duration getTimeLimit() {
15309 if (timeLimitBuilder_ == null) {
15310 return timeLimit_ == null ? com.google.protobuf.Duration.getDefaultInstance() : timeLimit_;
15311 } else {
15312 return timeLimitBuilder_.getMessage();
15313 }
15314 }
15315
15322 public Builder setTimeLimit(com.google.protobuf.Duration value) {
15323 if (timeLimitBuilder_ == null) {
15324 if (value == null) {
15325 throw new NullPointerException();
15326 }
15327 timeLimit_ = value;
15328 } else {
15329 timeLimitBuilder_.setMessage(value);
15330 }
15331 bitField1_ |= 0x00010000;
15332 onChanged();
15333 return this;
15334 }
15335
15342 public Builder setTimeLimit(
15343 com.google.protobuf.Duration.Builder builderForValue) {
15344 if (timeLimitBuilder_ == null) {
15345 timeLimit_ = builderForValue.build();
15346 } else {
15347 timeLimitBuilder_.setMessage(builderForValue.build());
15348 }
15349 bitField1_ |= 0x00010000;
15350 onChanged();
15351 return this;
15352 }
15353
15360 public Builder mergeTimeLimit(com.google.protobuf.Duration value) {
15361 if (timeLimitBuilder_ == null) {
15362 if (((bitField1_ & 0x00010000) != 0) &&
15363 timeLimit_ != null &&
15364 timeLimit_ != com.google.protobuf.Duration.getDefaultInstance()) {
15366 } else {
15367 timeLimit_ = value;
15368 }
15369 } else {
15370 timeLimitBuilder_.mergeFrom(value);
15371 }
15372 if (timeLimit_ != null) {
15373 bitField1_ |= 0x00010000;
15374 onChanged();
15375 }
15376 return this;
15377 }
15378
15385 public Builder clearTimeLimit() {
15386 bitField1_ = (bitField1_ & ~0x00010000);
15387 timeLimit_ = null;
15388 if (timeLimitBuilder_ != null) {
15389 timeLimitBuilder_.dispose();
15390 timeLimitBuilder_ = null;
15391 }
15392 onChanged();
15393 return this;
15394 }
15395
15402 public com.google.protobuf.Duration.Builder getTimeLimitBuilder() {
15403 bitField1_ |= 0x00010000;
15404 onChanged();
15405 return getTimeLimitFieldBuilder().getBuilder();
15406 }
15407
15414 public com.google.protobuf.DurationOrBuilder getTimeLimitOrBuilder() {
15415 if (timeLimitBuilder_ != null) {
15416 return timeLimitBuilder_.getMessageOrBuilder();
15417 } else {
15418 return timeLimit_ == null ?
15419 com.google.protobuf.Duration.getDefaultInstance() : timeLimit_;
15420 }
15421 }
15422
15429 private com.google.protobuf.SingleFieldBuilder<
15430 com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder>
15431 getTimeLimitFieldBuilder() {
15432 if (timeLimitBuilder_ == null) {
15433 timeLimitBuilder_ = new com.google.protobuf.SingleFieldBuilder<
15434 com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder>(
15435 getTimeLimit(),
15436 getParentForChildren(),
15437 isClean());
15438 timeLimit_ = null;
15439 }
15440 return timeLimitBuilder_;
15441 }
15442
15443 private com.google.protobuf.Duration lnsTimeLimit_;
15444 private com.google.protobuf.SingleFieldBuilder<
15445 com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> lnsTimeLimitBuilder_;
15455 public boolean hasLnsTimeLimit() {
15456 return ((bitField1_ & 0x00020000) != 0);
15457 }
15458
15467 public com.google.protobuf.Duration getLnsTimeLimit() {
15468 if (lnsTimeLimitBuilder_ == null) {
15469 return lnsTimeLimit_ == null ? com.google.protobuf.Duration.getDefaultInstance() : lnsTimeLimit_;
15470 } else {
15471 return lnsTimeLimitBuilder_.getMessage();
15472 }
15473 }
15474
15482 public Builder setLnsTimeLimit(com.google.protobuf.Duration value) {
15483 if (lnsTimeLimitBuilder_ == null) {
15484 if (value == null) {
15485 throw new NullPointerException();
15486 }
15487 lnsTimeLimit_ = value;
15488 } else {
15489 lnsTimeLimitBuilder_.setMessage(value);
15490 }
15491 bitField1_ |= 0x00020000;
15492 onChanged();
15493 return this;
15494 }
15495
15503 public Builder setLnsTimeLimit(
15504 com.google.protobuf.Duration.Builder builderForValue) {
15505 if (lnsTimeLimitBuilder_ == null) {
15506 lnsTimeLimit_ = builderForValue.build();
15507 } else {
15508 lnsTimeLimitBuilder_.setMessage(builderForValue.build());
15509 }
15510 bitField1_ |= 0x00020000;
15511 onChanged();
15512 return this;
15513 }
15514
15522 public Builder mergeLnsTimeLimit(com.google.protobuf.Duration value) {
15523 if (lnsTimeLimitBuilder_ == null) {
15524 if (((bitField1_ & 0x00020000) != 0) &&
15525 lnsTimeLimit_ != null &&
15526 lnsTimeLimit_ != com.google.protobuf.Duration.getDefaultInstance()) {
15528 } else {
15529 lnsTimeLimit_ = value;
15530 }
15531 } else {
15532 lnsTimeLimitBuilder_.mergeFrom(value);
15533 }
15534 if (lnsTimeLimit_ != null) {
15535 bitField1_ |= 0x00020000;
15536 onChanged();
15537 }
15538 return this;
15539 }
15540
15548 public Builder clearLnsTimeLimit() {
15549 bitField1_ = (bitField1_ & ~0x00020000);
15550 lnsTimeLimit_ = null;
15551 if (lnsTimeLimitBuilder_ != null) {
15552 lnsTimeLimitBuilder_.dispose();
15553 lnsTimeLimitBuilder_ = null;
15554 }
15555 onChanged();
15556 return this;
15557 }
15558
15566 public com.google.protobuf.Duration.Builder getLnsTimeLimitBuilder() {
15567 bitField1_ |= 0x00020000;
15568 onChanged();
15569 return getLnsTimeLimitFieldBuilder().getBuilder();
15570 }
15571
15579 public com.google.protobuf.DurationOrBuilder getLnsTimeLimitOrBuilder() {
15580 if (lnsTimeLimitBuilder_ != null) {
15581 return lnsTimeLimitBuilder_.getMessageOrBuilder();
15582 } else {
15583 return lnsTimeLimit_ == null ?
15584 com.google.protobuf.Duration.getDefaultInstance() : lnsTimeLimit_;
15585 }
15586 }
15587
15595 private com.google.protobuf.SingleFieldBuilder<
15596 com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder>
15597 getLnsTimeLimitFieldBuilder() {
15598 if (lnsTimeLimitBuilder_ == null) {
15599 lnsTimeLimitBuilder_ = new com.google.protobuf.SingleFieldBuilder<
15600 com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder>(
15602 getParentForChildren(),
15603 isClean());
15604 lnsTimeLimit_ = null;
15605 }
15606 return lnsTimeLimitBuilder_;
15607 }
15608
15609 private double secondaryLsTimeLimitRatio_ ;
15623 @java.lang.Override
15625 return secondaryLsTimeLimitRatio_;
15626 }
15627
15641 public Builder setSecondaryLsTimeLimitRatio(double value) {
15642
15643 secondaryLsTimeLimitRatio_ = value;
15644 bitField1_ |= 0x00040000;
15645 onChanged();
15646 return this;
15647 }
15648
15662 bitField1_ = (bitField1_ & ~0x00040000);
15663 secondaryLsTimeLimitRatio_ = 0D;
15664 onChanged();
15665 return this;
15666 }
15667
15669 private com.google.protobuf.SingleFieldBuilder<
15670 com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters, com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.Builder, com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParametersOrBuilder> improvementLimitParametersBuilder_;
15681 return ((bitField1_ & 0x00080000) != 0);
15682 }
15683
15693 if (improvementLimitParametersBuilder_ == null) {
15694 return improvementLimitParameters_ == null ? com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.getDefaultInstance() : improvementLimitParameters_;
15695 } else {
15696 return improvementLimitParametersBuilder_.getMessage();
15697 }
15698 }
15699
15707 public Builder setImprovementLimitParameters(com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters value) {
15708 if (improvementLimitParametersBuilder_ == null) {
15709 if (value == null) {
15710 throw new NullPointerException();
15711 }
15712 improvementLimitParameters_ = value;
15713 } else {
15714 improvementLimitParametersBuilder_.setMessage(value);
15715 }
15716 bitField1_ |= 0x00080000;
15717 onChanged();
15718 return this;
15719 }
15720
15729 com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.Builder builderForValue) {
15730 if (improvementLimitParametersBuilder_ == null) {
15731 improvementLimitParameters_ = builderForValue.build();
15732 } else {
15733 improvementLimitParametersBuilder_.setMessage(builderForValue.build());
15734 }
15735 bitField1_ |= 0x00080000;
15736 onChanged();
15737 return this;
15738 }
15739
15747 public Builder mergeImprovementLimitParameters(com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters value) {
15748 if (improvementLimitParametersBuilder_ == null) {
15749 if (((bitField1_ & 0x00080000) != 0) &&
15750 improvementLimitParameters_ != null &&
15751 improvementLimitParameters_ != com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.getDefaultInstance()) {
15752 getImprovementLimitParametersBuilder().mergeFrom(value);
15753 } else {
15754 improvementLimitParameters_ = value;
15755 }
15756 } else {
15757 improvementLimitParametersBuilder_.mergeFrom(value);
15758 }
15759 if (improvementLimitParameters_ != null) {
15760 bitField1_ |= 0x00080000;
15761 onChanged();
15762 }
15763 return this;
15764 }
15765
15774 bitField1_ = (bitField1_ & ~0x00080000);
15775 improvementLimitParameters_ = null;
15776 if (improvementLimitParametersBuilder_ != null) {
15777 improvementLimitParametersBuilder_.dispose();
15778 improvementLimitParametersBuilder_ = null;
15779 }
15780 onChanged();
15781 return this;
15782 }
15783
15792 bitField1_ |= 0x00080000;
15793 onChanged();
15794 return getImprovementLimitParametersFieldBuilder().getBuilder();
15795 }
15796
15805 if (improvementLimitParametersBuilder_ != null) {
15806 return improvementLimitParametersBuilder_.getMessageOrBuilder();
15807 } else {
15808 return improvementLimitParameters_ == null ?
15809 com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.getDefaultInstance() : improvementLimitParameters_;
15810 }
15811 }
15812
15820 private com.google.protobuf.SingleFieldBuilder<
15821 com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters, com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.Builder, com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParametersOrBuilder>
15822 getImprovementLimitParametersFieldBuilder() {
15823 if (improvementLimitParametersBuilder_ == null) {
15824 improvementLimitParametersBuilder_ = new com.google.protobuf.SingleFieldBuilder<
15825 com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters, com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.Builder, com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParametersOrBuilder>(
15827 getParentForChildren(),
15828 isClean());
15829 improvementLimitParameters_ = null;
15830 }
15831 return improvementLimitParametersBuilder_;
15832 }
15833
15834 private boolean useFullPropagation_ ;
15852 @java.lang.Override
15853 public boolean getUseFullPropagation() {
15854 return useFullPropagation_;
15855 }
15856
15874 public Builder setUseFullPropagation(boolean value) {
15875
15876 useFullPropagation_ = value;
15877 bitField1_ |= 0x00100000;
15878 onChanged();
15879 return this;
15880 }
15881
15898 public Builder clearUseFullPropagation() {
15899 bitField1_ = (bitField1_ & ~0x00100000);
15900 useFullPropagation_ = false;
15901 onChanged();
15902 return this;
15903 }
15904
15905 private boolean logSearch_ ;
15926 @java.lang.Override
15927 public boolean getLogSearch() {
15928 return logSearch_;
15929 }
15930
15951 public Builder setLogSearch(boolean value) {
15952
15953 logSearch_ = value;
15954 bitField1_ |= 0x00200000;
15955 onChanged();
15956 return this;
15957 }
15958
15978 public Builder clearLogSearch() {
15979 bitField1_ = (bitField1_ & ~0x00200000);
15980 logSearch_ = false;
15981 onChanged();
15982 return this;
15983 }
15984
15985 private double logCostScalingFactor_ ;
15995 @java.lang.Override
15996 public double getLogCostScalingFactor() {
15997 return logCostScalingFactor_;
15998 }
15999
16009 public Builder setLogCostScalingFactor(double value) {
16010
16011 logCostScalingFactor_ = value;
16012 bitField1_ |= 0x00400000;
16013 onChanged();
16014 return this;
16015 }
16016
16025 public Builder clearLogCostScalingFactor() {
16026 bitField1_ = (bitField1_ & ~0x00400000);
16027 logCostScalingFactor_ = 0D;
16028 onChanged();
16029 return this;
16030 }
16031
16032 private double logCostOffset_ ;
16037 @java.lang.Override
16038 public double getLogCostOffset() {
16039 return logCostOffset_;
16040 }
16041
16046 public Builder setLogCostOffset(double value) {
16047
16048 logCostOffset_ = value;
16049 bitField1_ |= 0x00800000;
16050 onChanged();
16051 return this;
16052 }
16053
16057 public Builder clearLogCostOffset() {
16058 bitField1_ = (bitField1_ & ~0x00800000);
16059 logCostOffset_ = 0D;
16060 onChanged();
16061 return this;
16062 }
16063
16064 private java.lang.Object logTag_ = "";
16074 public java.lang.String getLogTag() {
16075 java.lang.Object ref = logTag_;
16076 if (!(ref instanceof java.lang.String)) {
16077 com.google.protobuf.ByteString bs =
16078 (com.google.protobuf.ByteString) ref;
16079 java.lang.String s = bs.toStringUtf8();
16080 logTag_ = s;
16081 return s;
16082 } else {
16083 return (java.lang.String) ref;
16084 }
16085 }
16086
16095 public com.google.protobuf.ByteString
16097 java.lang.Object ref = logTag_;
16098 if (ref instanceof String) {
16099 com.google.protobuf.ByteString b =
16100 com.google.protobuf.ByteString.copyFromUtf8(
16101 (java.lang.String) ref);
16102 logTag_ = b;
16103 return b;
16104 } else {
16105 return (com.google.protobuf.ByteString) ref;
16106 }
16107 }
16108
16118 public Builder setLogTag(
16119 java.lang.String value) {
16120 if (value == null) { throw new NullPointerException(); }
16121 logTag_ = value;
16122 bitField1_ |= 0x01000000;
16123 onChanged();
16124 return this;
16125 }
16126
16135 public Builder clearLogTag() {
16136 logTag_ = getDefaultInstance().getLogTag();
16137 bitField1_ = (bitField1_ & ~0x01000000);
16138 onChanged();
16139 return this;
16140 }
16141
16151 public Builder setLogTagBytes(
16152 com.google.protobuf.ByteString value) {
16153 if (value == null) { throw new NullPointerException(); }
16154 checkByteStringIsUtf8(value);
16155 logTag_ = value;
16156 bitField1_ |= 0x01000000;
16157 onChanged();
16158 return this;
16159 }
16160
16161 private boolean useIteratedLocalSearch_ ;
16171 @java.lang.Override
16172 public boolean getUseIteratedLocalSearch() {
16173 return useIteratedLocalSearch_;
16174 }
16175
16185 public Builder setUseIteratedLocalSearch(boolean value) {
16186
16187 useIteratedLocalSearch_ = value;
16188 bitField1_ |= 0x02000000;
16189 onChanged();
16190 return this;
16191 }
16192
16202 bitField1_ = (bitField1_ & ~0x02000000);
16203 useIteratedLocalSearch_ = false;
16204 onChanged();
16205 return this;
16206 }
16207
16208 private com.google.ortools.constraintsolver.IteratedLocalSearchParameters iteratedLocalSearchParameters_;
16209 private com.google.protobuf.SingleFieldBuilder<
16210 com.google.ortools.constraintsolver.IteratedLocalSearchParameters, com.google.ortools.constraintsolver.IteratedLocalSearchParameters.Builder, com.google.ortools.constraintsolver.IteratedLocalSearchParametersOrBuilder> iteratedLocalSearchParametersBuilder_;
16220 return ((bitField1_ & 0x04000000) != 0);
16221 }
16222
16231 if (iteratedLocalSearchParametersBuilder_ == null) {
16232 return iteratedLocalSearchParameters_ == null ? com.google.ortools.constraintsolver.IteratedLocalSearchParameters.getDefaultInstance() : iteratedLocalSearchParameters_;
16233 } else {
16234 return iteratedLocalSearchParametersBuilder_.getMessage();
16235 }
16236 }
16237
16244 public Builder setIteratedLocalSearchParameters(com.google.ortools.constraintsolver.IteratedLocalSearchParameters value) {
16245 if (iteratedLocalSearchParametersBuilder_ == null) {
16246 if (value == null) {
16247 throw new NullPointerException();
16248 }
16249 iteratedLocalSearchParameters_ = value;
16250 } else {
16251 iteratedLocalSearchParametersBuilder_.setMessage(value);
16252 }
16253 bitField1_ |= 0x04000000;
16254 onChanged();
16255 return this;
16256 }
16257
16265 com.google.ortools.constraintsolver.IteratedLocalSearchParameters.Builder builderForValue) {
16266 if (iteratedLocalSearchParametersBuilder_ == null) {
16267 iteratedLocalSearchParameters_ = builderForValue.build();
16268 } else {
16269 iteratedLocalSearchParametersBuilder_.setMessage(builderForValue.build());
16270 }
16271 bitField1_ |= 0x04000000;
16272 onChanged();
16273 return this;
16274 }
16275
16282 public Builder mergeIteratedLocalSearchParameters(com.google.ortools.constraintsolver.IteratedLocalSearchParameters value) {
16283 if (iteratedLocalSearchParametersBuilder_ == null) {
16284 if (((bitField1_ & 0x04000000) != 0) &&
16285 iteratedLocalSearchParameters_ != null &&
16286 iteratedLocalSearchParameters_ != com.google.ortools.constraintsolver.IteratedLocalSearchParameters.getDefaultInstance()) {
16287 getIteratedLocalSearchParametersBuilder().mergeFrom(value);
16288 } else {
16289 iteratedLocalSearchParameters_ = value;
16290 }
16291 } else {
16292 iteratedLocalSearchParametersBuilder_.mergeFrom(value);
16293 }
16294 if (iteratedLocalSearchParameters_ != null) {
16295 bitField1_ |= 0x04000000;
16296 onChanged();
16297 }
16298 return this;
16299 }
16300
16308 bitField1_ = (bitField1_ & ~0x04000000);
16309 iteratedLocalSearchParameters_ = null;
16310 if (iteratedLocalSearchParametersBuilder_ != null) {
16311 iteratedLocalSearchParametersBuilder_.dispose();
16312 iteratedLocalSearchParametersBuilder_ = null;
16313 }
16314 onChanged();
16315 return this;
16316 }
16317
16325 bitField1_ |= 0x04000000;
16326 onChanged();
16327 return getIteratedLocalSearchParametersFieldBuilder().getBuilder();
16328 }
16329
16337 if (iteratedLocalSearchParametersBuilder_ != null) {
16338 return iteratedLocalSearchParametersBuilder_.getMessageOrBuilder();
16339 } else {
16340 return iteratedLocalSearchParameters_ == null ?
16341 com.google.ortools.constraintsolver.IteratedLocalSearchParameters.getDefaultInstance() : iteratedLocalSearchParameters_;
16342 }
16343 }
16344
16351 private com.google.protobuf.SingleFieldBuilder<
16352 com.google.ortools.constraintsolver.IteratedLocalSearchParameters, com.google.ortools.constraintsolver.IteratedLocalSearchParameters.Builder, com.google.ortools.constraintsolver.IteratedLocalSearchParametersOrBuilder>
16353 getIteratedLocalSearchParametersFieldBuilder() {
16354 if (iteratedLocalSearchParametersBuilder_ == null) {
16355 iteratedLocalSearchParametersBuilder_ = new com.google.protobuf.SingleFieldBuilder<
16356 com.google.ortools.constraintsolver.IteratedLocalSearchParameters, com.google.ortools.constraintsolver.IteratedLocalSearchParameters.Builder, com.google.ortools.constraintsolver.IteratedLocalSearchParametersOrBuilder>(
16358 getParentForChildren(),
16359 isClean());
16360 iteratedLocalSearchParameters_ = null;
16361 }
16362 return iteratedLocalSearchParametersBuilder_;
16363 }
16364
16365 // @@protoc_insertion_point(builder_scope:operations_research.RoutingSearchParameters)
16366 }
16367
16368 // @@protoc_insertion_point(class_scope:operations_research.RoutingSearchParameters)
16369 private static final com.google.ortools.constraintsolver.RoutingSearchParameters DEFAULT_INSTANCE;
16370 static {
16371 DEFAULT_INSTANCE = new com.google.ortools.constraintsolver.RoutingSearchParameters();
16372 }
16373
16375 return DEFAULT_INSTANCE;
16376 }
16377
16378 private static final com.google.protobuf.Parser<RoutingSearchParameters>
16379 PARSER = new com.google.protobuf.AbstractParser<RoutingSearchParameters>() {
16380 @java.lang.Override
16381 public RoutingSearchParameters parsePartialFrom(
16382 com.google.protobuf.CodedInputStream input,
16383 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
16384 throws com.google.protobuf.InvalidProtocolBufferException {
16385 Builder builder = newBuilder();
16386 try {
16387 builder.mergeFrom(input, extensionRegistry);
16388 } catch (com.google.protobuf.InvalidProtocolBufferException e) {
16389 throw e.setUnfinishedMessage(builder.buildPartial());
16390 } catch (com.google.protobuf.UninitializedMessageException e) {
16391 throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
16392 } catch (java.io.IOException e) {
16393 throw new com.google.protobuf.InvalidProtocolBufferException(e)
16394 .setUnfinishedMessage(builder.buildPartial());
16395 }
16396 return builder.buildPartial();
16397 }
16398 };
16399
16400 public static com.google.protobuf.Parser<RoutingSearchParameters> parser() {
16401 return PARSER;
16402 }
16403
16404 @java.lang.Override
16405 public com.google.protobuf.Parser<RoutingSearchParameters> getParserForType() {
16406 return PARSER;
16407 }
16408
16409 @java.lang.Override
16411 return DEFAULT_INSTANCE;
16412 }
16413
16414}
16415
Builder setLocalCheapestCostInsertionPickupDeliveryStrategy(com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy value)
Builder mergeFrom(com.google.ortools.constraintsolver.RoutingSearchParameters other)
com.google.ortools.constraintsolver.RoutingSearchParameters buildPartial()
Builder setLnsTimeLimit(com.google.protobuf.Duration.Builder builderForValue)
Builder setImprovementLimitParameters(com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters value)
com.google.ortools.constraintsolver.RoutingSearchParameters.InsertionSortingProperty getLocalCheapestInsertionSortingProperties(int index)
Builder setLocalCheapestInsertionSortingProperties(int index, com.google.ortools.constraintsolver.RoutingSearchParameters.InsertionSortingProperty value)
com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value getLocalSearchMetaheuristics(int index)
com.google.ortools.constraintsolver.IteratedLocalSearchParametersOrBuilder getIteratedLocalSearchParametersOrBuilder()
Builder setFirstSolutionStrategy(com.google.ortools.constraintsolver.FirstSolutionStrategy.Value value)
com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.Builder getLocalSearchOperatorsBuilder()
Builder setIteratedLocalSearchParameters(com.google.ortools.constraintsolver.IteratedLocalSearchParameters value)
Builder setLocalSearchOperators(com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.Builder builderForValue)
com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters getImprovementLimitParameters()
com.google.ortools.constraintsolver.RoutingSearchParameters build()
Builder mergeIteratedLocalSearchParameters(com.google.ortools.constraintsolver.IteratedLocalSearchParameters value)
Builder addAllLocalSearchMetaheuristics(java.lang.Iterable<? extends com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value > values)
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 addAllLocalCheapestInsertionSortingProperties(java.lang.Iterable<? extends com.google.ortools.constraintsolver.RoutingSearchParameters.InsertionSortingProperty > values)
Builder addLocalSearchMetaheuristics(com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value value)
Builder setContinuousSchedulingSolver(com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver 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()
com.google.ortools.constraintsolver.IteratedLocalSearchParameters getIteratedLocalSearchParameters()
Builder addLocalCheapestInsertionSortingProperties(com.google.ortools.constraintsolver.RoutingSearchParameters.InsertionSortingProperty value)
Builder setUseGeneralizedCpSat(com.google.ortools.util.OptionalBoolean value)
java.util.List< com.google.ortools.constraintsolver.RoutingSearchParameters.InsertionSortingProperty > getLocalCheapestInsertionSortingPropertiesList()
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 addAllLocalCheapestInsertionSortingPropertiesValue(java.lang.Iterable< java.lang.Integer > values)
Builder setTimeLimit(com.google.protobuf.Duration.Builder builderForValue)
Builder setLocalSearchMetaheuristics(int index, com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value value)
com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParametersOrBuilder getImprovementLimitParametersOrBuilder()
com.google.ortools.constraintsolver.IteratedLocalSearchParameters.Builder getIteratedLocalSearchParametersBuilder()
Builder mergeSatParameters(com.google.ortools.sat.SatParameters value)
Builder setLocalCheapestInsertionPickupDeliveryStrategy(com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy value)
java.util.List< com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value > getLocalSearchMetaheuristicsList()
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)
Builder addAllLocalSearchMetaheuristicsValue(java.lang.Iterable< java.lang.Integer > values)
Builder setIteratedLocalSearchParameters(com.google.ortools.constraintsolver.IteratedLocalSearchParameters.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.IteratedLocalSearchParameters getIteratedLocalSearchParameters()
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)
com.google.ortools.constraintsolver.IteratedLocalSearchParametersOrBuilder getIteratedLocalSearchParametersOrBuilder()
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)
java.util.List< com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value > getLocalSearchMetaheuristicsList()
com.google.ortools.constraintsolver.FirstSolutionStrategy.Value getFirstSolutionStrategy()
com.google.ortools.sat.SatParametersOrBuilder getSatParametersOrBuilder()
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)
com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value getLocalSearchMetaheuristics(int index)
java.util.List< com.google.ortools.constraintsolver.RoutingSearchParameters.InsertionSortingProperty > getLocalCheapestInsertionSortingPropertiesList()
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)
com.google.ortools.constraintsolver.RoutingSearchParameters.InsertionSortingProperty getLocalCheapestInsertionSortingProperties(int index)
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()
java.util.List< java.lang.Integer > getLocalCheapestInsertionSortingPropertiesValueList()
static InsertionSortingProperty valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static com.google.protobuf.Internal.EnumLiteMap< InsertionSortingProperty > internalGetValueMap()
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()