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

Infinite loop on grid exploration #55

Open
JelminiM opened this issue May 29, 2024 · 3 comments
Open

Infinite loop on grid exploration #55

JelminiM opened this issue May 29, 2024 · 3 comments
Assignees
Labels
planning > in progress This issue is being actively developed type > bug Something isn't working

Comments

@JelminiM
Copy link
Collaborator

JelminiM commented May 29, 2024

When running for example python3 main.py input/ver/adder_i6_o4.v -app input/ver/adder_i6_o4.v --grid --subxpat -lpp=2 -ppo=1 --timeout=600 -et=2 -encoding=1 it goes into an infinite loop due to not finding a SAT result in the first iteration, so the value of obtained_wce_exact in xplore.py never gets updated. This behaviour was observed when running on main.

@rodrigo7491
Copy link

@MortezaRezaalipour, can you please see if you can reproduce this behaviour on your side?

@MortezaRezaalipour
Copy link
Contributor

Hello,
Yes, I did test that and indeed it's a problem.
I am right now trying to fix it for the sake of the experiments.
My plan is to save the last couple (or more) approximate circuits from the previous iterations, and see if they are all equal. If so, it is most likely true that the exploration is stuck in an infinite loop.

@MortezaRezaalipour MortezaRezaalipour self-assigned this Jun 3, 2024
@MortezaRezaalipour MortezaRezaalipour added type > bug Something isn't working planning > in progress This issue is being actively developed labels Jun 3, 2024
@MortezaRezaalipour
Copy link
Contributor

Sorry, ignore the message above, that is a solution for another bug (which we usually referred to as an infinite loop).
The problem you're referring to, was not causing a problem in the previous iterations (I mean before coming up with the concept of et_partitioning).
We can fix this issue, by checking whether for all current candidates (stored in the current_population list) the maximum number of UNSATs has been reached or not; the max. number of UNSATs equals: lpp * ppo + 1.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
planning > in progress This issue is being actively developed type > bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants