Changelog
Source:NEWS.md
oppr 1.1.0
- New
multi_problem()function to build multi-objective project prioritization problems. - New
add_max_wtd_sum_objective()function that is designed for datasets when some (or all) of the features do not have probability values to describe their expected outcome when projects are completed. For example, this may be useful when the expected outcome values for a feature reflect the total amount of land expected to be covered by an ecosystem, or the number of individuals present in a population. - New
add_cbc_solver()andadd_highs_solver()to generate solutions with the CBC and HiGHS optimization software. - New
add_ref_point_approach(),add_wtd_goal_approach(), andadd_abs_constraint_approach()functions for multi-objective optimization. - New
add_locked_in_project_constraints(),add_locked_out_project_constraints(), andadd_manual_locked_project_constraints()functions for adding constraints to lock the selection of projects during optimization. - Update
problem()to be compatible with outcome data that are not probabilities of persistence (e.g., amount of land covered by an ecosystem). - Update
plot()functions to be compatible with updates to ggplot2 package. - Update Matrix package version dependency (#20).
- Update class system to use R6 classes instead of proto classes.
- Update unit tests for compatibility with testthat edition 3.
- Rename
plot_phylo_persistence()toplot_solution_phylogram(). - Rename
plot_feature_persistence()toplot_solution_barplot(). - Rename
add_max_richness_objective()toadd_max_wtd_sum_objective(). - Rename
add_locked_in_constraints()toadd_locked_in_action_constraints(). - Rename
add_locked_out_constraints()toadd_locked_out_action_constraints(). - Rename
add_manual_locked_constraints()toadd_manual_locked_action_constraints(). - Remove unused functionality for shiny application integration.
- Remove S3 methods for interacting with
new_optimization_problem()objects.
oppr 1.0.5
CRAN release: 2025-06-27
- CRAN release.
- Fix issue with vignette failing to build when the fansi package is not installed.
- Add fansi package to optional dependencies (#22).
- Fix bug in
add_lpsolveapi_solver().
oppr 1.0.4.1
- Fix aliasing for package manual entry (#21).
- Fix compatibility with updates to ggplot2 package.
- Fix compatibility with updates to package citation format.
- Fix broken URLs in package documentation.
- Fix broken badges in README.
oppr 1.0.4
CRAN release: 2022-09-08
- CRAN release.
- Fix compiler warnings raised by CRAN checks.
- Remove references to the ggtree package in documentation.
- Fix memory issues encountered during installation on CRAN Windows server.
- Fix compatibility issues with upcoming version of the Matrix package (version 1.4-2).
- Fix broken URLs in package documentation.
oppr 1.0.2.5
- Update minimum versions for tidytree and ggtree package dependencies. This is because some older versions of tidytree are not compatible with some older versions of the ggtree package.
oppr 1.0.2.3
- Bug fix: previous versions of the package reported that the
gapparameter for theadd_rsymphony_solverandadd_lpsymphony_solvercorresponded to the maximum absolute difference from the optimal objective value. This was an error due to misunderstanding the SYMPHONY documentation. Under previous versions of the package, thegapparameter actually corresponded to a relative optimality gap expressed as a percentage (such thatgap = 10indicates that solutions must be at least 10% from optimality). We have now fixed this error and the documentation described for thegapparameter is correct. We apologize for any inconvenience this may have caused. - Update
add_rsymphony_solverandadd_lpsymphony_solverfunctions to have a defaulttime_limitargument set as the maximum machine integer for consistency. - Update
add_rsymphony_solver,add_lpsymphony_solver, andadd_gurobi_solverfunctions to requirelogical(TRUE/FALSE) arguments for thefirst_feasibleparameter. - Standardize run time calculations across all solvers.
- Fix compatibility issues between the testthat R package and the gurobi R package in package tests.
oppr 1.0.2.2
- Implement GitHub Actions continuous integration (i.e. update tests and README).
- Update examples to use
\dontruninstead of\donttestper CRAN policies.
oppr 1.0.2.1
- Fix “Non-file package-anchored link(s) in documentation object” warnings in R-devel checks.
oppr 1.0.1.1
- Replace
tibble::as.tibblewithtibble::as_tibbleto avoid warnings.
oppr 0.0.4.1
- Fix warnings in R-devel CRAN checks related to documentation.
- Add citation for the research article that accompanies this package.
oppr 0.0.1.1
- Fix address sanitizer issues causing CRAN checks to fail.
- Tests successfully complete when the shiny package is not installed.
oppr 0.0.0.19
- Add argument to
add_heuristic_solverto skip initial step for removing projects and actions that exceed the budget. While this initial step improves solution quality, it is not conventionally used in project prioritization algorithms and so should be omitted to provide accurate benchmarks.
oppr 0.0.0.18
- Reduce precision of extinction probability calculations when formulating a problem with a maximum expected phylogenetic diversity objective (i.e.
add_max_phylo_div_objective). Specifically, 1’000 points instead of 10’000 points are now used for piece-wise linear components. It appears that reducing the precision in this manner does not affect the correctness of results, but substantially reduces the time needed to solve problems to optimality in certain situations.
oppr 0.0.0.17
- Update
add_heuristic_solveralgorithm so that cost-effectiveness values are calculated with projects sharing costs (e.g. if two projects share an action that costs $100, then this action contributes $50 to the cost of each project). This update makes the algorithm similar to backwards heuristics conventionally used in prioritizing species recovery projects (i.e. https://github.com/p-robot/ppp; #14).
oppr 0.0.0.15
- Update
add_heuristic_solveralgorithm so that it removes projects, and not actions, in an iterative fashion. This update (i) makes the algorithm comparable to the backwards heuristics conventionally used in prioritizing species recovery projects (i.e. https://github.com/p-robot/ppp) and (ii) substantially reduces run time (#14).
oppr 0.0.0.14
- Fix bugs in
add_heuristic_solverandadd_random_solverarising from floating point comparison issue. These were causing infeasible solutions to be returned in R version 3.4.4.
oppr 0.0.0.13
- Fix bug in
project_cost_effectivenessreporting incorrect costs, and cost-effectiveness values.
oppr 0.0.0.11
- Update
add_heuristic_solveralgorithm so that all actions and projects which exceed the budget are automatically removed prior to the iterative action removal. - Update
add_random_solveralgorithms so that projects are selected instead of individual actions. This means that solutions from this solver are (i) similar to those in previous project prioritization studies and (ii) more likely to deliver better solutions (#13).
oppr 0.0.0.10
- Rename package to oppr since ppr is already on CRAN.
- Fix issue with
replacement_costsyielding incorrect results for baseline projects when used with SYMPHONY solvers.
oppr 0.0.0.9
- Add new
project_cost_effectivenessfunction to calculate the cost-effectiveness for each conservation project in a problem.
oppr 0.0.0.7
- Fix annoying “
Found more than one class "tbl_df" in cache; using the first, from namespace 'tibble'” text.
oppr 0.0.0.6
- Actually fix bug when solving problems with a phylogenetic objective and branches that have a constant probability of persistence (#6).
- Fix bug in
add_max_phylo_div_objectiveyielding incorrect solutions when features are ordered differently in the phylogenetic and tabular input data. - Fix bug in
solution_statisticsyielding objective values for phylogenetic problems when features are ordered differently in the phylogenetic and tabular input data. - Fix bug when handling phylogenetic data when a species is associated with two tip branches. Although such data probably indicate errors in the phylogenetic data, this functionality could be useful when combining multiple datasets.
oppr 0.0.0.5
- Add
return_dataargument toplot_feature_persistenceandplot_phylo_persistenceso that plotting data can be obtained for creating custom plots.
oppr 0.0.0.4
- Fix bug in
add_relative_targetsandadd_manual_targets(when relative targets supplied) calculations. This result in incorrect calculations. - Fix issue with expected persistence probabilities not accounting for the “do nothing” scenario (#7).
oppr 0.0.0.3
- The gurobi solver (i.e.
add_gurobi_solverfunction) now usesNumericFocus=3to help avoid numerical issues. - The
compilefunction now throws a warning if problems are likely to have numerical issues.
oppr 0.0.0.2
- Fix bug when solving problems with a phylogenetic objective and branches that have a constant probability of persistence (#6). Hindsight shows this attempt did not cover all edge cases.
- Add additional data sanity checks to
problem. It will now throw descriptive error messages if features are missing baseline probabilities, or are associated with baseline probabilities below 1e-11. - Fix unit test for
simulate_ptm_datathat had a very small chance of failing due to simulating a data set where an action is not associated with any project. - Feature columns in simulated data produced using
simulate_ppp_dataandsimulate_ptm_dataare now sorted.