Это зависит от того, что вы собираетесь, но вы должны пойти к проф.в математике оптимизации в вашем университете, в котором вы сейчас находитесь или который вы закончили, и вы должны спросить его напрямую.
Я реализовал решатели для нескольких задач, сводящихся к выпуклой оптимизации (http://cs229.stanford.edu/proj2017/)- cvx4ml, который работает быстрее, чем аналогичное решение от SkLearn, и я сдал 24-часовой экзамен Стивену Бойду, чтобы я мог дать совет, что вы можете сделать и описать для своего очень грубого плана:
Итак, вы собираетесьсоздайте собственный пакет напишу пошаговую инструкцию:
- Вам необходимо создать библиотеку для работы с плотной матрицей / векторами
- Вам необходимо создать библиотеку для работы с разреженной матрицей / векторами
- Реализовать около 20 различных алгоритмов для решения системы линейных уравнений (поскольку в зависимости от ситуации вам понадобятся разные из них)
- Ввести понятия, как описывать ограничения, функциональную область и т. Д. На вашем языке программирования илиВы система, которую вы создали.
- Реализация нескольких норм и двойных норм оценкиКроме того, некоторые методы факторизации, такие как LU, Cholesky.
Реализация собственного простого конического решателя для неотрицательного конуса ортона.И это зависит от того, что вы собираетесь сделать.6.a - написать решатель на основе метода внутренней точки.6.b - запись решателя с поддержкой распределенной оптимизации. 6.c - запись решателя на основе некоторого спроецированного субградиентного метода.
Улучшение для поддержки других конусов
- Улучшенный решатель с шагом "5"
А если вы хотите быть на уровне CVXPY, тогда
Реализовать синтаксический анализ описания программы, например, CVXPY do, и преобразовать проблему в коническую форму.
ps Если вы чувствуете неуверенность в некоторых из этих тем, то:
Прочитайте книгу по линейной алгебре, в которой написано проф.из вашего университета
Посмотрите на YouTube в EE263 с S.Boyd, EE364A с S.Boyd, EE364B с S.Boyd.