Solves an existing `ompr` model with an ROI-backed solver, then routes the solver result through [assign_groups()] or [assign_job()] depending on the assignment type.
Usage
solve_assignment(
model,
assignment = c("diversity", "preference", "phd", "multirole"),
solver = c("glpk", "highs", "gurobi"),
dframe = NULL,
params_list = NULL,
group_names = NULL,
student_df = NULL,
course_codes = NULL,
name_col = "Name",
verbose = TRUE,
time_limit = NULL,
iteration_limit = NULL,
solver_args = list()
)Arguments
- model
A prepared `ompr` model, usually from [prepare_model()].
- assignment
Character string indicating model type. Must be one of `"diversity"`, `"preference"`, `"phd"`, or `"multirole"`.
- solver
Solver to use through `ompr.roi`. Must be one of `"glpk"`, `"highs"`, or `"gurobi"`.
- dframe
The original dataframe used in [extract_student_info()]. Required for `assignment = "diversity"` and `assignment = "preference"`.
- params_list
The list of parameters from [extract_params_yaml()]. Required for `assignment = "preference"`.
- group_names
A character string denoting the self-formed group column in `dframe`. Required for `assignment = "diversity"` and `assignment = "preference"`.
- student_df
A data frame that contains individual name information. Required for `assignment = "phd"` and `assignment = "multirole"`.
- course_codes
Character vector of course or task codes in model order. Required for `assignment = "phd"` and `assignment = "multirole"`.
- name_col
Student name column name in `student_df`.
- verbose
Logical value passed to `ompr.roi::with_ROI()`.
- time_limit, iteration_limit
Optional Gurobi controls. These are applied only when `solver = "gurobi"`.
- solver_args
Additional named arguments passed to `ompr.roi::with_ROI()`.