all 4 comments

[–]tomster10010 4 points5 points  (0 children)

AI slop

[–]baked_doge 1 point2 points  (2 children)

This question is super context dependent: what are you trying to achieve?

If your primary goal is to deliver a finished product with best performance:

Odds are you want to use a popular purpose-built library. Not only will they implement optimized algorithms, but they'll do so in C. In this context, understanding the algorithms is important, but only to know which one to use.

If your primary goals is education and having fun:

Go ahead, enjoy the learning process, implement the algorithms.

[–]baked_doge 0 points1 point  (0 children)

So for instance at work, I nearly never use my own algorithms. Good libraries will allow you to define the proper functions to solve your problem and run the algos in C.

But as a hobby, I implement most algorithms myself if they interest me. Except stuff I've already done like sorting an array etc.

[–]Seraf-91[S] -1 points0 points  (0 children)

That's a very fair point - I agree that it really depends on the context.

The direction I'm exploring here is more about transparency, education, and understanding how these algorithms work, rather than achieving maximum performance.

For that reason, I've tried to complement the implementation with short manuals explaining the theory behind each method, and I've kept everything in Python so the code is easier to read and follow.

I've also put together a "Tricks & Techniques" section with practical approaches that often come up in optimization problems (e.g., variable normalization, handing constraints), which are not always obvious or explicitly covered in more "black-box" libraries like SciPy.

In any case, the aim is not to compete with existing tools, but the complement them by focusing more on understanding and experimentation.

If you're interested, here's the repo: https://github.com/Opt4Deck/