Package: oppr
Type: Package
Version: 1.1.0
Title: Optimal Project Prioritization
Description: A decision support tool for prioritizing conservation projects.
    Prioritizations can be developed by maximizing expected feature richness,
    expected phylogenetic diversity, the number of features that meet
    persistence targets, or identifying a set of projects that meet persistence
    targets for minimal cost. Constraints (e.g. lock in specific actions) and
    feature weights can also be specified to further customize prioritizations.
    After defining a project prioritization problem, solutions can be obtained
    using exact algorithms, heuristic algorithms, or random processes. In
    particular, it is recommended to install the 'Gurobi' optimizer (available
    from <https://www.gurobi.com>) because it can identify optimal solutions
    very quickly. The 'rcbc' R package (available at
    <https://github.com/dirkschumacher/rcbc>) can also be used to generate
    solutions using the CBC optimization software
    (<https://github.com/coin-or/Cbc>). Finally, methods are provided for
    comparing different prioritizations and evaluating their benefits.
    For more information, see Hanson et al. (2019)
    <doi:10.1111/2041-210X.13264>.
Authors@R: 
    c(person(c('Jeffrey', 'O'), 'Hanson',
        email='jeffrey.hanson@uqconnect.edu.au', role = c('aut', 'cre'),
        comment = c(ORCID = '0000-0002-4716-6134')),
      person(c('Richard'), 'Schuster',
        email='mail@richard-schuster.com', role = c('aut'),
        comment = c(ORCID = '0000-0003-3191-7869')),
      person(c('Matthew'), 'Strimas-Mackey',
        email='mstrimas@gmail.com', role = c('aut'),
        comment = c(ORCID = '0000-0001-8929-7776')),
      person(c('Joseph', 'R'), 'Bennett',
        email='joseph.bennett@carleton.ca', role = c('aut'),
        comment = c(ORCID = '0000-0002-3901-9513')))
Imports: utils, methods, stats, Matrix (>= 1.3-0), magrittr (>= 1.5),
        R6 (>= 2.5.1), cli (>= 1.0.1), assertthat (>= 0.2.0), tibble
        (>= 2.0.0), ape (>= 5.2), tidytree (>= 0.3.3), ggplot2 (>=
        3.5.0), highs (>= 1.10.0.3), viridisLite (>= 0.3.0), withr (>=
        2.4.1), rlang (>= 1.1.3)
Suggests: testthat (>= 2.0.0), knitr (>= 1.20), roxygen2 (>= 6.1.0),
        rmarkdown (>= 1.10), gurobi (>= 13.0.0), Rsymphony (>= 0.1.28),
        ggtree (>= 2.4.2), lpsymphony (>= 1.10.0), lpSolveAPI (>=
        5.5.2.0.17), rcbc (>= 0.1.0.9003), fansi (>= 1.0.6)
Depends: R(>= 3.5.0)
LinkingTo: Rcpp (>= 0.12.19), RcppArmadillo (>= 0.9.100.5.0),
        RcppProgress (>= 0.4.1)
License: GPL-3
LazyData: true
URL: https://prioritizr.github.io/oppr/
BugReports: https://github.com/prioritizr/oppr/issues
VignetteBuilder: knitr, rmarkdown
Encoding: UTF-8
Language: en-US
Collate: 'internal.R' 'waiver.R' 'ProjectProblem-class.R'
        'ProjectModifier-class.R' 'Constraint-class.R'
        'Decision-class.R' 'MultiObjApproach-class.R'
        'MultiObjProjectProblem-class.R' 'Objective-class.R'
        'OptimizationProblem-class.R' 'OptimizationProblem-methods.R'
        'RcppExports.R' 'Solver-class.R' 'Target-class.R'
        'Weight-class.R' 'action_names.R'
        'add_abs_constraint_approach.R' 'add_absolute_targets.R'
        'add_binary_decisions.R' 'add_cbc_solver.R'
        'add_default_solver.R' 'add_default_weights.R'
        'add_feature_weights.R' 'add_gurobi_solver.R'
        'add_heuristic_solver.R' 'add_highs_solver.R'
        'add_locked_in_action_constraints.R'
        'add_locked_in_project_constraints.R'
        'add_locked_out_action_constraints.R'
        'add_locked_out_project_constraints.R'
        'add_lpsolveapi_solver.R' 'add_lpsymphony_solver.R'
        'add_manual_locked_action_constraints.R'
        'add_manual_locked_project_constraints.R' 'tbl_df.R'
        'add_manual_targets.R' 'add_max_phylo_div_objective.R'
        'star_phylogeny.R' 'add_max_richness_objective.R'
        'add_max_targets_met_objective.R' 'add_max_wtd_sum_objective.R'
        'add_min_set_objective.R' 'add_random_solver.R'
        'add_ref_point_approach.R' 'add_relative_targets.R'
        'add_rsymphony_solver.R' 'add_wtd_goal_approach.R'
        'approaches.R' 'assertions.R' 'branch_matrix.R' 'compile.R'
        'constraints.R' 'decisions.R' 'deprecated.R' 'feature_names.R'
        'multi_compile.R' 'multi_problem.R'
        'new_optimization_problem.R' 'number_of_actions.R'
        'number_of_features.R' 'number_of_problems.R'
        'number_of_projects.R' 'objectives.R' 'package.R'
        'solution_statistics.R' 'plot.R' 'plot_solution_barplot.R'
        'plot_solution_phylogram.R' 'predefined_optimization_problem.R'
        'print.R' 'problem.R' 'problem_names.R'
        'project_cost_effectiveness.R' 'project_names.R'
        'rake_phylogeny.R' 'rank_importance.R' 'reexports.R'
        'replacement_costs.R' 'repr.R' 'run_example.R' 'show.R'
        'sim_data.R' 'sim_multi_data.R' 'simulate_multi_ppp_data.R'
        'simulate_ppp_data.R' 'simulate_ptm_data.R' 'solve.R'
        'solvers.R' 'targets.R' 'weights.R' 'zzz.R'
Config/testthat/edition: 3
Config/Needs/website: tidyr (>= 0.8.2)
Config/roxygen2/version: 8.0.0
NeedsCompilation: yes
Packaged: 2026-05-27 01:20:03 UTC; jeff
Author: Jeffrey O Hanson [aut, cre] (ORCID:
    <https://orcid.org/0000-0002-4716-6134>),
  Richard Schuster [aut] (ORCID: <https://orcid.org/0000-0003-3191-7869>),
  Matthew Strimas-Mackey [aut] (ORCID:
    <https://orcid.org/0000-0001-8929-7776>),
  Joseph R Bennett [aut] (ORCID: <https://orcid.org/0000-0002-3901-9513>)
Maintainer: Jeffrey O Hanson <jeffrey.hanson@uqconnect.edu.au>
Repository: CRAN
Date/Publication: 2026-05-27 07:00:15 UTC
