Skip to content

UCC PAC verifier#738

Draft
p-senichenkov wants to merge 52 commits into
Desbordante:mainfrom
p-senichenkov:PAC/validation/UCC-PAC/main
Draft

UCC PAC verifier#738
p-senichenkov wants to merge 52 commits into
Desbordante:mainfrom
p-senichenkov:PAC/validation/UCC-PAC/main

Conversation

@p-senichenkov

@p-senichenkov p-senichenkov commented Apr 26, 2026

Copy link
Copy Markdown
Collaborator

Probabilistic Approximate Constraint is a primitve intoduced in "Checks and Balances: Monitoring Data Quality Problems in Network Traffic Databases" by Flip Korn et al. PAC with parameters epsilon and delta means that Probability that approximate constraint with error=epsilon holds is greater than delta.

Implement UCC PAC verifier.
An UCC PAC on column set X means that Pr(dist(t_i[A_l], t_j[A_l]) <= eps) <= delta
(note that this definition differs a little from the one given in "Checks and Balances")

Add UCC PAC verifier bindings and examples.

A script to build ECDF and visually validate the results given by algorithm (and, maybe, better understand the PAC-Man algorithm) can be found here (note: there are different links in three PAC PRs).

@p-senichenkov p-senichenkov force-pushed the PAC/validation/UCC-PAC/main branch from 974dde8 to 58eacd4 Compare April 29, 2026 19:54

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

clang-tidy made some suggestions

Comment thread src/tests/unit/test_ucc_pac_verifier.cpp
@p-senichenkov p-senichenkov force-pushed the PAC/validation/UCC-PAC/main branch 5 times, most recently from 3cab755 to a782fbe Compare May 4, 2026 19:12
@p-senichenkov p-senichenkov force-pushed the PAC/validation/UCC-PAC/main branch 5 times, most recently from b4dcaee to 330a13c Compare May 27, 2026 20:30
Change `using Destructor = std::function<void(std::byte*)>` to `using
Destructor = std::function<void(std::byte const*)>` in model::Type,
because
a) all currently implemented destructors work with const pointer;
b) GetDestructor() is not used anywhere, except for implementations of
pac::model::IDomain;
c) implementations of pac::model::IDomain work with const pointers.
Implement TupleType class to calculate distances between fixed-sized tuples of values.
Implement IDomain class to represent an ordered domain in a metric space
of values.
Implement default domain classes: Ball and Parallelepiped.

Implement PAC and DomainPAC classes.
Add option names and descriptions required by PAC verifier
Implement base class for PAC-Man based PAC verifiers
Implement verifier for Domain Probabilistic Approximate Constraints
Implement unit tests for Domain PAC veririfier.
Implement Python bindigns for Domain PAC verifier
Implement Python examples for Domain PAC verifier
Move "validation mode" from FindEpsilonDelta into a separate function
@p-senichenkov p-senichenkov force-pushed the PAC/validation/UCC-PAC/main branch from 330a13c to 54f0918 Compare June 3, 2026 12:35

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

clang-tidy made some suggestions

Comment thread src/python_bindings/pac/bind_pac.cpp Outdated
Comment thread src/python_bindings/pac/bind_pac.cpp Outdated
Comment thread src/python_bindings/pac/bind_pac.cpp Outdated
Comment thread src/python_bindings/pac/bind_pac.cpp Outdated
Comment thread src/python_bindings/pac/bind_pac.cpp Outdated
Comment thread src/python_bindings/pac/bind_pac_verification.cpp
Comment thread src/python_bindings/pac/bind_pac_verification.cpp
Comment thread src/python_bindings/pac/bind_pac_verification.cpp
Comment thread src/python_bindings/pac/bind_pac_verification.cpp
Comment thread src/python_bindings/pac/bind_pac_verification.cpp
@p-senichenkov p-senichenkov force-pushed the PAC/validation/UCC-PAC/main branch from 14ab028 to e7a6aed Compare June 4, 2026 09:43
@p-senichenkov p-senichenkov force-pushed the PAC/validation/UCC-PAC/main branch from e7a6aed to 44ba569 Compare June 4, 2026 09:46
Implement verification algorithm for Unique Column Combination
Probabilistic Approximate Constraints
Implement tests for UCC PAC verification algorithm
@p-senichenkov p-senichenkov force-pushed the PAC/validation/UCC-PAC/main branch from 44ba569 to d3fb8d5 Compare June 4, 2026 10:03

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

clang-tidy made some suggestions

Comment thread src/python_bindings/pac/bind_pac.cpp
Comment thread src/python_bindings/pac/bind_pac_verification.cpp
Comment thread src/python_bindings/pac/bind_pac_verification.cpp
Comment thread src/python_bindings/pac/bind_pac_verification.cpp
Comment thread src/python_bindings/pac/bind_pac_verification.cpp
Comment thread src/python_bindings/pac/bind_pac_verification.cpp
Comment thread src/python_bindings/pac/bind_pac_verification.cpp
Comment thread src/python_bindings/pac/bind_pac_verification.cpp
Comment thread src/python_bindings/pac/bind_pac_verification.cpp
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

Successfully merging this pull request may close these issues.

1 participant