Google OR-Tools v9.14
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.31.1
5
6package com.google.ortools.constraintsolver;
7
21@com.google.protobuf.Generated
22public final class RoutingSearchParameters extends
23 com.google.protobuf.GeneratedMessage implements
24 // @@protoc_insertion_point(message_implements:operations_research.RoutingSearchParameters)
26private static final long serialVersionUID = 0L;
27 static {
28 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
29 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
30 /* major= */ 4,
31 /* minor= */ 31,
32 /* patch= */ 1,
33 /* suffix= */ "",
34 RoutingSearchParameters.class.getName());
35 }
36 // Use RoutingSearchParameters.newBuilder() to construct.
37 private RoutingSearchParameters(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
38 super(builder);
39 }
40 private RoutingSearchParameters() {
41 firstSolutionStrategy_ = 0;
42 localCheapestInsertionPickupDeliveryStrategy_ = 0;
43 localCheapestCostInsertionPickupDeliveryStrategy_ = 0;
44 localCheapestInsertionSortingProperties_ = emptyIntList();
45 localSearchMetaheuristic_ = 0;
46 localSearchMetaheuristics_ = emptyIntList();
47 useCp_ = 0;
48 useCpSat_ = 0;
49 useGeneralizedCpSat_ = 0;
50 continuousSchedulingSolver_ = 0;
51 mixedIntegerSchedulingSolver_ = 0;
52 logTag_ = "";
53 }
54
55 public static final com.google.protobuf.Descriptors.Descriptor
57 return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_descriptor;
58 }
59
60 @java.lang.Override
61 protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
63 return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_fieldAccessorTable
64 .ensureFieldAccessorsInitialized(
65 com.google.ortools.constraintsolver.RoutingSearchParameters.class, com.google.ortools.constraintsolver.RoutingSearchParameters.Builder.class);
66 }
67
77 public enum PairInsertionStrategy
78 implements com.google.protobuf.ProtocolMessageEnum {
116 ;
117
118 static {
119 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
120 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
121 /* major= */ 4,
122 /* minor= */ 31,
123 /* patch= */ 1,
124 /* suffix= */ "",
125 PairInsertionStrategy.class.getName());
126 }
134 public static final int AUTOMATIC_VALUE = 0;
142 public static final int BEST_PICKUP_THEN_BEST_DELIVERY_VALUE = 1;
150 public static final int BEST_PICKUP_DELIVERY_PAIR_VALUE = 2;
162 public static final int BEST_PICKUP_DELIVERY_PAIR_MULTITOUR_VALUE = 3;
163
164
165 public final int getNumber() {
166 if (this == UNRECOGNIZED) {
167 throw new java.lang.IllegalArgumentException(
168 "Can't get the number of an unknown enum value.");
169 }
170 return value;
171 }
172
178 @java.lang.Deprecated
179 public static PairInsertionStrategy valueOf(int value) {
180 return forNumber(value);
181 }
182
187 public static PairInsertionStrategy forNumber(int value) {
188 switch (value) {
189 case 0: return AUTOMATIC;
190 case 1: return BEST_PICKUP_THEN_BEST_DELIVERY;
191 case 2: return BEST_PICKUP_DELIVERY_PAIR;
193 default: return null;
194 }
195 }
196
197 public static com.google.protobuf.Internal.EnumLiteMap<PairInsertionStrategy>
199 return internalValueMap;
200 }
201 private static final com.google.protobuf.Internal.EnumLiteMap<
202 PairInsertionStrategy> internalValueMap =
203 new com.google.protobuf.Internal.EnumLiteMap<PairInsertionStrategy>() {
204 public PairInsertionStrategy findValueByNumber(int number) {
205 return PairInsertionStrategy.forNumber(number);
206 }
207 };
208
209 public final com.google.protobuf.Descriptors.EnumValueDescriptor
211 if (this == UNRECOGNIZED) {
212 throw new java.lang.IllegalStateException(
213 "Can't get the descriptor of an unrecognized enum value.");
214 }
215 return getDescriptor().getValues().get(ordinal());
216 }
217 public final com.google.protobuf.Descriptors.EnumDescriptor
219 return getDescriptor();
220 }
221 public static com.google.protobuf.Descriptors.EnumDescriptor
223 return com.google.ortools.constraintsolver.RoutingSearchParameters.getDescriptor().getEnumTypes().get(0);
224 }
225
226 private static final PairInsertionStrategy[] VALUES = values();
227
228 public static PairInsertionStrategy valueOf(
229 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
230 if (desc.getType() != getDescriptor()) {
231 throw new java.lang.IllegalArgumentException(
232 "EnumValueDescriptor is not for this type.");
233 }
234 if (desc.getIndex() == -1) {
235 return UNRECOGNIZED;
236 }
237 return VALUES[desc.getIndex()];
238 }
239
240 private final int value;
241
242 private PairInsertionStrategy(int value) {
243 this.value = value;
244 }
245
246 // @@protoc_insertion_point(enum_scope:operations_research.RoutingSearchParameters.PairInsertionStrategy)
247 }
248
257 public enum InsertionSortingProperty
258 implements com.google.protobuf.ProtocolMessageEnum {
336 ;
337
338 static {
339 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
340 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
341 /* major= */ 4,
342 /* minor= */ 31,
343 /* patch= */ 1,
344 /* suffix= */ "",
345 InsertionSortingProperty.class.getName());
346 }
354 public static final int SORTING_PROPERTY_UNSPECIFIED_VALUE = 0;
362 public static final int SORTING_PROPERTY_ALLOWED_VEHICLES_VALUE = 1;
370 public static final int SORTING_PROPERTY_PENALTY_VALUE = 2;
422 public static final int SORTING_PROPERTY_RANDOM_VALUE = 8;
423
424
425 public final int getNumber() {
426 if (this == UNRECOGNIZED) {
427 throw new java.lang.IllegalArgumentException(
428 "Can't get the number of an unknown enum value.");
429 }
430 return value;
431 }
432
438 @java.lang.Deprecated
439 public static InsertionSortingProperty valueOf(int value) {
440 return forNumber(value);
441 }
442
447 public static InsertionSortingProperty forNumber(int value) {
448 switch (value) {
449 case 0: return SORTING_PROPERTY_UNSPECIFIED;
451 case 2: return SORTING_PROPERTY_PENALTY;
457 case 8: return SORTING_PROPERTY_RANDOM;
458 default: return null;
459 }
460 }
461
462 public static com.google.protobuf.Internal.EnumLiteMap<InsertionSortingProperty>
464 return internalValueMap;
465 }
466 private static final com.google.protobuf.Internal.EnumLiteMap<
467 InsertionSortingProperty> internalValueMap =
468 new com.google.protobuf.Internal.EnumLiteMap<InsertionSortingProperty>() {
469 public InsertionSortingProperty findValueByNumber(int number) {
470 return InsertionSortingProperty.forNumber(number);
471 }
472 };
473
474 public final com.google.protobuf.Descriptors.EnumValueDescriptor
476 if (this == UNRECOGNIZED) {
477 throw new java.lang.IllegalStateException(
478 "Can't get the descriptor of an unrecognized enum value.");
479 }
480 return getDescriptor().getValues().get(ordinal());
481 }
482 public final com.google.protobuf.Descriptors.EnumDescriptor
484 return getDescriptor();
485 }
486 public static com.google.protobuf.Descriptors.EnumDescriptor
488 return com.google.ortools.constraintsolver.RoutingSearchParameters.getDescriptor().getEnumTypes().get(1);
489 }
490
491 private static final InsertionSortingProperty[] VALUES = values();
492
493 public static InsertionSortingProperty valueOf(
494 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
495 if (desc.getType() != getDescriptor()) {
496 throw new java.lang.IllegalArgumentException(
497 "EnumValueDescriptor is not for this type.");
498 }
499 if (desc.getIndex() == -1) {
500 return UNRECOGNIZED;
501 }
502 return VALUES[desc.getIndex()];
503 }
504
505 private final int value;
506
507 private InsertionSortingProperty(int value) {
508 this.value = value;
509 }
510
511 // @@protoc_insertion_point(enum_scope:operations_research.RoutingSearchParameters.InsertionSortingProperty)
512 }
513
522 public enum SchedulingSolver
523 implements com.google.protobuf.ProtocolMessageEnum {
537 ;
538
539 static {
540 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
541 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
542 /* major= */ 4,
543 /* minor= */ 31,
544 /* patch= */ 1,
545 /* suffix= */ "",
546 SchedulingSolver.class.getName());
547 }
551 public static final int SCHEDULING_UNSET_VALUE = 0;
555 public static final int SCHEDULING_GLOP_VALUE = 1;
559 public static final int SCHEDULING_CP_SAT_VALUE = 2;
560
561
562 public final int getNumber() {
563 if (this == UNRECOGNIZED) {
564 throw new java.lang.IllegalArgumentException(
565 "Can't get the number of an unknown enum value.");
566 }
567 return value;
568 }
569
575 @java.lang.Deprecated
576 public static SchedulingSolver valueOf(int value) {
577 return forNumber(value);
578 }
579
584 public static SchedulingSolver forNumber(int value) {
585 switch (value) {
586 case 0: return SCHEDULING_UNSET;
587 case 1: return SCHEDULING_GLOP;
588 case 2: return SCHEDULING_CP_SAT;
589 default: return null;
590 }
591 }
592
593 public static com.google.protobuf.Internal.EnumLiteMap<SchedulingSolver>
595 return internalValueMap;
596 }
597 private static final com.google.protobuf.Internal.EnumLiteMap<
598 SchedulingSolver> internalValueMap =
599 new com.google.protobuf.Internal.EnumLiteMap<SchedulingSolver>() {
600 public SchedulingSolver findValueByNumber(int number) {
601 return SchedulingSolver.forNumber(number);
602 }
603 };
604
605 public final com.google.protobuf.Descriptors.EnumValueDescriptor
607 if (this == UNRECOGNIZED) {
608 throw new java.lang.IllegalStateException(
609 "Can't get the descriptor of an unrecognized enum value.");
610 }
611 return getDescriptor().getValues().get(ordinal());
612 }
613 public final com.google.protobuf.Descriptors.EnumDescriptor
615 return getDescriptor();
616 }
617 public static com.google.protobuf.Descriptors.EnumDescriptor
619 return com.google.ortools.constraintsolver.RoutingSearchParameters.getDescriptor().getEnumTypes().get(2);
620 }
621
622 private static final SchedulingSolver[] VALUES = values();
623
624 public static SchedulingSolver valueOf(
625 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
626 if (desc.getType() != getDescriptor()) {
627 throw new java.lang.IllegalArgumentException(
628 "EnumValueDescriptor is not for this type.");
629 }
630 if (desc.getIndex() == -1) {
631 return UNRECOGNIZED;
632 }
633 return VALUES[desc.getIndex()];
634 }
635
636 private final int value;
637
638 private SchedulingSolver(int value) {
639 this.value = value;
640 }
641
642 // @@protoc_insertion_point(enum_scope:operations_research.RoutingSearchParameters.SchedulingSolver)
643 }
644
646 // @@protoc_insertion_point(interface_extends:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
647 com.google.protobuf.MessageOrBuilder {
648
683
718
749
810
855
886
917
938
973
992
1029
1066
1105
1130
1159
1190
1227
1256
1291
1318
1347
1374
1403
1440
1469
1490
1529
1562
1581
1610
1633
1656
1675
1698
1723
1744
1769
1790 }
1791
1799 public static final class LocalSearchNeighborhoodOperators extends
1800 com.google.protobuf.GeneratedMessage implements
1801 // @@protoc_insertion_point(message_implements:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
1803 private static final long serialVersionUID = 0L;
1804 static {
1805 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
1806 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
1807 /* major= */ 4,
1808 /* minor= */ 31,
1809 /* patch= */ 1,
1810 /* suffix= */ "",
1811 LocalSearchNeighborhoodOperators.class.getName());
1812 }
1813 // Use LocalSearchNeighborhoodOperators.newBuilder() to construct.
1814 private LocalSearchNeighborhoodOperators(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
1815 super(builder);
1816 }
1817 private LocalSearchNeighborhoodOperators() {
1818 useRelocate_ = 0;
1819 useRelocatePair_ = 0;
1820 useLightRelocatePair_ = 0;
1821 useRelocateNeighbors_ = 0;
1822 useRelocateSubtrip_ = 0;
1823 useExchange_ = 0;
1824 useExchangePair_ = 0;
1825 useExchangeSubtrip_ = 0;
1826 useCross_ = 0;
1827 useCrossExchange_ = 0;
1828 useRelocateExpensiveChain_ = 0;
1829 useTwoOpt_ = 0;
1830 useOrOpt_ = 0;
1831 useLinKernighan_ = 0;
1832 useTspOpt_ = 0;
1833 useMakeActive_ = 0;
1834 useRelocateAndMakeActive_ = 0;
1835 useExchangeAndMakeActive_ = 0;
1836 useExchangePathStartEndsAndMakeActive_ = 0;
1837 useMakeInactive_ = 0;
1838 useMakeChainInactive_ = 0;
1839 useSwapActive_ = 0;
1840 useSwapActiveChain_ = 0;
1841 useExtendedSwapActive_ = 0;
1842 useShortestPathSwapActive_ = 0;
1843 useShortestPathTwoOpt_ = 0;
1844 useNodePairSwapActive_ = 0;
1845 usePathLns_ = 0;
1846 useFullPathLns_ = 0;
1847 useTspLns_ = 0;
1848 useInactiveLns_ = 0;
1849 useGlobalCheapestInsertionPathLns_ = 0;
1850 useLocalCheapestInsertionPathLns_ = 0;
1851 useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = 0;
1852 useGlobalCheapestInsertionExpensiveChainLns_ = 0;
1853 useLocalCheapestInsertionExpensiveChainLns_ = 0;
1854 useGlobalCheapestInsertionCloseNodesLns_ = 0;
1855 useLocalCheapestInsertionCloseNodesLns_ = 0;
1856 }
1857
1858 public static final com.google.protobuf.Descriptors.Descriptor
1860 return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_LocalSearchNeighborhoodOperators_descriptor;
1861 }
1862
1863 @java.lang.Override
1864 protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
1866 return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_LocalSearchNeighborhoodOperators_fieldAccessorTable
1867 .ensureFieldAccessorsInitialized(
1868 com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.class, com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.Builder.class);
1869 }
1870
1871 public static final int USE_RELOCATE_FIELD_NUMBER = 1;
1872 private int useRelocate_ = 0;
1889 @java.lang.Override public int getUseRelocateValue() {
1890 return useRelocate_;
1891 }
1892
1909 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useRelocate_);
1910 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
1911 }
1912
1913 public static final int USE_RELOCATE_PAIR_FIELD_NUMBER = 2;
1914 private int useRelocatePair_ = 0;
1931 @java.lang.Override public int getUseRelocatePairValue() {
1932 return useRelocatePair_;
1933 }
1934
1951 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useRelocatePair_);
1952 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
1953 }
1954
1955 public static final int USE_LIGHT_RELOCATE_PAIR_FIELD_NUMBER = 24;
1956 private int useLightRelocatePair_ = 0;
1971 @java.lang.Override public int getUseLightRelocatePairValue() {
1972 return useLightRelocatePair_;
1973 }
1974
1989 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useLightRelocatePair_);
1990 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
1991 }
1992
1993 public static final int USE_RELOCATE_NEIGHBORS_FIELD_NUMBER = 3;
1994 private int useRelocateNeighbors_ = 0;
2024 @java.lang.Override public int getUseRelocateNeighborsValue() {
2025 return useRelocateNeighbors_;
2026 }
2027
2057 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useRelocateNeighbors_);
2058 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2059 }
2060
2061 public static final int USE_RELOCATE_SUBTRIP_FIELD_NUMBER = 25;
2062 private int useRelocateSubtrip_ = 0;
2084 @java.lang.Override public int getUseRelocateSubtripValue() {
2085 return useRelocateSubtrip_;
2086 }
2087
2109 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useRelocateSubtrip_);
2110 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2111 }
2112
2113 public static final int USE_EXCHANGE_FIELD_NUMBER = 4;
2114 private int useExchange_ = 0;
2129 @java.lang.Override public int getUseExchangeValue() {
2130 return useExchange_;
2131 }
2132
2147 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useExchange_);
2148 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2149 }
2150
2151 public static final int USE_EXCHANGE_PAIR_FIELD_NUMBER = 22;
2152 private int useExchangePair_ = 0;
2167 @java.lang.Override public int getUseExchangePairValue() {
2168 return useExchangePair_;
2169 }
2170
2185 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useExchangePair_);
2186 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2187 }
2188
2189 public static final int USE_EXCHANGE_SUBTRIP_FIELD_NUMBER = 26;
2190 private int useExchangeSubtrip_ = 0;
2200 @java.lang.Override public int getUseExchangeSubtripValue() {
2201 return useExchangeSubtrip_;
2202 }
2203
2213 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useExchangeSubtrip_);
2214 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2215 }
2216
2217 public static final int USE_CROSS_FIELD_NUMBER = 5;
2218 private int useCross_ = 0;
2235 @java.lang.Override public int getUseCrossValue() {
2236 return useCross_;
2237 }
2238
2255 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useCross_);
2256 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2257 }
2258
2259 public static final int USE_CROSS_EXCHANGE_FIELD_NUMBER = 6;
2260 private int useCrossExchange_ = 0;
2269 @java.lang.Override public int getUseCrossExchangeValue() {
2270 return useCrossExchange_;
2271 }
2272
2281 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useCrossExchange_);
2282 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2283 }
2284
2285 public static final int USE_RELOCATE_EXPENSIVE_CHAIN_FIELD_NUMBER = 23;
2286 private int useRelocateExpensiveChain_ = 0;
2304 @java.lang.Override public int getUseRelocateExpensiveChainValue() {
2305 return useRelocateExpensiveChain_;
2306 }
2307
2325 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useRelocateExpensiveChain_);
2326 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2327 }
2328
2329 public static final int USE_TWO_OPT_FIELD_NUMBER = 7;
2330 private int useTwoOpt_ = 0;
2348 @java.lang.Override public int getUseTwoOptValue() {
2349 return useTwoOpt_;
2350 }
2351
2369 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useTwoOpt_);
2370 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2371 }
2372
2373 public static final int USE_OR_OPT_FIELD_NUMBER = 8;
2374 private int useOrOpt_ = 0;
2393 @java.lang.Override public int getUseOrOptValue() {
2394 return useOrOpt_;
2395 }
2396
2415 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useOrOpt_);
2416 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2417 }
2418
2419 public static final int USE_LIN_KERNIGHAN_FIELD_NUMBER = 9;
2420 private int useLinKernighan_ = 0;
2432 @java.lang.Override public int getUseLinKernighanValue() {
2433 return useLinKernighan_;
2434 }
2435
2447 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useLinKernighan_);
2448 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2449 }
2450
2451 public static final int USE_TSP_OPT_FIELD_NUMBER = 10;
2452 private int useTspOpt_ = 0;
2466 @java.lang.Override public int getUseTspOptValue() {
2467 return useTspOpt_;
2468 }
2469
2483 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useTspOpt_);
2484 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2485 }
2486
2487 public static final int USE_MAKE_ACTIVE_FIELD_NUMBER = 11;
2488 private int useMakeActive_ = 0;
2503 @java.lang.Override public int getUseMakeActiveValue() {
2504 return useMakeActive_;
2505 }
2506
2521 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useMakeActive_);
2522 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2523 }
2524
2525 public static final int USE_RELOCATE_AND_MAKE_ACTIVE_FIELD_NUMBER = 21;
2526 private int useRelocateAndMakeActive_ = 0;
2544 @java.lang.Override public int getUseRelocateAndMakeActiveValue() {
2545 return useRelocateAndMakeActive_;
2546 }
2547
2565 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useRelocateAndMakeActive_);
2566 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2567 }
2568
2569 public static final int USE_EXCHANGE_AND_MAKE_ACTIVE_FIELD_NUMBER = 37;
2570 private int useExchangeAndMakeActive_ = 0;
2584 @java.lang.Override public int getUseExchangeAndMakeActiveValue() {
2585 return useExchangeAndMakeActive_;
2586 }
2587
2601 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useExchangeAndMakeActive_);
2602 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2603 }
2604
2606 private int useExchangePathStartEndsAndMakeActive_ = 0;
2623 @java.lang.Override public int getUseExchangePathStartEndsAndMakeActiveValue() {
2624 return useExchangePathStartEndsAndMakeActive_;
2625 }
2626
2643 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useExchangePathStartEndsAndMakeActive_);
2644 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2645 }
2646
2647 public static final int USE_MAKE_INACTIVE_FIELD_NUMBER = 12;
2648 private int useMakeInactive_ = 0;
2661 @java.lang.Override public int getUseMakeInactiveValue() {
2662 return useMakeInactive_;
2663 }
2664
2677 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useMakeInactive_);
2678 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2679 }
2680
2681 public static final int USE_MAKE_CHAIN_INACTIVE_FIELD_NUMBER = 13;
2682 private int useMakeChainInactive_ = 0;
2696 @java.lang.Override public int getUseMakeChainInactiveValue() {
2697 return useMakeChainInactive_;
2698 }
2699
2713 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useMakeChainInactive_);
2714 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2715 }
2716
2717 public static final int USE_SWAP_ACTIVE_FIELD_NUMBER = 14;
2718 private int useSwapActive_ = 0;
2731 @java.lang.Override public int getUseSwapActiveValue() {
2732 return useSwapActive_;
2733 }
2734
2747 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useSwapActive_);
2748 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2749 }
2750
2751 public static final int USE_SWAP_ACTIVE_CHAIN_FIELD_NUMBER = 35;
2752 private int useSwapActiveChain_ = 0;
2766 @java.lang.Override public int getUseSwapActiveChainValue() {
2767 return useSwapActiveChain_;
2768 }
2769
2783 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useSwapActiveChain_);
2784 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2785 }
2786
2787 public static final int USE_EXTENDED_SWAP_ACTIVE_FIELD_NUMBER = 15;
2788 private int useExtendedSwapActive_ = 0;
2806 @java.lang.Override public int getUseExtendedSwapActiveValue() {
2807 return useExtendedSwapActive_;
2808 }
2809
2827 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useExtendedSwapActive_);
2828 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2829 }
2830
2832 private int useShortestPathSwapActive_ = 0;
2846 @java.lang.Override public int getUseShortestPathSwapActiveValue() {
2847 return useShortestPathSwapActive_;
2848 }
2849
2863 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useShortestPathSwapActive_);
2864 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2865 }
2866
2867 public static final int USE_SHORTEST_PATH_TWO_OPT_FIELD_NUMBER = 36;
2868 private int useShortestPathTwoOpt_ = 0;
2878 @java.lang.Override public int getUseShortestPathTwoOptValue() {
2879 return useShortestPathTwoOpt_;
2880 }
2881
2891 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useShortestPathTwoOpt_);
2892 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2893 }
2894
2895 public static final int USE_NODE_PAIR_SWAP_ACTIVE_FIELD_NUMBER = 20;
2896 private int useNodePairSwapActive_ = 0;
2915 @java.lang.Override public int getUseNodePairSwapActiveValue() {
2916 return useNodePairSwapActive_;
2917 }
2918
2937 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useNodePairSwapActive_);
2938 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2939 }
2940
2941 public static final int USE_PATH_LNS_FIELD_NUMBER = 16;
2942 private int usePathLns_ = 0;
2958 @java.lang.Override public int getUsePathLnsValue() {
2959 return usePathLns_;
2960 }
2961
2977 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(usePathLns_);
2978 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
2979 }
2980
2981 public static final int USE_FULL_PATH_LNS_FIELD_NUMBER = 17;
2982 private int useFullPathLns_ = 0;
2991 @java.lang.Override public int getUseFullPathLnsValue() {
2992 return useFullPathLns_;
2993 }
2994
3003 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useFullPathLns_);
3004 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
3005 }
3006
3007 public static final int USE_TSP_LNS_FIELD_NUMBER = 18;
3008 private int useTspLns_ = 0;
3022 @java.lang.Override public int getUseTspLnsValue() {
3023 return useTspLns_;
3024 }
3025
3039 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useTspLns_);
3040 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
3041 }
3042
3043 public static final int USE_INACTIVE_LNS_FIELD_NUMBER = 19;
3044 private int useInactiveLns_ = 0;
3055 @java.lang.Override public int getUseInactiveLnsValue() {
3056 return useInactiveLns_;
3057 }
3058
3069 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useInactiveLns_);
3070 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
3071 }
3072
3074 private int useGlobalCheapestInsertionPathLns_ = 0;
3085 @java.lang.Override public int getUseGlobalCheapestInsertionPathLnsValue() {
3086 return useGlobalCheapestInsertionPathLns_;
3087 }
3088
3099 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useGlobalCheapestInsertionPathLns_);
3100 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
3101 }
3102
3104 private int useLocalCheapestInsertionPathLns_ = 0;
3113 @java.lang.Override public int getUseLocalCheapestInsertionPathLnsValue() {
3114 return useLocalCheapestInsertionPathLns_;
3115 }
3116
3125 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useLocalCheapestInsertionPathLns_);
3126 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
3127 }
3128
3130 private int useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = 0;
3142 return useRelocatePathGlobalCheapestInsertionInsertUnperformed_;
3143 }
3144
3155 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useRelocatePathGlobalCheapestInsertionInsertUnperformed_);
3156 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
3157 }
3158
3160 private int useGlobalCheapestInsertionExpensiveChainLns_ = 0;
3173 return useGlobalCheapestInsertionExpensiveChainLns_;
3174 }
3175
3187 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useGlobalCheapestInsertionExpensiveChainLns_);
3188 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
3189 }
3190
3192 private int useLocalCheapestInsertionExpensiveChainLns_ = 0;
3203 return useLocalCheapestInsertionExpensiveChainLns_;
3204 }
3205
3215 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useLocalCheapestInsertionExpensiveChainLns_);
3216 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
3217 }
3218
3220 private int useGlobalCheapestInsertionCloseNodesLns_ = 0;
3232 @java.lang.Override public int getUseGlobalCheapestInsertionCloseNodesLnsValue() {
3233 return useGlobalCheapestInsertionCloseNodesLns_;
3234 }
3235
3247 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useGlobalCheapestInsertionCloseNodesLns_);
3248 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
3249 }
3250
3252 private int useLocalCheapestInsertionCloseNodesLns_ = 0;
3262 @java.lang.Override public int getUseLocalCheapestInsertionCloseNodesLnsValue() {
3263 return useLocalCheapestInsertionCloseNodesLns_;
3264 }
3265
3275 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useLocalCheapestInsertionCloseNodesLns_);
3276 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
3277 }
3278
3279 private byte memoizedIsInitialized = -1;
3280 @java.lang.Override
3281 public final boolean isInitialized() {
3282 byte isInitialized = memoizedIsInitialized;
3283 if (isInitialized == 1) return true;
3284 if (isInitialized == 0) return false;
3285
3286 memoizedIsInitialized = 1;
3287 return true;
3288 }
3289
3290 @java.lang.Override
3291 public void writeTo(com.google.protobuf.CodedOutputStream output)
3292 throws java.io.IOException {
3293 if (useRelocate_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3294 output.writeEnum(1, useRelocate_);
3295 }
3296 if (useRelocatePair_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3297 output.writeEnum(2, useRelocatePair_);
3298 }
3299 if (useRelocateNeighbors_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3300 output.writeEnum(3, useRelocateNeighbors_);
3301 }
3302 if (useExchange_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3303 output.writeEnum(4, useExchange_);
3304 }
3305 if (useCross_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3306 output.writeEnum(5, useCross_);
3307 }
3308 if (useCrossExchange_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3309 output.writeEnum(6, useCrossExchange_);
3310 }
3311 if (useTwoOpt_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3312 output.writeEnum(7, useTwoOpt_);
3313 }
3314 if (useOrOpt_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3315 output.writeEnum(8, useOrOpt_);
3316 }
3317 if (useLinKernighan_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3318 output.writeEnum(9, useLinKernighan_);
3319 }
3320 if (useTspOpt_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3321 output.writeEnum(10, useTspOpt_);
3322 }
3323 if (useMakeActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3324 output.writeEnum(11, useMakeActive_);
3325 }
3326 if (useMakeInactive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3327 output.writeEnum(12, useMakeInactive_);
3328 }
3329 if (useMakeChainInactive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3330 output.writeEnum(13, useMakeChainInactive_);
3331 }
3332 if (useSwapActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3333 output.writeEnum(14, useSwapActive_);
3334 }
3335 if (useExtendedSwapActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3336 output.writeEnum(15, useExtendedSwapActive_);
3337 }
3338 if (usePathLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3339 output.writeEnum(16, usePathLns_);
3340 }
3341 if (useFullPathLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3342 output.writeEnum(17, useFullPathLns_);
3343 }
3344 if (useTspLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3345 output.writeEnum(18, useTspLns_);
3346 }
3347 if (useInactiveLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3348 output.writeEnum(19, useInactiveLns_);
3349 }
3350 if (useNodePairSwapActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3351 output.writeEnum(20, useNodePairSwapActive_);
3352 }
3353 if (useRelocateAndMakeActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3354 output.writeEnum(21, useRelocateAndMakeActive_);
3355 }
3356 if (useExchangePair_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3357 output.writeEnum(22, useExchangePair_);
3358 }
3359 if (useRelocateExpensiveChain_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3360 output.writeEnum(23, useRelocateExpensiveChain_);
3361 }
3362 if (useLightRelocatePair_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3363 output.writeEnum(24, useLightRelocatePair_);
3364 }
3365 if (useRelocateSubtrip_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3366 output.writeEnum(25, useRelocateSubtrip_);
3367 }
3368 if (useExchangeSubtrip_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3369 output.writeEnum(26, useExchangeSubtrip_);
3370 }
3371 if (useGlobalCheapestInsertionPathLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3372 output.writeEnum(27, useGlobalCheapestInsertionPathLns_);
3373 }
3374 if (useLocalCheapestInsertionPathLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3375 output.writeEnum(28, useLocalCheapestInsertionPathLns_);
3376 }
3377 if (useGlobalCheapestInsertionExpensiveChainLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3378 output.writeEnum(29, useGlobalCheapestInsertionExpensiveChainLns_);
3379 }
3380 if (useLocalCheapestInsertionExpensiveChainLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3381 output.writeEnum(30, useLocalCheapestInsertionExpensiveChainLns_);
3382 }
3383 if (useGlobalCheapestInsertionCloseNodesLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3384 output.writeEnum(31, useGlobalCheapestInsertionCloseNodesLns_);
3385 }
3386 if (useLocalCheapestInsertionCloseNodesLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3387 output.writeEnum(32, useLocalCheapestInsertionCloseNodesLns_);
3388 }
3389 if (useRelocatePathGlobalCheapestInsertionInsertUnperformed_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3390 output.writeEnum(33, useRelocatePathGlobalCheapestInsertionInsertUnperformed_);
3391 }
3392 if (useShortestPathSwapActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3393 output.writeEnum(34, useShortestPathSwapActive_);
3394 }
3395 if (useSwapActiveChain_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3396 output.writeEnum(35, useSwapActiveChain_);
3397 }
3398 if (useShortestPathTwoOpt_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3399 output.writeEnum(36, useShortestPathTwoOpt_);
3400 }
3401 if (useExchangeAndMakeActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3402 output.writeEnum(37, useExchangeAndMakeActive_);
3403 }
3404 if (useExchangePathStartEndsAndMakeActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3405 output.writeEnum(38, useExchangePathStartEndsAndMakeActive_);
3406 }
3407 getUnknownFields().writeTo(output);
3408 }
3409
3410 @java.lang.Override
3411 public int getSerializedSize() {
3412 int size = memoizedSize;
3413 if (size != -1) return size;
3414
3415 size = 0;
3416 if (useRelocate_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3417 size += com.google.protobuf.CodedOutputStream
3418 .computeEnumSize(1, useRelocate_);
3419 }
3420 if (useRelocatePair_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3421 size += com.google.protobuf.CodedOutputStream
3422 .computeEnumSize(2, useRelocatePair_);
3423 }
3424 if (useRelocateNeighbors_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3425 size += com.google.protobuf.CodedOutputStream
3426 .computeEnumSize(3, useRelocateNeighbors_);
3427 }
3428 if (useExchange_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3429 size += com.google.protobuf.CodedOutputStream
3430 .computeEnumSize(4, useExchange_);
3431 }
3432 if (useCross_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3433 size += com.google.protobuf.CodedOutputStream
3434 .computeEnumSize(5, useCross_);
3435 }
3436 if (useCrossExchange_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3437 size += com.google.protobuf.CodedOutputStream
3438 .computeEnumSize(6, useCrossExchange_);
3439 }
3440 if (useTwoOpt_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3441 size += com.google.protobuf.CodedOutputStream
3442 .computeEnumSize(7, useTwoOpt_);
3443 }
3444 if (useOrOpt_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3445 size += com.google.protobuf.CodedOutputStream
3446 .computeEnumSize(8, useOrOpt_);
3447 }
3448 if (useLinKernighan_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3449 size += com.google.protobuf.CodedOutputStream
3450 .computeEnumSize(9, useLinKernighan_);
3451 }
3452 if (useTspOpt_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3453 size += com.google.protobuf.CodedOutputStream
3454 .computeEnumSize(10, useTspOpt_);
3455 }
3456 if (useMakeActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3457 size += com.google.protobuf.CodedOutputStream
3458 .computeEnumSize(11, useMakeActive_);
3459 }
3460 if (useMakeInactive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3461 size += com.google.protobuf.CodedOutputStream
3462 .computeEnumSize(12, useMakeInactive_);
3463 }
3464 if (useMakeChainInactive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3465 size += com.google.protobuf.CodedOutputStream
3466 .computeEnumSize(13, useMakeChainInactive_);
3467 }
3468 if (useSwapActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3469 size += com.google.protobuf.CodedOutputStream
3470 .computeEnumSize(14, useSwapActive_);
3471 }
3472 if (useExtendedSwapActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3473 size += com.google.protobuf.CodedOutputStream
3474 .computeEnumSize(15, useExtendedSwapActive_);
3475 }
3476 if (usePathLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3477 size += com.google.protobuf.CodedOutputStream
3478 .computeEnumSize(16, usePathLns_);
3479 }
3480 if (useFullPathLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3481 size += com.google.protobuf.CodedOutputStream
3482 .computeEnumSize(17, useFullPathLns_);
3483 }
3484 if (useTspLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3485 size += com.google.protobuf.CodedOutputStream
3486 .computeEnumSize(18, useTspLns_);
3487 }
3488 if (useInactiveLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3489 size += com.google.protobuf.CodedOutputStream
3490 .computeEnumSize(19, useInactiveLns_);
3491 }
3492 if (useNodePairSwapActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3493 size += com.google.protobuf.CodedOutputStream
3494 .computeEnumSize(20, useNodePairSwapActive_);
3495 }
3496 if (useRelocateAndMakeActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3497 size += com.google.protobuf.CodedOutputStream
3498 .computeEnumSize(21, useRelocateAndMakeActive_);
3499 }
3500 if (useExchangePair_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3501 size += com.google.protobuf.CodedOutputStream
3502 .computeEnumSize(22, useExchangePair_);
3503 }
3504 if (useRelocateExpensiveChain_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3505 size += com.google.protobuf.CodedOutputStream
3506 .computeEnumSize(23, useRelocateExpensiveChain_);
3507 }
3508 if (useLightRelocatePair_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3509 size += com.google.protobuf.CodedOutputStream
3510 .computeEnumSize(24, useLightRelocatePair_);
3511 }
3512 if (useRelocateSubtrip_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3513 size += com.google.protobuf.CodedOutputStream
3514 .computeEnumSize(25, useRelocateSubtrip_);
3515 }
3516 if (useExchangeSubtrip_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3517 size += com.google.protobuf.CodedOutputStream
3518 .computeEnumSize(26, useExchangeSubtrip_);
3519 }
3520 if (useGlobalCheapestInsertionPathLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3521 size += com.google.protobuf.CodedOutputStream
3522 .computeEnumSize(27, useGlobalCheapestInsertionPathLns_);
3523 }
3524 if (useLocalCheapestInsertionPathLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3525 size += com.google.protobuf.CodedOutputStream
3526 .computeEnumSize(28, useLocalCheapestInsertionPathLns_);
3527 }
3528 if (useGlobalCheapestInsertionExpensiveChainLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3529 size += com.google.protobuf.CodedOutputStream
3530 .computeEnumSize(29, useGlobalCheapestInsertionExpensiveChainLns_);
3531 }
3532 if (useLocalCheapestInsertionExpensiveChainLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3533 size += com.google.protobuf.CodedOutputStream
3534 .computeEnumSize(30, useLocalCheapestInsertionExpensiveChainLns_);
3535 }
3536 if (useGlobalCheapestInsertionCloseNodesLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3537 size += com.google.protobuf.CodedOutputStream
3538 .computeEnumSize(31, useGlobalCheapestInsertionCloseNodesLns_);
3539 }
3540 if (useLocalCheapestInsertionCloseNodesLns_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3541 size += com.google.protobuf.CodedOutputStream
3542 .computeEnumSize(32, useLocalCheapestInsertionCloseNodesLns_);
3543 }
3544 if (useRelocatePathGlobalCheapestInsertionInsertUnperformed_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3545 size += com.google.protobuf.CodedOutputStream
3546 .computeEnumSize(33, useRelocatePathGlobalCheapestInsertionInsertUnperformed_);
3547 }
3548 if (useShortestPathSwapActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3549 size += com.google.protobuf.CodedOutputStream
3550 .computeEnumSize(34, useShortestPathSwapActive_);
3551 }
3552 if (useSwapActiveChain_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3553 size += com.google.protobuf.CodedOutputStream
3554 .computeEnumSize(35, useSwapActiveChain_);
3555 }
3556 if (useShortestPathTwoOpt_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3557 size += com.google.protobuf.CodedOutputStream
3558 .computeEnumSize(36, useShortestPathTwoOpt_);
3559 }
3560 if (useExchangeAndMakeActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3561 size += com.google.protobuf.CodedOutputStream
3562 .computeEnumSize(37, useExchangeAndMakeActive_);
3563 }
3564 if (useExchangePathStartEndsAndMakeActive_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
3565 size += com.google.protobuf.CodedOutputStream
3566 .computeEnumSize(38, useExchangePathStartEndsAndMakeActive_);
3567 }
3568 size += getUnknownFields().getSerializedSize();
3569 memoizedSize = size;
3570 return size;
3571 }
3572
3573 @java.lang.Override
3574 public boolean equals(final java.lang.Object obj) {
3575 if (obj == this) {
3576 return true;
3577 }
3578 if (!(obj instanceof com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators)) {
3579 return super.equals(obj);
3580 }
3581 com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators other = (com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators) obj;
3582
3583 if (useRelocate_ != other.useRelocate_) return false;
3584 if (useRelocatePair_ != other.useRelocatePair_) return false;
3585 if (useLightRelocatePair_ != other.useLightRelocatePair_) return false;
3586 if (useRelocateNeighbors_ != other.useRelocateNeighbors_) return false;
3587 if (useRelocateSubtrip_ != other.useRelocateSubtrip_) return false;
3588 if (useExchange_ != other.useExchange_) return false;
3589 if (useExchangePair_ != other.useExchangePair_) return false;
3590 if (useExchangeSubtrip_ != other.useExchangeSubtrip_) return false;
3591 if (useCross_ != other.useCross_) return false;
3592 if (useCrossExchange_ != other.useCrossExchange_) return false;
3593 if (useRelocateExpensiveChain_ != other.useRelocateExpensiveChain_) return false;
3594 if (useTwoOpt_ != other.useTwoOpt_) return false;
3595 if (useOrOpt_ != other.useOrOpt_) return false;
3596 if (useLinKernighan_ != other.useLinKernighan_) return false;
3597 if (useTspOpt_ != other.useTspOpt_) return false;
3598 if (useMakeActive_ != other.useMakeActive_) return false;
3599 if (useRelocateAndMakeActive_ != other.useRelocateAndMakeActive_) return false;
3600 if (useExchangeAndMakeActive_ != other.useExchangeAndMakeActive_) return false;
3601 if (useExchangePathStartEndsAndMakeActive_ != other.useExchangePathStartEndsAndMakeActive_) return false;
3602 if (useMakeInactive_ != other.useMakeInactive_) return false;
3603 if (useMakeChainInactive_ != other.useMakeChainInactive_) return false;
3604 if (useSwapActive_ != other.useSwapActive_) return false;
3605 if (useSwapActiveChain_ != other.useSwapActiveChain_) return false;
3606 if (useExtendedSwapActive_ != other.useExtendedSwapActive_) return false;
3607 if (useShortestPathSwapActive_ != other.useShortestPathSwapActive_) return false;
3608 if (useShortestPathTwoOpt_ != other.useShortestPathTwoOpt_) return false;
3609 if (useNodePairSwapActive_ != other.useNodePairSwapActive_) return false;
3610 if (usePathLns_ != other.usePathLns_) return false;
3611 if (useFullPathLns_ != other.useFullPathLns_) return false;
3612 if (useTspLns_ != other.useTspLns_) return false;
3613 if (useInactiveLns_ != other.useInactiveLns_) return false;
3614 if (useGlobalCheapestInsertionPathLns_ != other.useGlobalCheapestInsertionPathLns_) return false;
3615 if (useLocalCheapestInsertionPathLns_ != other.useLocalCheapestInsertionPathLns_) return false;
3616 if (useRelocatePathGlobalCheapestInsertionInsertUnperformed_ != other.useRelocatePathGlobalCheapestInsertionInsertUnperformed_) return false;
3617 if (useGlobalCheapestInsertionExpensiveChainLns_ != other.useGlobalCheapestInsertionExpensiveChainLns_) return false;
3618 if (useLocalCheapestInsertionExpensiveChainLns_ != other.useLocalCheapestInsertionExpensiveChainLns_) return false;
3619 if (useGlobalCheapestInsertionCloseNodesLns_ != other.useGlobalCheapestInsertionCloseNodesLns_) return false;
3620 if (useLocalCheapestInsertionCloseNodesLns_ != other.useLocalCheapestInsertionCloseNodesLns_) return false;
3621 if (!getUnknownFields().equals(other.getUnknownFields())) return false;
3622 return true;
3623 }
3624
3625 @java.lang.Override
3626 public int hashCode() {
3627 if (memoizedHashCode != 0) {
3628 return memoizedHashCode;
3629 }
3630 int hash = 41;
3631 hash = (19 * hash) + getDescriptor().hashCode();
3632 hash = (37 * hash) + USE_RELOCATE_FIELD_NUMBER;
3633 hash = (53 * hash) + useRelocate_;
3634 hash = (37 * hash) + USE_RELOCATE_PAIR_FIELD_NUMBER;
3635 hash = (53 * hash) + useRelocatePair_;
3636 hash = (37 * hash) + USE_LIGHT_RELOCATE_PAIR_FIELD_NUMBER;
3637 hash = (53 * hash) + useLightRelocatePair_;
3638 hash = (37 * hash) + USE_RELOCATE_NEIGHBORS_FIELD_NUMBER;
3639 hash = (53 * hash) + useRelocateNeighbors_;
3640 hash = (37 * hash) + USE_RELOCATE_SUBTRIP_FIELD_NUMBER;
3641 hash = (53 * hash) + useRelocateSubtrip_;
3642 hash = (37 * hash) + USE_EXCHANGE_FIELD_NUMBER;
3643 hash = (53 * hash) + useExchange_;
3644 hash = (37 * hash) + USE_EXCHANGE_PAIR_FIELD_NUMBER;
3645 hash = (53 * hash) + useExchangePair_;
3646 hash = (37 * hash) + USE_EXCHANGE_SUBTRIP_FIELD_NUMBER;
3647 hash = (53 * hash) + useExchangeSubtrip_;
3648 hash = (37 * hash) + USE_CROSS_FIELD_NUMBER;
3649 hash = (53 * hash) + useCross_;
3650 hash = (37 * hash) + USE_CROSS_EXCHANGE_FIELD_NUMBER;
3651 hash = (53 * hash) + useCrossExchange_;
3652 hash = (37 * hash) + USE_RELOCATE_EXPENSIVE_CHAIN_FIELD_NUMBER;
3653 hash = (53 * hash) + useRelocateExpensiveChain_;
3654 hash = (37 * hash) + USE_TWO_OPT_FIELD_NUMBER;
3655 hash = (53 * hash) + useTwoOpt_;
3656 hash = (37 * hash) + USE_OR_OPT_FIELD_NUMBER;
3657 hash = (53 * hash) + useOrOpt_;
3658 hash = (37 * hash) + USE_LIN_KERNIGHAN_FIELD_NUMBER;
3659 hash = (53 * hash) + useLinKernighan_;
3660 hash = (37 * hash) + USE_TSP_OPT_FIELD_NUMBER;
3661 hash = (53 * hash) + useTspOpt_;
3662 hash = (37 * hash) + USE_MAKE_ACTIVE_FIELD_NUMBER;
3663 hash = (53 * hash) + useMakeActive_;
3664 hash = (37 * hash) + USE_RELOCATE_AND_MAKE_ACTIVE_FIELD_NUMBER;
3665 hash = (53 * hash) + useRelocateAndMakeActive_;
3666 hash = (37 * hash) + USE_EXCHANGE_AND_MAKE_ACTIVE_FIELD_NUMBER;
3667 hash = (53 * hash) + useExchangeAndMakeActive_;
3669 hash = (53 * hash) + useExchangePathStartEndsAndMakeActive_;
3670 hash = (37 * hash) + USE_MAKE_INACTIVE_FIELD_NUMBER;
3671 hash = (53 * hash) + useMakeInactive_;
3672 hash = (37 * hash) + USE_MAKE_CHAIN_INACTIVE_FIELD_NUMBER;
3673 hash = (53 * hash) + useMakeChainInactive_;
3674 hash = (37 * hash) + USE_SWAP_ACTIVE_FIELD_NUMBER;
3675 hash = (53 * hash) + useSwapActive_;
3676 hash = (37 * hash) + USE_SWAP_ACTIVE_CHAIN_FIELD_NUMBER;
3677 hash = (53 * hash) + useSwapActiveChain_;
3678 hash = (37 * hash) + USE_EXTENDED_SWAP_ACTIVE_FIELD_NUMBER;
3679 hash = (53 * hash) + useExtendedSwapActive_;
3680 hash = (37 * hash) + USE_SHORTEST_PATH_SWAP_ACTIVE_FIELD_NUMBER;
3681 hash = (53 * hash) + useShortestPathSwapActive_;
3682 hash = (37 * hash) + USE_SHORTEST_PATH_TWO_OPT_FIELD_NUMBER;
3683 hash = (53 * hash) + useShortestPathTwoOpt_;
3684 hash = (37 * hash) + USE_NODE_PAIR_SWAP_ACTIVE_FIELD_NUMBER;
3685 hash = (53 * hash) + useNodePairSwapActive_;
3686 hash = (37 * hash) + USE_PATH_LNS_FIELD_NUMBER;
3687 hash = (53 * hash) + usePathLns_;
3688 hash = (37 * hash) + USE_FULL_PATH_LNS_FIELD_NUMBER;
3689 hash = (53 * hash) + useFullPathLns_;
3690 hash = (37 * hash) + USE_TSP_LNS_FIELD_NUMBER;
3691 hash = (53 * hash) + useTspLns_;
3692 hash = (37 * hash) + USE_INACTIVE_LNS_FIELD_NUMBER;
3693 hash = (53 * hash) + useInactiveLns_;
3695 hash = (53 * hash) + useGlobalCheapestInsertionPathLns_;
3697 hash = (53 * hash) + useLocalCheapestInsertionPathLns_;
3699 hash = (53 * hash) + useRelocatePathGlobalCheapestInsertionInsertUnperformed_;
3701 hash = (53 * hash) + useGlobalCheapestInsertionExpensiveChainLns_;
3703 hash = (53 * hash) + useLocalCheapestInsertionExpensiveChainLns_;
3705 hash = (53 * hash) + useGlobalCheapestInsertionCloseNodesLns_;
3707 hash = (53 * hash) + useLocalCheapestInsertionCloseNodesLns_;
3708 hash = (29 * hash) + getUnknownFields().hashCode();
3709 memoizedHashCode = hash;
3710 return hash;
3711 }
3712
3714 java.nio.ByteBuffer data)
3715 throws com.google.protobuf.InvalidProtocolBufferException {
3716 return PARSER.parseFrom(data);
3717 }
3719 java.nio.ByteBuffer data,
3720 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3721 throws com.google.protobuf.InvalidProtocolBufferException {
3722 return PARSER.parseFrom(data, extensionRegistry);
3723 }
3725 com.google.protobuf.ByteString data)
3726 throws com.google.protobuf.InvalidProtocolBufferException {
3727 return PARSER.parseFrom(data);
3728 }
3730 com.google.protobuf.ByteString data,
3731 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3732 throws com.google.protobuf.InvalidProtocolBufferException {
3733 return PARSER.parseFrom(data, extensionRegistry);
3734 }
3736 throws com.google.protobuf.InvalidProtocolBufferException {
3737 return PARSER.parseFrom(data);
3738 }
3740 byte[] data,
3741 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3742 throws com.google.protobuf.InvalidProtocolBufferException {
3743 return PARSER.parseFrom(data, extensionRegistry);
3744 }
3746 throws java.io.IOException {
3747 return com.google.protobuf.GeneratedMessage
3748 .parseWithIOException(PARSER, input);
3749 }
3751 java.io.InputStream input,
3752 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3753 throws java.io.IOException {
3754 return com.google.protobuf.GeneratedMessage
3755 .parseWithIOException(PARSER, input, extensionRegistry);
3756 }
3757
3759 throws java.io.IOException {
3760 return com.google.protobuf.GeneratedMessage
3761 .parseDelimitedWithIOException(PARSER, input);
3762 }
3763
3765 java.io.InputStream input,
3766 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3767 throws java.io.IOException {
3768 return com.google.protobuf.GeneratedMessage
3769 .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
3770 }
3772 com.google.protobuf.CodedInputStream input)
3773 throws java.io.IOException {
3774 return com.google.protobuf.GeneratedMessage
3775 .parseWithIOException(PARSER, input);
3776 }
3778 com.google.protobuf.CodedInputStream input,
3779 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3780 throws java.io.IOException {
3781 return com.google.protobuf.GeneratedMessage
3782 .parseWithIOException(PARSER, input, extensionRegistry);
3783 }
3784
3785 @java.lang.Override
3786 public Builder newBuilderForType() { return newBuilder(); }
3787 public static Builder newBuilder() {
3788 return DEFAULT_INSTANCE.toBuilder();
3789 }
3790 public static Builder newBuilder(com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators prototype) {
3791 return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
3792 }
3793 @java.lang.Override
3795 return this == DEFAULT_INSTANCE
3796 ? new Builder() : new Builder().mergeFrom(this);
3797 }
3798
3799 @java.lang.Override
3801 com.google.protobuf.GeneratedMessage.BuilderParent parent) {
3802 Builder builder = new Builder(parent);
3803 return builder;
3804 }
3805
3813 public static final class Builder extends
3814 com.google.protobuf.GeneratedMessage.Builder<Builder> implements
3815 // @@protoc_insertion_point(builder_implements:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
3816 com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder {
3817 public static final com.google.protobuf.Descriptors.Descriptor
3819 return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_LocalSearchNeighborhoodOperators_descriptor;
3820 }
3821
3822 @java.lang.Override
3823 protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
3825 return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_LocalSearchNeighborhoodOperators_fieldAccessorTable
3826 .ensureFieldAccessorsInitialized(
3827 com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.class, com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.Builder.class);
3828 }
3829
3830 // Construct using com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.newBuilder()
3831 private Builder() {
3832
3833 }
3834
3835 private Builder(
3836 com.google.protobuf.GeneratedMessage.BuilderParent parent) {
3837 super(parent);
3838
3839 }
3840 @java.lang.Override
3841 public Builder clear() {
3842 super.clear();
3843 bitField0_ = 0;
3844 bitField1_ = 0;
3845 useRelocate_ = 0;
3846 useRelocatePair_ = 0;
3847 useLightRelocatePair_ = 0;
3848 useRelocateNeighbors_ = 0;
3849 useRelocateSubtrip_ = 0;
3850 useExchange_ = 0;
3851 useExchangePair_ = 0;
3852 useExchangeSubtrip_ = 0;
3853 useCross_ = 0;
3854 useCrossExchange_ = 0;
3855 useRelocateExpensiveChain_ = 0;
3856 useTwoOpt_ = 0;
3857 useOrOpt_ = 0;
3858 useLinKernighan_ = 0;
3859 useTspOpt_ = 0;
3860 useMakeActive_ = 0;
3861 useRelocateAndMakeActive_ = 0;
3862 useExchangeAndMakeActive_ = 0;
3863 useExchangePathStartEndsAndMakeActive_ = 0;
3864 useMakeInactive_ = 0;
3865 useMakeChainInactive_ = 0;
3866 useSwapActive_ = 0;
3867 useSwapActiveChain_ = 0;
3868 useExtendedSwapActive_ = 0;
3869 useShortestPathSwapActive_ = 0;
3870 useShortestPathTwoOpt_ = 0;
3871 useNodePairSwapActive_ = 0;
3872 usePathLns_ = 0;
3873 useFullPathLns_ = 0;
3874 useTspLns_ = 0;
3875 useInactiveLns_ = 0;
3876 useGlobalCheapestInsertionPathLns_ = 0;
3877 useLocalCheapestInsertionPathLns_ = 0;
3878 useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = 0;
3879 useGlobalCheapestInsertionExpensiveChainLns_ = 0;
3880 useLocalCheapestInsertionExpensiveChainLns_ = 0;
3881 useGlobalCheapestInsertionCloseNodesLns_ = 0;
3882 useLocalCheapestInsertionCloseNodesLns_ = 0;
3883 return this;
3884 }
3885
3886 @java.lang.Override
3887 public com.google.protobuf.Descriptors.Descriptor
3889 return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_LocalSearchNeighborhoodOperators_descriptor;
3890 }
3891
3892 @java.lang.Override
3894 return com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.getDefaultInstance();
3895 }
3896
3897 @java.lang.Override
3905
3906 @java.lang.Override
3908 com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators result = new com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators(this);
3909 if (bitField0_ != 0) { buildPartial0(result); }
3910 if (bitField1_ != 0) { buildPartial1(result); }
3911 onBuilt();
3912 return result;
3913 }
3914
3915 private void buildPartial0(com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators result) {
3916 int from_bitField0_ = bitField0_;
3917 if (((from_bitField0_ & 0x00000001) != 0)) {
3918 result.useRelocate_ = useRelocate_;
3919 }
3920 if (((from_bitField0_ & 0x00000002) != 0)) {
3921 result.useRelocatePair_ = useRelocatePair_;
3922 }
3923 if (((from_bitField0_ & 0x00000004) != 0)) {
3924 result.useLightRelocatePair_ = useLightRelocatePair_;
3925 }
3926 if (((from_bitField0_ & 0x00000008) != 0)) {
3927 result.useRelocateNeighbors_ = useRelocateNeighbors_;
3928 }
3929 if (((from_bitField0_ & 0x00000010) != 0)) {
3930 result.useRelocateSubtrip_ = useRelocateSubtrip_;
3931 }
3932 if (((from_bitField0_ & 0x00000020) != 0)) {
3933 result.useExchange_ = useExchange_;
3934 }
3935 if (((from_bitField0_ & 0x00000040) != 0)) {
3936 result.useExchangePair_ = useExchangePair_;
3937 }
3938 if (((from_bitField0_ & 0x00000080) != 0)) {
3939 result.useExchangeSubtrip_ = useExchangeSubtrip_;
3940 }
3941 if (((from_bitField0_ & 0x00000100) != 0)) {
3942 result.useCross_ = useCross_;
3943 }
3944 if (((from_bitField0_ & 0x00000200) != 0)) {
3945 result.useCrossExchange_ = useCrossExchange_;
3946 }
3947 if (((from_bitField0_ & 0x00000400) != 0)) {
3948 result.useRelocateExpensiveChain_ = useRelocateExpensiveChain_;
3949 }
3950 if (((from_bitField0_ & 0x00000800) != 0)) {
3951 result.useTwoOpt_ = useTwoOpt_;
3952 }
3953 if (((from_bitField0_ & 0x00001000) != 0)) {
3954 result.useOrOpt_ = useOrOpt_;
3955 }
3956 if (((from_bitField0_ & 0x00002000) != 0)) {
3957 result.useLinKernighan_ = useLinKernighan_;
3958 }
3959 if (((from_bitField0_ & 0x00004000) != 0)) {
3960 result.useTspOpt_ = useTspOpt_;
3961 }
3962 if (((from_bitField0_ & 0x00008000) != 0)) {
3963 result.useMakeActive_ = useMakeActive_;
3964 }
3965 if (((from_bitField0_ & 0x00010000) != 0)) {
3966 result.useRelocateAndMakeActive_ = useRelocateAndMakeActive_;
3967 }
3968 if (((from_bitField0_ & 0x00020000) != 0)) {
3969 result.useExchangeAndMakeActive_ = useExchangeAndMakeActive_;
3970 }
3971 if (((from_bitField0_ & 0x00040000) != 0)) {
3972 result.useExchangePathStartEndsAndMakeActive_ = useExchangePathStartEndsAndMakeActive_;
3973 }
3974 if (((from_bitField0_ & 0x00080000) != 0)) {
3975 result.useMakeInactive_ = useMakeInactive_;
3976 }
3977 if (((from_bitField0_ & 0x00100000) != 0)) {
3978 result.useMakeChainInactive_ = useMakeChainInactive_;
3979 }
3980 if (((from_bitField0_ & 0x00200000) != 0)) {
3981 result.useSwapActive_ = useSwapActive_;
3982 }
3983 if (((from_bitField0_ & 0x00400000) != 0)) {
3984 result.useSwapActiveChain_ = useSwapActiveChain_;
3985 }
3986 if (((from_bitField0_ & 0x00800000) != 0)) {
3987 result.useExtendedSwapActive_ = useExtendedSwapActive_;
3988 }
3989 if (((from_bitField0_ & 0x01000000) != 0)) {
3990 result.useShortestPathSwapActive_ = useShortestPathSwapActive_;
3991 }
3992 if (((from_bitField0_ & 0x02000000) != 0)) {
3993 result.useShortestPathTwoOpt_ = useShortestPathTwoOpt_;
3994 }
3995 if (((from_bitField0_ & 0x04000000) != 0)) {
3996 result.useNodePairSwapActive_ = useNodePairSwapActive_;
3997 }
3998 if (((from_bitField0_ & 0x08000000) != 0)) {
3999 result.usePathLns_ = usePathLns_;
4000 }
4001 if (((from_bitField0_ & 0x10000000) != 0)) {
4002 result.useFullPathLns_ = useFullPathLns_;
4003 }
4004 if (((from_bitField0_ & 0x20000000) != 0)) {
4005 result.useTspLns_ = useTspLns_;
4006 }
4007 if (((from_bitField0_ & 0x40000000) != 0)) {
4008 result.useInactiveLns_ = useInactiveLns_;
4009 }
4010 if (((from_bitField0_ & 0x80000000) != 0)) {
4011 result.useGlobalCheapestInsertionPathLns_ = useGlobalCheapestInsertionPathLns_;
4012 }
4013 }
4014
4015 private void buildPartial1(com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators result) {
4016 int from_bitField1_ = bitField1_;
4017 if (((from_bitField1_ & 0x00000001) != 0)) {
4018 result.useLocalCheapestInsertionPathLns_ = useLocalCheapestInsertionPathLns_;
4019 }
4020 if (((from_bitField1_ & 0x00000002) != 0)) {
4021 result.useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = useRelocatePathGlobalCheapestInsertionInsertUnperformed_;
4022 }
4023 if (((from_bitField1_ & 0x00000004) != 0)) {
4024 result.useGlobalCheapestInsertionExpensiveChainLns_ = useGlobalCheapestInsertionExpensiveChainLns_;
4025 }
4026 if (((from_bitField1_ & 0x00000008) != 0)) {
4027 result.useLocalCheapestInsertionExpensiveChainLns_ = useLocalCheapestInsertionExpensiveChainLns_;
4028 }
4029 if (((from_bitField1_ & 0x00000010) != 0)) {
4030 result.useGlobalCheapestInsertionCloseNodesLns_ = useGlobalCheapestInsertionCloseNodesLns_;
4031 }
4032 if (((from_bitField1_ & 0x00000020) != 0)) {
4033 result.useLocalCheapestInsertionCloseNodesLns_ = useLocalCheapestInsertionCloseNodesLns_;
4034 }
4035 }
4036
4037 @java.lang.Override
4038 public Builder mergeFrom(com.google.protobuf.Message other) {
4039 if (other instanceof com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators) {
4040 return mergeFrom((com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators)other);
4041 } else {
4042 super.mergeFrom(other);
4043 return this;
4044 }
4045 }
4046
4047 public Builder mergeFrom(com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators other) {
4048 if (other == com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.getDefaultInstance()) return this;
4049 if (other.useRelocate_ != 0) {
4050 setUseRelocateValue(other.getUseRelocateValue());
4051 }
4052 if (other.useRelocatePair_ != 0) {
4053 setUseRelocatePairValue(other.getUseRelocatePairValue());
4054 }
4055 if (other.useLightRelocatePair_ != 0) {
4056 setUseLightRelocatePairValue(other.getUseLightRelocatePairValue());
4057 }
4058 if (other.useRelocateNeighbors_ != 0) {
4059 setUseRelocateNeighborsValue(other.getUseRelocateNeighborsValue());
4060 }
4061 if (other.useRelocateSubtrip_ != 0) {
4062 setUseRelocateSubtripValue(other.getUseRelocateSubtripValue());
4063 }
4064 if (other.useExchange_ != 0) {
4065 setUseExchangeValue(other.getUseExchangeValue());
4066 }
4067 if (other.useExchangePair_ != 0) {
4068 setUseExchangePairValue(other.getUseExchangePairValue());
4069 }
4070 if (other.useExchangeSubtrip_ != 0) {
4071 setUseExchangeSubtripValue(other.getUseExchangeSubtripValue());
4072 }
4073 if (other.useCross_ != 0) {
4074 setUseCrossValue(other.getUseCrossValue());
4075 }
4076 if (other.useCrossExchange_ != 0) {
4077 setUseCrossExchangeValue(other.getUseCrossExchangeValue());
4078 }
4079 if (other.useRelocateExpensiveChain_ != 0) {
4080 setUseRelocateExpensiveChainValue(other.getUseRelocateExpensiveChainValue());
4081 }
4082 if (other.useTwoOpt_ != 0) {
4083 setUseTwoOptValue(other.getUseTwoOptValue());
4084 }
4085 if (other.useOrOpt_ != 0) {
4086 setUseOrOptValue(other.getUseOrOptValue());
4087 }
4088 if (other.useLinKernighan_ != 0) {
4089 setUseLinKernighanValue(other.getUseLinKernighanValue());
4090 }
4091 if (other.useTspOpt_ != 0) {
4092 setUseTspOptValue(other.getUseTspOptValue());
4093 }
4094 if (other.useMakeActive_ != 0) {
4095 setUseMakeActiveValue(other.getUseMakeActiveValue());
4096 }
4097 if (other.useRelocateAndMakeActive_ != 0) {
4098 setUseRelocateAndMakeActiveValue(other.getUseRelocateAndMakeActiveValue());
4099 }
4100 if (other.useExchangeAndMakeActive_ != 0) {
4101 setUseExchangeAndMakeActiveValue(other.getUseExchangeAndMakeActiveValue());
4102 }
4103 if (other.useExchangePathStartEndsAndMakeActive_ != 0) {
4104 setUseExchangePathStartEndsAndMakeActiveValue(other.getUseExchangePathStartEndsAndMakeActiveValue());
4105 }
4106 if (other.useMakeInactive_ != 0) {
4107 setUseMakeInactiveValue(other.getUseMakeInactiveValue());
4108 }
4109 if (other.useMakeChainInactive_ != 0) {
4110 setUseMakeChainInactiveValue(other.getUseMakeChainInactiveValue());
4111 }
4112 if (other.useSwapActive_ != 0) {
4113 setUseSwapActiveValue(other.getUseSwapActiveValue());
4114 }
4115 if (other.useSwapActiveChain_ != 0) {
4116 setUseSwapActiveChainValue(other.getUseSwapActiveChainValue());
4117 }
4118 if (other.useExtendedSwapActive_ != 0) {
4119 setUseExtendedSwapActiveValue(other.getUseExtendedSwapActiveValue());
4120 }
4121 if (other.useShortestPathSwapActive_ != 0) {
4122 setUseShortestPathSwapActiveValue(other.getUseShortestPathSwapActiveValue());
4123 }
4124 if (other.useShortestPathTwoOpt_ != 0) {
4125 setUseShortestPathTwoOptValue(other.getUseShortestPathTwoOptValue());
4126 }
4127 if (other.useNodePairSwapActive_ != 0) {
4128 setUseNodePairSwapActiveValue(other.getUseNodePairSwapActiveValue());
4129 }
4130 if (other.usePathLns_ != 0) {
4131 setUsePathLnsValue(other.getUsePathLnsValue());
4132 }
4133 if (other.useFullPathLns_ != 0) {
4134 setUseFullPathLnsValue(other.getUseFullPathLnsValue());
4135 }
4136 if (other.useTspLns_ != 0) {
4137 setUseTspLnsValue(other.getUseTspLnsValue());
4138 }
4139 if (other.useInactiveLns_ != 0) {
4140 setUseInactiveLnsValue(other.getUseInactiveLnsValue());
4141 }
4142 if (other.useGlobalCheapestInsertionPathLns_ != 0) {
4143 setUseGlobalCheapestInsertionPathLnsValue(other.getUseGlobalCheapestInsertionPathLnsValue());
4144 }
4145 if (other.useLocalCheapestInsertionPathLns_ != 0) {
4146 setUseLocalCheapestInsertionPathLnsValue(other.getUseLocalCheapestInsertionPathLnsValue());
4147 }
4148 if (other.useRelocatePathGlobalCheapestInsertionInsertUnperformed_ != 0) {
4149 setUseRelocatePathGlobalCheapestInsertionInsertUnperformedValue(other.getUseRelocatePathGlobalCheapestInsertionInsertUnperformedValue());
4150 }
4151 if (other.useGlobalCheapestInsertionExpensiveChainLns_ != 0) {
4152 setUseGlobalCheapestInsertionExpensiveChainLnsValue(other.getUseGlobalCheapestInsertionExpensiveChainLnsValue());
4153 }
4154 if (other.useLocalCheapestInsertionExpensiveChainLns_ != 0) {
4155 setUseLocalCheapestInsertionExpensiveChainLnsValue(other.getUseLocalCheapestInsertionExpensiveChainLnsValue());
4156 }
4157 if (other.useGlobalCheapestInsertionCloseNodesLns_ != 0) {
4158 setUseGlobalCheapestInsertionCloseNodesLnsValue(other.getUseGlobalCheapestInsertionCloseNodesLnsValue());
4159 }
4160 if (other.useLocalCheapestInsertionCloseNodesLns_ != 0) {
4161 setUseLocalCheapestInsertionCloseNodesLnsValue(other.getUseLocalCheapestInsertionCloseNodesLnsValue());
4162 }
4163 this.mergeUnknownFields(other.getUnknownFields());
4164 onChanged();
4165 return this;
4166 }
4167
4168 @java.lang.Override
4169 public final boolean isInitialized() {
4170 return true;
4171 }
4172
4173 @java.lang.Override
4174 public Builder mergeFrom(
4175 com.google.protobuf.CodedInputStream input,
4176 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
4177 throws java.io.IOException {
4178 if (extensionRegistry == null) {
4179 throw new java.lang.NullPointerException();
4180 }
4181 try {
4182 boolean done = false;
4183 while (!done) {
4184 int tag = input.readTag();
4185 switch (tag) {
4186 case 0:
4187 done = true;
4188 break;
4189 case 8: {
4190 useRelocate_ = input.readEnum();
4191 bitField0_ |= 0x00000001;
4192 break;
4193 } // case 8
4194 case 16: {
4195 useRelocatePair_ = input.readEnum();
4196 bitField0_ |= 0x00000002;
4197 break;
4198 } // case 16
4199 case 24: {
4200 useRelocateNeighbors_ = input.readEnum();
4201 bitField0_ |= 0x00000008;
4202 break;
4203 } // case 24
4204 case 32: {
4205 useExchange_ = input.readEnum();
4206 bitField0_ |= 0x00000020;
4207 break;
4208 } // case 32
4209 case 40: {
4210 useCross_ = input.readEnum();
4211 bitField0_ |= 0x00000100;
4212 break;
4213 } // case 40
4214 case 48: {
4215 useCrossExchange_ = input.readEnum();
4216 bitField0_ |= 0x00000200;
4217 break;
4218 } // case 48
4219 case 56: {
4220 useTwoOpt_ = input.readEnum();
4221 bitField0_ |= 0x00000800;
4222 break;
4223 } // case 56
4224 case 64: {
4225 useOrOpt_ = input.readEnum();
4226 bitField0_ |= 0x00001000;
4227 break;
4228 } // case 64
4229 case 72: {
4230 useLinKernighan_ = input.readEnum();
4231 bitField0_ |= 0x00002000;
4232 break;
4233 } // case 72
4234 case 80: {
4235 useTspOpt_ = input.readEnum();
4236 bitField0_ |= 0x00004000;
4237 break;
4238 } // case 80
4239 case 88: {
4240 useMakeActive_ = input.readEnum();
4241 bitField0_ |= 0x00008000;
4242 break;
4243 } // case 88
4244 case 96: {
4245 useMakeInactive_ = input.readEnum();
4246 bitField0_ |= 0x00080000;
4247 break;
4248 } // case 96
4249 case 104: {
4250 useMakeChainInactive_ = input.readEnum();
4251 bitField0_ |= 0x00100000;
4252 break;
4253 } // case 104
4254 case 112: {
4255 useSwapActive_ = input.readEnum();
4256 bitField0_ |= 0x00200000;
4257 break;
4258 } // case 112
4259 case 120: {
4260 useExtendedSwapActive_ = input.readEnum();
4261 bitField0_ |= 0x00800000;
4262 break;
4263 } // case 120
4264 case 128: {
4265 usePathLns_ = input.readEnum();
4266 bitField0_ |= 0x08000000;
4267 break;
4268 } // case 128
4269 case 136: {
4270 useFullPathLns_ = input.readEnum();
4271 bitField0_ |= 0x10000000;
4272 break;
4273 } // case 136
4274 case 144: {
4275 useTspLns_ = input.readEnum();
4276 bitField0_ |= 0x20000000;
4277 break;
4278 } // case 144
4279 case 152: {
4280 useInactiveLns_ = input.readEnum();
4281 bitField0_ |= 0x40000000;
4282 break;
4283 } // case 152
4284 case 160: {
4285 useNodePairSwapActive_ = input.readEnum();
4286 bitField0_ |= 0x04000000;
4287 break;
4288 } // case 160
4289 case 168: {
4290 useRelocateAndMakeActive_ = input.readEnum();
4291 bitField0_ |= 0x00010000;
4292 break;
4293 } // case 168
4294 case 176: {
4295 useExchangePair_ = input.readEnum();
4296 bitField0_ |= 0x00000040;
4297 break;
4298 } // case 176
4299 case 184: {
4300 useRelocateExpensiveChain_ = input.readEnum();
4301 bitField0_ |= 0x00000400;
4302 break;
4303 } // case 184
4304 case 192: {
4305 useLightRelocatePair_ = input.readEnum();
4306 bitField0_ |= 0x00000004;
4307 break;
4308 } // case 192
4309 case 200: {
4310 useRelocateSubtrip_ = input.readEnum();
4311 bitField0_ |= 0x00000010;
4312 break;
4313 } // case 200
4314 case 208: {
4315 useExchangeSubtrip_ = input.readEnum();
4316 bitField0_ |= 0x00000080;
4317 break;
4318 } // case 208
4319 case 216: {
4320 useGlobalCheapestInsertionPathLns_ = input.readEnum();
4321 bitField0_ |= 0x80000000;
4322 break;
4323 } // case 216
4324 case 224: {
4325 useLocalCheapestInsertionPathLns_ = input.readEnum();
4326 bitField1_ |= 0x00000001;
4327 break;
4328 } // case 224
4329 case 232: {
4330 useGlobalCheapestInsertionExpensiveChainLns_ = input.readEnum();
4331 bitField1_ |= 0x00000004;
4332 break;
4333 } // case 232
4334 case 240: {
4335 useLocalCheapestInsertionExpensiveChainLns_ = input.readEnum();
4336 bitField1_ |= 0x00000008;
4337 break;
4338 } // case 240
4339 case 248: {
4340 useGlobalCheapestInsertionCloseNodesLns_ = input.readEnum();
4341 bitField1_ |= 0x00000010;
4342 break;
4343 } // case 248
4344 case 256: {
4345 useLocalCheapestInsertionCloseNodesLns_ = input.readEnum();
4346 bitField1_ |= 0x00000020;
4347 break;
4348 } // case 256
4349 case 264: {
4350 useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = input.readEnum();
4351 bitField1_ |= 0x00000002;
4352 break;
4353 } // case 264
4354 case 272: {
4355 useShortestPathSwapActive_ = input.readEnum();
4356 bitField0_ |= 0x01000000;
4357 break;
4358 } // case 272
4359 case 280: {
4360 useSwapActiveChain_ = input.readEnum();
4361 bitField0_ |= 0x00400000;
4362 break;
4363 } // case 280
4364 case 288: {
4365 useShortestPathTwoOpt_ = input.readEnum();
4366 bitField0_ |= 0x02000000;
4367 break;
4368 } // case 288
4369 case 296: {
4370 useExchangeAndMakeActive_ = input.readEnum();
4371 bitField0_ |= 0x00020000;
4372 break;
4373 } // case 296
4374 case 304: {
4375 useExchangePathStartEndsAndMakeActive_ = input.readEnum();
4376 bitField0_ |= 0x00040000;
4377 break;
4378 } // case 304
4379 default: {
4380 if (!super.parseUnknownField(input, extensionRegistry, tag)) {
4381 done = true; // was an endgroup tag
4382 }
4383 break;
4384 } // default:
4385 } // switch (tag)
4386 } // while (!done)
4387 } catch (com.google.protobuf.InvalidProtocolBufferException e) {
4388 throw e.unwrapIOException();
4389 } finally {
4390 onChanged();
4391 } // finally
4392 return this;
4393 }
4394 private int bitField0_;
4395 private int bitField1_;
4396
4397 private int useRelocate_ = 0;
4414 @java.lang.Override public int getUseRelocateValue() {
4415 return useRelocate_;
4416 }
4417
4434 public Builder setUseRelocateValue(int value) {
4435 useRelocate_ = value;
4436 bitField0_ |= 0x00000001;
4437 onChanged();
4438 return this;
4439 }
4440
4456 @java.lang.Override
4458 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useRelocate_);
4459 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
4460 }
4461
4478 public Builder setUseRelocate(com.google.ortools.util.OptionalBoolean value) {
4479 if (value == null) { throw new NullPointerException(); }
4480 bitField0_ |= 0x00000001;
4481 useRelocate_ = value.getNumber();
4482 onChanged();
4483 return this;
4484 }
4485
4501 public Builder clearUseRelocate() {
4502 bitField0_ = (bitField0_ & ~0x00000001);
4503 useRelocate_ = 0;
4504 onChanged();
4505 return this;
4506 }
4507
4508 private int useRelocatePair_ = 0;
4525 @java.lang.Override public int getUseRelocatePairValue() {
4526 return useRelocatePair_;
4527 }
4528
4545 public Builder setUseRelocatePairValue(int value) {
4546 useRelocatePair_ = value;
4547 bitField0_ |= 0x00000002;
4548 onChanged();
4549 return this;
4550 }
4551
4567 @java.lang.Override
4569 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useRelocatePair_);
4570 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
4571 }
4572
4589 public Builder setUseRelocatePair(com.google.ortools.util.OptionalBoolean value) {
4590 if (value == null) { throw new NullPointerException(); }
4591 bitField0_ |= 0x00000002;
4592 useRelocatePair_ = value.getNumber();
4593 onChanged();
4594 return this;
4595 }
4596
4612 public Builder clearUseRelocatePair() {
4613 bitField0_ = (bitField0_ & ~0x00000002);
4614 useRelocatePair_ = 0;
4615 onChanged();
4616 return this;
4617 }
4618
4619 private int useLightRelocatePair_ = 0;
4634 @java.lang.Override public int getUseLightRelocatePairValue() {
4635 return useLightRelocatePair_;
4636 }
4637
4652 public Builder setUseLightRelocatePairValue(int value) {
4653 useLightRelocatePair_ = value;
4654 bitField0_ |= 0x00000004;
4655 onChanged();
4656 return this;
4657 }
4658
4672 @java.lang.Override
4674 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useLightRelocatePair_);
4675 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
4676 }
4677
4692 public Builder setUseLightRelocatePair(com.google.ortools.util.OptionalBoolean value) {
4693 if (value == null) { throw new NullPointerException(); }
4694 bitField0_ |= 0x00000004;
4695 useLightRelocatePair_ = value.getNumber();
4696 onChanged();
4697 return this;
4698 }
4699
4713 public Builder clearUseLightRelocatePair() {
4714 bitField0_ = (bitField0_ & ~0x00000004);
4715 useLightRelocatePair_ = 0;
4716 onChanged();
4717 return this;
4718 }
4719
4720 private int useRelocateNeighbors_ = 0;
4750 @java.lang.Override public int getUseRelocateNeighborsValue() {
4751 return useRelocateNeighbors_;
4752 }
4753
4783 public Builder setUseRelocateNeighborsValue(int value) {
4784 useRelocateNeighbors_ = value;
4785 bitField0_ |= 0x00000008;
4786 onChanged();
4787 return this;
4788 }
4789
4818 @java.lang.Override
4820 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useRelocateNeighbors_);
4821 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
4822 }
4823
4853 public Builder setUseRelocateNeighbors(com.google.ortools.util.OptionalBoolean value) {
4854 if (value == null) { throw new NullPointerException(); }
4855 bitField0_ |= 0x00000008;
4856 useRelocateNeighbors_ = value.getNumber();
4857 onChanged();
4858 return this;
4859 }
4860
4889 public Builder clearUseRelocateNeighbors() {
4890 bitField0_ = (bitField0_ & ~0x00000008);
4891 useRelocateNeighbors_ = 0;
4892 onChanged();
4893 return this;
4894 }
4895
4896 private int useRelocateSubtrip_ = 0;
4918 @java.lang.Override public int getUseRelocateSubtripValue() {
4919 return useRelocateSubtrip_;
4920 }
4921
4943 public Builder setUseRelocateSubtripValue(int value) {
4944 useRelocateSubtrip_ = value;
4945 bitField0_ |= 0x00000010;
4946 onChanged();
4947 return this;
4948 }
4949
4970 @java.lang.Override
4972 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useRelocateSubtrip_);
4973 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
4974 }
4975
4997 public Builder setUseRelocateSubtrip(com.google.ortools.util.OptionalBoolean value) {
4998 if (value == null) { throw new NullPointerException(); }
4999 bitField0_ |= 0x00000010;
5000 useRelocateSubtrip_ = value.getNumber();
5001 onChanged();
5002 return this;
5003 }
5004
5025 public Builder clearUseRelocateSubtrip() {
5026 bitField0_ = (bitField0_ & ~0x00000010);
5027 useRelocateSubtrip_ = 0;
5028 onChanged();
5029 return this;
5030 }
5031
5032 private int useExchange_ = 0;
5047 @java.lang.Override public int getUseExchangeValue() {
5048 return useExchange_;
5049 }
5050
5065 public Builder setUseExchangeValue(int value) {
5066 useExchange_ = value;
5067 bitField0_ |= 0x00000020;
5068 onChanged();
5069 return this;
5070 }
5071
5085 @java.lang.Override
5087 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useExchange_);
5088 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
5089 }
5090
5105 public Builder setUseExchange(com.google.ortools.util.OptionalBoolean value) {
5106 if (value == null) { throw new NullPointerException(); }
5107 bitField0_ |= 0x00000020;
5108 useExchange_ = value.getNumber();
5109 onChanged();
5110 return this;
5111 }
5112
5126 public Builder clearUseExchange() {
5127 bitField0_ = (bitField0_ & ~0x00000020);
5128 useExchange_ = 0;
5129 onChanged();
5130 return this;
5131 }
5132
5133 private int useExchangePair_ = 0;
5148 @java.lang.Override public int getUseExchangePairValue() {
5149 return useExchangePair_;
5150 }
5151
5166 public Builder setUseExchangePairValue(int value) {
5167 useExchangePair_ = value;
5168 bitField0_ |= 0x00000040;
5169 onChanged();
5170 return this;
5171 }
5172
5186 @java.lang.Override
5188 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useExchangePair_);
5189 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
5190 }
5191
5206 public Builder setUseExchangePair(com.google.ortools.util.OptionalBoolean value) {
5207 if (value == null) { throw new NullPointerException(); }
5208 bitField0_ |= 0x00000040;
5209 useExchangePair_ = value.getNumber();
5210 onChanged();
5211 return this;
5212 }
5213
5227 public Builder clearUseExchangePair() {
5228 bitField0_ = (bitField0_ & ~0x00000040);
5229 useExchangePair_ = 0;
5230 onChanged();
5231 return this;
5232 }
5233
5234 private int useExchangeSubtrip_ = 0;
5244 @java.lang.Override public int getUseExchangeSubtripValue() {
5245 return useExchangeSubtrip_;
5246 }
5247
5257 public Builder setUseExchangeSubtripValue(int value) {
5258 useExchangeSubtrip_ = value;
5259 bitField0_ |= 0x00000080;
5260 onChanged();
5261 return this;
5262 }
5263
5272 @java.lang.Override
5274 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useExchangeSubtrip_);
5275 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
5276 }
5277
5287 public Builder setUseExchangeSubtrip(com.google.ortools.util.OptionalBoolean value) {
5288 if (value == null) { throw new NullPointerException(); }
5289 bitField0_ |= 0x00000080;
5290 useExchangeSubtrip_ = value.getNumber();
5291 onChanged();
5292 return this;
5293 }
5294
5303 public Builder clearUseExchangeSubtrip() {
5304 bitField0_ = (bitField0_ & ~0x00000080);
5305 useExchangeSubtrip_ = 0;
5306 onChanged();
5307 return this;
5308 }
5309
5310 private int useCross_ = 0;
5327 @java.lang.Override public int getUseCrossValue() {
5328 return useCross_;
5329 }
5330
5347 public Builder setUseCrossValue(int value) {
5348 useCross_ = value;
5349 bitField0_ |= 0x00000100;
5350 onChanged();
5351 return this;
5352 }
5353
5369 @java.lang.Override
5371 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useCross_);
5372 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
5373 }
5374
5391 public Builder setUseCross(com.google.ortools.util.OptionalBoolean value) {
5392 if (value == null) { throw new NullPointerException(); }
5393 bitField0_ |= 0x00000100;
5394 useCross_ = value.getNumber();
5395 onChanged();
5396 return this;
5397 }
5398
5414 public Builder clearUseCross() {
5415 bitField0_ = (bitField0_ & ~0x00000100);
5416 useCross_ = 0;
5417 onChanged();
5418 return this;
5419 }
5420
5421 private int useCrossExchange_ = 0;
5430 @java.lang.Override public int getUseCrossExchangeValue() {
5431 return useCrossExchange_;
5432 }
5433
5442 public Builder setUseCrossExchangeValue(int value) {
5443 useCrossExchange_ = value;
5444 bitField0_ |= 0x00000200;
5445 onChanged();
5446 return this;
5447 }
5448
5456 @java.lang.Override
5458 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useCrossExchange_);
5459 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
5460 }
5461
5470 public Builder setUseCrossExchange(com.google.ortools.util.OptionalBoolean value) {
5471 if (value == null) { throw new NullPointerException(); }
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) { throw new NullPointerException(); }
5579 bitField0_ |= 0x00000400;
5580 useRelocateExpensiveChain_ = value.getNumber();
5581 onChanged();
5582 return this;
5583 }
5584
5602 bitField0_ = (bitField0_ & ~0x00000400);
5603 useRelocateExpensiveChain_ = 0;
5604 onChanged();
5605 return this;
5606 }
5607
5608 private int useTwoOpt_ = 0;
5626 @java.lang.Override public int getUseTwoOptValue() {
5627 return useTwoOpt_;
5628 }
5629
5647 public Builder setUseTwoOptValue(int value) {
5648 useTwoOpt_ = value;
5649 bitField0_ |= 0x00000800;
5650 onChanged();
5651 return this;
5652 }
5653
5670 @java.lang.Override
5672 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useTwoOpt_);
5673 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
5674 }
5675
5693 public Builder setUseTwoOpt(com.google.ortools.util.OptionalBoolean value) {
5694 if (value == null) { throw new NullPointerException(); }
5695 bitField0_ |= 0x00000800;
5696 useTwoOpt_ = value.getNumber();
5697 onChanged();
5698 return this;
5699 }
5700
5717 public Builder clearUseTwoOpt() {
5718 bitField0_ = (bitField0_ & ~0x00000800);
5719 useTwoOpt_ = 0;
5720 onChanged();
5721 return this;
5722 }
5723
5724 private int useOrOpt_ = 0;
5743 @java.lang.Override public int getUseOrOptValue() {
5744 return useOrOpt_;
5745 }
5746
5765 public Builder setUseOrOptValue(int value) {
5766 useOrOpt_ = value;
5767 bitField0_ |= 0x00001000;
5768 onChanged();
5769 return this;
5770 }
5771
5789 @java.lang.Override
5791 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useOrOpt_);
5792 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
5793 }
5794
5813 public Builder setUseOrOpt(com.google.ortools.util.OptionalBoolean value) {
5814 if (value == null) { throw new NullPointerException(); }
5815 bitField0_ |= 0x00001000;
5816 useOrOpt_ = value.getNumber();
5817 onChanged();
5818 return this;
5819 }
5820
5838 public Builder clearUseOrOpt() {
5839 bitField0_ = (bitField0_ & ~0x00001000);
5840 useOrOpt_ = 0;
5841 onChanged();
5842 return this;
5843 }
5844
5845 private int useLinKernighan_ = 0;
5857 @java.lang.Override public int getUseLinKernighanValue() {
5858 return useLinKernighan_;
5859 }
5860
5872 public Builder setUseLinKernighanValue(int value) {
5873 useLinKernighan_ = value;
5874 bitField0_ |= 0x00002000;
5875 onChanged();
5876 return this;
5877 }
5878
5889 @java.lang.Override
5891 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useLinKernighan_);
5892 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
5893 }
5894
5906 public Builder setUseLinKernighan(com.google.ortools.util.OptionalBoolean value) {
5907 if (value == null) { throw new NullPointerException(); }
5908 bitField0_ |= 0x00002000;
5909 useLinKernighan_ = value.getNumber();
5910 onChanged();
5911 return this;
5912 }
5913
5924 public Builder clearUseLinKernighan() {
5925 bitField0_ = (bitField0_ & ~0x00002000);
5926 useLinKernighan_ = 0;
5927 onChanged();
5928 return this;
5929 }
5930
5931 private int useTspOpt_ = 0;
5945 @java.lang.Override public int getUseTspOptValue() {
5946 return useTspOpt_;
5947 }
5948
5962 public Builder setUseTspOptValue(int value) {
5963 useTspOpt_ = value;
5964 bitField0_ |= 0x00004000;
5965 onChanged();
5966 return this;
5967 }
5968
5981 @java.lang.Override
5983 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useTspOpt_);
5984 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
5985 }
5986
6000 public Builder setUseTspOpt(com.google.ortools.util.OptionalBoolean value) {
6001 if (value == null) { throw new NullPointerException(); }
6002 bitField0_ |= 0x00004000;
6003 useTspOpt_ = value.getNumber();
6004 onChanged();
6005 return this;
6006 }
6007
6020 public Builder clearUseTspOpt() {
6021 bitField0_ = (bitField0_ & ~0x00004000);
6022 useTspOpt_ = 0;
6023 onChanged();
6024 return this;
6025 }
6026
6027 private int useMakeActive_ = 0;
6042 @java.lang.Override public int getUseMakeActiveValue() {
6043 return useMakeActive_;
6044 }
6045
6060 public Builder setUseMakeActiveValue(int value) {
6061 useMakeActive_ = value;
6062 bitField0_ |= 0x00008000;
6063 onChanged();
6064 return this;
6065 }
6066
6080 @java.lang.Override
6082 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useMakeActive_);
6083 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6084 }
6085
6100 public Builder setUseMakeActive(com.google.ortools.util.OptionalBoolean value) {
6101 if (value == null) { throw new NullPointerException(); }
6102 bitField0_ |= 0x00008000;
6103 useMakeActive_ = value.getNumber();
6104 onChanged();
6105 return this;
6106 }
6107
6121 public Builder clearUseMakeActive() {
6122 bitField0_ = (bitField0_ & ~0x00008000);
6123 useMakeActive_ = 0;
6124 onChanged();
6125 return this;
6126 }
6127
6128 private int useRelocateAndMakeActive_ = 0;
6146 @java.lang.Override public int getUseRelocateAndMakeActiveValue() {
6147 return useRelocateAndMakeActive_;
6148 }
6149
6167 public Builder setUseRelocateAndMakeActiveValue(int value) {
6168 useRelocateAndMakeActive_ = value;
6169 bitField0_ |= 0x00010000;
6170 onChanged();
6171 return this;
6172 }
6173
6190 @java.lang.Override
6192 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useRelocateAndMakeActive_);
6193 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6194 }
6195
6213 public Builder setUseRelocateAndMakeActive(com.google.ortools.util.OptionalBoolean value) {
6214 if (value == null) { throw new NullPointerException(); }
6215 bitField0_ |= 0x00010000;
6216 useRelocateAndMakeActive_ = value.getNumber();
6217 onChanged();
6218 return this;
6219 }
6220
6238 bitField0_ = (bitField0_ & ~0x00010000);
6239 useRelocateAndMakeActive_ = 0;
6240 onChanged();
6241 return this;
6242 }
6243
6244 private int useExchangeAndMakeActive_ = 0;
6258 @java.lang.Override public int getUseExchangeAndMakeActiveValue() {
6259 return useExchangeAndMakeActive_;
6260 }
6261
6275 public Builder setUseExchangeAndMakeActiveValue(int value) {
6276 useExchangeAndMakeActive_ = value;
6277 bitField0_ |= 0x00020000;
6278 onChanged();
6279 return this;
6280 }
6281
6294 @java.lang.Override
6296 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useExchangeAndMakeActive_);
6297 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6298 }
6299
6313 public Builder setUseExchangeAndMakeActive(com.google.ortools.util.OptionalBoolean value) {
6314 if (value == null) { throw new NullPointerException(); }
6315 bitField0_ |= 0x00020000;
6316 useExchangeAndMakeActive_ = value.getNumber();
6317 onChanged();
6318 return this;
6319 }
6320
6334 bitField0_ = (bitField0_ & ~0x00020000);
6335 useExchangeAndMakeActive_ = 0;
6336 onChanged();
6337 return this;
6338 }
6339
6340 private int useExchangePathStartEndsAndMakeActive_ = 0;
6357 @java.lang.Override public int getUseExchangePathStartEndsAndMakeActiveValue() {
6358 return useExchangePathStartEndsAndMakeActive_;
6359 }
6360
6378 useExchangePathStartEndsAndMakeActive_ = value;
6379 bitField0_ |= 0x00040000;
6380 onChanged();
6381 return this;
6382 }
6383
6399 @java.lang.Override
6401 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useExchangePathStartEndsAndMakeActive_);
6402 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6403 }
6404
6421 public Builder setUseExchangePathStartEndsAndMakeActive(com.google.ortools.util.OptionalBoolean value) {
6422 if (value == null) { throw new NullPointerException(); }
6423 bitField0_ |= 0x00040000;
6424 useExchangePathStartEndsAndMakeActive_ = value.getNumber();
6425 onChanged();
6426 return this;
6427 }
6428
6445 bitField0_ = (bitField0_ & ~0x00040000);
6446 useExchangePathStartEndsAndMakeActive_ = 0;
6447 onChanged();
6448 return this;
6449 }
6450
6451 private int useMakeInactive_ = 0;
6464 @java.lang.Override public int getUseMakeInactiveValue() {
6465 return useMakeInactive_;
6466 }
6467
6480 public Builder setUseMakeInactiveValue(int value) {
6481 useMakeInactive_ = value;
6482 bitField0_ |= 0x00080000;
6483 onChanged();
6484 return this;
6485 }
6486
6498 @java.lang.Override
6500 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useMakeInactive_);
6501 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6502 }
6503
6516 public Builder setUseMakeInactive(com.google.ortools.util.OptionalBoolean value) {
6517 if (value == null) { throw new NullPointerException(); }
6518 bitField0_ |= 0x00080000;
6519 useMakeInactive_ = value.getNumber();
6520 onChanged();
6521 return this;
6522 }
6523
6535 public Builder clearUseMakeInactive() {
6536 bitField0_ = (bitField0_ & ~0x00080000);
6537 useMakeInactive_ = 0;
6538 onChanged();
6539 return this;
6540 }
6541
6542 private int useMakeChainInactive_ = 0;
6556 @java.lang.Override public int getUseMakeChainInactiveValue() {
6557 return useMakeChainInactive_;
6558 }
6559
6573 public Builder setUseMakeChainInactiveValue(int value) {
6574 useMakeChainInactive_ = value;
6575 bitField0_ |= 0x00100000;
6576 onChanged();
6577 return this;
6578 }
6579
6592 @java.lang.Override
6594 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useMakeChainInactive_);
6595 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6596 }
6597
6611 public Builder setUseMakeChainInactive(com.google.ortools.util.OptionalBoolean value) {
6612 if (value == null) { throw new NullPointerException(); }
6613 bitField0_ |= 0x00100000;
6614 useMakeChainInactive_ = value.getNumber();
6615 onChanged();
6616 return this;
6617 }
6618
6631 public Builder clearUseMakeChainInactive() {
6632 bitField0_ = (bitField0_ & ~0x00100000);
6633 useMakeChainInactive_ = 0;
6634 onChanged();
6635 return this;
6636 }
6637
6638 private int useSwapActive_ = 0;
6651 @java.lang.Override public int getUseSwapActiveValue() {
6652 return useSwapActive_;
6653 }
6654
6667 public Builder setUseSwapActiveValue(int value) {
6668 useSwapActive_ = value;
6669 bitField0_ |= 0x00200000;
6670 onChanged();
6671 return this;
6672 }
6673
6685 @java.lang.Override
6687 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useSwapActive_);
6688 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6689 }
6690
6703 public Builder setUseSwapActive(com.google.ortools.util.OptionalBoolean value) {
6704 if (value == null) { throw new NullPointerException(); }
6705 bitField0_ |= 0x00200000;
6706 useSwapActive_ = value.getNumber();
6707 onChanged();
6708 return this;
6709 }
6710
6722 public Builder clearUseSwapActive() {
6723 bitField0_ = (bitField0_ & ~0x00200000);
6724 useSwapActive_ = 0;
6725 onChanged();
6726 return this;
6727 }
6728
6729 private int useSwapActiveChain_ = 0;
6743 @java.lang.Override public int getUseSwapActiveChainValue() {
6744 return useSwapActiveChain_;
6745 }
6746
6760 public Builder setUseSwapActiveChainValue(int value) {
6761 useSwapActiveChain_ = value;
6762 bitField0_ |= 0x00400000;
6763 onChanged();
6764 return this;
6765 }
6766
6779 @java.lang.Override
6781 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useSwapActiveChain_);
6782 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6783 }
6784
6798 public Builder setUseSwapActiveChain(com.google.ortools.util.OptionalBoolean value) {
6799 if (value == null) { throw new NullPointerException(); }
6800 bitField0_ |= 0x00400000;
6801 useSwapActiveChain_ = value.getNumber();
6802 onChanged();
6803 return this;
6804 }
6805
6818 public Builder clearUseSwapActiveChain() {
6819 bitField0_ = (bitField0_ & ~0x00400000);
6820 useSwapActiveChain_ = 0;
6821 onChanged();
6822 return this;
6823 }
6824
6825 private int useExtendedSwapActive_ = 0;
6843 @java.lang.Override public int getUseExtendedSwapActiveValue() {
6844 return useExtendedSwapActive_;
6845 }
6846
6864 public Builder setUseExtendedSwapActiveValue(int value) {
6865 useExtendedSwapActive_ = value;
6866 bitField0_ |= 0x00800000;
6867 onChanged();
6868 return this;
6869 }
6870
6887 @java.lang.Override
6889 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useExtendedSwapActive_);
6890 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6891 }
6892
6910 public Builder setUseExtendedSwapActive(com.google.ortools.util.OptionalBoolean value) {
6911 if (value == null) { throw new NullPointerException(); }
6912 bitField0_ |= 0x00800000;
6913 useExtendedSwapActive_ = value.getNumber();
6914 onChanged();
6915 return this;
6916 }
6917
6935 bitField0_ = (bitField0_ & ~0x00800000);
6936 useExtendedSwapActive_ = 0;
6937 onChanged();
6938 return this;
6939 }
6940
6941 private int useShortestPathSwapActive_ = 0;
6955 @java.lang.Override public int getUseShortestPathSwapActiveValue() {
6956 return useShortestPathSwapActive_;
6957 }
6958
6972 public Builder setUseShortestPathSwapActiveValue(int value) {
6973 useShortestPathSwapActive_ = value;
6974 bitField0_ |= 0x01000000;
6975 onChanged();
6976 return this;
6977 }
6978
6991 @java.lang.Override
6993 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useShortestPathSwapActive_);
6994 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
6995 }
6996
7010 public Builder setUseShortestPathSwapActive(com.google.ortools.util.OptionalBoolean value) {
7011 if (value == null) { throw new NullPointerException(); }
7012 bitField0_ |= 0x01000000;
7013 useShortestPathSwapActive_ = value.getNumber();
7014 onChanged();
7015 return this;
7016 }
7017
7031 bitField0_ = (bitField0_ & ~0x01000000);
7032 useShortestPathSwapActive_ = 0;
7033 onChanged();
7034 return this;
7035 }
7036
7037 private int useShortestPathTwoOpt_ = 0;
7047 @java.lang.Override public int getUseShortestPathTwoOptValue() {
7048 return useShortestPathTwoOpt_;
7049 }
7050
7060 public Builder setUseShortestPathTwoOptValue(int value) {
7061 useShortestPathTwoOpt_ = value;
7062 bitField0_ |= 0x02000000;
7063 onChanged();
7064 return this;
7065 }
7066
7075 @java.lang.Override
7077 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useShortestPathTwoOpt_);
7078 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
7079 }
7080
7090 public Builder setUseShortestPathTwoOpt(com.google.ortools.util.OptionalBoolean value) {
7091 if (value == null) { throw new NullPointerException(); }
7092 bitField0_ |= 0x02000000;
7093 useShortestPathTwoOpt_ = value.getNumber();
7094 onChanged();
7095 return this;
7096 }
7097
7107 bitField0_ = (bitField0_ & ~0x02000000);
7108 useShortestPathTwoOpt_ = 0;
7109 onChanged();
7110 return this;
7111 }
7112
7113 private int useNodePairSwapActive_ = 0;
7132 @java.lang.Override public int getUseNodePairSwapActiveValue() {
7133 return useNodePairSwapActive_;
7134 }
7135
7154 public Builder setUseNodePairSwapActiveValue(int value) {
7155 useNodePairSwapActive_ = value;
7156 bitField0_ |= 0x04000000;
7157 onChanged();
7158 return this;
7159 }
7160
7178 @java.lang.Override
7180 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useNodePairSwapActive_);
7181 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
7182 }
7183
7202 public Builder setUseNodePairSwapActive(com.google.ortools.util.OptionalBoolean value) {
7203 if (value == null) { throw new NullPointerException(); }
7204 bitField0_ |= 0x04000000;
7205 useNodePairSwapActive_ = value.getNumber();
7206 onChanged();
7207 return this;
7208 }
7209
7228 bitField0_ = (bitField0_ & ~0x04000000);
7229 useNodePairSwapActive_ = 0;
7230 onChanged();
7231 return this;
7232 }
7233
7234 private int usePathLns_ = 0;
7250 @java.lang.Override public int getUsePathLnsValue() {
7251 return usePathLns_;
7252 }
7253
7269 public Builder setUsePathLnsValue(int value) {
7270 usePathLns_ = value;
7271 bitField0_ |= 0x08000000;
7272 onChanged();
7273 return this;
7274 }
7275
7290 @java.lang.Override
7292 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(usePathLns_);
7293 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
7294 }
7295
7311 public Builder setUsePathLns(com.google.ortools.util.OptionalBoolean value) {
7312 if (value == null) { throw new NullPointerException(); }
7313 bitField0_ |= 0x08000000;
7314 usePathLns_ = value.getNumber();
7315 onChanged();
7316 return this;
7317 }
7318
7333 public Builder clearUsePathLns() {
7334 bitField0_ = (bitField0_ & ~0x08000000);
7335 usePathLns_ = 0;
7336 onChanged();
7337 return this;
7338 }
7339
7340 private int useFullPathLns_ = 0;
7349 @java.lang.Override public int getUseFullPathLnsValue() {
7350 return useFullPathLns_;
7351 }
7352
7361 public Builder setUseFullPathLnsValue(int value) {
7362 useFullPathLns_ = value;
7363 bitField0_ |= 0x10000000;
7364 onChanged();
7365 return this;
7366 }
7367
7375 @java.lang.Override
7377 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useFullPathLns_);
7378 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
7379 }
7380
7389 public Builder setUseFullPathLns(com.google.ortools.util.OptionalBoolean value) {
7390 if (value == null) { throw new NullPointerException(); }
7391 bitField0_ |= 0x10000000;
7392 useFullPathLns_ = value.getNumber();
7393 onChanged();
7394 return this;
7395 }
7396
7404 public Builder clearUseFullPathLns() {
7405 bitField0_ = (bitField0_ & ~0x10000000);
7406 useFullPathLns_ = 0;
7407 onChanged();
7408 return this;
7409 }
7410
7411 private int useTspLns_ = 0;
7425 @java.lang.Override public int getUseTspLnsValue() {
7426 return useTspLns_;
7427 }
7428
7442 public Builder setUseTspLnsValue(int value) {
7443 useTspLns_ = value;
7444 bitField0_ |= 0x20000000;
7445 onChanged();
7446 return this;
7447 }
7448
7461 @java.lang.Override
7463 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useTspLns_);
7464 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
7465 }
7466
7480 public Builder setUseTspLns(com.google.ortools.util.OptionalBoolean value) {
7481 if (value == null) { throw new NullPointerException(); }
7482 bitField0_ |= 0x20000000;
7483 useTspLns_ = value.getNumber();
7484 onChanged();
7485 return this;
7486 }
7487
7500 public Builder clearUseTspLns() {
7501 bitField0_ = (bitField0_ & ~0x20000000);
7502 useTspLns_ = 0;
7503 onChanged();
7504 return this;
7505 }
7506
7507 private int useInactiveLns_ = 0;
7518 @java.lang.Override public int getUseInactiveLnsValue() {
7519 return useInactiveLns_;
7520 }
7521
7532 public Builder setUseInactiveLnsValue(int value) {
7533 useInactiveLns_ = value;
7534 bitField0_ |= 0x40000000;
7535 onChanged();
7536 return this;
7537 }
7538
7548 @java.lang.Override
7550 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useInactiveLns_);
7551 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
7552 }
7553
7564 public Builder setUseInactiveLns(com.google.ortools.util.OptionalBoolean value) {
7565 if (value == null) { throw new NullPointerException(); }
7566 bitField0_ |= 0x40000000;
7567 useInactiveLns_ = value.getNumber();
7568 onChanged();
7569 return this;
7570 }
7571
7581 public Builder clearUseInactiveLns() {
7582 bitField0_ = (bitField0_ & ~0x40000000);
7583 useInactiveLns_ = 0;
7584 onChanged();
7585 return this;
7586 }
7587
7588 private int useGlobalCheapestInsertionPathLns_ = 0;
7599 @java.lang.Override public int getUseGlobalCheapestInsertionPathLnsValue() {
7600 return useGlobalCheapestInsertionPathLns_;
7601 }
7602
7614 useGlobalCheapestInsertionPathLns_ = value;
7615 bitField0_ |= 0x80000000;
7616 onChanged();
7617 return this;
7618 }
7619
7629 @java.lang.Override
7631 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useGlobalCheapestInsertionPathLns_);
7632 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
7633 }
7634
7645 public Builder setUseGlobalCheapestInsertionPathLns(com.google.ortools.util.OptionalBoolean value) {
7646 if (value == null) { throw new NullPointerException(); }
7647 bitField0_ |= 0x80000000;
7648 useGlobalCheapestInsertionPathLns_ = value.getNumber();
7649 onChanged();
7650 return this;
7651 }
7652
7663 bitField0_ = (bitField0_ & ~0x80000000);
7664 useGlobalCheapestInsertionPathLns_ = 0;
7665 onChanged();
7666 return this;
7667 }
7668
7669 private int useLocalCheapestInsertionPathLns_ = 0;
7678 @java.lang.Override public int getUseLocalCheapestInsertionPathLnsValue() {
7679 return useLocalCheapestInsertionPathLns_;
7680 }
7681
7691 useLocalCheapestInsertionPathLns_ = value;
7692 bitField1_ |= 0x00000001;
7693 onChanged();
7694 return this;
7695 }
7696
7704 @java.lang.Override
7706 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useLocalCheapestInsertionPathLns_);
7707 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
7708 }
7709
7718 public Builder setUseLocalCheapestInsertionPathLns(com.google.ortools.util.OptionalBoolean value) {
7719 if (value == null) { throw new NullPointerException(); }
7720 bitField1_ |= 0x00000001;
7721 useLocalCheapestInsertionPathLns_ = value.getNumber();
7722 onChanged();
7723 return this;
7724 }
7725
7734 bitField1_ = (bitField1_ & ~0x00000001);
7735 useLocalCheapestInsertionPathLns_ = 0;
7736 onChanged();
7737 return this;
7738 }
7739
7740 private int useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = 0;
7752 return useRelocatePathGlobalCheapestInsertionInsertUnperformed_;
7753 }
7754
7766 useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = value;
7767 bitField1_ |= 0x00000002;
7768 onChanged();
7769 return this;
7770 }
7771
7781 @java.lang.Override
7783 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useRelocatePathGlobalCheapestInsertionInsertUnperformed_);
7784 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
7785 }
7786
7797 public Builder setUseRelocatePathGlobalCheapestInsertionInsertUnperformed(com.google.ortools.util.OptionalBoolean value) {
7798 if (value == null) { throw new NullPointerException(); }
7799 bitField1_ |= 0x00000002;
7800 useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = value.getNumber();
7801 onChanged();
7802 return this;
7803 }
7804
7815 bitField1_ = (bitField1_ & ~0x00000002);
7816 useRelocatePathGlobalCheapestInsertionInsertUnperformed_ = 0;
7817 onChanged();
7818 return this;
7819 }
7820
7821 private int useGlobalCheapestInsertionExpensiveChainLns_ = 0;
7834 return useGlobalCheapestInsertionExpensiveChainLns_;
7835 }
7836
7849 useGlobalCheapestInsertionExpensiveChainLns_ = value;
7850 bitField1_ |= 0x00000004;
7851 onChanged();
7852 return this;
7853 }
7854
7865 @java.lang.Override
7867 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useGlobalCheapestInsertionExpensiveChainLns_);
7868 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
7869 }
7870
7882 public Builder setUseGlobalCheapestInsertionExpensiveChainLns(com.google.ortools.util.OptionalBoolean value) {
7883 if (value == null) { throw new NullPointerException(); }
7884 bitField1_ |= 0x00000004;
7885 useGlobalCheapestInsertionExpensiveChainLns_ = value.getNumber();
7886 onChanged();
7887 return this;
7888 }
7889
7901 bitField1_ = (bitField1_ & ~0x00000004);
7902 useGlobalCheapestInsertionExpensiveChainLns_ = 0;
7903 onChanged();
7904 return this;
7905 }
7906
7907 private int useLocalCheapestInsertionExpensiveChainLns_ = 0;
7918 return useLocalCheapestInsertionExpensiveChainLns_;
7919 }
7920
7931 useLocalCheapestInsertionExpensiveChainLns_ = value;
7932 bitField1_ |= 0x00000008;
7933 onChanged();
7934 return this;
7935 }
7936
7945 @java.lang.Override
7947 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useLocalCheapestInsertionExpensiveChainLns_);
7948 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
7949 }
7950
7960 public Builder setUseLocalCheapestInsertionExpensiveChainLns(com.google.ortools.util.OptionalBoolean value) {
7961 if (value == null) { throw new NullPointerException(); }
7962 bitField1_ |= 0x00000008;
7963 useLocalCheapestInsertionExpensiveChainLns_ = value.getNumber();
7964 onChanged();
7965 return this;
7966 }
7967
7977 bitField1_ = (bitField1_ & ~0x00000008);
7978 useLocalCheapestInsertionExpensiveChainLns_ = 0;
7979 onChanged();
7980 return this;
7981 }
7982
7983 private int useGlobalCheapestInsertionCloseNodesLns_ = 0;
7995 @java.lang.Override public int getUseGlobalCheapestInsertionCloseNodesLnsValue() {
7996 return useGlobalCheapestInsertionCloseNodesLns_;
7997 }
7998
8011 useGlobalCheapestInsertionCloseNodesLns_ = value;
8012 bitField1_ |= 0x00000010;
8013 onChanged();
8014 return this;
8015 }
8016
8027 @java.lang.Override
8029 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useGlobalCheapestInsertionCloseNodesLns_);
8030 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
8031 }
8032
8044 public Builder setUseGlobalCheapestInsertionCloseNodesLns(com.google.ortools.util.OptionalBoolean value) {
8045 if (value == null) { throw new NullPointerException(); }
8046 bitField1_ |= 0x00000010;
8047 useGlobalCheapestInsertionCloseNodesLns_ = value.getNumber();
8048 onChanged();
8049 return this;
8050 }
8051
8063 bitField1_ = (bitField1_ & ~0x00000010);
8064 useGlobalCheapestInsertionCloseNodesLns_ = 0;
8065 onChanged();
8066 return this;
8067 }
8068
8069 private int useLocalCheapestInsertionCloseNodesLns_ = 0;
8079 @java.lang.Override public int getUseLocalCheapestInsertionCloseNodesLnsValue() {
8080 return useLocalCheapestInsertionCloseNodesLns_;
8081 }
8082
8093 useLocalCheapestInsertionCloseNodesLns_ = value;
8094 bitField1_ |= 0x00000020;
8095 onChanged();
8096 return this;
8097 }
8098
8107 @java.lang.Override
8109 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useLocalCheapestInsertionCloseNodesLns_);
8110 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
8111 }
8112
8122 public Builder setUseLocalCheapestInsertionCloseNodesLns(com.google.ortools.util.OptionalBoolean value) {
8123 if (value == null) { throw new NullPointerException(); }
8124 bitField1_ |= 0x00000020;
8125 useLocalCheapestInsertionCloseNodesLns_ = value.getNumber();
8126 onChanged();
8127 return this;
8128 }
8129
8139 bitField1_ = (bitField1_ & ~0x00000020);
8140 useLocalCheapestInsertionCloseNodesLns_ = 0;
8141 onChanged();
8142 return this;
8143 }
8144
8145 // @@protoc_insertion_point(builder_scope:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
8146 }
8147
8148 // @@protoc_insertion_point(class_scope:operations_research.RoutingSearchParameters.LocalSearchNeighborhoodOperators)
8150 static {
8151 DEFAULT_INSTANCE = new com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators();
8152 }
8153
8157
8158 private static final com.google.protobuf.Parser<LocalSearchNeighborhoodOperators>
8159 PARSER = new com.google.protobuf.AbstractParser<LocalSearchNeighborhoodOperators>() {
8160 @java.lang.Override
8161 public LocalSearchNeighborhoodOperators parsePartialFrom(
8162 com.google.protobuf.CodedInputStream input,
8163 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8164 throws com.google.protobuf.InvalidProtocolBufferException {
8165 Builder builder = newBuilder();
8166 try {
8167 builder.mergeFrom(input, extensionRegistry);
8168 } catch (com.google.protobuf.InvalidProtocolBufferException e) {
8169 throw e.setUnfinishedMessage(builder.buildPartial());
8170 } catch (com.google.protobuf.UninitializedMessageException e) {
8171 throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
8172 } catch (java.io.IOException e) {
8173 throw new com.google.protobuf.InvalidProtocolBufferException(e)
8174 .setUnfinishedMessage(builder.buildPartial());
8175 }
8176 return builder.buildPartial();
8177 }
8178 };
8179
8180 public static com.google.protobuf.Parser<LocalSearchNeighborhoodOperators> parser() {
8181 return PARSER;
8182 }
8183
8184 @java.lang.Override
8185 public com.google.protobuf.Parser<LocalSearchNeighborhoodOperators> getParserForType() {
8186 return PARSER;
8187 }
8188
8189 @java.lang.Override
8193
8194 }
8195
8197 // @@protoc_insertion_point(interface_extends:operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters)
8198 com.google.protobuf.MessageOrBuilder {
8199
8211
8225 }
8226
8233 public static final class ImprovementSearchLimitParameters extends
8234 com.google.protobuf.GeneratedMessage implements
8235 // @@protoc_insertion_point(message_implements:operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters)
8237 private static final long serialVersionUID = 0L;
8238 static {
8239 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
8240 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
8241 /* major= */ 4,
8242 /* minor= */ 31,
8243 /* patch= */ 1,
8244 /* suffix= */ "",
8245 ImprovementSearchLimitParameters.class.getName());
8246 }
8247 // Use ImprovementSearchLimitParameters.newBuilder() to construct.
8248 private ImprovementSearchLimitParameters(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
8249 super(builder);
8250 }
8251 private ImprovementSearchLimitParameters() {
8252 }
8253
8254 public static final com.google.protobuf.Descriptors.Descriptor
8256 return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_ImprovementSearchLimitParameters_descriptor;
8257 }
8258
8259 @java.lang.Override
8260 protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
8262 return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_ImprovementSearchLimitParameters_fieldAccessorTable
8263 .ensureFieldAccessorsInitialized(
8264 com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.class, com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.Builder.class);
8265 }
8266
8267 public static final int IMPROVEMENT_RATE_COEFFICIENT_FIELD_NUMBER = 38;
8268 private double improvementRateCoefficient_ = 0D;
8279 @java.lang.Override
8281 return improvementRateCoefficient_;
8282 }
8283
8285 private int improvementRateSolutionsDistance_ = 0;
8298 @java.lang.Override
8300 return improvementRateSolutionsDistance_;
8301 }
8302
8303 private byte memoizedIsInitialized = -1;
8304 @java.lang.Override
8305 public final boolean isInitialized() {
8306 byte isInitialized = memoizedIsInitialized;
8307 if (isInitialized == 1) return true;
8308 if (isInitialized == 0) return false;
8309
8310 memoizedIsInitialized = 1;
8311 return true;
8312 }
8313
8314 @java.lang.Override
8315 public void writeTo(com.google.protobuf.CodedOutputStream output)
8316 throws java.io.IOException {
8317 if (java.lang.Double.doubleToRawLongBits(improvementRateCoefficient_) != 0) {
8318 output.writeDouble(38, improvementRateCoefficient_);
8319 }
8320 if (improvementRateSolutionsDistance_ != 0) {
8321 output.writeInt32(39, improvementRateSolutionsDistance_);
8322 }
8323 getUnknownFields().writeTo(output);
8324 }
8325
8326 @java.lang.Override
8327 public int getSerializedSize() {
8328 int size = memoizedSize;
8329 if (size != -1) return size;
8330
8331 size = 0;
8332 if (java.lang.Double.doubleToRawLongBits(improvementRateCoefficient_) != 0) {
8333 size += com.google.protobuf.CodedOutputStream
8334 .computeDoubleSize(38, improvementRateCoefficient_);
8335 }
8336 if (improvementRateSolutionsDistance_ != 0) {
8337 size += com.google.protobuf.CodedOutputStream
8338 .computeInt32Size(39, improvementRateSolutionsDistance_);
8339 }
8340 size += getUnknownFields().getSerializedSize();
8341 memoizedSize = size;
8342 return size;
8343 }
8344
8345 @java.lang.Override
8346 public boolean equals(final java.lang.Object obj) {
8347 if (obj == this) {
8348 return true;
8349 }
8350 if (!(obj instanceof com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters)) {
8351 return super.equals(obj);
8352 }
8353 com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters other = (com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters) obj;
8354
8355 if (java.lang.Double.doubleToLongBits(getImprovementRateCoefficient())
8356 != java.lang.Double.doubleToLongBits(
8357 other.getImprovementRateCoefficient())) return false;
8359 != other.getImprovementRateSolutionsDistance()) return false;
8360 if (!getUnknownFields().equals(other.getUnknownFields())) return false;
8361 return true;
8362 }
8363
8364 @java.lang.Override
8365 public int hashCode() {
8366 if (memoizedHashCode != 0) {
8367 return memoizedHashCode;
8368 }
8369 int hash = 41;
8370 hash = (19 * hash) + getDescriptor().hashCode();
8371 hash = (37 * hash) + IMPROVEMENT_RATE_COEFFICIENT_FIELD_NUMBER;
8372 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
8373 java.lang.Double.doubleToLongBits(getImprovementRateCoefficient()));
8375 hash = (53 * hash) + getImprovementRateSolutionsDistance();
8376 hash = (29 * hash) + getUnknownFields().hashCode();
8377 memoizedHashCode = hash;
8378 return hash;
8379 }
8380
8382 java.nio.ByteBuffer data)
8383 throws com.google.protobuf.InvalidProtocolBufferException {
8384 return PARSER.parseFrom(data);
8385 }
8387 java.nio.ByteBuffer data,
8388 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8389 throws com.google.protobuf.InvalidProtocolBufferException {
8390 return PARSER.parseFrom(data, extensionRegistry);
8391 }
8393 com.google.protobuf.ByteString data)
8394 throws com.google.protobuf.InvalidProtocolBufferException {
8395 return PARSER.parseFrom(data);
8396 }
8398 com.google.protobuf.ByteString data,
8399 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8400 throws com.google.protobuf.InvalidProtocolBufferException {
8401 return PARSER.parseFrom(data, extensionRegistry);
8402 }
8404 throws com.google.protobuf.InvalidProtocolBufferException {
8405 return PARSER.parseFrom(data);
8406 }
8408 byte[] data,
8409 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8410 throws com.google.protobuf.InvalidProtocolBufferException {
8411 return PARSER.parseFrom(data, extensionRegistry);
8412 }
8414 throws java.io.IOException {
8415 return com.google.protobuf.GeneratedMessage
8416 .parseWithIOException(PARSER, input);
8417 }
8419 java.io.InputStream input,
8420 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8421 throws java.io.IOException {
8422 return com.google.protobuf.GeneratedMessage
8423 .parseWithIOException(PARSER, input, extensionRegistry);
8424 }
8425
8427 throws java.io.IOException {
8428 return com.google.protobuf.GeneratedMessage
8429 .parseDelimitedWithIOException(PARSER, input);
8430 }
8431
8433 java.io.InputStream input,
8434 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8435 throws java.io.IOException {
8436 return com.google.protobuf.GeneratedMessage
8437 .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
8438 }
8440 com.google.protobuf.CodedInputStream input)
8441 throws java.io.IOException {
8442 return com.google.protobuf.GeneratedMessage
8443 .parseWithIOException(PARSER, input);
8444 }
8446 com.google.protobuf.CodedInputStream input,
8447 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8448 throws java.io.IOException {
8449 return com.google.protobuf.GeneratedMessage
8450 .parseWithIOException(PARSER, input, extensionRegistry);
8451 }
8452
8453 @java.lang.Override
8454 public Builder newBuilderForType() { return newBuilder(); }
8455 public static Builder newBuilder() {
8456 return DEFAULT_INSTANCE.toBuilder();
8457 }
8458 public static Builder newBuilder(com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters prototype) {
8459 return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
8460 }
8461 @java.lang.Override
8463 return this == DEFAULT_INSTANCE
8464 ? new Builder() : new Builder().mergeFrom(this);
8465 }
8466
8467 @java.lang.Override
8469 com.google.protobuf.GeneratedMessage.BuilderParent parent) {
8470 Builder builder = new Builder(parent);
8471 return builder;
8472 }
8473
8480 public static final class Builder extends
8481 com.google.protobuf.GeneratedMessage.Builder<Builder> implements
8482 // @@protoc_insertion_point(builder_implements:operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters)
8483 com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParametersOrBuilder {
8484 public static final com.google.protobuf.Descriptors.Descriptor
8486 return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_ImprovementSearchLimitParameters_descriptor;
8487 }
8488
8489 @java.lang.Override
8490 protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
8492 return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_ImprovementSearchLimitParameters_fieldAccessorTable
8493 .ensureFieldAccessorsInitialized(
8494 com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.class, com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.Builder.class);
8495 }
8496
8497 // Construct using com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.newBuilder()
8498 private Builder() {
8499
8500 }
8501
8502 private Builder(
8503 com.google.protobuf.GeneratedMessage.BuilderParent parent) {
8504 super(parent);
8505
8506 }
8507 @java.lang.Override
8508 public Builder clear() {
8509 super.clear();
8510 bitField0_ = 0;
8511 improvementRateCoefficient_ = 0D;
8512 improvementRateSolutionsDistance_ = 0;
8513 return this;
8514 }
8515
8516 @java.lang.Override
8517 public com.google.protobuf.Descriptors.Descriptor
8519 return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_ImprovementSearchLimitParameters_descriptor;
8520 }
8521
8522 @java.lang.Override
8524 return com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.getDefaultInstance();
8525 }
8526
8527 @java.lang.Override
8535
8536 @java.lang.Override
8538 com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters result = new com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters(this);
8539 if (bitField0_ != 0) { buildPartial0(result); }
8540 onBuilt();
8541 return result;
8542 }
8543
8544 private void buildPartial0(com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters result) {
8545 int from_bitField0_ = bitField0_;
8546 if (((from_bitField0_ & 0x00000001) != 0)) {
8547 result.improvementRateCoefficient_ = improvementRateCoefficient_;
8548 }
8549 if (((from_bitField0_ & 0x00000002) != 0)) {
8550 result.improvementRateSolutionsDistance_ = improvementRateSolutionsDistance_;
8551 }
8552 }
8553
8554 @java.lang.Override
8555 public Builder mergeFrom(com.google.protobuf.Message other) {
8556 if (other instanceof com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters) {
8557 return mergeFrom((com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters)other);
8558 } else {
8559 super.mergeFrom(other);
8560 return this;
8561 }
8562 }
8563
8564 public Builder mergeFrom(com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters other) {
8565 if (other == com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.getDefaultInstance()) return this;
8566 if (java.lang.Double.doubleToRawLongBits(other.getImprovementRateCoefficient()) != 0) {
8567 setImprovementRateCoefficient(other.getImprovementRateCoefficient());
8568 }
8569 if (other.getImprovementRateSolutionsDistance() != 0) {
8570 setImprovementRateSolutionsDistance(other.getImprovementRateSolutionsDistance());
8571 }
8572 this.mergeUnknownFields(other.getUnknownFields());
8573 onChanged();
8574 return this;
8575 }
8576
8577 @java.lang.Override
8578 public final boolean isInitialized() {
8579 return true;
8580 }
8581
8582 @java.lang.Override
8583 public Builder mergeFrom(
8584 com.google.protobuf.CodedInputStream input,
8585 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8586 throws java.io.IOException {
8587 if (extensionRegistry == null) {
8588 throw new java.lang.NullPointerException();
8589 }
8590 try {
8591 boolean done = false;
8592 while (!done) {
8593 int tag = input.readTag();
8594 switch (tag) {
8595 case 0:
8596 done = true;
8597 break;
8598 case 305: {
8599 improvementRateCoefficient_ = input.readDouble();
8600 bitField0_ |= 0x00000001;
8601 break;
8602 } // case 305
8603 case 312: {
8604 improvementRateSolutionsDistance_ = input.readInt32();
8605 bitField0_ |= 0x00000002;
8606 break;
8607 } // case 312
8608 default: {
8609 if (!super.parseUnknownField(input, extensionRegistry, tag)) {
8610 done = true; // was an endgroup tag
8611 }
8612 break;
8613 } // default:
8614 } // switch (tag)
8615 } // while (!done)
8616 } catch (com.google.protobuf.InvalidProtocolBufferException e) {
8617 throw e.unwrapIOException();
8618 } finally {
8619 onChanged();
8620 } // finally
8621 return this;
8622 }
8623 private int bitField0_;
8624
8625 private double improvementRateCoefficient_ ;
8636 @java.lang.Override
8638 return improvementRateCoefficient_;
8639 }
8640
8651 public Builder setImprovementRateCoefficient(double value) {
8652
8653 improvementRateCoefficient_ = value;
8654 bitField0_ |= 0x00000001;
8655 onChanged();
8656 return this;
8657 }
8658
8669 bitField0_ = (bitField0_ & ~0x00000001);
8670 improvementRateCoefficient_ = 0D;
8671 onChanged();
8672 return this;
8673 }
8674
8675 private int improvementRateSolutionsDistance_ ;
8688 @java.lang.Override
8690 return improvementRateSolutionsDistance_;
8691 }
8692
8705 public Builder setImprovementRateSolutionsDistance(int value) {
8706
8707 improvementRateSolutionsDistance_ = value;
8708 bitField0_ |= 0x00000002;
8709 onChanged();
8710 return this;
8711 }
8712
8725 bitField0_ = (bitField0_ & ~0x00000002);
8726 improvementRateSolutionsDistance_ = 0;
8727 onChanged();
8728 return this;
8729 }
8730
8731 // @@protoc_insertion_point(builder_scope:operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters)
8732 }
8733
8734 // @@protoc_insertion_point(class_scope:operations_research.RoutingSearchParameters.ImprovementSearchLimitParameters)
8736 static {
8737 DEFAULT_INSTANCE = new com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters();
8738 }
8739
8743
8744 private static final com.google.protobuf.Parser<ImprovementSearchLimitParameters>
8745 PARSER = new com.google.protobuf.AbstractParser<ImprovementSearchLimitParameters>() {
8746 @java.lang.Override
8747 public ImprovementSearchLimitParameters parsePartialFrom(
8748 com.google.protobuf.CodedInputStream input,
8749 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8750 throws com.google.protobuf.InvalidProtocolBufferException {
8751 Builder builder = newBuilder();
8752 try {
8753 builder.mergeFrom(input, extensionRegistry);
8754 } catch (com.google.protobuf.InvalidProtocolBufferException e) {
8755 throw e.setUnfinishedMessage(builder.buildPartial());
8756 } catch (com.google.protobuf.UninitializedMessageException e) {
8757 throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
8758 } catch (java.io.IOException e) {
8759 throw new com.google.protobuf.InvalidProtocolBufferException(e)
8760 .setUnfinishedMessage(builder.buildPartial());
8761 }
8762 return builder.buildPartial();
8763 }
8764 };
8765
8766 public static com.google.protobuf.Parser<ImprovementSearchLimitParameters> parser() {
8767 return PARSER;
8768 }
8769
8770 @java.lang.Override
8771 public com.google.protobuf.Parser<ImprovementSearchLimitParameters> getParserForType() {
8772 return PARSER;
8773 }
8774
8775 @java.lang.Override
8779
8780 }
8781
8782 private int bitField0_;
8783 public static final int FIRST_SOLUTION_STRATEGY_FIELD_NUMBER = 1;
8784 private int firstSolutionStrategy_ = 0;
8793 @java.lang.Override public int getFirstSolutionStrategyValue() {
8794 return firstSolutionStrategy_;
8795 }
8796
8805 com.google.ortools.constraintsolver.FirstSolutionStrategy.Value result = com.google.ortools.constraintsolver.FirstSolutionStrategy.Value.forNumber(firstSolutionStrategy_);
8807 }
8808
8810 private boolean useUnfilteredFirstSolutionStrategy_ = false;
8822 @java.lang.Override
8824 return useUnfilteredFirstSolutionStrategy_;
8825 }
8826
8827 public static final int SAVINGS_NEIGHBORS_RATIO_FIELD_NUMBER = 14;
8828 private double savingsNeighborsRatio_ = 0D;
8839 @java.lang.Override
8841 return savingsNeighborsRatio_;
8842 }
8843
8845 private double savingsMaxMemoryUsageBytes_ = 0D;
8859 @java.lang.Override
8861 return savingsMaxMemoryUsageBytes_;
8862 }
8863
8864 public static final int SAVINGS_ADD_REVERSE_ARCS_FIELD_NUMBER = 15;
8865 private boolean savingsAddReverseArcs_ = false;
8875 @java.lang.Override
8876 public boolean getSavingsAddReverseArcs() {
8877 return savingsAddReverseArcs_;
8878 }
8879
8880 public static final int SAVINGS_ARC_COEFFICIENT_FIELD_NUMBER = 18;
8881 private double savingsArcCoefficient_ = 0D;
8894 @java.lang.Override
8896 return savingsArcCoefficient_;
8897 }
8898
8900 private double cheapestInsertionFarthestSeedsRatio_ = 0D;
8911 @java.lang.Override
8913 return cheapestInsertionFarthestSeedsRatio_;
8914 }
8915
8917 private double cheapestInsertionFirstSolutionNeighborsRatio_ = 0D;
8940 @java.lang.Override
8942 return cheapestInsertionFirstSolutionNeighborsRatio_;
8943 }
8944
8946 private int cheapestInsertionFirstSolutionMinNeighbors_ = 0;
8951 @java.lang.Override
8953 return cheapestInsertionFirstSolutionMinNeighbors_;
8954 }
8955
8957 private double cheapestInsertionLsOperatorNeighborsRatio_ = 0D;
8969 @java.lang.Override
8971 return cheapestInsertionLsOperatorNeighborsRatio_;
8972 }
8973
8975 private int cheapestInsertionLsOperatorMinNeighbors_ = 0;
8980 @java.lang.Override
8982 return cheapestInsertionLsOperatorMinNeighbors_;
8983 }
8984
8986 private boolean cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_ = false;
8996 @java.lang.Override
8998 return cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_;
8999 }
9000
9002 private boolean cheapestInsertionAddUnperformedEntries_ = false;
9012 @java.lang.Override
9014 return cheapestInsertionAddUnperformedEntries_;
9015 }
9016
9018 private int localCheapestInsertionPickupDeliveryStrategy_ = 0;
9029 return localCheapestInsertionPickupDeliveryStrategy_;
9030 }
9031
9041 com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy result = com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy.forNumber(localCheapestInsertionPickupDeliveryStrategy_);
9043 }
9044
9046 private int localCheapestCostInsertionPickupDeliveryStrategy_ = 0;
9057 return localCheapestCostInsertionPickupDeliveryStrategy_;
9058 }
9059
9069 com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy result = com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy.forNumber(localCheapestCostInsertionPickupDeliveryStrategy_);
9071 }
9072
9074 @SuppressWarnings("serial")
9075 private com.google.protobuf.Internal.IntList localCheapestInsertionSortingProperties_ =
9076 emptyIntList();
9077 private static final com.google.protobuf.Internal.IntListAdapter.IntConverter<
9078 com.google.ortools.constraintsolver.RoutingSearchParameters.InsertionSortingProperty> localCheapestInsertionSortingProperties_converter_ =
9079 new com.google.protobuf.Internal.IntListAdapter.IntConverter<
9080 com.google.ortools.constraintsolver.RoutingSearchParameters.InsertionSortingProperty>() {
9082 com.google.ortools.constraintsolver.RoutingSearchParameters.InsertionSortingProperty result = com.google.ortools.constraintsolver.RoutingSearchParameters.InsertionSortingProperty.forNumber(from);
9084 }
9085 };
9099 @java.lang.Override
9100 public java.util.List<com.google.ortools.constraintsolver.RoutingSearchParameters.InsertionSortingProperty> getLocalCheapestInsertionSortingPropertiesList() {
9101 return new com.google.protobuf.Internal.IntListAdapter<
9102 com.google.ortools.constraintsolver.RoutingSearchParameters.InsertionSortingProperty>(localCheapestInsertionSortingProperties_, localCheapestInsertionSortingProperties_converter_);
9103 }
9104
9117 @java.lang.Override
9119 return localCheapestInsertionSortingProperties_.size();
9120 }
9121
9135 @java.lang.Override
9137 return localCheapestInsertionSortingProperties_converter_.convert(localCheapestInsertionSortingProperties_.getInt(index));
9138 }
9139
9152 @java.lang.Override
9153 public java.util.List<java.lang.Integer>
9155 return localCheapestInsertionSortingProperties_;
9156 }
9157
9171 @java.lang.Override
9173 return localCheapestInsertionSortingProperties_.getInt(index);
9174 }
9175 private int localCheapestInsertionSortingPropertiesMemoizedSerializedSize;
9176
9178 private boolean christofidesUseMinimumMatching_ = false;
9188 @java.lang.Override
9190 return christofidesUseMinimumMatching_;
9191 }
9192
9194 private int firstSolutionOptimizationPeriod_ = 0;
9209 @java.lang.Override
9211 return firstSolutionOptimizationPeriod_;
9212 }
9213
9214 public static final int LOCAL_SEARCH_OPERATORS_FIELD_NUMBER = 3;
9220 @java.lang.Override
9221 public boolean hasLocalSearchOperators() {
9222 return ((bitField0_ & 0x00000001) != 0);
9223 }
9224
9228 @java.lang.Override
9230 return localSearchOperators_ == null ? com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.getDefaultInstance() : localSearchOperators_;
9231 }
9232
9235 @java.lang.Override
9237 return localSearchOperators_ == null ? com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.getDefaultInstance() : localSearchOperators_;
9238 }
9239
9240 public static final int LS_OPERATOR_NEIGHBORS_RATIO_FIELD_NUMBER = 53;
9241 private double lsOperatorNeighborsRatio_ = 0D;
9252 @java.lang.Override
9254 return lsOperatorNeighborsRatio_;
9255 }
9256
9257 public static final int LS_OPERATOR_MIN_NEIGHBORS_FIELD_NUMBER = 54;
9258 private int lsOperatorMinNeighbors_ = 0;
9263 @java.lang.Override
9265 return lsOperatorMinNeighbors_;
9266 }
9267
9269 private boolean useMultiArmedBanditConcatenateOperators_ = false;
9280 @java.lang.Override
9282 return useMultiArmedBanditConcatenateOperators_;
9283 }
9284
9286 private double multiArmedBanditCompoundOperatorMemoryCoefficient_ = 0D;
9298 @java.lang.Override
9300 return multiArmedBanditCompoundOperatorMemoryCoefficient_;
9301 }
9302
9304 private double multiArmedBanditCompoundOperatorExplorationCoefficient_ = 0D;
9315 @java.lang.Override
9317 return multiArmedBanditCompoundOperatorExplorationCoefficient_;
9318 }
9319
9320 public static final int MAX_SWAP_ACTIVE_CHAIN_SIZE_FIELD_NUMBER = 66;
9321 private int maxSwapActiveChainSize_ = 0;
9330 @java.lang.Override
9332 return maxSwapActiveChainSize_;
9333 }
9334
9336 private int relocateExpensiveChainNumArcsToConsider_ = 0;
9351 @java.lang.Override
9353 return relocateExpensiveChainNumArcsToConsider_;
9354 }
9355
9357 private int heuristicExpensiveChainLnsNumArcsToConsider_ = 0;
9367 @java.lang.Override
9369 return heuristicExpensiveChainLnsNumArcsToConsider_;
9370 }
9371
9373 private int heuristicCloseNodesLnsNumNodes_ = 0;
9383 @java.lang.Override
9385 return heuristicCloseNodesLnsNumNodes_;
9386 }
9387
9388 public static final int LOCAL_SEARCH_METAHEURISTIC_FIELD_NUMBER = 4;
9389 private int localSearchMetaheuristic_ = 0;
9398 @java.lang.Override public int getLocalSearchMetaheuristicValue() {
9399 return localSearchMetaheuristic_;
9400 }
9401
9410 com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value result = com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value.forNumber(localSearchMetaheuristic_);
9412 }
9413
9414 public static final int LOCAL_SEARCH_METAHEURISTICS_FIELD_NUMBER = 63;
9415 @SuppressWarnings("serial")
9416 private com.google.protobuf.Internal.IntList localSearchMetaheuristics_ =
9417 emptyIntList();
9418 private static final com.google.protobuf.Internal.IntListAdapter.IntConverter<
9419 com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value> localSearchMetaheuristics_converter_ =
9420 new com.google.protobuf.Internal.IntListAdapter.IntConverter<
9423 com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value result = com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value.forNumber(from);
9425 }
9426 };
9438 @java.lang.Override
9439 public java.util.List<com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value> getLocalSearchMetaheuristicsList() {
9440 return new com.google.protobuf.Internal.IntListAdapter<
9441 com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value>(localSearchMetaheuristics_, localSearchMetaheuristics_converter_);
9442 }
9443
9454 @java.lang.Override
9456 return localSearchMetaheuristics_.size();
9457 }
9458
9470 @java.lang.Override
9472 return localSearchMetaheuristics_converter_.convert(localSearchMetaheuristics_.getInt(index));
9473 }
9474
9485 @java.lang.Override
9486 public java.util.List<java.lang.Integer>
9488 return localSearchMetaheuristics_;
9489 }
9490
9502 @java.lang.Override
9504 return localSearchMetaheuristics_.getInt(index);
9505 }
9506 private int localSearchMetaheuristicsMemoizedSerializedSize;
9507
9509 private int numMaxLocalOptimaBeforeMetaheuristicSwitch_ = 0;
9514 @java.lang.Override
9516 return numMaxLocalOptimaBeforeMetaheuristicSwitch_;
9517 }
9518
9520 private double guidedLocalSearchLambdaCoefficient_ = 0D;
9532 @java.lang.Override
9534 return guidedLocalSearchLambdaCoefficient_;
9535 }
9536
9538 private boolean guidedLocalSearchResetPenaltiesOnNewBestSolution_ = false;
9548 @java.lang.Override
9550 return guidedLocalSearchResetPenaltiesOnNewBestSolution_;
9551 }
9552
9554 private boolean guidedLocalSearchPenalizeWithVehicleClasses_ = false;
9565 @java.lang.Override
9567 return guidedLocalSearchPenalizeWithVehicleClasses_;
9568 }
9569
9571 private boolean useGuidedLocalSearchPenaltiesInLocalSearchOperators_ = false;
9581 @java.lang.Override
9583 return useGuidedLocalSearchPenaltiesInLocalSearchOperators_;
9584 }
9585
9586 public static final int USE_DEPTH_FIRST_SEARCH_FIELD_NUMBER = 6;
9587 private boolean useDepthFirstSearch_ = false;
9599 @java.lang.Override
9600 public boolean getUseDepthFirstSearch() {
9601 return useDepthFirstSearch_;
9602 }
9603
9604 public static final int USE_CP_FIELD_NUMBER = 28;
9605 private int useCp_ = 0;
9616 @java.lang.Override public int getUseCpValue() {
9617 return useCp_;
9618 }
9619
9630 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useCp_);
9631 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
9632 }
9633
9634 public static final int USE_CP_SAT_FIELD_NUMBER = 27;
9635 private int useCpSat_ = 0;
9647 @java.lang.Override public int getUseCpSatValue() {
9648 return useCpSat_;
9649 }
9650
9662 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useCpSat_);
9663 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
9664 }
9665
9666 public static final int USE_GENERALIZED_CP_SAT_FIELD_NUMBER = 47;
9667 private int useGeneralizedCpSat_ = 0;
9679 @java.lang.Override public int getUseGeneralizedCpSatValue() {
9680 return useGeneralizedCpSat_;
9681 }
9682
9694 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useGeneralizedCpSat_);
9695 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
9696 }
9697
9698 public static final int SAT_PARAMETERS_FIELD_NUMBER = 48;
9699 private com.google.ortools.sat.SatParameters satParameters_;
9709 @java.lang.Override
9710 public boolean hasSatParameters() {
9711 return ((bitField0_ & 0x00000002) != 0);
9712 }
9713
9722 @java.lang.Override
9724 return satParameters_ == null ? com.google.ortools.sat.SatParameters.getDefaultInstance() : satParameters_;
9725 }
9726
9734 @java.lang.Override
9736 return satParameters_ == null ? com.google.ortools.sat.SatParameters.getDefaultInstance() : satParameters_;
9737 }
9738
9740 private boolean reportIntermediateCpSatSolutions_ = false;
9750 @java.lang.Override
9752 return reportIntermediateCpSatSolutions_;
9753 }
9754
9756 private int fallbackToCpSatSizeThreshold_ = 0;
9766 @java.lang.Override
9768 return fallbackToCpSatSizeThreshold_;
9769 }
9770
9771 public static final int CONTINUOUS_SCHEDULING_SOLVER_FIELD_NUMBER = 33;
9772 private int continuousSchedulingSolver_ = 0;
9777 @java.lang.Override public int getContinuousSchedulingSolverValue() {
9778 return continuousSchedulingSolver_;
9779 }
9780
9785 com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver result = com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.forNumber(continuousSchedulingSolver_);
9787 }
9788
9790 private int mixedIntegerSchedulingSolver_ = 0;
9795 @java.lang.Override public int getMixedIntegerSchedulingSolverValue() {
9796 return mixedIntegerSchedulingSolver_;
9797 }
9798
9803 com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver result = com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.forNumber(mixedIntegerSchedulingSolver_);
9805 }
9806
9808 private boolean disableSchedulingBewareThisMayDegradePerformance_ = false;
9818 @java.lang.Override
9820 return ((bitField0_ & 0x00000004) != 0);
9821 }
9822
9831 @java.lang.Override
9833 return disableSchedulingBewareThisMayDegradePerformance_;
9834 }
9835
9836 public static final int OPTIMIZATION_STEP_FIELD_NUMBER = 7;
9837 private double optimizationStep_ = 0D;
9848 @java.lang.Override
9849 public double getOptimizationStep() {
9850 return optimizationStep_;
9851 }
9852
9854 private int numberOfSolutionsToCollect_ = 0;
9864 @java.lang.Override
9866 return numberOfSolutionsToCollect_;
9867 }
9868
9869 public static final int SOLUTION_LIMIT_FIELD_NUMBER = 8;
9870 private long solutionLimit_ = 0L;
9881 @java.lang.Override
9882 public long getSolutionLimit() {
9883 return solutionLimit_;
9884 }
9885
9886 public static final int TIME_LIMIT_FIELD_NUMBER = 9;
9887 private com.google.protobuf.Duration timeLimit_;
9896 @java.lang.Override
9897 public boolean hasTimeLimit() {
9898 return ((bitField0_ & 0x00000008) != 0);
9899 }
9900
9908 @java.lang.Override
9909 public com.google.protobuf.Duration getTimeLimit() {
9910 return timeLimit_ == null ? com.google.protobuf.Duration.getDefaultInstance() : timeLimit_;
9911 }
9912
9919 @java.lang.Override
9920 public com.google.protobuf.DurationOrBuilder getTimeLimitOrBuilder() {
9921 return timeLimit_ == null ? com.google.protobuf.Duration.getDefaultInstance() : timeLimit_;
9922 }
9923
9924 public static final int LNS_TIME_LIMIT_FIELD_NUMBER = 10;
9925 private com.google.protobuf.Duration lnsTimeLimit_;
9935 @java.lang.Override
9936 public boolean hasLnsTimeLimit() {
9937 return ((bitField0_ & 0x00000010) != 0);
9938 }
9939
9948 @java.lang.Override
9949 public com.google.protobuf.Duration getLnsTimeLimit() {
9950 return lnsTimeLimit_ == null ? com.google.protobuf.Duration.getDefaultInstance() : lnsTimeLimit_;
9951 }
9952
9960 @java.lang.Override
9961 public com.google.protobuf.DurationOrBuilder getLnsTimeLimitOrBuilder() {
9962 return lnsTimeLimit_ == null ? com.google.protobuf.Duration.getDefaultInstance() : lnsTimeLimit_;
9963 }
9964
9966 private double secondaryLsTimeLimitRatio_ = 0D;
9980 @java.lang.Override
9982 return secondaryLsTimeLimitRatio_;
9983 }
9984
9985 public static final int IMPROVEMENT_LIMIT_PARAMETERS_FIELD_NUMBER = 37;
9996 @java.lang.Override
9998 return ((bitField0_ & 0x00000020) != 0);
9999 }
10000
10009 @java.lang.Override
10011 return improvementLimitParameters_ == null ? com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.getDefaultInstance() : improvementLimitParameters_;
10012 }
10013
10021 @java.lang.Override
10023 return improvementLimitParameters_ == null ? com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.getDefaultInstance() : improvementLimitParameters_;
10024 }
10025
10026 public static final int USE_FULL_PROPAGATION_FIELD_NUMBER = 11;
10027 private boolean useFullPropagation_ = false;
10045 @java.lang.Override
10046 public boolean getUseFullPropagation() {
10047 return useFullPropagation_;
10048 }
10049
10050 public static final int LOG_SEARCH_FIELD_NUMBER = 13;
10051 private boolean logSearch_ = false;
10072 @java.lang.Override
10073 public boolean getLogSearch() {
10074 return logSearch_;
10075 }
10076
10077 public static final int LOG_COST_SCALING_FACTOR_FIELD_NUMBER = 22;
10078 private double logCostScalingFactor_ = 0D;
10088 @java.lang.Override
10089 public double getLogCostScalingFactor() {
10090 return logCostScalingFactor_;
10091 }
10092
10093 public static final int LOG_COST_OFFSET_FIELD_NUMBER = 29;
10094 private double logCostOffset_ = 0D;
10099 @java.lang.Override
10100 public double getLogCostOffset() {
10101 return logCostOffset_;
10102 }
10103
10104 public static final int LOG_TAG_FIELD_NUMBER = 36;
10105 @SuppressWarnings("serial")
10106 private volatile java.lang.Object logTag_ = "";
10116 @java.lang.Override
10117 public java.lang.String getLogTag() {
10118 java.lang.Object ref = logTag_;
10119 if (ref instanceof java.lang.String) {
10120 return (java.lang.String) ref;
10121 } else {
10122 com.google.protobuf.ByteString bs =
10123 (com.google.protobuf.ByteString) ref;
10124 java.lang.String s = bs.toStringUtf8();
10125 logTag_ = s;
10126 return s;
10127 }
10128 }
10129
10138 @java.lang.Override
10139 public com.google.protobuf.ByteString
10141 java.lang.Object ref = logTag_;
10142 if (ref instanceof java.lang.String) {
10143 com.google.protobuf.ByteString b =
10144 com.google.protobuf.ByteString.copyFromUtf8(
10145 (java.lang.String) ref);
10146 logTag_ = b;
10147 return b;
10148 } else {
10149 return (com.google.protobuf.ByteString) ref;
10150 }
10151 }
10152
10153 public static final int USE_ITERATED_LOCAL_SEARCH_FIELD_NUMBER = 58;
10154 private boolean useIteratedLocalSearch_ = false;
10164 @java.lang.Override
10165 public boolean getUseIteratedLocalSearch() {
10166 return useIteratedLocalSearch_;
10167 }
10168
10170 private com.google.ortools.constraintsolver.IteratedLocalSearchParameters iteratedLocalSearchParameters_;
10179 @java.lang.Override
10181 return ((bitField0_ & 0x00000040) != 0);
10182 }
10183
10191 @java.lang.Override
10193 return iteratedLocalSearchParameters_ == null ? com.google.ortools.constraintsolver.IteratedLocalSearchParameters.getDefaultInstance() : iteratedLocalSearchParameters_;
10194 }
10195
10202 @java.lang.Override
10204 return iteratedLocalSearchParameters_ == null ? com.google.ortools.constraintsolver.IteratedLocalSearchParameters.getDefaultInstance() : iteratedLocalSearchParameters_;
10205 }
10206
10207 private byte memoizedIsInitialized = -1;
10208 @java.lang.Override
10209 public final boolean isInitialized() {
10210 byte isInitialized = memoizedIsInitialized;
10211 if (isInitialized == 1) return true;
10212 if (isInitialized == 0) return false;
10213
10214 memoizedIsInitialized = 1;
10215 return true;
10216 }
10217
10218 @java.lang.Override
10219 public void writeTo(com.google.protobuf.CodedOutputStream output)
10220 throws java.io.IOException {
10222 if (firstSolutionStrategy_ != com.google.ortools.constraintsolver.FirstSolutionStrategy.Value.UNSET.getNumber()) {
10223 output.writeEnum(1, firstSolutionStrategy_);
10224 }
10225 if (useUnfilteredFirstSolutionStrategy_ != false) {
10226 output.writeBool(2, useUnfilteredFirstSolutionStrategy_);
10227 }
10228 if (((bitField0_ & 0x00000001) != 0)) {
10229 output.writeMessage(3, getLocalSearchOperators());
10230 }
10231 if (localSearchMetaheuristic_ != com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value.UNSET.getNumber()) {
10232 output.writeEnum(4, localSearchMetaheuristic_);
10233 }
10234 if (java.lang.Double.doubleToRawLongBits(guidedLocalSearchLambdaCoefficient_) != 0) {
10235 output.writeDouble(5, guidedLocalSearchLambdaCoefficient_);
10236 }
10237 if (useDepthFirstSearch_ != false) {
10238 output.writeBool(6, useDepthFirstSearch_);
10239 }
10240 if (java.lang.Double.doubleToRawLongBits(optimizationStep_) != 0) {
10241 output.writeDouble(7, optimizationStep_);
10242 }
10243 if (solutionLimit_ != 0L) {
10244 output.writeInt64(8, solutionLimit_);
10245 }
10246 if (((bitField0_ & 0x00000008) != 0)) {
10247 output.writeMessage(9, getTimeLimit());
10248 }
10249 if (((bitField0_ & 0x00000010) != 0)) {
10250 output.writeMessage(10, getLnsTimeLimit());
10251 }
10252 if (useFullPropagation_ != false) {
10253 output.writeBool(11, useFullPropagation_);
10254 }
10255 if (logSearch_ != false) {
10256 output.writeBool(13, logSearch_);
10257 }
10258 if (java.lang.Double.doubleToRawLongBits(savingsNeighborsRatio_) != 0) {
10259 output.writeDouble(14, savingsNeighborsRatio_);
10260 }
10261 if (savingsAddReverseArcs_ != false) {
10262 output.writeBool(15, savingsAddReverseArcs_);
10263 }
10264 if (java.lang.Double.doubleToRawLongBits(cheapestInsertionFarthestSeedsRatio_) != 0) {
10265 output.writeDouble(16, cheapestInsertionFarthestSeedsRatio_);
10266 }
10267 if (numberOfSolutionsToCollect_ != 0) {
10268 output.writeInt32(17, numberOfSolutionsToCollect_);
10269 }
10270 if (java.lang.Double.doubleToRawLongBits(savingsArcCoefficient_) != 0) {
10271 output.writeDouble(18, savingsArcCoefficient_);
10272 }
10273 if (relocateExpensiveChainNumArcsToConsider_ != 0) {
10274 output.writeInt32(20, relocateExpensiveChainNumArcsToConsider_);
10275 }
10276 if (java.lang.Double.doubleToRawLongBits(cheapestInsertionFirstSolutionNeighborsRatio_) != 0) {
10277 output.writeDouble(21, cheapestInsertionFirstSolutionNeighborsRatio_);
10278 }
10279 if (java.lang.Double.doubleToRawLongBits(logCostScalingFactor_) != 0) {
10280 output.writeDouble(22, logCostScalingFactor_);
10281 }
10282 if (java.lang.Double.doubleToRawLongBits(savingsMaxMemoryUsageBytes_) != 0) {
10283 output.writeDouble(23, savingsMaxMemoryUsageBytes_);
10284 }
10285 if (useCpSat_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
10286 output.writeEnum(27, useCpSat_);
10287 }
10288 if (useCp_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
10289 output.writeEnum(28, useCp_);
10290 }
10291 if (java.lang.Double.doubleToRawLongBits(logCostOffset_) != 0) {
10292 output.writeDouble(29, logCostOffset_);
10293 }
10294 if (christofidesUseMinimumMatching_ != false) {
10295 output.writeBool(30, christofidesUseMinimumMatching_);
10296 }
10297 if (java.lang.Double.doubleToRawLongBits(cheapestInsertionLsOperatorNeighborsRatio_) != 0) {
10298 output.writeDouble(31, cheapestInsertionLsOperatorNeighborsRatio_);
10299 }
10300 if (heuristicExpensiveChainLnsNumArcsToConsider_ != 0) {
10301 output.writeInt32(32, heuristicExpensiveChainLnsNumArcsToConsider_);
10302 }
10303 if (continuousSchedulingSolver_ != com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.SCHEDULING_UNSET.getNumber()) {
10304 output.writeEnum(33, continuousSchedulingSolver_);
10305 }
10306 if (mixedIntegerSchedulingSolver_ != com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.SCHEDULING_UNSET.getNumber()) {
10307 output.writeEnum(34, mixedIntegerSchedulingSolver_);
10308 }
10309 if (heuristicCloseNodesLnsNumNodes_ != 0) {
10310 output.writeInt32(35, heuristicCloseNodesLnsNumNodes_);
10311 }
10312 if (!com.google.protobuf.GeneratedMessage.isStringEmpty(logTag_)) {
10313 com.google.protobuf.GeneratedMessage.writeString(output, 36, logTag_);
10314 }
10315 if (((bitField0_ & 0x00000020) != 0)) {
10316 output.writeMessage(37, getImprovementLimitParameters());
10317 }
10318 if (cheapestInsertionAddUnperformedEntries_ != false) {
10319 output.writeBool(40, cheapestInsertionAddUnperformedEntries_);
10320 }
10321 if (useMultiArmedBanditConcatenateOperators_ != false) {
10322 output.writeBool(41, useMultiArmedBanditConcatenateOperators_);
10323 }
10324 if (java.lang.Double.doubleToRawLongBits(multiArmedBanditCompoundOperatorMemoryCoefficient_) != 0) {
10325 output.writeDouble(42, multiArmedBanditCompoundOperatorMemoryCoefficient_);
10326 }
10327 if (java.lang.Double.doubleToRawLongBits(multiArmedBanditCompoundOperatorExplorationCoefficient_) != 0) {
10328 output.writeDouble(43, multiArmedBanditCompoundOperatorExplorationCoefficient_);
10329 }
10330 if (cheapestInsertionFirstSolutionMinNeighbors_ != 0) {
10331 output.writeInt32(44, cheapestInsertionFirstSolutionMinNeighbors_);
10332 }
10333 if (cheapestInsertionLsOperatorMinNeighbors_ != 0) {
10334 output.writeInt32(45, cheapestInsertionLsOperatorMinNeighbors_);
10335 }
10336 if (cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_ != false) {
10337 output.writeBool(46, cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_);
10338 }
10339 if (useGeneralizedCpSat_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
10340 output.writeEnum(47, useGeneralizedCpSat_);
10341 }
10342 if (((bitField0_ & 0x00000002) != 0)) {
10343 output.writeMessage(48, getSatParameters());
10344 }
10345 if (localCheapestInsertionPickupDeliveryStrategy_ != com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy.AUTOMATIC.getNumber()) {
10346 output.writeEnum(49, localCheapestInsertionPickupDeliveryStrategy_);
10347 }
10348 if (((bitField0_ & 0x00000004) != 0)) {
10349 output.writeBool(50, disableSchedulingBewareThisMayDegradePerformance_);
10350 }
10351 if (guidedLocalSearchResetPenaltiesOnNewBestSolution_ != false) {
10352 output.writeBool(51, guidedLocalSearchResetPenaltiesOnNewBestSolution_);
10353 }
10354 if (fallbackToCpSatSizeThreshold_ != 0) {
10355 output.writeInt32(52, fallbackToCpSatSizeThreshold_);
10356 }
10357 if (java.lang.Double.doubleToRawLongBits(lsOperatorNeighborsRatio_) != 0) {
10358 output.writeDouble(53, lsOperatorNeighborsRatio_);
10359 }
10360 if (lsOperatorMinNeighbors_ != 0) {
10361 output.writeInt32(54, lsOperatorMinNeighbors_);
10362 }
10363 if (localCheapestCostInsertionPickupDeliveryStrategy_ != com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy.AUTOMATIC.getNumber()) {
10364 output.writeEnum(55, localCheapestCostInsertionPickupDeliveryStrategy_);
10365 }
10366 if (reportIntermediateCpSatSolutions_ != false) {
10367 output.writeBool(56, reportIntermediateCpSatSolutions_);
10368 }
10369 if (java.lang.Double.doubleToRawLongBits(secondaryLsTimeLimitRatio_) != 0) {
10370 output.writeDouble(57, secondaryLsTimeLimitRatio_);
10371 }
10372 if (useIteratedLocalSearch_ != false) {
10373 output.writeBool(58, useIteratedLocalSearch_);
10374 }
10375 if (firstSolutionOptimizationPeriod_ != 0) {
10376 output.writeInt32(59, firstSolutionOptimizationPeriod_);
10377 }
10378 if (((bitField0_ & 0x00000040) != 0)) {
10379 output.writeMessage(60, getIteratedLocalSearchParameters());
10380 }
10381 if (guidedLocalSearchPenalizeWithVehicleClasses_ != false) {
10382 output.writeBool(61, guidedLocalSearchPenalizeWithVehicleClasses_);
10383 }
10384 if (useGuidedLocalSearchPenaltiesInLocalSearchOperators_ != false) {
10385 output.writeBool(62, useGuidedLocalSearchPenaltiesInLocalSearchOperators_);
10386 }
10387 if (getLocalSearchMetaheuristicsList().size() > 0) {
10388 output.writeUInt32NoTag(506);
10389 output.writeUInt32NoTag(localSearchMetaheuristicsMemoizedSerializedSize);
10390 }
10391 for (int i = 0; i < localSearchMetaheuristics_.size(); i++) {
10392 output.writeEnumNoTag(localSearchMetaheuristics_.getInt(i));
10393 }
10394 if (numMaxLocalOptimaBeforeMetaheuristicSwitch_ != 0) {
10395 output.writeInt32(64, numMaxLocalOptimaBeforeMetaheuristicSwitch_);
10396 }
10397 if (maxSwapActiveChainSize_ != 0) {
10398 output.writeInt32(66, maxSwapActiveChainSize_);
10399 }
10401 output.writeUInt32NoTag(538);
10402 output.writeUInt32NoTag(localCheapestInsertionSortingPropertiesMemoizedSerializedSize);
10403 }
10404 for (int i = 0; i < localCheapestInsertionSortingProperties_.size(); i++) {
10405 output.writeEnumNoTag(localCheapestInsertionSortingProperties_.getInt(i));
10406 }
10407 getUnknownFields().writeTo(output);
10408 }
10409
10410 @java.lang.Override
10411 public int getSerializedSize() {
10412 int size = memoizedSize;
10413 if (size != -1) return size;
10414
10415 size = 0;
10416 if (firstSolutionStrategy_ != com.google.ortools.constraintsolver.FirstSolutionStrategy.Value.UNSET.getNumber()) {
10417 size += com.google.protobuf.CodedOutputStream
10418 .computeEnumSize(1, firstSolutionStrategy_);
10419 }
10420 if (useUnfilteredFirstSolutionStrategy_ != false) {
10421 size += com.google.protobuf.CodedOutputStream
10422 .computeBoolSize(2, useUnfilteredFirstSolutionStrategy_);
10423 }
10424 if (((bitField0_ & 0x00000001) != 0)) {
10425 size += com.google.protobuf.CodedOutputStream
10426 .computeMessageSize(3, getLocalSearchOperators());
10427 }
10428 if (localSearchMetaheuristic_ != com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value.UNSET.getNumber()) {
10429 size += com.google.protobuf.CodedOutputStream
10430 .computeEnumSize(4, localSearchMetaheuristic_);
10431 }
10432 if (java.lang.Double.doubleToRawLongBits(guidedLocalSearchLambdaCoefficient_) != 0) {
10433 size += com.google.protobuf.CodedOutputStream
10434 .computeDoubleSize(5, guidedLocalSearchLambdaCoefficient_);
10435 }
10436 if (useDepthFirstSearch_ != false) {
10437 size += com.google.protobuf.CodedOutputStream
10438 .computeBoolSize(6, useDepthFirstSearch_);
10439 }
10440 if (java.lang.Double.doubleToRawLongBits(optimizationStep_) != 0) {
10441 size += com.google.protobuf.CodedOutputStream
10442 .computeDoubleSize(7, optimizationStep_);
10443 }
10444 if (solutionLimit_ != 0L) {
10445 size += com.google.protobuf.CodedOutputStream
10446 .computeInt64Size(8, solutionLimit_);
10447 }
10448 if (((bitField0_ & 0x00000008) != 0)) {
10449 size += com.google.protobuf.CodedOutputStream
10450 .computeMessageSize(9, getTimeLimit());
10451 }
10452 if (((bitField0_ & 0x00000010) != 0)) {
10453 size += com.google.protobuf.CodedOutputStream
10454 .computeMessageSize(10, getLnsTimeLimit());
10455 }
10456 if (useFullPropagation_ != false) {
10457 size += com.google.protobuf.CodedOutputStream
10458 .computeBoolSize(11, useFullPropagation_);
10459 }
10460 if (logSearch_ != false) {
10461 size += com.google.protobuf.CodedOutputStream
10462 .computeBoolSize(13, logSearch_);
10463 }
10464 if (java.lang.Double.doubleToRawLongBits(savingsNeighborsRatio_) != 0) {
10465 size += com.google.protobuf.CodedOutputStream
10466 .computeDoubleSize(14, savingsNeighborsRatio_);
10467 }
10468 if (savingsAddReverseArcs_ != false) {
10469 size += com.google.protobuf.CodedOutputStream
10470 .computeBoolSize(15, savingsAddReverseArcs_);
10471 }
10472 if (java.lang.Double.doubleToRawLongBits(cheapestInsertionFarthestSeedsRatio_) != 0) {
10473 size += com.google.protobuf.CodedOutputStream
10474 .computeDoubleSize(16, cheapestInsertionFarthestSeedsRatio_);
10475 }
10476 if (numberOfSolutionsToCollect_ != 0) {
10477 size += com.google.protobuf.CodedOutputStream
10478 .computeInt32Size(17, numberOfSolutionsToCollect_);
10479 }
10480 if (java.lang.Double.doubleToRawLongBits(savingsArcCoefficient_) != 0) {
10481 size += com.google.protobuf.CodedOutputStream
10482 .computeDoubleSize(18, savingsArcCoefficient_);
10483 }
10484 if (relocateExpensiveChainNumArcsToConsider_ != 0) {
10485 size += com.google.protobuf.CodedOutputStream
10486 .computeInt32Size(20, relocateExpensiveChainNumArcsToConsider_);
10487 }
10488 if (java.lang.Double.doubleToRawLongBits(cheapestInsertionFirstSolutionNeighborsRatio_) != 0) {
10489 size += com.google.protobuf.CodedOutputStream
10490 .computeDoubleSize(21, cheapestInsertionFirstSolutionNeighborsRatio_);
10491 }
10492 if (java.lang.Double.doubleToRawLongBits(logCostScalingFactor_) != 0) {
10493 size += com.google.protobuf.CodedOutputStream
10494 .computeDoubleSize(22, logCostScalingFactor_);
10495 }
10496 if (java.lang.Double.doubleToRawLongBits(savingsMaxMemoryUsageBytes_) != 0) {
10497 size += com.google.protobuf.CodedOutputStream
10498 .computeDoubleSize(23, savingsMaxMemoryUsageBytes_);
10499 }
10500 if (useCpSat_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
10501 size += com.google.protobuf.CodedOutputStream
10502 .computeEnumSize(27, useCpSat_);
10503 }
10504 if (useCp_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
10505 size += com.google.protobuf.CodedOutputStream
10506 .computeEnumSize(28, useCp_);
10507 }
10508 if (java.lang.Double.doubleToRawLongBits(logCostOffset_) != 0) {
10509 size += com.google.protobuf.CodedOutputStream
10510 .computeDoubleSize(29, logCostOffset_);
10511 }
10512 if (christofidesUseMinimumMatching_ != false) {
10513 size += com.google.protobuf.CodedOutputStream
10514 .computeBoolSize(30, christofidesUseMinimumMatching_);
10515 }
10516 if (java.lang.Double.doubleToRawLongBits(cheapestInsertionLsOperatorNeighborsRatio_) != 0) {
10517 size += com.google.protobuf.CodedOutputStream
10518 .computeDoubleSize(31, cheapestInsertionLsOperatorNeighborsRatio_);
10519 }
10520 if (heuristicExpensiveChainLnsNumArcsToConsider_ != 0) {
10521 size += com.google.protobuf.CodedOutputStream
10522 .computeInt32Size(32, heuristicExpensiveChainLnsNumArcsToConsider_);
10523 }
10524 if (continuousSchedulingSolver_ != com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.SCHEDULING_UNSET.getNumber()) {
10525 size += com.google.protobuf.CodedOutputStream
10526 .computeEnumSize(33, continuousSchedulingSolver_);
10527 }
10528 if (mixedIntegerSchedulingSolver_ != com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.SCHEDULING_UNSET.getNumber()) {
10529 size += com.google.protobuf.CodedOutputStream
10530 .computeEnumSize(34, mixedIntegerSchedulingSolver_);
10531 }
10532 if (heuristicCloseNodesLnsNumNodes_ != 0) {
10533 size += com.google.protobuf.CodedOutputStream
10534 .computeInt32Size(35, heuristicCloseNodesLnsNumNodes_);
10535 }
10536 if (!com.google.protobuf.GeneratedMessage.isStringEmpty(logTag_)) {
10537 size += com.google.protobuf.GeneratedMessage.computeStringSize(36, logTag_);
10538 }
10539 if (((bitField0_ & 0x00000020) != 0)) {
10540 size += com.google.protobuf.CodedOutputStream
10541 .computeMessageSize(37, getImprovementLimitParameters());
10542 }
10543 if (cheapestInsertionAddUnperformedEntries_ != false) {
10544 size += com.google.protobuf.CodedOutputStream
10545 .computeBoolSize(40, cheapestInsertionAddUnperformedEntries_);
10546 }
10547 if (useMultiArmedBanditConcatenateOperators_ != false) {
10548 size += com.google.protobuf.CodedOutputStream
10549 .computeBoolSize(41, useMultiArmedBanditConcatenateOperators_);
10550 }
10551 if (java.lang.Double.doubleToRawLongBits(multiArmedBanditCompoundOperatorMemoryCoefficient_) != 0) {
10552 size += com.google.protobuf.CodedOutputStream
10553 .computeDoubleSize(42, multiArmedBanditCompoundOperatorMemoryCoefficient_);
10554 }
10555 if (java.lang.Double.doubleToRawLongBits(multiArmedBanditCompoundOperatorExplorationCoefficient_) != 0) {
10556 size += com.google.protobuf.CodedOutputStream
10557 .computeDoubleSize(43, multiArmedBanditCompoundOperatorExplorationCoefficient_);
10558 }
10559 if (cheapestInsertionFirstSolutionMinNeighbors_ != 0) {
10560 size += com.google.protobuf.CodedOutputStream
10561 .computeInt32Size(44, cheapestInsertionFirstSolutionMinNeighbors_);
10562 }
10563 if (cheapestInsertionLsOperatorMinNeighbors_ != 0) {
10564 size += com.google.protobuf.CodedOutputStream
10565 .computeInt32Size(45, cheapestInsertionLsOperatorMinNeighbors_);
10566 }
10567 if (cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_ != false) {
10568 size += com.google.protobuf.CodedOutputStream
10569 .computeBoolSize(46, cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_);
10570 }
10571 if (useGeneralizedCpSat_ != com.google.ortools.util.OptionalBoolean.BOOL_UNSPECIFIED.getNumber()) {
10572 size += com.google.protobuf.CodedOutputStream
10573 .computeEnumSize(47, useGeneralizedCpSat_);
10574 }
10575 if (((bitField0_ & 0x00000002) != 0)) {
10576 size += com.google.protobuf.CodedOutputStream
10577 .computeMessageSize(48, getSatParameters());
10578 }
10579 if (localCheapestInsertionPickupDeliveryStrategy_ != com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy.AUTOMATIC.getNumber()) {
10580 size += com.google.protobuf.CodedOutputStream
10581 .computeEnumSize(49, localCheapestInsertionPickupDeliveryStrategy_);
10582 }
10583 if (((bitField0_ & 0x00000004) != 0)) {
10584 size += com.google.protobuf.CodedOutputStream
10585 .computeBoolSize(50, disableSchedulingBewareThisMayDegradePerformance_);
10586 }
10587 if (guidedLocalSearchResetPenaltiesOnNewBestSolution_ != false) {
10588 size += com.google.protobuf.CodedOutputStream
10589 .computeBoolSize(51, guidedLocalSearchResetPenaltiesOnNewBestSolution_);
10590 }
10591 if (fallbackToCpSatSizeThreshold_ != 0) {
10592 size += com.google.protobuf.CodedOutputStream
10593 .computeInt32Size(52, fallbackToCpSatSizeThreshold_);
10594 }
10595 if (java.lang.Double.doubleToRawLongBits(lsOperatorNeighborsRatio_) != 0) {
10596 size += com.google.protobuf.CodedOutputStream
10597 .computeDoubleSize(53, lsOperatorNeighborsRatio_);
10598 }
10599 if (lsOperatorMinNeighbors_ != 0) {
10600 size += com.google.protobuf.CodedOutputStream
10601 .computeInt32Size(54, lsOperatorMinNeighbors_);
10602 }
10603 if (localCheapestCostInsertionPickupDeliveryStrategy_ != com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy.AUTOMATIC.getNumber()) {
10604 size += com.google.protobuf.CodedOutputStream
10605 .computeEnumSize(55, localCheapestCostInsertionPickupDeliveryStrategy_);
10606 }
10607 if (reportIntermediateCpSatSolutions_ != false) {
10608 size += com.google.protobuf.CodedOutputStream
10609 .computeBoolSize(56, reportIntermediateCpSatSolutions_);
10610 }
10611 if (java.lang.Double.doubleToRawLongBits(secondaryLsTimeLimitRatio_) != 0) {
10612 size += com.google.protobuf.CodedOutputStream
10613 .computeDoubleSize(57, secondaryLsTimeLimitRatio_);
10614 }
10615 if (useIteratedLocalSearch_ != false) {
10616 size += com.google.protobuf.CodedOutputStream
10617 .computeBoolSize(58, useIteratedLocalSearch_);
10618 }
10619 if (firstSolutionOptimizationPeriod_ != 0) {
10620 size += com.google.protobuf.CodedOutputStream
10621 .computeInt32Size(59, firstSolutionOptimizationPeriod_);
10622 }
10623 if (((bitField0_ & 0x00000040) != 0)) {
10624 size += com.google.protobuf.CodedOutputStream
10625 .computeMessageSize(60, getIteratedLocalSearchParameters());
10626 }
10627 if (guidedLocalSearchPenalizeWithVehicleClasses_ != false) {
10628 size += com.google.protobuf.CodedOutputStream
10629 .computeBoolSize(61, guidedLocalSearchPenalizeWithVehicleClasses_);
10630 }
10631 if (useGuidedLocalSearchPenaltiesInLocalSearchOperators_ != false) {
10632 size += com.google.protobuf.CodedOutputStream
10633 .computeBoolSize(62, useGuidedLocalSearchPenaltiesInLocalSearchOperators_);
10634 }
10635 {
10636 int dataSize = 0;
10637 for (int i = 0; i < localSearchMetaheuristics_.size(); i++) {
10638 dataSize += com.google.protobuf.CodedOutputStream
10639 .computeEnumSizeNoTag(localSearchMetaheuristics_.getInt(i));
10640 }
10641 size += dataSize;
10642 if (!getLocalSearchMetaheuristicsList().isEmpty()) { size += 2;
10643 size += com.google.protobuf.CodedOutputStream
10644 .computeUInt32SizeNoTag(dataSize);
10645 }localSearchMetaheuristicsMemoizedSerializedSize = dataSize;
10646 }
10647 if (numMaxLocalOptimaBeforeMetaheuristicSwitch_ != 0) {
10648 size += com.google.protobuf.CodedOutputStream
10649 .computeInt32Size(64, numMaxLocalOptimaBeforeMetaheuristicSwitch_);
10650 }
10651 if (maxSwapActiveChainSize_ != 0) {
10652 size += com.google.protobuf.CodedOutputStream
10653 .computeInt32Size(66, maxSwapActiveChainSize_);
10654 }
10655 {
10656 int dataSize = 0;
10657 for (int i = 0; i < localCheapestInsertionSortingProperties_.size(); i++) {
10658 dataSize += com.google.protobuf.CodedOutputStream
10659 .computeEnumSizeNoTag(localCheapestInsertionSortingProperties_.getInt(i));
10660 }
10661 size += dataSize;
10662 if (!getLocalCheapestInsertionSortingPropertiesList().isEmpty()) { size += 2;
10663 size += com.google.protobuf.CodedOutputStream
10664 .computeUInt32SizeNoTag(dataSize);
10665 }localCheapestInsertionSortingPropertiesMemoizedSerializedSize = dataSize;
10666 }
10667 size += getUnknownFields().getSerializedSize();
10668 memoizedSize = size;
10669 return size;
10670 }
10671
10672 @java.lang.Override
10673 public boolean equals(final java.lang.Object obj) {
10674 if (obj == this) {
10675 return true;
10676 }
10677 if (!(obj instanceof com.google.ortools.constraintsolver.RoutingSearchParameters)) {
10678 return super.equals(obj);
10679 }
10680 com.google.ortools.constraintsolver.RoutingSearchParameters other = (com.google.ortools.constraintsolver.RoutingSearchParameters) obj;
10681
10682 if (firstSolutionStrategy_ != other.firstSolutionStrategy_) return false;
10684 != other.getUseUnfilteredFirstSolutionStrategy()) return false;
10685 if (java.lang.Double.doubleToLongBits(getSavingsNeighborsRatio())
10686 != java.lang.Double.doubleToLongBits(
10687 other.getSavingsNeighborsRatio())) return false;
10688 if (java.lang.Double.doubleToLongBits(getSavingsMaxMemoryUsageBytes())
10689 != java.lang.Double.doubleToLongBits(
10690 other.getSavingsMaxMemoryUsageBytes())) return false;
10692 != other.getSavingsAddReverseArcs()) return false;
10693 if (java.lang.Double.doubleToLongBits(getSavingsArcCoefficient())
10694 != java.lang.Double.doubleToLongBits(
10695 other.getSavingsArcCoefficient())) return false;
10696 if (java.lang.Double.doubleToLongBits(getCheapestInsertionFarthestSeedsRatio())
10697 != java.lang.Double.doubleToLongBits(
10698 other.getCheapestInsertionFarthestSeedsRatio())) return false;
10699 if (java.lang.Double.doubleToLongBits(getCheapestInsertionFirstSolutionNeighborsRatio())
10700 != java.lang.Double.doubleToLongBits(
10703 != other.getCheapestInsertionFirstSolutionMinNeighbors()) return false;
10704 if (java.lang.Double.doubleToLongBits(getCheapestInsertionLsOperatorNeighborsRatio())
10705 != java.lang.Double.doubleToLongBits(
10706 other.getCheapestInsertionLsOperatorNeighborsRatio())) return false;
10708 != other.getCheapestInsertionLsOperatorMinNeighbors()) return false;
10712 != other.getCheapestInsertionAddUnperformedEntries()) return false;
10713 if (localCheapestInsertionPickupDeliveryStrategy_ != other.localCheapestInsertionPickupDeliveryStrategy_) return false;
10714 if (localCheapestCostInsertionPickupDeliveryStrategy_ != other.localCheapestCostInsertionPickupDeliveryStrategy_) return false;
10715 if (!localCheapestInsertionSortingProperties_.equals(other.localCheapestInsertionSortingProperties_)) return false;
10717 != other.getChristofidesUseMinimumMatching()) return false;
10719 != other.getFirstSolutionOptimizationPeriod()) return false;
10720 if (hasLocalSearchOperators() != other.hasLocalSearchOperators()) return false;
10723 .equals(other.getLocalSearchOperators())) return false;
10724 }
10725 if (java.lang.Double.doubleToLongBits(getLsOperatorNeighborsRatio())
10726 != java.lang.Double.doubleToLongBits(
10727 other.getLsOperatorNeighborsRatio())) return false;
10729 != other.getLsOperatorMinNeighbors()) return false;
10731 != other.getUseMultiArmedBanditConcatenateOperators()) return false;
10732 if (java.lang.Double.doubleToLongBits(getMultiArmedBanditCompoundOperatorMemoryCoefficient())
10733 != java.lang.Double.doubleToLongBits(
10735 if (java.lang.Double.doubleToLongBits(getMultiArmedBanditCompoundOperatorExplorationCoefficient())
10736 != java.lang.Double.doubleToLongBits(
10739 != other.getMaxSwapActiveChainSize()) return false;
10741 != other.getRelocateExpensiveChainNumArcsToConsider()) return false;
10743 != other.getHeuristicExpensiveChainLnsNumArcsToConsider()) return false;
10745 != other.getHeuristicCloseNodesLnsNumNodes()) return false;
10746 if (localSearchMetaheuristic_ != other.localSearchMetaheuristic_) return false;
10747 if (!localSearchMetaheuristics_.equals(other.localSearchMetaheuristics_)) return false;
10749 != other.getNumMaxLocalOptimaBeforeMetaheuristicSwitch()) return false;
10750 if (java.lang.Double.doubleToLongBits(getGuidedLocalSearchLambdaCoefficient())
10751 != java.lang.Double.doubleToLongBits(
10752 other.getGuidedLocalSearchLambdaCoefficient())) return false;
10756 != other.getGuidedLocalSearchPenalizeWithVehicleClasses()) return false;
10760 != other.getUseDepthFirstSearch()) return false;
10761 if (useCp_ != other.useCp_) return false;
10762 if (useCpSat_ != other.useCpSat_) return false;
10763 if (useGeneralizedCpSat_ != other.useGeneralizedCpSat_) return false;
10764 if (hasSatParameters() != other.hasSatParameters()) return false;
10765 if (hasSatParameters()) {
10766 if (!getSatParameters()
10767 .equals(other.getSatParameters())) return false;
10768 }
10770 != other.getReportIntermediateCpSatSolutions()) return false;
10772 != other.getFallbackToCpSatSizeThreshold()) return false;
10773 if (continuousSchedulingSolver_ != other.continuousSchedulingSolver_) return false;
10774 if (mixedIntegerSchedulingSolver_ != other.mixedIntegerSchedulingSolver_) return false;
10779 }
10780 if (java.lang.Double.doubleToLongBits(getOptimizationStep())
10781 != java.lang.Double.doubleToLongBits(
10782 other.getOptimizationStep())) return false;
10784 != other.getNumberOfSolutionsToCollect()) return false;
10785 if (getSolutionLimit()
10786 != other.getSolutionLimit()) return false;
10787 if (hasTimeLimit() != other.hasTimeLimit()) return false;
10788 if (hasTimeLimit()) {
10789 if (!getTimeLimit()
10790 .equals(other.getTimeLimit())) return false;
10791 }
10792 if (hasLnsTimeLimit() != other.hasLnsTimeLimit()) return false;
10793 if (hasLnsTimeLimit()) {
10794 if (!getLnsTimeLimit()
10795 .equals(other.getLnsTimeLimit())) return false;
10796 }
10797 if (java.lang.Double.doubleToLongBits(getSecondaryLsTimeLimitRatio())
10798 != java.lang.Double.doubleToLongBits(
10799 other.getSecondaryLsTimeLimitRatio())) return false;
10800 if (hasImprovementLimitParameters() != other.hasImprovementLimitParameters()) return false;
10803 .equals(other.getImprovementLimitParameters())) return false;
10804 }
10806 != other.getUseFullPropagation()) return false;
10807 if (getLogSearch()
10808 != other.getLogSearch()) return false;
10809 if (java.lang.Double.doubleToLongBits(getLogCostScalingFactor())
10810 != java.lang.Double.doubleToLongBits(
10811 other.getLogCostScalingFactor())) return false;
10812 if (java.lang.Double.doubleToLongBits(getLogCostOffset())
10813 != java.lang.Double.doubleToLongBits(
10814 other.getLogCostOffset())) return false;
10815 if (!getLogTag()
10816 .equals(other.getLogTag())) return false;
10818 != other.getUseIteratedLocalSearch()) return false;
10822 .equals(other.getIteratedLocalSearchParameters())) return false;
10823 }
10824 if (!getUnknownFields().equals(other.getUnknownFields())) return false;
10825 return true;
10826 }
10827
10828 @java.lang.Override
10829 public int hashCode() {
10830 if (memoizedHashCode != 0) {
10831 return memoizedHashCode;
10832 }
10833 int hash = 41;
10834 hash = (19 * hash) + getDescriptor().hashCode();
10835 hash = (37 * hash) + FIRST_SOLUTION_STRATEGY_FIELD_NUMBER;
10836 hash = (53 * hash) + firstSolutionStrategy_;
10838 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10840 hash = (37 * hash) + SAVINGS_NEIGHBORS_RATIO_FIELD_NUMBER;
10841 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
10842 java.lang.Double.doubleToLongBits(getSavingsNeighborsRatio()));
10844 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
10845 java.lang.Double.doubleToLongBits(getSavingsMaxMemoryUsageBytes()));
10846 hash = (37 * hash) + SAVINGS_ADD_REVERSE_ARCS_FIELD_NUMBER;
10847 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10849 hash = (37 * hash) + SAVINGS_ARC_COEFFICIENT_FIELD_NUMBER;
10850 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
10851 java.lang.Double.doubleToLongBits(getSavingsArcCoefficient()));
10853 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
10854 java.lang.Double.doubleToLongBits(getCheapestInsertionFarthestSeedsRatio()));
10856 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
10857 java.lang.Double.doubleToLongBits(getCheapestInsertionFirstSolutionNeighborsRatio()));
10859 hash = (53 * hash) + getCheapestInsertionFirstSolutionMinNeighbors();
10861 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
10862 java.lang.Double.doubleToLongBits(getCheapestInsertionLsOperatorNeighborsRatio()));
10864 hash = (53 * hash) + getCheapestInsertionLsOperatorMinNeighbors();
10866 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10869 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10872 hash = (53 * hash) + localCheapestInsertionPickupDeliveryStrategy_;
10874 hash = (53 * hash) + localCheapestCostInsertionPickupDeliveryStrategy_;
10877 hash = (53 * hash) + localCheapestInsertionSortingProperties_.hashCode();
10878 }
10880 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10883 hash = (53 * hash) + getFirstSolutionOptimizationPeriod();
10885 hash = (37 * hash) + LOCAL_SEARCH_OPERATORS_FIELD_NUMBER;
10886 hash = (53 * hash) + getLocalSearchOperators().hashCode();
10887 }
10888 hash = (37 * hash) + LS_OPERATOR_NEIGHBORS_RATIO_FIELD_NUMBER;
10889 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
10890 java.lang.Double.doubleToLongBits(getLsOperatorNeighborsRatio()));
10891 hash = (37 * hash) + LS_OPERATOR_MIN_NEIGHBORS_FIELD_NUMBER;
10892 hash = (53 * hash) + getLsOperatorMinNeighbors();
10894 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10897 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
10898 java.lang.Double.doubleToLongBits(getMultiArmedBanditCompoundOperatorMemoryCoefficient()));
10900 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
10901 java.lang.Double.doubleToLongBits(getMultiArmedBanditCompoundOperatorExplorationCoefficient()));
10902 hash = (37 * hash) + MAX_SWAP_ACTIVE_CHAIN_SIZE_FIELD_NUMBER;
10903 hash = (53 * hash) + getMaxSwapActiveChainSize();
10905 hash = (53 * hash) + getRelocateExpensiveChainNumArcsToConsider();
10909 hash = (53 * hash) + getHeuristicCloseNodesLnsNumNodes();
10910 hash = (37 * hash) + LOCAL_SEARCH_METAHEURISTIC_FIELD_NUMBER;
10911 hash = (53 * hash) + localSearchMetaheuristic_;
10913 hash = (37 * hash) + LOCAL_SEARCH_METAHEURISTICS_FIELD_NUMBER;
10914 hash = (53 * hash) + localSearchMetaheuristics_.hashCode();
10915 }
10917 hash = (53 * hash) + getNumMaxLocalOptimaBeforeMetaheuristicSwitch();
10919 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
10920 java.lang.Double.doubleToLongBits(getGuidedLocalSearchLambdaCoefficient()));
10922 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10925 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10928 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10930 hash = (37 * hash) + USE_DEPTH_FIRST_SEARCH_FIELD_NUMBER;
10931 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10933 hash = (37 * hash) + USE_CP_FIELD_NUMBER;
10934 hash = (53 * hash) + useCp_;
10935 hash = (37 * hash) + USE_CP_SAT_FIELD_NUMBER;
10936 hash = (53 * hash) + useCpSat_;
10937 hash = (37 * hash) + USE_GENERALIZED_CP_SAT_FIELD_NUMBER;
10938 hash = (53 * hash) + useGeneralizedCpSat_;
10939 if (hasSatParameters()) {
10940 hash = (37 * hash) + SAT_PARAMETERS_FIELD_NUMBER;
10941 hash = (53 * hash) + getSatParameters().hashCode();
10942 }
10944 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10947 hash = (53 * hash) + getFallbackToCpSatSizeThreshold();
10948 hash = (37 * hash) + CONTINUOUS_SCHEDULING_SOLVER_FIELD_NUMBER;
10949 hash = (53 * hash) + continuousSchedulingSolver_;
10951 hash = (53 * hash) + mixedIntegerSchedulingSolver_;
10954 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10956 }
10957 hash = (37 * hash) + OPTIMIZATION_STEP_FIELD_NUMBER;
10958 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
10959 java.lang.Double.doubleToLongBits(getOptimizationStep()));
10961 hash = (53 * hash) + getNumberOfSolutionsToCollect();
10962 hash = (37 * hash) + SOLUTION_LIMIT_FIELD_NUMBER;
10963 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
10965 if (hasTimeLimit()) {
10966 hash = (37 * hash) + TIME_LIMIT_FIELD_NUMBER;
10967 hash = (53 * hash) + getTimeLimit().hashCode();
10968 }
10969 if (hasLnsTimeLimit()) {
10970 hash = (37 * hash) + LNS_TIME_LIMIT_FIELD_NUMBER;
10971 hash = (53 * hash) + getLnsTimeLimit().hashCode();
10972 }
10973 hash = (37 * hash) + SECONDARY_LS_TIME_LIMIT_RATIO_FIELD_NUMBER;
10974 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
10975 java.lang.Double.doubleToLongBits(getSecondaryLsTimeLimitRatio()));
10977 hash = (37 * hash) + IMPROVEMENT_LIMIT_PARAMETERS_FIELD_NUMBER;
10978 hash = (53 * hash) + getImprovementLimitParameters().hashCode();
10979 }
10980 hash = (37 * hash) + USE_FULL_PROPAGATION_FIELD_NUMBER;
10981 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10983 hash = (37 * hash) + LOG_SEARCH_FIELD_NUMBER;
10984 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10985 getLogSearch());
10986 hash = (37 * hash) + LOG_COST_SCALING_FACTOR_FIELD_NUMBER;
10987 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
10988 java.lang.Double.doubleToLongBits(getLogCostScalingFactor()));
10989 hash = (37 * hash) + LOG_COST_OFFSET_FIELD_NUMBER;
10990 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
10991 java.lang.Double.doubleToLongBits(getLogCostOffset()));
10992 hash = (37 * hash) + LOG_TAG_FIELD_NUMBER;
10993 hash = (53 * hash) + getLogTag().hashCode();
10994 hash = (37 * hash) + USE_ITERATED_LOCAL_SEARCH_FIELD_NUMBER;
10995 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
10999 hash = (53 * hash) + getIteratedLocalSearchParameters().hashCode();
11000 }
11001 hash = (29 * hash) + getUnknownFields().hashCode();
11002 memoizedHashCode = hash;
11003 return hash;
11004 }
11005
11007 java.nio.ByteBuffer data)
11008 throws com.google.protobuf.InvalidProtocolBufferException {
11009 return PARSER.parseFrom(data);
11010 }
11012 java.nio.ByteBuffer data,
11013 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
11014 throws com.google.protobuf.InvalidProtocolBufferException {
11015 return PARSER.parseFrom(data, extensionRegistry);
11016 }
11018 com.google.protobuf.ByteString data)
11019 throws com.google.protobuf.InvalidProtocolBufferException {
11020 return PARSER.parseFrom(data);
11021 }
11023 com.google.protobuf.ByteString data,
11024 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
11025 throws com.google.protobuf.InvalidProtocolBufferException {
11026 return PARSER.parseFrom(data, extensionRegistry);
11027 }
11029 throws com.google.protobuf.InvalidProtocolBufferException {
11030 return PARSER.parseFrom(data);
11031 }
11033 byte[] data,
11034 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
11035 throws com.google.protobuf.InvalidProtocolBufferException {
11036 return PARSER.parseFrom(data, extensionRegistry);
11037 }
11039 throws java.io.IOException {
11040 return com.google.protobuf.GeneratedMessage
11041 .parseWithIOException(PARSER, input);
11042 }
11044 java.io.InputStream input,
11045 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
11046 throws java.io.IOException {
11047 return com.google.protobuf.GeneratedMessage
11048 .parseWithIOException(PARSER, input, extensionRegistry);
11049 }
11050
11052 throws java.io.IOException {
11053 return com.google.protobuf.GeneratedMessage
11054 .parseDelimitedWithIOException(PARSER, input);
11055 }
11056
11058 java.io.InputStream input,
11059 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
11060 throws java.io.IOException {
11061 return com.google.protobuf.GeneratedMessage
11062 .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
11063 }
11065 com.google.protobuf.CodedInputStream input)
11066 throws java.io.IOException {
11067 return com.google.protobuf.GeneratedMessage
11068 .parseWithIOException(PARSER, input);
11069 }
11071 com.google.protobuf.CodedInputStream input,
11072 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
11073 throws java.io.IOException {
11074 return com.google.protobuf.GeneratedMessage
11075 .parseWithIOException(PARSER, input, extensionRegistry);
11076 }
11077
11078 @java.lang.Override
11079 public Builder newBuilderForType() { return newBuilder(); }
11080 public static Builder newBuilder() {
11081 return DEFAULT_INSTANCE.toBuilder();
11082 }
11083 public static Builder newBuilder(com.google.ortools.constraintsolver.RoutingSearchParameters prototype) {
11084 return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
11085 }
11086 @java.lang.Override
11088 return this == DEFAULT_INSTANCE
11089 ? new Builder() : new Builder().mergeFrom(this);
11090 }
11091
11092 @java.lang.Override
11094 com.google.protobuf.GeneratedMessage.BuilderParent parent) {
11095 Builder builder = new Builder(parent);
11096 return builder;
11097 }
11098
11111 public static final class Builder extends
11112 com.google.protobuf.GeneratedMessage.Builder<Builder> implements
11113 // @@protoc_insertion_point(builder_implements:operations_research.RoutingSearchParameters)
11115 public static final com.google.protobuf.Descriptors.Descriptor
11117 return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_descriptor;
11118 }
11119
11120 @java.lang.Override
11121 protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
11123 return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_fieldAccessorTable
11124 .ensureFieldAccessorsInitialized(
11125 com.google.ortools.constraintsolver.RoutingSearchParameters.class, com.google.ortools.constraintsolver.RoutingSearchParameters.Builder.class);
11126 }
11127
11128 // Construct using com.google.ortools.constraintsolver.RoutingSearchParameters.newBuilder()
11129 private Builder() {
11130 maybeForceBuilderInitialization();
11131 }
11132
11133 private Builder(
11134 com.google.protobuf.GeneratedMessage.BuilderParent parent) {
11135 super(parent);
11136 maybeForceBuilderInitialization();
11137 }
11138 private void maybeForceBuilderInitialization() {
11139 if (com.google.protobuf.GeneratedMessage
11140 .alwaysUseFieldBuilders) {
11141 internalGetLocalSearchOperatorsFieldBuilder();
11142 internalGetSatParametersFieldBuilder();
11143 internalGetTimeLimitFieldBuilder();
11144 internalGetLnsTimeLimitFieldBuilder();
11145 internalGetImprovementLimitParametersFieldBuilder();
11146 internalGetIteratedLocalSearchParametersFieldBuilder();
11147 }
11148 }
11149 @java.lang.Override
11150 public Builder clear() {
11151 super.clear();
11152 bitField0_ = 0;
11153 bitField1_ = 0;
11154 firstSolutionStrategy_ = 0;
11155 useUnfilteredFirstSolutionStrategy_ = false;
11156 savingsNeighborsRatio_ = 0D;
11157 savingsMaxMemoryUsageBytes_ = 0D;
11158 savingsAddReverseArcs_ = false;
11159 savingsArcCoefficient_ = 0D;
11160 cheapestInsertionFarthestSeedsRatio_ = 0D;
11161 cheapestInsertionFirstSolutionNeighborsRatio_ = 0D;
11162 cheapestInsertionFirstSolutionMinNeighbors_ = 0;
11163 cheapestInsertionLsOperatorNeighborsRatio_ = 0D;
11164 cheapestInsertionLsOperatorMinNeighbors_ = 0;
11165 cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_ = false;
11166 cheapestInsertionAddUnperformedEntries_ = false;
11167 localCheapestInsertionPickupDeliveryStrategy_ = 0;
11168 localCheapestCostInsertionPickupDeliveryStrategy_ = 0;
11169 localCheapestInsertionSortingProperties_ = emptyIntList();
11170 christofidesUseMinimumMatching_ = false;
11171 firstSolutionOptimizationPeriod_ = 0;
11172 localSearchOperators_ = null;
11173 if (localSearchOperatorsBuilder_ != null) {
11174 localSearchOperatorsBuilder_.dispose();
11175 localSearchOperatorsBuilder_ = null;
11176 }
11177 lsOperatorNeighborsRatio_ = 0D;
11178 lsOperatorMinNeighbors_ = 0;
11179 useMultiArmedBanditConcatenateOperators_ = false;
11180 multiArmedBanditCompoundOperatorMemoryCoefficient_ = 0D;
11181 multiArmedBanditCompoundOperatorExplorationCoefficient_ = 0D;
11182 maxSwapActiveChainSize_ = 0;
11183 relocateExpensiveChainNumArcsToConsider_ = 0;
11184 heuristicExpensiveChainLnsNumArcsToConsider_ = 0;
11185 heuristicCloseNodesLnsNumNodes_ = 0;
11186 localSearchMetaheuristic_ = 0;
11187 localSearchMetaheuristics_ = emptyIntList();
11188 numMaxLocalOptimaBeforeMetaheuristicSwitch_ = 0;
11189 guidedLocalSearchLambdaCoefficient_ = 0D;
11190 guidedLocalSearchResetPenaltiesOnNewBestSolution_ = false;
11191 guidedLocalSearchPenalizeWithVehicleClasses_ = false;
11192 useGuidedLocalSearchPenaltiesInLocalSearchOperators_ = false;
11193 useDepthFirstSearch_ = false;
11194 useCp_ = 0;
11195 useCpSat_ = 0;
11196 useGeneralizedCpSat_ = 0;
11197 satParameters_ = null;
11198 if (satParametersBuilder_ != null) {
11199 satParametersBuilder_.dispose();
11200 satParametersBuilder_ = null;
11201 }
11202 reportIntermediateCpSatSolutions_ = false;
11203 fallbackToCpSatSizeThreshold_ = 0;
11204 continuousSchedulingSolver_ = 0;
11205 mixedIntegerSchedulingSolver_ = 0;
11206 disableSchedulingBewareThisMayDegradePerformance_ = false;
11207 optimizationStep_ = 0D;
11208 numberOfSolutionsToCollect_ = 0;
11209 solutionLimit_ = 0L;
11210 timeLimit_ = null;
11211 if (timeLimitBuilder_ != null) {
11212 timeLimitBuilder_.dispose();
11213 timeLimitBuilder_ = null;
11214 }
11215 lnsTimeLimit_ = null;
11216 if (lnsTimeLimitBuilder_ != null) {
11217 lnsTimeLimitBuilder_.dispose();
11218 lnsTimeLimitBuilder_ = null;
11219 }
11220 secondaryLsTimeLimitRatio_ = 0D;
11221 improvementLimitParameters_ = null;
11222 if (improvementLimitParametersBuilder_ != null) {
11223 improvementLimitParametersBuilder_.dispose();
11224 improvementLimitParametersBuilder_ = null;
11225 }
11226 useFullPropagation_ = false;
11227 logSearch_ = false;
11228 logCostScalingFactor_ = 0D;
11229 logCostOffset_ = 0D;
11230 logTag_ = "";
11231 useIteratedLocalSearch_ = false;
11232 iteratedLocalSearchParameters_ = null;
11233 if (iteratedLocalSearchParametersBuilder_ != null) {
11234 iteratedLocalSearchParametersBuilder_.dispose();
11235 iteratedLocalSearchParametersBuilder_ = null;
11236 }
11237 return this;
11238 }
11239
11240 @java.lang.Override
11241 public com.google.protobuf.Descriptors.Descriptor
11243 return com.google.ortools.constraintsolver.RoutingParameters.internal_static_operations_research_RoutingSearchParameters_descriptor;
11244 }
11245
11246 @java.lang.Override
11248 return com.google.ortools.constraintsolver.RoutingSearchParameters.getDefaultInstance();
11249 }
11250
11251 @java.lang.Override
11254 if (!result.isInitialized()) {
11255 throw newUninitializedMessageException(result);
11256 }
11257 return result;
11258 }
11259
11260 @java.lang.Override
11262 com.google.ortools.constraintsolver.RoutingSearchParameters result = new com.google.ortools.constraintsolver.RoutingSearchParameters(this);
11263 if (bitField0_ != 0) { buildPartial0(result); }
11264 if (bitField1_ != 0) { buildPartial1(result); }
11265 onBuilt();
11266 return result;
11267 }
11268
11269 private void buildPartial0(com.google.ortools.constraintsolver.RoutingSearchParameters result) {
11270 int from_bitField0_ = bitField0_;
11271 if (((from_bitField0_ & 0x00000001) != 0)) {
11272 result.firstSolutionStrategy_ = firstSolutionStrategy_;
11273 }
11274 if (((from_bitField0_ & 0x00000002) != 0)) {
11275 result.useUnfilteredFirstSolutionStrategy_ = useUnfilteredFirstSolutionStrategy_;
11276 }
11277 if (((from_bitField0_ & 0x00000004) != 0)) {
11278 result.savingsNeighborsRatio_ = savingsNeighborsRatio_;
11279 }
11280 if (((from_bitField0_ & 0x00000008) != 0)) {
11281 result.savingsMaxMemoryUsageBytes_ = savingsMaxMemoryUsageBytes_;
11282 }
11283 if (((from_bitField0_ & 0x00000010) != 0)) {
11284 result.savingsAddReverseArcs_ = savingsAddReverseArcs_;
11285 }
11286 if (((from_bitField0_ & 0x00000020) != 0)) {
11287 result.savingsArcCoefficient_ = savingsArcCoefficient_;
11288 }
11289 if (((from_bitField0_ & 0x00000040) != 0)) {
11290 result.cheapestInsertionFarthestSeedsRatio_ = cheapestInsertionFarthestSeedsRatio_;
11291 }
11292 if (((from_bitField0_ & 0x00000080) != 0)) {
11293 result.cheapestInsertionFirstSolutionNeighborsRatio_ = cheapestInsertionFirstSolutionNeighborsRatio_;
11294 }
11295 if (((from_bitField0_ & 0x00000100) != 0)) {
11296 result.cheapestInsertionFirstSolutionMinNeighbors_ = cheapestInsertionFirstSolutionMinNeighbors_;
11297 }
11298 if (((from_bitField0_ & 0x00000200) != 0)) {
11299 result.cheapestInsertionLsOperatorNeighborsRatio_ = cheapestInsertionLsOperatorNeighborsRatio_;
11300 }
11301 if (((from_bitField0_ & 0x00000400) != 0)) {
11302 result.cheapestInsertionLsOperatorMinNeighbors_ = cheapestInsertionLsOperatorMinNeighbors_;
11303 }
11304 if (((from_bitField0_ & 0x00000800) != 0)) {
11305 result.cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_ = cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_;
11306 }
11307 if (((from_bitField0_ & 0x00001000) != 0)) {
11308 result.cheapestInsertionAddUnperformedEntries_ = cheapestInsertionAddUnperformedEntries_;
11309 }
11310 if (((from_bitField0_ & 0x00002000) != 0)) {
11311 result.localCheapestInsertionPickupDeliveryStrategy_ = localCheapestInsertionPickupDeliveryStrategy_;
11312 }
11313 if (((from_bitField0_ & 0x00004000) != 0)) {
11314 result.localCheapestCostInsertionPickupDeliveryStrategy_ = localCheapestCostInsertionPickupDeliveryStrategy_;
11315 }
11316 if (((from_bitField0_ & 0x00008000) != 0)) {
11317 localCheapestInsertionSortingProperties_.makeImmutable();
11318 result.localCheapestInsertionSortingProperties_ = localCheapestInsertionSortingProperties_;
11319 }
11320 if (((from_bitField0_ & 0x00010000) != 0)) {
11321 result.christofidesUseMinimumMatching_ = christofidesUseMinimumMatching_;
11322 }
11323 if (((from_bitField0_ & 0x00020000) != 0)) {
11324 result.firstSolutionOptimizationPeriod_ = firstSolutionOptimizationPeriod_;
11325 }
11326 int to_bitField0_ = 0;
11327 if (((from_bitField0_ & 0x00040000) != 0)) {
11328 result.localSearchOperators_ = localSearchOperatorsBuilder_ == null
11329 ? localSearchOperators_
11330 : localSearchOperatorsBuilder_.build();
11331 to_bitField0_ |= 0x00000001;
11332 }
11333 if (((from_bitField0_ & 0x00080000) != 0)) {
11334 result.lsOperatorNeighborsRatio_ = lsOperatorNeighborsRatio_;
11335 }
11336 if (((from_bitField0_ & 0x00100000) != 0)) {
11337 result.lsOperatorMinNeighbors_ = lsOperatorMinNeighbors_;
11338 }
11339 if (((from_bitField0_ & 0x00200000) != 0)) {
11340 result.useMultiArmedBanditConcatenateOperators_ = useMultiArmedBanditConcatenateOperators_;
11341 }
11342 if (((from_bitField0_ & 0x00400000) != 0)) {
11343 result.multiArmedBanditCompoundOperatorMemoryCoefficient_ = multiArmedBanditCompoundOperatorMemoryCoefficient_;
11344 }
11345 if (((from_bitField0_ & 0x00800000) != 0)) {
11346 result.multiArmedBanditCompoundOperatorExplorationCoefficient_ = multiArmedBanditCompoundOperatorExplorationCoefficient_;
11347 }
11348 if (((from_bitField0_ & 0x01000000) != 0)) {
11349 result.maxSwapActiveChainSize_ = maxSwapActiveChainSize_;
11350 }
11351 if (((from_bitField0_ & 0x02000000) != 0)) {
11352 result.relocateExpensiveChainNumArcsToConsider_ = relocateExpensiveChainNumArcsToConsider_;
11353 }
11354 if (((from_bitField0_ & 0x04000000) != 0)) {
11355 result.heuristicExpensiveChainLnsNumArcsToConsider_ = heuristicExpensiveChainLnsNumArcsToConsider_;
11356 }
11357 if (((from_bitField0_ & 0x08000000) != 0)) {
11358 result.heuristicCloseNodesLnsNumNodes_ = heuristicCloseNodesLnsNumNodes_;
11359 }
11360 if (((from_bitField0_ & 0x10000000) != 0)) {
11361 result.localSearchMetaheuristic_ = localSearchMetaheuristic_;
11362 }
11363 if (((from_bitField0_ & 0x20000000) != 0)) {
11364 localSearchMetaheuristics_.makeImmutable();
11365 result.localSearchMetaheuristics_ = localSearchMetaheuristics_;
11366 }
11367 if (((from_bitField0_ & 0x40000000) != 0)) {
11368 result.numMaxLocalOptimaBeforeMetaheuristicSwitch_ = numMaxLocalOptimaBeforeMetaheuristicSwitch_;
11369 }
11370 if (((from_bitField0_ & 0x80000000) != 0)) {
11371 result.guidedLocalSearchLambdaCoefficient_ = guidedLocalSearchLambdaCoefficient_;
11372 }
11373 result.bitField0_ |= to_bitField0_;
11374 }
11375
11376 private void buildPartial1(com.google.ortools.constraintsolver.RoutingSearchParameters result) {
11377 int from_bitField1_ = bitField1_;
11378 if (((from_bitField1_ & 0x00000001) != 0)) {
11379 result.guidedLocalSearchResetPenaltiesOnNewBestSolution_ = guidedLocalSearchResetPenaltiesOnNewBestSolution_;
11380 }
11381 if (((from_bitField1_ & 0x00000002) != 0)) {
11382 result.guidedLocalSearchPenalizeWithVehicleClasses_ = guidedLocalSearchPenalizeWithVehicleClasses_;
11383 }
11384 if (((from_bitField1_ & 0x00000004) != 0)) {
11385 result.useGuidedLocalSearchPenaltiesInLocalSearchOperators_ = useGuidedLocalSearchPenaltiesInLocalSearchOperators_;
11386 }
11387 if (((from_bitField1_ & 0x00000008) != 0)) {
11388 result.useDepthFirstSearch_ = useDepthFirstSearch_;
11389 }
11390 if (((from_bitField1_ & 0x00000010) != 0)) {
11391 result.useCp_ = useCp_;
11392 }
11393 if (((from_bitField1_ & 0x00000020) != 0)) {
11394 result.useCpSat_ = useCpSat_;
11395 }
11396 if (((from_bitField1_ & 0x00000040) != 0)) {
11397 result.useGeneralizedCpSat_ = useGeneralizedCpSat_;
11398 }
11399 int to_bitField0_ = 0;
11400 if (((from_bitField1_ & 0x00000080) != 0)) {
11401 result.satParameters_ = satParametersBuilder_ == null
11402 ? satParameters_
11403 : satParametersBuilder_.build();
11404 to_bitField0_ |= 0x00000002;
11405 }
11406 if (((from_bitField1_ & 0x00000100) != 0)) {
11407 result.reportIntermediateCpSatSolutions_ = reportIntermediateCpSatSolutions_;
11408 }
11409 if (((from_bitField1_ & 0x00000200) != 0)) {
11410 result.fallbackToCpSatSizeThreshold_ = fallbackToCpSatSizeThreshold_;
11411 }
11412 if (((from_bitField1_ & 0x00000400) != 0)) {
11413 result.continuousSchedulingSolver_ = continuousSchedulingSolver_;
11414 }
11415 if (((from_bitField1_ & 0x00000800) != 0)) {
11416 result.mixedIntegerSchedulingSolver_ = mixedIntegerSchedulingSolver_;
11417 }
11418 if (((from_bitField1_ & 0x00001000) != 0)) {
11419 result.disableSchedulingBewareThisMayDegradePerformance_ = disableSchedulingBewareThisMayDegradePerformance_;
11420 to_bitField0_ |= 0x00000004;
11421 }
11422 if (((from_bitField1_ & 0x00002000) != 0)) {
11423 result.optimizationStep_ = optimizationStep_;
11424 }
11425 if (((from_bitField1_ & 0x00004000) != 0)) {
11426 result.numberOfSolutionsToCollect_ = numberOfSolutionsToCollect_;
11427 }
11428 if (((from_bitField1_ & 0x00008000) != 0)) {
11429 result.solutionLimit_ = solutionLimit_;
11430 }
11431 if (((from_bitField1_ & 0x00010000) != 0)) {
11432 result.timeLimit_ = timeLimitBuilder_ == null
11433 ? timeLimit_
11434 : timeLimitBuilder_.build();
11435 to_bitField0_ |= 0x00000008;
11436 }
11437 if (((from_bitField1_ & 0x00020000) != 0)) {
11438 result.lnsTimeLimit_ = lnsTimeLimitBuilder_ == null
11439 ? lnsTimeLimit_
11440 : lnsTimeLimitBuilder_.build();
11441 to_bitField0_ |= 0x00000010;
11442 }
11443 if (((from_bitField1_ & 0x00040000) != 0)) {
11444 result.secondaryLsTimeLimitRatio_ = secondaryLsTimeLimitRatio_;
11445 }
11446 if (((from_bitField1_ & 0x00080000) != 0)) {
11447 result.improvementLimitParameters_ = improvementLimitParametersBuilder_ == null
11448 ? improvementLimitParameters_
11449 : improvementLimitParametersBuilder_.build();
11450 to_bitField0_ |= 0x00000020;
11451 }
11452 if (((from_bitField1_ & 0x00100000) != 0)) {
11453 result.useFullPropagation_ = useFullPropagation_;
11454 }
11455 if (((from_bitField1_ & 0x00200000) != 0)) {
11456 result.logSearch_ = logSearch_;
11457 }
11458 if (((from_bitField1_ & 0x00400000) != 0)) {
11459 result.logCostScalingFactor_ = logCostScalingFactor_;
11460 }
11461 if (((from_bitField1_ & 0x00800000) != 0)) {
11462 result.logCostOffset_ = logCostOffset_;
11463 }
11464 if (((from_bitField1_ & 0x01000000) != 0)) {
11465 result.logTag_ = logTag_;
11466 }
11467 if (((from_bitField1_ & 0x02000000) != 0)) {
11468 result.useIteratedLocalSearch_ = useIteratedLocalSearch_;
11469 }
11470 if (((from_bitField1_ & 0x04000000) != 0)) {
11471 result.iteratedLocalSearchParameters_ = iteratedLocalSearchParametersBuilder_ == null
11472 ? iteratedLocalSearchParameters_
11473 : iteratedLocalSearchParametersBuilder_.build();
11474 to_bitField0_ |= 0x00000040;
11475 }
11476 result.bitField0_ |= to_bitField0_;
11477 }
11478
11479 @java.lang.Override
11480 public Builder mergeFrom(com.google.protobuf.Message other) {
11481 if (other instanceof com.google.ortools.constraintsolver.RoutingSearchParameters) {
11482 return mergeFrom((com.google.ortools.constraintsolver.RoutingSearchParameters)other);
11483 } else {
11484 super.mergeFrom(other);
11485 return this;
11486 }
11487 }
11488
11489 public Builder mergeFrom(com.google.ortools.constraintsolver.RoutingSearchParameters other) {
11490 if (other == com.google.ortools.constraintsolver.RoutingSearchParameters.getDefaultInstance()) return this;
11491 if (other.firstSolutionStrategy_ != 0) {
11492 setFirstSolutionStrategyValue(other.getFirstSolutionStrategyValue());
11493 }
11494 if (other.getUseUnfilteredFirstSolutionStrategy() != false) {
11495 setUseUnfilteredFirstSolutionStrategy(other.getUseUnfilteredFirstSolutionStrategy());
11496 }
11497 if (java.lang.Double.doubleToRawLongBits(other.getSavingsNeighborsRatio()) != 0) {
11498 setSavingsNeighborsRatio(other.getSavingsNeighborsRatio());
11499 }
11500 if (java.lang.Double.doubleToRawLongBits(other.getSavingsMaxMemoryUsageBytes()) != 0) {
11501 setSavingsMaxMemoryUsageBytes(other.getSavingsMaxMemoryUsageBytes());
11502 }
11503 if (other.getSavingsAddReverseArcs() != false) {
11504 setSavingsAddReverseArcs(other.getSavingsAddReverseArcs());
11505 }
11506 if (java.lang.Double.doubleToRawLongBits(other.getSavingsArcCoefficient()) != 0) {
11507 setSavingsArcCoefficient(other.getSavingsArcCoefficient());
11508 }
11509 if (java.lang.Double.doubleToRawLongBits(other.getCheapestInsertionFarthestSeedsRatio()) != 0) {
11510 setCheapestInsertionFarthestSeedsRatio(other.getCheapestInsertionFarthestSeedsRatio());
11511 }
11512 if (java.lang.Double.doubleToRawLongBits(other.getCheapestInsertionFirstSolutionNeighborsRatio()) != 0) {
11513 setCheapestInsertionFirstSolutionNeighborsRatio(other.getCheapestInsertionFirstSolutionNeighborsRatio());
11514 }
11515 if (other.getCheapestInsertionFirstSolutionMinNeighbors() != 0) {
11516 setCheapestInsertionFirstSolutionMinNeighbors(other.getCheapestInsertionFirstSolutionMinNeighbors());
11517 }
11518 if (java.lang.Double.doubleToRawLongBits(other.getCheapestInsertionLsOperatorNeighborsRatio()) != 0) {
11519 setCheapestInsertionLsOperatorNeighborsRatio(other.getCheapestInsertionLsOperatorNeighborsRatio());
11520 }
11521 if (other.getCheapestInsertionLsOperatorMinNeighbors() != 0) {
11522 setCheapestInsertionLsOperatorMinNeighbors(other.getCheapestInsertionLsOperatorMinNeighbors());
11523 }
11524 if (other.getCheapestInsertionFirstSolutionUseNeighborsRatioForInitialization() != false) {
11525 setCheapestInsertionFirstSolutionUseNeighborsRatioForInitialization(other.getCheapestInsertionFirstSolutionUseNeighborsRatioForInitialization());
11526 }
11527 if (other.getCheapestInsertionAddUnperformedEntries() != false) {
11528 setCheapestInsertionAddUnperformedEntries(other.getCheapestInsertionAddUnperformedEntries());
11529 }
11530 if (other.localCheapestInsertionPickupDeliveryStrategy_ != 0) {
11531 setLocalCheapestInsertionPickupDeliveryStrategyValue(other.getLocalCheapestInsertionPickupDeliveryStrategyValue());
11532 }
11533 if (other.localCheapestCostInsertionPickupDeliveryStrategy_ != 0) {
11534 setLocalCheapestCostInsertionPickupDeliveryStrategyValue(other.getLocalCheapestCostInsertionPickupDeliveryStrategyValue());
11535 }
11536 if (!other.localCheapestInsertionSortingProperties_.isEmpty()) {
11537 if (localCheapestInsertionSortingProperties_.isEmpty()) {
11538 localCheapestInsertionSortingProperties_ = other.localCheapestInsertionSortingProperties_;
11539 localCheapestInsertionSortingProperties_.makeImmutable();
11540 bitField0_ |= 0x00008000;
11541 } else {
11542 ensureLocalCheapestInsertionSortingPropertiesIsMutable();
11543 localCheapestInsertionSortingProperties_.addAll(other.localCheapestInsertionSortingProperties_);
11544 }
11545 onChanged();
11546 }
11547 if (other.getChristofidesUseMinimumMatching() != false) {
11548 setChristofidesUseMinimumMatching(other.getChristofidesUseMinimumMatching());
11549 }
11550 if (other.getFirstSolutionOptimizationPeriod() != 0) {
11551 setFirstSolutionOptimizationPeriod(other.getFirstSolutionOptimizationPeriod());
11552 }
11553 if (other.hasLocalSearchOperators()) {
11554 mergeLocalSearchOperators(other.getLocalSearchOperators());
11555 }
11556 if (java.lang.Double.doubleToRawLongBits(other.getLsOperatorNeighborsRatio()) != 0) {
11557 setLsOperatorNeighborsRatio(other.getLsOperatorNeighborsRatio());
11558 }
11559 if (other.getLsOperatorMinNeighbors() != 0) {
11560 setLsOperatorMinNeighbors(other.getLsOperatorMinNeighbors());
11561 }
11562 if (other.getUseMultiArmedBanditConcatenateOperators() != false) {
11563 setUseMultiArmedBanditConcatenateOperators(other.getUseMultiArmedBanditConcatenateOperators());
11564 }
11565 if (java.lang.Double.doubleToRawLongBits(other.getMultiArmedBanditCompoundOperatorMemoryCoefficient()) != 0) {
11566 setMultiArmedBanditCompoundOperatorMemoryCoefficient(other.getMultiArmedBanditCompoundOperatorMemoryCoefficient());
11567 }
11568 if (java.lang.Double.doubleToRawLongBits(other.getMultiArmedBanditCompoundOperatorExplorationCoefficient()) != 0) {
11569 setMultiArmedBanditCompoundOperatorExplorationCoefficient(other.getMultiArmedBanditCompoundOperatorExplorationCoefficient());
11570 }
11571 if (other.getMaxSwapActiveChainSize() != 0) {
11572 setMaxSwapActiveChainSize(other.getMaxSwapActiveChainSize());
11573 }
11574 if (other.getRelocateExpensiveChainNumArcsToConsider() != 0) {
11575 setRelocateExpensiveChainNumArcsToConsider(other.getRelocateExpensiveChainNumArcsToConsider());
11576 }
11577 if (other.getHeuristicExpensiveChainLnsNumArcsToConsider() != 0) {
11578 setHeuristicExpensiveChainLnsNumArcsToConsider(other.getHeuristicExpensiveChainLnsNumArcsToConsider());
11579 }
11580 if (other.getHeuristicCloseNodesLnsNumNodes() != 0) {
11581 setHeuristicCloseNodesLnsNumNodes(other.getHeuristicCloseNodesLnsNumNodes());
11582 }
11583 if (other.localSearchMetaheuristic_ != 0) {
11584 setLocalSearchMetaheuristicValue(other.getLocalSearchMetaheuristicValue());
11585 }
11586 if (!other.localSearchMetaheuristics_.isEmpty()) {
11587 if (localSearchMetaheuristics_.isEmpty()) {
11588 localSearchMetaheuristics_ = other.localSearchMetaheuristics_;
11589 localSearchMetaheuristics_.makeImmutable();
11590 bitField0_ |= 0x20000000;
11591 } else {
11592 ensureLocalSearchMetaheuristicsIsMutable();
11593 localSearchMetaheuristics_.addAll(other.localSearchMetaheuristics_);
11594 }
11595 onChanged();
11596 }
11597 if (other.getNumMaxLocalOptimaBeforeMetaheuristicSwitch() != 0) {
11598 setNumMaxLocalOptimaBeforeMetaheuristicSwitch(other.getNumMaxLocalOptimaBeforeMetaheuristicSwitch());
11599 }
11600 if (java.lang.Double.doubleToRawLongBits(other.getGuidedLocalSearchLambdaCoefficient()) != 0) {
11601 setGuidedLocalSearchLambdaCoefficient(other.getGuidedLocalSearchLambdaCoefficient());
11602 }
11603 if (other.getGuidedLocalSearchResetPenaltiesOnNewBestSolution() != false) {
11604 setGuidedLocalSearchResetPenaltiesOnNewBestSolution(other.getGuidedLocalSearchResetPenaltiesOnNewBestSolution());
11605 }
11606 if (other.getGuidedLocalSearchPenalizeWithVehicleClasses() != false) {
11607 setGuidedLocalSearchPenalizeWithVehicleClasses(other.getGuidedLocalSearchPenalizeWithVehicleClasses());
11608 }
11609 if (other.getUseGuidedLocalSearchPenaltiesInLocalSearchOperators() != false) {
11610 setUseGuidedLocalSearchPenaltiesInLocalSearchOperators(other.getUseGuidedLocalSearchPenaltiesInLocalSearchOperators());
11611 }
11612 if (other.getUseDepthFirstSearch() != false) {
11613 setUseDepthFirstSearch(other.getUseDepthFirstSearch());
11614 }
11615 if (other.useCp_ != 0) {
11616 setUseCpValue(other.getUseCpValue());
11617 }
11618 if (other.useCpSat_ != 0) {
11619 setUseCpSatValue(other.getUseCpSatValue());
11620 }
11621 if (other.useGeneralizedCpSat_ != 0) {
11622 setUseGeneralizedCpSatValue(other.getUseGeneralizedCpSatValue());
11623 }
11624 if (other.hasSatParameters()) {
11625 mergeSatParameters(other.getSatParameters());
11626 }
11627 if (other.getReportIntermediateCpSatSolutions() != false) {
11628 setReportIntermediateCpSatSolutions(other.getReportIntermediateCpSatSolutions());
11629 }
11630 if (other.getFallbackToCpSatSizeThreshold() != 0) {
11631 setFallbackToCpSatSizeThreshold(other.getFallbackToCpSatSizeThreshold());
11632 }
11633 if (other.continuousSchedulingSolver_ != 0) {
11634 setContinuousSchedulingSolverValue(other.getContinuousSchedulingSolverValue());
11635 }
11636 if (other.mixedIntegerSchedulingSolver_ != 0) {
11637 setMixedIntegerSchedulingSolverValue(other.getMixedIntegerSchedulingSolverValue());
11638 }
11639 if (other.hasDisableSchedulingBewareThisMayDegradePerformance()) {
11640 setDisableSchedulingBewareThisMayDegradePerformance(other.getDisableSchedulingBewareThisMayDegradePerformance());
11641 }
11642 if (java.lang.Double.doubleToRawLongBits(other.getOptimizationStep()) != 0) {
11643 setOptimizationStep(other.getOptimizationStep());
11644 }
11645 if (other.getNumberOfSolutionsToCollect() != 0) {
11646 setNumberOfSolutionsToCollect(other.getNumberOfSolutionsToCollect());
11647 }
11648 if (other.getSolutionLimit() != 0L) {
11649 setSolutionLimit(other.getSolutionLimit());
11650 }
11651 if (other.hasTimeLimit()) {
11652 mergeTimeLimit(other.getTimeLimit());
11653 }
11654 if (other.hasLnsTimeLimit()) {
11655 mergeLnsTimeLimit(other.getLnsTimeLimit());
11656 }
11657 if (java.lang.Double.doubleToRawLongBits(other.getSecondaryLsTimeLimitRatio()) != 0) {
11658 setSecondaryLsTimeLimitRatio(other.getSecondaryLsTimeLimitRatio());
11659 }
11660 if (other.hasImprovementLimitParameters()) {
11661 mergeImprovementLimitParameters(other.getImprovementLimitParameters());
11662 }
11663 if (other.getUseFullPropagation() != false) {
11664 setUseFullPropagation(other.getUseFullPropagation());
11665 }
11666 if (other.getLogSearch() != false) {
11667 setLogSearch(other.getLogSearch());
11668 }
11669 if (java.lang.Double.doubleToRawLongBits(other.getLogCostScalingFactor()) != 0) {
11670 setLogCostScalingFactor(other.getLogCostScalingFactor());
11671 }
11672 if (java.lang.Double.doubleToRawLongBits(other.getLogCostOffset()) != 0) {
11673 setLogCostOffset(other.getLogCostOffset());
11674 }
11675 if (!other.getLogTag().isEmpty()) {
11676 logTag_ = other.logTag_;
11677 bitField1_ |= 0x01000000;
11678 onChanged();
11679 }
11680 if (other.getUseIteratedLocalSearch() != false) {
11681 setUseIteratedLocalSearch(other.getUseIteratedLocalSearch());
11682 }
11683 if (other.hasIteratedLocalSearchParameters()) {
11684 mergeIteratedLocalSearchParameters(other.getIteratedLocalSearchParameters());
11685 }
11686 this.mergeUnknownFields(other.getUnknownFields());
11687 onChanged();
11688 return this;
11689 }
11690
11691 @java.lang.Override
11692 public final boolean isInitialized() {
11693 return true;
11694 }
11695
11696 @java.lang.Override
11697 public Builder mergeFrom(
11698 com.google.protobuf.CodedInputStream input,
11699 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
11700 throws java.io.IOException {
11701 if (extensionRegistry == null) {
11702 throw new java.lang.NullPointerException();
11703 }
11704 try {
11705 boolean done = false;
11706 while (!done) {
11707 int tag = input.readTag();
11708 switch (tag) {
11709 case 0:
11710 done = true;
11711 break;
11712 case 8: {
11713 firstSolutionStrategy_ = input.readEnum();
11714 bitField0_ |= 0x00000001;
11715 break;
11716 } // case 8
11717 case 16: {
11718 useUnfilteredFirstSolutionStrategy_ = input.readBool();
11719 bitField0_ |= 0x00000002;
11720 break;
11721 } // case 16
11722 case 26: {
11723 input.readMessage(
11724 internalGetLocalSearchOperatorsFieldBuilder().getBuilder(),
11725 extensionRegistry);
11726 bitField0_ |= 0x00040000;
11727 break;
11728 } // case 26
11729 case 32: {
11730 localSearchMetaheuristic_ = input.readEnum();
11731 bitField0_ |= 0x10000000;
11732 break;
11733 } // case 32
11734 case 41: {
11735 guidedLocalSearchLambdaCoefficient_ = input.readDouble();
11736 bitField0_ |= 0x80000000;
11737 break;
11738 } // case 41
11739 case 48: {
11740 useDepthFirstSearch_ = input.readBool();
11741 bitField1_ |= 0x00000008;
11742 break;
11743 } // case 48
11744 case 57: {
11745 optimizationStep_ = input.readDouble();
11746 bitField1_ |= 0x00002000;
11747 break;
11748 } // case 57
11749 case 64: {
11750 solutionLimit_ = input.readInt64();
11751 bitField1_ |= 0x00008000;
11752 break;
11753 } // case 64
11754 case 74: {
11755 input.readMessage(
11756 internalGetTimeLimitFieldBuilder().getBuilder(),
11757 extensionRegistry);
11758 bitField1_ |= 0x00010000;
11759 break;
11760 } // case 74
11761 case 82: {
11762 input.readMessage(
11763 internalGetLnsTimeLimitFieldBuilder().getBuilder(),
11764 extensionRegistry);
11765 bitField1_ |= 0x00020000;
11766 break;
11767 } // case 82
11768 case 88: {
11769 useFullPropagation_ = input.readBool();
11770 bitField1_ |= 0x00100000;
11771 break;
11772 } // case 88
11773 case 104: {
11774 logSearch_ = input.readBool();
11775 bitField1_ |= 0x00200000;
11776 break;
11777 } // case 104
11778 case 113: {
11779 savingsNeighborsRatio_ = input.readDouble();
11780 bitField0_ |= 0x00000004;
11781 break;
11782 } // case 113
11783 case 120: {
11784 savingsAddReverseArcs_ = input.readBool();
11785 bitField0_ |= 0x00000010;
11786 break;
11787 } // case 120
11788 case 129: {
11789 cheapestInsertionFarthestSeedsRatio_ = input.readDouble();
11790 bitField0_ |= 0x00000040;
11791 break;
11792 } // case 129
11793 case 136: {
11794 numberOfSolutionsToCollect_ = input.readInt32();
11795 bitField1_ |= 0x00004000;
11796 break;
11797 } // case 136
11798 case 145: {
11799 savingsArcCoefficient_ = input.readDouble();
11800 bitField0_ |= 0x00000020;
11801 break;
11802 } // case 145
11803 case 160: {
11804 relocateExpensiveChainNumArcsToConsider_ = input.readInt32();
11805 bitField0_ |= 0x02000000;
11806 break;
11807 } // case 160
11808 case 169: {
11809 cheapestInsertionFirstSolutionNeighborsRatio_ = input.readDouble();
11810 bitField0_ |= 0x00000080;
11811 break;
11812 } // case 169
11813 case 177: {
11814 logCostScalingFactor_ = input.readDouble();
11815 bitField1_ |= 0x00400000;
11816 break;
11817 } // case 177
11818 case 185: {
11819 savingsMaxMemoryUsageBytes_ = input.readDouble();
11820 bitField0_ |= 0x00000008;
11821 break;
11822 } // case 185
11823 case 216: {
11824 useCpSat_ = input.readEnum();
11825 bitField1_ |= 0x00000020;
11826 break;
11827 } // case 216
11828 case 224: {
11829 useCp_ = input.readEnum();
11830 bitField1_ |= 0x00000010;
11831 break;
11832 } // case 224
11833 case 233: {
11834 logCostOffset_ = input.readDouble();
11835 bitField1_ |= 0x00800000;
11836 break;
11837 } // case 233
11838 case 240: {
11839 christofidesUseMinimumMatching_ = input.readBool();
11840 bitField0_ |= 0x00010000;
11841 break;
11842 } // case 240
11843 case 249: {
11844 cheapestInsertionLsOperatorNeighborsRatio_ = input.readDouble();
11845 bitField0_ |= 0x00000200;
11846 break;
11847 } // case 249
11848 case 256: {
11849 heuristicExpensiveChainLnsNumArcsToConsider_ = input.readInt32();
11850 bitField0_ |= 0x04000000;
11851 break;
11852 } // case 256
11853 case 264: {
11854 continuousSchedulingSolver_ = input.readEnum();
11855 bitField1_ |= 0x00000400;
11856 break;
11857 } // case 264
11858 case 272: {
11859 mixedIntegerSchedulingSolver_ = input.readEnum();
11860 bitField1_ |= 0x00000800;
11861 break;
11862 } // case 272
11863 case 280: {
11864 heuristicCloseNodesLnsNumNodes_ = input.readInt32();
11865 bitField0_ |= 0x08000000;
11866 break;
11867 } // case 280
11868 case 290: {
11869 logTag_ = input.readStringRequireUtf8();
11870 bitField1_ |= 0x01000000;
11871 break;
11872 } // case 290
11873 case 298: {
11874 input.readMessage(
11875 internalGetImprovementLimitParametersFieldBuilder().getBuilder(),
11876 extensionRegistry);
11877 bitField1_ |= 0x00080000;
11878 break;
11879 } // case 298
11880 case 320: {
11881 cheapestInsertionAddUnperformedEntries_ = input.readBool();
11882 bitField0_ |= 0x00001000;
11883 break;
11884 } // case 320
11885 case 328: {
11886 useMultiArmedBanditConcatenateOperators_ = input.readBool();
11887 bitField0_ |= 0x00200000;
11888 break;
11889 } // case 328
11890 case 337: {
11891 multiArmedBanditCompoundOperatorMemoryCoefficient_ = input.readDouble();
11892 bitField0_ |= 0x00400000;
11893 break;
11894 } // case 337
11895 case 345: {
11896 multiArmedBanditCompoundOperatorExplorationCoefficient_ = input.readDouble();
11897 bitField0_ |= 0x00800000;
11898 break;
11899 } // case 345
11900 case 352: {
11901 cheapestInsertionFirstSolutionMinNeighbors_ = input.readInt32();
11902 bitField0_ |= 0x00000100;
11903 break;
11904 } // case 352
11905 case 360: {
11906 cheapestInsertionLsOperatorMinNeighbors_ = input.readInt32();
11907 bitField0_ |= 0x00000400;
11908 break;
11909 } // case 360
11910 case 368: {
11911 cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_ = input.readBool();
11912 bitField0_ |= 0x00000800;
11913 break;
11914 } // case 368
11915 case 376: {
11916 useGeneralizedCpSat_ = input.readEnum();
11917 bitField1_ |= 0x00000040;
11918 break;
11919 } // case 376
11920 case 386: {
11921 input.readMessage(
11922 internalGetSatParametersFieldBuilder().getBuilder(),
11923 extensionRegistry);
11924 bitField1_ |= 0x00000080;
11925 break;
11926 } // case 386
11927 case 392: {
11928 localCheapestInsertionPickupDeliveryStrategy_ = input.readEnum();
11929 bitField0_ |= 0x00002000;
11930 break;
11931 } // case 392
11932 case 400: {
11933 disableSchedulingBewareThisMayDegradePerformance_ = input.readBool();
11934 bitField1_ |= 0x00001000;
11935 break;
11936 } // case 400
11937 case 408: {
11938 guidedLocalSearchResetPenaltiesOnNewBestSolution_ = input.readBool();
11939 bitField1_ |= 0x00000001;
11940 break;
11941 } // case 408
11942 case 416: {
11943 fallbackToCpSatSizeThreshold_ = input.readInt32();
11944 bitField1_ |= 0x00000200;
11945 break;
11946 } // case 416
11947 case 425: {
11948 lsOperatorNeighborsRatio_ = input.readDouble();
11949 bitField0_ |= 0x00080000;
11950 break;
11951 } // case 425
11952 case 432: {
11953 lsOperatorMinNeighbors_ = input.readInt32();
11954 bitField0_ |= 0x00100000;
11955 break;
11956 } // case 432
11957 case 440: {
11958 localCheapestCostInsertionPickupDeliveryStrategy_ = input.readEnum();
11959 bitField0_ |= 0x00004000;
11960 break;
11961 } // case 440
11962 case 448: {
11963 reportIntermediateCpSatSolutions_ = input.readBool();
11964 bitField1_ |= 0x00000100;
11965 break;
11966 } // case 448
11967 case 457: {
11968 secondaryLsTimeLimitRatio_ = input.readDouble();
11969 bitField1_ |= 0x00040000;
11970 break;
11971 } // case 457
11972 case 464: {
11973 useIteratedLocalSearch_ = input.readBool();
11974 bitField1_ |= 0x02000000;
11975 break;
11976 } // case 464
11977 case 472: {
11978 firstSolutionOptimizationPeriod_ = input.readInt32();
11979 bitField0_ |= 0x00020000;
11980 break;
11981 } // case 472
11982 case 482: {
11983 input.readMessage(
11984 internalGetIteratedLocalSearchParametersFieldBuilder().getBuilder(),
11985 extensionRegistry);
11986 bitField1_ |= 0x04000000;
11987 break;
11988 } // case 482
11989 case 488: {
11990 guidedLocalSearchPenalizeWithVehicleClasses_ = input.readBool();
11991 bitField1_ |= 0x00000002;
11992 break;
11993 } // case 488
11994 case 496: {
11995 useGuidedLocalSearchPenaltiesInLocalSearchOperators_ = input.readBool();
11996 bitField1_ |= 0x00000004;
11997 break;
11998 } // case 496
11999 case 504: {
12000 int tmpRaw = input.readEnum();
12001 ensureLocalSearchMetaheuristicsIsMutable();
12002 localSearchMetaheuristics_.addInt(tmpRaw);
12003 break;
12004 } // case 504
12005 case 506: {
12006 int length = input.readRawVarint32();
12007 int limit = input.pushLimit(length);
12008 ensureLocalSearchMetaheuristicsIsMutable();
12009 while (input.getBytesUntilLimit() > 0) {
12010 localSearchMetaheuristics_.addInt(input.readEnum());
12011 }
12012 input.popLimit(limit);
12013 break;
12014 } // case 506
12015 case 512: {
12016 numMaxLocalOptimaBeforeMetaheuristicSwitch_ = input.readInt32();
12017 bitField0_ |= 0x40000000;
12018 break;
12019 } // case 512
12020 case 528: {
12021 maxSwapActiveChainSize_ = input.readInt32();
12022 bitField0_ |= 0x01000000;
12023 break;
12024 } // case 528
12025 case 536: {
12026 int tmpRaw = input.readEnum();
12027 ensureLocalCheapestInsertionSortingPropertiesIsMutable();
12028 localCheapestInsertionSortingProperties_.addInt(tmpRaw);
12029 break;
12030 } // case 536
12031 case 538: {
12032 int length = input.readRawVarint32();
12033 int limit = input.pushLimit(length);
12034 ensureLocalCheapestInsertionSortingPropertiesIsMutable();
12035 while (input.getBytesUntilLimit() > 0) {
12036 localCheapestInsertionSortingProperties_.addInt(input.readEnum());
12037 }
12038 input.popLimit(limit);
12039 break;
12040 } // case 538
12041 default: {
12042 if (!super.parseUnknownField(input, extensionRegistry, tag)) {
12043 done = true; // was an endgroup tag
12044 }
12045 break;
12046 } // default:
12047 } // switch (tag)
12048 } // while (!done)
12049 } catch (com.google.protobuf.InvalidProtocolBufferException e) {
12050 throw e.unwrapIOException();
12051 } finally {
12052 onChanged();
12053 } // finally
12054 return this;
12055 }
12056 private int bitField0_;
12057 private int bitField1_;
12058
12059 private int firstSolutionStrategy_ = 0;
12068 @java.lang.Override public int getFirstSolutionStrategyValue() {
12069 return firstSolutionStrategy_;
12070 }
12071
12080 public Builder setFirstSolutionStrategyValue(int value) {
12081 firstSolutionStrategy_ = value;
12082 bitField0_ |= 0x00000001;
12083 onChanged();
12084 return this;
12085 }
12086
12094 @java.lang.Override
12096 com.google.ortools.constraintsolver.FirstSolutionStrategy.Value result = com.google.ortools.constraintsolver.FirstSolutionStrategy.Value.forNumber(firstSolutionStrategy_);
12098 }
12099
12108 public Builder setFirstSolutionStrategy(com.google.ortools.constraintsolver.FirstSolutionStrategy.Value value) {
12109 if (value == null) { throw new NullPointerException(); }
12110 bitField0_ |= 0x00000001;
12111 firstSolutionStrategy_ = value.getNumber();
12112 onChanged();
12113 return this;
12114 }
12115
12124 bitField0_ = (bitField0_ & ~0x00000001);
12125 firstSolutionStrategy_ = 0;
12126 onChanged();
12127 return this;
12128 }
12129
12130 private boolean useUnfilteredFirstSolutionStrategy_ ;
12142 @java.lang.Override
12144 return useUnfilteredFirstSolutionStrategy_;
12145 }
12146
12158 public Builder setUseUnfilteredFirstSolutionStrategy(boolean value) {
12159
12160 useUnfilteredFirstSolutionStrategy_ = value;
12161 bitField0_ |= 0x00000002;
12162 onChanged();
12163 return this;
12164 }
12165
12177 bitField0_ = (bitField0_ & ~0x00000002);
12178 useUnfilteredFirstSolutionStrategy_ = false;
12179 onChanged();
12180 return this;
12181 }
12182
12183 private double savingsNeighborsRatio_ ;
12194 @java.lang.Override
12196 return savingsNeighborsRatio_;
12197 }
12198
12209 public Builder setSavingsNeighborsRatio(double value) {
12210
12211 savingsNeighborsRatio_ = value;
12212 bitField0_ |= 0x00000004;
12213 onChanged();
12214 return this;
12215 }
12216
12227 bitField0_ = (bitField0_ & ~0x00000004);
12228 savingsNeighborsRatio_ = 0D;
12229 onChanged();
12230 return this;
12231 }
12232
12233 private double savingsMaxMemoryUsageBytes_ ;
12247 @java.lang.Override
12249 return savingsMaxMemoryUsageBytes_;
12250 }
12251
12265 public Builder setSavingsMaxMemoryUsageBytes(double value) {
12266
12267 savingsMaxMemoryUsageBytes_ = value;
12268 bitField0_ |= 0x00000008;
12269 onChanged();
12270 return this;
12271 }
12272
12286 bitField0_ = (bitField0_ & ~0x00000008);
12287 savingsMaxMemoryUsageBytes_ = 0D;
12288 onChanged();
12289 return this;
12290 }
12291
12292 private boolean savingsAddReverseArcs_ ;
12302 @java.lang.Override
12303 public boolean getSavingsAddReverseArcs() {
12304 return savingsAddReverseArcs_;
12305 }
12306
12316 public Builder setSavingsAddReverseArcs(boolean value) {
12317
12318 savingsAddReverseArcs_ = value;
12319 bitField0_ |= 0x00000010;
12320 onChanged();
12321 return this;
12322 }
12323
12333 bitField0_ = (bitField0_ & ~0x00000010);
12334 savingsAddReverseArcs_ = false;
12335 onChanged();
12336 return this;
12337 }
12338
12339 private double savingsArcCoefficient_ ;
12352 @java.lang.Override
12354 return savingsArcCoefficient_;
12355 }
12356
12369 public Builder setSavingsArcCoefficient(double value) {
12370
12371 savingsArcCoefficient_ = value;
12372 bitField0_ |= 0x00000020;
12373 onChanged();
12374 return this;
12375 }
12376
12389 bitField0_ = (bitField0_ & ~0x00000020);
12390 savingsArcCoefficient_ = 0D;
12391 onChanged();
12392 return this;
12393 }
12394
12395 private double cheapestInsertionFarthestSeedsRatio_ ;
12406 @java.lang.Override
12408 return cheapestInsertionFarthestSeedsRatio_;
12409 }
12410
12421 public Builder setCheapestInsertionFarthestSeedsRatio(double value) {
12422
12423 cheapestInsertionFarthestSeedsRatio_ = value;
12424 bitField0_ |= 0x00000040;
12425 onChanged();
12426 return this;
12427 }
12428
12439 bitField0_ = (bitField0_ & ~0x00000040);
12440 cheapestInsertionFarthestSeedsRatio_ = 0D;
12441 onChanged();
12442 return this;
12443 }
12444
12445 private double cheapestInsertionFirstSolutionNeighborsRatio_ ;
12468 @java.lang.Override
12470 return cheapestInsertionFirstSolutionNeighborsRatio_;
12471 }
12472
12496
12497 cheapestInsertionFirstSolutionNeighborsRatio_ = value;
12498 bitField0_ |= 0x00000080;
12499 onChanged();
12500 return this;
12501 }
12502
12525 bitField0_ = (bitField0_ & ~0x00000080);
12526 cheapestInsertionFirstSolutionNeighborsRatio_ = 0D;
12527 onChanged();
12528 return this;
12529 }
12530
12531 private int cheapestInsertionFirstSolutionMinNeighbors_ ;
12536 @java.lang.Override
12538 return cheapestInsertionFirstSolutionMinNeighbors_;
12539 }
12540
12546
12547 cheapestInsertionFirstSolutionMinNeighbors_ = value;
12548 bitField0_ |= 0x00000100;
12549 onChanged();
12550 return this;
12551 }
12552
12557 bitField0_ = (bitField0_ & ~0x00000100);
12558 cheapestInsertionFirstSolutionMinNeighbors_ = 0;
12559 onChanged();
12560 return this;
12561 }
12562
12563 private double cheapestInsertionLsOperatorNeighborsRatio_ ;
12575 @java.lang.Override
12577 return cheapestInsertionLsOperatorNeighborsRatio_;
12578 }
12579
12592
12593 cheapestInsertionLsOperatorNeighborsRatio_ = value;
12594 bitField0_ |= 0x00000200;
12595 onChanged();
12596 return this;
12597 }
12598
12610 bitField0_ = (bitField0_ & ~0x00000200);
12611 cheapestInsertionLsOperatorNeighborsRatio_ = 0D;
12612 onChanged();
12613 return this;
12614 }
12615
12616 private int cheapestInsertionLsOperatorMinNeighbors_ ;
12621 @java.lang.Override
12623 return cheapestInsertionLsOperatorMinNeighbors_;
12624 }
12625
12631
12632 cheapestInsertionLsOperatorMinNeighbors_ = value;
12633 bitField0_ |= 0x00000400;
12634 onChanged();
12635 return this;
12636 }
12637
12642 bitField0_ = (bitField0_ & ~0x00000400);
12643 cheapestInsertionLsOperatorMinNeighbors_ = 0;
12644 onChanged();
12645 return this;
12646 }
12647
12648 private boolean cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_ ;
12658 @java.lang.Override
12660 return cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_;
12661 }
12662
12673
12674 cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_ = value;
12675 bitField0_ |= 0x00000800;
12676 onChanged();
12677 return this;
12678 }
12679
12689 bitField0_ = (bitField0_ & ~0x00000800);
12690 cheapestInsertionFirstSolutionUseNeighborsRatioForInitialization_ = false;
12691 onChanged();
12692 return this;
12693 }
12694
12695 private boolean cheapestInsertionAddUnperformedEntries_ ;
12705 @java.lang.Override
12707 return cheapestInsertionAddUnperformedEntries_;
12708 }
12709
12719 public Builder setCheapestInsertionAddUnperformedEntries(boolean value) {
12720
12721 cheapestInsertionAddUnperformedEntries_ = value;
12722 bitField0_ |= 0x00001000;
12723 onChanged();
12724 return this;
12725 }
12726
12736 bitField0_ = (bitField0_ & ~0x00001000);
12737 cheapestInsertionAddUnperformedEntries_ = false;
12738 onChanged();
12739 return this;
12740 }
12741
12742 private int localCheapestInsertionPickupDeliveryStrategy_ = 0;
12753 return localCheapestInsertionPickupDeliveryStrategy_;
12754 }
12755
12766 localCheapestInsertionPickupDeliveryStrategy_ = value;
12767 bitField0_ |= 0x00002000;
12768 onChanged();
12769 return this;
12770 }
12771
12780 @java.lang.Override
12782 com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy result = com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy.forNumber(localCheapestInsertionPickupDeliveryStrategy_);
12784 }
12785
12795 public Builder setLocalCheapestInsertionPickupDeliveryStrategy(com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy value) {
12796 if (value == null) { throw new NullPointerException(); }
12797 bitField0_ |= 0x00002000;
12798 localCheapestInsertionPickupDeliveryStrategy_ = value.getNumber();
12799 onChanged();
12800 return this;
12801 }
12802
12812 bitField0_ = (bitField0_ & ~0x00002000);
12813 localCheapestInsertionPickupDeliveryStrategy_ = 0;
12814 onChanged();
12815 return this;
12816 }
12817
12818 private int localCheapestCostInsertionPickupDeliveryStrategy_ = 0;
12829 return localCheapestCostInsertionPickupDeliveryStrategy_;
12830 }
12831
12842 localCheapestCostInsertionPickupDeliveryStrategy_ = value;
12843 bitField0_ |= 0x00004000;
12844 onChanged();
12845 return this;
12846 }
12847
12856 @java.lang.Override
12858 com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy result = com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy.forNumber(localCheapestCostInsertionPickupDeliveryStrategy_);
12860 }
12861
12871 public Builder setLocalCheapestCostInsertionPickupDeliveryStrategy(com.google.ortools.constraintsolver.RoutingSearchParameters.PairInsertionStrategy value) {
12872 if (value == null) { throw new NullPointerException(); }
12873 bitField0_ |= 0x00004000;
12874 localCheapestCostInsertionPickupDeliveryStrategy_ = value.getNumber();
12875 onChanged();
12876 return this;
12877 }
12878
12888 bitField0_ = (bitField0_ & ~0x00004000);
12889 localCheapestCostInsertionPickupDeliveryStrategy_ = 0;
12890 onChanged();
12891 return this;
12892 }
12893
12894 private com.google.protobuf.Internal.IntList localCheapestInsertionSortingProperties_ = emptyIntList();
12895 private void ensureLocalCheapestInsertionSortingPropertiesIsMutable() {
12896 if (!localCheapestInsertionSortingProperties_.isModifiable()) {
12897 localCheapestInsertionSortingProperties_ = makeMutableCopy(localCheapestInsertionSortingProperties_);
12898 }
12899 bitField0_ |= 0x00008000;
12900 }
12914 public java.util.List<com.google.ortools.constraintsolver.RoutingSearchParameters.InsertionSortingProperty> getLocalCheapestInsertionSortingPropertiesList() {
12915 return new com.google.protobuf.Internal.IntListAdapter<
12916 com.google.ortools.constraintsolver.RoutingSearchParameters.InsertionSortingProperty>(localCheapestInsertionSortingProperties_, localCheapestInsertionSortingProperties_converter_);
12917 }
12918
12932 return localCheapestInsertionSortingProperties_.size();
12933 }
12934
12949 return localCheapestInsertionSortingProperties_converter_.convert(localCheapestInsertionSortingProperties_.getInt(index));
12950 }
12951
12967 int index, com.google.ortools.constraintsolver.RoutingSearchParameters.InsertionSortingProperty value) {
12968 if (value == null) { throw new NullPointerException(); }
12969 ensureLocalCheapestInsertionSortingPropertiesIsMutable();
12970 localCheapestInsertionSortingProperties_.setInt(index, value.getNumber());
12971 onChanged();
12972 return this;
12973 }
12974
12988 public Builder addLocalCheapestInsertionSortingProperties(com.google.ortools.constraintsolver.RoutingSearchParameters.InsertionSortingProperty value) {
12989 if (value == null) { throw new NullPointerException(); }
12990 ensureLocalCheapestInsertionSortingPropertiesIsMutable();
12991 localCheapestInsertionSortingProperties_.addInt(value.getNumber());
12992 onChanged();
12993 return this;
12994 }
12995
13010 java.lang.Iterable<? extends com.google.ortools.constraintsolver.RoutingSearchParameters.InsertionSortingProperty> values) {
13011 ensureLocalCheapestInsertionSortingPropertiesIsMutable();
13012 for (com.google.ortools.constraintsolver.RoutingSearchParameters.InsertionSortingProperty value : values) {
13013 localCheapestInsertionSortingProperties_.addInt(value.getNumber());
13014 }
13015 onChanged();
13016 return this;
13017 }
13018
13032 localCheapestInsertionSortingProperties_ = emptyIntList();
13033 bitField0_ = (bitField0_ & ~0x00008000);
13034 onChanged();
13035 return this;
13036 }
13037
13050 public java.util.List<java.lang.Integer>
13052 localCheapestInsertionSortingProperties_.makeImmutable();
13053 return localCheapestInsertionSortingProperties_;
13054 }
13055
13070 return localCheapestInsertionSortingProperties_.getInt(index);
13071 }
13072
13088 int index, int value) {
13089 ensureLocalCheapestInsertionSortingPropertiesIsMutable();
13090 localCheapestInsertionSortingProperties_.setInt(index, value);
13091 onChanged();
13092 return this;
13093 }
13094
13109 ensureLocalCheapestInsertionSortingPropertiesIsMutable();
13110 localCheapestInsertionSortingProperties_.addInt(value);
13111 onChanged();
13112 return this;
13113 }
13114
13129 java.lang.Iterable<java.lang.Integer> values) {
13130 ensureLocalCheapestInsertionSortingPropertiesIsMutable();
13131 for (int value : values) {
13132 localCheapestInsertionSortingProperties_.addInt(value);
13133 }
13134 onChanged();
13135 return this;
13136 }
13137
13138 private boolean christofidesUseMinimumMatching_ ;
13148 @java.lang.Override
13150 return christofidesUseMinimumMatching_;
13151 }
13152
13162 public Builder setChristofidesUseMinimumMatching(boolean value) {
13163
13164 christofidesUseMinimumMatching_ = value;
13165 bitField0_ |= 0x00010000;
13166 onChanged();
13167 return this;
13168 }
13169
13179 bitField0_ = (bitField0_ & ~0x00010000);
13180 christofidesUseMinimumMatching_ = false;
13181 onChanged();
13182 return this;
13183 }
13184
13185 private int firstSolutionOptimizationPeriod_ ;
13200 @java.lang.Override
13202 return firstSolutionOptimizationPeriod_;
13203 }
13204
13219 public Builder setFirstSolutionOptimizationPeriod(int value) {
13220
13221 firstSolutionOptimizationPeriod_ = value;
13222 bitField0_ |= 0x00020000;
13223 onChanged();
13224 return this;
13225 }
13226
13241 bitField0_ = (bitField0_ & ~0x00020000);
13242 firstSolutionOptimizationPeriod_ = 0;
13243 onChanged();
13244 return this;
13245 }
13246
13248 private com.google.protobuf.SingleFieldBuilder<
13249 com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators, com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.Builder, com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder> localSearchOperatorsBuilder_;
13254 public boolean hasLocalSearchOperators() {
13255 return ((bitField0_ & 0x00040000) != 0);
13256 }
13257
13262 if (localSearchOperatorsBuilder_ == null) {
13263 return localSearchOperators_ == null ? com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.getDefaultInstance() : localSearchOperators_;
13264 } else {
13265 return localSearchOperatorsBuilder_.getMessage();
13266 }
13267 }
13268
13271 public Builder setLocalSearchOperators(com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators value) {
13272 if (localSearchOperatorsBuilder_ == null) {
13273 if (value == null) {
13274 throw new NullPointerException();
13275 }
13276 localSearchOperators_ = value;
13277 } else {
13278 localSearchOperatorsBuilder_.setMessage(value);
13279 }
13280 bitField0_ |= 0x00040000;
13281 onChanged();
13282 return this;
13283 }
13284
13288 com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.Builder builderForValue) {
13289 if (localSearchOperatorsBuilder_ == null) {
13290 localSearchOperators_ = builderForValue.build();
13291 } else {
13292 localSearchOperatorsBuilder_.setMessage(builderForValue.build());
13293 }
13294 bitField0_ |= 0x00040000;
13295 onChanged();
13296 return this;
13297 }
13298
13301 public Builder mergeLocalSearchOperators(com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators value) {
13302 if (localSearchOperatorsBuilder_ == null) {
13303 if (((bitField0_ & 0x00040000) != 0) &&
13304 localSearchOperators_ != null &&
13305 localSearchOperators_ != com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.getDefaultInstance()) {
13306 getLocalSearchOperatorsBuilder().mergeFrom(value);
13307 } else {
13308 localSearchOperators_ = value;
13309 }
13310 } else {
13311 localSearchOperatorsBuilder_.mergeFrom(value);
13312 }
13313 if (localSearchOperators_ != null) {
13314 bitField0_ |= 0x00040000;
13315 onChanged();
13316 }
13317 return this;
13318 }
13319
13322 public Builder clearLocalSearchOperators() {
13323 bitField0_ = (bitField0_ & ~0x00040000);
13324 localSearchOperators_ = null;
13325 if (localSearchOperatorsBuilder_ != null) {
13326 localSearchOperatorsBuilder_.dispose();
13327 localSearchOperatorsBuilder_ = null;
13328 }
13329 onChanged();
13330 return this;
13331 }
13332
13336 bitField0_ |= 0x00040000;
13337 onChanged();
13338 return internalGetLocalSearchOperatorsFieldBuilder().getBuilder();
13339 }
13340
13344 if (localSearchOperatorsBuilder_ != null) {
13345 return localSearchOperatorsBuilder_.getMessageOrBuilder();
13346 } else {
13347 return localSearchOperators_ == null ?
13348 com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.getDefaultInstance() : localSearchOperators_;
13349 }
13350 }
13351
13354 private com.google.protobuf.SingleFieldBuilder<
13355 com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators, com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.Builder, com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder>
13356 internalGetLocalSearchOperatorsFieldBuilder() {
13357 if (localSearchOperatorsBuilder_ == null) {
13358 localSearchOperatorsBuilder_ = new com.google.protobuf.SingleFieldBuilder<
13359 com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators, com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperators.Builder, com.google.ortools.constraintsolver.RoutingSearchParameters.LocalSearchNeighborhoodOperatorsOrBuilder>(
13361 getParentForChildren(),
13362 isClean());
13363 localSearchOperators_ = null;
13364 }
13365 return localSearchOperatorsBuilder_;
13366 }
13367
13368 private double lsOperatorNeighborsRatio_ ;
13379 @java.lang.Override
13381 return lsOperatorNeighborsRatio_;
13382 }
13383
13394 public Builder setLsOperatorNeighborsRatio(double value) {
13395
13396 lsOperatorNeighborsRatio_ = value;
13397 bitField0_ |= 0x00080000;
13398 onChanged();
13399 return this;
13400 }
13401
13412 bitField0_ = (bitField0_ & ~0x00080000);
13413 lsOperatorNeighborsRatio_ = 0D;
13414 onChanged();
13415 return this;
13416 }
13417
13418 private int lsOperatorMinNeighbors_ ;
13423 @java.lang.Override
13425 return lsOperatorMinNeighbors_;
13426 }
13427
13432 public Builder setLsOperatorMinNeighbors(int value) {
13433
13434 lsOperatorMinNeighbors_ = value;
13435 bitField0_ |= 0x00100000;
13436 onChanged();
13437 return this;
13438 }
13439
13444 bitField0_ = (bitField0_ & ~0x00100000);
13445 lsOperatorMinNeighbors_ = 0;
13446 onChanged();
13447 return this;
13448 }
13449
13450 private boolean useMultiArmedBanditConcatenateOperators_ ;
13461 @java.lang.Override
13463 return useMultiArmedBanditConcatenateOperators_;
13464 }
13465
13476 public Builder setUseMultiArmedBanditConcatenateOperators(boolean value) {
13477
13478 useMultiArmedBanditConcatenateOperators_ = value;
13479 bitField0_ |= 0x00200000;
13480 onChanged();
13481 return this;
13482 }
13483
13494 bitField0_ = (bitField0_ & ~0x00200000);
13495 useMultiArmedBanditConcatenateOperators_ = false;
13496 onChanged();
13497 return this;
13498 }
13499
13500 private double multiArmedBanditCompoundOperatorMemoryCoefficient_ ;
13512 @java.lang.Override
13514 return multiArmedBanditCompoundOperatorMemoryCoefficient_;
13515 }
13516
13529
13530 multiArmedBanditCompoundOperatorMemoryCoefficient_ = value;
13531 bitField0_ |= 0x00400000;
13532 onChanged();
13533 return this;
13534 }
13535
13547 bitField0_ = (bitField0_ & ~0x00400000);
13548 multiArmedBanditCompoundOperatorMemoryCoefficient_ = 0D;
13549 onChanged();
13550 return this;
13551 }
13552
13553 private double multiArmedBanditCompoundOperatorExplorationCoefficient_ ;
13564 @java.lang.Override
13566 return multiArmedBanditCompoundOperatorExplorationCoefficient_;
13567 }
13568
13580
13581 multiArmedBanditCompoundOperatorExplorationCoefficient_ = value;
13582 bitField0_ |= 0x00800000;
13583 onChanged();
13584 return this;
13585 }
13586
13597 bitField0_ = (bitField0_ & ~0x00800000);
13598 multiArmedBanditCompoundOperatorExplorationCoefficient_ = 0D;
13599 onChanged();
13600 return this;
13601 }
13602
13603 private int maxSwapActiveChainSize_ ;
13612 @java.lang.Override
13614 return maxSwapActiveChainSize_;
13615 }
13616
13625 public Builder setMaxSwapActiveChainSize(int value) {
13626
13627 maxSwapActiveChainSize_ = value;
13628 bitField0_ |= 0x01000000;
13629 onChanged();
13630 return this;
13631 }
13632
13641 bitField0_ = (bitField0_ & ~0x01000000);
13642 maxSwapActiveChainSize_ = 0;
13643 onChanged();
13644 return this;
13645 }
13646
13647 private int relocateExpensiveChainNumArcsToConsider_ ;
13662 @java.lang.Override
13664 return relocateExpensiveChainNumArcsToConsider_;
13665 }
13666
13682
13683 relocateExpensiveChainNumArcsToConsider_ = value;
13684 bitField0_ |= 0x02000000;
13685 onChanged();
13686 return this;
13687 }
13688
13703 bitField0_ = (bitField0_ & ~0x02000000);
13704 relocateExpensiveChainNumArcsToConsider_ = 0;
13705 onChanged();
13706 return this;
13707 }
13708
13709 private int heuristicExpensiveChainLnsNumArcsToConsider_ ;
13719 @java.lang.Override
13721 return heuristicExpensiveChainLnsNumArcsToConsider_;
13722 }
13723
13734
13735 heuristicExpensiveChainLnsNumArcsToConsider_ = value;
13736 bitField0_ |= 0x04000000;
13737 onChanged();
13738 return this;
13739 }
13740
13750 bitField0_ = (bitField0_ & ~0x04000000);
13751 heuristicExpensiveChainLnsNumArcsToConsider_ = 0;
13752 onChanged();
13753 return this;
13754 }
13755
13756 private int heuristicCloseNodesLnsNumNodes_ ;
13766 @java.lang.Override
13768 return heuristicCloseNodesLnsNumNodes_;
13769 }
13770
13780 public Builder setHeuristicCloseNodesLnsNumNodes(int value) {
13781
13782 heuristicCloseNodesLnsNumNodes_ = value;
13783 bitField0_ |= 0x08000000;
13784 onChanged();
13785 return this;
13786 }
13787
13797 bitField0_ = (bitField0_ & ~0x08000000);
13798 heuristicCloseNodesLnsNumNodes_ = 0;
13799 onChanged();
13800 return this;
13801 }
13802
13803 private int localSearchMetaheuristic_ = 0;
13812 @java.lang.Override public int getLocalSearchMetaheuristicValue() {
13813 return localSearchMetaheuristic_;
13814 }
13815
13824 public Builder setLocalSearchMetaheuristicValue(int value) {
13825 localSearchMetaheuristic_ = value;
13826 bitField0_ |= 0x10000000;
13827 onChanged();
13828 return this;
13829 }
13830
13838 @java.lang.Override
13840 com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value result = com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value.forNumber(localSearchMetaheuristic_);
13842 }
13843
13852 public Builder setLocalSearchMetaheuristic(com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value value) {
13853 if (value == null) { throw new NullPointerException(); }
13854 bitField0_ |= 0x10000000;
13855 localSearchMetaheuristic_ = value.getNumber();
13856 onChanged();
13857 return this;
13858 }
13859
13868 bitField0_ = (bitField0_ & ~0x10000000);
13869 localSearchMetaheuristic_ = 0;
13870 onChanged();
13871 return this;
13872 }
13873
13874 private com.google.protobuf.Internal.IntList localSearchMetaheuristics_ = emptyIntList();
13875 private void ensureLocalSearchMetaheuristicsIsMutable() {
13876 if (!localSearchMetaheuristics_.isModifiable()) {
13877 localSearchMetaheuristics_ = makeMutableCopy(localSearchMetaheuristics_);
13878 }
13879 bitField0_ |= 0x20000000;
13880 }
13892 public java.util.List<com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value> getLocalSearchMetaheuristicsList() {
13893 return new com.google.protobuf.Internal.IntListAdapter<
13894 com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value>(localSearchMetaheuristics_, localSearchMetaheuristics_converter_);
13895 }
13896
13908 return localSearchMetaheuristics_.size();
13909 }
13910
13923 return localSearchMetaheuristics_converter_.convert(localSearchMetaheuristics_.getInt(index));
13924 }
13925
13939 int index, com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value value) {
13940 if (value == null) { throw new NullPointerException(); }
13941 ensureLocalSearchMetaheuristicsIsMutable();
13942 localSearchMetaheuristics_.setInt(index, value.getNumber());
13943 onChanged();
13944 return this;
13945 }
13946
13958 public Builder addLocalSearchMetaheuristics(com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value value) {
13959 if (value == null) { throw new NullPointerException(); }
13960 ensureLocalSearchMetaheuristicsIsMutable();
13961 localSearchMetaheuristics_.addInt(value.getNumber());
13962 onChanged();
13963 return this;
13964 }
13965
13978 java.lang.Iterable<? extends com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value> values) {
13979 ensureLocalSearchMetaheuristicsIsMutable();
13980 for (com.google.ortools.constraintsolver.LocalSearchMetaheuristic.Value value : values) {
13981 localSearchMetaheuristics_.addInt(value.getNumber());
13982 }
13983 onChanged();
13984 return this;
13985 }
13986
13998 localSearchMetaheuristics_ = emptyIntList();
13999 bitField0_ = (bitField0_ & ~0x20000000);
14000 onChanged();
14001 return this;
14002 }
14003
14014 public java.util.List<java.lang.Integer>
14016 localSearchMetaheuristics_.makeImmutable();
14017 return localSearchMetaheuristics_;
14018 }
14019
14032 return localSearchMetaheuristics_.getInt(index);
14033 }
14034
14048 int index, int value) {
14049 ensureLocalSearchMetaheuristicsIsMutable();
14050 localSearchMetaheuristics_.setInt(index, value);
14051 onChanged();
14052 return this;
14053 }
14054
14066 public Builder addLocalSearchMetaheuristicsValue(int value) {
14067 ensureLocalSearchMetaheuristicsIsMutable();
14068 localSearchMetaheuristics_.addInt(value);
14069 onChanged();
14070 return this;
14071 }
14072
14085 java.lang.Iterable<java.lang.Integer> values) {
14086 ensureLocalSearchMetaheuristicsIsMutable();
14087 for (int value : values) {
14088 localSearchMetaheuristics_.addInt(value);
14089 }
14090 onChanged();
14091 return this;
14092 }
14093
14094 private int numMaxLocalOptimaBeforeMetaheuristicSwitch_ ;
14099 @java.lang.Override
14101 return numMaxLocalOptimaBeforeMetaheuristicSwitch_;
14102 }
14103
14109
14110 numMaxLocalOptimaBeforeMetaheuristicSwitch_ = value;
14111 bitField0_ |= 0x40000000;
14112 onChanged();
14113 return this;
14114 }
14115
14120 bitField0_ = (bitField0_ & ~0x40000000);
14121 numMaxLocalOptimaBeforeMetaheuristicSwitch_ = 0;
14122 onChanged();
14123 return this;
14124 }
14125
14126 private double guidedLocalSearchLambdaCoefficient_ ;
14138 @java.lang.Override
14140 return guidedLocalSearchLambdaCoefficient_;
14141 }
14142
14154 public Builder setGuidedLocalSearchLambdaCoefficient(double value) {
14155
14156 guidedLocalSearchLambdaCoefficient_ = value;
14157 bitField0_ |= 0x80000000;
14158 onChanged();
14159 return this;
14160 }
14161
14173 bitField0_ = (bitField0_ & ~0x80000000);
14174 guidedLocalSearchLambdaCoefficient_ = 0D;
14175 onChanged();
14176 return this;
14177 }
14178
14179 private boolean guidedLocalSearchResetPenaltiesOnNewBestSolution_ ;
14189 @java.lang.Override
14191 return guidedLocalSearchResetPenaltiesOnNewBestSolution_;
14192 }
14193
14204
14205 guidedLocalSearchResetPenaltiesOnNewBestSolution_ = value;
14206 bitField1_ |= 0x00000001;
14207 onChanged();
14208 return this;
14209 }
14210
14220 bitField1_ = (bitField1_ & ~0x00000001);
14221 guidedLocalSearchResetPenaltiesOnNewBestSolution_ = false;
14222 onChanged();
14223 return this;
14224 }
14225
14226 private boolean guidedLocalSearchPenalizeWithVehicleClasses_ ;
14237 @java.lang.Override
14239 return guidedLocalSearchPenalizeWithVehicleClasses_;
14240 }
14241
14253
14254 guidedLocalSearchPenalizeWithVehicleClasses_ = value;
14255 bitField1_ |= 0x00000002;
14256 onChanged();
14257 return this;
14258 }
14259
14270 bitField1_ = (bitField1_ & ~0x00000002);
14271 guidedLocalSearchPenalizeWithVehicleClasses_ = false;
14272 onChanged();
14273 return this;
14274 }
14275
14276 private boolean useGuidedLocalSearchPenaltiesInLocalSearchOperators_ ;
14286 @java.lang.Override
14288 return useGuidedLocalSearchPenaltiesInLocalSearchOperators_;
14289 }
14290
14301
14302 useGuidedLocalSearchPenaltiesInLocalSearchOperators_ = value;
14303 bitField1_ |= 0x00000004;
14304 onChanged();
14305 return this;
14306 }
14307
14317 bitField1_ = (bitField1_ & ~0x00000004);
14318 useGuidedLocalSearchPenaltiesInLocalSearchOperators_ = false;
14319 onChanged();
14320 return this;
14321 }
14322
14323 private boolean useDepthFirstSearch_ ;
14335 @java.lang.Override
14336 public boolean getUseDepthFirstSearch() {
14337 return useDepthFirstSearch_;
14338 }
14339
14351 public Builder setUseDepthFirstSearch(boolean value) {
14352
14353 useDepthFirstSearch_ = value;
14354 bitField1_ |= 0x00000008;
14355 onChanged();
14356 return this;
14357 }
14358
14369 public Builder clearUseDepthFirstSearch() {
14370 bitField1_ = (bitField1_ & ~0x00000008);
14371 useDepthFirstSearch_ = false;
14372 onChanged();
14373 return this;
14374 }
14375
14376 private int useCp_ = 0;
14387 @java.lang.Override public int getUseCpValue() {
14388 return useCp_;
14389 }
14390
14401 public Builder setUseCpValue(int value) {
14402 useCp_ = value;
14403 bitField1_ |= 0x00000010;
14404 onChanged();
14405 return this;
14406 }
14407
14417 @java.lang.Override
14419 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useCp_);
14420 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
14421 }
14422
14433 public Builder setUseCp(com.google.ortools.util.OptionalBoolean value) {
14434 if (value == null) { throw new NullPointerException(); }
14435 bitField1_ |= 0x00000010;
14436 useCp_ = value.getNumber();
14437 onChanged();
14438 return this;
14439 }
14440
14450 public Builder clearUseCp() {
14451 bitField1_ = (bitField1_ & ~0x00000010);
14452 useCp_ = 0;
14453 onChanged();
14454 return this;
14455 }
14456
14457 private int useCpSat_ = 0;
14469 @java.lang.Override public int getUseCpSatValue() {
14470 return useCpSat_;
14471 }
14472
14484 public Builder setUseCpSatValue(int value) {
14485 useCpSat_ = value;
14486 bitField1_ |= 0x00000020;
14487 onChanged();
14488 return this;
14489 }
14490
14501 @java.lang.Override
14503 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useCpSat_);
14504 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
14505 }
14506
14518 public Builder setUseCpSat(com.google.ortools.util.OptionalBoolean value) {
14519 if (value == null) { throw new NullPointerException(); }
14520 bitField1_ |= 0x00000020;
14521 useCpSat_ = value.getNumber();
14522 onChanged();
14523 return this;
14524 }
14525
14536 public Builder clearUseCpSat() {
14537 bitField1_ = (bitField1_ & ~0x00000020);
14538 useCpSat_ = 0;
14539 onChanged();
14540 return this;
14541 }
14542
14543 private int useGeneralizedCpSat_ = 0;
14555 @java.lang.Override public int getUseGeneralizedCpSatValue() {
14556 return useGeneralizedCpSat_;
14557 }
14558
14570 public Builder setUseGeneralizedCpSatValue(int value) {
14571 useGeneralizedCpSat_ = value;
14572 bitField1_ |= 0x00000040;
14573 onChanged();
14574 return this;
14575 }
14576
14587 @java.lang.Override
14589 com.google.ortools.util.OptionalBoolean result = com.google.ortools.util.OptionalBoolean.forNumber(useGeneralizedCpSat_);
14590 return result == null ? com.google.ortools.util.OptionalBoolean.UNRECOGNIZED : result;
14591 }
14592
14604 public Builder setUseGeneralizedCpSat(com.google.ortools.util.OptionalBoolean value) {
14605 if (value == null) { throw new NullPointerException(); }
14606 bitField1_ |= 0x00000040;
14607 useGeneralizedCpSat_ = value.getNumber();
14608 onChanged();
14609 return this;
14610 }
14611
14622 public Builder clearUseGeneralizedCpSat() {
14623 bitField1_ = (bitField1_ & ~0x00000040);
14624 useGeneralizedCpSat_ = 0;
14625 onChanged();
14626 return this;
14627 }
14628
14629 private com.google.ortools.sat.SatParameters satParameters_;
14630 private com.google.protobuf.SingleFieldBuilder<
14631 com.google.ortools.sat.SatParameters, com.google.ortools.sat.SatParameters.Builder, com.google.ortools.sat.SatParametersOrBuilder> satParametersBuilder_;
14641 public boolean hasSatParameters() {
14642 return ((bitField1_ & 0x00000080) != 0);
14643 }
14644
14654 if (satParametersBuilder_ == null) {
14655 return satParameters_ == null ? com.google.ortools.sat.SatParameters.getDefaultInstance() : satParameters_;
14656 } else {
14657 return satParametersBuilder_.getMessage();
14658 }
14659 }
14660
14668 public Builder setSatParameters(com.google.ortools.sat.SatParameters value) {
14669 if (satParametersBuilder_ == null) {
14670 if (value == null) {
14671 throw new NullPointerException();
14672 }
14673 satParameters_ = value;
14674 } else {
14675 satParametersBuilder_.setMessage(value);
14676 }
14677 bitField1_ |= 0x00000080;
14678 onChanged();
14679 return this;
14680 }
14681
14689 public Builder setSatParameters(
14690 com.google.ortools.sat.SatParameters.Builder builderForValue) {
14691 if (satParametersBuilder_ == null) {
14692 satParameters_ = builderForValue.build();
14693 } else {
14694 satParametersBuilder_.setMessage(builderForValue.build());
14695 }
14696 bitField1_ |= 0x00000080;
14697 onChanged();
14698 return this;
14699 }
14700
14708 public Builder mergeSatParameters(com.google.ortools.sat.SatParameters value) {
14709 if (satParametersBuilder_ == null) {
14710 if (((bitField1_ & 0x00000080) != 0) &&
14711 satParameters_ != null &&
14712 satParameters_ != com.google.ortools.sat.SatParameters.getDefaultInstance()) {
14714 } else {
14715 satParameters_ = value;
14716 }
14717 } else {
14718 satParametersBuilder_.mergeFrom(value);
14719 }
14720 if (satParameters_ != null) {
14721 bitField1_ |= 0x00000080;
14722 onChanged();
14723 }
14724 return this;
14725 }
14726
14734 public Builder clearSatParameters() {
14735 bitField1_ = (bitField1_ & ~0x00000080);
14736 satParameters_ = null;
14737 if (satParametersBuilder_ != null) {
14738 satParametersBuilder_.dispose();
14739 satParametersBuilder_ = null;
14740 }
14741 onChanged();
14742 return this;
14743 }
14744
14753 bitField1_ |= 0x00000080;
14754 onChanged();
14755 return internalGetSatParametersFieldBuilder().getBuilder();
14756 }
14757
14766 if (satParametersBuilder_ != null) {
14767 return satParametersBuilder_.getMessageOrBuilder();
14768 } else {
14769 return satParameters_ == null ?
14770 com.google.ortools.sat.SatParameters.getDefaultInstance() : satParameters_;
14771 }
14772 }
14773
14781 private com.google.protobuf.SingleFieldBuilder<
14782 com.google.ortools.sat.SatParameters, com.google.ortools.sat.SatParameters.Builder, com.google.ortools.sat.SatParametersOrBuilder>
14783 internalGetSatParametersFieldBuilder() {
14784 if (satParametersBuilder_ == null) {
14785 satParametersBuilder_ = new com.google.protobuf.SingleFieldBuilder<
14786 com.google.ortools.sat.SatParameters, com.google.ortools.sat.SatParameters.Builder, com.google.ortools.sat.SatParametersOrBuilder>(
14788 getParentForChildren(),
14789 isClean());
14790 satParameters_ = null;
14791 }
14792 return satParametersBuilder_;
14793 }
14794
14795 private boolean reportIntermediateCpSatSolutions_ ;
14805 @java.lang.Override
14807 return reportIntermediateCpSatSolutions_;
14808 }
14809
14819 public Builder setReportIntermediateCpSatSolutions(boolean value) {
14820
14821 reportIntermediateCpSatSolutions_ = value;
14822 bitField1_ |= 0x00000100;
14823 onChanged();
14824 return this;
14825 }
14826
14836 bitField1_ = (bitField1_ & ~0x00000100);
14837 reportIntermediateCpSatSolutions_ = false;
14838 onChanged();
14839 return this;
14840 }
14841
14842 private int fallbackToCpSatSizeThreshold_ ;
14852 @java.lang.Override
14854 return fallbackToCpSatSizeThreshold_;
14855 }
14856
14866 public Builder setFallbackToCpSatSizeThreshold(int value) {
14867
14868 fallbackToCpSatSizeThreshold_ = value;
14869 bitField1_ |= 0x00000200;
14870 onChanged();
14871 return this;
14872 }
14873
14883 bitField1_ = (bitField1_ & ~0x00000200);
14884 fallbackToCpSatSizeThreshold_ = 0;
14885 onChanged();
14886 return this;
14887 }
14888
14889 private int continuousSchedulingSolver_ = 0;
14894 @java.lang.Override public int getContinuousSchedulingSolverValue() {
14895 return continuousSchedulingSolver_;
14896 }
14897
14902 public Builder setContinuousSchedulingSolverValue(int value) {
14903 continuousSchedulingSolver_ = value;
14904 bitField1_ |= 0x00000400;
14905 onChanged();
14906 return this;
14907 }
14908
14912 @java.lang.Override
14914 com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver result = com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.forNumber(continuousSchedulingSolver_);
14916 }
14917
14922 public Builder setContinuousSchedulingSolver(com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver value) {
14923 if (value == null) { throw new NullPointerException(); }
14924 bitField1_ |= 0x00000400;
14925 continuousSchedulingSolver_ = value.getNumber();
14926 onChanged();
14927 return this;
14928 }
14929
14934 bitField1_ = (bitField1_ & ~0x00000400);
14935 continuousSchedulingSolver_ = 0;
14936 onChanged();
14937 return this;
14938 }
14939
14940 private int mixedIntegerSchedulingSolver_ = 0;
14945 @java.lang.Override public int getMixedIntegerSchedulingSolverValue() {
14946 return mixedIntegerSchedulingSolver_;
14947 }
14948
14953 public Builder setMixedIntegerSchedulingSolverValue(int value) {
14954 mixedIntegerSchedulingSolver_ = value;
14955 bitField1_ |= 0x00000800;
14956 onChanged();
14957 return this;
14958 }
14959
14963 @java.lang.Override
14965 com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver result = com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver.forNumber(mixedIntegerSchedulingSolver_);
14967 }
14968
14973 public Builder setMixedIntegerSchedulingSolver(com.google.ortools.constraintsolver.RoutingSearchParameters.SchedulingSolver value) {
14974 if (value == null) { throw new NullPointerException(); }
14975 bitField1_ |= 0x00000800;
14976 mixedIntegerSchedulingSolver_ = value.getNumber();
14977 onChanged();
14978 return this;
14979 }
14980
14985 bitField1_ = (bitField1_ & ~0x00000800);
14986 mixedIntegerSchedulingSolver_ = 0;
14987 onChanged();
14988 return this;
14989 }
14990
14991 private boolean disableSchedulingBewareThisMayDegradePerformance_ ;
15001 @java.lang.Override
15003 return ((bitField1_ & 0x00001000) != 0);
15004 }
15005
15014 @java.lang.Override
15016 return disableSchedulingBewareThisMayDegradePerformance_;
15017 }
15018
15029
15030 disableSchedulingBewareThisMayDegradePerformance_ = value;
15031 bitField1_ |= 0x00001000;
15032 onChanged();
15033 return this;
15034 }
15035
15045 bitField1_ = (bitField1_ & ~0x00001000);
15046 disableSchedulingBewareThisMayDegradePerformance_ = false;
15047 onChanged();
15048 return this;
15049 }
15050
15051 private double optimizationStep_ ;
15062 @java.lang.Override
15063 public double getOptimizationStep() {
15064 return optimizationStep_;
15065 }
15066
15077 public Builder setOptimizationStep(double value) {
15078
15079 optimizationStep_ = value;
15080 bitField1_ |= 0x00002000;
15081 onChanged();
15082 return this;
15083 }
15084
15094 public Builder clearOptimizationStep() {
15095 bitField1_ = (bitField1_ & ~0x00002000);
15096 optimizationStep_ = 0D;
15097 onChanged();
15098 return this;
15099 }
15100
15101 private int numberOfSolutionsToCollect_ ;
15111 @java.lang.Override
15113 return numberOfSolutionsToCollect_;
15114 }
15115
15125 public Builder setNumberOfSolutionsToCollect(int value) {
15126
15127 numberOfSolutionsToCollect_ = value;
15128 bitField1_ |= 0x00004000;
15129 onChanged();
15130 return this;
15131 }
15132
15142 bitField1_ = (bitField1_ & ~0x00004000);
15143 numberOfSolutionsToCollect_ = 0;
15144 onChanged();
15145 return this;
15146 }
15147
15148 private long solutionLimit_ ;
15159 @java.lang.Override
15160 public long getSolutionLimit() {
15161 return solutionLimit_;
15162 }
15163
15174 public Builder setSolutionLimit(long value) {
15175
15176 solutionLimit_ = value;
15177 bitField1_ |= 0x00008000;
15178 onChanged();
15179 return this;
15180 }
15181
15191 public Builder clearSolutionLimit() {
15192 bitField1_ = (bitField1_ & ~0x00008000);
15193 solutionLimit_ = 0L;
15194 onChanged();
15195 return this;
15196 }
15197
15198 private com.google.protobuf.Duration timeLimit_;
15199 private com.google.protobuf.SingleFieldBuilder<
15200 com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> timeLimitBuilder_;
15209 public boolean hasTimeLimit() {
15210 return ((bitField1_ & 0x00010000) != 0);
15211 }
15212
15220 public com.google.protobuf.Duration getTimeLimit() {
15221 if (timeLimitBuilder_ == null) {
15222 return timeLimit_ == null ? com.google.protobuf.Duration.getDefaultInstance() : timeLimit_;
15223 } else {
15224 return timeLimitBuilder_.getMessage();
15225 }
15226 }
15227
15234 public Builder setTimeLimit(com.google.protobuf.Duration value) {
15235 if (timeLimitBuilder_ == null) {
15236 if (value == null) {
15237 throw new NullPointerException();
15238 }
15239 timeLimit_ = value;
15240 } else {
15241 timeLimitBuilder_.setMessage(value);
15242 }
15243 bitField1_ |= 0x00010000;
15244 onChanged();
15245 return this;
15246 }
15247
15254 public Builder setTimeLimit(
15255 com.google.protobuf.Duration.Builder builderForValue) {
15256 if (timeLimitBuilder_ == null) {
15257 timeLimit_ = builderForValue.build();
15258 } else {
15259 timeLimitBuilder_.setMessage(builderForValue.build());
15260 }
15261 bitField1_ |= 0x00010000;
15262 onChanged();
15263 return this;
15264 }
15265
15272 public Builder mergeTimeLimit(com.google.protobuf.Duration value) {
15273 if (timeLimitBuilder_ == null) {
15274 if (((bitField1_ & 0x00010000) != 0) &&
15275 timeLimit_ != null &&
15276 timeLimit_ != com.google.protobuf.Duration.getDefaultInstance()) {
15278 } else {
15279 timeLimit_ = value;
15280 }
15281 } else {
15282 timeLimitBuilder_.mergeFrom(value);
15283 }
15284 if (timeLimit_ != null) {
15285 bitField1_ |= 0x00010000;
15286 onChanged();
15287 }
15288 return this;
15289 }
15290
15297 public Builder clearTimeLimit() {
15298 bitField1_ = (bitField1_ & ~0x00010000);
15299 timeLimit_ = null;
15300 if (timeLimitBuilder_ != null) {
15301 timeLimitBuilder_.dispose();
15302 timeLimitBuilder_ = null;
15303 }
15304 onChanged();
15305 return this;
15306 }
15307
15314 public com.google.protobuf.Duration.Builder getTimeLimitBuilder() {
15315 bitField1_ |= 0x00010000;
15316 onChanged();
15317 return internalGetTimeLimitFieldBuilder().getBuilder();
15318 }
15319
15326 public com.google.protobuf.DurationOrBuilder getTimeLimitOrBuilder() {
15327 if (timeLimitBuilder_ != null) {
15328 return timeLimitBuilder_.getMessageOrBuilder();
15329 } else {
15330 return timeLimit_ == null ?
15331 com.google.protobuf.Duration.getDefaultInstance() : timeLimit_;
15332 }
15333 }
15334
15341 private com.google.protobuf.SingleFieldBuilder<
15342 com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder>
15343 internalGetTimeLimitFieldBuilder() {
15344 if (timeLimitBuilder_ == null) {
15345 timeLimitBuilder_ = new com.google.protobuf.SingleFieldBuilder<
15346 com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder>(
15347 getTimeLimit(),
15348 getParentForChildren(),
15349 isClean());
15350 timeLimit_ = null;
15351 }
15352 return timeLimitBuilder_;
15353 }
15354
15355 private com.google.protobuf.Duration lnsTimeLimit_;
15356 private com.google.protobuf.SingleFieldBuilder<
15357 com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder> lnsTimeLimitBuilder_;
15367 public boolean hasLnsTimeLimit() {
15368 return ((bitField1_ & 0x00020000) != 0);
15369 }
15370
15379 public com.google.protobuf.Duration getLnsTimeLimit() {
15380 if (lnsTimeLimitBuilder_ == null) {
15381 return lnsTimeLimit_ == null ? com.google.protobuf.Duration.getDefaultInstance() : lnsTimeLimit_;
15382 } else {
15383 return lnsTimeLimitBuilder_.getMessage();
15384 }
15385 }
15386
15394 public Builder setLnsTimeLimit(com.google.protobuf.Duration value) {
15395 if (lnsTimeLimitBuilder_ == null) {
15396 if (value == null) {
15397 throw new NullPointerException();
15398 }
15399 lnsTimeLimit_ = value;
15400 } else {
15401 lnsTimeLimitBuilder_.setMessage(value);
15402 }
15403 bitField1_ |= 0x00020000;
15404 onChanged();
15405 return this;
15406 }
15407
15415 public Builder setLnsTimeLimit(
15416 com.google.protobuf.Duration.Builder builderForValue) {
15417 if (lnsTimeLimitBuilder_ == null) {
15418 lnsTimeLimit_ = builderForValue.build();
15419 } else {
15420 lnsTimeLimitBuilder_.setMessage(builderForValue.build());
15421 }
15422 bitField1_ |= 0x00020000;
15423 onChanged();
15424 return this;
15425 }
15426
15434 public Builder mergeLnsTimeLimit(com.google.protobuf.Duration value) {
15435 if (lnsTimeLimitBuilder_ == null) {
15436 if (((bitField1_ & 0x00020000) != 0) &&
15437 lnsTimeLimit_ != null &&
15438 lnsTimeLimit_ != com.google.protobuf.Duration.getDefaultInstance()) {
15440 } else {
15441 lnsTimeLimit_ = value;
15442 }
15443 } else {
15444 lnsTimeLimitBuilder_.mergeFrom(value);
15445 }
15446 if (lnsTimeLimit_ != null) {
15447 bitField1_ |= 0x00020000;
15448 onChanged();
15449 }
15450 return this;
15451 }
15452
15460 public Builder clearLnsTimeLimit() {
15461 bitField1_ = (bitField1_ & ~0x00020000);
15462 lnsTimeLimit_ = null;
15463 if (lnsTimeLimitBuilder_ != null) {
15464 lnsTimeLimitBuilder_.dispose();
15465 lnsTimeLimitBuilder_ = null;
15466 }
15467 onChanged();
15468 return this;
15469 }
15470
15478 public com.google.protobuf.Duration.Builder getLnsTimeLimitBuilder() {
15479 bitField1_ |= 0x00020000;
15480 onChanged();
15481 return internalGetLnsTimeLimitFieldBuilder().getBuilder();
15482 }
15483
15491 public com.google.protobuf.DurationOrBuilder getLnsTimeLimitOrBuilder() {
15492 if (lnsTimeLimitBuilder_ != null) {
15493 return lnsTimeLimitBuilder_.getMessageOrBuilder();
15494 } else {
15495 return lnsTimeLimit_ == null ?
15496 com.google.protobuf.Duration.getDefaultInstance() : lnsTimeLimit_;
15497 }
15498 }
15499
15507 private com.google.protobuf.SingleFieldBuilder<
15508 com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder>
15509 internalGetLnsTimeLimitFieldBuilder() {
15510 if (lnsTimeLimitBuilder_ == null) {
15511 lnsTimeLimitBuilder_ = new com.google.protobuf.SingleFieldBuilder<
15512 com.google.protobuf.Duration, com.google.protobuf.Duration.Builder, com.google.protobuf.DurationOrBuilder>(
15514 getParentForChildren(),
15515 isClean());
15516 lnsTimeLimit_ = null;
15517 }
15518 return lnsTimeLimitBuilder_;
15519 }
15520
15521 private double secondaryLsTimeLimitRatio_ ;
15535 @java.lang.Override
15537 return secondaryLsTimeLimitRatio_;
15538 }
15539
15553 public Builder setSecondaryLsTimeLimitRatio(double value) {
15554
15555 secondaryLsTimeLimitRatio_ = value;
15556 bitField1_ |= 0x00040000;
15557 onChanged();
15558 return this;
15559 }
15560
15574 bitField1_ = (bitField1_ & ~0x00040000);
15575 secondaryLsTimeLimitRatio_ = 0D;
15576 onChanged();
15577 return this;
15578 }
15579
15581 private com.google.protobuf.SingleFieldBuilder<
15582 com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters, com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.Builder, com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParametersOrBuilder> improvementLimitParametersBuilder_;
15593 return ((bitField1_ & 0x00080000) != 0);
15594 }
15595
15605 if (improvementLimitParametersBuilder_ == null) {
15606 return improvementLimitParameters_ == null ? com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.getDefaultInstance() : improvementLimitParameters_;
15607 } else {
15608 return improvementLimitParametersBuilder_.getMessage();
15609 }
15610 }
15611
15619 public Builder setImprovementLimitParameters(com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters value) {
15620 if (improvementLimitParametersBuilder_ == null) {
15621 if (value == null) {
15622 throw new NullPointerException();
15623 }
15624 improvementLimitParameters_ = value;
15625 } else {
15626 improvementLimitParametersBuilder_.setMessage(value);
15627 }
15628 bitField1_ |= 0x00080000;
15629 onChanged();
15630 return this;
15631 }
15632
15641 com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.Builder builderForValue) {
15642 if (improvementLimitParametersBuilder_ == null) {
15643 improvementLimitParameters_ = builderForValue.build();
15644 } else {
15645 improvementLimitParametersBuilder_.setMessage(builderForValue.build());
15646 }
15647 bitField1_ |= 0x00080000;
15648 onChanged();
15649 return this;
15650 }
15651
15659 public Builder mergeImprovementLimitParameters(com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters value) {
15660 if (improvementLimitParametersBuilder_ == null) {
15661 if (((bitField1_ & 0x00080000) != 0) &&
15662 improvementLimitParameters_ != null &&
15663 improvementLimitParameters_ != com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.getDefaultInstance()) {
15664 getImprovementLimitParametersBuilder().mergeFrom(value);
15665 } else {
15666 improvementLimitParameters_ = value;
15667 }
15668 } else {
15669 improvementLimitParametersBuilder_.mergeFrom(value);
15670 }
15671 if (improvementLimitParameters_ != null) {
15672 bitField1_ |= 0x00080000;
15673 onChanged();
15674 }
15675 return this;
15676 }
15677
15686 bitField1_ = (bitField1_ & ~0x00080000);
15687 improvementLimitParameters_ = null;
15688 if (improvementLimitParametersBuilder_ != null) {
15689 improvementLimitParametersBuilder_.dispose();
15690 improvementLimitParametersBuilder_ = null;
15691 }
15692 onChanged();
15693 return this;
15694 }
15695
15704 bitField1_ |= 0x00080000;
15705 onChanged();
15706 return internalGetImprovementLimitParametersFieldBuilder().getBuilder();
15707 }
15708
15717 if (improvementLimitParametersBuilder_ != null) {
15718 return improvementLimitParametersBuilder_.getMessageOrBuilder();
15719 } else {
15720 return improvementLimitParameters_ == null ?
15721 com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.getDefaultInstance() : improvementLimitParameters_;
15722 }
15723 }
15724
15732 private com.google.protobuf.SingleFieldBuilder<
15733 com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters, com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.Builder, com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParametersOrBuilder>
15734 internalGetImprovementLimitParametersFieldBuilder() {
15735 if (improvementLimitParametersBuilder_ == null) {
15736 improvementLimitParametersBuilder_ = new com.google.protobuf.SingleFieldBuilder<
15737 com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters, com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParameters.Builder, com.google.ortools.constraintsolver.RoutingSearchParameters.ImprovementSearchLimitParametersOrBuilder>(
15739 getParentForChildren(),
15740 isClean());
15741 improvementLimitParameters_ = null;
15742 }
15743 return improvementLimitParametersBuilder_;
15744 }
15745
15746 private boolean useFullPropagation_ ;
15764 @java.lang.Override
15765 public boolean getUseFullPropagation() {
15766 return useFullPropagation_;
15767 }
15768
15786 public Builder setUseFullPropagation(boolean value) {
15787
15788 useFullPropagation_ = value;
15789 bitField1_ |= 0x00100000;
15790 onChanged();
15791 return this;
15792 }
15793
15810 public Builder clearUseFullPropagation() {
15811 bitField1_ = (bitField1_ & ~0x00100000);
15812 useFullPropagation_ = false;
15813 onChanged();
15814 return this;
15815 }
15816
15817 private boolean logSearch_ ;
15838 @java.lang.Override
15839 public boolean getLogSearch() {
15840 return logSearch_;
15841 }
15842
15863 public Builder setLogSearch(boolean value) {
15864
15865 logSearch_ = value;
15866 bitField1_ |= 0x00200000;
15867 onChanged();
15868 return this;
15869 }
15870
15890 public Builder clearLogSearch() {
15891 bitField1_ = (bitField1_ & ~0x00200000);
15892 logSearch_ = false;
15893 onChanged();
15894 return this;
15895 }
15896
15897 private double logCostScalingFactor_ ;
15907 @java.lang.Override
15908 public double getLogCostScalingFactor() {
15909 return logCostScalingFactor_;
15910 }
15911
15921 public Builder setLogCostScalingFactor(double value) {
15922
15923 logCostScalingFactor_ = value;
15924 bitField1_ |= 0x00400000;
15925 onChanged();
15926 return this;
15927 }
15928
15937 public Builder clearLogCostScalingFactor() {
15938 bitField1_ = (bitField1_ & ~0x00400000);
15939 logCostScalingFactor_ = 0D;
15940 onChanged();
15941 return this;
15942 }
15943
15944 private double logCostOffset_ ;
15949 @java.lang.Override
15950 public double getLogCostOffset() {
15951 return logCostOffset_;
15952 }
15953
15958 public Builder setLogCostOffset(double value) {
15959
15960 logCostOffset_ = value;
15961 bitField1_ |= 0x00800000;
15962 onChanged();
15963 return this;
15964 }
15965
15969 public Builder clearLogCostOffset() {
15970 bitField1_ = (bitField1_ & ~0x00800000);
15971 logCostOffset_ = 0D;
15972 onChanged();
15973 return this;
15974 }
15975
15976 private java.lang.Object logTag_ = "";
15986 public java.lang.String getLogTag() {
15987 java.lang.Object ref = logTag_;
15988 if (!(ref instanceof java.lang.String)) {
15989 com.google.protobuf.ByteString bs =
15990 (com.google.protobuf.ByteString) ref;
15991 java.lang.String s = bs.toStringUtf8();
15992 logTag_ = s;
15993 return s;
15994 } else {
15995 return (java.lang.String) ref;
15996 }
15997 }
15998
16007 public com.google.protobuf.ByteString
16009 java.lang.Object ref = logTag_;
16010 if (ref instanceof String) {
16011 com.google.protobuf.ByteString b =
16012 com.google.protobuf.ByteString.copyFromUtf8(
16013 (java.lang.String) ref);
16014 logTag_ = b;
16015 return b;
16016 } else {
16017 return (com.google.protobuf.ByteString) ref;
16018 }
16019 }
16020
16030 public Builder setLogTag(
16031 java.lang.String value) {
16032 if (value == null) { throw new NullPointerException(); }
16033 logTag_ = value;
16034 bitField1_ |= 0x01000000;
16035 onChanged();
16036 return this;
16037 }
16038
16047 public Builder clearLogTag() {
16048 logTag_ = getDefaultInstance().getLogTag();
16049 bitField1_ = (bitField1_ & ~0x01000000);
16050 onChanged();
16051 return this;
16052 }
16053
16063 public Builder setLogTagBytes(
16064 com.google.protobuf.ByteString value) {
16065 if (value == null) { throw new NullPointerException(); }
16066 checkByteStringIsUtf8(value);
16067 logTag_ = value;
16068 bitField1_ |= 0x01000000;
16069 onChanged();
16070 return this;
16071 }
16072
16073 private boolean useIteratedLocalSearch_ ;
16083 @java.lang.Override
16084 public boolean getUseIteratedLocalSearch() {
16085 return useIteratedLocalSearch_;
16086 }
16087
16097 public Builder setUseIteratedLocalSearch(boolean value) {
16098
16099 useIteratedLocalSearch_ = value;
16100 bitField1_ |= 0x02000000;
16101 onChanged();
16102 return this;
16103 }
16104
16114 bitField1_ = (bitField1_ & ~0x02000000);
16115 useIteratedLocalSearch_ = false;
16116 onChanged();
16117 return this;
16118 }
16119
16120 private com.google.ortools.constraintsolver.IteratedLocalSearchParameters iteratedLocalSearchParameters_;
16121 private com.google.protobuf.SingleFieldBuilder<
16122 com.google.ortools.constraintsolver.IteratedLocalSearchParameters, com.google.ortools.constraintsolver.IteratedLocalSearchParameters.Builder, com.google.ortools.constraintsolver.IteratedLocalSearchParametersOrBuilder> iteratedLocalSearchParametersBuilder_;
16132 return ((bitField1_ & 0x04000000) != 0);
16133 }
16134
16143 if (iteratedLocalSearchParametersBuilder_ == null) {
16144 return iteratedLocalSearchParameters_ == null ? com.google.ortools.constraintsolver.IteratedLocalSearchParameters.getDefaultInstance() : iteratedLocalSearchParameters_;
16145 } else {
16146 return iteratedLocalSearchParametersBuilder_.getMessage();
16147 }
16148 }
16149
16156 public Builder setIteratedLocalSearchParameters(com.google.ortools.constraintsolver.IteratedLocalSearchParameters value) {
16157 if (iteratedLocalSearchParametersBuilder_ == null) {
16158 if (value == null) {
16159 throw new NullPointerException();
16160 }
16161 iteratedLocalSearchParameters_ = value;
16162 } else {
16163 iteratedLocalSearchParametersBuilder_.setMessage(value);
16164 }
16165 bitField1_ |= 0x04000000;
16166 onChanged();
16167 return this;
16168 }
16169
16177 com.google.ortools.constraintsolver.IteratedLocalSearchParameters.Builder builderForValue) {
16178 if (iteratedLocalSearchParametersBuilder_ == null) {
16179 iteratedLocalSearchParameters_ = builderForValue.build();
16180 } else {
16181 iteratedLocalSearchParametersBuilder_.setMessage(builderForValue.build());
16182 }
16183 bitField1_ |= 0x04000000;
16184 onChanged();
16185 return this;
16186 }
16187
16194 public Builder mergeIteratedLocalSearchParameters(com.google.ortools.constraintsolver.IteratedLocalSearchParameters value) {
16195 if (iteratedLocalSearchParametersBuilder_ == null) {
16196 if (((bitField1_ & 0x04000000) != 0) &&
16197 iteratedLocalSearchParameters_ != null &&
16198 iteratedLocalSearchParameters_ != com.google.ortools.constraintsolver.IteratedLocalSearchParameters.getDefaultInstance()) {
16199 getIteratedLocalSearchParametersBuilder().mergeFrom(value);
16200 } else {
16201 iteratedLocalSearchParameters_ = value;
16202 }
16203 } else {
16204 iteratedLocalSearchParametersBuilder_.mergeFrom(value);
16205 }
16206 if (iteratedLocalSearchParameters_ != null) {
16207 bitField1_ |= 0x04000000;
16208 onChanged();
16209 }
16210 return this;
16211 }
16212
16220 bitField1_ = (bitField1_ & ~0x04000000);
16221 iteratedLocalSearchParameters_ = null;
16222 if (iteratedLocalSearchParametersBuilder_ != null) {
16223 iteratedLocalSearchParametersBuilder_.dispose();
16224 iteratedLocalSearchParametersBuilder_ = null;
16225 }
16226 onChanged();
16227 return this;
16228 }
16229
16237 bitField1_ |= 0x04000000;
16238 onChanged();
16239 return internalGetIteratedLocalSearchParametersFieldBuilder().getBuilder();
16240 }
16241
16249 if (iteratedLocalSearchParametersBuilder_ != null) {
16250 return iteratedLocalSearchParametersBuilder_.getMessageOrBuilder();
16251 } else {
16252 return iteratedLocalSearchParameters_ == null ?
16253 com.google.ortools.constraintsolver.IteratedLocalSearchParameters.getDefaultInstance() : iteratedLocalSearchParameters_;
16254 }
16255 }
16256
16263 private com.google.protobuf.SingleFieldBuilder<
16264 com.google.ortools.constraintsolver.IteratedLocalSearchParameters, com.google.ortools.constraintsolver.IteratedLocalSearchParameters.Builder, com.google.ortools.constraintsolver.IteratedLocalSearchParametersOrBuilder>
16265 internalGetIteratedLocalSearchParametersFieldBuilder() {
16266 if (iteratedLocalSearchParametersBuilder_ == null) {
16267 iteratedLocalSearchParametersBuilder_ = new com.google.protobuf.SingleFieldBuilder<
16268 com.google.ortools.constraintsolver.IteratedLocalSearchParameters, com.google.ortools.constraintsolver.IteratedLocalSearchParameters.Builder, com.google.ortools.constraintsolver.IteratedLocalSearchParametersOrBuilder>(
16270 getParentForChildren(),
16271 isClean());
16272 iteratedLocalSearchParameters_ = null;
16273 }
16274 return iteratedLocalSearchParametersBuilder_;
16275 }
16276
16277 // @@protoc_insertion_point(builder_scope:operations_research.RoutingSearchParameters)
16278 }
16279
16280 // @@protoc_insertion_point(class_scope:operations_research.RoutingSearchParameters)
16281 private static final com.google.ortools.constraintsolver.RoutingSearchParameters DEFAULT_INSTANCE;
16282 static {
16283 DEFAULT_INSTANCE = new com.google.ortools.constraintsolver.RoutingSearchParameters();
16284 }
16285
16287 return DEFAULT_INSTANCE;
16288 }
16289
16290 private static final com.google.protobuf.Parser<RoutingSearchParameters>
16291 PARSER = new com.google.protobuf.AbstractParser<RoutingSearchParameters>() {
16292 @java.lang.Override
16293 public RoutingSearchParameters parsePartialFrom(
16294 com.google.protobuf.CodedInputStream input,
16295 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
16296 throws com.google.protobuf.InvalidProtocolBufferException {
16297 Builder builder = newBuilder();
16298 try {
16299 builder.mergeFrom(input, extensionRegistry);
16300 } catch (com.google.protobuf.InvalidProtocolBufferException e) {
16301 throw e.setUnfinishedMessage(builder.buildPartial());
16302 } catch (com.google.protobuf.UninitializedMessageException e) {
16303 throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
16304 } catch (java.io.IOException e) {
16305 throw new com.google.protobuf.InvalidProtocolBufferException(e)
16306 .setUnfinishedMessage(builder.buildPartial());
16307 }
16308 return builder.buildPartial();
16309 }
16310 };
16311
16312 public static com.google.protobuf.Parser<RoutingSearchParameters> parser() {
16313 return PARSER;
16314 }
16315
16316 @java.lang.Override
16317 public com.google.protobuf.Parser<RoutingSearchParameters> getParserForType() {
16318 return PARSER;
16319 }
16320
16321 @java.lang.Override
16323 return DEFAULT_INSTANCE;
16324 }
16325
16326}
16327
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 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()