Hi Matt,

On Sat, May 28, 2016 at 7:40 PM, Matt Anonyme <[email protected]> wrote:
> Hi,
>
> First of all, thanks for the fantastic open source library ! It has all I
> could dream of (export to latex etc...).

I am glad you found it useful.

>
> I use sympy to generate constraints of a linear programming problem. At the
> end of it, I want to find the solution for the system with
> https://github.com/coin-or/pulp, i.e., I want to convert my
> sympy.core.expr.Expr ( "x+y" etc..) into pulp.LpConstraint variables in
> order to do as in this tutorial:
> http://www.coin-or.org/PuLP/CaseStudies/a_blending_problem.html
> ===
>
> # The five constraints are entered
> prob += x1 + x2 == 100, "PercentagesSum"
> prob += 0.100*x1 + 0.200*x2 >= 8.0, "ProteinRequirement"
> prob += 0.080*x1 + 0.100*x2 >= 6.0, "FatRequirement"
> prob += 0.001*x1 + 0.005*x2 <= 2.0, "FibreRequirement"
> prob += 0.002*x1 + 0.005*x2 <= 0.4, "SaltRequirement"
>
> ===
> So for instance in my code, I have a sympy expression 0.100*x1 + 0.200*x2
> but I want to substitute x1 and x2 by pulp.LpVariable (similar to sympy
> symbol) so that the sympy.core.expr.Expr becomes a pulp.LpAffineExpression.
> So far, I believe my best option is to use Expr.as_coefficients_dict to
> rebuild the whole thing.

You can use the traverse expression functions (preorder_traversal,
postorder_traversal) to rebuild the expressions using your classes.

Another option is to write a custom printer.

A third option is to use the lambdify functionality, we use it to use
NumPy or other libraries to evaluate things. Perhaps it could be used
for your case.

Ondrej

>
> I wonder if there is a best option (even with another library than pulp, I
> don't care) to solve this (optimization) problem.
>
> Best regards
>
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "sympy" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at https://groups.google.com/group/sympy.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/sympy/7e0b3040-3581-48c0-a2a8-eef8cf051d55%40googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sympy.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/CADDwiVDgcc%2BMejcjv46PMDx2tQbO4oNcwNC3aBxiELTnA%3DYmXw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to