Package: prioritizr Type: Package Version: 9.0.1.1 Title: Systematic Conservation Prioritization in R Description: Systematic conservation prioritization using mixed integer linear programming (MILP). It provides a flexible interface for building and solving conservation planning problems. Once built, conservation planning problems can be solved using a variety of commercial and open-source exact algorithm solvers. By using exact algorithm solvers, solutions can be generated that are guaranteed to be optimal (or within a pre-specified optimality gap). Furthermore, conservation problems can be constructed to optimize the spatial allocation of different management actions or zones, meaning that conservation practitioners can identify solutions that benefit multiple stakeholders. To solve large-scale or complex conservation planning problems, users should install the Gurobi optimization software (available from ) and the 'gurobi' R package (see Gurobi Installation Guide vignette for details). Users can also install the IBM CPLEX software () and the 'cplexAPI' R package (available at ). Additionally, the 'rcbc' R package (available at ) can be used to generate solutions using the CBC optimization software (). For further details, see Hanson et al. (2025) . Authors@R: c(person(c('Jeffrey', 'O'), 'Hanson', email = 'jeffrey.hanson@uqconnect.edu.au', role = c('aut'), comment = c(ORCID = '0000-0002-4716-6134')), person(c('Richard'), 'Schuster', email = 'richard.schuster@glel.carleton.ca', role = c('aut', 'cre'), comment = c(ORCID = '0000-0003-3191-7869')), person(c('Nina'), 'Morrell', email = 'nina.morrell@ubc.ca', role = c('aut')), person(c('Matthew'), 'Strimas-Mackey', email = 'mstrimas@gmail.com', role = c('aut'), comment = c(ORCID = '0000-0001-8929-7776')), person(c('Sandra'), 'Neubert', email = 's.neubert@uq.edu.au', role = c('aut'), comment = c(ORCID = '0000-0002-3112-4116')), person(c('Brandon', 'P', 'M'), 'Edwards', email = 'brandonedwards3@cmail.carleton.ca', role = c('aut'), comment = c(ORCID = '0000-0003-0865-3076')), person(c('Matthew', 'E'), 'Watts', email = 'm.watts@uq.edu.au', role = c('aut')), person(c('Peter'), 'Arcese', email = 'peter.arcese@ubc.ca', role = c('aut'), comment = c(ORCID = '0000-0002-8097-482X')), person(c('Joseph', 'R'), 'Bennett', email = 'joseph.bennett@carleton.ca', role = c('aut'), comment = c(ORCID = '0000-0002-3901-9513')), person(c('Hugh', 'P'), 'Possingham', email = 'hugh.possingham@tnc.org', role = c('aut'), comment = c(ORCID = '0000-0001-7755-996X'))) Imports: utils, methods, parallel, R6 (>= 2.5.1), rlang (>= 1.1.0), cli (>= 3.6.0), sf (>= 1.0-12), units (>= 0.8.7), terra (>= 1.8-54), Matrix (>= 1.3-0), assertthat (>= 0.2.0), magrittr (>= 2.0.1), exactextractr (>= 0.8.1), tibble (>= 2.0.0), withr (>= 2.3.0) Suggests: testthat (>= 3.1.0), knitr (>= 1.36), rmarkdown (>= 2.11), slam (>= 0.1-48), gurobi (>= 8.0-1), rcbc (>= 0.1.0.9001), cplexAPI (>= 1.4.0), lpsymphony (>= 1.17.0), Rsymphony (>= 0.1-31), highs (>= 0.1-10), scip (>= 1.10.1-1), prioritizrdata (>= 0.2.4), fields (>= 14.0), vroom (>= 1.6.5), igraph (>= 2.0.3), ape (>= 5.6-1) Depends: R (>= 4.1.0) LinkingTo: Rcpp (>= 1.0.7), RcppArmadillo (>= 0.10.7.3.0), BH (>= 1.75.0-0) License: GPL-3 Language: en-US Encoding: UTF-8 URL: https://prioritizr.net, https://github.com/prioritizr/prioritizr BugReports: https://github.com/prioritizr/prioritizr/issues VignetteBuilder: knitr Collate: 'external-classes.R' 'internal.R' 'waiver.R' 'ConservationModifier-class.R' 'category_vector.R' 'category_layer.R' 'binary_stack.R' 'ConservationProblem-class.R' 'Constraint-class.R' 'Decision-class.R' 'MultiConservationProblem-class.R' 'MultiObjApproach-class.R' 'Objective-class.R' 'OptimizationProblem-class.R' 'Penalty-class.R' 'Portfolio-class.R' 'RcppExports.R' 'Solver-class.R' 'Target-class.R' 'TargetMethod-class.R' 'Weight-class.R' 'zones.R' 'add_absolute_targets.R' 'marxan_connectivity_data_to_matrix.R' 'add_asym_connectivity_penalties.R' 'get_target_method.R' 'target_optimization_format.R' 'add_auto_targets.R' 'add_binary_decisions.R' 'marxan_boundary_data_to_matrix.R' 'add_boundary_penalties.R' 'add_cbc_solver.R' 'add_compile_solver.R' 'add_connectivity_penalties.R' 'add_contiguity_constraints.R' 'add_cost_constraints.R' 'add_cost_penalties.R' 'add_cplex_solver.R' 'add_cuts_portfolio.R' 'add_default_portfolio.R' 'standalone-assertions_misc.R' 'add_default_solver.R' 'add_extra_portfolio.R' 'add_feature_contiguity_constraints.R' 'add_feature_weights.R' 'add_gap_portfolio.R' 'add_group_targets.R' 'add_gurobi_solver.R' 'add_hier_approach.R' 'add_highs_solver.R' 'add_linear_constraints.R' 'add_linear_penalties.R' 'intersecting_units.R' 'add_locked_in_constraints.R' 'add_locked_out_constraints.R' 'add_lpsymphony_solver.R' 'add_mandatory_allocation_constraints.R' 'reexports.R' 'tbl_df.R' 'add_manual_targets.R' 'add_manual_bounded_constraints.R' 'add_manual_locked_constraints.R' 'add_max_cover_objective.R' 'add_max_n_targets_met_objective.R' 'add_max_phylo_div_objective.R' 'add_max_phylo_end_objective.R' 'add_max_wtd_sum_objective.R' 'add_min_largest_shortfall_objective.R' 'add_min_penalties_objective.R' 'add_min_set_objective.R' 'add_min_shortfall_objective.R' 'add_neighbor_constraints.R' 'add_neighbor_penalties.R' 'add_proportion_decisions.R' 'add_ref_point_approach.R' 'add_relative_targets.R' 'add_rsymphony_solver.R' 'add_scip_solver.R' 'add_semicontinuous_decisions.R' 'add_shuffle_portfolio.R' 'add_single_portfolio.R' 'add_top_portfolio.R' 'add_wtd_sum_approach.R' 'adjacency_matrix.R' 'approach_rel_tol_matrix.R' 'approach_weights_matrix.R' 'approaches.R' 'as.R' 'as_units.R' 'run_presolve_check.R' 'compile.R' 'presolve_check.R' 'assertions_pass_presolve_check.R' 'boundary_matrix.R' 'branch_matrix.R' 'calibrate_cohon_penalty.R' 'connectivity_matrix.R' 'constraints.R' 'data.R' 'decisions.R' 'deprecated.R' 'eval_asym_connectivity_summary.R' 'eval_boundary_summary.R' 'eval_connectivity_summary.R' 'eval_cost_summary.R' 'eval_feature_representation_summary.R' 'eval_ferrier_importance.R' 'eval_n_summary.R' 'eval_objective_summary.R' 'solve.R' 'problem.R' 'eval_rank_importance.R' 'eval_rare_richness_importance.R' 'planning_unit_solution_format.R' 'eval_replacement_importance.R' 'eval_target_coverage_summary.R' 'fast_extract.R' 'feature_abundances.R' 'feature_names.R' 'importance.R' 'knit_print.R' 'linear_interpolation.R' 'loglinear_interpolation.R' 'read_marxan_data.R' 'read_marxan_parameters.R' 'marxan_problem.R' 'memory.R' 'multi_compile.R' 'multi_problem.R' 'number_of_features.R' 'number_of_planning_units.R' 'number_of_problems.R' 'number_of_total_units.R' 'number_of_zones.R' 'objectives.R' 'optimization_problem.R' 'package.R' 'penalties.R' 'planning_unit_indices.R' 'planning_unit_solution_status.R' 'portfolios.R' 'print.R' 'problem_names.R' 'proximity_matrix.R' 'rescale_matrix.R' 'rij_matrix.R' 'run_calculations.R' 'run_multi_presolve_check.R' 'show.R' 'simulate.R' 'solvers.R' 'spec_absolute_targets.R' 'spec_area_targets.R' 'spec_duran_targets.R' 'spec_interp_absolute_targets.R' 'spec_interp_area_targets.R' 'spec_jung_targets.R' 'spec_max_targets.R' 'spec_min_targets.R' 'spec_polak_targets.R' 'spec_pop_size_targets.R' 'spec_relative_targets.R' 'spec_rl_ecosystem_targets.R' 'spec_rl_species_targets.R' 'spec_rodrigues_targets.R' 'spec_rule_targets.R' 'spec_sreekar_targets.R' 'spec_ward_targets.R' 'spec_watson_targets.R' 'spec_wilson_targets.R' 'standalone-all_binary.R' 'standalone-all_columns_any_finite.R' 'standalone-all_columns_inherit.R' 'standalone-all_finite.R' 'standalone-all_positive.R' 'standalone-all_proportion.R' 'standalone-any_nonNA.R' 'standalone-any_nonzero.R' 'standalone-as_Matrix.R' 'standalone-assertions_ConservationProblem.R' 'standalone-assertions_class.R' 'standalone-assertions_functions.R' 'standalone-assertions_handlers.R' 'standalone-assertions_raster.R' 'standalone-assertions_sf.R' 'standalone-assertions_solvers.R' 'standalone-assertions_vector.R' 'standalone-cli.R' 'standalone-do_run_example.R' 'standalone-get_crs.R' 'standalone-is_numeric_values.R' 'standalone-is_same_crs.R' 'standalone-is_spatial_extents_overlap.R' 'standalone-repr.R' 'summaries.R' 'summary.R' 'targets.R' 'test-helpers.R' 'validate_marxan_data.R' 'write_problem.R' 'zone_names.R' 'zzz.R' Roxygen: list(markdown = TRUE) Config/testthat/edition: 3 Config/Needs/website: topsis, vegan, cluster, units, scales, dplyr, ggplot2, stringr, ggrepel, piggyback, prioritizrdata, pkgdown Remotes: dirkschumacher/rcbc, cran/cplexAPI, bioc::lpsymphony Config/roxygen2/version: 8.1.0 Config/pak/sysreqs: libabsl-dev cmake libgdal-dev gdal-bin libgeos-dev libssl-dev libproj-dev libsqlite3-dev libudunits2-dev Repository: https://prioritizr.r-universe.dev Date/Publication: 2026-10-23 08:08:39 UTC RemoteUrl: https://github.com/prioritizr/prioritizr RemoteRef: HEAD RemoteSha: 1461139cdca5b8f8808682d71f649578452c50db NeedsCompilation: yes Packaged: 2026-10-23 14:18:49 UTC; root Author: Jeffrey O Hanson [aut] (ORCID: ), Richard Schuster [aut, cre] (ORCID: ), Nina Morrell [aut], Matthew Strimas-Mackey [aut] (ORCID: ), Sandra Neubert [aut] (ORCID: ), Brandon P M Edwards [aut] (ORCID: ), Matthew E Watts [aut], Peter Arcese [aut] (ORCID: ), Joseph R Bennett [aut] (ORCID: ), Hugh P Possingham [aut] (ORCID: ) Maintainer: Richard Schuster