- Informations générales
- Liste pré-requis
- Création environnement
- Activation environnement
- Installation des librairies
- Exécution du programme
- Lancement algorithme bruteforce
- Lancement algorithme dynamique
- Capture d'écran de l'interface
- Rapport avec flake8
- Informations importantes sur les différents fichiers et dossiers
- Auteur et contact
- Ce programme est développé en Python est a pour objectif d'optimiser les investissements en utilisant des algorithmes.
- Afin de générer davantage de bénéfice.
- 2 méthodes ont été développées.
- Un algorithme bruteforce.
- Un algorithme dynamique.
- Ce code utilise une méthode d'énumération exhaustive, également appelée méthode de force brute.
Il teste toutes les combinaisons possibles d'éléments du dictionnaire "actions" pour trouver la combinaison optimale
qui maximise le bénéfice total tout en respectant une contrainte de coût maximum.
- Cet algorithme est appelé "Knapsack problem" (ou "problème du sac à dos" en français) résolu par programmation dynamique.
C'est un problème classique en optimisation combinatoire qui consiste à maximiser la valeur totale des objets que l'on peut
mettre dans un sac à dos, sachant que chaque objet a un poids et une valeur spécifiques et que le sac à dos a une capacité maximale.
Retour en haut 🡅
Programme élaboré avec les logiciels suivants:
-
Python v3.7.2 choisissez la version adaptée a votre ordinateur et système.
-
Python est disponible à l'adresse suivante ➔ https://www.python.org/downloads/
-
Windows 7 professionnel SP1
-
Les scripts Python s'exécutent depuis un terminal.
- Pour ouvrir un terminal sur Windows, pressez la touche
windows + r
et entrezcmd
. - Sur Mac, pressez la touche
command + espace
et entrezterminal
. - Sur Linux, vous pouvez ouviri un terminal en pressant les touches
Ctrl + Alt + T
.
- Pour ouvrir un terminal sur Windows, pressez la touche
Retour en haut 🡅
- Installer une version de Python compatible pour votre ordinateur.
- Une fois installer ouvrer le cmd (terminal) placer vous dans le dossier principale (dossier racine).
Taper dans votre terminal :
$ python -m venv env
Note : Un répertoire appelé env doit être créé.
Retour en haut 🡅
- Placez-vous avec le terminal dans le dossier principale (dossier racine).
Pour activer l'environnement virtuel créé, il vous suffit de taper dans votre terminal :
$ env\Scripts\activate.bat
- Ce qui ajoutera à chaque ligne de commande de votre terminal
(env)
.
Pour désactiver l'environnement virtuel, il suffit de taper dans votre terminal :
$ deactivate
Retour en haut 🡅
- Le programme utilise plusieurs librairies externes et modules de Python, qui sont répertoriés dans le fichier
requirements.txt
. - Placez-vous dans le dossier où se trouve le fichier
requirements.txt
avec le terminal, l'environnement virtuel doit être activé. - Pour faire fonctionner le programme, il vous faudra installer les librairies requises.
- À l'aide du fichiers
requirements.txt
mis à disposition.
Taper dans votre terminal la commande :
$ pip install -r requirements.txt
Retour en haut 🡅
- Placez-vous avec le terminal dans le dossier
Bruteforce
.
Taper dans votre terminal la commande :
$ python bruteforce.py
Le montant d'investissement par défaut est fixé à 500€.
Note : Par Défaut le bruteforce ne traîte que les données du fichier "dataset3.csv", contenant 20 actions. Les dataset1 et dataset2 résulteraient à un temps d'exécution extrêmement long.
- Après le lancement du fichier bruteforce.py
- Lors de l'exécution de l'algorithme une barre de progression est affichée.
- Lorsque que le traitement des données est fini le programme vous demande si vous souhaitez faire un graphique des résultats.
- Une barre de progression est affichée pendant que le graphique est généré.
Retour en haut 🡅
- Placez-vous avec le terminal dans le dossier
Dynamique
.
Taper dans votre terminal la commande :
$ python optimized.py
-
Après le lancement du fichier optimized.py le programme, vous demande de sélectionner un fichier de votre choix :
-
dataset1.csv
(1000 actions) -
dataset2.csv
(1000 actions) -
dataset3.csv
(20 actions)
-
Après avoir choisi un fichier, vous pouvez choisir un montant de votre choix, sinon le montant par défaut est paramétré sur 500 euros.
-
Lors de l'exécution de l'algorithme une barre de progression est affichée.
-
Lorsque que le traitement des données est fini le programme vous demande si vous souhaitez faire un graphique des résultats.
-
Une barre de progression est affichée pendant que le graphique est généré.
Retour en haut 🡅
. Capture d'écran du menu algorithme dynamique.
. Capture d'écran graphique algorithme dynamique.
. Capture d'écran du menu algorithme bruteforce.
. Capture d'écran graphique algorithme bruteforce.
Retour en haut 🡅
- Le repository contient un rapport flake8, qui n'affiche aucune erreur.
<div id="all-good">
<span class="count sev-4">
<span class="tick">✓</span>
</span>
<h2>All good!</h2>
<p>No flake8 errors found in 2 files scanned.</p>
</div>
- Il est possible d'en générer un nouveau en installant le module
flake8
s'il n'est pas installé.
Installation de flake8 en entrant dans votre terminal la commande :
$ pip install flake8-html
- Créer un fichier
.flake8
si il n'existe pas.
Ecrire le texte suivant dedans :
[flake8]
exclude = .git, env, .gitignore
max-line-length = 119
Tapez dans votre terminal la commande :
$ flake8 --format=html --htmldir=flake-report
- Un rapport sera généré dans le dossier
flake-report
.
Retour en haut 🡅
Diapositives.pdf
Le fichier contient un jeu de diapositives (version PDF).
- Le pseudocode LDA "Langage de Description d'Algorithmes" décrivant le processus de réflexion de l'algorithme bruteforce et dynamique.
- L'analyse de l'algorithme de bruteforce.
- L'analyse de l'algorithme dynamiqye.
- L'analyse des performances et de l'efficacité des algorithmes.
- Un rapport d'exploration de l'ensemble des données.
- Une comparaison côte à côte entre la sortie de mes algorithmes et ceux proposés par ma collaboratrice.
Le dossier Bruteforce
- Le dossier contient le fichier (bruteforce.py) ainsi que 3 fichiers csv.
Le dossier Dynamique
- Le dossier contient le fichier (optimized.py) ainsi que 3 fichiers csv.
Le dossier flake8
- Le dossier contient un fichier (index.html) qui indique qu'il n'y a aucune erreur.
Retour en haut 🡅
Pour toute information supplémentaire, vous pouvez me contacter.
Bubhux: bubhuxpaindepice@gmail.com