Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The Fortran 77 version of UOBYQA encounters infinite cyclings very often if PRIMA_REAL_PRECISION is 32 #98

Open
zaikunzhang opened this issue Oct 13, 2023 · 0 comments

Comments

@zaikunzhang
Copy link
Member

zaikunzhang commented Oct 13, 2023

The Fortran 77 version of UOBYQA encounters infinite cyclings very often if PRIMA_REAL_PRECISION is 32. This has been observed on the following CUTEst problems:

BEALE
BENNETT5LS
BOXBODLS
BROWNBS
CUBE
EXP2
HIELOW
HIMMELBB
JUDGE
S308
PRICE4

There do exist problems where the solver works, e.g., HILBERTA and PRICE3, but they seem to be rare among problems under 3 dimensions.

This is observed via the workflow https://github.com/fortlab/prima/actions/workflows/profile_uobyqa_small_sq.yml with 2394f47 . To reproduce it locally, do the following in a MATLAB command window.

! git clone https://github.com/libprima/prima.git
cd('prima');
! git checkout 2337c68
options.classical = true; options.single = true;
setup('uobyqa', options);
problem = macup('beale');  % This needs MatCUTEst at https://github.com/matcutest/matcutest_compiled
problem.options.classical = true; problem.options.precision = 'single'; 
uobyqa(problem);

This will drive UOBYQA into an infinite cycling.

Surely, this is not a concern for us, because it happens only to the original Fortran 77 implementation. Nevertheless, it is still interesting to investigate the reason underneath, to further understand the shortcomings of the original Fortran 77 implementation.

@zaikunzhang zaikunzhang changed the title The Fortran 77 version of UOBYQA constantly encounters infinite cycling very often if PRIMA_REAL_PRECISION is 32 The Fortran 77 version of UOBYQA encounters infinite cycling very often if PRIMA_REAL_PRECISION is 32 Oct 13, 2023
@zaikunzhang zaikunzhang changed the title The Fortran 77 version of UOBYQA encounters infinite cycling very often if PRIMA_REAL_PRECISION is 32 The Fortran 77 version of UOBYQA encounters infinite cyclings very often if PRIMA_REAL_PRECISION is 32 Oct 13, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant