This repository was archived by the owner on Jan 12, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 179
This repository was archived by the owner on Jan 12, 2024. It is now read-only.
LocalUnivariateMinimum parameter range positive and negative problem #672
Copy link
Copy link
Open
Labels
Kind-EnhancementNew feature or requestNew feature or requestStatus-NeedsApiReviewThis PR requires an API review before merging in.This PR requires an API review before merging in.
Description
Positive and negative problems of the tolerance parameter in LocalUnivariateMinimum
Conceptual overview
- When calling the LocalUnivariateMinimum function, the search will never stop if the tolerance input is negative, because the bool value of
Width(interval) > toleranceis alwaystrue. - When the
(item1,item2)in argumentboundsisitem1>item2, the bool value ofWidth(interval) > toleranceis alwaysfalse, the program will not enter the search logic.
Current status
-
mutable tolerance = -1.0;The program will never finish executing -
let bounds = (1.0, 0.1);The program will never search
Proposal
New and modified functions, operations, and UDTs
-
LocalUnivariateMinimum source code
Adding fact statement:mutable interval = bounds; Fact(tolerance > 0.0, "The tolerance value must be positive."); -
LocalUnivariateMinimum Width source code
Adding fact statement:return right - left; Fact(left <= right, "Left endpoint of bounds must be less than or equal to right endpoint.");
I hope I will be allowed to submit a pr as soon as possible because this logic problem is serious.
Code
namespace Test {
open Microsoft.Quantum.Canon;
open Microsoft.Quantum.Intrinsic;
open Microsoft.Quantum.Math;
open Microsoft.Quantum.Diagnostics;
open Microsoft.Quantum.Optimization;
@EntryPoint()
operation main () : Unit {
//mutable tolerance = -1.0;
mutable tolerance = 0.1;
mutable fn = AbsD;
let bounds = (1.0, 0.1);
//let bounds = (0.1,1.0);
let result = LocalUnivariateMinimum(fn, bounds, tolerance);
Message($"{result}");
}
}Metadata
Metadata
Assignees
Labels
Kind-EnhancementNew feature or requestNew feature or requestStatus-NeedsApiReviewThis PR requires an API review before merging in.This PR requires an API review before merging in.