Skip to content

Commit c16e1ef

Browse files
committed
250403.160209.CST revise README
1 parent 5a77ce7 commit c16e1ef

File tree

2 files changed

+13
-6
lines changed

2 files changed

+13
-6
lines changed

README.md

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -265,11 +265,17 @@ large constraint violation even though the starting point is feasible.
265265

266266
### Improvements
267267

268-
Thanks to the improvements introduced into the new implementation, PRIMA outperforms Powell's
269-
original code in terms of the **number of function evaluations**, which is the standard performance
270-
indicator in derivative-free optimization.
268+
Thanks to the improvements introduced into the new implementation, PRIMA
269+
generally produces better solutions with less function evaluations compared with Powell's Fortran 77 implementation. This makes PRIMA preferable for if function evaluations are expensive,
270+
which is typically the case for [derivative-free optimization problems](https://github.com/orgs/libprima/discussions/145).
271+
However, if function evaluations are not the dominant cost in your application,
272+
The Fortran 77
273+
solvers are likely to be faster, as it is more efficient in terms of memory usage and flops
274+
thanks to the careful and unique (but unmaintained) implementation by Powell.
275+
271276
Below are the [performance profiles](https://arxiv.org/pdf/cs/0102001.pdf)
272-
of the PRIMA solvers compared with Powell's implementation, the convergence tolerance being $\tau = 10^{-6}$.
277+
of the PRIMA solvers compared with Powell's implementation in terms of the **number of function evaluations**,
278+
the convergence tolerance being $\tau = 10^{-6}$.
273279
Roughly speaking, performance profiles plot the percentage of test problems solved against the budget,
274280
which is measured relative to the cost of the most efficient solver in the comparison.
275281
A **higher** curve indicates a **better** solver.
@@ -358,7 +364,8 @@ PRIMA has taken me significant energy and time. I will be delighted if it is use
358364
[its importance](https://xkcd.com/2347/) and the significant efforts it requires**.
359365

360366
Note that PRIMA contains [bug fixes](#bug-fixes) and [improvements](#improvements) that do not exist in Powell's Fortran 77
361-
implementation of the solvers. Results produced by PRIMA are surely different from Powell's original solvers. Therefore,
367+
implementation of the solvers. Results produced by PRIMA are surely different from Powell's original solvers,
368+
even though the algorithms are essentially the same. Therefore,
362369
**it is important to point out that you are using PRIMA rather than the original solvers if you want your results to be reproducible**.
363370
It is wrong to pretend that PRIMA is just Powell's original solvers.
364371

pyprima/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ Compared to Powell's Fortran 77 implementation, the modern-Fortran implementatio
1616
translation generally [produce better solutions with less function evaluations](https://github.com/libprima/prima#improvements),
1717
making them preferable for [applications with expensive function evaluations](https://github.com/orgs/libprima/discussions/145).
1818
However, if function evaluations are not the dominant cost in your application, the Fortran 77
19-
implementation are likely to be faster, as it is more efficient in terms of memory usage and flops
19+
solvers are likely to be faster, as it is more efficient in terms of memory usage and flops
2020
thanks to the careful and unique (but unmaintained) implementation by Powell.
2121

2222
As of April 2025, only the COBYLA solver is available in this Python translation

0 commit comments

Comments
 (0)