Résoudre un problème mathématique d'optimisation via une interface web - Python - Programmation
Marsh Posté le 02-11-2017 à 14:05:46
Pourquoi ne pas le coder en PHP directement, ton algo ? Quel est l'intérêt de passer par Python ?
Pour l'interfaçage, tu fais un formulaire web où tu rentres tes données, et côté serveur, ton script php récupère les données du formulaire et lance l'algo. Une fois le résultat trouvé, le script l'affiche sur une nouvelle page web (par ex).
De mémoire, un algo de type simplex devrait résoudre ton pb mathématique.
Au niveau des contraintes, tu risques surtout de te prendre un timeout (interruption d'ex de ton script car trop long, souvent 30s) si tu es en mutualisé.
Vu qu'il y a du CGI, voir si tu peux coder ton algo en langage C, en faire un exe et vérifier que tu peux l'exécuter à partir d'un script php via exec() ou une fonction similaire.
Marsh Posté le 04-11-2017 à 11:56:04
> Quel est l'intérêt de passer par Python ?
Probablement utiliser des librairies mathématiques prêtes à l'emploi, non?
A+,
Marsh Posté le 04-11-2017 à 13:02:06
Pour coder un simplex, y'a pas de gros besoins en lib mathématique dans mes souvenirs Et PHP a aussi une lib mathématique (JAMA).
Marsh Posté le 04-11-2017 à 13:41:15
Merci de vos réponses
J'ai quelques nouvelles.
Je voulais en fait, pour mieux comprendre le problème, avancer sur la mise en forme des données;
je suis donc parti sur Python, bien que ce n'était pas la seule solution, en me disant que je trouverais peut être plus facilement les librairies mathématiques nécessaires une fois que le problème serait bien posé.
J'ai en parallèle aussi souscris à l'offre d'Infomaniak qui a une offre assez complète mais qui implique du coup des contraintes de développement précises. Les librairies Python disponibles sont:
http://imu330.infomaniak.ch/pythonmodules.py
La mauvaise nouvelle était d'abord que le module SciPy de Python n'était pas disponible, or c'est celui qui contient les fonctions d'optimisation (demandeuses en calculs..).
Le module NumPy, plus basique que SciPy, est toutefois disponible.
J'ai donc utilisé cette fonction : https://docs.scipy.org/doc/numpy-1. [...] lstsq.html
Je ne prends pas en compte de contraintes (type A1 > A2 >...) par contre
Concernant l'interfaçage entre PHP et Python, j'utilise la méthode GET, avec les variables dans l'url.
La principale contrainte est que Python ne reconnait pas les tableaux dans les GET (par exemple : tableau[element1]=valeur1&tableau[element2]=valeur2), ce qui est pourtant une fonction très pratique de PHP. J'ai donc du aussi faire un travail de mise en forme de ce côté là.
Cela dit, si tu as quelques liens sur le simplex en php, ça m'intéresse quand même de mieux comprendre les différentes solutions possibles.
Marsh Posté le 02-11-2017 à 10:25:31
Bonjour,
Je suis en train de créer un site contenant des données numériques, et j'aimerais que le visiteur puisse obtenir la solution optimale d'un problème mathématique basé sur ces données et sur des paramètres qu'il aura renseigné.
Mon site est réalisé en PHP/MySQL.
Je pense qu'il sera nécessaire d'ajouter une touche de Python au site pour l'obtention de la solution optimale.
Je pense faire héberger mon site par Infomaniak qui dit intégrer Python : https://www.infomaniak.com/fr/hebergement/web
Git, CGI, PHP, Python, Perl, Laravel, pdflib, ...
Les langages couramment utilisés dans le développement Web sont pour la plupart supportés et la fonction exec() est autorisée sur nos hébergements.
Concernant le problème mathématique en lui même, il sera de la forme:
A1*B11 + A2*B12 + A3*B13 + ... - C1 = F1
A1*B21 + A2*B22 + A3*B23 + ... - C2 = F2
...
ET :
A1+A2+A3+...=1
Les B et les C sont donnés. Il faut rechercher les meilleurs A pour réduire les F.
Il pourra y avoir des contraintes du type:
A1 > A2 > A3 >...
C'est donc un problème a priori relativement simple qui ne demande pas de grosses ressources de calcul.
Je suis débutant en Python (mais je connais très bien Matlab comme autre langage "matriciel" ), et j'ai aucune idée de l'emploi de Python dans un service web.
J'ai fait quelques recherches sur google, mais je n'ai pas les bons mots-clé et je tombe sur des problèmes d'optimisation de code php, sur des algorithmes d'optimisation Python à utiliser sur son PC mais qui font appel à un serveur distant, etc..
J'aurais donc plusieurs questions pour commencer à y voir un peu plus clair :
Merci beaucoup !
Message édité par petite fraise le 02-11-2017 à 10:28:25