diff --git a/.gitignore b/.gitignore index 3103c59..351bb5e 100644 --- a/.gitignore +++ b/.gitignore @@ -4,7 +4,6 @@ main.py # UV Environment .python-version .venv -uv.lock # Datasets dataset.py diff --git a/README.md b/README.md index e69de29..f342e65 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,38 @@ +# Mini Projet - Optimisation Métaheuristique + +Ceci est le répertoire Git du projet d'optimisation métaheuristique du groupe 9 dont les membres sont AIT MOUSSA Amine, DAANOUNI Siham et DELAMOTTE Clément. Le sujet choisi est **l'optimisation du chargement des véhicules électriques** et l'algorithme mis en place est **Multiple Objectives Particle Swarm Optimization (MOPSO) + Surrogate**. La modélisation du problème se trouvera dans le rapport. + +Pour les datasets, nous avons pris diverses sources pour concevoir notre propre jeu de données: +- data/vehicle_capacity.csv: [Car Dataset (2025)](https://www.kaggle.com/datasets/abdulmalik1518/cars-datasets-2025/data) +- data/elec_prices.csv: [RTE France (éco2mix)](https://www.rte-france.com/donnees-publications/eco2mix-donnees-temps-reel/donnees-marche), les données ont été récupérées manuellement sur l'hivers 2025 (S2-S5) et l'été 2025 (S29-S32) + +## Installation +Le projet a été concu à l'aide du *Python packet manager* ***UV***, il est préférable d'utiliser celui-ci pour ca facilité d'utilisation. **UV** peut être installé via le [site internet officiel](https://docs.astral.sh/uv/getting-started/installation/#installing-uv) + +**Linux:** +```bash +# Installation de UV +curl -LsSf https://astral.sh/uv/install.sh | sh +``` + +**Windows:** +```powershell +# Installation de UV (via WinGet) +powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" +``` + +## Utilisation +Pour charger le projet et l'executer sans problème, il faut d'abord configurer notre environnement d'execution de la manière suivante: + +```bash +# Création d'un environnement virtuel (nécessaire) +uv venv + +# Téléchargement des requirements du projet +uv pip sync uv.lock + +# Si uv.lock n'existe pas, vous pouvez le générer avec la commande suivante: +uv pip compile --upgrade pyproject.toml -o uv.lock +``` + +Enfin, vous pouvez executer n'importe quel script avec la commande `uv run main.py` \ No newline at end of file diff --git a/data/elec_prices.csv b/data/elec_prices.csv new file mode 100644 index 0000000..80ebfd2 --- /dev/null +++ b/data/elec_prices.csv @@ -0,0 +1,251 @@ +Winter 2025; Summer 2025 +13.28; 85.26 +5.23; 49.28 +3.52; 41.39 +58.15; 40.19 +40.81; 28.27 +31.28; 37.05 +26.95; 34.06 +38.49; 31.49 +88.34; 27.09 +67.18; 54.14 +48.02; 86.23 +20.88; 117.84 +12.54; 76.77 +0.4; 63.01 +60.01; 54.1 +1158; 69.52 +93.49; 94.16 +71.25; 30.5 +79.76; 46.2 +100.64; 25.8 +128.87; 20.82 +107.24; 44.77 +98.53; 74.46 +74.23; 100.79 +59.97; 74.97 +59.52; 55.26 +97.41; 44.71 +135.01; 52.33 +125.04; 75.2 +97.57; 42.63 +110.19; 53.6 +124.05; 32.25 +138.58; 39.76 +124.81; 79.1 +111.9; 122.84 +60.38; 117.4 +51.86; 104.23 +13.01; 90.1 +60.08; 82.12 +100.99; 87.05 +97.45; 105.92 +94.75; 85 +80.89; 70.17 +109.4; 51.21 +135.73; 76.81 +120.36; 91.52 +101.43; 121.41 +86.82; 125.07 +72.09; 100.97 +70.07; 91.21 +101.8; 78.45 +140.33; 90.32 +123.57; 109.39 +110.01; 80 +135.57; 80 +144.28; 71.2 +134.83; 79.4 +119.79; 93.97 +112; 110 +96.32; 119.19 +90.82; 98.8 +95.46; 79.71 +115.85; 49.57 +114.24; 47.99 +97.14; 56.62 +95.74; 10 +113.29; 0 +123.86; 0 +119.95; 18.82 +113.27; 30.16 +110.36; 72.92 +90; 106.8 +85; 51.61 +90.13; 25.5 +114.97; 21.83 +117.77; 16.32 +102.99; 3.6 +95.4; 0 +109.56; 0 +146.66; -0.01 +124; 3.08 +116.73; 5.99 +112.39; 43.81 +104.46; 78.33 +100; 58.02 +127.14; 26.72 +186; 17.88 +128.38; 22.08 +105.69; 19.41 +104.91; 0 +126.64; 15.23 +157.07; 17.22 +141.32; 8.93 +121.41; 21.61 +122.19; 29.33 +114.53; 55.35 +112.2; 81.13 +138.52; 67.28 +186.54; 46.63 +133.76; 79.07 +112.37; 76.26 +116.44; 28.86 +145.13; 27.67 +188.31; 4.18 +154; 27.05 +135.31; 69.07 +119.33; 113.92 +118.6; 109.1 +111.77; 89.79 +135.56; 80.94 +275; 77.83 +179.56; 90.87 +166.26; 96.5 +143.49; 76.4 +135; 61.97 +221.91; 44.88 +168.78; 71.63 +138.77; 92.17 +124.33; 111.63 +114; 109.96 +108.59; 96.24 +130.8; 81.88 +199.94; 63.27 +151.9; 85.62 +131.13; 103.04 +115.14; 70.9 +137.69; 71.05 +184.32; 28 +159.6; 26.53 +136.02; 74.72 +124.83; 87.93 +118.2; 109.19 +117.26; 88.69 +140.8; 78.48 +208.13; 51.97 +149.39; 77.97 +126.44; 98.35 +119.51; 62.4 +138.02; 59.01 +179.92; 16.2 +157.91; 46.49 +139.97; 63.23 +125.46; 85 +121.06; 105 +116.56; 96.27 +120; 66.28 +145.69; 46.4 +131.7; 57.33 +118.87; 41.05 +117.28; 17.69 +120.9; 18 +167.57; 8.67 +156.12; 5.98 +136.4; 27.13 +129.77; 65.29 +123.17; 100 +120.18; 60.5 +121.59; 48.9 +123.61; 37.92 +125.43; 40.16 +112.25; 32.34 +116.81; 14.77 +120.74; 31.66 +159.68; 8.85 +150.03; 16.14 +131.56; 23.3 +122.3; 40 +116.57; 88.64 +115.45; 62.29 +137.33; 48.95 +289; 38 +236.29; 50 +176.5; 63.71 +182.73; 20.59 +235; 21.87 +473.28; 11.17 +220; 14.35 +153.58; 44.3 +136; 60 +124.35; 88.54 +115.3; 50.68 +138.86; 34.78 +245; 22.98 +200; 45 +151.36; 49.45 +151; 11.73 +160.32; 25.92 +208.44; 3.78 +160.18; 22.87 +137; 48.97 +123.53; 57.58 +106.78; 103.27 +103.6; 54.44 +120.57; 43.75 +200; 32.55 +179.06; 45.51 +165; 57.38 +177.03; 33.59 +165.85; 24.79 +159.6; 10.7 +139.49; 19.89 +129.86; 40.75 +114.6; 77.99 +105.84; 104.36 +98.53; 90 +113.79; 71.07 +160.34; 57.75 +135.21; 81.96 +104.18; 91.55 +95.4; 30.5 +100.97; 29.01 +121.78; 25.26 +98.44; 30 +85.09; 64.24 +75.16; 107.99 +48.6; 110.27 +16.01; 102.22 +64.93; 81 +105.26; 63.98 +93.63; 83.14 +79.68; 100 +75.07; 45.81 +77.13; 31.87 +99.64; 20.01 +93.67; 17.42 +96.72; 44.8 +57.03; 87.34 +25.2; 102.52 +16.8; 97.8 +25; 65.27 +55.54; 43.33 +60.73; 51.08 +70.17; 37.33 +55.16; 16.54 +53.77; 2.95 +118.32; 0 +96.37; 0 +86.5; 34.31 +60.02; 74.53 +29.7; 99.64 +26.21; 80.4 +44.2; 42.96 +29.54; 30.02 +25.95; 32.03 +84.83; 6.16 +14.98; -1.01 +13.45; -3 +51.54; -10.08 +39.06; -1.49 +32.35; 12.51 \ No newline at end of file diff --git a/data/vehicle_capacity.csv b/data/vehicle_capacity.csv index bf70f8e..8e2c91c 100644 --- a/data/vehicle_capacity.csv +++ b/data/vehicle_capacity.csv @@ -1,4 +1,4 @@ -Cars Names;CC/Battery Capacity );Fuel Types +Cars Names;Battery Capacity kwh;Fuel Types E-TRON;95;Electric E-TRON SPORTBACK;95;Electric I8 ROADSTER;11.6;Hybrid @@ -94,8 +94,6 @@ Jaguar I-PACE EV400 HSE;90;Electric Jaguar I-PACE First Edition;90;Electric e-208;50;Electric e-2008;50;Electric -Partner Electric;-;Electric -Expert Electric;-;Electric Mustang Mach-E;83;Electric F-150 Lightning;98;Electric Transit Electric (E-Transit);89;Electric diff --git a/pyproject.toml b/pyproject.toml index 782b9f0..763bb55 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,9 @@ [project] name = "optim-meta" -version = "0.1.0" -description = "Add your description here" +version = "0.7.2" +description = "Metaheuristic Optimization Project" readme = "README.md" requires-python = ">=3.11" -dependencies = [] +dependencies = [ + "pandas>=2.3.3", +] diff --git a/uv.lock b/uv.lock new file mode 100644 index 0000000..74617ec --- /dev/null +++ b/uv.lock @@ -0,0 +1,14 @@ +# This file was autogenerated by uv via the following command: +# uv pip compile pyproject.toml -o uv.lock +numpy==2.4.1 + # via pandas +pandas==2.3.3 + # via optim-meta (pyproject.toml) +python-dateutil==2.9.0.post0 + # via pandas +pytz==2025.2 + # via pandas +six==1.17.0 + # via python-dateutil +tzdata==2025.3 + # via pandas