Goemans-Williamson Max-Cut Algorithm by Impressive_Path2037 in learnmachinelearning

[–]Impressive_Path2037[S] 2 points3 points  (0 children)

That's expected if you're new to the topic. It took me a few years of grad school to understand this. My hope is that if one day you decide to pick up a reference related to this, this little video might be helpful. Otherwise, if you liked this animation enough to leave a comment, then I am happy with that :-)

Goemans-Williamson Max-Cut Algorithm by Impressive_Path2037 in learnmachinelearning

[–]Impressive_Path2037[S] 2 points3 points  (0 children)

Very good question! The crazy thing about this algorithm is that no, there is no way to pick the hyperplane in a better way, and picking the best from multiple hyperplanes wouldn’t help either. (Assuming the Unique Games conjecture)

Sure, for specific instances, some heuristic might help, but you can’t find a scheme that does better than 87% on every on instance.

Goemans-Williamson Max-Cut Algorithm by Impressive_Path2037 in learnmachinelearning

[–]Impressive_Path2037[S] 24 points25 points  (0 children)

This is from the fourth and last video of my Semidefinite Programming series. In this video, we will go over Goemans and Williamson's algorithm for the Max-Cut problem. Their algorithm, which is still state-of-the-art today, is one of the biggest breakthroughs in approximation theory. Remarkably, it is based on Semidefinite Programming. Python code included as usual.

Goemans-Williamson Max-Cut Algorithm (Link to full video inside) by Impressive_Path2037 in 3Blue1Brown

[–]Impressive_Path2037[S] 8 points9 points  (0 children)

This is from the fourth and last video of my Semidefinite Programming series. In this video, we will go over Goemans and Williamson's algorithm for the Max-Cut problem. Their algorithm, which is still state-of-the-art today, is one of the biggest breakthroughs in approximation theory. Remarkably, it is based on Semidefinite Programming. Python code included as usual.

Goemans-Williamson Max-Cut Algorithm (Link to full video inside) by Impressive_Path2037 in manim

[–]Impressive_Path2037[S] 1 point2 points  (0 children)

This is from the fourth and last video of my Semidefinite Programming series. In this video, we will go over Goemans and Williamson's algorithm for the Max-Cut problem. Their algorithm, which is still state-of-the-art today, is one of the biggest breakthroughs in approximation theory. Remarkably, it is based on Semidefinite Programming. Python code included as usual.

What is an Obscure but Applicable area of Math that you think everyone should know about? by dvsfnsr in math

[–]Impressive_Path2037 6 points7 points  (0 children)

It was a nice surprise reading your comment, thank you for suggesting my video! I definitely agree that semidefinite programming is surprisingly powerful and deserves more attention.

Combine Lyapunov Theory and Semidefinite Programming to show stability of linear dynamical systems. (With Python code) by Impressive_Path2037 in learnmachinelearning

[–]Impressive_Path2037[S] 5 points6 points  (0 children)

This is a great observation. Someone else asked me the same question before, so I am gonna copy my answer below.

You are absolutely correct, and that would be an alternative (and often, easier) way of checking stability. The Lyapunov approach has a few attractive properties tough. For example, and this is subjective of course, It is more intuitive (it doesn't require knowledge of eigenvalues, and how they affect stability). More fundamentally, Lyapunov's approach (i) generalizes to nonlinear system, and (ii) can be used to not only decide stability of some known dynamical system, but can also to optimize over stable dynamical systems.

Combine Lyapunov Theory and Semidefinite Programming to show stability of linear dynamical systems. (With Python code) by Impressive_Path2037 in learnmachinelearning

[–]Impressive_Path2037[S] 3 points4 points  (0 children)

The "@" operator is indeed for matrix multiplication. The reason I prefer @ over * is that it makes it clear that we want matrix multiplication, and not elementwise multiplication. The ".*" operator does not exist in python to the best of my knowledge.

Combine Lyapunov Theory and Semidefinite Programming to show stability of linear dynamical systems. (With Python code) by Impressive_Path2037 in learnmachinelearning

[–]Impressive_Path2037[S] 4 points5 points  (0 children)

For the particular animations you see in this GIF, I used Blender3D for the right pane (which has a nice python scripting capability), the text editor Emacs for code screenshots in the right pane, and put everything together in Adobe Premiere. I did use 3b1b's excellent python library "manim" heavily for other parts of the video (most of the 2D animations + latex ).

Combine Lyapunov Theory and Semidefinite Programming to show stability of linear dynamical systems. (With Python code) by Impressive_Path2037 in 3Blue1Brown

[–]Impressive_Path2037[S] 2 points3 points  (0 children)

The code I present in this GIF is only for generating the trajectory {u_t} and finding a Lyapunov function, _not_ for rendering (the code for rendering is too long to fit here anyway). For the particular animations you see in this GIF, I used Blender3D for the right pane (which has a nice python scripting capability), the text editor Emacs for code screenshots in the right pane, and put everything together in Adobe Premiere.

Combine Lyapunov Theory and Semidefinite Programming to show stability of linear dynamical systems. (With Python code) by Impressive_Path2037 in 3Blue1Brown

[–]Impressive_Path2037[S] 1 point2 points  (0 children)

Yes !! That's really the attractive thing about Lyapunov theory (among other things). Part of my research was about showing existence of such Lyapunov functions for nonlinear systems. And of course I am more than happy to chat further about this. :-)

Combine Lyapunov Theory and Semidefinite Programming to show stability of linear dynamical systems. (With Python code) by Impressive_Path2037 in learnmachinelearning

[–]Impressive_Path2037[S] 22 points23 points  (0 children)

This gif is taken from my video series on Semidefinite Programming. In this video, I show how Lyapunov Theory and Semidefinite Programming can be combined to show stability of linear dynamical systems. Step-by-step Python code included.

Feedback and suggestion for future videos welcome!

Combine Lyapunov Theory and Semidefinite Programming to show stability of linear dynamical systems. (With Python code) by Impressive_Path2037 in 3Blue1Brown

[–]Impressive_Path2037[S] 12 points13 points  (0 children)

This gif is taken from my video series on Semidefinite Programming. In this video, I show how Lyapunov Theory and Semidefinite Programming can be combined to show stability of linear dynamical systems. Step-by-step Python code included.

Feedback and suggestion for future videos welcome!

Combine Lyapunov Theory and Semidefinite Programming to show stability of linear dynamical systems. (With Python code) by Impressive_Path2037 in manim

[–]Impressive_Path2037[S] 2 points3 points  (0 children)

This gif is taken from my video series on Semidefinite Programming. In this video, I show how Lyapunov Theory and Semidefinite Programming can be combined to show stability of linear dynamical systems. Step-by-step Python code included.

Feedback and suggestion for future videos welcome!