{"id":45269503,"url":"https://github.com/siyamakdoroudi/mootlbo-optimization","last_synced_at":"2026-02-21T01:01:12.903Z","repository":{"id":274461229,"uuid":"922432299","full_name":"siyamakdoroudi/MOOTLBO-Optimization","owner":"siyamakdoroudi","description":"Multi-Objective Optimization using MOOTLBO algorithm for solving complex optimization problems.","archived":false,"fork":false,"pushed_at":"2025-02-16T08:21:15.000Z","size":3137,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-16T09:21:25.296Z","etag":null,"topics":["metaheuristic","mootlbo","multi-objective","optimization-algorithms"],"latest_commit_sha":null,"homepage":"","language":"MATLAB","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/siyamakdoroudi.png","metadata":{"files":{"readme":"readme.txt","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2025-01-26T07:24:17.000Z","updated_at":"2025-02-16T08:21:19.000Z","dependencies_parsed_at":null,"dependency_job_id":"7deece4c-28a0-4c58-b20d-23ce5bd8a348","html_url":"https://github.com/siyamakdoroudi/MOOTLBO-Optimization","commit_stats":null,"previous_names":["siyamakdoroudi/-mootlbo-multi-objective-observer-teacher-learner-based-optimization","siyamakdoroudi/mootlbo","siyamakdoroudi/mootlbo-optimization"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/siyamakdoroudi/MOOTLBO-Optimization","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/siyamakdoroudi%2FMOOTLBO-Optimization","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/siyamakdoroudi%2FMOOTLBO-Optimization/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/siyamakdoroudi%2FMOOTLBO-Optimization/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/siyamakdoroudi%2FMOOTLBO-Optimization/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/siyamakdoroudi","download_url":"https://codeload.github.com/siyamakdoroudi/MOOTLBO-Optimization/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/siyamakdoroudi%2FMOOTLBO-Optimization/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29669841,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-21T00:11:43.526Z","status":"ssl_error","status_checked_at":"2026-02-20T23:52:33.807Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["metaheuristic","mootlbo","multi-objective","optimization-algorithms"],"created_at":"2026-02-21T01:00:25.032Z","updated_at":"2026-02-21T01:01:12.840Z","avatar_url":"https://github.com/siyamakdoroudi.png","language":"MATLAB","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MOOTLBO: Multi-Objective Observer–Teacher–Learner-Based Optimization\r\n\r\nThis repository contains the MATLAB implementation of the **MOOTLBO algorithm**, a multi-objective optimization method designed to solve complex optimization problems efficiently. The repository includes the algorithm's source code, detailed descriptions of its components, and examples for running it on benchmark problems.\r\n\r\n## Overview\r\nThe MOOTLBO algorithm builds upon the Observer-Teacher-Learner-Based Optimization (OTLBO) framework and introduces:\r\n- **Pareto-Dominance Mechanism**: Ensures high-quality non-dominated solutions.\r\n- **Grid-Based Diversity Maintenance**: Enhances exploration of the solution space.\r\n- **Flexible Parameterization**: Allows easy adaptation to various problems.\r\n\r\nThe algorithm has been tested on CEC 2009 benchmark problems such as UF2 and UF4.\r\n\r\n## Features\r\n- Handles multi-objective optimization problems effectively.\r\n- External archive for storing non-dominated solutions.\r\n- Provides robust solutions for benchmark and real-world problems.\r\n\r\n## How to Use\r\n### Prerequisites\r\n- MATLAB R2020b or later.\r\n\r\n### Steps to Run\r\n1. Clone this repository or download the files as a ZIP archive.\r\n2. Extract the files into a folder.\r\n3. Open MATLAB and navigate to the folder containing the files.\r\n4. Run the main script `MOTLBO.m`.\r\n\r\n### Example\r\nModify the `TestProblem` variable in `MOTLBO.m` to select a benchmark problem:\r\n```matlab\r\nTestProblem = 'UF2';  % Choose 'UF2' or 'UF4'\r\n```\r\nRun the script to execute the algorithm and visualize the Pareto front.\r\n\r\n## Files in This Repository\r\nThe repository contains the following key files:\r\n\r\n### Main Script\r\n1. **MOTLBO.m**: The main script for running the MOOTLBO algorithm.\r\n\r\n### Functions\r\n2. **Parametersfinal.m**: Defines the algorithm's parameters for specific benchmark problems.\r\n3. **CreateEmptyIndividual.m**: Initializes the structure for individuals in the population.\r\n4. **DetermineDomination.m**: Identifies non-dominated solutions in the population.\r\n5. **Dominates.m**: Checks if one solution dominates another.\r\n6. **GetNonDominatedPop.m**: Extracts non-dominated solutions from the population.\r\n7. **GetCosts.m**: Retrieves cost (objective) values from the population.\r\n8. **xboundary.m**: Defines boundaries for decision variables in benchmark problems.\r\n9. **CreateHypercubes.m**: Creates hypercubes for diversity maintenance.\r\n10. **GetGridIndex.m**: Assigns solutions to grid cells based on their objectives.\r\n11. **Mutate.m**: Performs mutation operations to generate new solutions.\r\n12. **GetMean.m**: Computes the mean of the population's positions.\r\n13. **SelectLeader.m**: Selects leaders from the external archive using a roulette wheel mechanism.\r\n14. **Createnewsol.m**: Generates a new solution by applying the teaching phase.\r\n15. **Clipping.m**: Ensures solutions stay within valid boundaries.\r\n16. **CreateObserver.m**: Creates an observer solution for the algorithm's observer phase.\r\n17. **CreateStep.m**: Generates the step size for the learner phase.\r\n18. **RouletteWheelSelection.m**: Implements the roulette wheel selection mechanism.\r\n\r\n### Benchmark Problem Implementation\r\n19. **cec09.m**: Defines benchmark problems (e.g., UF2, UF4) from CEC 2009.\r\n\r\n## Citation\r\nIf you use this repository, please cite the original paper:\r\n\r\n```\r\n## Citation\r\nIf you find our work useful, please cite the original paper:\r\n\r\nDoroudi, S., Sharafati, A., Mohajeri, S. H. (2023). \"MOOTLBO: a new multi-objective observer-teacher-learner-based optimization\". \r\n*Soft Computing*. [DOI: 10.1007/s00500-023-08603-0](https://doi.org/10.1007/s00500-023-08603-0)\r\n\r\n```\r\n\r\n\r\n## Contact\r\nFor questions or issues, please contact:\r\n- Siyamak Doroudi: siyamak.doroudi@yahoo.com\r\n\r\n\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsiyamakdoroudi%2Fmootlbo-optimization","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsiyamakdoroudi%2Fmootlbo-optimization","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsiyamakdoroudi%2Fmootlbo-optimization/lists"}