-
Notifications
You must be signed in to change notification settings - Fork 135
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
rare tate-models error: Singular loci split vs non-split #4593
Comments
Thank you for letting me know @benlorenz . Yes, there is randomness involved in it, due to lack of alternatives. The failure that you are reporting reflects the exact design made by @apturner. I am not yet sure how this could be improved. Let me elaborate a bit, then maybe we can work something out together. In theory, we must complete a hard (likely impossible, but certainly impractical) Groebner basis computation. To circumvent this, we choose random values for all but two coordinates, run the Groebner basis computation, and process the result. In our case, this is a classification task (split vs non-split). We repeat this four more times, so that we have in total 5 random choices of values for 5 different collections of variables and 5 classification results based on 5 different, simple Gröbner basis computation. Should all of these 5 computation lead to the same classification, then we are confident in our computed result. If not, we default to the weaker statement How often does this happen? This function has been in OSCAR since the ICMS in Durham. I have not even seen this error once, and you once. Based on this evidence, I estimate roughly once very 3 months. Given our simplistic approach, that is good, not? Let me ping @apturner, who understands the algorithm much better than I do. Maybe he can say more. With all that being said: I am not sure what we could done to improve the situation. Ideas/thoughts?
|
Usually, our functions are either correct or probably correct, in which case:
|
Hi all, Just to clarify some of Martin's comments, we default to "split" because this is the stronger statement, corresponding to the factoring of a polynomial, which does not generically occur. The single-run algorithm tends to skew toward returning non-split, so essentially if any of the five attempts results in the identification being "split", then we go with that. We could up this to a higher threshold, so something like: if at least 3 of the 5 runs identify the singularity as split, then we label it as such. But that is irrelevant to Tommy's point, which is that this should be documented as a random function. In that case, Martin, we should probably periodically run tests ourselves to verify that it usually returns correct results. Testing that the function returns one of the two allowable results makes sure we didn't make a typo (which is valuable), but doesn't do anything to test the quality of our algorithm. |
Thanks for the explanation. Testing Monte-Carlo algorithms is always annoying. Not sure if someones else has suggestions on how to do this properly? Maybe @fingolfin or @fieker? |
A similar error appeared again yesterday (but with a different example) in #4597:
|
Triage suggests to increase the threshold/number of trials. |
This happened in our CI here https://github.com/oscar-system/Oscar.jl/actions/runs/13306594007/job/37158890795?pr=4588#step:11:10734 (julia 1.11, ubuntu) and disappeared after a re-run:
This is the first time I have seen this error, unfortunately I don't know how to reproduce this.
Is there any randomness involved?
PS: This was on b2d1058 which is basically master except for some reordered exports in
GModule
.The text was updated successfully, but these errors were encountered: