update examples after library changes
This commit is contained in:
@@ -32,6 +32,7 @@
|
||||
#include "base/commandlineflags.h"
|
||||
#include "base/integral_types.h"
|
||||
#include "base/logging.h"
|
||||
#include "base/join.h"
|
||||
#include "constraint_solver/routing.h"
|
||||
#include "constraint_solver/routing_enums.pb.h"
|
||||
#include "constraint_solver/routing_flags.h"
|
||||
|
||||
@@ -151,8 +151,8 @@ int main(int argc, char** argv) {
|
||||
}
|
||||
// Only one order can happen at the same time at a given location.
|
||||
std::vector<int64> location_usage(stop_intervals.size(), 1);
|
||||
solver->AddConstraint(solver->MakeCumulative(stop_intervals, location_usage,
|
||||
1, StrCat("Client", stop)));
|
||||
solver->AddConstraint(solver->MakeCumulative(
|
||||
stop_intervals, location_usage, 1, StrCat("Client", stop)));
|
||||
}
|
||||
// Minimizing route duration.
|
||||
for (int vehicle = 0; vehicle < routing.vehicles(); ++vehicle) {
|
||||
|
||||
@@ -141,7 +141,8 @@ void Solve(const std::vector<std::vector<Task>>& tasks_per_job, int horizon) {
|
||||
decision_variables.clear();
|
||||
}
|
||||
MinimizeIntegerVariableWithLinearScanAndLazyEncoding(
|
||||
/*log_info=*/true, makespan, decision_variables,
|
||||
/*log_info=*/true, makespan,
|
||||
FirstUnassignedVarAtItsMinHeuristic(decision_variables, &model),
|
||||
/*feasible_solution_observer=*/
|
||||
[makespan](const Model& model) {
|
||||
LOG(INFO) << "Makespan " << model.Get(LowerBound(makespan));
|
||||
|
||||
@@ -219,12 +219,12 @@ bool LoadAndSolve(const std::string& pdp_file) {
|
||||
const int customer_id = parsed_int[0];
|
||||
const int x = parsed_int[1];
|
||||
const int y = parsed_int[2];
|
||||
const int delivery = parsed_int[8]; // Parse 'delivery' before 'demand'.
|
||||
const int64 demand = delivery == 0 ? -parsed_int[3] : parsed_int[3];
|
||||
const int64 demand = parsed_int[3];
|
||||
const int64 open_time = parsed_int[4];
|
||||
const int64 close_time = parsed_int[5];
|
||||
const int64 service_time = parsed_int[6];
|
||||
const int pickup = parsed_int[7];
|
||||
const int delivery = parsed_int[8];
|
||||
customer_ids.push_back(customer_id);
|
||||
coords.push_back(std::make_pair(x, y));
|
||||
demands.push_back(demand);
|
||||
@@ -241,7 +241,8 @@ bool LoadAndSolve(const std::string& pdp_file) {
|
||||
|
||||
// Build pickup and delivery model.
|
||||
const int num_nodes = customer_ids.size();
|
||||
RoutingModel routing(num_nodes, num_vehicles, depot);
|
||||
RoutingModelParameters model_parameters = BuildModelParametersFromFlags();
|
||||
RoutingModel routing(num_nodes, num_vehicles, depot, model_parameters);
|
||||
routing.SetArcCostEvaluatorOfAllVehicles(
|
||||
NewPermanentCallback(Travel, const_cast<const Coordinates*>(&coords)));
|
||||
routing.AddDimension(
|
||||
@@ -288,6 +289,7 @@ bool LoadAndSolve(const std::string& pdp_file) {
|
||||
|
||||
// Solve pickup and delivery problem.
|
||||
const Assignment* assignment = routing.SolveWithParameters(parameters);
|
||||
LOG(INFO) << routing.solver()->LocalSearchProfile();
|
||||
if (NULL != assignment) {
|
||||
LOG(INFO) << "Cost: " << assignment->ObjectiveValue();
|
||||
LOG(INFO) << VerboseOutput(routing, *assignment, coords, service_times);
|
||||
|
||||
@@ -249,7 +249,8 @@ void LoadAndSolve(const std::string& file_name) {
|
||||
}
|
||||
|
||||
MinimizeIntegerVariableWithLinearScanAndLazyEncoding(
|
||||
/*log_info=*/true, objective_var, decision_variables,
|
||||
/*log_info=*/true, objective_var,
|
||||
FirstUnassignedVarAtItsMinHeuristic(decision_variables, &model),
|
||||
/*feasible_solution_observer=*/
|
||||
[objective_var](const Model& model) {
|
||||
LOG(INFO) << "Objective " << model.Get(LowerBound(objective_var));
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
#include <csignal>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
@@ -26,6 +27,7 @@
|
||||
#include "google/protobuf/text_format.h"
|
||||
#include "base/stringpiece_utils.h"
|
||||
#include "base/strutil.h"
|
||||
#include "base/threadpool.h"
|
||||
#include "algorithms/sparse_permutation.h"
|
||||
#include "sat/boolean_problem.h"
|
||||
#include "sat/drat.h"
|
||||
@@ -187,6 +189,10 @@ int Run() {
|
||||
// The global time limit.
|
||||
std::unique_ptr<TimeLimit> time_limit(TimeLimit::FromParameters(parameters));
|
||||
|
||||
// Catch ^C.
|
||||
bool interrupt_solve = false;
|
||||
time_limit->RegisterExternalBooleanAsLimit(&interrupt_solve);
|
||||
|
||||
// Read the problem.
|
||||
LinearBooleanProblem problem;
|
||||
LoadBooleanProblem(FLAGS_input, &problem);
|
||||
|
||||
@@ -306,10 +306,7 @@ void LoadAndSolve(const std::string& file_name) {
|
||||
if (FLAGS_use_core) {
|
||||
const std::vector<int64> coeffs(num_workers, 1);
|
||||
MinimizeWeightedLiteralSumWithCoreAndLazyEncoding(
|
||||
/*log_info=*/true, active_workers, coeffs,
|
||||
std::vector<IntegerVariable>(),
|
||||
/*feasible_solution_observer=*/
|
||||
[&](const Model& model) {}, &model);
|
||||
/*log_info=*/true, active_workers, coeffs, nullptr, nullptr, &model);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -328,7 +325,7 @@ void LoadAndSolve(const std::string& file_name) {
|
||||
model.Add(FixedWeightedSum(worker_vars, weights, 0));
|
||||
|
||||
MinimizeIntegerVariableWithLinearScanAndLazyEncoding(
|
||||
/*log_info=*/true, objective_var, std::vector<IntegerVariable>(),
|
||||
/*log_info=*/true, objective_var, nullptr,
|
||||
/*feasible_solution_observer=*/
|
||||
[&](const Model& model) {
|
||||
LOG(INFO) << "Cost " << model.Get(Value(objective_var));
|
||||
|
||||
@@ -39,6 +39,7 @@ DEFINE_string(input, "", "REQUIRED: Input file name.");
|
||||
DEFINE_string(solver, "glop",
|
||||
"The solver to use: bop, cbc, clp, glop, glpk_lp, glpk_mip, "
|
||||
"gurobi_lp, gurobi_mip, scip, knapsack.");
|
||||
|
||||
DEFINE_string(params_file, "",
|
||||
"Solver specific parameters file. "
|
||||
"If this flag is set, the --params flag is ignored.");
|
||||
@@ -66,7 +67,6 @@ DEFINE_string(dump_format, "text",
|
||||
|
||||
DEFINE_bool(dump_gzip, false,
|
||||
"Whether to gzip dumped protos. Appends .gz to their name.");
|
||||
|
||||
DEFINE_string(dump_model, "", "If non-empty, dumps MPModelProto there.");
|
||||
DEFINE_string(dump_request, "", "If non-empty, dumps MPModelRequest there.");
|
||||
DEFINE_string(dump_response, "", "If non-empty, dumps MPModelResponse there.");
|
||||
@@ -190,6 +190,19 @@ void Run() {
|
||||
// }
|
||||
printf("%-12s: '%s'\n", "File", FLAGS_input.c_str());
|
||||
|
||||
// Detect format to dump protos.
|
||||
operations_research::ProtoWriteFormat write_format;
|
||||
if (FLAGS_dump_format == "text") {
|
||||
write_format = ProtoWriteFormat::kProtoText;
|
||||
} else if (FLAGS_dump_format == "binary") {
|
||||
write_format = ProtoWriteFormat::kProtoBinary;
|
||||
} else if (FLAGS_dump_format == "json") {
|
||||
write_format = ProtoWriteFormat::kJson;
|
||||
} else {
|
||||
LOG(FATAL) << "Unsupported --dump_format: " << FLAGS_dump_format;
|
||||
}
|
||||
|
||||
|
||||
// Create the solver, we use the name of the model as the solver name.
|
||||
MPSolver solver(model_proto.name(), type);
|
||||
solver.EnableOutput();
|
||||
@@ -211,18 +224,6 @@ void Run() {
|
||||
// Load the proto into the solver.
|
||||
std::string error_message;
|
||||
|
||||
// Detect format to dump protos.
|
||||
operations_research::ProtoWriteFormat write_format;
|
||||
if (FLAGS_dump_format == "text") {
|
||||
write_format = ProtoWriteFormat::kProtoText;
|
||||
} else if (FLAGS_dump_format == "binary") {
|
||||
write_format = ProtoWriteFormat::kProtoBinary;
|
||||
} else if (FLAGS_dump_format == "json") {
|
||||
write_format = ProtoWriteFormat::kJson;
|
||||
} else {
|
||||
LOG(FATAL) << "Unsupported --dump_format: " << FLAGS_dump_format;
|
||||
}
|
||||
|
||||
// If requested, save the model to file.
|
||||
if (!FLAGS_dump_model.empty()) {
|
||||
CHECK(WriteProtoToFile(FLAGS_dump_model, model_proto, write_format,
|
||||
@@ -230,7 +231,8 @@ void Run() {
|
||||
}
|
||||
|
||||
const MPSolverResponseStatus status =
|
||||
solver.LoadModelFromProto(model_proto, &error_message);
|
||||
solver.LoadModelFromProtoWithUniqueNamesOrDie(model_proto,
|
||||
&error_message);
|
||||
if (request_proto.has_solver_time_limit_seconds()) {
|
||||
solver.set_time_limit(
|
||||
static_cast<int64>(1000.0 * request_proto.solver_time_limit_seconds()));
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
#include "base/commandlineflags.h"
|
||||
#include "base/integral_types.h"
|
||||
#include "base/join.h"
|
||||
#include "base/join.h"
|
||||
#include "constraint_solver/routing.h"
|
||||
#include "constraint_solver/routing_flags.h"
|
||||
#include "base/random.h"
|
||||
@@ -145,7 +146,7 @@ void Tsp() {
|
||||
for (int64 node = routing.Start(route_number); !routing.IsEnd(node);
|
||||
node = solution->Value(routing.NextVar(node))) {
|
||||
StrAppend(&route, routing.IndexToNode(node).value(), " (", node,
|
||||
") -> ");
|
||||
") -> ");
|
||||
}
|
||||
const int64 end = routing.End(route_number);
|
||||
StrAppend(&route, routing.IndexToNode(end).value(), " (", end, ")");
|
||||
|
||||
@@ -95,7 +95,7 @@ void Solve(const std::vector<int>& durations, const std::vector<int>& due_dates,
|
||||
tardiness_vars[i] = model.Get(EndVar(tasks[i]));
|
||||
} else {
|
||||
tardiness_vars[i] =
|
||||
model.Add(NewIntegerVariable(0, horizon - due_dates[i]));
|
||||
model.Add(NewIntegerVariable(0, std::max(0, horizon - due_dates[i])));
|
||||
model.Add(LowerOrEqualWithOffset(model.Get(EndVar(tasks[i])),
|
||||
tardiness_vars[i], -due_dates[i]));
|
||||
}
|
||||
@@ -163,9 +163,14 @@ void Solve(const std::vector<int>& durations, const std::vector<int>& due_dates,
|
||||
}
|
||||
|
||||
// Solve it.
|
||||
//
|
||||
// Note that we only fully instanciate the start/end and only look at the
|
||||
// lower bound for the objective and the tardiness variables.
|
||||
model.Add(NewSatParameters(FLAGS_params));
|
||||
MinimizeIntegerVariableWithLinearScanAndLazyEncoding(
|
||||
/*log_info=*/true, objective_var, decision_vars,
|
||||
/*log_info=*/true, objective_var,
|
||||
/*next_decision=*/
|
||||
UnassignedVarWithLowestMinAtItsMinHeuristic(decision_vars, &model),
|
||||
/*feasible_solution_observer=*/
|
||||
[&](const Model& model) {
|
||||
const int64 objective = model.Get(LowerBound(objective_var));
|
||||
@@ -177,9 +182,8 @@ void Solve(const std::vector<int>& durations, const std::vector<int>& due_dates,
|
||||
for (int i = 0; i < num_tasks; ++i) {
|
||||
tardiness_objective +=
|
||||
weights[i] *
|
||||
std::max(0ll,
|
||||
model.Get(LowerBound(model.Get(EndVar(tasks[i])))) -
|
||||
due_dates[i]);
|
||||
std::max(0ll, model.Get(Value(model.Get(EndVar(tasks[i])))) -
|
||||
due_dates[i]);
|
||||
}
|
||||
CHECK_EQ(objective, tardiness_objective);
|
||||
|
||||
@@ -195,8 +199,8 @@ void Solve(const std::vector<int>& durations, const std::vector<int>& due_dates,
|
||||
std::vector<IntervalVariable> sorted_tasks = tasks;
|
||||
std::sort(sorted_tasks.begin(), sorted_tasks.end(),
|
||||
[&model](IntervalVariable v1, IntervalVariable v2) {
|
||||
return model.Get(LowerBound(model.Get(StartVar(v1)))) <
|
||||
model.Get(LowerBound(model.Get(StartVar(v2))));
|
||||
return model.Get(Value(model.Get(StartVar(v1)))) <
|
||||
model.Get(Value(model.Get(StartVar(v2))));
|
||||
});
|
||||
std::string solution = "0";
|
||||
int end = 0;
|
||||
@@ -208,11 +212,11 @@ void Solve(const std::vector<int>& durations, const std::vector<int>& due_dates,
|
||||
// Display the cost in red.
|
||||
solution += StringPrintf("\033[1;31m(+%lld) \033[0m", cost);
|
||||
}
|
||||
solution += StringPrintf("|%lld",
|
||||
model.Get(LowerBound(model.Get(EndVar(v)))));
|
||||
CHECK_EQ(end, model.Get(LowerBound(model.Get(StartVar(v)))));
|
||||
solution +=
|
||||
StringPrintf("|%lld", model.Get(Value(model.Get(EndVar(v)))));
|
||||
CHECK_EQ(end, model.Get(Value(model.Get(StartVar(v)))));
|
||||
end += durations[v.value()];
|
||||
CHECK_EQ(end, model.Get(LowerBound(model.Get(EndVar(v)))));
|
||||
CHECK_EQ(end, model.Get(Value(model.Get(EndVar(v)))));
|
||||
}
|
||||
LOG(INFO) << "solution: " << solution;
|
||||
},
|
||||
@@ -225,7 +229,7 @@ void LoadAndSolve() {
|
||||
std::vector<int> numbers;
|
||||
std::vector<std::string> entries;
|
||||
for (const std::string& line : operations_research::FileLines(FLAGS_input)) {
|
||||
entries = strings::Split(line, " ", strings::SkipEmpty());
|
||||
entries = strings::Split(line, ' ', strings::SkipEmpty());
|
||||
for (const std::string& entry : entries) {
|
||||
numbers.push_back(atoi32(entry));
|
||||
}
|
||||
|
||||
@@ -338,7 +338,6 @@ $(SRC_DIR)/util/permutation.h: \
|
||||
$(SRC_DIR)/util/piecewise_linear_function.h: \
|
||||
$(SRC_DIR)/util/saturated_arithmetic.h \
|
||||
$(SRC_DIR)/base/basictypes.h \
|
||||
$(SRC_DIR)/base/callback.h \
|
||||
$(SRC_DIR)/base/integral_types.h \
|
||||
$(SRC_DIR)/base/macros.h
|
||||
|
||||
@@ -446,7 +445,6 @@ $(OBJ_DIR)/util/proto_tools.$O: \
|
||||
$(SRC_DIR)/util/proto_tools.cc \
|
||||
$(SRC_DIR)/util/proto_tools.h \
|
||||
$(SRC_DIR)/base/file.h \
|
||||
$(SRC_DIR)/base/join.h \
|
||||
$(SRC_DIR)/base/logging.h
|
||||
$(CCC) $(CFLAGS) -c $(SRC_DIR)/util/proto_tools.cc $(OBJ_OUT)$(OBJ_DIR)$Sutil$Sproto_tools.$O
|
||||
|
||||
@@ -534,6 +532,7 @@ LP_DATA_DEPS = \
|
||||
$(SRC_DIR)/base/time_support.h \
|
||||
$(SRC_DIR)/algorithms/dynamic_partition.h \
|
||||
$(SRC_DIR)/algorithms/dynamic_permutation.h \
|
||||
$(SRC_DIR)/linear_solver/linear_expr.h \
|
||||
$(SRC_DIR)/linear_solver/linear_solver.h \
|
||||
$(GEN_DIR)/linear_solver/linear_solver.pb.h
|
||||
|
||||
@@ -620,6 +619,9 @@ $(SRC_DIR)/lp_data/sparse.h: \
|
||||
$(SRC_DIR)/util/return_macros.h \
|
||||
$(SRC_DIR)/base/integral_types.h
|
||||
|
||||
$(SRC_DIR)/lp_data/sparse_row.h: \
|
||||
$(SRC_DIR)/lp_data/sparse_vector.h
|
||||
|
||||
$(SRC_DIR)/lp_data/sparse_vector.h: \
|
||||
$(SRC_DIR)/lp_data/lp_types.h \
|
||||
$(SRC_DIR)/lp_data/permutation.h \
|
||||
@@ -762,6 +764,7 @@ GLOP_DEPS = \
|
||||
$(SRC_DIR)/lp_data/sparse_column.h \
|
||||
$(SRC_DIR)/lp_data/sparse.h \
|
||||
$(SRC_DIR)/lp_data/sparse_vector.h \
|
||||
$(SRC_DIR)/linear_solver/linear_expr.h \
|
||||
$(SRC_DIR)/linear_solver/linear_solver.h \
|
||||
$(GEN_DIR)/linear_solver/linear_solver.pb.h
|
||||
|
||||
@@ -894,7 +897,8 @@ $(SRC_DIR)/glop/revised_simplex.h: \
|
||||
$(SRC_DIR)/lp_data/lp_data.h \
|
||||
$(SRC_DIR)/lp_data/lp_print_utils.h \
|
||||
$(SRC_DIR)/lp_data/lp_types.h \
|
||||
$(SRC_DIR)/lp_data/matrix_scaler.h
|
||||
$(SRC_DIR)/lp_data/matrix_scaler.h \
|
||||
$(SRC_DIR)/lp_data/sparse_row.h
|
||||
|
||||
$(SRC_DIR)/glop/status.h: \
|
||||
$(SRC_DIR)/base/port.h
|
||||
@@ -1006,6 +1010,7 @@ $(OBJ_DIR)/glop/revised_simplex.$O: \
|
||||
$(SRC_DIR)/util/fp_utils.h \
|
||||
$(SRC_DIR)/base/commandlineflags.h \
|
||||
$(SRC_DIR)/base/integral_types.h \
|
||||
$(SRC_DIR)/base/join.h \
|
||||
$(SRC_DIR)/base/logging.h \
|
||||
$(SRC_DIR)/base/stringprintf.h \
|
||||
$(SRC_DIR)/lp_data/lp_data.h \
|
||||
@@ -1310,6 +1315,7 @@ ALGORITHMS_DEPS = \
|
||||
$(GEN_DIR)/graph/flow_problem.pb.h \
|
||||
$(SRC_DIR)/graph/graph.h \
|
||||
$(SRC_DIR)/graph/minimum_spanning_tree.h \
|
||||
$(SRC_DIR)/linear_solver/linear_expr.h \
|
||||
$(SRC_DIR)/linear_solver/linear_solver.h \
|
||||
$(GEN_DIR)/linear_solver/linear_solver.pb.h
|
||||
|
||||
@@ -1467,6 +1473,7 @@ SAT_DEPS = \
|
||||
$(SRC_DIR)/glop/update_row.h \
|
||||
$(SRC_DIR)/glop/variables_info.h \
|
||||
$(SRC_DIR)/glop/variable_values.h \
|
||||
$(SRC_DIR)/linear_solver/linear_expr.h \
|
||||
$(SRC_DIR)/linear_solver/linear_solver.h \
|
||||
$(GEN_DIR)/linear_solver/linear_solver.pb.h
|
||||
|
||||
@@ -1482,6 +1489,7 @@ SAT_LIB_OBJS = \
|
||||
$(OBJ_DIR)/sat/integer.$O \
|
||||
$(OBJ_DIR)/sat/integer_expr.$O \
|
||||
$(OBJ_DIR)/sat/intervals.$O \
|
||||
$(OBJ_DIR)/sat/linear_programming_constraint.$O \
|
||||
$(OBJ_DIR)/sat/lp_utils.$O \
|
||||
$(OBJ_DIR)/sat/no_cycle.$O \
|
||||
$(OBJ_DIR)/sat/optimization.$O \
|
||||
@@ -1565,6 +1573,7 @@ $(SRC_DIR)/sat/integer.h: \
|
||||
$(SRC_DIR)/sat/sat_solver.h \
|
||||
$(SRC_DIR)/base/int_type.h \
|
||||
$(SRC_DIR)/base/join.h \
|
||||
$(SRC_DIR)/base/logging.h \
|
||||
$(SRC_DIR)/base/map_util.h \
|
||||
$(SRC_DIR)/base/port.h \
|
||||
$(SRC_DIR)/util/bitset.h \
|
||||
@@ -1582,6 +1591,13 @@ $(SRC_DIR)/sat/intervals.h: \
|
||||
$(SRC_DIR)/sat/sat_base.h \
|
||||
$(SRC_DIR)/sat/sat_solver.h
|
||||
|
||||
$(SRC_DIR)/sat/linear_programming_constraint.h: \
|
||||
$(SRC_DIR)/sat/integer.h \
|
||||
$(SRC_DIR)/sat/model.h \
|
||||
$(SRC_DIR)/sat/sat_base.h \
|
||||
$(SRC_DIR)/lp_data/lp_data.h \
|
||||
$(SRC_DIR)/glop/revised_simplex.h
|
||||
|
||||
$(SRC_DIR)/sat/lp_utils.h: \
|
||||
$(GEN_DIR)/sat/boolean_problem.pb.h \
|
||||
$(SRC_DIR)/sat/sat_solver.h \
|
||||
@@ -1725,8 +1741,7 @@ $(OBJ_DIR)/sat/cumulative.$O: \
|
||||
$(OBJ_DIR)/sat/disjunctive.$O: \
|
||||
$(SRC_DIR)/sat/disjunctive.cc \
|
||||
$(SRC_DIR)/sat/disjunctive.h \
|
||||
$(SRC_DIR)/sat/sat_solver.h \
|
||||
$(SRC_DIR)/util/sort.h
|
||||
$(SRC_DIR)/sat/sat_solver.h
|
||||
$(CCC) $(CFLAGS) -c $(SRC_DIR)/sat/disjunctive.cc $(OBJ_OUT)$(OBJ_DIR)$Ssat$Sdisjunctive.$O
|
||||
|
||||
$(OBJ_DIR)/sat/drat.$O: \
|
||||
@@ -1758,9 +1773,17 @@ $(OBJ_DIR)/sat/integer_expr.$O: \
|
||||
|
||||
$(OBJ_DIR)/sat/intervals.$O: \
|
||||
$(SRC_DIR)/sat/intervals.cc \
|
||||
$(SRC_DIR)/sat/intervals.h
|
||||
$(SRC_DIR)/sat/intervals.h \
|
||||
$(SRC_DIR)/util/sort.h
|
||||
$(CCC) $(CFLAGS) -c $(SRC_DIR)/sat/intervals.cc $(OBJ_OUT)$(OBJ_DIR)$Ssat$Sintervals.$O
|
||||
|
||||
$(OBJ_DIR)/sat/linear_programming_constraint.$O: \
|
||||
$(SRC_DIR)/sat/linear_programming_constraint.cc \
|
||||
$(SRC_DIR)/sat/linear_programming_constraint.h \
|
||||
$(SRC_DIR)/base/commandlineflags.h \
|
||||
$(SRC_DIR)/util/time_limit.h
|
||||
$(CCC) $(CFLAGS) -c $(SRC_DIR)/sat/linear_programming_constraint.cc $(OBJ_OUT)$(OBJ_DIR)$Ssat$Slinear_programming_constraint.$O
|
||||
|
||||
$(OBJ_DIR)/sat/lp_utils.$O: \
|
||||
$(SRC_DIR)/sat/lp_utils.cc \
|
||||
$(SRC_DIR)/sat/boolean_problem.h \
|
||||
@@ -1844,7 +1867,8 @@ $(OBJ_DIR)/sat/timetable.$O: \
|
||||
$(SRC_DIR)/sat/overload_checker.h \
|
||||
$(SRC_DIR)/sat/precedences.h \
|
||||
$(SRC_DIR)/sat/sat_solver.h \
|
||||
$(SRC_DIR)/sat/timetable.h
|
||||
$(SRC_DIR)/sat/timetable.h \
|
||||
$(SRC_DIR)/util/sort.h
|
||||
$(CCC) $(CFLAGS) -c $(SRC_DIR)/sat/timetable.cc $(OBJ_OUT)$(OBJ_DIR)$Ssat$Stimetable.$O
|
||||
|
||||
$(OBJ_DIR)/sat/timetable_edgefinding.$O: \
|
||||
@@ -2185,6 +2209,7 @@ $(OBJ_DIR)/bop/bop_parameters.pb.$O: $(GEN_DIR)/bop/bop_parameters.pb.cc
|
||||
$(CCC) $(CFLAGS) -c $(GEN_DIR)/bop/bop_parameters.pb.cc $(OBJ_OUT)$(OBJ_DIR)$Sbop$Sbop_parameters.pb.$O
|
||||
|
||||
LP_DEPS = \
|
||||
$(SRC_DIR)/linear_solver/linear_expr.h \
|
||||
$(SRC_DIR)/linear_solver/linear_solver.h \
|
||||
$(GEN_DIR)/linear_solver/linear_solver.pb.h \
|
||||
$(SRC_DIR)/base/adjustable_priority_queue.h \
|
||||
@@ -2244,6 +2269,7 @@ LP_LIB_OBJS = \
|
||||
$(OBJ_DIR)/linear_solver/glop_utils.$O \
|
||||
$(OBJ_DIR)/linear_solver/glpk_interface.$O \
|
||||
$(OBJ_DIR)/linear_solver/gurobi_interface.$O \
|
||||
$(OBJ_DIR)/linear_solver/linear_expr.$O \
|
||||
$(OBJ_DIR)/linear_solver/linear_solver.$O \
|
||||
$(OBJ_DIR)/linear_solver/model_exporter.$O \
|
||||
$(OBJ_DIR)/linear_solver/model_validator.$O \
|
||||
@@ -2255,6 +2281,8 @@ $(SRC_DIR)/linear_solver/glop_utils.h: \
|
||||
$(SRC_DIR)/linear_solver/linear_solver.h \
|
||||
$(SRC_DIR)/lp_data/lp_types.h
|
||||
|
||||
$(SRC_DIR)/linear_solver/linear_expr.h:
|
||||
|
||||
$(SRC_DIR)/linear_solver/linear_solver_ext.h: \
|
||||
$(SRC_DIR)/linear_solver/linear_solver.h \
|
||||
$(SRC_DIR)/base/commandlineflags.h \
|
||||
@@ -2267,6 +2295,7 @@ $(SRC_DIR)/linear_solver/linear_solver_ext.h: \
|
||||
$(SRC_DIR)/base/timer.h
|
||||
|
||||
$(SRC_DIR)/linear_solver/linear_solver.h: \
|
||||
$(SRC_DIR)/linear_solver/linear_expr.h \
|
||||
$(GEN_DIR)/linear_solver/linear_solver.pb.h \
|
||||
$(SRC_DIR)/base/hash.h \
|
||||
$(SRC_DIR)/base/integral_types.h \
|
||||
@@ -2371,6 +2400,12 @@ $(OBJ_DIR)/linear_solver/gurobi_interface.$O: \
|
||||
$(SRC_DIR)/base/timer.h
|
||||
$(CCC) $(CFLAGS) -c $(SRC_DIR)/linear_solver/gurobi_interface.cc $(OBJ_OUT)$(OBJ_DIR)$Slinear_solver$Sgurobi_interface.$O
|
||||
|
||||
$(OBJ_DIR)/linear_solver/linear_expr.$O: \
|
||||
$(SRC_DIR)/linear_solver/linear_expr.cc \
|
||||
$(SRC_DIR)/linear_solver/linear_expr.h \
|
||||
$(SRC_DIR)/base/logging.h
|
||||
$(CCC) $(CFLAGS) -c $(SRC_DIR)/linear_solver/linear_expr.cc $(OBJ_OUT)$(OBJ_DIR)$Slinear_solver$Slinear_expr.$O
|
||||
|
||||
$(OBJ_DIR)/linear_solver/linear_solver.$O: \
|
||||
$(SRC_DIR)/linear_solver/linear_solver.cc \
|
||||
$(SRC_DIR)/linear_solver/linear_solver.h \
|
||||
@@ -2449,6 +2484,7 @@ CP_DEPS = \
|
||||
$(SRC_DIR)/constraint_solver/constraint_solveri.h \
|
||||
$(GEN_DIR)/constraint_solver/model.pb.h \
|
||||
$(GEN_DIR)/constraint_solver/routing_parameters.pb.h \
|
||||
$(SRC_DIR)/constraint_solver/routing_types.h \
|
||||
$(GEN_DIR)/constraint_solver/solver_parameters.pb.h \
|
||||
$(SRC_DIR)/base/adjustable_priority_queue.h \
|
||||
$(SRC_DIR)/base/basictypes.h \
|
||||
@@ -2476,6 +2512,7 @@ CP_DEPS = \
|
||||
$(GEN_DIR)/graph/flow_problem.pb.h \
|
||||
$(SRC_DIR)/graph/graph.h \
|
||||
$(SRC_DIR)/graph/minimum_spanning_tree.h \
|
||||
$(SRC_DIR)/linear_solver/linear_expr.h \
|
||||
$(SRC_DIR)/linear_solver/linear_solver.h \
|
||||
$(GEN_DIR)/linear_solver/linear_solver.pb.h \
|
||||
$(SRC_DIR)/sat/boolean_problem.h \
|
||||
@@ -2524,6 +2561,7 @@ CP_LIB_OBJS = \
|
||||
$(OBJ_DIR)/constraint_solver/resource.$O \
|
||||
$(OBJ_DIR)/constraint_solver/routing.$O \
|
||||
$(OBJ_DIR)/constraint_solver/routing_flags.$O \
|
||||
$(OBJ_DIR)/constraint_solver/routing_neighborhoods.$O \
|
||||
$(OBJ_DIR)/constraint_solver/routing_search.$O \
|
||||
$(OBJ_DIR)/constraint_solver/sat_constraint.$O \
|
||||
$(OBJ_DIR)/constraint_solver/sched_constraints.$O \
|
||||
@@ -2563,6 +2601,7 @@ $(SRC_DIR)/constraint_solver/constraint_solver.h: \
|
||||
$(SRC_DIR)/constraint_solver/constraint_solveri.h: \
|
||||
$(SRC_DIR)/constraint_solver/constraint_solver.h \
|
||||
$(GEN_DIR)/constraint_solver/model.pb.h \
|
||||
$(SRC_DIR)/base/casts.h \
|
||||
$(SRC_DIR)/base/commandlineflags.h \
|
||||
$(SRC_DIR)/base/hash.h \
|
||||
$(SRC_DIR)/base/integral_types.h \
|
||||
@@ -2600,6 +2639,16 @@ $(SRC_DIR)/constraint_solver/routing.h: \
|
||||
$(SRC_DIR)/util/sorted_interval_list.h \
|
||||
$(SRC_DIR)/graph/graph.h
|
||||
|
||||
$(SRC_DIR)/constraint_solver/routing_neighborhoods.h: \
|
||||
$(SRC_DIR)/constraint_solver/constraint_solver.h \
|
||||
$(SRC_DIR)/constraint_solver/constraint_solveri.h \
|
||||
$(SRC_DIR)/constraint_solver/routing_types.h
|
||||
|
||||
$(SRC_DIR)/constraint_solver/routing_types.h: \
|
||||
$(SRC_DIR)/base/callback.h \
|
||||
$(SRC_DIR)/base/integral_types.h \
|
||||
$(SRC_DIR)/base/int_type.h
|
||||
|
||||
$(SRC_DIR)/constraint_solver/sat_constraint.h: \
|
||||
$(SRC_DIR)/constraint_solver/constraint_solver.h \
|
||||
$(SRC_DIR)/constraint_solver/constraint_solveri.h \
|
||||
@@ -2986,6 +3035,11 @@ $(OBJ_DIR)/constraint_solver/routing_flags.$O: \
|
||||
$(SRC_DIR)/base/map_util.h
|
||||
$(CCC) $(CFLAGS) -c $(SRC_DIR)/constraint_solver/routing_flags.cc $(OBJ_OUT)$(OBJ_DIR)$Sconstraint_solver$Srouting_flags.$O
|
||||
|
||||
$(OBJ_DIR)/constraint_solver/routing_neighborhoods.$O: \
|
||||
$(SRC_DIR)/constraint_solver/routing_neighborhoods.cc \
|
||||
$(SRC_DIR)/constraint_solver/routing_neighborhoods.h
|
||||
$(CCC) $(CFLAGS) -c $(SRC_DIR)/constraint_solver/routing_neighborhoods.cc $(OBJ_OUT)$(OBJ_DIR)$Sconstraint_solver$Srouting_neighborhoods.$O
|
||||
|
||||
$(OBJ_DIR)/constraint_solver/routing_search.$O: \
|
||||
$(SRC_DIR)/constraint_solver/routing_search.cc \
|
||||
$(SRC_DIR)/constraint_solver/routing.h \
|
||||
@@ -3198,4 +3252,3 @@ $(GEN_DIR)/constraint_solver/solver_parameters.pb.h: $(GEN_DIR)/constraint_solve
|
||||
|
||||
$(OBJ_DIR)/constraint_solver/solver_parameters.pb.$O: $(GEN_DIR)/constraint_solver/solver_parameters.pb.cc
|
||||
$(CCC) $(CFLAGS) -c $(GEN_DIR)/constraint_solver/solver_parameters.pb.cc $(OBJ_OUT)$(OBJ_DIR)$Sconstraint_solver$Ssolver_parameters.pb.$O
|
||||
|
||||
|
||||
Reference in New Issue
Block a user