SolFinder 1.0.4
Project description
SolFinder
A library to find a solution among a set of Pareto optimal solutions, according to the preferences of the decision-maker.
In particular, this library has been developed with the aim of identifying eco-efficient aircraft trajectories.
License:
SolFinder is released under GNU Lesser General Public License v3.0 (LGPL-3.0-or-later).
Copyright notice:
Technische Universiteit Delft hereby disclaims all copyright interest in the program “SolFinder” (library to find a solution among a set of Pareto optimal solutions, in particular, eco-efficient aircraft trajectories) written by the Author(s).
Henri Werij, Faculty of Aerospace Engineering, Technische Universiteit Delft.
© 2023 Federica Castino
Installation
pip install solfinder
Get started
import solfinder.MCDM as MCDM
import numpy as np
import matplotlib.pyplot as plt
# Upload example dataset
with open(r'tests/Data_example/POBJ_20180101000005_0_51_28_41.dat', 'r') as f:
data = np.loadtxt(f, unpack=True)
# Values of objective functions
soc = data[0]
atr = data[1]
# Number of Pareto optimal solutions
n_sol = len(soc)
# Find Pareto optimal solutions using available options
index_target_05 = MCDM.Target.solution_found_with_target(MCDM.Target(),0.5,soc)
index_gra = MCDM.GRA.solution_found_by_gra(MCDM.GRA(), data)
index_topsis = MCDM.TOPSIS.solution_found_by_topsis(MCDM.TOPSIS(), data, [0.5,0.5])
set_indices_vikor, index_vikor = MCDM.VIKOR.solution_found_by_vikor(MCDM.VIKOR(), data, 0.5, [0.5, 0.5])
# Plot of Pareto front and selected solutions
plt.scatter(100 * (atr - max(atr)) / max(atr),
MCDM.Target.rel_change(soc), s=20, c='grey')
plt.scatter(100 * (atr[index_target_05] - max(atr)) / max(atr),
100 * (soc[index_target_05] - min(soc)) / min(soc), s=40, c='red', label='Target +0.5% SOC')
plt.scatter(100 * (atr[index_gra] - max(atr)) / max(atr),
100 * (soc[index_gra] - min(soc)) / min(soc), s=40, c='blue', label='GRA')
plt.scatter(100 * (atr[index_topsis] - max(atr)) / max(atr),
100 * (soc[index_topsis] - min(soc)) / min(soc), s=40, c='orange', label='TOPSIS')
plt.scatter(100 * (atr[index_vikor] - max(atr)) / max(atr),
100 * (soc[index_vikor] - min(soc)) / min(soc), s=40, c='green', label='VIKOR')
plt.xlabel(r'Change in ATR20 [%]', fontsize=16, labelpad=15)
plt.ylabel(r'Change in SOC [%]', fontsize=16, labelpad=15)
plt.title('Number of solutions: {}'.format(n_sol))
plt.legend()
plt.grid(True)
plt.show()
Acknowledgements
This library has been developed within EU-Projects FlyATM4E. FlyATM4E has received funding from the SESAR Joint Undertaking under the European Union's Horizon 2020 research and innovation programme under grant agreement No 891317. The JU receives support from the European Union’s Horizon 2020 research and innovation programme and the SESAR JU members other than the Union.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file solfinder-1.0.4.tar.gz.
File metadata
- Download URL: solfinder-1.0.4.tar.gz
- Upload date:
- Size: 19.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.9.6 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.10.1 urllib3/1.26.15 tqdm/4.64.1 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.5 CPython/3.6.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f1bf1b564801421c66d305598606225b65e6a02762884ddef9f448d039f03fd5
|
|
| MD5 |
6d923cea716c9c208a3147776bfede49
|
|
| BLAKE2b-256 |
7c9a1c816af26735f2aa4c3f2a9591bf245431a51cedeef559e00786f3af75ff
|
File details
Details for the file solfinder-1.0.4-py3-none-any.whl.
File metadata
- Download URL: solfinder-1.0.4-py3-none-any.whl
- Upload date:
- Size: 20.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.9.6 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.10.1 urllib3/1.26.15 tqdm/4.64.1 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.5 CPython/3.6.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
98671b2dd8265a2371d85410dde178658fad350a4cf0c42d4222ff6d418c6770
|
|
| MD5 |
fbce1293354136a7110959152dd3cd2b
|
|
| BLAKE2b-256 |
3f503cd395776080407a3041fc7c576e618393415e66d5c52f1974943550e392
|