Git Product home page Git Product logo

Comments (8)

eriq-augustine avatar eriq-augustine commented on July 24, 2024

No, we don't specifically support anything like that.
(We support the reverse using the ExecutableReasoner.)

However, you could write custom code to do this (but it would probably be a decent amount of work).
The Term representations themselves are easy, but there is other infrastructure you would have to tap into.
(Like how Reasoners are not meant to be run outside of an InferenceApplication.)

The easiest option would probably be to use an off-the-shelf ADMM library.

(I'm going to close the issue, but we can keep talking about it.)

from psl.

Lammatian avatar Lammatian commented on July 24, 2024

Hi Eriq,

Thanks for your reply. Are there any ADMM libraries that you know of and would recommend for such a task?

Best,
Matt

from psl.

eriq-augustine avatar eriq-augustine commented on July 24, 2024

What language do you want to use?
@dickensc Do you have any suggestions?

from psl.

Lammatian avatar Lammatian commented on July 24, 2024

Any of Python/C++/Java would be okay, I have no particular preference

from psl.

dickensc avatar dickensc commented on July 24, 2024

Hello, ADMM is a high-level framework that will have typically have specialized implementations.
This is because the variable updates require solving subproblems that are combinations of your objective and constraints.

For this reason, you may find ADMM based solvers for specific classes of optimization problems but it is more common to implement the high-level ADMM algorithm yourself and use solvers for the subproblems.
Here is an example of this pattern in action: https://www.cvxpy.org/examples/applications/consensus_opt.html
I also recommend using CVX and its implementations in other languages in general.

Here is a reference with details on ADMM and common modeling strategies:
https://stanford.edu/~boyd/papers/pdf/admm_distr_stats.pdf

from psl.

Lammatian avatar Lammatian commented on July 24, 2024

That's very helpful, thank you both!

from psl.

Lammatian avatar Lammatian commented on July 24, 2024

Would the situation change if I wanted to run ADMM with my own set of ground rules? Say I want to do grounding differently from the way it is done in PSL but still want to use the ADMM inference on my set of rules. Is there a way to do that easily, or do I have to create the ground rules from ground up in the code and bypass the grounding steps?

from psl.

eriq-augustine avatar eriq-augustine commented on July 24, 2024

from psl.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.