|
12 | 12 | #' multiple candidate subsets are sampled randomly and the subset with the |
13 | 13 | #' highest trait diversity according to either pooled or mean diversity index |
14 | 14 | #' estimate is retained. The quality of the solution improves with increasing |
15 | | -#' \code{n.iter} but is not guaranteed to find the global optimum. |
| 15 | +#' \code{n.iter} but is not guaranteed to find the global optimum |
| 16 | +#' \insertCite{anatoly_zhigljavsky_stochastic_2008}{SampleCore}. |
16 | 17 | #' } |
17 | 18 | #' |
18 | 19 | #' \subsection{Greedy search with 1-opt}{This method builds a solution |
19 | 20 | #' incrementally by adding the accession that maximises the diversity score at |
20 | 21 | #' each step, starting from the \code{always.selected} accessions (or a single |
21 | 22 | #' randomly drawn accession when there are no accessions specified in |
22 | | -#' \code{always.selected} present in the particular cluster/group ). The |
23 | | -#' 'greedy' solution is then refined by a 1-opt local search controlled by |
24 | | -#' \code{local.search} and \code{max.iter}. Greedy search is deterministic |
25 | | -#' given a fixed \code{always.selected} set; when there are no accessions |
26 | | -#' specified in \code{always.selected} present in the particular cluster/group |
27 | | -#' results may vary across runs due to the random initialisation. |
| 23 | +#' \code{always.selected} present in the particular cluster/group ) |
| 24 | +#' \insertCite{nemhauser_analysis_1978,fisher_analysis_1978,cormen_introduction_2022}{SampleCore}. |
| 25 | +#' The 'greedy' solution is then refined by a 1-opt local search controlled by |
| 26 | +#' \code{local.search} and \code{max.iter} |
| 27 | +#' \insertCite{lin_computer_1965}{SampleCore}. Greedy search is deterministic |
| 28 | +#' given a fixed \code{always.selected} set; when there are no accessions |
| 29 | +#' specified in \code{always.selected} present in the particular cluster/group |
| 30 | +#' results may vary across runs due to the random initialisation. |
28 | 31 | #' |
29 | | -#' \code{local.search = "best.improvement"} scans all possible single swaps |
30 | | -#' in each pass and applies the one yielding the greatest improvement before |
31 | | -#' restarting. his guarantees the steepest ascent at each pass but requires |
32 | | -#' evaluating all \mjseqn{k \times (n - k)} swap pairs per pass, where |
33 | | -#' \mjseqn{k} is the number of swappable accessions and \mjseqn{n - k} is the |
34 | | -#' size of the candidate pool. |
| 32 | +#' \code{local.search = "best.improvement"} scans all possible single swaps |
| 33 | +#' in each pass and applies the one yielding the greatest improvement before |
| 34 | +#' restarting. his guarantees the steepest ascent at each pass but requires |
| 35 | +#' evaluating all \mjseqn{k \times (n - k)} swap pairs per pass, where |
| 36 | +#' \mjseqn{k} is the number of swappable accessions and \mjseqn{n - k} is the |
| 37 | +#' size of the candidate pool |
| 38 | +#' \insertCite{papadimitriou_combinatorial_1998}{SampleCore}. |
35 | 39 | #' |
36 | | -#' \code{local.search = "first.improvement"} applies the first swap that |
37 | | -#' improves the score and immediately restarts the search. This typically |
38 | | -#' requires fewer score evaluations per pass and converges faster, but may |
39 | | -#' find a different local optimum than \code{"best.improvement"}. |
| 40 | +#' \code{local.search = "first.improvement"} applies the first swap that |
| 41 | +#' improves the score and immediately restarts the search. This typically |
| 42 | +#' requires fewer score evaluations per pass and converges faster, but may |
| 43 | +#' find a different local optimum than \code{"best.improvement"} |
| 44 | +#' \insertCite{papadimitriou_combinatorial_1998}{SampleCore}. |
40 | 45 | #' |
41 | | -#' Both strategies terminate when no improving swap exists (local optimum) |
42 | | -#' or when \code{max.iter} passes have been completed. |
43 | | -#' |
44 | | -#' } |
| 46 | +#' Both strategies terminate when no improving swap exists (local optimum) |
| 47 | +#' or when \code{max.iter} passes have been completed. |
| 48 | +#' } |
45 | 49 | #' |
46 | 50 | #' |
47 | 51 | #' Entries listed as \code{always.selected} are mandatorily included in the |
|
0 commit comments