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

Fixed occlusion algorithm and enhanced variable assignment #21

Merged
merged 24 commits into from
Jun 2, 2019

Conversation

kazimierz-256
Copy link
Owner

@kazimierz-256 kazimierz-256 commented May 30, 2019

Ola, Taras --- check --- this --- out --- the occlusion mechanism we've all been waiting for! NO CNF form breakdown, NO variable annihilation, NO NO NO. The basis for correctness of this computational idea lies in the following statement:
CONSEQ = (the cumulative consequence of all relevant causes postconditions)
consider all valid assignments of fluents that satisfy CONSEQ where fluent F is true
if all of the valid assignments described above EXACTLY MATCH (excluding the fluent F itself) all valid assignments of fluents that satisfy CONSEQ where fluent F is FALSE then the fluent F shall be regarded as redundant and expelled from the garden of occlusion function.
Other fluents shall be kept in the occlusion function and rejoice.
Sample logic formulae where this idea works:
f and not f
(f or not f) and g
(f and g and h) or (not f and g and h) or (f and not g and h) or (not f and not g and h)

@kazimierz-256
Copy link
Owner Author

We need to fix unit tests to handle this new concept

Copy link
Owner Author

@kazimierz-256 kazimierz-256 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All tests pass now

apps/concurrent/test/or_story.plt Outdated Show resolved Hide resolved
@kazimierz-256
Copy link
Owner Author

To remember:
no variable annihilates yet f shouldn't be in occlusion
g and (f or g)

@kazimierz-256 kazimierz-256 changed the title Fixed occlusion algorithm Fixed occlusion algorithm and enhanced variable assignment Jun 2, 2019
@kazimierz-256 kazimierz-256 added help wanted Extra attention is needed and removed merge_me labels Jun 2, 2019
@kazimierz-256
Copy link
Owner Author

Additionally, I have enhanced generation of future possible states (and initial state 0) so in optimistic case the computation time could be far less than exponential and I have deleted cumbersome code from previous brute-force approach. Now code that generates new states is much more elegant + it uses a nontrivial assignment algorithm. I guess this improvement is also much desired.

@kazimierz-256
Copy link
Owner Author

TODO: Requires changing the documentation by adding some brief explanation about the set of fluents that are excluded from modification

@kazimierz-256 kazimierz-256 merged commit 0cae6e9 into master Jun 2, 2019
@olabknbit olabknbit deleted the fixed-occlusion-algorithm branch June 4, 2019 08:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed important test_passing tests_changed
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants