- The Tasmania tutorial has been reworked into the Getting started tutorial. This tutorial now provides short introduction to using the package.
- The Salt Spring Island tutorial has been reworked into the Connectivity tutorial. This tutorial now explores different approaches for incorporating connectivity.
- The prioritizr vignette has been renamed to the Package overview vignette.
- New Calibrating trade-offs tutorial showcasing methods for running calibration analyses. It outlines blended and hierarchical approaches for generating a set of different prioritizations based on different parameters. It also covers different approaches for selecting a candidate prioritization based on different trade-offs.
- Update tests to reduce run time and pass given slightly different results with new Gurobi version (9.5.0).
- Update built-in
sim_pu_sf
andsim_pu_zones_sf
data given class updates to the sf package (compatible with version 1.0.3+). - Update example for
write_problem
function.
- Update publication record.
- Update publication record.
- Fix URL in vignette.
- Release candidate for CRAN.
- Update
eval_ferrier_importance
function with verified code. - Update documentation with information about Ferrier importance scores.
- Brandon Edwards added to package author list.
- Update Gurobi Installation guide vignette.
- Update benchmark vignette.
- Update
presolve_check
function to throw warning when really high values specified inadd_neighbor_constraints
.
Update add_cbc_solver
function so that it can use a starting solution to reduce run time (via the start_solution
parameter).
- Fix examples that fail package checks.
- Remove xtable R package from Suggests because it is no longer used.
- Update publication vignette.
- New
add_linear_constraint
function to add arbitrary constraints. - Update
add_min_shortfall_objective
andadd_min_largest_shortfall_objective
functions to handle targets with a target threshold value of zero. - Minor improvements to the documentation. These include moving mathematical
details to dedicated sections, providing more links in the See also sections,
fixing text formatting for the
eval_connectivity_summary
function, and tweaking the header in the README. - Update publication vignette.
- Update publication vignette.
- Update documentation and examples for
problem
function. - Update publication vignette.
- New solver benchmark vignette.
- Update
add_gurobi_solver
function so that it doesn't print excess debugging information (accidentally introduced in previous version 7.0.1.1).
- Update
add_gurobi_solver
function to support thenode_file_start
parameter for the Gurobi software. This functionality is useful solving large problems on systems with limited memory (#139).
- Release candidate for CRAN.
- Update DESCRIPTION with more information on the package usage.
- Update DESCRIPTION with details on rcbc R package installation.
- New
write_problem
function to save the mixed integer programming representation of a conservation planning problem to a file. This function is useful for manually executing optimization solvers.
- Fix typo in
rij_matrix
function documentation (#189). - Update publication vignette.
- Update
add_gurobi_solver
to allow specification of a starting solution (#187). This functionality is useful for conducting a boundary penalty parameter calibration exercise. Specifically, users can specify the starting solution for a given penalty value based on the solution obtained using a smaller penalty value. - Bug fix:
solve
now assigns layer names based on zone names for solutions in format.
- Update methods for calculating solver runtime.
- Update publication record.
- Bug fix:
time_limit
andverbose
parameters foradd_cbc_solver
now work as expected.
- Update
add_gurobi_solver
to report timings following the same methods as the other solvers.
- Update
add_lpsymphony_solver
to be more memory efficient (#183). - Added slam R package to dependencies to enable more memory efficient usage of the lpsymphony R package (#183).
- Update unit tests to solve a greater proportion of them using continuous integration services (#181).
- Bug fix:
add_cbc_solver
is now preferred over all other open source solvers. - Bug fix:
add_cbc_solver
would sometimes return incorrect solutions to problems with equality constraints.
- Remove unused shiny R package integration and dependencies (#141).
- New
add_cbc_solver
function to generate solutions using the open source CBC solver via the rcbc R package (https://github.com/dirkschumacher/rcbc). - Update
add_rsymphony_solver
andadd_lpsymphony_solver
functions to have a defaulttime_limit
argument set as the maximum machine integer for consistency. - Update
add_rsymphony_solver
,add_lpsymphony_solver
, andadd_gurobi_solver
functions to requirelogical
(TRUE
/FALSE
) arguments for thefirst_feasible
parameter. - Update documentation for solvers to provide more detailed information.
- Update publication record.
- Update
add_default_solver
function so that it prefersadd_lpsymphony_solver
overadd_rsymphony_solver
, andadd_cbc_solver
over all open source solvers. - Bug fix: previous versions of the package reported that the
gap
parameter for theadd_rsymphony_solver
andadd_lpsymphony_solver
corresponded 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, thegap
parameter actually corresponded to a relative optimality gap expressed as a percentage (such thatgap = 10
indicates that solutions must be at least 10% from optimality). We have now fixed this error and the documentation described for thegap
parameter is correct. We apologize for any inconvenience this may have caused.
- Update Solution format section documentation for evaluation functions
(i.e. all functions starting with
eval_
) to mention that the argument tosolution
should only contain columns that correspond to the solution (#176). - Add examples using
sf
data to documentation for importance evaluation functions (#176). - Add more helpful error messages when invalid
solution
arguments are supplied to the evaluation functions (#176). - Add functionality to calculate importance scores using the Ferrier method
with
sf
planning unit data. - Fix broken link in
add_manual_targets
documentation. - Fix typo in equation for rarity weighted richness documentation.
- New
add_min_largest_shortfall
objective function.
- New
eval_cost
function to calculate the cost of a solution. - New
eval_boundary
function to calculate the exposed boundary length associated with a solution. - New
eval_connectivity
function to calculate the connectivity associated with a solution. - Deprecated
feature_representation
function. It is now superseded by theeval_feature_representation
function. - New
eval_feature_representation
function to assess how well each feature is represented by a solution. This function is similar to the deprecatedeval_feature_representation
function, except that it follows conventions for other evaluation functions (e.g.eval_cost
). - New
eval_target_representation
function to assess how well each target is met by a solution. This function is similar to theeval_feature_representation
, except that it corresponds to the targets in a conservation planning problem. - Rename
ferrier_score
function aseval_ferrier_importance
function for consistency. - Rename
replacement_cost
function aseval_replacement_importance
function for consistency. - Rename
rarity_weighted_richness
function aseval_rare_richness_importance
function for consistency. - Fix comparability issues with Matrix R package (version 1.3-0) (#172).
- Add NEWS to build process (#173).
- Update publication vignette.
- Add Schuster et al. 2020 to documentation to provide information on solver benchmarks (#170).
- Fix
add_locked_out_constraints
function to enable a single planning unit from being locked out of multiple zones (when data are specified in raster format).
- Release candidate for CRAN.
- Update publication record vignette.
- Fix URLs for CRAN checks.
- Implement GitHub Actions continuous integration (i.e. update tests and README).
- Update
problem
function to reduce memory consumption for sparse matrix arguments (#164). - Update Tasmania vignette to remove superfluous warnings (#168).
- Update publication record vignette.
- Fix compatibility issues between the testthat R package and the gurobi R package in package tests.
- New
add_cplex_solver
function to generate solutions using IBM CPLEX (via the cplexAPI package).
- Update publication record vignette.
- Update
add_gap_portfolio
documentation to note that it only works for problems with binary decisions (#159). - Fix target calculations in
add_loglinear_targets
andloglinear_interpolation
functions. Previously they used a natural logarithm for log-linear interpolation. To follow target setting approaches outlined by Rodrigues et al. (2004), they now use the decadic logarithm (i.e.log10
).
- Update publication record vignette.
- Update publication record vignette.
- Update documentation for
ferrier_score
function. It no longer incorrectly states that these scores can be calculated using CLUZ and now states that this functionality is experimental until the formulation can be double checked.
- Release candidate for CRAN.
- Fix tests for updated datasets in the prioritizrdata R package.
- Fix small typos in documentation.
- Update citation for Scriven et al. (2020) in the Publication Record vignette.
- Update Salt Spring Island vignette with Ferrier method for calculating irreplaceability scores and adjust for changes in cost data.
- Update examples to run with CRAN checks (i.e.
--run-donttest
).
- Fix
feature_representation
bug incorrectly throwing error with vector planning unit data (e.g. sf-class data).
- Fix typo causing
rij_matrix
to throw an error for large raster data (#151). - Fix "Non-file package-anchored link(s) in documentation object" warnings in R-devel checks.
- New
add_linear_penalties
to add penalties that penalize planning units according to a linear metric. - Update
connectivity_matrix
documentation to provide an example of how to generate connectivity matrices that account for functional connectivity. - Add more information to the documentation for the
solve
function. - Add links to the documentation for the
solve
function to the Salt Spring Island and Tasmania vignettes.
- Update
compile
to throw warning when compiling problems that include feature weights and an objective function that does not use feature weights.
- Add Schuster et al. (2020) to publication record.
- Update Hanson et al. (2020) in publication record.
- Update Flower et al. (2020) in publication record.
- Update
add_gurobi_solver
function to provide more options for controlling the pre-solve step when solving a problem.
- Release candidate for CRAN.
- New
ferrier_score
function to compute irreplaceability scores following Ferrier et al (2000).
- Add full support for sf R package (#6).
- Add Flower et al. (2020), Hanson et al. (2020), and Visalli et al. (2020) to publication record (#131).
- New
proximity_matrix
function to generate matrices indicating which planning units are within a certain distance of each other (#6). - Rename
connected_matrix
function toadjacency_matrix
function to follow the naming conventions of other spatial association functions (#6). - New
add_extra_portfolio
,add_top_portfolio
,add_gap_portfolio
functions to provide specific options for generating portfolios (#134). - Enhance
intersecting_units
andfast_extract
functions to use the exactextractr and fasterize R packages to speed up raster data extraction (#130). - Fix compatibility issues with upcoming version of tibble (3.0.0).
- Fix bug in
boundary_matrix
function when handlingSpatialPolygon
planning unit data that contain multiple polygons (e.g. a single planning unit contains to two separate islands) (#132). - Remove velox dependency since it may be archived on CRAN (#130).
- Deprecate
set_number_of_threads
,get_number_of_threads
, andis.parallel
functions since they are no longer used with new data extraction methods. - Deprecate
add_pool_portfolio
function because the newadd_extra_portfolio
andadd_top_portfolio
functions provide this functionality (#134). - Built-in datasets are now saved with latest workspace version (i.e. version 3).
- Fix bug in
add_rsymphony_solver
andadd_lpsymphony_solver
throwing an an infeasible error message for feasible problems containing continuous or semi-continuous variables.
- Add Lin et al. (in press) to publication record.
- Release candidate for CRAN.
- Fix warnings in R-devel CRAN checks related to documentation.
- Add Williams et al. (in press) to publication record.
- Add Rodewald et al. (2019) to publication record.
- Update in press version of Rodewald et al. (2019).
- Make error message for
presolve_check
function more informative (#124).
- Add Scriven et al. (in press) to publication record.
- Release candidate for CRAN.
- Fix
rij_matrix
so that amounts are calculated correctly for vector-based planning unit data. - Fix documentation for
fast_extract
.
- Add Rodewald et al. (in press) to publication record.
- Update reference for Bombi et al. (2019) in publication record.
- Fix typo in README.
- Release candidate for CRAN.
- Update
add_locked_in_constraints
andadd_locked_out_constraints
functions so that they no longer throw an unnecessary warning when when they are added to multi-zone problems using raster data withNA
values. - Update documentation for
add_locked_in_constraints
andadd_locked_out_constraints
functions to provide recommended practices for raster data. - Update documentation for constraints missing "See also" and "Value" sections.
- Fix issue with
rarity_weighted_richness
returning incorrect scores when the feature data contains one feature that has zeros amounts in all planning units (e.g. thetas_features
object in the prioritizrdata R package; #120). - Fix issue with
add_gurobi_solver
returning solution statuses that are slightly larger than one (e.g. 1+1.0e-10) when solving problems with proportion-type decisions (#118).
- Update
replacement_cost
function to use parallel processing to speed up calculations (#119). - New
add_manual_bounded_constraints
function to apply lower and upper bounds on planning units statuses in a solution (#118).
- Update
add_gurobi_solver
,add_lpsymphony_solver
, andadd_rsymphony_solver
functions so that they will not return solutions with values less than zero or greater than one when solving problems with proportion-type decisions. This issue is the result of inconsistent precision when performing floating point arithmetic (#117). - Update
add_locked_in_constraints
andadd_locked_out_constraints
functions to provide a more helpful error message thelocked_in
/locked_out
argument refers to a column with data that are not logical (i.e.TRUE
/FALSE
; #118).
- Update
solve
function to throw a more accurate and helpful error message when no solutions are found (e.g. due to problem infeasibility or solver time limits). - Standardize error messages so that none of them end in a full stop.
- Rename
add_max_phylo_objective
function toadd_max_phylo_div_objective
. - New
add_max_phylo_end_objective
function to maximize the phylogenetic endemism of species adequately represented in a prioritization (#113). - Add
add_max_phylo_end_objective
,replacement_cost
, andrarity_weighted_richness
functions to the Prioritizr vignette. - Update simulated phylogeny dataset (
sim_phylogeny
). - Update examples for
add_max_phylo_div_objective
function. - Prettify equations in the documentation for objective functions.
- New
irreplaceability
manual entry to document functions for calculating irreproducibility scores. - New
replacement_cost
function to calculate irreproducibility scores for each planning unit in a solution using the replacement cost method (#26). - New
rarity_weighted_richness
function to calculate irreproducibility scores for each planning unit in a solution using rarity weighted richness scores (#26). - Updated Salt Spring Island vignette with a section on calculating and interpreting irreplaceability scores.
- Fix typo.
- Fix broken links to Gurobi academic licenses.
- Fix compiler warnings thrown during package installation.
- Skip tests on CRAN's Windows system to reduce CRAN check times.
- Skip plotting data in examples during testing to reduce CRAN check times.
- Throw warning message if both the prioritizr and oppr R packages are loaded at the same time.
- Release candidate for CRAN (rejected).
- Fix example throwing an error during CRAN checks.
- Add Bombi et al. (in press) to publication record.
- Fix broken link in main vignette.
- Release candidate for CRAN.
- New
add_min_shortfall_objective
function to find solutions that minimize target shortfalls. - Add new
add_min_shortfall_objective
function to main vignette. - Fix
problem
tests so that they work when no solvers are installed.
- The
feature_representation
function now requires missing (NA
) values for planning unit statuses in a solution for planning units that have missing (NA
) cost data.
- New
presolve_check
function to investigate potential sources of numerical instability before trying to solve a problem. The manual entry for this function discusses common sources of numerical instability and approaches for fixing them. - The
solve
function will now use thepresolve_check
function to verify that problems do not have obvious sources of numerical instability before trying to solve them. If a problem is likely to have numerical instability issues then this function will now throw an error (unless thesolve(x, force = TRUE)
). - The
add_rsymphony_solver
function now uses sparse matrix formats so that attempts can be made to solve large problems with SYMPHONY---though it is unlikely that SYMPHONY will be able to solve such problems in a feasible period of time. - Fix warnings thrown by the tibble R package when calling
tibble::as.tibble
instead oftibble::as_tibble
. - Add example for calculating feature representation a solution in tabular
format output by
solve
(#110). - Fix several typos in documentation.
- Thrown warnings are now immediately visible.
- Update references in the publication record vignette.
- Specify English (US) in the DESCRIPTION file.
- Release candidate for CRAN.
- Retain debugging symbols to conform with CRAN policies.
- Release candidate for CRAN.
- Add new citations.
- Fix typos in documentation for
add_boundary_penalties
andadd_connectivity_penalties
function (#106).
- Fix issue where Rsymphony (and potentially lpsymphony) return infeasible solutions when subjected to a time limit (#105).
- Fix assorted bugs in the render, setter, and getter parameter functions for
ConservationProblem-class
objects. These methods were implemented to be used in future interactive applications and are not currently used in the package. As a consequence, these bugs do not affect the correctness of any results.
- Fix
bad error message
error being thrown when input rasters are not comparable (i.e. same coordinate reference system, extent, resolutions, and dimensionality) (#104). - Add Domisch et al. (2019) to publication record vignette.
- Fix issue
solve
printing annoying text abouttbl_df
(#75).
- Tweak
add_max_features_objective
example code.
- Update publication record vignette.
- Fix bug where the
add_neighbor_constraints
andadd_contiguity_constraints
functions used more memory than they actually needed (#102). This is because the argument validation code converted sparse matrix objects (i.e.dgCMatrix
) to base objects (i.e.matrix
) class temporarily. This bug only meant inefficient utilization of computer resources---it did not affect the correctness of any results.
- New
add_mandatory_allocation_constraints
function. This function can be used to ensure that every planning unit is allocated to a management zone in the solution. It is useful when developing land-use plans where every single parcel of land must be assigned to a specific land-use zone. - Add the
add_mandatory_allocation_constraints
to the Management Zones and Prioritizr vignettes. - Fix bug in the
$find(x)
method forCollection
prototypes that caused it to throw an error incorrectly. This method was not used in earlier versions of this package.
- Fix bug the
feature_representation
function that caused the "amount_held" column to have NA values instead of the correct values. This bug only affected problems with multiple zones.
- Fix bug in argument validation code for the
category_layer
function that it this function to incorrectly throw an error claiming that the input argument tox
was invalid when it was in fact valid. This bug is encountered when different layers the argument tox
have non-NA values in different cells.
- Update instructions for activating Gurobi licenses on remote machines (#98).
- The
add_contiguity_constraints
function now uses sparse matrix formats internally for single-zone problems. This means that the constraints can be applied to single-zoned problem with many more planning units.
- The
add_connectivity_penalties
function now uses sparse matrix formats internally for single-zone problems. This means that connectivity penalties can be applied to single-zoned problem with many more planning units.
- Update warning text when compiling problems that contain (i) objective functions that do not use targets and (ii) targets (#93).
- Update documentation for the
add_max_utility_objective
andadd_max_cover_objective
functions to make it clearer that they do not use targets (#94).
- Release candidate for CRAN.
- Fix bug in
add_locked_in_constraints
andadd_locked_out_constraints
that incorrectly threw an error when usinglogical
locked data (i.e.TRUE
/FALSE
) because it incorrectly thought that valid inputs were invalid. - Fix bug in
add_locked_in_constraints
,add_locked_out_constraints
, andadd_manual_locked_constraints
where solving the same problem object twice resulted in incorrect planning units being locked in or out of the solution (#92). - Added unit tests for objectives, constraints, decisions, targets, and penalties to ensure that solving problems twice does not result in different solutions.
- Fix bug in
feature_abundances
that caused the solve function to throw an error when attempting to solve problems with a single feature. - Fix bug in
add_cuts_portfolio
that caused the portfolio to return solutions that were not within the specified optimality gap when using the Gurobi solver. - Add the ability to specify the search pool method and number of solutions to
the
add_pool_portfolio
function.
- The
feature_representation
function now allowsnumeric
solutions with attributes (e.g. when output by thesolve
function) when calculating representation statistics for problems withnumeric
planning unit data (#91). - The
add_manual_targets
function threw a warning when some features had targets equal to zero. This resulted in an excessive amount of warnings. Now, warnings are thrown for targets that are less then zero. - The
problem
function sometimes incorrectly threw a warning that feature data had negative values when the data actually did not contain negative values. This has now been addressed.
- The
problem
function now allows negative values in the cost and feature data (and throws a warning if such data are detected). - The
add_absolute_targets
andadd_manual_targets
functions now allow negative targets (but throw a warning if such targets are specified). - The
compile
function throws an error if a problem is compiled using the expanded formulation with negative feature data. - The
add_absolute_targets
function now throws an warning---instead of an error---if the specified targets are greater than the feature abundances in planning units to accommodate negative values in feature data.
- Fix
add_max_cover_objective
in prioritizr vignette (#90).
- The
add_relative_targets
documentation now makes it clear that locked out planning units are included in the calculations for setting targets (#89). - The
add_loglinear_targets
function now includes afeature_abundances
parameter for specifying the total amount of each feature to use when calculating the targets (#89).
- Release candidate for CRAN.
- New
feature_abundances
function to calculate the total amount of each feature in the planning units (#86).
- Fix some equations in the documentation (#83).
- Add version requirements for assertthat and tibble (#82).
- Fix minor typos in the Gurobi Installation Guide and update the Management Zones tutorial.
- Add instructions for setting up the Gurobi Academic license on a computer that it is not connected to a university computer network using a computer that is on an academic network (#81). For example, these instructions could be used to set up Gurobi on a cloud-based system using a laptop computer that is connected a university's wireless network.
- The
add_cuts_portfolio
function uses the Gurobi solution pool to generate unique solutions within a specified gap of optimality when tasked with solving problems with Gurobi (version 8.0.0+; #80).
- New
add_pool_portfolio
function to generate a portfolio of solutions using the Gurobi solution pool (#77).
- The
boundary_matrix
function now has the experimental functionality to use GEOS STR trees to speed up processing (#74). - Solutions obtained from Gurobi that contain binary-type decisions are explicitly rounded to the nearest integer. This is because Gurobi can output solutions to binary problems that contain values which not exactly zero or one (e.g. 0.9999997 using default settings; #78).
- New
feature_representation
function to how well features are represented in solutions (#73).
- The prioritizrdata package has been listed under Suggests.
- The vignettes in the prioritizrdata package have been moved to this package to make them easier to find.
- Fix issue with the
solve
function printing superfluous text (#75).
- Minor improvements to the documentation for the
problem
function.
- Added functionality to build and solve problems with multiple management zones (#14).
- New built-in datasets
sim_pu_zones_stack
,sim_pu_zones_polygons
, andsim_features_zones
for exploring conservation problems with multiple management zones. - New
zones
function andZones
class to organize data with multiple zones. - The
problem
function now acceptsZone
objects as arguments forfeature
to create problems with multiple zones. - The
add_relative_targets
andadd_absolute_targets
functions for adding targets to problems can be used to specify targets for each feature in each zone. - New
add_manual_targets
function for creating targets that pertain to multiple management zones. - The
solve
function now returns alist
of solutions when generating a portfolio of solutions. - The
add_locked_in_constraints
andadd_locked_out_constraints
functions for specifying which planning units are locked in or out now acceptmatrix
arguments for specifying which zones are locked in or out. - New
add_manual_locked_constraints
function to manually specify which planning units should or shouldn't be allocated to specific zones in solutions. - All functions for adding constraints and penalties now have
parameters that specify how they should treat planning units allocate to
different zones (using the
zones
parameter) and specify how they they should be applied (using thedata
parameter. All of these functions have default arguments that mean that problems with a single zone should have the same optimal solution as problems created in the earlier version of the package. - The
add_feature_weights
function can be used to weight different the representation of each feature in each zone. - The
binary_stack
,category_layer
, andcategory_vector
functions have been provided to help work with data for multiple management zones. - New Management zones vignette on building and solving problems with multiple management zones.
- Added mention of zones functionality to package DESCRIPTION, summary (in
?prioritizr
), and README. - The Quick Start Guide and Prioritizr Basics vignettes have been consolidated into the prioritizr vignette.
- The
marxan_problem
has been updated with more comprehensive documentation and to provide more helpful error messages. For clarity, it will now only work with tabular data in the standard Marxan format.
- Fix typo in README and update documentation for
add_boundary_penalties
(#62).
- Fix bug where
add_locked_in_constraints
andadd_locked_out_constraints
throw an exception when used with semi-continuous-type decisions (#59). - Exception in
compile
thrown when the same planning unit is locked in and locked out now prints the planning unit indices in a readable format.
- Fix bug where
add_locked_in_constraints
andadd_locked_out_constraints
are ignored when using proportion-type decisions (#58).
- Fix bug in
predefined_optimization_problem
which incorrectly recognized some inputs as invalid when they were in fact valid. - Addressed NOTE in
R CMD check
related to proto in Depends.
- Moved proto package from Imports to Depends in DESCRIPTION
- Depends on R version 3.4.0 (avoids 'patchlevel 0' NOTE/WARNING in checks)
- Release candidate for CRAN.
- Unit tests that fail when using lpsymphony due to a bug in lpsymphony are now skipped (partially addressing #40).
add_lpsymphony_solver
now throws warnings to alert users to potentially incorrect solutions (partially addressing #40).
- Vignette sizes have been reduced.
- Release candidate for CRAN. Release postponed due issues on Travis CI.
- Unit tests for
add_*_objectives
now pass when executed with slow solvers (partially addressing #40). compile
now works when no solvers are installed (#41).- Gap arguments in
add_*_solvers
are now unbounded and can accept values larger than 1 (#44).
- Release candidate for CRAN.
- The
add_max_cover_objective
function has been renamed to theadd_max_utility_objective
, because the formulation does not follow the historical formulation of the maximum coverage reserve selection problem (#38). - The
add_max_cover_objective
function now follows the historical maximum coverage objective. This fundamentally changesadd_max_cover_objective
function and breaks compatibility with previous version of prioritizr (#38). - Modify lpsymphony examples and tests to skip on Linux operating systems.
- Add tests to unit tests that were being skipped in new version of testthat.
- Fix bug with
add_lpsymphony_solver
causing error when attempting to solve problems.
- Release candidate for CRAN. Release postponed due to bug report.
- Fix bug when solving problems with
numeric
vector data that caused an error. - Fix bug in compiling problems with
numeric
vector input with rij data containing NA values. - Added unit tests for solving problems with various input formats.
- Updated package sizes reported in cran-comments.
- Initial release candidate for CRAN. Release postponed due to bug report.
- Added vignette to record publications that use prioritizr (#35).
- Unit tests now compatible with development version of testthat (#34).
- Fix bug in
apply_boundary_penalties
andadd_connectivity_penalties
causing the function to throw an error when the number of boundaries/edges is less than the number of planning units.
- Makevars now compatible with Mac OSX Sierra (#33).
- Fix bug in
boundary_matrix
calculations (#30).
- Minor tweaks to vignettes.
- Add logo to README files and package website (#31).
- Broad-scale improvements to documentation.
- Fix documentation for
add_max_phylo_objective
(#24). - Update Gurobi Installation vignette.
- Remove prioritizrdata from package Suggests.
- Add shiny and xtable to Suggests for rendering parameters.
- Added code for
ScalarParameter
andArrayParameter
prototypes to check t that functions for generating widgets have their dependencies installed. - URLs for lpsymphony on Bioconductor now use the package's DOI.
- Add more comprehensive tests to portfolios.
- Fix bug when
numeric
planning unit data and portfolios that caused thesolve
to throw an error. - Remove R-devel from AppVeyor testing because it fails for unknown reasons.
- Removed shiny functions for now to prep for CRAN release.
- Rebuilt website and documentation.
- Included vignette on Gurobi solver installation and testing.
- Fixed bug where
Spatial*DataFrame
input tomarxan_problem
would always use the first column in the attribute table for the cost data. This bug is serious so analysis that usedSpatial*DataFrame
inputs inmarxan_problem
should be rerun. - Added functionality to use feature abundance/occurrence data stored as
columns in the planning unit data when constructing
problem
objects.
- Skip
add_cuts_portfolio
on Travis.
- Skip
add_cuts_portfolio
andadd_shuffle_portfolio
tests on CRAN.
- This version breaks compatibility with previous releases because
solutions in
data.frame
andSpatial*DataFrame
objects are now stored in columns named "solution_*" (e.g. "solution_1") to store multiple solutions. - Added support for multiple solutions (#23).
- Solutions now contain additional information in stored in the object's attributes (#24). See README.Rmd for examples on accessing this information.
- Tidy examples in add_gurobi_solver.R, add_lpsymphony_solver.R, add_rsymphony_solver.R, and solvers.R.
- Add logical
verbose
argument to all solvers. This replaces theverbosity
argument inadd_lpsymphony_solver
andadd_rsymphony_solver
. - The verbosity of information presented when solving problems using
add_lpsymphony_solver
andadd_rsymphony_solver
is reduced. - Assorted spelling mistakes have been fixed.
ConservationProblem$print()
now only prints the first three species names and a count of the total number of features. This update means thatConservationProblem
objects with lots of features can now safely be printed without polluting the R console.- Attempt to make equations in help files prettier.
- Fix bug where lpsymphony and Rsymphony solvers would return solutions
containing NA values if they did not find a feasible solution within
the argument to
time_limit
.
- Fix #19.
- Fix #20.
- Passes CRAN checks on Winbuilder.
- Added roxygen2 to Suggests for Travis CI.
- Simplify vignette workflow. Vignettes can now be compiled by using
devtools::build_vignettes()
. Earlier versions needed the vignettes to be compiled using the Makefile to copy files around to avoid tangled R code causing failures during R CMD CHECK. Although no longer needed, the vignettes can still be compiled using the shell commandmake vigns
if desired. - The README.Rmd now lives in the top-level directory following standard
practices. It should now be complied using
rmarkdown::render("README.Rmd")
or using the shell commandmake readme
. Note that the figures forREADME.md
can be found in the directoryman/figures
. - The example for
prshiny
will now only be run if executed during an interactive R session. Prior to this R CMD CHECK would hang. - UTF-8 math characters in vignettes have been replaced with with MathJax compatible latex expressions.
- R code in the vignettes has been linted to follow the package's style guide.
- Fix example in vignette quick_start.Rmd showing how to run
marxan_problem
using inputdata.frame
objects. - Fix bug in vignette quick_start.Rmd counting number of selected planning units
- Make the data.table package automatically installed when prioritizr is installed. Address issue #18.
- Move shiny, shinydashboard, and leaflet packages to Imports to avoid polluting users environment.
- Update preliminary versions of the shiny apps to call functions from other packages explicitly.
- README.Rmd tweaks to make it look prettier on website
- Lint objective function definition files
- Remove "\text" latex sequences from objective function definition files because CRAN doesn't support amsmath extensions in equations.
- Update examples in objective function files to only show relevant objectives
- Added rmarkdown package to Suggests following recommended practices.
- Enable 64 bit Armadillo flag. This increases the maximum size of problems that can be solved.
- Disable bound-checks in Armadillo matrix operations. This should reduce
processing time when running the
priortizr::compile
function.
- Fix bug in
problem.data.frame
that meant that it did not check for missing values inrij$pu
.
- Fix bugs
add_absolute_targets
and add_relative_targets` related to their standardGeneric being incorrectly defined - Reduce installation size using Dirk Eddelbuettel's awesome advice: http://dirk.eddelbuettel.com/blog/2017/08/14#009_compact_shared_libraries
- Fix bug in
add_corridor_targets
when argumentconnectivities
is alist
. The elements in the list are assumed to bedsCMatrix
objects (aka symmetric sparse matrices in a compressed format) and are coerced todgCMatrix
objects to reduce computational burden. There was a typo, however, and so the objects were coerced todgCmatrix
and notdgCMatrix
. This evidently was ok in earlier versions of the RcppArmadillo and/or Matrix packages but not in the most recent versions.
- Fix #21.
- Add roxygen2 to package SUGGESTS for building vignettes.
- Fix issue where
parallel::detectCores()
returnsNA
on some systems preventing users from using the Gurobi solver--even when one thread is specified.
- Fix building issue due to incorrect file order in DESCRIPTION.
- Compatibility with R 3.4.0.
- Replace
structure(NULL, ...)
withstructure(list(), ...)
. - Register compiled library files.
- Remove duplicate definition of
new_waiver
from internal.R. - Tests check if prioritizrdata package not installed and skip if it isn't.
- Fix missing links in documentation
- Fix typos in roxygen2 parameters
- Move
add_default_decisions
andadd_default_solver
to own help file - Make
add_default_objectives
andadd_default_targets
private functions
- Fix #13
- Fix #8.
- Fix bug in
add_corridor_constraints
that fails to actually add the constraints with argument toconnectivity
is a list. - Fix bug in
make install
command so that it now actually installs the package. - Fix link to Joe's website in the package's website.
- R interface fully functional.
- Package re-implementation.
- Prepare for CRAN submission.
- Add continuous integration.
- Fixed various bugs.
- Introduce maximum target coverage model.
- Add full vignette in addition to quickstart guide.
- Initial package version.