{ "info": { "author": "Guo Fei", "author_email": "guofei9987@foxmail.com", "bugtrack_url": null, "classifiers": [], "description": "\n\n# [scikit-opt](https://github.com/guofei9987/scikit-opt)\n\n[![PyPI](https://img.shields.io/pypi/v/scikit-opt)](https://pypi.org/project/scikit-opt/)\n[![Build Status](https://travis-ci.com/guofei9987/scikit-opt.svg?branch=master)](https://travis-ci.com/guofei9987/scikit-opt)\n[![codecov](https://codecov.io/gh/guofei9987/scikit-opt/branch/master/graph/badge.svg)](https://codecov.io/gh/guofei9987/scikit-opt)\n[![License](https://img.shields.io/pypi/l/scikit-opt.svg)](https://github.com/guofei9987/scikit-opt/blob/master/LICENSE)\n![Python](https://img.shields.io/badge/python->=3.5-green.svg)\n![Platform](https://img.shields.io/badge/platform-windows%20|%20linux%20|%20macos-green.svg)\n[![fork](https://img.shields.io/github/forks/guofei9987/scikit-opt?style=social)](https://github.com/guofei9987/scikit-opt/fork)\n[![Downloads](https://pepy.tech/badge/scikit-opt)](https://pepy.tech/project/scikit-opt)\n[![Discussions](https://img.shields.io/badge/discussions-green.svg)](https://github.com/guofei9987/scikit-opt/discussions)\n\n\n\n\nSwarm Intelligence in Python \n(Genetic Algorithm, Particle Swarm Optimization, Simulated Annealing, Ant Colony Algorithm, Immune Algorithm,Artificial Fish Swarm Algorithm in Python) \n\n\n- **Documentation:** [https://scikit-opt.github.io/scikit-opt/#/en/](https://scikit-opt.github.io/scikit-opt/#/en/)\n- **\u6587\u6863\uff1a** [https://scikit-opt.github.io/scikit-opt/#/zh/](https://scikit-opt.github.io/scikit-opt/#/zh/) \n- **Source code:** [https://github.com/guofei9987/scikit-opt](https://github.com/guofei9987/scikit-opt)\n- **Help us improve scikit-opt** [https://www.wjx.cn/jq/50964691.aspx](https://www.wjx.cn/jq/50964691.aspx)\n\n# install\n```bash\npip install scikit-opt\n```\n\nFor the current developer version:\n```bach\ngit clone git@github.com:guofei9987/scikit-opt.git\ncd scikit-opt\npip install .\n```\n\n# Features\n## Feature1: UDF\n\n**UDF** (user defined function) is available now!\n\nFor example, you just worked out a new type of `selection` function. \nNow, your `selection` function is like this: \n-> Demo code: [examples/demo_ga_udf.py#s1](https://github.com/guofei9987/scikit-opt/blob/master/examples/demo_ga_udf.py#L1)\n```python\n# step1: define your own operator:\ndef selection_tournament(algorithm, tourn_size):\n FitV = algorithm.FitV\n sel_index = []\n for i in range(algorithm.size_pop):\n aspirants_index = np.random.choice(range(algorithm.size_pop), size=tourn_size)\n sel_index.append(max(aspirants_index, key=lambda i: FitV[i]))\n algorithm.Chrom = algorithm.Chrom[sel_index, :] # next generation\n return algorithm.Chrom\n\n\n```\n\nImport and build ga \n-> Demo code: [examples/demo_ga_udf.py#s2](https://github.com/guofei9987/scikit-opt/blob/master/examples/demo_ga_udf.py#L12)\n```python\nimport numpy as np\nfrom sko.GA import GA, GA_TSP\n\ndemo_func = lambda x: x[0] ** 2 + (x[1] - 0.05) ** 2 + (x[2] - 0.5) ** 2\nga = GA(func=demo_func, n_dim=3, size_pop=100, max_iter=500, prob_mut=0.001,\n lb=[-1, -10, -5], ub=[2, 10, 2], precision=[1e-7, 1e-7, 1])\n\n```\nRegist your udf to GA \n-> Demo code: [examples/demo_ga_udf.py#s3](https://github.com/guofei9987/scikit-opt/blob/master/examples/demo_ga_udf.py#L20)\n```python\nga.register(operator_name='selection', operator=selection_tournament, tourn_size=3)\n```\n\nscikit-opt also provide some operators \n-> Demo code: [examples/demo_ga_udf.py#s4](https://github.com/guofei9987/scikit-opt/blob/master/examples/demo_ga_udf.py#L22)\n```python\nfrom sko.operators import ranking, selection, crossover, mutation\n\nga.register(operator_name='ranking', operator=ranking.ranking). \\\n register(operator_name='crossover', operator=crossover.crossover_2point). \\\n register(operator_name='mutation', operator=mutation.mutation)\n```\nNow do GA as usual \n-> Demo code: [examples/demo_ga_udf.py#s5](https://github.com/guofei9987/scikit-opt/blob/master/examples/demo_ga_udf.py#L28)\n```python\nbest_x, best_y = ga.run()\nprint('best_x:', best_x, '\\n', 'best_y:', best_y)\n```\n\n> Until Now, the **udf** surport `crossover`, `mutation`, `selection`, `ranking` of GA\n> scikit-opt provide a dozen of operators, see [here](https://github.com/guofei9987/scikit-opt/tree/master/sko/operators)\n\nFor advanced users:\n\n-> Demo code: [examples/demo_ga_udf.py#s6](https://github.com/guofei9987/scikit-opt/blob/master/examples/demo_ga_udf.py#L31)\n```python\nclass MyGA(GA):\n def selection(self, tourn_size=3):\n FitV = self.FitV\n sel_index = []\n for i in range(self.size_pop):\n aspirants_index = np.random.choice(range(self.size_pop), size=tourn_size)\n sel_index.append(max(aspirants_index, key=lambda i: FitV[i]))\n self.Chrom = self.Chrom[sel_index, :] # next generation\n return self.Chrom\n\n ranking = ranking.ranking\n\n\ndemo_func = lambda x: x[0] ** 2 + (x[1] - 0.05) ** 2 + (x[2] - 0.5) ** 2\nmy_ga = MyGA(func=demo_func, n_dim=3, size_pop=100, max_iter=500, lb=[-1, -10, -5], ub=[2, 10, 2],\n precision=[1e-7, 1e-7, 1])\nbest_x, best_y = my_ga.run()\nprint('best_x:', best_x, '\\n', 'best_y:', best_y)\n```\n\n## feature2: continue to run\n(New in version 0.3.6) \nRun an algorithm for 10 iterations, and then run another 20 iterations base on the 10 iterations before:\n```python\nfrom sko.GA import GA\n\nfunc = lambda x: x[0] ** 2\nga = GA(func=func, n_dim=1)\nga.run(10)\nga.run(20)\n```\n\n## feature3: 4-ways to accelerate\n- vectorization\n- multithreading\n- multiprocessing\n- cached\n\nsee [https://github.com/guofei9987/scikit-opt/blob/master/examples/example_function_modes.py](https://github.com/guofei9987/scikit-opt/blob/master/examples/example_function_modes.py)\n\n\n\n## feature4: GPU computation\n We are developing GPU computation, which will be stable on version 1.0.0 \nAn example is already available: [https://github.com/guofei9987/scikit-opt/blob/master/examples/demo_ga_gpu.py](https://github.com/guofei9987/scikit-opt/blob/master/examples/demo_ga_gpu.py)\n\n\n# Quick start\n\n## 1. Differential Evolution\n**Step1**\uff1adefine your problem \n-> Demo code: [examples/demo_de.py#s1](https://github.com/guofei9987/scikit-opt/blob/master/examples/demo_de.py#L1)\n```python\n'''\nmin f(x1, x2, x3) = x1^2 + x2^2 + x3^2\ns.t.\n x1*x2 >= 1\n x1*x2 <= 5\n x2 + x3 = 1\n 0 <= x1, x2, x3 <= 5\n'''\n\n\ndef obj_func(p):\n x1, x2, x3 = p\n return x1 ** 2 + x2 ** 2 + x3 ** 2\n\n\nconstraint_eq = [\n lambda x: 1 - x[1] - x[2]\n]\n\nconstraint_ueq = [\n lambda x: 1 - x[0] * x[1],\n lambda x: x[0] * x[1] - 5\n]\n\n```\n\n**Step2**: do Differential Evolution \n-> Demo code: [examples/demo_de.py#s2](https://github.com/guofei9987/scikit-opt/blob/master/examples/demo_de.py#L25)\n```python\nfrom sko.DE import DE\n\nde = DE(func=obj_func, n_dim=3, size_pop=50, max_iter=800, lb=[0, 0, 0], ub=[5, 5, 5],\n constraint_eq=constraint_eq, constraint_ueq=constraint_ueq)\n\nbest_x, best_y = de.run()\nprint('best_x:', best_x, '\\n', 'best_y:', best_y)\n\n```\n\n## 2. Genetic Algorithm\n\n**Step1**\uff1adefine your problem \n-> Demo code: [examples/demo_ga.py#s1](https://github.com/guofei9987/scikit-opt/blob/master/examples/demo_ga.py#L1)\n```python\nimport numpy as np\n\n\ndef schaffer(p):\n '''\n This function has plenty of local minimum, with strong shocks\n global minimum at (0,0) with value 0\n https://en.wikipedia.org/wiki/Test_functions_for_optimization\n '''\n x1, x2 = p\n part1 = np.square(x1) - np.square(x2)\n part2 = np.square(x1) + np.square(x2)\n return 0.5 + (np.square(np.sin(part1)) - 0.5) / np.square(1 + 0.001 * part2)\n\n\n```\n\n**Step2**: do Genetic Algorithm \n-> Demo code: [examples/demo_ga.py#s2](https://github.com/guofei9987/scikit-opt/blob/master/examples/demo_ga.py#L16)\n```python\nfrom sko.GA import GA\n\nga = GA(func=schaffer, n_dim=2, size_pop=50, max_iter=800, prob_mut=0.001, lb=[-1, -1], ub=[1, 1], precision=1e-7)\nbest_x, best_y = ga.run()\nprint('best_x:', best_x, '\\n', 'best_y:', best_y)\n```\n\n-> Demo code: [examples/demo_ga.py#s3](https://github.com/guofei9987/scikit-opt/blob/master/examples/demo_ga.py#L22)\n```python\nimport pandas as pd\nimport matplotlib.pyplot as plt\n\nY_history = pd.DataFrame(ga.all_history_Y)\nfig, ax = plt.subplots(2, 1)\nax[0].plot(Y_history.index, Y_history.values, '.', color='red')\nY_history.min(axis=1).cummin().plot(kind='line')\nplt.show()\n```\n\n![Figure_1-1](https://img1.github.io/heuristic_algorithm/ga_1.png)\n\n### 2.2 Genetic Algorithm for TSP(Travelling Salesman Problem)\nJust import the `GA_TSP`, it overloads the `crossover`, `mutation` to solve the TSP\n\n**Step1**: define your problem. Prepare your points coordinate and the distance matrix. \nHere I generate the data randomly as a demo: \n-> Demo code: [examples/demo_ga_tsp.py#s1](https://github.com/guofei9987/scikit-opt/blob/master/examples/demo_ga_tsp.py#L1)\n```python\nimport numpy as np\nfrom scipy import spatial\nimport matplotlib.pyplot as plt\n\nnum_points = 50\n\npoints_coordinate = np.random.rand(num_points, 2) # generate coordinate of points\ndistance_matrix = spatial.distance.cdist(points_coordinate, points_coordinate, metric='euclidean')\n\n\ndef cal_total_distance(routine):\n '''The objective function. input routine, return total distance.\n cal_total_distance(np.arange(num_points))\n '''\n num_points, = routine.shape\n return sum([distance_matrix[routine[i % num_points], routine[(i + 1) % num_points]] for i in range(num_points)])\n\n\n```\n\n**Step2**: do GA \n-> Demo code: [examples/demo_ga_tsp.py#s2](https://github.com/guofei9987/scikit-opt/blob/master/examples/demo_ga_tsp.py#L19)\n```python\n\nfrom sko.GA import GA_TSP\n\nga_tsp = GA_TSP(func=cal_total_distance, n_dim=num_points, size_pop=50, max_iter=500, prob_mut=1)\nbest_points, best_distance = ga_tsp.run()\n\n```\n\n**Step3**: Plot the result: \n-> Demo code: [examples/demo_ga_tsp.py#s3](https://github.com/guofei9987/scikit-opt/blob/master/examples/demo_ga_tsp.py#L26)\n```python\nfig, ax = plt.subplots(1, 2)\nbest_points_ = np.concatenate([best_points, [best_points[0]]])\nbest_points_coordinate = points_coordinate[best_points_, :]\nax[0].plot(best_points_coordinate[:, 0], best_points_coordinate[:, 1], 'o-r')\nax[1].plot(ga_tsp.generation_best_Y)\nplt.show()\n```\n\n![GA_TPS](https://img1.github.io/heuristic_algorithm/ga_tsp.png)\n\n\n## 3. PSO(Particle swarm optimization)\n\n### 3.1 PSO\n**Step1**: define your problem: \n-> Demo code: [examples/demo_pso.py#s1](https://github.com/guofei9987/scikit-opt/blob/master/examples/demo_pso.py#L1)\n```python\ndef demo_func(x):\n x1, x2, x3 = x\n return x1 ** 2 + (x2 - 0.05) ** 2 + x3 ** 2\n\n\n```\n\n**Step2**: do PSO \n-> Demo code: [examples/demo_pso.py#s2](https://github.com/guofei9987/scikit-opt/blob/master/examples/demo_pso.py#L6)\n```python\nfrom sko.PSO import PSO\n\npso = PSO(func=demo_func, n_dim=3, pop=40, max_iter=150, lb=[0, -1, 0.5], ub=[1, 1, 1], w=0.8, c1=0.5, c2=0.5)\npso.run()\nprint('best_x is ', pso.gbest_x, 'best_y is', pso.gbest_y)\n\n```\n\n**Step3**: Plot the result \n-> Demo code: [examples/demo_pso.py#s3](https://github.com/guofei9987/scikit-opt/blob/master/examples/demo_pso.py#L13)\n```python\nimport matplotlib.pyplot as plt\n\nplt.plot(pso.gbest_y_hist)\nplt.show()\n```\n\n\n![PSO_TPS](https://img1.github.io/heuristic_algorithm/pso.png)\n\n### 3.2 PSO with nonlinear constraint\n\nIf you need nolinear constraint like `(x[0] - 1) ** 2 + (x[1] - 0) ** 2 - 0.5 ** 2<=0` \nCodes are like this:\n```python\nconstraint_ueq = (\n lambda x: (x[0] - 1) ** 2 + (x[1] - 0) ** 2 - 0.5 ** 2\n ,\n)\npso = PSO(func=demo_func, n_dim=2, pop=40, max_iter=max_iter, lb=[-2, -2], ub=[2, 2]\n , constraint_ueq=constraint_ueq)\n```\n\nNote that, you can add more then one nonlinear constraint. Just add it to `constraint_ueq`\n\nMore over, we have an animation: \n![pso_ani](https://img1.github.io/heuristic_algorithm/pso.gif) \n\u2191**see [examples/demo_pso_ani.py](https://github.com/guofei9987/scikit-opt/blob/master/examples/demo_pso_ani.py)**\n\n\n## 4. SA(Simulated Annealing)\n### 4.1 SA for multiple function\n**Step1**: define your problem \n-> Demo code: [examples/demo_sa.py#s1](https://github.com/guofei9987/scikit-opt/blob/master/examples/demo_sa.py#L1)\n```python\ndemo_func = lambda x: x[0] ** 2 + (x[1] - 0.05) ** 2 + x[2] ** 2\n\n```\n**Step2**: do SA \n-> Demo code: [examples/demo_sa.py#s2](https://github.com/guofei9987/scikit-opt/blob/master/examples/demo_sa.py#L3)\n```python\nfrom sko.SA import SA\n\nsa = SA(func=demo_func, x0=[1, 1, 1], T_max=1, T_min=1e-9, L=300, max_stay_counter=150)\nbest_x, best_y = sa.run()\nprint('best_x:', best_x, 'best_y', best_y)\n\n```\n\n**Step3**: Plot the result \n-> Demo code: [examples/demo_sa.py#s3](https://github.com/guofei9987/scikit-opt/blob/master/examples/demo_sa.py#L10)\n```python\nimport matplotlib.pyplot as plt\nimport pandas as pd\n\nplt.plot(pd.DataFrame(sa.best_y_history).cummin(axis=0))\nplt.show()\n\n```\n![sa](https://img1.github.io/heuristic_algorithm/sa.png)\n\n\nMoreover, scikit-opt provide 3 types of Simulated Annealing: Fast, Boltzmann, Cauchy. See [more sa](https://scikit-opt.github.io/scikit-opt/#/en/more_sa)\n### 4.2 SA for TSP\n**Step1**: oh, yes, define your problems. To boring to copy this step. \n\n**Step2**: DO SA for TSP \n-> Demo code: [examples/demo_sa_tsp.py#s2](https://github.com/guofei9987/scikit-opt/blob/master/examples/demo_sa_tsp.py#L21)\n```python\nfrom sko.SA import SA_TSP\n\nsa_tsp = SA_TSP(func=cal_total_distance, x0=range(num_points), T_max=100, T_min=1, L=10 * num_points)\n\nbest_points, best_distance = sa_tsp.run()\nprint(best_points, best_distance, cal_total_distance(best_points))\n```\n\n**Step3**: plot the result \n-> Demo code: [examples/demo_sa_tsp.py#s3](https://github.com/guofei9987/scikit-opt/blob/master/examples/demo_sa_tsp.py#L28)\n```python\nfrom matplotlib.ticker import FormatStrFormatter\n\nfig, ax = plt.subplots(1, 2)\n\nbest_points_ = np.concatenate([best_points, [best_points[0]]])\nbest_points_coordinate = points_coordinate[best_points_, :]\nax[0].plot(sa_tsp.best_y_history)\nax[0].set_xlabel(\"Iteration\")\nax[0].set_ylabel(\"Distance\")\nax[1].plot(best_points_coordinate[:, 0], best_points_coordinate[:, 1],\n marker='o', markerfacecolor='b', color='c', linestyle='-')\nax[1].xaxis.set_major_formatter(FormatStrFormatter('%.3f'))\nax[1].yaxis.set_major_formatter(FormatStrFormatter('%.3f'))\nax[1].set_xlabel(\"Longitude\")\nax[1].set_ylabel(\"Latitude\")\nplt.show()\n\n```\n![sa](https://img1.github.io/heuristic_algorithm/sa_tsp.png)\n\n\nMore: Plot the animation: \n\n![sa](https://img1.github.io/heuristic_algorithm/sa_tsp1.gif) \n\u2191**see [examples/demo_sa_tsp.py](https://github.com/guofei9987/scikit-opt/blob/master/examples/demo_sa_tsp.py)**\n\n\n\n\n## 5. ACA (Ant Colony Algorithm) for tsp\n-> Demo code: [examples/demo_aca_tsp.py#s2](https://github.com/guofei9987/scikit-opt/blob/master/examples/demo_aca_tsp.py#L17)\n```python\nfrom sko.ACA import ACA_TSP\n\naca = ACA_TSP(func=cal_total_distance, n_dim=num_points,\n size_pop=50, max_iter=200,\n distance_matrix=distance_matrix)\n\nbest_x, best_y = aca.run()\n\n```\n\n![ACA](https://img1.github.io/heuristic_algorithm/aca_tsp.png)\n\n\n## 6. immune algorithm (IA)\n-> Demo code: [examples/demo_ia.py#s2](https://github.com/guofei9987/scikit-opt/blob/master/examples/demo_ia.py#L6)\n```python\n\nfrom sko.IA import IA_TSP\n\nia_tsp = IA_TSP(func=cal_total_distance, n_dim=num_points, size_pop=500, max_iter=800, prob_mut=0.2,\n T=0.7, alpha=0.95)\nbest_points, best_distance = ia_tsp.run()\nprint('best routine:', best_points, 'best_distance:', best_distance)\n\n```\n\n![IA](https://img1.github.io/heuristic_algorithm/ia2.png)\n\n## 7. Artificial Fish Swarm Algorithm (AFSA)\n-> Demo code: [examples/demo_afsa.py#s1](https://github.com/guofei9987/scikit-opt/blob/master/examples/demo_afsa.py#L1)\n```python\ndef func(x):\n x1, x2 = x\n return 1 / x1 ** 2 + x1 ** 2 + 1 / x2 ** 2 + x2 ** 2\n\n\nfrom sko.AFSA import AFSA\n\nafsa = AFSA(func, n_dim=2, size_pop=50, max_iter=300,\n max_try_num=100, step=0.5, visual=0.3,\n q=0.98, delta=0.5)\nbest_x, best_y = afsa.run()\nprint(best_x, best_y)\n```\n\n\n# Projects using scikit-opt\n\n- [Yu, J., He, Y., Yan, Q., & Kang, X. (2021). SpecView: Malware Spectrum Visualization Framework With Singular Spectrum Transformation. IEEE Transactions on Information Forensics and Security, 16, 5093-5107.](https://ieeexplore.ieee.org/abstract/document/9607026/)\n- [Zhen, H., Zhai, H., Ma, W., Zhao, L., Weng, Y., Xu, Y., ... & He, X. (2021). Design and tests of reinforcement-learning-based optimal power flow solution generator. Energy Reports.](https://www.sciencedirect.com/science/article/pii/S2352484721012737)\n- [Heinrich, K., Zschech, P., Janiesch, C., & Bonin, M. (2021). Process data properties matter: Introducing gated convolutional neural networks (GCNN) and key-value-predict attention networks (KVP) for next event prediction with deep learning. Decision Support Systems, 143, 113494.](https://www.sciencedirect.com/science/article/pii/S016792362100004X)\n- [Tang, H. K., & Goh, S. K. (2021). A Novel Non-population-based Meta-heuristic Optimizer Inspired by the Philosophy of Yi Jing. arXiv preprint arXiv:2104.08564.](https://arxiv.org/abs/2104.08564)\n- [Wu, G., Li, L., Li, X., Chen, Y., Chen, Z., Qiao, B., ... & Xia, L. (2021). Graph embedding based real-time social event matching for EBSNs recommendation. World Wide Web, 1-22.](https://link.springer.com/article/10.1007/s11280-021-00934-y)\n- [Pan, X., Zhang, Z., Zhang, H., Wen, Z., Ye, W., Yang, Y., ... & Zhao, X. (2021). A fast and robust mixture gases identification and concentration detection algorithm based on attention mechanism equipped recurrent neural network with double loss function. Sensors and Actuators B: Chemical, 342, 129982.](https://www.sciencedirect.com/science/article/abs/pii/S0925400521005517)\n- [Castella Balcell, M. (2021). Optimization of the station keeping system for the WindCrete floating offshore wind turbine.](https://upcommons.upc.edu/handle/2117/350262)\n- [Zhai, B., Wang, Y., Wang, W., & Wu, B. (2021). Optimal Variable Speed Limit Control Strategy on Freeway Segments under Fog Conditions. arXiv preprint arXiv:2107.14406.](https://arxiv.org/abs/2107.14406)\n- [Yap, X. H. (2021). Multi-label classification on locally-linear data: Application to chemical toxicity prediction.](https://etd.ohiolink.edu/apexprod/rws_olink/r/1501/10?clear=10&p10_accession_num=wright162901936395651)\n- [Gebhard, L. (2021). Expansion Planning of Low-Voltage Grids Using Ant Colony Optimization Ausbauplanung von Niederspannungsnetzen mithilfe eines Ameisenalgorithmus.](https://ad-publications.cs.uni-freiburg.de/theses/Master_Lukas_Gebhard_2021.pdf)\n- [Ma, X., Zhou, H., & Li, Z. (2021). Optimal Design for Interdependencies between Hydrogen and Power Systems. IEEE Transactions on Industry Applications.](https://ieeexplore.ieee.org/abstract/document/9585654)\n- [de Curso, T. D. C. (2021). Estudo do modelo Johansen-Ledoit-Sornette de bolhas financeiras.](https://d1wqtxts1xzle7.cloudfront.net/67649721/TCC_Thibor_Final-with-cover-page-v2.pdf?Expires=1639140872&Signature=LDZoVsAGO0mLMlVsQjnzpLlRhLyt5wdIDmBjm1yWog5bsx6apyRE9aHuwfnFnc96uvam573wiHMeV08QlK2vhRcQS1d0buenBT5fwoRuq6PTDoMsXmpBb-lGtu9ETiMb4sBYvcQb-X3C7Hh0Ec1FoJZ040gXJPWdAli3e1TdOcGrnOaBZMgNiYX6aKFIZaaXmiQeV3418~870bH4IOQXOapIE6-23lcOL-32T~FSjsOrENoLUkcosv6UHPourKgsRufAY-C2HBUWP36iJ7CoH0jSTo1e45dVgvqNDvsHz7tmeI~0UPGH-A8MWzQ9h2ElCbCN~UNQ8ycxOa4TUKfpCw__&Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA)\n- [Wu, T., Liu, J., Liu, J., Huang, Z., Wu, H., Zhang, C., ... & Zhang, G. (2021). A Novel AI-based Framework for AoI-optimal Trajectory Planning in UAV-assisted Wireless Sensor Networks. IEEE Transactions on Wireless Communications.](https://ieeexplore.ieee.org/abstract/document/9543607)\n- [Liu, H., Wen, Z., & Cai, W. (2021, August). FastPSO: Towards Efficient Swarm Intelligence Algorithm on GPUs. In 50th International Conference on Parallel Processing (pp. 1-10).](https://dl.acm.org/doi/abs/10.1145/3472456.3472474)\n- [Mahbub, R. (2020). Algorithms and Optimization Techniques for Solving TSP.](https://raiyanmahbub.com/images/Research_Paper.pdf)\n- [Li, J., Chen, T., Lim, K., Chen, L., Khan, S. A., Xie, J., & Wang, X. (2019). Deep learning accelerated gold nanocluster synthesis. Advanced Intelligent Systems, 1(3), 1900029.](https://onlinelibrary.wiley.com/doi/full/10.1002/aisy.201900029)\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/guofei9987/scikit-opt", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "scikit-opt", "package_url": "https://pypi.org/project/scikit-opt/", "platform": "linux", "project_url": "https://pypi.org/project/scikit-opt/", "project_urls": { "Homepage": "https://github.com/guofei9987/scikit-opt" }, "release_url": "https://pypi.org/project/scikit-opt/0.6.6/", "requires_dist": [ "numpy", "scipy" ], "requires_python": ">=3.5", "summary": "Swarm Intelligence in Python", "version": "0.6.6", "yanked": false, "yanked_reason": null }, "last_serial": 12571995, "releases": { "0.3.1": [ { "comment_text": "", "digests": { "md5": "5364c78c07bf56255b97244ff3b2e6cd", "sha256": "1963adaf43b0a42d233c2020d21ab32566f895e674e275189599e0b0a2a1c2f4" }, "downloads": -1, "filename": "scikit_opt-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "5364c78c07bf56255b97244ff3b2e6cd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4.0", "size": 16417, "upload_time": "2019-09-20T09:10:31", "upload_time_iso_8601": "2019-09-20T09:10:31.126411Z", "url": "https://files.pythonhosted.org/packages/02/70/d345818f77cfe310ea937267b06ed98a8c7912a9eb4edc28db349fcae54b/scikit_opt-0.3.1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "6bccc9cc01544373b66a14210c6e19b1", "sha256": "ab71d546999cfeb158da3aaa014e76d3f77015ce21fc9017e16d0bc8da91e9fb" }, "downloads": -1, "filename": "scikit_opt-0.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "6bccc9cc01544373b66a14210c6e19b1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4.0", "size": 17436, "upload_time": "2019-10-25T09:31:40", "upload_time_iso_8601": "2019-10-25T09:31:40.547455Z", "url": "https://files.pythonhosted.org/packages/d9/44/f31102fcc5d416e669d5c119f541566f97ea429ddbe62f2f76bce327edbd/scikit_opt-0.3.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "518aedfe102f369ff3ca7395b137ad17", "sha256": "41f5cf4e338f5561481ec3ae3e523ef7687f68e4ea9d8eea9ba0b041dd47abbd" }, "downloads": -1, "filename": "scikit-opt-0.3.2.tar.gz", "has_sig": false, "md5_digest": "518aedfe102f369ff3ca7395b137ad17", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4.0", "size": 13832, "upload_time": "2019-10-25T09:31:42", "upload_time_iso_8601": "2019-10-25T09:31:42.676000Z", "url": "https://files.pythonhosted.org/packages/8c/85/fcdb3359190b7a8f460016674b69f166895885ebf274e8837956c84b6814/scikit-opt-0.3.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "b5336758ee6c1c5857c0760ac2023180", "sha256": "f133dfd50a7b31e5a1f8b1785040bca4524bf9f57057a397787bc79a10cda7d1" }, "downloads": -1, "filename": "scikit_opt-0.3.3-py3-none-any.whl", "has_sig": false, "md5_digest": "b5336758ee6c1c5857c0760ac2023180", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4.0", "size": 19520, "upload_time": "2019-11-19T02:34:12", "upload_time_iso_8601": "2019-11-19T02:34:12.571680Z", "url": "https://files.pythonhosted.org/packages/c1/57/e11637081aaeafe038351fda7d49b3f7f7f8e01e8ad613b7b2f989db4e66/scikit_opt-0.3.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "c24f3af276c64cfecfc53f0186c15f7c", "sha256": "f38e11599d963c6c2774aba9cd25075897d72c52c8bd81f2e6f2461c8f956656" }, "downloads": -1, "filename": "scikit-opt-0.3.3.tar.gz", "has_sig": false, "md5_digest": "c24f3af276c64cfecfc53f0186c15f7c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4.0", "size": 16331, "upload_time": "2019-11-19T02:34:16", "upload_time_iso_8601": "2019-11-19T02:34:16.198788Z", "url": "https://files.pythonhosted.org/packages/27/e9/a2d3c280a7493f69ccecb7b66755513e7fa03279413a064b7ea60303b24b/scikit-opt-0.3.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "f40f56431755bbe74815b276c925e77c", "sha256": "f1bde74b36d161079ab51931b45984be5b5039570f9194565553d5625d8ccfb7" }, "downloads": -1, "filename": "scikit_opt-0.3.4-py3-none-any.whl", "has_sig": false, "md5_digest": "f40f56431755bbe74815b276c925e77c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4.0", "size": 20074, "upload_time": "2019-11-21T16:12:07", "upload_time_iso_8601": "2019-11-21T16:12:07.333640Z", "url": "https://files.pythonhosted.org/packages/f0/9d/3f4368c1e62f7025b74c599a839ce740c25b95d2ac4be6cdc5f8c50ff353/scikit_opt-0.3.4-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "751747fdb001e20d3ada7a07e56c2478", "sha256": "6dc5794413cfc676bd40910173232f2d049291909b5e4a466116bacc6c9de6ce" }, "downloads": -1, "filename": "scikit-opt-0.3.4.tar.gz", "has_sig": false, "md5_digest": "751747fdb001e20d3ada7a07e56c2478", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4.0", "size": 18063, "upload_time": "2019-11-21T16:12:11", "upload_time_iso_8601": "2019-11-21T16:12:11.054577Z", "url": "https://files.pythonhosted.org/packages/c7/de/27c7cece134fa3842562131c563e7a151209198d54ebe5790a84cc0d952a/scikit-opt-0.3.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.5": [ { "comment_text": "", "digests": { "md5": "27174907ac281d94614d1fbc74c3657b", "sha256": "bac5899dea4c52df426ab10b8bf83c1b92cddabb1199caa2286b7d2653528517" }, "downloads": -1, "filename": "scikit_opt-0.3.5-py3-none-any.whl", "has_sig": false, "md5_digest": "27174907ac281d94614d1fbc74c3657b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4.0", "size": 21342, "upload_time": "2019-11-25T13:21:26", "upload_time_iso_8601": "2019-11-25T13:21:26.205797Z", "url": "https://files.pythonhosted.org/packages/38/35/ee93af17916d8b4afe57a8fe66b7befab8306f47b2bc58184d13e40661f0/scikit_opt-0.3.5-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "37be8bc5737eb50020241ab5be7e5a9f", "sha256": "20540cf1d6f5a64f581a7fe97438aef268a7637e1aacfd2c0cd252ac51394197" }, "downloads": -1, "filename": "scikit-opt-0.3.5.tar.gz", "has_sig": false, "md5_digest": "37be8bc5737eb50020241ab5be7e5a9f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4.0", "size": 19613, "upload_time": "2019-11-25T13:21:29", "upload_time_iso_8601": "2019-11-25T13:21:29.552352Z", "url": "https://files.pythonhosted.org/packages/a3/6e/61b42a69c9b6f3c38f4f882c838d4096d97b6cbae4116c4201dd8edb39a7/scikit-opt-0.3.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "1295fc956db8423bdfb160e7060190c9", "sha256": "8c10bd99733ec6347f624fe727bc009cf34309385cb20640b80ab81ffccf63e8" }, "downloads": -1, "filename": "scikit_opt-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "1295fc956db8423bdfb160e7060190c9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 30374, "upload_time": "2019-12-02T09:31:49", "upload_time_iso_8601": "2019-12-02T09:31:49.672273Z", "url": "https://files.pythonhosted.org/packages/b1/c4/35919cabffc2b5c76a792fed3c0de3548a9eed3ed1a86f6f2a4d25a24680/scikit_opt-0.5.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "8988dc74b68ffce940f0a2746fe9f598", "sha256": "61a453a4446006dbf67b4cf8c52930a0e5ca6166c73a66e41b88efb1f4c13f3c" }, "downloads": -1, "filename": "scikit-opt-0.5.0.tar.gz", "has_sig": false, "md5_digest": "8988dc74b68ffce940f0a2746fe9f598", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 25015, "upload_time": "2019-12-02T09:31:52", "upload_time_iso_8601": "2019-12-02T09:31:52.024322Z", "url": "https://files.pythonhosted.org/packages/1f/31/8647a41ab8c86a88a8a4b4a15402958f9f6233ffaf000d5615f8c6a1bec5/scikit-opt-0.5.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "23b89cbb53ee9ed4e78977ec25afb123", "sha256": "16ce23358a6ba0212fe5b503a1985588c7c4ee7cd416ebae20a294eb583c08b0" }, "downloads": -1, "filename": "scikit_opt-0.5.2-py3-none-any.whl", "has_sig": false, "md5_digest": "23b89cbb53ee9ed4e78977ec25afb123", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 30456, "upload_time": "2019-12-22T07:18:59", "upload_time_iso_8601": "2019-12-22T07:18:59.484690Z", "url": "https://files.pythonhosted.org/packages/7f/81/f789a76fb450b796e98c6c2df591917ebeb9e177d6b229ffb07dce9a278a/scikit_opt-0.5.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "3b1afe118cd3bd5b292f9d95876df10c", "sha256": "53adb430fe95c9134a0c9659ba093cf4f4d78f59f624a2b84486e15017cf8240" }, "downloads": -1, "filename": "scikit-opt-0.5.2.tar.gz", "has_sig": false, "md5_digest": "3b1afe118cd3bd5b292f9d95876df10c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 25248, "upload_time": "2019-12-22T07:19:01", "upload_time_iso_8601": "2019-12-22T07:19:01.253031Z", "url": "https://files.pythonhosted.org/packages/ff/62/60e6d3ce3e3a630919c6909b329d0c0bcba38525470608a1e4dd4b487d21/scikit-opt-0.5.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.3": [ { "comment_text": "", "digests": { "md5": "a1b0372f59ec3dd836f2f9e8ee60cf0c", "sha256": "dc89209f042c6155bacf26c17d931e19c3a0a29980856a63d28aec04fa78f785" }, "downloads": -1, "filename": "scikit_opt-0.5.3-py3-none-any.whl", "has_sig": false, "md5_digest": "a1b0372f59ec3dd836f2f9e8ee60cf0c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 30676, "upload_time": "2019-12-23T18:41:55", "upload_time_iso_8601": "2019-12-23T18:41:55.527483Z", "url": "https://files.pythonhosted.org/packages/86/e9/1aa54fc762ae83579f344c5ed6430fa8b216e0dfa36111e83b64e1e53409/scikit_opt-0.5.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "66856e9139c1359b1e379d9e244c22ab", "sha256": "ebec4fc2eeddf8b0484c48470096fcf6db1c530401fcd78c83bd117051aa4102" }, "downloads": -1, "filename": "scikit-opt-0.5.3.tar.gz", "has_sig": false, "md5_digest": "66856e9139c1359b1e379d9e244c22ab", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 25252, "upload_time": "2019-12-23T18:41:57", "upload_time_iso_8601": "2019-12-23T18:41:57.446497Z", "url": "https://files.pythonhosted.org/packages/41/f0/6532440283dacc72d899bd92e80d12ddef21fa7a490d0713bfbbede99fe4/scikit-opt-0.5.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.4": [ { "comment_text": "", "digests": { "md5": "fcbb42a7745f9f98d3bcb77dd8057860", "sha256": "658e1cb1b95eadcfcbe64b368d75c26a9e119748be61ad83829065877a8091bc" }, "downloads": -1, "filename": "scikit_opt-0.5.4-py3-none-any.whl", "has_sig": false, "md5_digest": "fcbb42a7745f9f98d3bcb77dd8057860", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 30702, "upload_time": "2019-12-26T12:27:05", "upload_time_iso_8601": "2019-12-26T12:27:05.768977Z", "url": "https://files.pythonhosted.org/packages/37/4b/0018e4acf81b983953abd25bd5c698a313d2dd4003941fbc597df01828d9/scikit_opt-0.5.4-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "f272f47a91f9839aa67e824ecec405dd", "sha256": "3da700db96b2472283e9e274aaa25bb8e870d98664e07d313c1dc00e767e9c46" }, "downloads": -1, "filename": "scikit-opt-0.5.4.tar.gz", "has_sig": false, "md5_digest": "f272f47a91f9839aa67e824ecec405dd", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 25265, "upload_time": "2019-12-26T12:27:08", "upload_time_iso_8601": "2019-12-26T12:27:08.107576Z", "url": "https://files.pythonhosted.org/packages/03/2e/2a83bed45bfb262505362f318d75e7c67fa62b7c538909831d16c5a43d51/scikit-opt-0.5.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.5": [ { "comment_text": "", "digests": { "md5": "1eed56db1b01f3b011cff5b8c1ff5b59", "sha256": "a32aa0ef5ffd986c1dd543f8625b647b1c6ef0742f8b14f7d89b93d746a7ad45" }, "downloads": -1, "filename": "scikit_opt-0.5.5-py3-none-any.whl", "has_sig": false, "md5_digest": "1eed56db1b01f3b011cff5b8c1ff5b59", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 32869, "upload_time": "2020-01-31T17:27:57", "upload_time_iso_8601": "2020-01-31T17:27:57.128903Z", "url": "https://files.pythonhosted.org/packages/86/25/38f81eb4bb81ef21814494a263631fd281a689d1625a88c195d5de8747ac/scikit_opt-0.5.5-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "59e6a010afc9535ad4ad4e71bf1d68bc", "sha256": "fdb6bda513382faf9160dc9acf07b9216a0230da3d04d956c351e1cb220fc4f5" }, "downloads": -1, "filename": "scikit-opt-0.5.5.tar.gz", "has_sig": false, "md5_digest": "59e6a010afc9535ad4ad4e71bf1d68bc", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 26325, "upload_time": "2020-01-31T17:27:58", "upload_time_iso_8601": "2020-01-31T17:27:58.887931Z", "url": "https://files.pythonhosted.org/packages/1f/20/769d480e9b5c4ca902af7955315eb29ec6aeffd1e85a7bfdfa7bcf39c52b/scikit-opt-0.5.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.6": [ { "comment_text": "", "digests": { "md5": "e21db8b19a5bcdd6f1eac74953e81c44", "sha256": "2d02558c5a0e5d1bb148490bfbca1a458fb56772c60246e9355f820a6be0fdac" }, "downloads": -1, "filename": "scikit_opt-0.5.6-py3-none-any.whl", "has_sig": false, "md5_digest": "e21db8b19a5bcdd6f1eac74953e81c44", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 27030, "upload_time": "2020-04-18T15:25:37", "upload_time_iso_8601": "2020-04-18T15:25:37.350264Z", "url": "https://files.pythonhosted.org/packages/d5/7b/0dd4d95e82749ede54654f5b802014b283a479c1161b828552a46a3c2572/scikit_opt-0.5.6-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "5d843bb6e6c2aaf4afa2c5d723de38b7", "sha256": "288dd1c4e27be972dbaa2f63ff04025461c7cee71466aeaec57caf7620bb61c9" }, "downloads": -1, "filename": "scikit-opt-0.5.6.tar.gz", "has_sig": false, "md5_digest": "5d843bb6e6c2aaf4afa2c5d723de38b7", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 22044, "upload_time": "2020-04-18T15:25:39", "upload_time_iso_8601": "2020-04-18T15:25:39.935545Z", "url": "https://files.pythonhosted.org/packages/0f/f3/a5e631a84f63800f0a04a03bbedeae3e612ed54821d34947c9d2ba4697bc/scikit-opt-0.5.6.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.7": [ { "comment_text": "", "digests": { "md5": "ce1838149c7206d6edea62bba7da234c", "sha256": "2161013139f0f935d831cf30489f1f6ba15fe1e467161d2c04f1d81b68b710fb" }, "downloads": -1, "filename": "scikit_opt-0.5.7-py3-none-any.whl", "has_sig": false, "md5_digest": "ce1838149c7206d6edea62bba7da234c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 27047, "upload_time": "2020-06-08T16:34:28", "upload_time_iso_8601": "2020-06-08T16:34:28.524604Z", "url": "https://files.pythonhosted.org/packages/07/6a/5788e4b67dead680c38b908fa7f30251231e868b0a8eb1eb157425a219cd/scikit_opt-0.5.7-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "97ad6d2efcbad23a94cb0b7ce8eb3cc9", "sha256": "1ee3ac34cb0c8c898a0a3ee2974538b4145fc97bc6916184ed41156499d0fae4" }, "downloads": -1, "filename": "scikit-opt-0.5.7.tar.gz", "has_sig": false, "md5_digest": "97ad6d2efcbad23a94cb0b7ce8eb3cc9", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 27574, "upload_time": "2020-06-08T16:34:31", "upload_time_iso_8601": "2020-06-08T16:34:31.347773Z", "url": "https://files.pythonhosted.org/packages/b5/a3/5d73492b49075d1cf7645dc14dc3cb448855f853dd55fcaaa4e25c9eb1bc/scikit-opt-0.5.7.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.9": [ { "comment_text": "", "digests": { "md5": "19f8396be66846f6f75c5dafb910a7ec", "sha256": "fe30fefe34e07cc5dfd25608115a81b4623dcfa6bde34c4fa85cb8446de09b15" }, "downloads": -1, "filename": "scikit_opt-0.5.9-py3-none-any.whl", "has_sig": false, "md5_digest": "19f8396be66846f6f75c5dafb910a7ec", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 27354, "upload_time": "2020-08-29T08:07:19", "upload_time_iso_8601": "2020-08-29T08:07:19.806186Z", "url": "https://files.pythonhosted.org/packages/a8/8d/091971b7f1cefe4acfc5e207d7014c8afdf9d11b61bd5a41085e4347b378/scikit_opt-0.5.9-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "9e4e420ab08cd14946a5dedbdd9fb57f", "sha256": "c0ef84253ba51f2a79f417abb07b8af824f01d8bb5a3c5acca642cabfd582eb6" }, "downloads": -1, "filename": "scikit-opt-0.5.9.tar.gz", "has_sig": false, "md5_digest": "9e4e420ab08cd14946a5dedbdd9fb57f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 29485, "upload_time": "2020-08-29T08:07:21", "upload_time_iso_8601": "2020-08-29T08:07:21.842782Z", "url": "https://files.pythonhosted.org/packages/61/be/6cb2cbac7ed4eb8db7d8053a4cf218ca9113ebfe0c8fd303b3629f0b1aa1/scikit-opt-0.5.9.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "98de4e222a95d1f66a227a8bc1c55317", "sha256": "56f5ce5844bd485236da550fb9b1f87f5818aad40186ac9037d2f8ce2b02090d" }, "downloads": -1, "filename": "scikit_opt-0.6.1-py3-none-any.whl", "has_sig": false, "md5_digest": "98de4e222a95d1f66a227a8bc1c55317", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 27824, "upload_time": "2020-11-20T12:52:22", "upload_time_iso_8601": "2020-11-20T12:52:22.863473Z", "url": "https://files.pythonhosted.org/packages/70/42/d537978bbc09571bd2adc45335e674e1b916a31c9faa90cc97fe6faf5793/scikit_opt-0.6.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "1e3e96aaac6045844a987c475a8daaf1", "sha256": "6a5e5e95b66d298689d3a1340371c7dcc4f28b544bee8cf5a1a842dddca435dd" }, "downloads": -1, "filename": "scikit-opt-0.6.1.tar.gz", "has_sig": false, "md5_digest": "1e3e96aaac6045844a987c475a8daaf1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 29977, "upload_time": "2020-11-20T12:52:26", "upload_time_iso_8601": "2020-11-20T12:52:26.142067Z", "url": "https://files.pythonhosted.org/packages/b3/2a/1e5bbf47e60dcfb5194ab01ba3e36d61b9aa5473ceb00005c014328ec3fe/scikit-opt-0.6.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.2": [ { "comment_text": "", "digests": { "md5": "2c8ac22f9e21e2375d1d8c6588996359", "sha256": "7e0cab73a6c977b29151a418a36221622611b77af38ed01ca2eb04d3ff746225" }, "downloads": -1, "filename": "scikit_opt-0.6.2-py3-none-any.whl", "has_sig": false, "md5_digest": "2c8ac22f9e21e2375d1d8c6588996359", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 28692, "upload_time": "2021-03-13T12:39:36", "upload_time_iso_8601": "2021-03-13T12:39:36.864845Z", "url": "https://files.pythonhosted.org/packages/ba/55/9e8f0f56e99d729655fd9929e69f4f8322e2ab794ff2b3afdf2ea8bd19a6/scikit_opt-0.6.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "2d6bc51bd2449a9ac695be47a6ce94ee", "sha256": "05008fdb855c1e1c50c6eb5d26d7968256a5620bc7922a32823536b19456b708" }, "downloads": -1, "filename": "scikit-opt-0.6.2.tar.gz", "has_sig": false, "md5_digest": "2d6bc51bd2449a9ac695be47a6ce94ee", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 32020, "upload_time": "2021-03-13T12:39:38", "upload_time_iso_8601": "2021-03-13T12:39:38.728154Z", "url": "https://files.pythonhosted.org/packages/0a/06/b0bf0318d45a3c5fc793024b7c6a478d1526828a24980693b4b95b74621e/scikit-opt-0.6.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.3": [ { "comment_text": "", "digests": { "md5": "b5118b39be26daf30532b8f58ef4d971", "sha256": "42633a53009a4e3991bf74750b72eb3abdfe2b4ae19797b49f6036b94ad88340" }, "downloads": -1, "filename": "scikit_opt-0.6.3-py3-none-any.whl", "has_sig": false, "md5_digest": "b5118b39be26daf30532b8f58ef4d971", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 29092, "upload_time": "2021-03-27T15:27:39", "upload_time_iso_8601": "2021-03-27T15:27:39.301555Z", "url": "https://files.pythonhosted.org/packages/37/a4/b2e587e5930a5b9d6035c0a34fd66da52b7ff8bd553a876aca1bd6abcfa1/scikit_opt-0.6.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "21b522e3c368a133bc80b78689d4d7a7", "sha256": "c7f1e59c0b2d61c8360c1bd85d9ce4c26cd4cbc36dc23f6a3e3248774bdb3b8a" }, "downloads": -1, "filename": "scikit-opt-0.6.3.tar.gz", "has_sig": false, "md5_digest": "21b522e3c368a133bc80b78689d4d7a7", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 32330, "upload_time": "2021-03-27T15:27:41", "upload_time_iso_8601": "2021-03-27T15:27:41.118421Z", "url": "https://files.pythonhosted.org/packages/1f/87/1d498f8b10c5e84d51a88bd77a6c1e6d20c0828461c13d8f30d0de7f61df/scikit-opt-0.6.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.4": [ { "comment_text": "", "digests": { "md5": "b55d5060db7b47d899a5303fdfc4649d", "sha256": "f2c26dbccb337beb8c75c524f791ff95d5b974ffa50359bcf9d167269c1019ae" }, "downloads": -1, "filename": "scikit_opt-0.6.4-py3-none-any.whl", "has_sig": false, "md5_digest": "b55d5060db7b47d899a5303fdfc4649d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 29071, "upload_time": "2021-06-05T10:19:25", "upload_time_iso_8601": "2021-06-05T10:19:25.359815Z", "url": "https://files.pythonhosted.org/packages/54/68/9e412721e6d14a96374fdfe6e22f251cc582900d7b9757bc7981ed163a77/scikit_opt-0.6.4-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "976cb37b97b3b014ee16d4bb0b0adc85", "sha256": "e2a2ff0dc322209c7c1a8b6643c938c54d22cb4634a6589a93a7083ebc0d1a96" }, "downloads": -1, "filename": "scikit-opt-0.6.4.tar.gz", "has_sig": false, "md5_digest": "976cb37b97b3b014ee16d4bb0b0adc85", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 33835, "upload_time": "2021-06-05T10:19:27", "upload_time_iso_8601": "2021-06-05T10:19:27.300017Z", "url": "https://files.pythonhosted.org/packages/46/66/a914dd18cfff00b3088139e33b51645e5333d218401273c2be07c6b8b65f/scikit-opt-0.6.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.5": [ { "comment_text": "", "digests": { "md5": "f4a28a97f1829336d71468321722771f", "sha256": "89f68641a65a703fb3c543f6636db14f9bcf512b872735057257e36c51db3175" }, "downloads": -1, "filename": "scikit_opt-0.6.5-py3-none-any.whl", "has_sig": false, "md5_digest": "f4a28a97f1829336d71468321722771f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 29711, "upload_time": "2021-06-28T12:36:56", "upload_time_iso_8601": "2021-06-28T12:36:56.520918Z", "url": "https://files.pythonhosted.org/packages/67/dd/fd0e0a89d5ceded2495a98228c38362a6fa9c1a6bb9a015fd682afb43d97/scikit_opt-0.6.5-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "575b844cb2b4c5a73a8e88c8822be2c7", "sha256": "5015d08864adfbb3c7b56a86f33be294a7e48ebfb6ab12edfed3b498344e744f" }, "downloads": -1, "filename": "scikit-opt-0.6.5.tar.gz", "has_sig": false, "md5_digest": "575b844cb2b4c5a73a8e88c8822be2c7", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 34298, "upload_time": "2021-06-28T12:36:58", "upload_time_iso_8601": "2021-06-28T12:36:58.435858Z", "url": "https://files.pythonhosted.org/packages/3f/f9/ec3b4b3590a7a77cfa9dee835e856c6fe8337acb7f783eea92ee38bd4500/scikit-opt-0.6.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.6": [ { "comment_text": "", "digests": { "md5": "0b753fca0593ec836218020c0aa74e36", "sha256": "dd83d33d6748a0c8d4962c241493875f7e1b39eeea17251c6b1f94d5bff79069" }, "downloads": -1, "filename": "scikit_opt-0.6.6-py3-none-any.whl", "has_sig": false, "md5_digest": "0b753fca0593ec836218020c0aa74e36", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 35079, "upload_time": "2022-01-14T08:49:08", "upload_time_iso_8601": "2022-01-14T08:49:08.015592Z", "url": "https://files.pythonhosted.org/packages/57/b6/a35676427b36636e4a408f1dca346b30b803ed278e91887465366e41fcf2/scikit_opt-0.6.6-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "8575064094d238ee341cf1da39f2aaef", "sha256": "3e620789d16a0552f0893497be81c53f75171cfcf0aec0b43a051fa9df8f9879" }, "downloads": -1, "filename": "scikit-opt-0.6.6.tar.gz", "has_sig": false, "md5_digest": "8575064094d238ee341cf1da39f2aaef", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 41720, "upload_time": "2022-01-14T08:49:10", "upload_time_iso_8601": "2022-01-14T08:49:10.840468Z", "url": "https://files.pythonhosted.org/packages/59/63/eb0c1c56d7de607cdf93f3ba96e8c631f2da2e734ec32fd7a667fb8594a9/scikit-opt-0.6.6.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0b753fca0593ec836218020c0aa74e36", "sha256": "dd83d33d6748a0c8d4962c241493875f7e1b39eeea17251c6b1f94d5bff79069" }, "downloads": -1, "filename": "scikit_opt-0.6.6-py3-none-any.whl", "has_sig": false, "md5_digest": "0b753fca0593ec836218020c0aa74e36", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 35079, "upload_time": "2022-01-14T08:49:08", "upload_time_iso_8601": "2022-01-14T08:49:08.015592Z", "url": "https://files.pythonhosted.org/packages/57/b6/a35676427b36636e4a408f1dca346b30b803ed278e91887465366e41fcf2/scikit_opt-0.6.6-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "8575064094d238ee341cf1da39f2aaef", "sha256": "3e620789d16a0552f0893497be81c53f75171cfcf0aec0b43a051fa9df8f9879" }, "downloads": -1, "filename": "scikit-opt-0.6.6.tar.gz", "has_sig": false, "md5_digest": "8575064094d238ee341cf1da39f2aaef", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 41720, "upload_time": "2022-01-14T08:49:10", "upload_time_iso_8601": "2022-01-14T08:49:10.840468Z", "url": "https://files.pythonhosted.org/packages/59/63/eb0c1c56d7de607cdf93f3ba96e8c631f2da2e734ec32fd7a667fb8594a9/scikit-opt-0.6.6.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }