Cela dépend de ce que vous allez, mais vous devriez aller au prof. en optimisation des mathématiques dans votre université dans laquelle vous êtes en ce moment ou que vous avez obtenu un diplôme et vous devriez lui demander directement.
J'ai implémenté des solveurs pour plusieurs problèmes réduits à l'optimisation convexe (http://cs229.stanford.edu/proj2017/) - cvx4ml qui fonctionne plus vite qu'une solution similaire de SkLearn, et j'ai passé un examen de 24 heures à Stephen Boyd, donc je peux donner ce que tu peux faire et décrire votre plan très rude:
Alors vous allez créer votre propre paquet que je vais écrire étape par étape instruction:
- vous devez créer la bibliothèque pour travailler avec matrice dense/vecteurs
- vous devriez créer une bibliothèque pour travailler avec des matrices/vecteurs clairsemés
- Mettre en oeuvre environ 20 algorithmes différents pour résoudre le système d'équations linéaires (car dépend de la situation dont vous aurez besoin différents d'entre eux)
- introduisent des concepts comment décrire les contraintes, le domaine de la fonction, etc dans votre langage de programmation ou votre système que vous avez créé.
- Mettre en œuvre plusieurs normes et évaluation de deux normes, certaines techniques de factorisation comme LU, Cholesky.
Mettre en œuvre un solveur conique simple personnalisé pour un cône orthont négatif. Et cela dépend de ce que vous allez faire. 6.a - résolveur d'écriture basé sur la méthode du point intérieur. 6.b - résolveur d'écriture avec support optimisation répartie 6.c - solveur d'écriture basé sur une méthode de sous-gradient projetée.
améliorer pour soutenir d'autres cônes
- solveur vous amélioré à l'étape "5"
Et si vous voulez être au niveau de CVXPY puis
- Implémenter l'analyse de description de programme comme CVXPY et transformer le problème en forme conique.
p.s. Si vous vous sentez négligé avec certains de ces sujets, alors:
Lecture algébrique linéaire livre qui a écrit prof. de votre université
Regardez dans le youtube dans EE263 avec S.Boyd, EE364A avec S.Boyd, EE364B avec S.Boyd.