Skip to contents

prioritizr 8.0.3.6

Minor improvements and bug fixes

  • Fix bug in add_shuffle_portfolio() so that optimization problems are randomly shuffled when a single solution is requested. This update should help prevent “strange” solutions that contain long horizontal lines/bands of planning units (#205, #268).
  • Update add_contiguity_constraints() and add_feature_contiguity_constraints() to be compatible with updates to the igraph package.
  • Update write_problem() so that it can use the gurobi package to write problems (if desired). This substantially reduces run time, because writing problems using the Rsymphony packages also requires solving them.

Documentation updates

  • Update publication record.

prioritizr 8.0.3.5

Minor improvements and bug fixes

Documentation updates

  • Update publication record.
  • Update package-level manual entry.
  • Update URLs.

prioritizr 8.0.3.4

Minor improvements and bug fixes

  • Update problem() to be more memory efficient when using a sparse matrix (dgCMatrix) argument for the rij_matrix parameter.
  • Update error messages for checking that objects have the same coordinate reference system and overlapping spatial extents to format argument names correctly.
  • Update error messages for nested expressions to refer to expressions using Caused by error instead of Caused by NULL.

Documentation updates

  • Update publication record.

prioritizr 8.0.3.3

Minor improvements and bug fixes

Documentation updates

  • Update publication record.

prioritizr 8.0.3.2

Documentation updates

  • Update URLs.

prioritizr 8.0.3.1

Minor improvements and bug fixes

  • Fix aliasing for package manual entry (#301).

Documentation updates

  • Update publication record.

prioritizr 8.0.3

CRAN release: 2023-08-08

Notice

  • CRAN release.

prioritizr 8.0.2.7

Notice

  • We have developed a better approach for rescaling boundary data to avoid numerical issues during optimization (#297). Earlier versions of the package recommended the use of the scales::rescale() to rescale such data. However, we now realize that this approach can produce inconsistencies for boundary length data (e.g., the total perimeter of a planning unit might not necessarily equal the sum of the edge lengths). In some cases, these inconsistencies can cause solutions generated with high boundary penalties (i.e., using add_boundary_penalties() with a high penalty value) to contain a large reserve (i.e., a spatial cluster of selected of planning units) with a single unselected planning unit in the middle of the reserve. In the the worst case, these inconsistencies produce a situation where increasing boundary penalties (i.e., generating multiple solutions with add_boundary_penalties() and increasing penalty values) does not alter the spatial configuration of solutions. Although use of scales::rescale() did not produce such behavior prior to version 8.0.0, changes to the output format for boundary_matrix() in subsequent versions now mean that scales::rescale() can cause these issues. We now recommend using the new rescale_matrix() function to rescale boundary length data to avoid numerical issues, whilst also avoid such inconsistencies.

New features

Minor improvements and bug fixes

  • Update the print() and summary() methods for problem() objects so that they will now better describe situations when the planning cost data all contain a constant value (e.g., all costs equal to 1).

Documentation updates

  • Update examples and vignettes to use the rescale_matrix() function instead of the scales::rescale() function for rescaling boundary length and connectivity data (#297).
  • Update publication record.

prioritizr 8.0.2.6

New features

  • Update add_neighbors_constraints() so that it has an additional clamp argument so the minimum number of neighbors permitted for each planning unit in the solution is clamped to the number of neighbors that each planning unit has. For example, if a planning unit has 2 neighbors, k = 3, and clamp = FALSE, then the planning unit could not ever be selected in the solution. However, if clamp = TRUE, then the planning unit could potentially be selected in the solution if both of its 2 neighbors were also selected.

Minor improvements and bug fixes

  • Fix issue with problem() that prevents features being supplied as a data.frame that contains feature names stored as a factor (#295). Thanks to Carl Boetigger (@cboettig) for bug report.

Documentation updates

  • Fix URLs.

prioritizr 8.0.2.5

Minor improvements and bug fixes

  • Update problem() so that it will throw a meaningful error message if the user accidentally specifies the geometry column for sf planning unit data as a feature.

prioritizr 8.0.2.4

Minor improvements and bug fixes

Documentation updates

  • Update publication record.

prioritizr 8.0.2.3

Minor improvements and bug fixes

Documentation updates

  • Update publication record.

prioritizr 8.0.2.2

Minor improvements and bug fixes

  • Fix compatibility with highs package (version 0.1-10) (#281).

Documentation updates

  • Update publication record.

prioritizr 8.0.2.1

Minor improvements and bug fixes

  • Update problem() so that an error will be thrown if argument to features contains only missing (NA) values (e.g., an sf object is supplied that has NA values in all rows for a feature’s column).

Documentation updates

  • Update publication record.

prioritizr 8.0.2

CRAN release: 2023-05-01

Notice

  • The package has been updated to focus on using the sf and terra package for spatial vector and raster datasets. This is because the sf package is the successor to the sp package, and the terra package is the successor to the raster package. By leveraging these newer packages, the prioritizr package can provide better performance. Although sp and raster package classes (e.g., raster::stack() and sp::SpatialPolyonsDataFrame()) are still supported, the prioritizr package will now throw deprecation warnings. Since support for the sp and raster package classes will be fully deprecated and removed in a later version this year, we recommend updating code to use the sf and terra packages.

Major changes

New features

Minor improvements and bug fixes

Documentation updates

  • Assorted tweaks to improve writing in the vignettes and documentation. Many thanks to Marc Edwards (@edwardsmarc) for code contribution!
  • Update publication record.

prioritizr 8.0.1

Minor improvements and bug fixes

  • Assorted bug fixes.

prioritizr 8.0.0

CRAN release: 2023-03-29

Notice

  • This version contains an incorrect version of the code, due to a mistake when preparing for CRAN release. We strongly recommend upgrading to version 8.0.1 to ensure correct results. We apologize any inconvenience this might have caused.

prioritizr 7.2.2.7

Documentation updates

  • Update README badges.
  • Update publication record.

prioritizr 7.2.2.6

Documentation updates

  • Update publication record.

prioritizr 7.2.2.5

Documentation updates

  • Update publication record.

prioritizr 7.2.2.4

Minor improvements and bug fixes

  • Specify minimum version for Matrix package dependency (#255). Thanks to Bruno Carturan (@BrunoCartu) for bug report.

prioritizr 7.2.2.3

New features

Minor improvements and bug fixes

prioritizr 7.2.2.2

Minor improvements and bug fixes

Documentation updates

  • Fix URLs.

prioritizr 7.2.2.1

Documentation updates

  • Fix mistake in NEWS.md.
  • Update publication record.

prioritizr 7.2.2

CRAN release: 2022-09-17

Notice

  • Release candidate for CRAN.

Minor improvements and bug fixes

  • Fix compiler warnings.
  • Update tests to skip long-running tests on CRAN.

Documentation updates

  • Update examples to minimize overall package check timings for CRAN.

prioritizr 7.2.1

Notice

  • Release candidate for CRAN (rejected due to package check timings).

prioritizr 7.2.0.9

Major changes

Minor improvements and bug fixes

  • Fix compatibility with upcoming Matrix package version (version 1.5-0).
  • Update package documentation to provide details for obtaining and installing the cplexAPI package since it has been archived on CRAN (#214).
  • Fix bug that caused the add_cbc_solver() to throw a segfault when solving a problem wherein the rij_matrix(x) has a zero amount for the last feature in the last planning unit (#247). Thanks to Jason Everett (@jaseeverett) for bug report.
  • Remove maptools, PBSmapping, and rgeos packages as dependencies. This involved updating the unit tests to hard-code correct results, updating examples to use the sf package, and updating the boundary_matrix() to use the geos package (#218).

Documentation updates

  • Fix URLs.

prioritizr 7.2.0.8

Major changes

  • Update simulate_cost() and simulate_species() so that they no longer depend on the RandomFields package. Note that these functions will now produce different outputs from previous versions (even when controlling for the random number generator state).

prioritizr 7.2.0.7

Documentation updates

  • Update publication record.

prioritizr 7.2.0.6

Documentation updates

  • Update publication record.

prioritizr 7.2.0.5

Documentation updates

  • Update publication record.

prioritizr 7.2.0.4

Documentation updates

  • Fix URLs.

prioritizr 7.2.0.3

Minor improvements and bug fixes

  • Update the presolve_check() function to (i) reduce chances of it incorrectly throwing an error when the input data won’t actually cause any issues, and (ii) provide recommendations for addressing issues.

Documentation updates

prioritizr 7.2.0.2

Minor improvements and bug fixes

  • Fix bug in processing planning unit data when a problem is constructed using arguments to (i) x that are numeric or matrix format, (ii) x that contain missing (NA) values, and (iii) rij_matrix that are in dgCMatrix format. This bug only occurred when all three of these specific conditions were met. When it occurred, the bug caused planning units with NA cost values to receive very high cost values (e.g., 1e+300). This bug meant that when attempting to solve the problem, the presolve checks (per presolve_check()) would throw an error complaining about very high cost values (#236). Thanks to @lmathon for bug report.

prioritizr 7.2.0.1

Documentation updates

  • Update publication record.

prioritizr 7.2.0.0

Major changes

New features

  • New add_asym_connectivity_penalties() function that is designed specifically for asymmetric connectivity data. This function has been created to help ensure that asymmetric connectivity data are handled correctly. For instance, using asymmetric connectivity data with add_connectivity_penalties() function in previous versions of the package sometimes resulted in the data being incorrectly treated as symmetric data. Additionally, this function uses an updated mathematical formulation for handling asymmetric connectivity so that it provides similar results to the Marxan software (#223). Thanks to Nina Faure Beaulieu (@ninzyfb) for bug report.

Minor improvements and bug fixes

  • Fix add_locked_in_constraints() and add_locked_out_constraints() to ensure that a meaningful error message is provided when no planing units are locked (#234). Thanks to Alec Nelson (@AlecNelson) for bug report.
  • Fix presolve_check() so that it does not throw a meaningless warning when the mathematical objective function only contains zeros.
  • Update presolve_check() to help reduce chances of mis-attributing high connectivity/boundary values due to planning unit costs.
  • Update marxan_problem() function so that it can be used with asymmetric connectivity data. This is now possible because there are dedicated functions for symmetric and asymmetric connectivity.

Documentation updates

  • Update publication record.
  • Update URLs in publication record so that they pass CRAN checks.

prioritizr 7.1.1.12

Documentation updates

  • Update publication record.

prioritizr 7.1.1.11

Documentation updates

  • Update publication record.

prioritizr 7.1.1.10

Documentation updates

prioritizr 7.1.1.9

Documentation updates

  • Update documentation for eval_ferrier_importance() (#220). Although this function is now recommended for general use, the documentation contained an outdated warning and so the warning has now been removed.

prioritizr 7.1.1.8

Minor improvements and bug fixes

  • Fix bug so that the eval_n_summary() function now returns a table with the column name "n" (instead of "cost") for the number of selected planning units (#219).

Documentation updates

  • Update publication record.
  • Update reference index for package website.
  • Fix minor typos in vignettes.

prioritizr 7.1.1.7

Minor improvements and bug fixes

  • Minimum version numbers are now provided for all R package dependencies (excepting base R packages) (#217).
  • The data.table package is now listed as a suggested (optional) dependency. This is because it is only used by the marxan_problem() for importing Marxan data files.

prioritizr 7.1.1.6

Documentation updates

  • Update publication record.

prioritizr 7.1.1.5

Documentation updates

  • 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.

prioritizr 7.1.1.4

Minor improvements and bug fixes

  • 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 and sim_pu_zones_sf data given class updates to the sf package (compatible with version 1.0.3+).

Documentation updates

prioritizr 7.1.1.3

Documentation updates

  • Update publication record.

prioritizr 7.1.1.2

Documentation updates

  • Update publication record.

prioritizr 7.1.1.1

Documentation updates

  • Fix URL in vignette.

prioritizr 7.1.1

CRAN release: 2021-10-29

Notice

  • Release candidate for CRAN.

prioritizr 7.1.0.4

Notice

  • Brandon Edwards added to package author list.

Major changes

Minor improvements and bug fixes

Documentation updates

  • Update documentation with information about Ferrier importance scores.
  • Update Gurobi Installation guide vignette.
  • Update benchmark vignette.

prioritizr 7.1.0.3

Minor improvements and bug fixes

Update add_cbc_solver() function so that it can use a starting solution to reduce run time (via the start_solution parameter).

prioritizr 7.1.0.2

Minor improvements and bug fixes

  • Remove xtable package from Suggests because it is no longer used.

Documentation updates

  • Fix examples that fail package checks.

prioritizr 7.1.0.1

Documentation updates

  • Update publication vignette.

prioritizr 7.1.0.0

New features

  • New add_linear_constraint() function to add arbitrary constraints.

Minor improvements and bug fixes

Documentation updates

  • 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.

prioritizr 7.0.1.5

Documentation updates

  • Update publication vignette.

prioritizr 7.0.1.4

Documentation updates

  • Update documentation and examples for problem() function.
  • Update publication vignette.

prioritizr 7.0.1.3

Documentation updates

  • New solver benchmark vignette.

prioritizr 7.0.1.2

Minor improvements and bug fixes

  • Update add_gurobi_solver() function so that it doesn’t print excess debugging information (accidentally introduced in previous version 7.0.1.1).

prioritizr 7.0.1.1

New features

  • Update add_gurobi_solver() function to support the node_file_start parameter for the Gurobi software. This functionality is useful solving large problems on systems with limited memory (#192). Thanks to @negira and Alec Nelson (@AlecNelson) for bug reports and suggestions.

prioritizr 7.0.1

CRAN release: 2021-03-31

Notice

  • Release candidate for CRAN.

Documentation updates

  • Update DESCRIPTION with more information on the package usage.
  • Update DESCRIPTION with details on rcbc package installation.

prioritizr 7.0.0.8

New features

  • 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.

prioritizr 7.0.0.7

Documentation updates

  • Fix typo in rij_matrix() function documentation (#189).
  • Update publication vignette.

prioritizr 7.0.0.6

Minor improvements and bug fixes

  • Update add_gurobi_solver() function 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.
  • Fix solve() so it assigns layer names based on zone names for solutions in raster format.

prioritizr 7.0.0.5

Minor improvements and bug fixes

  • Update methods for calculating solver runtime.

prioritizr 7.0.0.4

Minor improvements and bug fixes

  • Fix add_cbc_solver() so that time_limit and verbose parameters work as expected.

Documentation updates

  • Update publication record.

prioritizr 7.0.0.3

Minor improvements and bug fixes

  • Update add_gurobi_solver() function to report timings following the same methods as the other solvers.

prioritizr 7.0.0.2

Minor improvements and bug fixes

  • Update add_lpsymphony_solver() function to be more memory efficient (#183).
  • Added slam package to dependencies to enable more memory efficient usage of the lpsymphony package (#183).

prioritizr 7.0.0.1

Minor improvements and bug fixes

  • Update unit tests to solve a greater proportion of them using continuous integration services (#181).
  • Update add_default_solver() so that add_cbc_solver() is now preferred over all other open source solvers.
  • Fix bug in add_cbc_solver() that resulted in incorrect solutions to problems with equality constraints.

prioritizr 7.0.0.0

Minor improvements and bug fixes

  • Remove unused shiny package integration and dependencies (#141).

prioritizr 6.0.0.2

New features

Minor improvements and bug fixes

Documentation updates

  • Previous versions of the package reported that the gap parameter for the add_rsymphony_solver() and add_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, the gap 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 the gap parameter is correct. We apologize for any inconvenience this may have caused.
  • Update documentation for solvers to provide more detailed information.
  • Update publication record.

prioritizr 6.0.0.1

New features

  • New add_min_largest_shortfall() objective function.

Minor improvements and bug fixes

  • Add more helpful error messages when invalid solution arguments are supplied to the evaluation functions (#176). Thanks to Phil Dyer (@PhDyellow) for bug report.
  • Add functionality to calculate importance scores using the Ferrier method with sf planning unit data.

Documentation updates

  • Update Solution format section documentation for evaluation functions (i.e. all functions starting with eval_) to mention that the argument to solution should only contain columns that correspond to the solution (#176). Thanks to Phil Dyer (@PhDyellow) for bug report.
  • Add examples using sf data to documentation for importance evaluation functions (#176).
  • Fix broken link in add_manual_targets() documentation.
  • Fix typo in equation for rarity weighted richness documentation.

prioritizr 6.0.0.0

New features

  • 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.
  • New eval_feature_representation() function to assess how well each feature is represented by a solution. This function is similar to the deprecated eval_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 the eval_feature_representation(), except that it corresponds to the targets in a conservation planning problem.

Major changes

Minor improvements and bug fixes

  • Fix comparability issues with Matrix package (version 1.3-0) (#172).

Documentation updates

  • Add NEWS to build process (#173).
  • Update publication vignette.

prioritizr 5.0.3.2

Documentation updates

  • Add Schuster et al. (2020) to documentation to provide information on solver benchmarks (#170). Thanks to Stefan Blumentrath (@ninsbl) for suggestion.

prioritizr 5.0.3.1

Minor improvements and bug fixes

  • 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).

prioritizr 5.0.3

CRAN release: 2020-11-24

Notice

  • Release candidate for CRAN.

prioritizr 5.0.2.7

Documentation updates

  • Update publication record vignette.
  • Fix URLs for CRAN checks.

prioritizr 5.0.2.6

Minor improvements and bug fixes

  • Implement GitHub Actions continuous integration (i.e. update tests and README).
  • Update problem() function to reduce memory consumption for sparse matrix arguments (#164).
  • Fix compatibility issues between the testthat package and the gurobi package in package tests.

Documentation updates

  • Update Tasmania vignette to remove superfluous warnings (#168). Thanks to Jason Flower (@jflowernet) for bug report.
  • Update publication record vignette.

prioritizr 5.0.2.5

New features

prioritizr 5.0.2.4

Minor improvements and bug fixes

  • Fix target calculations in add_loglinear_targets() and loglinear_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()).

Documentation updates

  • Update publication record vignette.
  • Update add_gap_portfolio() documentation to note that it only works for problems with binary decisions (#159). Thanks to @kkemink for report.

prioritizr 5.0.2.3

Documentation updates

  • Update publication record vignette.

prioritizr 5.0.2.2

Documentation updates

  • Update publication record vignette.

prioritizr 5.0.2.1

Documentation updates

  • 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.

prioritizr 5.0.2

CRAN release: 2020-07-30

Notice

  • Release candidate for CRAN.

prioritizr 5.0.1.7

Minor improvements and bug fixes

  • Fix tests for updated datasets in the prioritizrdata package.

Documentation updates

  • 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).

prioritizr 5.0.1.6

Minor improvements and bug fixes

prioritizr 5.0.1.5

Minor improvements and bug fixes

  • 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.

prioritizr 5.0.1.4

New features

Documentation updates

  • 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.

prioritizr 5.0.1.3

Minor improvements and bug fixes

  • Update compile() to throw warning when compiling problems that include feature weights and an objective function that does not use feature weights.

prioritizr 5.0.1.2

Documentation updates

  • Add Schuster et al. (2020) to publication record.
  • Update Hanson et al. (2020) in publication record.
  • Update Flower et al. (2020) in publication record.

prioritizr 5.0.1.1

Minor improvements and bug fixes

  • Update add_gurobi_solver() function to provide more options for controlling the pre-solve step when solving a problem.

prioritizr 5.0.1

CRAN release: 2020-05-15

Notice

  • Release candidate for CRAN.

prioritizr 5.0.0.1

New features

  • New ferrier_score() function to compute irreplaceability scores following Ferrier et al (2000).

prioritizr 5.0.0.0

New features

Major changes

Minor improvements and bug fixes

  • Enhance intersecting_units and fast_extract functions to use the exactextractr and fasterize 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 handling SpatialPolygon planning unit data that contain multiple polygons (e.g. a single planning unit contains to two separate islands) (#132).
  • Remove velox package dependency since it may be archived on CRAN (#130). Thanks to Jeffrey Evans (@jeffreyevans) for report.
  • Built-in datasets are now saved with latest workspace version (i.e. version 3).

Documentation updates

  • Add Flower et al. (2020), Hanson et al. (2020), and Visalli et al. (2020) to publication record (#131). Thanks to Jason Flower (@jflowernet) for report.

prioritizr 4.1.5.2

Minor improvements and bug fixes

prioritizr 4.1.5.1

Minor improvements and bug fixes

  • Add Lin et al. (in press) to publication record.

prioritizr 4.1.5

CRAN release: 2020-02-06

Notice

  • Release candidate for CRAN.

prioritizr 4.1.4.4

Documentation updates

  • Fix warnings in R-devel CRAN checks related to documentation.

prioritizr 4.1.4.3

Documentation updates

  • Add Williams et al. (in press) to publication record.

prioritizr 4.1.4.2

Minor improvements and bug fixes

Documentation updates

  • Add Rodewald et al. (2019) to publication record.
  • Update in press version of Rodewald et al. (2019).

prioritizr 4.1.4.1

Documentation updates

  • Add Scriven et al. (in press) to publication record.

prioritizr 4.1.4

CRAN release: 2019-10-03

Notice

  • Release candidate for CRAN.

prioritizr 4.1.3.3

Minor improvements and bug fixes

  • Fix rij_matrix() so that amounts are calculated correctly for vector-based planning unit data.

Documentation updates

prioritizr 4.1.3.2

Documentation updates

  • Add Rodewald et al. (in press) to publication record.
  • Update reference for Bombi et al. (2019) in publication record.

prioritizr 4.1.3.1

Documentation updates

  • Fix typo in README.

prioritizr 4.1.3

CRAN release: 2019-09-06

Notice

  • Release candidate for CRAN.

prioritizr 4.1.2.8

Minor improvements and bug fixes

Documentation updates

prioritizr 4.1.2.7

Minor improvements and bug fixes

  • 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. the tas_features object in the prioritizrdata 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). Thanks to Martin Jung (@Martin-Jung) for bug report.

prioritizr 4.1.2.6

New features

Minor improvements and bug fixes

prioritizr 4.1.2.5

Minor improvements and bug fixes

prioritizr 4.1.2.4

Minor improvements and bug fixes

  • 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.

prioritizr 4.1.2.3

Major changes

New features

Minor improvements and bug fixes

  • Update simulated phylogeny dataset (sim_phylogeny).

Documentation updates

prioritizr 4.1.2.2

New features

  • 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).

Documentation updates

  • New irreplaceability manual entry to document functions for calculating irreproducibility scores.
  • Updated Salt Spring Island vignette with a section on calculating and interpreting irreplaceability scores.

prioritizr 4.1.2.1

Minor improvements and bug fixes

  • 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 packages are loaded at the same time.

Documentation updates

  • Fix typo.
  • Fix broken links to Gurobi academic licenses.

prioritizr 4.1.2

Notice

  • Release candidate for CRAN (rejected).

prioritizr 4.1.1.2

Minor improvements and bug fixes

  • Fix example throwing an error during CRAN checks.

prioritizr 4.1.1.1

Documentation updates

  • Add Bombi et al. (in press) to publication record.

prioritizr 4.1.1.0

Documentation updates

  • Fix broken link in main vignette.

prioritizr 4.1.1

CRAN release: 2019-06-06

Notice

  • Release candidate for CRAN.

prioritizr 4.1.0.1

New features

Minor improvements and bug fixes

  • Fix problem() tests so that they work when no solvers are installed.

Documentation updates

prioritizr 4.1.0.0

Minor improvements and bug fixes

  • 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.

prioritizr 4.0.4.1

New features

  • 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.

Minor improvements and bug fixes

  • The solve() function will now use the presolve_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 the solve(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 package when calling tibble::as.tibble() instead of tibble::as_tibble().

Documentation updates

  • Add example for calculating feature representation a solution in tabular format output by solve() (#110). Thanks to Martin Jung (@Martin-Jung) for suggestion.
  • 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.

prioritizr 4.0.4

CRAN release: 2019-04-12

Notice

  • Release candidate for CRAN.

prioritizr 4.0.3.1

Minor improvements and bug fixes

  • Retain debugging symbols to conform with CRAN policies.

prioritizr 4.0.3

CRAN release: 2019-04-08

Notice

  • Release candidate for CRAN.

prioritizr 4.0.2.16

Documentation updates

  • Add new citations.

prioritizr 4.0.2.15

Documentation updates

prioritizr 4.0.2.14

Minor improvements and bug fixes

prioritizr 4.0.2.13

Minor improvements and bug fixes

  • 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.

prioritizr 4.0.2.12

Minor improvements and bug fixes

  • Fix bad error message error being thrown when input rasters are not comparable (i.e. same coordinate reference system, extent, resolutions, and dimensionality) (#104). Thanks to @faengl for bug report.

Documentation updates

  • Add Domisch et al. (2019) to publication record vignette.

prioritizr 4.0.2.11

Minor improvements and bug fixes

prioritizr 4.0.2.10

Documentation updates

prioritizr 4.0.2.9

Documentation updates

  • Update publication record vignette.

prioritizr 4.0.2.8

Minor improvements and bug fixes

  • Fix bug where the add_neighbor_constraints() and add_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.

prioritizr 4.0.2.7

New feature

  • 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.

Minor improvements and bug fixes

  • Fix bug in the $find(x) method for Collection prototypes that caused it to throw an error incorrectly. This method was not used in earlier versions of this package.

Documentation updates

prioritizr 4.0.2.6

Minor improvements and bug fixes

  • 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.

prioritizr 4.0.2.5

Minor improvements and bug fixes

  • 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 to x was invalid when it was in fact valid. This bug is encountered when different layers the argument to x have non-NA values in different cells.

prioritizr 4.0.2.4

Documentation updates

  • Update instructions for activating Gurobi licenses on remote machines (#98).

prioritizr 4.0.2.3

Minor improvements and bug fixes

  • 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.

prioritizr 4.0.2.2

Minor improvements and bug fixes

  • 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.

prioritizr 4.0.2.1

Minor improvements and bug fixes

  • Update warning text when compiling problems that contain (i) objective functions that do not use targets and (ii) targets (#93).

Documentation updates

prioritizr 4.0.2

CRAN release: 2018-06-28

Notice

  • Release candidate for CRAN.

prioritizr 4.0.1.6

Minor improvements and bug fixes

prioritizr 4.0.1.5

Minor improvements and bug fixes

  • 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.

prioritizr 4.0.1.4

Minor improvements and bug fixes

  • The feature_representation() function now allows numeric solutions with attributes (e.g. when output by the solve() function) when calculating representation statistics for problems with numeric planning unit data (#91). Thanks to Javier Fajardo (@javierfajnolla) for bug report.
  • 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.

prioritizr 4.0.1.3

Minor improvements and bug fixes

  • 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() and add_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.

prioritizr 4.0.1.2

Documentation updates

prioritizr 4.0.1.1

Minor improvements and bug fixes

Documentation updates

  • The add_relative_targets() documentation now makes it clear that locked out planning units are included in the calculations for setting targets (#89).

prioritizr 4.0.1

CRAN release: 2018-05-26

Notice

  • Release candidate for CRAN.

prioritizr 4.0.0.12

New feature

prioritizr 4.0.0.11

Documentation updates

  • Fix some equations in the documentation (#83).

prioritizr 4.0.0.10

Minor improvements and bug fixes

  • Add version requirements for assertthat and tibble packages (#82).

prioritizr 4.0.0.9

Documentation updates

  • Fix minor typos in the Gurobi installation guide.
  • Update the Management zones tutorial.

prioritizr 4.0.0.8

Documentation updates

  • 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.

prioritizr 4.0.0.7

Minor improvements and bug fixes

  • 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).

prioritizr 4.0.0.6

New features

prioritizr 4.0.0.5

Minor improvements and bug fixes

  • 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).

prioritizr 4.0.0.4

New features

prioritizr 4.0.0.3

Minor improvements and bug fixes

  • The prioritizrdata package has been listed under Suggests.

Documentation updates

  • The vignettes in the prioritizrdata package have been moved to this package to make them easier to find.

prioritizr 4.0.0.2

Minor improvements and bug fixes

  • Fix issue with the solve() function printing superfluous text (#75).

prioritizr 4.0.0.1

Documentation updates

  • Minor improvements to the documentation for the problem() function.

prioritizr 4.0.0.0

New features

  • Added functionality to build and solve problems with multiple management zones (#14).
  • New built-in datasets sim_pu_zones_stack, sim_pu_zones_polygons, and sim_features_zones for exploring conservation problems with multiple management zones.
  • New zones function and Zones class to organize data with multiple zones.
  • New add_manual_targets() function for creating targets that pertain to multiple management zones.
  • New add_manual_locked_constraints() function to manually specify which planning units should or shouldn’t be allocated to specific zones in solutions.
  • New binary_stack(), category_layer(), and category_vector() functions have been provided to help work with data for multiple management zones.

Major updates

  • The problem() function now accepts Zone objects as arguments for feature to create problems with multiple zones.
  • The add_relative_targets() and add_absolute_targets() functions for adding targets to problems can be used to specify targets for each feature in each zone.
  • The solve() function now returns a list of solutions when generating a portfolio of 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 the data 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.

Minor improvements and bug fixes

Documentation updates

  • New Management zones vignette on building and solving problems with multiple management zones.
  • Added mention of zones functionality to package DESCRIPTION, summary (i.e., ?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.

prioritizr 3.0.3.6

Documentation updates

prioritizr 3.0.3.5

Minor improvements and bug fixes

prioritizr 3.0.3.4

Minor improvements and bug fixes

prioritizr 3.0.3.3

Minor improvements and bug fixes

  • 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 package in Depends.

prioritizr 3.0.3.2

Minor improvements and bug fixes

  • Moved proto package from Imports to Depends in DESCRIPTION

prioritizr 3.0.3.1

Minor improvements and bug fixes

  • Depends on R version 3.4.0 (avoids ‘patchlevel 0’ NOTE/WARNING in checks)

prioritizr 3.0.3

CRAN release: 2017-11-22

Notice

  • Release candidate for CRAN.

prioritizr 3.0.2.3

Minor improvements and bug fixes

  • Unit tests that fail when using lpsymphony due to a bug in lpsymphony are now skipped (partially addressing #40).

prioritizr 3.0.2.2

Minor improvements and bug fixes

prioritizr 3.0.2.1

Documentation updates

  • Vignette sizes have been reduced.

prioritizr 3.0.2

Notice

  • Release candidate for CRAN. Release postponed due issues on Travis CI.

prioritizr 3.0.1.1

Minor improvements and bug fixes

  • Unit tests for add_*_objectives now pass when executed with slow solvers (partially addressing #40).
  • Update compile() to work when no solvers are installed (#41).
  • Gap arguments in add_*_solvers are now unbounded and can accept values larger than 1 (#44).

prioritizr 3.0.1

CRAN release: 2017-11-08

Notice

  • Release candidate for CRAN.

prioritizr 3.0.0.0

Major changes

Minor improvements and bug fixes

  • Update add_lpsymphony_solver() examples and tests to skip on Linux operating systems.
  • Add tests to unit tests that were being skipped in new version of testthat package.

prioritizr 2.0.4.1

Minor improvements and bug fixes

prioritizr 2.0.4

Notice

  • Release candidate for CRAN. Release postponed due to bug report.

prioritizr 2.0.3.1

Minor improvements and bug fixes

  • 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.md file.

prioritizr 2.0.3

Notice

  • Initial release candidate for CRAN. Release postponed due to bug report.

prioritizr 2.0.2.9

Documentation updates

  • Added vignette to record publications that use prioritizr (#35).

prioritizr 2.0.2.8

Minor improvements and bug fixes

  • Unit tests now compatible with development version of testthat (#34).

prioritizr 2.0.2.7

Minor improvements and bug fixes

  • Fix bug in apply_boundary_penalties() and add_connectivity_penalties() causing the function to throw an error when the number of boundaries/edges is less than the number of planning units.

prioritizr 2.0.2.6

Minor improvements and bug fixes

  • Makevars now compatible with Mac OSX Sierra (#33).

prioritizr 2.0.2.5

Minor improvements and bug fixes

prioritizr 2.0.2.4

Documentation updates

  • Minor tweaks to vignettes.

prioritizr 2.0.2.3

Documentation updates

  • Add logo to README files and package website (#31).

prioritizr 2.0.2.2

Minor improvements and bug fixes

  • Remove prioritizrdata from package Suggests.
  • Add shiny and xtable to Suggests for rendering parameters.
  • Added code for ScalarParameter and ArrayParameter prototypes to check that functions for generating widgets have their dependencies installed.
  • Fix bug when numeric planning unit data and portfolios that caused the solve() to throw an error.
  • Remove R-devel from AppVeyor testing because it fails for unknown reasons.

Documentation updates

  • Broad-scale improvements to documentation.
  • Fix documentation for add_max_phylo_objective() (#24).
  • Update Gurobi Installation vignette.
  • URLs for lpsymphony on Bioconductor now use the package’s DOI.
  • Add more comprehensive tests to portfolios.

prioritizr 2.0.2.1

Major changes

  • Removed shiny functions for now to prepare for CRAN release.

Documentation updates

  • Rebuilt website and documentation.

prioritizr 2.0.2.0

Documentation updates

  • Included vignette on Gurobi solver installation and testing.

prioritizr 2.0.1.0

Major changes

  • Fixed bug where Spatial*DataFrame input to marxan_problem() would always use the first column in the attribute table for the cost data. This bug is serious so analysis that used Spatial*DataFrame inputs in marxan_problem() should be rerun.

Minor improvements and bug fixes

  • Added functionality to use feature abundance/occurrence data stored as columns in the planning unit data when constructing problem() objects.

prioritizr 2.0.0.2

Minor improvements and bug fixes

prioritizr 2.0.0.1

Minor improvements and bug fixes

prioritizr 2.0.0.0

Major changes

  • This version breaks compatibility with previous releases because solutions in data.frame and Spatial*DataFrame objects are now stored in columns named "solution_*" (e.g. “solution_1”) to store multiple solutions.
  • Solutions now contain additional information in stored in the object’s attributes (#24). See README.Rmd for examples on accessing this information.

New features

  • Added support for multiple solutions (#23).

Minor improvements and bug fixes

Documentation updates

prioritizr 1.0.2.3

Minor improvements and bug fixes

  • ConservationProblem$print() now only prints the first three species names and a count of the total number of features. This update means that ConservationProblem objects with lots of features can now safely be printed without polluting the R console.
  • 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.

Documentation updates

  • Attempt to make equations in help files prettier.

prioritizr 1.0.2.2

Minor improvements and bug fixes

  • Update marxan_problem() to work with absolute file paths and the INPUTDIR in Marxan input files (#19). Thanks to Dan Rosauer (@DanRosauer) for bug report.

prioritizr 1.0.2.1

Minor improvements and bug fixes

  • Fix bug in solve() when the rij data does not contain the highest planning unit identifier specified when building the problem() (#20).

prioritizr 1.0.2.0

Minor improvements and bug fixes

  • Passes CRAN checks on Winbuilder.
  • Added roxygen2 to Suggests for Travis CI.

prioritizr 1.0.1.6

Minor improvements and bug fixes

  • 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 command make vigns if desired.
  • Make the data.table package automatically installed when prioritizr is installed (#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.
  • Lint objective function definition files.
  • Added rmarkdown package to Suggests following recommended practices.

Documentation updates

  • 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 command make readme. Note that the figures for README.md can be found in the directory man/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 input data.frame() objects.
  • Fix bug in vignette quick_start.Rmd counting number of selected planning units
  • README.Rmd tweaks to make it look prettier on website.
  • Remove “” 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

prioritizr 1.0.1.5

Minor improvements and bug fixes

  • 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 compile() function.

prioritizr 1.0.1.4

Minor improvements and bug fixes

  • Fix bug in problem.data.frame that meant that it did not check for missing values in rij$pu.

prioritizr 1.0.1.3

Minor improvements and bug fixes

  • 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 argument connectivities is a list. The elements in the list are assumed to be dsCMatrix objects (aka symmetric sparse matrices in a compressed format) and are coerced to dgCMatrix objects to reduce computational burden. There was a typo, however, and so the objects were coerced to dgCmatrix and not dgCMatrix. This evidently was ok in earlier versions of the RcppArmadillo and/or Matrix packages but not in the most recent versions.

prioritizr 1.0.1.2

Minor improvements and bug fixes

  • Fix bug in problem() causing node stack overflows (#21). Thanks to Dan Rosauer () for bug report.

prioritizr 1.0.1.1

Minor improvements and bug fixes

  • Add roxygen2 to package SUGGESTS for building vignettes.

prioritizr 1.0.1.0

Minor improvements and bug fixes

  • Fix issue where parallel::detectCores() returns NA on some systems preventing users from using the Gurobi solver–even when one thread is specified.

prioritizr 1.0.0.5

Minor improvements and bug fixes

  • Fix building issue due to incorrect file order in DESCRIPTION.

prioritizr 1.0.0.4

Minor improvements and bug fixes

  • Compatibility with R 3.4.0.
  • Replace structure(NULL, ...) with structure(list(), ...).
  • Register compiled library files.
  • Remove duplicate definition of new_waiver().
  • Update tests to skip if prioritizrdata package not installed.

prioritizr 1.0.0.3

Major changes

  • Make add_default_objectives() and add_default_targets() private functions.

Documentation updates

  • Fix missing links in documentation.
  • Fix typos in roxygen2 parameters.
  • Move add_default_decisions() and add_default_solver() to own help file.

prioritizr 1.0.0.2

Minor improvements and bug fixes

prioritizr 1.0.0.1

Minor improvements and bug fixes

  • Fix velox package dependency (#8).
  • Fix bug in add_corridor_constraints() that fails to actually add the constraints with argument to connectivity is a list.
  • Fix bug in make install command so that it now actually installs the package.

Documentation updates

  • Fix link to Joe’s website in the package’s website.

prioritizr 1.0.0.0

Notice

  • R interface fully functional.

prioritizr 0.1.2.9

Major changes

  • Package re-implementation.

prioritizr 0.1.2

CRAN release: 2016-12-01

Notice

  • Prepare for CRAN submission.

New features

  • Introduce maximum target coverage model.

Minor improvements and bug fixes

  • Add continuous integration.
  • Fixed various bugs.

Documentation updates

  • Add full vignette in addition to quickstart guide.

prioritizr 0.1.1

Major changes

  • Initial package version.