{"id":24112437,"url":"https://github.com/eigenzy/cmpso","last_synced_at":"2025-02-28T07:27:27.825Z","repository":{"id":268331237,"uuid":"903995554","full_name":"eigenzy/CMPSO","owner":"eigenzy","description":"Coevolutionary Multi-Objective Particle Swarm Optimization [MATLAB]","archived":false,"fork":false,"pushed_at":"2025-01-04T21:47:09.000Z","size":18,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-01-04T22:25:28.412Z","etag":null,"topics":["matlab","multiobjective-optimization","optimization","particle-swarm-optimization"],"latest_commit_sha":null,"homepage":"","language":"MATLAB","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eigenzy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-16T03:42:14.000Z","updated_at":"2025-01-04T21:47:13.000Z","dependencies_parsed_at":"2024-12-16T05:25:28.062Z","dependency_job_id":"bd2afe0a-f043-407c-be46-9b7141323019","html_url":"https://github.com/eigenzy/CMPSO","commit_stats":null,"previous_names":["eigenzy/cmpso"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eigenzy%2FCMPSO","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eigenzy%2FCMPSO/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eigenzy%2FCMPSO/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eigenzy%2FCMPSO/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eigenzy","download_url":"https://codeload.github.com/eigenzy/CMPSO/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241118164,"owners_count":19912681,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["matlab","multiobjective-optimization","optimization","particle-swarm-optimization"],"created_at":"2025-01-11T03:31:43.498Z","updated_at":"2025-02-28T07:27:27.801Z","avatar_url":"https://github.com/eigenzy.png","language":"MATLAB","readme":"# Coevolutionary Multiobjective Particle Swarm Optimization (CMPSO) [1]\n\n## Disclaimer:\n- This repository acts as an implementation of the authors' [1] work in MATLAB.\n- Ensure to download all MATLAB files as they are essential *functions* for the execution of *CMPSO.m*. \n\n## Introduction:\n\nInspired by Zhan et al., the CMPSO algorithm runs a regular particle swarm optimization scheme on multiple swarms (swarm size = number of objectives) and introduces an information sharing algorithm which outputs a set of non-dominated solutions in the ***Archive*** matrix in the code. \n\nFurther information about the methodology of the algorithm can be found in the reference paper.\n\n## Table of Variables\n| **Variable** | **Definition** | \n|----------|----------|\n| var   | Number of optimization variables   | \n| varsize   | Row vector form of solution   | \n| swarms  | Number of objectives | \n| NA  | Max Archive size | \n| xmax  | Upper Limit of Search Space | \n| xmin  | Lower Limit of Search Space | \n| vlim  | Velocity Limit | \n| iterations  | Number of Iterations | \n| particles  | Number of Particles | \n| wmin  | Minimum Inertia | \n| wmax  | Maximum Inertia | \n| co1  | Personal Acceleration Coeff | \n| co2  | Social Acceleration Coeff | \n| co3  | Archive Acceleration Coeff | \n| particle  | Cell template of swarms | \n| GlobalBestEF  | Global Best Evaluation for Isolated Objectives | \n| GlobalBestPos  | Global Best Position for Isolated Objectives | \n| BestEF  | Best Evaluation at Each Iteration for Isolated Objectives | \n| Archive  | Pareto Set | \n| ArchEF  | Pareto Front | \n| BP  | Stores Best Positions across all swarms for the algorithm | \n| BP_EF  | Stores Best Positions' Evaluation across all swarms for the algorithm | \n| wasemptyArch | Checks if the Archive is empty |\n\n## Table of Functions\n| **Function** | **Definition** | \n|----------|----------|\n| sat   | Limit a matrix of solutions to **upperlimit** and **lowerlimit** which must be row vectors   | \n| els   | Elitist Learning Strategy [1]   | \n| nondom_sol  | Extracts Non-dominated Solutions and their Positions | \n| dbs  | Density-Based Selection [1] |\n\n## ***Evaluation Function***:\nLine 32 of CMPSO.m must be set to the evaluation function, create your MATLAB function that takes in **positions** and **swarms** and returns an evaluation of said **positions**.\n- **positions**: matrix of input solutions (each row is a solution)\n\nA *for* loop should be used to analyse the evaluation for each row of the **positions** input. \n\n## Example:\n\n***cone_ef.m*** showcases the evaluation function for this example.\n\n*Reference*: https://www.math.unipd.it/~marcuzzi/DIDATTICA/LEZ\u0026ESE_PIAI_Matematica/3_cones.pdf\n\n*Problem Statement*: \n- Input variables: radius and height of cone [r,h]\n- Objectives: minimize Lateral Surface Area (S) and Total Area (T) [S,T]\n- Constraint: Volume\u003e200 cm^3\n\n*Results*:\n- Using 10 particles and 10 iterations:\n![Pareto Front](https://github.com/user-attachments/assets/4ab91ac0-647c-4d6f-9275-98811381e334)\n\n\n\n## Reference:\n[1] Multiple Populations for Multiple Objectives: A Coevolutionary Technique for Solving Multiobjective Optimization Problems (Zhi-Hui Zhan, Jingjing Li, Jiannong Cao, Jun Zhang, Henry Shu-Hung Chung and Yu-Hui Shi) 2013\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feigenzy%2Fcmpso","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feigenzy%2Fcmpso","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feigenzy%2Fcmpso/lists"}