|
389 | 389 | <tr class="memitem:a6060c77125050d8c1b479a83d983a569"><td class="memItemLeft" align="right" valign="top">std::tuple< <a class="el" href="classdrake_1_1symbolic_1_1_variable.html">symbolic::Variable</a>, <a class="el" href="classdrake_1_1solvers_1_1_binding.html">Binding</a>< <a class="el" href="classdrake_1_1solvers_1_1_linear_cost.html">LinearCost</a> >, <a class="el" href="classdrake_1_1solvers_1_1_binding.html">Binding</a>< <a class="el" href="classdrake_1_1solvers_1_1_lorentz_cone_constraint.html">LorentzConeConstraint</a> > > </td><td class="memItemRight" valign="bottom"><a class="el" href="classdrake_1_1solvers_1_1_mathematical_program.html#a6060c77125050d8c1b479a83d983a569">AddL2NormCostUsingConicConstraint</a> (const Eigen::Ref< const Eigen::MatrixXd > &A, const Eigen::Ref< const Eigen::VectorXd > &b, const Eigen::Ref< const <a class="el" href="namespacedrake_1_1solvers.html#aca924499b3b011a50d3bd9d051295efa">VectorXDecisionVariable</a> > &vars)</td></tr> |
390 | 390 | <tr class="memdesc:a6060c77125050d8c1b479a83d983a569"><td class="mdescLeft"> </td><td class="mdescRight">Adds an L2 norm cost min |Ax+b|₂ as a linear cost min s on the slack variable s, together with a Lorentz cone constraint s ≥ |Ax+b|₂ Many conic optimization solvers (Gurobi, MOSEK<a href="/tm.html">™</a>, SCS, etc) natively prefers this form of linear cost + conic constraints. <a href="#a6060c77125050d8c1b479a83d983a569">More...</a><br /></td></tr> |
391 | 391 | <tr class="separator:a6060c77125050d8c1b479a83d983a569"><td class="memSeparator" colspan="2"> </td></tr> |
| 392 | +<tr class="memitem:abb72303794bd001aeb839c95016b477a"><td class="memItemLeft" align="right" valign="top">std::tuple< <a class="el" href="namespacedrake.html#a77dd228fb4dd66a2c17dd3f7f38ffd85">VectorX</a>< <a class="el" href="classdrake_1_1symbolic_1_1_variable.html">symbolic::Variable</a> >, <a class="el" href="classdrake_1_1solvers_1_1_binding.html">Binding</a>< <a class="el" href="classdrake_1_1solvers_1_1_linear_cost.html">LinearCost</a> >, <a class="el" href="classdrake_1_1solvers_1_1_binding.html">Binding</a>< <a class="el" href="classdrake_1_1solvers_1_1_linear_constraint.html">LinearConstraint</a> > > </td><td class="memItemRight" valign="bottom"><a class="el" href="classdrake_1_1solvers_1_1_mathematical_program.html#abb72303794bd001aeb839c95016b477a">AddL1NormCostInEpigraphForm</a> (const Eigen::Ref< const Eigen::MatrixXd > &A, const Eigen::Ref< const Eigen::VectorXd > &b, const Eigen::Ref< const <a class="el" href="namespacedrake_1_1solvers.html#aca924499b3b011a50d3bd9d051295efa">VectorXDecisionVariable</a> > &vars)</td></tr> |
| 393 | +<tr class="memdesc:abb72303794bd001aeb839c95016b477a"><td class="mdescLeft"> </td><td class="mdescRight">Adds an L1 norm cost min |Ax+b|₁ as a linear cost min Σᵢsᵢ on the slack variables sᵢ, together with the constraints (for each i) sᵢ ≥ (|Ax+b|)ᵢ, which itself is written sᵢ ≥ (Ax+b)ᵢ and sᵢ ≥ -(Ax+b)ᵢ. <a href="#abb72303794bd001aeb839c95016b477a">More...</a><br /></td></tr> |
| 394 | +<tr class="separator:abb72303794bd001aeb839c95016b477a"><td class="memSeparator" colspan="2"> </td></tr> |
392 | 395 | <tr class="memitem:a14edfab282bd8d3d03bf38bb87a5fe51"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdrake_1_1solvers_1_1_binding.html">Binding</a>< <a class="el" href="classdrake_1_1solvers_1_1_polynomial_cost.html">PolynomialCost</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classdrake_1_1solvers_1_1_mathematical_program.html#a14edfab282bd8d3d03bf38bb87a5fe51">AddPolynomialCost</a> (const <a class="el" href="classdrake_1_1symbolic_1_1_expression.html">symbolic::Expression</a> &e)</td></tr> |
393 | 396 | <tr class="memdesc:a14edfab282bd8d3d03bf38bb87a5fe51"><td class="mdescLeft"> </td><td class="mdescRight">Adds a cost term in the polynomial form. <a href="#a14edfab282bd8d3d03bf38bb87a5fe51">More...</a><br /></td></tr> |
394 | 397 | <tr class="separator:a14edfab282bd8d3d03bf38bb87a5fe51"><td class="memSeparator" colspan="2"> </td></tr> |
@@ -2474,6 +2477,43 @@ <h2 class="memtitle"><span class="permalink"><a href="#a4b39856ec07e10a4f9f9980d |
2474 | 2477 | <dd> |
2475 | 2478 | Each entry in new_indeterminates should be of CONTINUOUS type. </dd></dl> |
2476 | 2479 |
|
| 2480 | +</div> |
| 2481 | +</div> |
| 2482 | +<a id="abb72303794bd001aeb839c95016b477a"></a> |
| 2483 | +<h2 class="memtitle"><span class="permalink"><a href="#abb72303794bd001aeb839c95016b477a">◆ </a></span>AddL1NormCostInEpigraphForm()</h2> |
| 2484 | + |
| 2485 | +<div class="memitem"> |
| 2486 | +<div class="memproto"> |
| 2487 | + <table class="memname"> |
| 2488 | + <tr> |
| 2489 | + <td class="memname">std::tuple<<a class="el" href="namespacedrake.html#a77dd228fb4dd66a2c17dd3f7f38ffd85">VectorX</a><<a class="el" href="classdrake_1_1symbolic_1_1_variable.html">symbolic::Variable</a>>, <a class="el" href="classdrake_1_1solvers_1_1_binding.html">Binding</a><<a class="el" href="classdrake_1_1solvers_1_1_linear_cost.html">LinearCost</a>>, <a class="el" href="classdrake_1_1solvers_1_1_binding.html">Binding</a><<a class="el" href="classdrake_1_1solvers_1_1_linear_constraint.html">LinearConstraint</a>> > AddL1NormCostInEpigraphForm </td> |
| 2490 | + <td>(</td> |
| 2491 | + <td class="paramtype">const Eigen::Ref< const Eigen::MatrixXd > & </td> |
| 2492 | + <td class="paramname"><em>A</em>, </td> |
| 2493 | + </tr> |
| 2494 | + <tr> |
| 2495 | + <td class="paramkey"></td> |
| 2496 | + <td></td> |
| 2497 | + <td class="paramtype">const Eigen::Ref< const Eigen::VectorXd > & </td> |
| 2498 | + <td class="paramname"><em>b</em>, </td> |
| 2499 | + </tr> |
| 2500 | + <tr> |
| 2501 | + <td class="paramkey"></td> |
| 2502 | + <td></td> |
| 2503 | + <td class="paramtype">const Eigen::Ref< const <a class="el" href="namespacedrake_1_1solvers.html#aca924499b3b011a50d3bd9d051295efa">VectorXDecisionVariable</a> > & </td> |
| 2504 | + <td class="paramname"><em>vars</em> </td> |
| 2505 | + </tr> |
| 2506 | + <tr> |
| 2507 | + <td></td> |
| 2508 | + <td>)</td> |
| 2509 | + <td></td><td></td> |
| 2510 | + </tr> |
| 2511 | + </table> |
| 2512 | +</div><div class="memdoc"> |
| 2513 | + |
| 2514 | +<p>Adds an L1 norm cost min |Ax+b|₁ as a linear cost min Σᵢsᵢ on the slack variables sᵢ, together with the constraints (for each i) sᵢ ≥ (|Ax+b|)ᵢ, which itself is written sᵢ ≥ (Ax+b)ᵢ and sᵢ ≥ -(Ax+b)ᵢ. </p> |
| 2515 | +<dl class="section return"><dt>Returns</dt><dd>(s, linear_cost, linear_constraint). <code>s</code> is the vector of slack variables, <code>linear_cost</code> is the cost on <code>s</code>, and <code>linear_constraint</code> is the constraint encoding s ≥ Ax+b and s ≥ -(Ax+b). </dd></dl> |
| 2516 | + |
2477 | 2517 | </div> |
2478 | 2518 | </div> |
2479 | 2519 | <a id="ac57dac7a44fa56077931a7998f7069e2"></a> |
@@ -2509,7 +2549,7 @@ <h2 class="memtitle"><span class="permalink"><a href="#ac57dac7a44fa56077931a799 |
2509 | 2549 | </div><div class="memdoc"> |
2510 | 2550 |
|
2511 | 2551 | <p>Adds an L2 norm cost |Ax+b|₂ (notice this cost is not quadratic since we don't take the square of the L2 norm). </p> |
2512 | | -<dl class="section note"><dt>Note</dt><dd>Currently kL2NormCost is supported by <a class="el" href="classdrake_1_1solvers_1_1_snopt_solver.html" title="An implementation of SolverInterface for the commercially-licensed SNOPT solver (https://ccom....">SnoptSolver</a>, <a class="el" href="classdrake_1_1solvers_1_1_ipopt_solver.html" title="A wrapper to call Ipopt using Drake's MathematicalProgram.">IpoptSolver</a>, <a class="el" href="classdrake_1_1solvers_1_1_gurobi_solver.html" title="An implementation of SolverInterface for the commercially-licensed Gurobi solver (https://www....">GurobiSolver</a>, <a class="el" href="classdrake_1_1solvers_1_1_mosek_solver.html" title="An implementation of SolverInterface for the commercially-licensed MOSEK (TM) solver (https://www....">MosekSolver</a>, <a class="el" href="classdrake_1_1solvers_1_1_clarabel_solver.html" title="An interface to wrap Clarabel https://github.com/oxfordcontrol/Clarabel.cpp.">ClarabelSolver</a>, and SCSSolver. </dd></dl> |
| 2552 | +<dl class="section note"><dt>Note</dt><dd>Currently kL2NormCost is supported by <a class="el" href="classdrake_1_1solvers_1_1_snopt_solver.html" title="An implementation of SolverInterface for the commercially-licensed SNOPT solver (https://ccom....">SnoptSolver</a>, <a class="el" href="classdrake_1_1solvers_1_1_ipopt_solver.html" title="A wrapper to call Ipopt using Drake's MathematicalProgram.">IpoptSolver</a>, <a class="el" href="classdrake_1_1solvers_1_1_nlopt_solver.html">NloptSolver</a>, <a class="el" href="classdrake_1_1solvers_1_1_gurobi_solver.html" title="An implementation of SolverInterface for the commercially-licensed Gurobi solver (https://www....">GurobiSolver</a>, <a class="el" href="classdrake_1_1solvers_1_1_mosek_solver.html" title="An implementation of SolverInterface for the commercially-licensed MOSEK (TM) solver (https://www....">MosekSolver</a>, <a class="el" href="classdrake_1_1solvers_1_1_clarabel_solver.html" title="An interface to wrap Clarabel https://github.com/oxfordcontrol/Clarabel.cpp.">ClarabelSolver</a>, and SCSSolver. </dd></dl> |
2513 | 2553 |
|
2514 | 2554 | </div> |
2515 | 2555 | </div> |
|
0 commit comments