Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

solfinder-1.0.4.tar.gz (19.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

solfinder-1.0.4-py3-none-any.whl (20.7 kB view details)

Uploaded Python 3

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

Hashes for solfinder-1.0.4.tar.gz
Algorithm Hash digest
SHA256 f1bf1b564801421c66d305598606225b65e6a02762884ddef9f448d039f03fd5
MD5 6d923cea716c9c208a3147776bfede49
BLAKE2b-256 7c9a1c816af26735f2aa4c3f2a9591bf245431a51cedeef559e00786f3af75ff

See more details on using hashes here.

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

Hashes for solfinder-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 98671b2dd8265a2371d85410dde178658fad350a4cf0c42d4222ff6d418c6770
MD5 fbce1293354136a7110959152dd3cd2b
BLAKE2b-256 3f503cd395776080407a3041fc7c576e618393415e66d5c52f1974943550e392

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page