1473 public void writeTo(com.google.protobuf.CodedOutputStream output)
1474 throws java.io.IOException {
1475 if (((bitField0_ & 0x00000001) != 0)) {
1476 output.writeDouble(1, maxTimeInSeconds_);
1478 if (((bitField0_ & 0x00000020) != 0)) {
1479 output.writeInt32(2, maxNumDecisionsInLs_);
1481 if (((bitField0_ & 0x00000100) != 0)) {
1482 output.writeBool(3, computeEstimatedImpact_);
1484 if (((bitField0_ & 0x00000200) != 0)) {
1485 output.writeBool(4, pruneSearchTree_);
1487 if (((bitField0_ & 0x00000400) != 0)) {
1488 output.writeBool(5, sortConstraintsByNumTerms_);
1490 if (((bitField0_ & 0x00000800) != 0)) {
1491 output.writeBool(6, useRandomLns_);
1493 if (((bitField0_ & 0x00001000) != 0)) {
1494 output.writeInt32(7, randomSeed_);
1496 if (((bitField0_ & 0x00002000) != 0)) {
1497 output.writeInt32(8, numRelaxedVars_);
1499 if (((bitField0_ & 0x00004000) != 0)) {
1500 output.writeInt32(9, maxNumberOfConflictsInRandomLns_);
1502 if (((bitField0_ & 0x00008000) != 0)) {
1503 output.writeInt32(10, numRandomLnsTries_);
1505 if (((bitField0_ & 0x00010000) != 0)) {
1506 output.writeInt64(11, maxNumberOfBacktracksInLs_);
1508 if (((bitField0_ & 0x00020000) != 0)) {
1509 output.writeBool(12, useLpLns_);
1511 if (((bitField0_ & 0x00000080) != 0)) {
1512 output.writeBool(14, logSearchProgress_);
1514 if (((bitField0_ & 0x00040000) != 0)) {
1515 output.writeBool(15, useSatToChooseLnsNeighbourhood_);
1517 if (((bitField0_ & 0x00080000) != 0)) {
1518 output.writeInt32(16, maxNumberOfConflictsForQuickCheck_);
1520 if (((bitField0_ & 0x00100000) != 0)) {
1521 output.writeBool(17, useSymmetry_);
1523 if (((bitField0_ & 0x00400000) != 0)) {
1524 output.writeInt32(20, maxNumberOfConflictsInRandomSolutionGeneration_);
1526 if (((bitField0_ & 0x00800000) != 0)) {
1527 output.writeInt64(21, maxNumberOfExploredAssignmentsPerTryInLs_);
1529 if (((bitField0_ & 0x01000000) != 0)) {
1530 output.writeBool(22, useTranspositionTableInLs_);
1532 if (((bitField0_ & 0x04000000) != 0)) {
1533 output.writeBool(23, useLearnedBinaryClausesInLp_);
1535 if (((bitField0_ & 0x08000000) != 0)) {
1536 output.writeInt32(24, numberOfSolvers_);
1538 if (((bitField0_ & 0x10000000) != 0)) {
1539 output.writeEnum(25, synchronizationType_);
1541 for (int i = 0; i < solverOptimizerSets_.size(); i++) {
1542 output.writeMessage(26, solverOptimizerSets_.get(i));
1544 if (((bitField0_ & 0x00000002) != 0)) {
1545 output.writeDouble(27, maxDeterministicTime_);
1547 if (((bitField0_ & 0x00000010) != 0)) {
1548 output.writeDouble(28, relativeGapLimit_);
1550 if (((bitField0_ & 0x40000000) != 0)) {
1551 output.writeBool(29, useLpStrongBranching_);
1553 if (((bitField0_ & 0x80000000) != 0)) {
1554 output.writeInt32(30, decomposerNumVariablesThreshold_);
1556 if (((bitField1_ & 0x00000001) != 0)) {
1557 output.writeInt32(31, numBopSolversUsedByDecomposition_);
1559 if (((bitField0_ & 0x20000000) != 0)) {
1560 com.google.protobuf.GeneratedMessage.writeString(output, 33, defaultSolverOptimizerSets_);
1562 if (((bitField1_ & 0x00000004) != 0)) {
1563 output.writeInt32(34, guidedSatConflictsChunk_);
1565 if (((bitField0_ & 0x00000008) != 0)) {
1566 output.writeInt32(35, maxNumberOfConsecutiveFailingOptimizerCalls_);
1568 if (((bitField1_ & 0x00000002) != 0)) {
1569 output.writeDouble(36, decomposedProblemMinTimeInSeconds_);
1571 if (((bitField0_ & 0x00000004) != 0)) {
1572 output.writeDouble(37, lpMaxDeterministicTime_);
1574 if (((bitField0_ & 0x00000040) != 0)) {
1575 output.writeInt32(38, maxNumBrokenConstraintsInLs_);
1577 if (((bitField0_ & 0x02000000) != 0)) {
1578 output.writeBool(39, usePotentialOneFlipRepairsInLs_);
1580 if (((bitField0_ & 0x00200000) != 0)) {
1581 output.writeBool(40, exploitSymmetryInSatFirstSolution_);
1583 if (((bitField1_ & 0x00000008) != 0)) {
1584 output.writeInt32(41, maxLpSolveForFeasibilityProblems_);
1586 getUnknownFields().writeTo(output);
1590 public int getSerializedSize() {
1591 int size = memoizedSize;
1592 if (size != -1) return size;
1595 if (((bitField0_ & 0x00000001) != 0)) {
1596 size += com.google.protobuf.CodedOutputStream
1597 .computeDoubleSize(1, maxTimeInSeconds_);
1599 if (((bitField0_ & 0x00000020) != 0)) {
1600 size += com.google.protobuf.CodedOutputStream
1601 .computeInt32Size(2, maxNumDecisionsInLs_);
1603 if (((bitField0_ & 0x00000100) != 0)) {
1604 size += com.google.protobuf.CodedOutputStream
1605 .computeBoolSize(3, computeEstimatedImpact_);
1607 if (((bitField0_ & 0x00000200) != 0)) {
1608 size += com.google.protobuf.CodedOutputStream
1609 .computeBoolSize(4, pruneSearchTree_);
1611 if (((bitField0_ & 0x00000400) != 0)) {
1612 size += com.google.protobuf.CodedOutputStream
1613 .computeBoolSize(5, sortConstraintsByNumTerms_);
1615 if (((bitField0_ & 0x00000800) != 0)) {
1616 size += com.google.protobuf.CodedOutputStream
1617 .computeBoolSize(6, useRandomLns_);
1619 if (((bitField0_ & 0x00001000) != 0)) {
1620 size += com.google.protobuf.CodedOutputStream
1621 .computeInt32Size(7, randomSeed_);
1623 if (((bitField0_ & 0x00002000) != 0)) {
1624 size += com.google.protobuf.CodedOutputStream
1625 .computeInt32Size(8, numRelaxedVars_);
1627 if (((bitField0_ & 0x00004000) != 0)) {
1628 size += com.google.protobuf.CodedOutputStream
1629 .computeInt32Size(9, maxNumberOfConflictsInRandomLns_);
1631 if (((bitField0_ & 0x00008000) != 0)) {
1632 size += com.google.protobuf.CodedOutputStream
1633 .computeInt32Size(10, numRandomLnsTries_);
1635 if (((bitField0_ & 0x00010000) != 0)) {
1636 size += com.google.protobuf.CodedOutputStream
1637 .computeInt64Size(11, maxNumberOfBacktracksInLs_);
1639 if (((bitField0_ & 0x00020000) != 0)) {
1640 size += com.google.protobuf.CodedOutputStream
1641 .computeBoolSize(12, useLpLns_);
1643 if (((bitField0_ & 0x00000080) != 0)) {
1644 size += com.google.protobuf.CodedOutputStream
1645 .computeBoolSize(14, logSearchProgress_);
1647 if (((bitField0_ & 0x00040000) != 0)) {
1648 size += com.google.protobuf.CodedOutputStream
1649 .computeBoolSize(15, useSatToChooseLnsNeighbourhood_);
1651 if (((bitField0_ & 0x00080000) != 0)) {
1652 size += com.google.protobuf.CodedOutputStream
1653 .computeInt32Size(16, maxNumberOfConflictsForQuickCheck_);
1655 if (((bitField0_ & 0x00100000) != 0)) {
1656 size += com.google.protobuf.CodedOutputStream
1657 .computeBoolSize(17, useSymmetry_);
1659 if (((bitField0_ & 0x00400000) != 0)) {
1660 size += com.google.protobuf.CodedOutputStream
1661 .computeInt32Size(20, maxNumberOfConflictsInRandomSolutionGeneration_);
1663 if (((bitField0_ & 0x00800000) != 0)) {
1664 size += com.google.protobuf.CodedOutputStream
1665 .computeInt64Size(21, maxNumberOfExploredAssignmentsPerTryInLs_);
1667 if (((bitField0_ & 0x01000000) != 0)) {
1668 size += com.google.protobuf.CodedOutputStream
1669 .computeBoolSize(22, useTranspositionTableInLs_);
1671 if (((bitField0_ & 0x04000000) != 0)) {
1672 size += com.google.protobuf.CodedOutputStream
1673 .computeBoolSize(23, useLearnedBinaryClausesInLp_);
1675 if (((bitField0_ & 0x08000000) != 0)) {
1676 size += com.google.protobuf.CodedOutputStream
1677 .computeInt32Size(24, numberOfSolvers_);
1679 if (((bitField0_ & 0x10000000) != 0)) {
1680 size += com.google.protobuf.CodedOutputStream
1681 .computeEnumSize(25, synchronizationType_);
1683 for (int i = 0; i < solverOptimizerSets_.size(); i++) {
1684 size += com.google.protobuf.CodedOutputStream
1685 .computeMessageSize(26, solverOptimizerSets_.get(i));
1687 if (((bitField0_ & 0x00000002) != 0)) {
1688 size += com.google.protobuf.CodedOutputStream
1689 .computeDoubleSize(27, maxDeterministicTime_);
1691 if (((bitField0_ & 0x00000010) != 0)) {
1692 size += com.google.protobuf.CodedOutputStream
1693 .computeDoubleSize(28, relativeGapLimit_);
1695 if (((bitField0_ & 0x40000000) != 0)) {
1696 size += com.google.protobuf.CodedOutputStream
1697 .computeBoolSize(29, useLpStrongBranching_);
1699 if (((bitField0_ & 0x80000000) != 0)) {
1700 size += com.google.protobuf.CodedOutputStream
1701 .computeInt32Size(30, decomposerNumVariablesThreshold_);
1703 if (((bitField1_ & 0x00000001) != 0)) {
1704 size += com.google.protobuf.CodedOutputStream
1705 .computeInt32Size(31, numBopSolversUsedByDecomposition_);
1707 if (((bitField0_ & 0x20000000) != 0)) {
1708 size += com.google.protobuf.GeneratedMessage.computeStringSize(33, defaultSolverOptimizerSets_);
1710 if (((bitField1_ & 0x00000004) != 0)) {
1711 size += com.google.protobuf.CodedOutputStream
1712 .computeInt32Size(34, guidedSatConflictsChunk_);
1714 if (((bitField0_ & 0x00000008) != 0)) {
1715 size += com.google.protobuf.CodedOutputStream
1716 .computeInt32Size(35, maxNumberOfConsecutiveFailingOptimizerCalls_);
1718 if (((bitField1_ & 0x00000002) != 0)) {
1719 size += com.google.protobuf.CodedOutputStream
1720 .computeDoubleSize(36, decomposedProblemMinTimeInSeconds_);
1722 if (((bitField0_ & 0x00000004) != 0)) {
1723 size += com.google.protobuf.CodedOutputStream
1724 .computeDoubleSize(37, lpMaxDeterministicTime_);
1726 if (((bitField0_ & 0x00000040) != 0)) {
1727 size += com.google.protobuf.CodedOutputStream
1728 .computeInt32Size(38, maxNumBrokenConstraintsInLs_);
1730 if (((bitField0_ & 0x02000000) != 0)) {
1731 size += com.google.protobuf.CodedOutputStream
1732 .computeBoolSize(39, usePotentialOneFlipRepairsInLs_);
1734 if (((bitField0_ & 0x00200000) != 0)) {
1735 size += com.google.protobuf.CodedOutputStream
1736 .computeBoolSize(40, exploitSymmetryInSatFirstSolution_);
1738 if (((bitField1_ & 0x00000008) != 0)) {
1739 size += com.google.protobuf.CodedOutputStream
1740 .computeInt32Size(41, maxLpSolveForFeasibilityProblems_);
1742 size += getUnknownFields().getSerializedSize();
1743 memoizedSize = size;
1748 public boolean equals(final java.lang.Object obj) {
1752 if (!(obj instanceof com.google.ortools.bop.BopParameters)) {
1753 return super.equals(obj);
1755 com.google.ortools.bop.BopParameters other = (com.google.ortools.bop.BopParameters) obj;
1757 if (hasMaxTimeInSeconds() != other.hasMaxTimeInSeconds()) return false;
1758 if (hasMaxTimeInSeconds()) {
1759 if (java.lang.Double.doubleToLongBits(getMaxTimeInSeconds())
1760 != java.lang.Double.doubleToLongBits(
1761 other.getMaxTimeInSeconds())) return false;
1763 if (hasMaxDeterministicTime() != other.hasMaxDeterministicTime()) return false;
1764 if (hasMaxDeterministicTime()) {
1765 if (java.lang.Double.doubleToLongBits(getMaxDeterministicTime())
1766 != java.lang.Double.doubleToLongBits(
1767 other.getMaxDeterministicTime())) return false;
1769 if (hasLpMaxDeterministicTime() != other.hasLpMaxDeterministicTime()) return false;
1770 if (hasLpMaxDeterministicTime()) {
1771 if (java.lang.Double.doubleToLongBits(getLpMaxDeterministicTime())
1772 != java.lang.Double.doubleToLongBits(
1773 other.getLpMaxDeterministicTime())) return false;
1775 if (hasMaxNumberOfConsecutiveFailingOptimizerCalls() != other.hasMaxNumberOfConsecutiveFailingOptimizerCalls()) return false;
1776 if (hasMaxNumberOfConsecutiveFailingOptimizerCalls()) {
1777 if (getMaxNumberOfConsecutiveFailingOptimizerCalls()
1778 != other.getMaxNumberOfConsecutiveFailingOptimizerCalls()) return false;
1780 if (hasRelativeGapLimit() != other.hasRelativeGapLimit()) return false;
1781 if (hasRelativeGapLimit()) {
1782 if (java.lang.Double.doubleToLongBits(getRelativeGapLimit())
1783 != java.lang.Double.doubleToLongBits(
1784 other.getRelativeGapLimit())) return false;
1786 if (hasMaxNumDecisionsInLs() != other.hasMaxNumDecisionsInLs()) return false;
1787 if (hasMaxNumDecisionsInLs()) {
1788 if (getMaxNumDecisionsInLs()
1789 != other.getMaxNumDecisionsInLs()) return false;
1791 if (hasMaxNumBrokenConstraintsInLs() != other.hasMaxNumBrokenConstraintsInLs()) return false;
1792 if (hasMaxNumBrokenConstraintsInLs()) {
1793 if (getMaxNumBrokenConstraintsInLs()
1794 != other.getMaxNumBrokenConstraintsInLs()) return false;
1796 if (hasLogSearchProgress() != other.hasLogSearchProgress()) return false;
1797 if (hasLogSearchProgress()) {
1798 if (getLogSearchProgress()
1799 != other.getLogSearchProgress()) return false;
1801 if (hasComputeEstimatedImpact() != other.hasComputeEstimatedImpact()) return false;
1802 if (hasComputeEstimatedImpact()) {
1803 if (getComputeEstimatedImpact()
1804 != other.getComputeEstimatedImpact()) return false;
1806 if (hasPruneSearchTree() != other.hasPruneSearchTree()) return false;
1807 if (hasPruneSearchTree()) {
1808 if (getPruneSearchTree()
1809 != other.getPruneSearchTree()) return false;
1811 if (hasSortConstraintsByNumTerms() != other.hasSortConstraintsByNumTerms()) return false;
1812 if (hasSortConstraintsByNumTerms()) {
1813 if (getSortConstraintsByNumTerms()
1814 != other.getSortConstraintsByNumTerms()) return false;
1816 if (hasUseRandomLns() != other.hasUseRandomLns()) return false;
1817 if (hasUseRandomLns()) {
1818 if (getUseRandomLns()
1819 != other.getUseRandomLns()) return false;
1821 if (hasRandomSeed() != other.hasRandomSeed()) return false;
1822 if (hasRandomSeed()) {
1824 != other.getRandomSeed()) return false;
1826 if (hasNumRelaxedVars() != other.hasNumRelaxedVars()) return false;
1827 if (hasNumRelaxedVars()) {
1828 if (getNumRelaxedVars()
1829 != other.getNumRelaxedVars()) return false;
1831 if (hasMaxNumberOfConflictsInRandomLns() != other.hasMaxNumberOfConflictsInRandomLns()) return false;
1832 if (hasMaxNumberOfConflictsInRandomLns()) {
1833 if (getMaxNumberOfConflictsInRandomLns()
1834 != other.getMaxNumberOfConflictsInRandomLns()) return false;
1836 if (hasNumRandomLnsTries() != other.hasNumRandomLnsTries()) return false;
1837 if (hasNumRandomLnsTries()) {
1838 if (getNumRandomLnsTries()
1839 != other.getNumRandomLnsTries()) return false;
1841 if (hasMaxNumberOfBacktracksInLs() != other.hasMaxNumberOfBacktracksInLs()) return false;
1842 if (hasMaxNumberOfBacktracksInLs()) {
1843 if (getMaxNumberOfBacktracksInLs()
1844 != other.getMaxNumberOfBacktracksInLs()) return false;
1846 if (hasUseLpLns() != other.hasUseLpLns()) return false;
1847 if (hasUseLpLns()) {
1849 != other.getUseLpLns()) return false;
1851 if (hasUseSatToChooseLnsNeighbourhood() != other.hasUseSatToChooseLnsNeighbourhood()) return false;
1852 if (hasUseSatToChooseLnsNeighbourhood()) {
1853 if (getUseSatToChooseLnsNeighbourhood()
1854 != other.getUseSatToChooseLnsNeighbourhood()) return false;
1856 if (hasMaxNumberOfConflictsForQuickCheck() != other.hasMaxNumberOfConflictsForQuickCheck()) return false;
1857 if (hasMaxNumberOfConflictsForQuickCheck()) {
1858 if (getMaxNumberOfConflictsForQuickCheck()
1859 != other.getMaxNumberOfConflictsForQuickCheck()) return false;
1861 if (hasUseSymmetry() != other.hasUseSymmetry()) return false;
1862 if (hasUseSymmetry()) {
1863 if (getUseSymmetry()
1864 != other.getUseSymmetry()) return false;
1866 if (hasExploitSymmetryInSatFirstSolution() != other.hasExploitSymmetryInSatFirstSolution()) return false;
1867 if (hasExploitSymmetryInSatFirstSolution()) {
1868 if (getExploitSymmetryInSatFirstSolution()
1869 != other.getExploitSymmetryInSatFirstSolution()) return false;
1871 if (hasMaxNumberOfConflictsInRandomSolutionGeneration() != other.hasMaxNumberOfConflictsInRandomSolutionGeneration()) return false;
1872 if (hasMaxNumberOfConflictsInRandomSolutionGeneration()) {
1873 if (getMaxNumberOfConflictsInRandomSolutionGeneration()
1874 != other.getMaxNumberOfConflictsInRandomSolutionGeneration()) return false;
1876 if (hasMaxNumberOfExploredAssignmentsPerTryInLs() != other.hasMaxNumberOfExploredAssignmentsPerTryInLs()) return false;
1877 if (hasMaxNumberOfExploredAssignmentsPerTryInLs()) {
1878 if (getMaxNumberOfExploredAssignmentsPerTryInLs()
1879 != other.getMaxNumberOfExploredAssignmentsPerTryInLs()) return false;
1881 if (hasUseTranspositionTableInLs() != other.hasUseTranspositionTableInLs()) return false;
1882 if (hasUseTranspositionTableInLs()) {
1883 if (getUseTranspositionTableInLs()
1884 != other.getUseTranspositionTableInLs()) return false;
1886 if (hasUsePotentialOneFlipRepairsInLs() != other.hasUsePotentialOneFlipRepairsInLs()) return false;
1887 if (hasUsePotentialOneFlipRepairsInLs()) {
1888 if (getUsePotentialOneFlipRepairsInLs()
1889 != other.getUsePotentialOneFlipRepairsInLs()) return false;
1891 if (hasUseLearnedBinaryClausesInLp() != other.hasUseLearnedBinaryClausesInLp()) return false;
1892 if (hasUseLearnedBinaryClausesInLp()) {
1893 if (getUseLearnedBinaryClausesInLp()
1894 != other.getUseLearnedBinaryClausesInLp()) return false;
1896 if (hasNumberOfSolvers() != other.hasNumberOfSolvers()) return false;
1897 if (hasNumberOfSolvers()) {
1898 if (getNumberOfSolvers()
1899 != other.getNumberOfSolvers()) return false;
1901 if (hasSynchronizationType() != other.hasSynchronizationType()) return false;
1902 if (hasSynchronizationType()) {
1903 if (synchronizationType_ != other.synchronizationType_) return false;
1905 if (!getSolverOptimizerSetsList()
1906 .equals(other.getSolverOptimizerSetsList())) return false;
1907 if (hasDefaultSolverOptimizerSets() != other.hasDefaultSolverOptimizerSets()) return false;
1908 if (hasDefaultSolverOptimizerSets()) {
1909 if (!getDefaultSolverOptimizerSets()
1910 .equals(other.getDefaultSolverOptimizerSets())) return false;
1912 if (hasUseLpStrongBranching() != other.hasUseLpStrongBranching()) return false;
1913 if (hasUseLpStrongBranching()) {
1914 if (getUseLpStrongBranching()
1915 != other.getUseLpStrongBranching()) return false;
1917 if (hasDecomposerNumVariablesThreshold() != other.hasDecomposerNumVariablesThreshold()) return false;
1918 if (hasDecomposerNumVariablesThreshold()) {
1919 if (getDecomposerNumVariablesThreshold()
1920 != other.getDecomposerNumVariablesThreshold()) return false;
1922 if (hasNumBopSolversUsedByDecomposition() != other.hasNumBopSolversUsedByDecomposition()) return false;
1923 if (hasNumBopSolversUsedByDecomposition()) {
1924 if (getNumBopSolversUsedByDecomposition()
1925 != other.getNumBopSolversUsedByDecomposition()) return false;
1927 if (hasDecomposedProblemMinTimeInSeconds() != other.hasDecomposedProblemMinTimeInSeconds()) return false;
1928 if (hasDecomposedProblemMinTimeInSeconds()) {
1929 if (java.lang.Double.doubleToLongBits(getDecomposedProblemMinTimeInSeconds())
1930 != java.lang.Double.doubleToLongBits(
1931 other.getDecomposedProblemMinTimeInSeconds())) return false;
1933 if (hasGuidedSatConflictsChunk() != other.hasGuidedSatConflictsChunk()) return false;
1934 if (hasGuidedSatConflictsChunk()) {
1935 if (getGuidedSatConflictsChunk()
1936 != other.getGuidedSatConflictsChunk()) return false;
1938 if (hasMaxLpSolveForFeasibilityProblems() != other.hasMaxLpSolveForFeasibilityProblems()) return false;
1939 if (hasMaxLpSolveForFeasibilityProblems()) {
1940 if (getMaxLpSolveForFeasibilityProblems()
1941 != other.getMaxLpSolveForFeasibilityProblems()) return false;
1943 if (!getUnknownFields().equals(other.getUnknownFields())) return false;
1948 public int hashCode() {
1949 if (memoizedHashCode != 0) {
1950 return memoizedHashCode;
1953 hash = (19 * hash) + getDescriptor().hashCode();
1954 if (hasMaxTimeInSeconds()) {
1955 hash = (37 * hash) + MAX_TIME_IN_SECONDS_FIELD_NUMBER;
1956 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
1957 java.lang.Double.doubleToLongBits(getMaxTimeInSeconds()));
1959 if (hasMaxDeterministicTime()) {
1960 hash = (37 * hash) + MAX_DETERMINISTIC_TIME_FIELD_NUMBER;
1961 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
1962 java.lang.Double.doubleToLongBits(getMaxDeterministicTime()));
1964 if (hasLpMaxDeterministicTime()) {
1965 hash = (37 * hash) + LP_MAX_DETERMINISTIC_TIME_FIELD_NUMBER;
1966 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
1967 java.lang.Double.doubleToLongBits(getLpMaxDeterministicTime()));
1969 if (hasMaxNumberOfConsecutiveFailingOptimizerCalls()) {
1970 hash = (37 * hash) + MAX_NUMBER_OF_CONSECUTIVE_FAILING_OPTIMIZER_CALLS_FIELD_NUMBER;
1971 hash = (53 * hash) + getMaxNumberOfConsecutiveFailingOptimizerCalls();
1973 if (hasRelativeGapLimit()) {
1974 hash = (37 * hash) + RELATIVE_GAP_LIMIT_FIELD_NUMBER;
1975 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
1976 java.lang.Double.doubleToLongBits(getRelativeGapLimit()));
1978 if (hasMaxNumDecisionsInLs()) {
1979 hash = (37 * hash) + MAX_NUM_DECISIONS_IN_LS_FIELD_NUMBER;
1980 hash = (53 * hash) + getMaxNumDecisionsInLs();
1982 if (hasMaxNumBrokenConstraintsInLs()) {
1983 hash = (37 * hash) + MAX_NUM_BROKEN_CONSTRAINTS_IN_LS_FIELD_NUMBER;
1984 hash = (53 * hash) + getMaxNumBrokenConstraintsInLs();
1986 if (hasLogSearchProgress()) {
1987 hash = (37 * hash) + LOG_SEARCH_PROGRESS_FIELD_NUMBER;
1988 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
1989 getLogSearchProgress());
1991 if (hasComputeEstimatedImpact()) {
1992 hash = (37 * hash) + COMPUTE_ESTIMATED_IMPACT_FIELD_NUMBER;
1993 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
1994 getComputeEstimatedImpact());
1996 if (hasPruneSearchTree()) {
1997 hash = (37 * hash) + PRUNE_SEARCH_TREE_FIELD_NUMBER;
1998 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
1999 getPruneSearchTree());
2001 if (hasSortConstraintsByNumTerms()) {
2002 hash = (37 * hash) + SORT_CONSTRAINTS_BY_NUM_TERMS_FIELD_NUMBER;
2003 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
2004 getSortConstraintsByNumTerms());
2006 if (hasUseRandomLns()) {
2007 hash = (37 * hash) + USE_RANDOM_LNS_FIELD_NUMBER;
2008 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
2011 if (hasRandomSeed()) {
2012 hash = (37 * hash) + RANDOM_SEED_FIELD_NUMBER;
2013 hash = (53 * hash) + getRandomSeed();
2015 if (hasNumRelaxedVars()) {
2016 hash = (37 * hash) + NUM_RELAXED_VARS_FIELD_NUMBER;
2017 hash = (53 * hash) + getNumRelaxedVars();
2019 if (hasMaxNumberOfConflictsInRandomLns()) {
2020 hash = (37 * hash) + MAX_NUMBER_OF_CONFLICTS_IN_RANDOM_LNS_FIELD_NUMBER;
2021 hash = (53 * hash) + getMaxNumberOfConflictsInRandomLns();
2023 if (hasNumRandomLnsTries()) {
2024 hash = (37 * hash) + NUM_RANDOM_LNS_TRIES_FIELD_NUMBER;
2025 hash = (53 * hash) + getNumRandomLnsTries();
2027 if (hasMaxNumberOfBacktracksInLs()) {
2028 hash = (37 * hash) + MAX_NUMBER_OF_BACKTRACKS_IN_LS_FIELD_NUMBER;
2029 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
2030 getMaxNumberOfBacktracksInLs());
2032 if (hasUseLpLns()) {
2033 hash = (37 * hash) + USE_LP_LNS_FIELD_NUMBER;
2034 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
2037 if (hasUseSatToChooseLnsNeighbourhood()) {
2038 hash = (37 * hash) + USE_SAT_TO_CHOOSE_LNS_NEIGHBOURHOOD_FIELD_NUMBER;
2039 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
2040 getUseSatToChooseLnsNeighbourhood());
2042 if (hasMaxNumberOfConflictsForQuickCheck()) {
2043 hash = (37 * hash) + MAX_NUMBER_OF_CONFLICTS_FOR_QUICK_CHECK_FIELD_NUMBER;
2044 hash = (53 * hash) + getMaxNumberOfConflictsForQuickCheck();
2046 if (hasUseSymmetry()) {
2047 hash = (37 * hash) + USE_SYMMETRY_FIELD_NUMBER;
2048 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
2051 if (hasExploitSymmetryInSatFirstSolution()) {
2052 hash = (37 * hash) + EXPLOIT_SYMMETRY_IN_SAT_FIRST_SOLUTION_FIELD_NUMBER;
2053 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
2054 getExploitSymmetryInSatFirstSolution());
2056 if (hasMaxNumberOfConflictsInRandomSolutionGeneration()) {
2057 hash = (37 * hash) + MAX_NUMBER_OF_CONFLICTS_IN_RANDOM_SOLUTION_GENERATION_FIELD_NUMBER;
2058 hash = (53 * hash) + getMaxNumberOfConflictsInRandomSolutionGeneration();
2060 if (hasMaxNumberOfExploredAssignmentsPerTryInLs()) {
2061 hash = (37 * hash) + MAX_NUMBER_OF_EXPLORED_ASSIGNMENTS_PER_TRY_IN_LS_FIELD_NUMBER;
2062 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
2063 getMaxNumberOfExploredAssignmentsPerTryInLs());
2065 if (hasUseTranspositionTableInLs()) {
2066 hash = (37 * hash) + USE_TRANSPOSITION_TABLE_IN_LS_FIELD_NUMBER;
2067 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
2068 getUseTranspositionTableInLs());
2070 if (hasUsePotentialOneFlipRepairsInLs()) {
2071 hash = (37 * hash) + USE_POTENTIAL_ONE_FLIP_REPAIRS_IN_LS_FIELD_NUMBER;
2072 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
2073 getUsePotentialOneFlipRepairsInLs());
2075 if (hasUseLearnedBinaryClausesInLp()) {
2076 hash = (37 * hash) + USE_LEARNED_BINARY_CLAUSES_IN_LP_FIELD_NUMBER;
2077 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
2078 getUseLearnedBinaryClausesInLp());
2080 if (hasNumberOfSolvers()) {
2081 hash = (37 * hash) + NUMBER_OF_SOLVERS_FIELD_NUMBER;
2082 hash = (53 * hash) + getNumberOfSolvers();
2084 if (hasSynchronizationType()) {
2085 hash = (37 * hash) + SYNCHRONIZATION_TYPE_FIELD_NUMBER;
2086 hash = (53 * hash) + synchronizationType_;
2088 if (getSolverOptimizerSetsCount() > 0) {
2089 hash = (37 * hash) + SOLVER_OPTIMIZER_SETS_FIELD_NUMBER;
2090 hash = (53 * hash) + getSolverOptimizerSetsList().hashCode();
2092 if (hasDefaultSolverOptimizerSets()) {
2093 hash = (37 * hash) + DEFAULT_SOLVER_OPTIMIZER_SETS_FIELD_NUMBER;
2094 hash = (53 * hash) + getDefaultSolverOptimizerSets().hashCode();
2096 if (hasUseLpStrongBranching()) {
2097 hash = (37 * hash) + USE_LP_STRONG_BRANCHING_FIELD_NUMBER;
2098 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
2099 getUseLpStrongBranching());
2101 if (hasDecomposerNumVariablesThreshold()) {
2102 hash = (37 * hash) + DECOMPOSER_NUM_VARIABLES_THRESHOLD_FIELD_NUMBER;
2103 hash = (53 * hash) + getDecomposerNumVariablesThreshold();
2105 if (hasNumBopSolversUsedByDecomposition()) {
2106 hash = (37 * hash) + NUM_BOP_SOLVERS_USED_BY_DECOMPOSITION_FIELD_NUMBER;
2107 hash = (53 * hash) + getNumBopSolversUsedByDecomposition();
2109 if (hasDecomposedProblemMinTimeInSeconds()) {
2110 hash = (37 * hash) + DECOMPOSED_PROBLEM_MIN_TIME_IN_SECONDS_FIELD_NUMBER;
2111 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
2112 java.lang.Double.doubleToLongBits(getDecomposedProblemMinTimeInSeconds()));
2114 if (hasGuidedSatConflictsChunk()) {
2115 hash = (37 * hash) + GUIDED_SAT_CONFLICTS_CHUNK_FIELD_NUMBER;
2116 hash = (53 * hash) + getGuidedSatConflictsChunk();
2118 if (hasMaxLpSolveForFeasibilityProblems()) {
2119 hash = (37 * hash) + MAX_LP_SOLVE_FOR_FEASIBILITY_PROBLEMS_FIELD_NUMBER;
2120 hash = (53 * hash) + getMaxLpSolveForFeasibilityProblems();
2122 hash = (29 * hash) + getUnknownFields().hashCode();
2123 memoizedHashCode = hash;
2229 public static final class Builder extends
2230 com.google.protobuf.GeneratedMessage.Builder<Builder> implements
2231 // @@protoc_insertion_point(builder_implements:operations_research.bop.BopParameters)
2232 com.google.ortools.bop.BopParametersOrBuilder {
2233 public static final com.google.protobuf.Descriptors.Descriptor
2235 return com.google.ortools.bop.BopParametersOuterClass.internal_static_operations_research_bop_BopParameters_descriptor;
2239 protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
2240 internalGetFieldAccessorTable() {
2241 return com.google.ortools.bop.BopParametersOuterClass.internal_static_operations_research_bop_BopParameters_fieldAccessorTable
2242 .ensureFieldAccessorsInitialized(
2243 com.google.ortools.bop.BopParameters.class, com.google.ortools.bop.BopParameters.Builder.class);
2246 // Construct using com.google.ortools.bop.BopParameters.newBuilder()
2252 com.google.protobuf.GeneratedMessage.BuilderParent parent) {
2257 public Builder clear() {
2261 maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
2262 maxDeterministicTime_ = Double.POSITIVE_INFINITY;
2263 lpMaxDeterministicTime_ = 1D;
2264 maxNumberOfConsecutiveFailingOptimizerCalls_ = 0;
2265 relativeGapLimit_ = 0.0001D;
2266 maxNumDecisionsInLs_ = 4;
2267 maxNumBrokenConstraintsInLs_ = 2147483647;
2268 logSearchProgress_ = false;
2269 computeEstimatedImpact_ = true;
2270 pruneSearchTree_ = false;
2271 sortConstraintsByNumTerms_ = false;
2272 useRandomLns_ = true;
2274 numRelaxedVars_ = 10;
2275 maxNumberOfConflictsInRandomLns_ = 2500;
2276 numRandomLnsTries_ = 1;
2277 maxNumberOfBacktracksInLs_ = 100000000L;
2279 useSatToChooseLnsNeighbourhood_ = true;
2280 maxNumberOfConflictsForQuickCheck_ = 10;
2281 useSymmetry_ = false;
2282 exploitSymmetryInSatFirstSolution_ = false;
2283 maxNumberOfConflictsInRandomSolutionGeneration_ = 500;
2284 maxNumberOfExploredAssignmentsPerTryInLs_ = 10000L;
2285 useTranspositionTableInLs_ = true;
2286 usePotentialOneFlipRepairsInLs_ = false;
2287 useLearnedBinaryClausesInLp_ = true;
2288 numberOfSolvers_ = 1;
2289 synchronizationType_ = 0;
2290 if (solverOptimizerSetsBuilder_ == null) {
2291 solverOptimizerSets_ = java.util.Collections.emptyList();
2293 solverOptimizerSets_ = null;
2294 solverOptimizerSetsBuilder_.clear();
2296 bitField0_ = (bitField0_ & ~0x20000000);
2297 defaultSolverOptimizerSets_ = "methods:{type:LOCAL_SEARCH } methods:{type:RANDOM_FIRST_SOLUTION } methods:{type:LINEAR_RELAXATION } methods:{type:LP_FIRST_SOLUTION } methods:{type:OBJECTIVE_FIRST_SOLUTION } methods:{type:USER_GUIDED_FIRST_SOLUTION } methods:{type:RANDOM_CONSTRAINT_LNS_GUIDED_BY_LP } methods:{type:RANDOM_VARIABLE_LNS_GUIDED_BY_LP } methods:{type:RELATION_GRAPH_LNS } methods:{type:RELATION_GRAPH_LNS_GUIDED_BY_LP } methods:{type:RANDOM_CONSTRAINT_LNS } methods:{type:RANDOM_VARIABLE_LNS } methods:{type:SAT_CORE_BASED } methods:{type:COMPLETE_LNS }
";
2298 useLpStrongBranching_ = false;
2299 decomposerNumVariablesThreshold_ = 50;
2300 numBopSolversUsedByDecomposition_ = 1;
2301 decomposedProblemMinTimeInSeconds_ = 0D;
2302 guidedSatConflictsChunk_ = 1000;
2303 maxLpSolveForFeasibilityProblems_ = 0;
2308 public com.google.protobuf.Descriptors.Descriptor
2309 getDescriptorForType() {
2310 return com.google.ortools.bop.BopParametersOuterClass.internal_static_operations_research_bop_BopParameters_descriptor;
2314 public com.google.ortools.bop.BopParameters getDefaultInstanceForType() {
2315 return com.google.ortools.bop.BopParameters.getDefaultInstance();
2319 public com.google.ortools.bop.BopParameters build() {
2320 com.google.ortools.bop.BopParameters result = buildPartial();
2321 if (!result.isInitialized()) {
2322 throw newUninitializedMessageException(result);
2328 public com.google.ortools.bop.BopParameters buildPartial() {
2329 com.google.ortools.bop.BopParameters result = new com.google.ortools.bop.BopParameters(this);
2330 buildPartialRepeatedFields(result);
2331 if (bitField0_ != 0) { buildPartial0(result); }
2332 if (bitField1_ != 0) { buildPartial1(result); }
2337 private void buildPartialRepeatedFields(com.google.ortools.bop.BopParameters result) {
2338 if (solverOptimizerSetsBuilder_ == null) {
2339 if (((bitField0_ & 0x20000000) != 0)) {
2340 solverOptimizerSets_ = java.util.Collections.unmodifiableList(solverOptimizerSets_);
2341 bitField0_ = (bitField0_ & ~0x20000000);
2343 result.solverOptimizerSets_ = solverOptimizerSets_;
2345 result.solverOptimizerSets_ = solverOptimizerSetsBuilder_.build();
2349 private void buildPartial0(com.google.ortools.bop.BopParameters result) {
2350 int from_bitField0_ = bitField0_;
2351 int to_bitField0_ = 0;
2352 if (((from_bitField0_ & 0x00000001) != 0)) {
2353 result.maxTimeInSeconds_ = maxTimeInSeconds_;
2354 to_bitField0_ |= 0x00000001;
2356 if (((from_bitField0_ & 0x00000002) != 0)) {
2357 result.maxDeterministicTime_ = maxDeterministicTime_;
2358 to_bitField0_ |= 0x00000002;
2360 if (((from_bitField0_ & 0x00000004) != 0)) {
2361 result.lpMaxDeterministicTime_ = lpMaxDeterministicTime_;
2362 to_bitField0_ |= 0x00000004;
2364 if (((from_bitField0_ & 0x00000008) != 0)) {
2365 result.maxNumberOfConsecutiveFailingOptimizerCalls_ = maxNumberOfConsecutiveFailingOptimizerCalls_;
2366 to_bitField0_ |= 0x00000008;
2368 if (((from_bitField0_ & 0x00000010) != 0)) {
2369 result.relativeGapLimit_ = relativeGapLimit_;
2370 to_bitField0_ |= 0x00000010;
2372 if (((from_bitField0_ & 0x00000020) != 0)) {
2373 result.maxNumDecisionsInLs_ = maxNumDecisionsInLs_;
2374 to_bitField0_ |= 0x00000020;
2376 if (((from_bitField0_ & 0x00000040) != 0)) {
2377 result.maxNumBrokenConstraintsInLs_ = maxNumBrokenConstraintsInLs_;
2378 to_bitField0_ |= 0x00000040;
2380 if (((from_bitField0_ & 0x00000080) != 0)) {
2381 result.logSearchProgress_ = logSearchProgress_;
2382 to_bitField0_ |= 0x00000080;
2384 if (((from_bitField0_ & 0x00000100) != 0)) {
2385 result.computeEstimatedImpact_ = computeEstimatedImpact_;
2386 to_bitField0_ |= 0x00000100;
2388 if (((from_bitField0_ & 0x00000200) != 0)) {
2389 result.pruneSearchTree_ = pruneSearchTree_;
2390 to_bitField0_ |= 0x00000200;
2392 if (((from_bitField0_ & 0x00000400) != 0)) {
2393 result.sortConstraintsByNumTerms_ = sortConstraintsByNumTerms_;
2394 to_bitField0_ |= 0x00000400;
2396 if (((from_bitField0_ & 0x00000800) != 0)) {
2397 result.useRandomLns_ = useRandomLns_;
2398 to_bitField0_ |= 0x00000800;
2400 if (((from_bitField0_ & 0x00001000) != 0)) {
2401 result.randomSeed_ = randomSeed_;
2402 to_bitField0_ |= 0x00001000;
2404 if (((from_bitField0_ & 0x00002000) != 0)) {
2405 result.numRelaxedVars_ = numRelaxedVars_;
2406 to_bitField0_ |= 0x00002000;
2408 if (((from_bitField0_ & 0x00004000) != 0)) {
2409 result.maxNumberOfConflictsInRandomLns_ = maxNumberOfConflictsInRandomLns_;
2410 to_bitField0_ |= 0x00004000;
2412 if (((from_bitField0_ & 0x00008000) != 0)) {
2413 result.numRandomLnsTries_ = numRandomLnsTries_;
2414 to_bitField0_ |= 0x00008000;
2416 if (((from_bitField0_ & 0x00010000) != 0)) {
2417 result.maxNumberOfBacktracksInLs_ = maxNumberOfBacktracksInLs_;
2418 to_bitField0_ |= 0x00010000;
2420 if (((from_bitField0_ & 0x00020000) != 0)) {
2421 result.useLpLns_ = useLpLns_;
2422 to_bitField0_ |= 0x00020000;
2424 if (((from_bitField0_ & 0x00040000) != 0)) {
2425 result.useSatToChooseLnsNeighbourhood_ = useSatToChooseLnsNeighbourhood_;
2426 to_bitField0_ |= 0x00040000;
2428 if (((from_bitField0_ & 0x00080000) != 0)) {
2429 result.maxNumberOfConflictsForQuickCheck_ = maxNumberOfConflictsForQuickCheck_;
2430 to_bitField0_ |= 0x00080000;
2432 if (((from_bitField0_ & 0x00100000) != 0)) {
2433 result.useSymmetry_ = useSymmetry_;
2434 to_bitField0_ |= 0x00100000;
2436 if (((from_bitField0_ & 0x00200000) != 0)) {
2437 result.exploitSymmetryInSatFirstSolution_ = exploitSymmetryInSatFirstSolution_;
2438 to_bitField0_ |= 0x00200000;
2440 if (((from_bitField0_ & 0x00400000) != 0)) {
2441 result.maxNumberOfConflictsInRandomSolutionGeneration_ = maxNumberOfConflictsInRandomSolutionGeneration_;
2442 to_bitField0_ |= 0x00400000;
2444 if (((from_bitField0_ & 0x00800000) != 0)) {
2445 result.maxNumberOfExploredAssignmentsPerTryInLs_ = maxNumberOfExploredAssignmentsPerTryInLs_;
2446 to_bitField0_ |= 0x00800000;
2448 if (((from_bitField0_ & 0x01000000) != 0)) {
2449 result.useTranspositionTableInLs_ = useTranspositionTableInLs_;
2450 to_bitField0_ |= 0x01000000;
2452 if (((from_bitField0_ & 0x02000000) != 0)) {
2453 result.usePotentialOneFlipRepairsInLs_ = usePotentialOneFlipRepairsInLs_;
2454 to_bitField0_ |= 0x02000000;
2456 if (((from_bitField0_ & 0x04000000) != 0)) {
2457 result.useLearnedBinaryClausesInLp_ = useLearnedBinaryClausesInLp_;
2458 to_bitField0_ |= 0x04000000;
2460 if (((from_bitField0_ & 0x08000000) != 0)) {
2461 result.numberOfSolvers_ = numberOfSolvers_;
2462 to_bitField0_ |= 0x08000000;
2464 if (((from_bitField0_ & 0x10000000) != 0)) {
2465 result.synchronizationType_ = synchronizationType_;
2466 to_bitField0_ |= 0x10000000;
2468 if (((from_bitField0_ & 0x40000000) != 0)) {
2469 result.defaultSolverOptimizerSets_ = defaultSolverOptimizerSets_;
2470 to_bitField0_ |= 0x20000000;
2472 if (((from_bitField0_ & 0x80000000) != 0)) {
2473 result.useLpStrongBranching_ = useLpStrongBranching_;
2474 to_bitField0_ |= 0x40000000;
2476 result.bitField0_ |= to_bitField0_;
2479 private void buildPartial1(com.google.ortools.bop.BopParameters result) {
2480 int from_bitField1_ = bitField1_;
2481 int to_bitField0_ = 0;
2482 if (((from_bitField1_ & 0x00000001) != 0)) {
2483 result.decomposerNumVariablesThreshold_ = decomposerNumVariablesThreshold_;
2484 to_bitField0_ |= 0x80000000;
2486 int to_bitField1_ = 0;
2487 if (((from_bitField1_ & 0x00000002) != 0)) {
2488 result.numBopSolversUsedByDecomposition_ = numBopSolversUsedByDecomposition_;
2489 to_bitField1_ |= 0x00000001;
2491 if (((from_bitField1_ & 0x00000004) != 0)) {
2492 result.decomposedProblemMinTimeInSeconds_ = decomposedProblemMinTimeInSeconds_;
2493 to_bitField1_ |= 0x00000002;
2495 if (((from_bitField1_ & 0x00000008) != 0)) {
2496 result.guidedSatConflictsChunk_ = guidedSatConflictsChunk_;
2497 to_bitField1_ |= 0x00000004;
2499 if (((from_bitField1_ & 0x00000010) != 0)) {
2500 result.maxLpSolveForFeasibilityProblems_ = maxLpSolveForFeasibilityProblems_;
2501 to_bitField1_ |= 0x00000008;
2503 result.bitField0_ |= to_bitField0_;
2504 result.bitField1_ |= to_bitField1_;
2508 public Builder mergeFrom(com.google.protobuf.Message other) {
2509 if (other instanceof com.google.ortools.bop.BopParameters) {
2510 return mergeFrom((com.google.ortools.bop.BopParameters)other);
2512 super.mergeFrom(other);
2517 public Builder mergeFrom(com.google.ortools.bop.BopParameters other) {
2518 if (other == com.google.ortools.bop.BopParameters.getDefaultInstance()) return this;
2519 if (other.hasMaxTimeInSeconds()) {
2520 setMaxTimeInSeconds(other.getMaxTimeInSeconds());
2522 if (other.hasMaxDeterministicTime()) {
2523 setMaxDeterministicTime(other.getMaxDeterministicTime());
2525 if (other.hasLpMaxDeterministicTime()) {
2526 setLpMaxDeterministicTime(other.getLpMaxDeterministicTime());
2528 if (other.hasMaxNumberOfConsecutiveFailingOptimizerCalls()) {
2529 setMaxNumberOfConsecutiveFailingOptimizerCalls(other.getMaxNumberOfConsecutiveFailingOptimizerCalls());
2531 if (other.hasRelativeGapLimit()) {
2532 setRelativeGapLimit(other.getRelativeGapLimit());
2534 if (other.hasMaxNumDecisionsInLs()) {
2535 setMaxNumDecisionsInLs(other.getMaxNumDecisionsInLs());
2537 if (other.hasMaxNumBrokenConstraintsInLs()) {
2538 setMaxNumBrokenConstraintsInLs(other.getMaxNumBrokenConstraintsInLs());
2540 if (other.hasLogSearchProgress()) {
2541 setLogSearchProgress(other.getLogSearchProgress());
2543 if (other.hasComputeEstimatedImpact()) {
2544 setComputeEstimatedImpact(other.getComputeEstimatedImpact());
2546 if (other.hasPruneSearchTree()) {
2547 setPruneSearchTree(other.getPruneSearchTree());
2549 if (other.hasSortConstraintsByNumTerms()) {
2550 setSortConstraintsByNumTerms(other.getSortConstraintsByNumTerms());
2552 if (other.hasUseRandomLns()) {
2553 setUseRandomLns(other.getUseRandomLns());
2555 if (other.hasRandomSeed()) {
2556 setRandomSeed(other.getRandomSeed());
2558 if (other.hasNumRelaxedVars()) {
2559 setNumRelaxedVars(other.getNumRelaxedVars());
2561 if (other.hasMaxNumberOfConflictsInRandomLns()) {
2562 setMaxNumberOfConflictsInRandomLns(other.getMaxNumberOfConflictsInRandomLns());
2564 if (other.hasNumRandomLnsTries()) {
2565 setNumRandomLnsTries(other.getNumRandomLnsTries());
2567 if (other.hasMaxNumberOfBacktracksInLs()) {
2568 setMaxNumberOfBacktracksInLs(other.getMaxNumberOfBacktracksInLs());
2570 if (other.hasUseLpLns()) {
2571 setUseLpLns(other.getUseLpLns());
2573 if (other.hasUseSatToChooseLnsNeighbourhood()) {
2574 setUseSatToChooseLnsNeighbourhood(other.getUseSatToChooseLnsNeighbourhood());
2576 if (other.hasMaxNumberOfConflictsForQuickCheck()) {
2577 setMaxNumberOfConflictsForQuickCheck(other.getMaxNumberOfConflictsForQuickCheck());
2579 if (other.hasUseSymmetry()) {
2580 setUseSymmetry(other.getUseSymmetry());
2582 if (other.hasExploitSymmetryInSatFirstSolution()) {
2583 setExploitSymmetryInSatFirstSolution(other.getExploitSymmetryInSatFirstSolution());
2585 if (other.hasMaxNumberOfConflictsInRandomSolutionGeneration()) {
2586 setMaxNumberOfConflictsInRandomSolutionGeneration(other.getMaxNumberOfConflictsInRandomSolutionGeneration());
2588 if (other.hasMaxNumberOfExploredAssignmentsPerTryInLs()) {
2589 setMaxNumberOfExploredAssignmentsPerTryInLs(other.getMaxNumberOfExploredAssignmentsPerTryInLs());
2591 if (other.hasUseTranspositionTableInLs()) {
2592 setUseTranspositionTableInLs(other.getUseTranspositionTableInLs());
2594 if (other.hasUsePotentialOneFlipRepairsInLs()) {
2595 setUsePotentialOneFlipRepairsInLs(other.getUsePotentialOneFlipRepairsInLs());
2597 if (other.hasUseLearnedBinaryClausesInLp()) {
2598 setUseLearnedBinaryClausesInLp(other.getUseLearnedBinaryClausesInLp());
2600 if (other.hasNumberOfSolvers()) {
2601 setNumberOfSolvers(other.getNumberOfSolvers());
2603 if (other.hasSynchronizationType()) {
2604 setSynchronizationType(other.getSynchronizationType());
2606 if (solverOptimizerSetsBuilder_ == null) {
2607 if (!other.solverOptimizerSets_.isEmpty()) {
2608 if (solverOptimizerSets_.isEmpty()) {
2609 solverOptimizerSets_ = other.solverOptimizerSets_;
2610 bitField0_ = (bitField0_ & ~0x20000000);
2612 ensureSolverOptimizerSetsIsMutable();
2613 solverOptimizerSets_.addAll(other.solverOptimizerSets_);
2618 if (!other.solverOptimizerSets_.isEmpty()) {
2619 if (solverOptimizerSetsBuilder_.isEmpty()) {
2620 solverOptimizerSetsBuilder_.dispose();
2621 solverOptimizerSetsBuilder_ = null;
2622 solverOptimizerSets_ = other.solverOptimizerSets_;
2623 bitField0_ = (bitField0_ & ~0x20000000);
2624 solverOptimizerSetsBuilder_ =
2625 com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
2626 getSolverOptimizerSetsFieldBuilder() : null;
2628 solverOptimizerSetsBuilder_.addAllMessages(other.solverOptimizerSets_);
2632 if (other.hasDefaultSolverOptimizerSets()) {
2633 defaultSolverOptimizerSets_ = other.defaultSolverOptimizerSets_;
2634 bitField0_ |= 0x40000000;
2637 if (other.hasUseLpStrongBranching()) {
2638 setUseLpStrongBranching(other.getUseLpStrongBranching());
2640 if (other.hasDecomposerNumVariablesThreshold()) {
2641 setDecomposerNumVariablesThreshold(other.getDecomposerNumVariablesThreshold());
2643 if (other.hasNumBopSolversUsedByDecomposition()) {
2644 setNumBopSolversUsedByDecomposition(other.getNumBopSolversUsedByDecomposition());
2646 if (other.hasDecomposedProblemMinTimeInSeconds()) {
2647 setDecomposedProblemMinTimeInSeconds(other.getDecomposedProblemMinTimeInSeconds());
2649 if (other.hasGuidedSatConflictsChunk()) {
2650 setGuidedSatConflictsChunk(other.getGuidedSatConflictsChunk());
2652 if (other.hasMaxLpSolveForFeasibilityProblems()) {
2653 setMaxLpSolveForFeasibilityProblems(other.getMaxLpSolveForFeasibilityProblems());
2655 this.mergeUnknownFields(other.getUnknownFields());
2661 public final boolean isInitialized() {
2666 public Builder mergeFrom(
2667 com.google.protobuf.CodedInputStream input,
2668 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2669 throws java.io.IOException {
2670 if (extensionRegistry == null) {
2671 throw new java.lang.NullPointerException();
2674 boolean done = false;
2676 int tag = input.readTag();
2682 maxTimeInSeconds_ = input.readDouble();
2683 bitField0_ |= 0x00000001;
2687 maxNumDecisionsInLs_ = input.readInt32();
2688 bitField0_ |= 0x00000020;
2692 computeEstimatedImpact_ = input.readBool();
2693 bitField0_ |= 0x00000100;
2697 pruneSearchTree_ = input.readBool();
2698 bitField0_ |= 0x00000200;
2702 sortConstraintsByNumTerms_ = input.readBool();
2703 bitField0_ |= 0x00000400;
2707 useRandomLns_ = input.readBool();
2708 bitField0_ |= 0x00000800;
2712 randomSeed_ = input.readInt32();
2713 bitField0_ |= 0x00001000;
2717 numRelaxedVars_ = input.readInt32();
2718 bitField0_ |= 0x00002000;
2722 maxNumberOfConflictsInRandomLns_ = input.readInt32();
2723 bitField0_ |= 0x00004000;
2727 numRandomLnsTries_ = input.readInt32();
2728 bitField0_ |= 0x00008000;
2732 maxNumberOfBacktracksInLs_ = input.readInt64();
2733 bitField0_ |= 0x00010000;
2737 useLpLns_ = input.readBool();
2738 bitField0_ |= 0x00020000;
2742 logSearchProgress_ = input.readBool();
2743 bitField0_ |= 0x00000080;
2747 useSatToChooseLnsNeighbourhood_ = input.readBool();
2748 bitField0_ |= 0x00040000;
2752 maxNumberOfConflictsForQuickCheck_ = input.readInt32();
2753 bitField0_ |= 0x00080000;
2757 useSymmetry_ = input.readBool();
2758 bitField0_ |= 0x00100000;
2762 maxNumberOfConflictsInRandomSolutionGeneration_ = input.readInt32();
2763 bitField0_ |= 0x00400000;
2767 maxNumberOfExploredAssignmentsPerTryInLs_ = input.readInt64();
2768 bitField0_ |= 0x00800000;
2772 useTranspositionTableInLs_ = input.readBool();
2773 bitField0_ |= 0x01000000;
2777 useLearnedBinaryClausesInLp_ = input.readBool();
2778 bitField0_ |= 0x04000000;
2782 numberOfSolvers_ = input.readInt32();
2783 bitField0_ |= 0x08000000;
2787 int tmpRaw = input.readEnum();
2788 com.google.ortools.bop.BopParameters.ThreadSynchronizationType tmpValue =
2789 com.google.ortools.bop.BopParameters.ThreadSynchronizationType.forNumber(tmpRaw);
2790 if (tmpValue == null) {
2791 mergeUnknownVarintField(25, tmpRaw);
2793 synchronizationType_ = tmpRaw;
2794 bitField0_ |= 0x10000000;
2799 com.google.ortools.bop.BopSolverOptimizerSet m =
2801 com.google.ortools.bop.BopSolverOptimizerSet.parser(),
2803 if (solverOptimizerSetsBuilder_ == null) {
2804 ensureSolverOptimizerSetsIsMutable();
2805 solverOptimizerSets_.add(m);
2807 solverOptimizerSetsBuilder_.addMessage(m);
2812 maxDeterministicTime_ = input.readDouble();
2813 bitField0_ |= 0x00000002;
2817 relativeGapLimit_ = input.readDouble();
2818 bitField0_ |= 0x00000010;
2822 useLpStrongBranching_ = input.readBool();
2823 bitField0_ |= 0x80000000;
2827 decomposerNumVariablesThreshold_ = input.readInt32();
2828 bitField1_ |= 0x00000001;
2832 numBopSolversUsedByDecomposition_ = input.readInt32();
2833 bitField1_ |= 0x00000002;
2837 defaultSolverOptimizerSets_ = input.readBytes();
2838 bitField0_ |= 0x40000000;
2842 guidedSatConflictsChunk_ = input.readInt32();
2843 bitField1_ |= 0x00000008;
2847 maxNumberOfConsecutiveFailingOptimizerCalls_ = input.readInt32();
2848 bitField0_ |= 0x00000008;
2852 decomposedProblemMinTimeInSeconds_ = input.readDouble();
2853 bitField1_ |= 0x00000004;
2857 lpMaxDeterministicTime_ = input.readDouble();
2858 bitField0_ |= 0x00000004;
2862 maxNumBrokenConstraintsInLs_ = input.readInt32();
2863 bitField0_ |= 0x00000040;
2867 usePotentialOneFlipRepairsInLs_ = input.readBool();
2868 bitField0_ |= 0x02000000;
2872 exploitSymmetryInSatFirstSolution_ = input.readBool();
2873 bitField0_ |= 0x00200000;
2877 maxLpSolveForFeasibilityProblems_ = input.readInt32();
2878 bitField1_ |= 0x00000010;
2882 if (!super.parseUnknownField(input, extensionRegistry, tag)) {
2883 done = true; // was an endgroup tag
2889 } catch (com.google.protobuf.InvalidProtocolBufferException e) {
2890 throw e.unwrapIOException();
2896 private int bitField0_;
2897 private int bitField1_;
2899 private double maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
2910 public boolean hasMaxTimeInSeconds() {
2911 return ((bitField0_ & 0x00000001) != 0);
2923 public double getMaxTimeInSeconds() {
2924 return maxTimeInSeconds_;
2936 public Builder setMaxTimeInSeconds(double value) {
2938 maxTimeInSeconds_ = value;
2939 bitField0_ |= 0x00000001;
2952 public Builder clearMaxTimeInSeconds() {
2953 bitField0_ = (bitField0_ & ~0x00000001);
2954 maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
2959 private double maxDeterministicTime_ = Double.POSITIVE_INFINITY;
2973 public boolean hasMaxDeterministicTime() {
2974 return ((bitField0_ & 0x00000002) != 0);
2989 public double getMaxDeterministicTime() {
2990 return maxDeterministicTime_;
3005 public Builder setMaxDeterministicTime(double value) {
3007 maxDeterministicTime_ = value;
3008 bitField0_ |= 0x00000002;
3024 public Builder clearMaxDeterministicTime() {
3025 bitField0_ = (bitField0_ & ~0x00000002);
3026 maxDeterministicTime_ = Double.POSITIVE_INFINITY;
3031 private double lpMaxDeterministicTime_ = 1D;
3043 public boolean hasLpMaxDeterministicTime() {
3044 return ((bitField0_ & 0x00000004) != 0);
3057 public double getLpMaxDeterministicTime() {
3058 return lpMaxDeterministicTime_;
3071 public Builder setLpMaxDeterministicTime(double value) {
3073 lpMaxDeterministicTime_ = value;
3074 bitField0_ |= 0x00000004;
3088 public Builder clearLpMaxDeterministicTime() {
3089 bitField0_ = (bitField0_ & ~0x00000004);
3090 lpMaxDeterministicTime_ = 1D;
3095 private int maxNumberOfConsecutiveFailingOptimizerCalls_ ;
3109 public boolean hasMaxNumberOfConsecutiveFailingOptimizerCalls() {
3110 return ((bitField0_ & 0x00000008) != 0);
3125 public int getMaxNumberOfConsecutiveFailingOptimizerCalls() {
3126 return maxNumberOfConsecutiveFailingOptimizerCalls_;
3141 public Builder setMaxNumberOfConsecutiveFailingOptimizerCalls(int value) {
3143 maxNumberOfConsecutiveFailingOptimizerCalls_ = value;
3144 bitField0_ |= 0x00000008;
3160 public Builder clearMaxNumberOfConsecutiveFailingOptimizerCalls() {
3161 bitField0_ = (bitField0_ & ~0x00000008);
3162 maxNumberOfConsecutiveFailingOptimizerCalls_ = 0;
3167 private double relativeGapLimit_ = 0.0001D;
3181 public boolean hasRelativeGapLimit() {
3182 return ((bitField0_ & 0x00000010) != 0);
3197 public double getRelativeGapLimit() {
3198 return relativeGapLimit_;
3213 public Builder setRelativeGapLimit(double value) {
3215 relativeGapLimit_ = value;
3216 bitField0_ |= 0x00000010;
3232 public Builder clearRelativeGapLimit() {
3233 bitField0_ = (bitField0_ & ~0x00000010);
3234 relativeGapLimit_ = 0.0001D;
3239 private int maxNumDecisionsInLs_ = 4;
3250 public boolean hasMaxNumDecisionsInLs() {
3251 return ((bitField0_ & 0x00000020) != 0);
3263 public int getMaxNumDecisionsInLs() {
3264 return maxNumDecisionsInLs_;
3276 public Builder setMaxNumDecisionsInLs(int value) {
3278 maxNumDecisionsInLs_ = value;
3279 bitField0_ |= 0x00000020;
3292 public Builder clearMaxNumDecisionsInLs() {
3293 bitField0_ = (bitField0_ & ~0x00000020);
3294 maxNumDecisionsInLs_ = 4;
3299 private int maxNumBrokenConstraintsInLs_ = 2147483647;
3311 public boolean hasMaxNumBrokenConstraintsInLs() {
3312 return ((bitField0_ & 0x00000040) != 0);
3325 public int getMaxNumBrokenConstraintsInLs() {
3326 return maxNumBrokenConstraintsInLs_;
3339 public Builder setMaxNumBrokenConstraintsInLs(int value) {
3341 maxNumBrokenConstraintsInLs_ = value;
3342 bitField0_ |= 0x00000040;
3356 public Builder clearMaxNumBrokenConstraintsInLs() {
3357 bitField0_ = (bitField0_ & ~0x00000040);
3358 maxNumBrokenConstraintsInLs_ = 2147483647;
3363 private boolean logSearchProgress_ ;
3373 public boolean hasLogSearchProgress() {
3374 return ((bitField0_ & 0x00000080) != 0);
3385 public boolean getLogSearchProgress() {
3386 return logSearchProgress_;
3397 public Builder setLogSearchProgress(boolean value) {
3399 logSearchProgress_ = value;
3400 bitField0_ |= 0x00000080;
3412 public Builder clearLogSearchProgress() {
3413 bitField0_ = (bitField0_ & ~0x00000080);
3414 logSearchProgress_ = false;
3419 private boolean computeEstimatedImpact_ = true;
3429 public boolean hasComputeEstimatedImpact() {
3430 return ((bitField0_ & 0x00000100) != 0);
3441 public boolean getComputeEstimatedImpact() {
3442 return computeEstimatedImpact_;
3453 public Builder setComputeEstimatedImpact(boolean value) {
3455 computeEstimatedImpact_ = value;
3456 bitField0_ |= 0x00000100;
3468 public Builder clearComputeEstimatedImpact() {
3469 bitField0_ = (bitField0_ & ~0x00000100);
3470 computeEstimatedImpact_ = true;
3475 private boolean pruneSearchTree_ ;
3485 public boolean hasPruneSearchTree() {
3486 return ((bitField0_ & 0x00000200) != 0);
3497 public boolean getPruneSearchTree() {
3498 return pruneSearchTree_;
3509 public Builder setPruneSearchTree(boolean value) {
3511 pruneSearchTree_ = value;
3512 bitField0_ |= 0x00000200;
3524 public Builder clearPruneSearchTree() {
3525 bitField0_ = (bitField0_ & ~0x00000200);
3526 pruneSearchTree_ = false;
3531 private boolean sortConstraintsByNumTerms_ ;
3542 public boolean hasSortConstraintsByNumTerms() {
3543 return ((bitField0_ & 0x00000400) != 0);
3555 public boolean getSortConstraintsByNumTerms() {
3556 return sortConstraintsByNumTerms_;
3568 public Builder setSortConstraintsByNumTerms(boolean value) {
3570 sortConstraintsByNumTerms_ = value;
3571 bitField0_ |= 0x00000400;
3584 public Builder clearSortConstraintsByNumTerms() {
3585 bitField0_ = (bitField0_ & ~0x00000400);
3586 sortConstraintsByNumTerms_ = false;
3591 private boolean useRandomLns_ = true;
3601 public boolean hasUseRandomLns() {
3602 return ((bitField0_ & 0x00000800) != 0);
3613 public boolean getUseRandomLns() {
3614 return useRandomLns_;
3625 public Builder setUseRandomLns(boolean value) {
3627 useRandomLns_ = value;
3628 bitField0_ |= 0x00000800;
3640 public Builder clearUseRandomLns() {
3641 bitField0_ = (bitField0_ & ~0x00000800);
3642 useRandomLns_ = true;
3647 private int randomSeed_ = 8;
3661 public boolean hasRandomSeed() {
3662 return ((bitField0_ & 0x00001000) != 0);
3677 public int getRandomSeed() {
3693 public Builder setRandomSeed(int value) {
3695 randomSeed_ = value;
3696 bitField0_ |= 0x00001000;
3712 public Builder clearRandomSeed() {
3713 bitField0_ = (bitField0_ & ~0x00001000);
3719 private int numRelaxedVars_ = 10;
3729 public boolean hasNumRelaxedVars() {
3730 return ((bitField0_ & 0x00002000) != 0);
3741 public int getNumRelaxedVars() {
3742 return numRelaxedVars_;
3753 public Builder setNumRelaxedVars(int value) {
3755 numRelaxedVars_ = value;
3756 bitField0_ |= 0x00002000;
3768 public Builder clearNumRelaxedVars() {
3769 bitField0_ = (bitField0_ & ~0x00002000);
3770 numRelaxedVars_ = 10;
3775 private int maxNumberOfConflictsInRandomLns_ = 2500;
3786 public boolean hasMaxNumberOfConflictsInRandomLns() {
3787 return ((bitField0_ & 0x00004000) != 0);
3799 public int getMaxNumberOfConflictsInRandomLns() {
3800 return maxNumberOfConflictsInRandomLns_;
3812 public Builder setMaxNumberOfConflictsInRandomLns(int value) {
3814 maxNumberOfConflictsInRandomLns_ = value;
3815 bitField0_ |= 0x00004000;
3828 public Builder clearMaxNumberOfConflictsInRandomLns() {
3829 bitField0_ = (bitField0_ & ~0x00004000);
3830 maxNumberOfConflictsInRandomLns_ = 2500;
3835 private int numRandomLnsTries_ = 1;
3845 public boolean hasNumRandomLnsTries() {
3846 return ((bitField0_ & 0x00008000) != 0);
3857 public int getNumRandomLnsTries() {
3858 return numRandomLnsTries_;
3869 public Builder setNumRandomLnsTries(int value) {
3871 numRandomLnsTries_ = value;
3872 bitField0_ |= 0x00008000;
3884 public Builder clearNumRandomLnsTries() {
3885 bitField0_ = (bitField0_ & ~0x00008000);
3886 numRandomLnsTries_ = 1;
3891 private long maxNumberOfBacktracksInLs_ = 100000000L;
3902 public boolean hasMaxNumberOfBacktracksInLs() {
3903 return ((bitField0_ & 0x00010000) != 0);
3915 public long getMaxNumberOfBacktracksInLs() {
3916 return maxNumberOfBacktracksInLs_;
3928 public Builder setMaxNumberOfBacktracksInLs(long value) {
3930 maxNumberOfBacktracksInLs_ = value;
3931 bitField0_ |= 0x00010000;
3944 public Builder clearMaxNumberOfBacktracksInLs() {
3945 bitField0_ = (bitField0_ & ~0x00010000);
3946 maxNumberOfBacktracksInLs_ = 100000000L;
3951 private boolean useLpLns_ = true;
3961 public boolean hasUseLpLns() {
3962 return ((bitField0_ & 0x00020000) != 0);
3973 public boolean getUseLpLns() {
3985 public Builder setUseLpLns(boolean value) {
3988 bitField0_ |= 0x00020000;
4000 public Builder clearUseLpLns() {
4001 bitField0_ = (bitField0_ & ~0x00020000);
4007 private boolean useSatToChooseLnsNeighbourhood_ = true;
4017 public boolean hasUseSatToChooseLnsNeighbourhood() {
4018 return ((bitField0_ & 0x00040000) != 0);
4029 public boolean getUseSatToChooseLnsNeighbourhood() {
4030 return useSatToChooseLnsNeighbourhood_;
4041 public Builder setUseSatToChooseLnsNeighbourhood(boolean value) {
4043 useSatToChooseLnsNeighbourhood_ = value;
4044 bitField0_ |= 0x00040000;
4056 public Builder clearUseSatToChooseLnsNeighbourhood() {
4057 bitField0_ = (bitField0_ & ~0x00040000);
4058 useSatToChooseLnsNeighbourhood_ = true;
4063 private int maxNumberOfConflictsForQuickCheck_ = 10;
4074 public boolean hasMaxNumberOfConflictsForQuickCheck() {
4075 return ((bitField0_ & 0x00080000) != 0);
4087 public int getMaxNumberOfConflictsForQuickCheck() {
4088 return maxNumberOfConflictsForQuickCheck_;
4100 public Builder setMaxNumberOfConflictsForQuickCheck(int value) {
4102 maxNumberOfConflictsForQuickCheck_ = value;
4103 bitField0_ |= 0x00080000;
4116 public Builder clearMaxNumberOfConflictsForQuickCheck() {
4117 bitField0_ = (bitField0_ & ~0x00080000);
4118 maxNumberOfConflictsForQuickCheck_ = 10;
4123 private boolean useSymmetry_ ;
4137 public boolean hasUseSymmetry() {
4138 return ((bitField0_ & 0x00100000) != 0);
4153 public boolean getUseSymmetry() {
4154 return useSymmetry_;
4169 public Builder setUseSymmetry(boolean value) {
4171 useSymmetry_ = value;
4172 bitField0_ |= 0x00100000;
4188 public Builder clearUseSymmetry() {
4189 bitField0_ = (bitField0_ & ~0x00100000);
4190 useSymmetry_ = false;
4195 private boolean exploitSymmetryInSatFirstSolution_ ;
4209 public boolean hasExploitSymmetryInSatFirstSolution() {
4210 return ((bitField0_ & 0x00200000) != 0);
4225 public boolean getExploitSymmetryInSatFirstSolution() {
4226 return exploitSymmetryInSatFirstSolution_;
4241 public Builder setExploitSymmetryInSatFirstSolution(boolean value) {
4243 exploitSymmetryInSatFirstSolution_ = value;
4244 bitField0_ |= 0x00200000;
4260 public Builder clearExploitSymmetryInSatFirstSolution() {
4261 bitField0_ = (bitField0_ & ~0x00200000);
4262 exploitSymmetryInSatFirstSolution_ = false;
4267 private int maxNumberOfConflictsInRandomSolutionGeneration_ = 500;
4277 public boolean hasMaxNumberOfConflictsInRandomSolutionGeneration() {
4278 return ((bitField0_ & 0x00400000) != 0);
4289 public int getMaxNumberOfConflictsInRandomSolutionGeneration() {
4290 return maxNumberOfConflictsInRandomSolutionGeneration_;
4301 public Builder setMaxNumberOfConflictsInRandomSolutionGeneration(int value) {
4303 maxNumberOfConflictsInRandomSolutionGeneration_ = value;
4304 bitField0_ |= 0x00400000;
4316 public Builder clearMaxNumberOfConflictsInRandomSolutionGeneration() {
4317 bitField0_ = (bitField0_ & ~0x00400000);
4318 maxNumberOfConflictsInRandomSolutionGeneration_ = 500;
4323 private long maxNumberOfExploredAssignmentsPerTryInLs_ = 10000L;
4336 public boolean hasMaxNumberOfExploredAssignmentsPerTryInLs() {
4337 return ((bitField0_ & 0x00800000) != 0);
4351 public long getMaxNumberOfExploredAssignmentsPerTryInLs() {
4352 return maxNumberOfExploredAssignmentsPerTryInLs_;
4366 public Builder setMaxNumberOfExploredAssignmentsPerTryInLs(long value) {
4368 maxNumberOfExploredAssignmentsPerTryInLs_ = value;
4369 bitField0_ |= 0x00800000;
4384 public Builder clearMaxNumberOfExploredAssignmentsPerTryInLs() {
4385 bitField0_ = (bitField0_ & ~0x00800000);
4386 maxNumberOfExploredAssignmentsPerTryInLs_ = 10000L;
4391 private boolean useTranspositionTableInLs_ = true;
4404 public boolean hasUseTranspositionTableInLs() {
4405 return ((bitField0_ & 0x01000000) != 0);
4419 public boolean getUseTranspositionTableInLs() {
4420 return useTranspositionTableInLs_;
4434 public Builder setUseTranspositionTableInLs(boolean value) {
4436 useTranspositionTableInLs_ = value;
4437 bitField0_ |= 0x01000000;
4452 public Builder clearUseTranspositionTableInLs() {
4453 bitField0_ = (bitField0_ & ~0x01000000);
4454 useTranspositionTableInLs_ = true;
4459 private boolean usePotentialOneFlipRepairsInLs_ ;
4471 public boolean hasUsePotentialOneFlipRepairsInLs() {
4472 return ((bitField0_ & 0x02000000) != 0);
4485 public boolean getUsePotentialOneFlipRepairsInLs() {
4486 return usePotentialOneFlipRepairsInLs_;
4499 public Builder setUsePotentialOneFlipRepairsInLs(boolean value) {
4501 usePotentialOneFlipRepairsInLs_ = value;
4502 bitField0_ |= 0x02000000;
4516 public Builder clearUsePotentialOneFlipRepairsInLs() {
4517 bitField0_ = (bitField0_ & ~0x02000000);
4518 usePotentialOneFlipRepairsInLs_ = false;
4523 private boolean useLearnedBinaryClausesInLp_ = true;
4533 public boolean hasUseLearnedBinaryClausesInLp() {
4534 return ((bitField0_ & 0x04000000) != 0);
4545 public boolean getUseLearnedBinaryClausesInLp() {
4546 return useLearnedBinaryClausesInLp_;
4557 public Builder setUseLearnedBinaryClausesInLp(boolean value) {
4559 useLearnedBinaryClausesInLp_ = value;
4560 bitField0_ |= 0x04000000;
4572 public Builder clearUseLearnedBinaryClausesInLp() {
4573 bitField0_ = (bitField0_ & ~0x04000000);
4574 useLearnedBinaryClausesInLp_ = true;
4579 private int numberOfSolvers_ = 1;
4591 public boolean hasNumberOfSolvers() {
4592 return ((bitField0_ & 0x08000000) != 0);
4605 public int getNumberOfSolvers() {
4606 return numberOfSolvers_;
4619 public Builder setNumberOfSolvers(int value) {
4621 numberOfSolvers_ = value;
4622 bitField0_ |= 0x08000000;
4636 public Builder clearNumberOfSolvers() {
4637 bitField0_ = (bitField0_ & ~0x08000000);
4638 numberOfSolvers_ = 1;
4643 private int synchronizationType_ = 0;
4648 @java.lang.Override public boolean hasSynchronizationType() {
4649 return ((bitField0_ & 0x10000000) != 0);
4656 public com.google.ortools.bop.BopParameters.ThreadSynchronizationType getSynchronizationType() {
4657 com.google.ortools.bop.BopParameters.ThreadSynchronizationType result = com.google.ortools.bop.BopParameters.ThreadSynchronizationType.forNumber(synchronizationType_);
4658 return result == null ? com.google.ortools.bop.BopParameters.ThreadSynchronizationType.NO_SYNCHRONIZATION : result;
4665 public Builder setSynchronizationType(com.google.ortools.bop.BopParameters.ThreadSynchronizationType value) {
4666 if (value == null) {
4667 throw new NullPointerException();
4669 bitField0_ |= 0x10000000;
4670 synchronizationType_ = value.getNumber();
4678 public Builder clearSynchronizationType() {
4679 bitField0_ = (bitField0_ & ~0x10000000);
4680 synchronizationType_ = 0;
4685 private java.util.List<com.google.ortools.bop.BopSolverOptimizerSet> solverOptimizerSets_ =
4686 java.util.Collections.emptyList();
4687 private void ensureSolverOptimizerSetsIsMutable() {
4688 if (!((bitField0_ & 0x20000000) != 0)) {
4689 solverOptimizerSets_ = new java.util.ArrayList<com.google.ortools.bop.BopSolverOptimizerSet>(solverOptimizerSets_);
4690 bitField0_ |= 0x20000000;
4694 private com.google.protobuf.RepeatedFieldBuilder<
4695 com.google.ortools.bop.BopSolverOptimizerSet, com.google.ortools.bop.BopSolverOptimizerSet.Builder, com.google.ortools.bop.BopSolverOptimizerSetOrBuilder> solverOptimizerSetsBuilder_;
4707 public java.util.List<com.google.ortools.bop.BopSolverOptimizerSet> getSolverOptimizerSetsList() {
4708 if (solverOptimizerSetsBuilder_ == null) {
4709 return java.util.Collections.unmodifiableList(solverOptimizerSets_);
4711 return solverOptimizerSetsBuilder_.getMessageList();
4724 public int getSolverOptimizerSetsCount() {
4725 if (solverOptimizerSetsBuilder_ == null) {
4726 return solverOptimizerSets_.size();
4728 return solverOptimizerSetsBuilder_.getCount();
4741 public com.google.ortools.bop.BopSolverOptimizerSet getSolverOptimizerSets(int index) {
4742 if (solverOptimizerSetsBuilder_ == null) {
4743 return solverOptimizerSets_.get(index);
4745 return solverOptimizerSetsBuilder_.getMessage(index);
4758 public Builder setSolverOptimizerSets(
4759 int index, com.google.ortools.bop.BopSolverOptimizerSet value) {
4760 if (solverOptimizerSetsBuilder_ == null) {
4761 if (value == null) {
4762 throw new NullPointerException();
4764 ensureSolverOptimizerSetsIsMutable();
4765 solverOptimizerSets_.set(index, value);
4768 solverOptimizerSetsBuilder_.setMessage(index, value);
4782 public Builder setSolverOptimizerSets(
4783 int index, com.google.ortools.bop.BopSolverOptimizerSet.Builder builderForValue) {
4784 if (solverOptimizerSetsBuilder_ == null) {
4785 ensureSolverOptimizerSetsIsMutable();
4786 solverOptimizerSets_.set(index, builderForValue.build());
4789 solverOptimizerSetsBuilder_.setMessage(index, builderForValue.build());
4803 public Builder addSolverOptimizerSets(com.google.ortools.bop.BopSolverOptimizerSet value) {
4804 if (solverOptimizerSetsBuilder_ == null) {
4805 if (value == null) {
4806 throw new NullPointerException();
4808 ensureSolverOptimizerSetsIsMutable();
4809 solverOptimizerSets_.add(value);
4812 solverOptimizerSetsBuilder_.addMessage(value);
4826 public Builder addSolverOptimizerSets(
4827 int index, com.google.ortools.bop.BopSolverOptimizerSet value) {
4828 if (solverOptimizerSetsBuilder_ == null) {
4829 if (value == null) {
4830 throw new NullPointerException();
4832 ensureSolverOptimizerSetsIsMutable();
4833 solverOptimizerSets_.add(index, value);
4836 solverOptimizerSetsBuilder_.addMessage(index, value);
4850 public Builder addSolverOptimizerSets(
4851 com.google.ortools.bop.BopSolverOptimizerSet.Builder builderForValue) {
4852 if (solverOptimizerSetsBuilder_ == null) {
4853 ensureSolverOptimizerSetsIsMutable();
4854 solverOptimizerSets_.add(builderForValue.build());
4857 solverOptimizerSetsBuilder_.addMessage(builderForValue.build());
4871 public Builder addSolverOptimizerSets(
4872 int index, com.google.ortools.bop.BopSolverOptimizerSet.Builder builderForValue) {
4873 if (solverOptimizerSetsBuilder_ == null) {
4874 ensureSolverOptimizerSetsIsMutable();
4875 solverOptimizerSets_.add(index, builderForValue.build());
4878 solverOptimizerSetsBuilder_.addMessage(index, builderForValue.build());
4892 public Builder addAllSolverOptimizerSets(
4893 java.lang.Iterable<? extends com.google.ortools.bop.BopSolverOptimizerSet> values) {
4894 if (solverOptimizerSetsBuilder_ == null) {
4895 ensureSolverOptimizerSetsIsMutable();
4896 com.google.protobuf.AbstractMessageLite.Builder.addAll(
4897 values, solverOptimizerSets_);
4900 solverOptimizerSetsBuilder_.addAllMessages(values);
4914 public Builder clearSolverOptimizerSets() {
4915 if (solverOptimizerSetsBuilder_ == null) {
4916 solverOptimizerSets_ = java.util.Collections.emptyList();
4917 bitField0_ = (bitField0_ & ~0x20000000);
4920 solverOptimizerSetsBuilder_.clear();
4934 public Builder removeSolverOptimizerSets(int index) {
4935 if (solverOptimizerSetsBuilder_ == null) {
4936 ensureSolverOptimizerSetsIsMutable();
4937 solverOptimizerSets_.remove(index);
4940 solverOptimizerSetsBuilder_.remove(index);
4954 public com.google.ortools.bop.BopSolverOptimizerSet.Builder getSolverOptimizerSetsBuilder(
4956 return getSolverOptimizerSetsFieldBuilder().getBuilder(index);
4968 public com.google.ortools.bop.BopSolverOptimizerSetOrBuilder getSolverOptimizerSetsOrBuilder(
4970 if (solverOptimizerSetsBuilder_ == null) {
4971 return solverOptimizerSets_.get(index); } else {
4972 return solverOptimizerSetsBuilder_.getMessageOrBuilder(index);
4985 public java.util.List<? extends com.google.ortools.bop.BopSolverOptimizerSetOrBuilder>
4986 getSolverOptimizerSetsOrBuilderList() {
4987 if (solverOptimizerSetsBuilder_ != null) {
4988 return solverOptimizerSetsBuilder_.getMessageOrBuilderList();
4990 return java.util.Collections.unmodifiableList(solverOptimizerSets_);
5003 public com.google.ortools.bop.BopSolverOptimizerSet.Builder addSolverOptimizerSetsBuilder() {
5004 return getSolverOptimizerSetsFieldBuilder().addBuilder(
5005 com.google.ortools.bop.BopSolverOptimizerSet.getDefaultInstance());
5017 public com.google.ortools.bop.BopSolverOptimizerSet.Builder addSolverOptimizerSetsBuilder(
5019 return getSolverOptimizerSetsFieldBuilder().addBuilder(
5020 index, com.google.ortools.bop.BopSolverOptimizerSet.getDefaultInstance());
5032 public java.util.List<com.google.ortools.bop.BopSolverOptimizerSet.Builder>
5033 getSolverOptimizerSetsBuilderList() {
5034 return getSolverOptimizerSetsFieldBuilder().getBuilderList();
5036 private com.google.protobuf.RepeatedFieldBuilder<
5037 com.google.ortools.bop.BopSolverOptimizerSet, com.google.ortools.bop.BopSolverOptimizerSet.Builder, com.google.ortools.bop.BopSolverOptimizerSetOrBuilder>
5038 getSolverOptimizerSetsFieldBuilder() {
5039 if (solverOptimizerSetsBuilder_ == null) {
5040 solverOptimizerSetsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
5041 com.google.ortools.bop.BopSolverOptimizerSet, com.google.ortools.bop.BopSolverOptimizerSet.Builder, com.google.ortools.bop.BopSolverOptimizerSetOrBuilder>(
5042 solverOptimizerSets_,
5043 ((bitField0_ & 0x20000000) != 0),
5044 getParentForChildren(),
5046 solverOptimizerSets_ = null;
5048 return solverOptimizerSetsBuilder_;
5051 private java.lang.Object defaultSolverOptimizerSets_ = "methods:{type:LOCAL_SEARCH } methods:{type:RANDOM_FIRST_SOLUTION } methods:{type:LINEAR_RELAXATION } methods:{type:LP_FIRST_SOLUTION } methods:{type:OBJECTIVE_FIRST_SOLUTION } methods:{type:USER_GUIDED_FIRST_SOLUTION } methods:{type:RANDOM_CONSTRAINT_LNS_GUIDED_BY_LP } methods:{type:RANDOM_VARIABLE_LNS_GUIDED_BY_LP } methods:{type:RELATION_GRAPH_LNS } methods:{type:RELATION_GRAPH_LNS_GUIDED_BY_LP } methods:{type:RANDOM_CONSTRAINT_LNS } methods:{type:RANDOM_VARIABLE_LNS } methods:{type:SAT_CORE_BASED } methods:{type:COMPLETE_LNS }
";
5056 public boolean hasDefaultSolverOptimizerSets() {
5057 return ((bitField0_ & 0x40000000) != 0);
5063 public java.lang.String getDefaultSolverOptimizerSets() {
5064 java.lang.Object ref = defaultSolverOptimizerSets_;
5065 if (!(ref instanceof java.lang.String)) {
5066 com.google.protobuf.ByteString bs =
5067 (com.google.protobuf.ByteString) ref;
5068 java.lang.String s = bs.toStringUtf8();
5069 if (bs.isValidUtf8()) {
5070 defaultSolverOptimizerSets_ = s;
5074 return (java.lang.String) ref;
5081 public com.google.protobuf.ByteString
5082 getDefaultSolverOptimizerSetsBytes() {
5083 java.lang.Object ref = defaultSolverOptimizerSets_;
5084 if (ref instanceof String) {
5085 com.google.protobuf.ByteString b =
5086 com.google.protobuf.ByteString.copyFromUtf8(
5087 (java.lang.String) ref);
5088 defaultSolverOptimizerSets_ = b;
5091 return (com.google.protobuf.ByteString) ref;
5099 public Builder setDefaultSolverOptimizerSets(
5100 java.lang.String value) {
5101 if (value == null) { throw new NullPointerException(); }
5102 defaultSolverOptimizerSets_ = value;
5103 bitField0_ |= 0x40000000;
5111 public Builder clearDefaultSolverOptimizerSets() {
5112 defaultSolverOptimizerSets_ = getDefaultInstance().getDefaultSolverOptimizerSets();
5113 bitField0_ = (bitField0_ & ~0x40000000);
5122 public Builder setDefaultSolverOptimizerSetsBytes(
5123 com.google.protobuf.ByteString value) {
5124 if (value == null) { throw new NullPointerException(); }
5125 defaultSolverOptimizerSets_ = value;
5126 bitField0_ |= 0x40000000;
5131 private boolean useLpStrongBranching_ ;
5149 public boolean hasUseLpStrongBranching() {
5150 return ((bitField0_ & 0x80000000) != 0);
5169 public boolean getUseLpStrongBranching() {
5170 return useLpStrongBranching_;
5189 public Builder setUseLpStrongBranching(boolean value) {
5191 useLpStrongBranching_ = value;
5192 bitField0_ |= 0x80000000;
5212 public Builder clearUseLpStrongBranching() {
5213 bitField0_ = (bitField0_ & ~0x80000000);
5214 useLpStrongBranching_ = false;
5219 private int decomposerNumVariablesThreshold_ = 50;
5230 public boolean hasDecomposerNumVariablesThreshold() {
5231 return ((bitField1_ & 0x00000001) != 0);
5243 public int getDecomposerNumVariablesThreshold() {
5244 return decomposerNumVariablesThreshold_;
5256 public Builder setDecomposerNumVariablesThreshold(int value) {
5258 decomposerNumVariablesThreshold_ = value;
5259 bitField1_ |= 0x00000001;
5272 public Builder clearDecomposerNumVariablesThreshold() {
5273 bitField1_ = (bitField1_ & ~0x00000001);
5274 decomposerNumVariablesThreshold_ = 50;
5279 private int numBopSolversUsedByDecomposition_ = 1;
5291 public boolean hasNumBopSolversUsedByDecomposition() {
5292 return ((bitField1_ & 0x00000002) != 0);
5305 public int getNumBopSolversUsedByDecomposition() {
5306 return numBopSolversUsedByDecomposition_;
5319 public Builder setNumBopSolversUsedByDecomposition(int value) {
5321 numBopSolversUsedByDecomposition_ = value;
5322 bitField1_ |= 0x00000002;
5336 public Builder clearNumBopSolversUsedByDecomposition() {
5337 bitField1_ = (bitField1_ & ~0x00000002);
5338 numBopSolversUsedByDecomposition_ = 1;
5343 private double decomposedProblemMinTimeInSeconds_ ;
5356 public boolean hasDecomposedProblemMinTimeInSeconds() {
5357 return ((bitField1_ & 0x00000004) != 0);
5371 public double getDecomposedProblemMinTimeInSeconds() {
5372 return decomposedProblemMinTimeInSeconds_;
5386 public Builder setDecomposedProblemMinTimeInSeconds(double value) {
5388 decomposedProblemMinTimeInSeconds_ = value;
5389 bitField1_ |= 0x00000004;
5404 public Builder clearDecomposedProblemMinTimeInSeconds() {
5405 bitField1_ = (bitField1_ & ~0x00000004);
5406 decomposedProblemMinTimeInSeconds_ = 0D;
5411 private int guidedSatConflictsChunk_ = 1000;
5423 public boolean hasGuidedSatConflictsChunk() {
5424 return ((bitField1_ & 0x00000008) != 0);
5437 public int getGuidedSatConflictsChunk() {
5438 return guidedSatConflictsChunk_;
5451 public Builder setGuidedSatConflictsChunk(int value) {
5453 guidedSatConflictsChunk_ = value;
5454 bitField1_ |= 0x00000008;
5468 public Builder clearGuidedSatConflictsChunk() {
5469 bitField1_ = (bitField1_ & ~0x00000008);
5470 guidedSatConflictsChunk_ = 1000;
5475 private int maxLpSolveForFeasibilityProblems_ ;
5488 public boolean hasMaxLpSolveForFeasibilityProblems() {
5489 return ((bitField1_ & 0x00000010) != 0);
5503 public int getMaxLpSolveForFeasibilityProblems() {
5504 return maxLpSolveForFeasibilityProblems_;
5518 public Builder setMaxLpSolveForFeasibilityProblems(int value) {
5520 maxLpSolveForFeasibilityProblems_ = value;
5521 bitField1_ |= 0x00000010;
5536 public Builder clearMaxLpSolveForFeasibilityProblems() {
5537 bitField1_ = (bitField1_ & ~0x00000010);
5538 maxLpSolveForFeasibilityProblems_ = 0;
5543 // @@protoc_insertion_point(builder_scope:operations_research.bop.BopParameters)