Package: prioritizr Type: Package Version: 9.0.0.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), raster (>= 3.6.11), Matrix (>= 1.3-0), assertthat (>= 0.2.0), igraph (>= 2.0.3), ape (>= 5.6-1), magrittr (>= 2.0.1), exactextractr (>= 0.8.1), tibble (>= 2.0.0), withr (>= 2.3.0) Suggests: testthat (>= 3.1.0), knitr (>= 1.36), gurobi (>= 8.0-1), rcbc (>= 0.1.0.9001), cplexAPI (>= 1.4.0), lpsymphony (>= 1.17.0), slam (>= 0.1-48), Rsymphony (>= 0.1-31), highs (>= 0.1-10), rmarkdown (>= 2.11), prioritizrdata (>= 0.2.4), fields (>= 14.0), vroom (>= 1.6.5) 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.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_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' 'assertions_problem.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-deprecated.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.0.0 Config/pak/sysreqs: libabsl-dev cmake libgdal-dev gdal-bin libgeos-dev libglpk-dev libxml2-dev libssl-dev libproj-dev libsqlite3-dev libudunits2-dev Repository: https://prioritizr.r-universe.dev Date/Publication: 2026-06-17 23:41:18 UTC RemoteUrl: https://github.com/prioritizr/prioritizr RemoteRef: HEAD RemoteSha: f7ea002c58e93e33d7536ba5f000dc114d62f6d2 NeedsCompilation: yes Packaged: 2026-06-18 06:10:15 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