{"id":21186531,"url":"https://github.com/thieu1995/ifcb","last_synced_at":"2025-08-24T09:18:50.679Z","repository":{"id":89965876,"uuid":"327176573","full_name":"thieu1995/IFCB","owner":"thieu1995","description":"(Code) Multi-objective Sparrow Search Optimization for Task Scheduling in Fog-Cloud-Blockchain Systems","archived":false,"fork":false,"pushed_at":"2023-10-17T14:16:18.000Z","size":83260,"stargazers_count":16,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-09-20T00:22:30.421Z","etag":null,"topics":["blockchain-network","cloud-fog","generational-distance","hyperarea-ratio","hypervolume","iot-device","multiobjective-optimization","pareto-front","peer-to-peer","reference-front","spacing-to-extent","sparrow-search-optimization","task-scheduling"],"latest_commit_sha":null,"homepage":"https://doi.org/10.1109/SCC53864.2021.00065","language":"Python","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/thieu1995.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}},"created_at":"2021-01-06T02:25:01.000Z","updated_at":"2024-07-25T19:31:22.000Z","dependencies_parsed_at":"2023-05-15T22:15:22.733Z","dependency_job_id":null,"html_url":"https://github.com/thieu1995/IFCB","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thieu1995%2FIFCB","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thieu1995%2FIFCB/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thieu1995%2FIFCB/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thieu1995%2FIFCB/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thieu1995","download_url":"https://codeload.github.com/thieu1995/IFCB/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225608444,"owners_count":17495909,"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":["blockchain-network","cloud-fog","generational-distance","hyperarea-ratio","hypervolume","iot-device","multiobjective-optimization","pareto-front","peer-to-peer","reference-front","spacing-to-extent","sparrow-search-optimization","task-scheduling"],"created_at":"2024-11-20T18:24:17.090Z","updated_at":"2024-11-20T18:24:17.874Z","avatar_url":"https://github.com/thieu1995.png","language":"Python","readme":"# IFCB\nThe implementation for paper IoTs Fog-Cloud combining with Blockchain technology\n\nMulti-objective Sparrow Search Optimization For Task Scheduling in Fog-Cloud Incorporate Blockchain Network\n\n# How to run\n```code \n1. main_single_objective.py\n- For single objective only\n\n2. test_nsga_ii.py\n- For pareto-front (multi-objective)\n\n3. data_generator.py\n- Generate fog-cloud-blockchain architecture.\n\n4. config.py\n- Config for the whole project\n\n\n\n```\n\n# Notes\n\n```code \n- Cloud latency stats:\n    http://cloudharmony.com/speedtest-for-aws:ec2\n- Cloud cost stats:\n    https://www.datamation.com/cloud-computing/cloud-costs.html\n    \nComputation: 0.07$ - 1 hour - 2GB RAM \n==\u003e 1s -\u003e 3600 * 2 * 1000 000 000 = 7200 000 000 000 - 0.07$\n==\u003e 1 Byte: 9.7e-15$ \n\nStorage: 0.07$ - 1 month - 1GB Disk\n==\u003e 1s -\u003e 30 * 86400 * 1000 000 000 = 2592 000 000 000 000 - 0.07$\n==\u003e 1 Byte: 2.7e-17 \n\n- punishment function: based on time-delay of each single task\nhttps://www.researchgate.net/publication/267844406_Niche_Construction_Sustainability_and_Evolutionary_Ecology_of_Cancer\n\nfx  = 0 if delay_time \u003c 0\n    = delay_time if 0 \u003c delay_time \u003c 1\n    = (delay_time**2 + 1)/2   \n\n- Inverse-time function: based on living-time (tau) of data in fog\n- The function in NCA paper is exponential of 2*(t-j). It is not a good way in computing especially with large tasks\n and small fogs.  (For example: 1000 tasks - 10 fogs --\u003e some fogs with 2**100 will appear.\nfx = 1 / ((t-j)**2 + 1)\n\n\n- A framework to simulate cloud-fog in Python, but in their examples there is no examples of how fog-cloud simulation\n is carry out.\nhttps://www.researchgate.net/post/Is-there-any-Python-Cloud-Computing-Simulator-with-Autoscaling-Features\nhttps://github.com/acsicuib/YAFS/tree/YAFS3\nhttps://yafs.readthedocs.io/en/latest/examples/tutorial_example.html\n\n\n- Some citing papers:\n    + #tasks is small and each task with small size:\n        https://sci-hub.se/10.1109/iwcmc.2019.8766437\n        http://www.es.mdh.se/pdf_publications/5957.pdf\n    + Figure the request from end user to fog-cloud:\n        https://www.researchgate.net/publication/335359931_A_Method_Based_on_the_Combination_of_Laxity_and_Ant_Colony_System_for_Cloud-Fog_Task_Scheduling/figures?lo=1\n    + Priority task in scheduling algorithm\n        https://core.ac.uk/download/pdf/159815677.pdf\n    https://sci-hub.se/10.1109/tcc.2013.2\n\n\n\n- Fog-Cloud-Peer nodes:\n    +) 3f-1: 2-fog, 8-cloud, 5-peer\n    +) 3f+1: 4-fog, 10-cloud, 7-peer\n\n\n- Testing with 1000 tasks: (Assumption with 2 clouds, 8 fogs and 5 peers) (3f-1)\n    + Number of variables (dimensions) = (2+8)*1000 = 10000 --\u003e Can't do with Metaheuristic Algorithms\n    + 1 epoch: 400 - 500 seconds ----\u003e 1000 epochs: 400000 - 500000 seconds --\u003e 1 Algorithm with 1 trial: 4-6 days \n--\u003e So maximum tasks should be: 500 or less\n    \n- Testing with 500 tasks \n    + #dim = 10 * 500 = 5000\n    + 1 epoch: 50 - 100 seconds ---\u003e 1000 epochs: 50000 - 100000 seconds --\u003e 1 Algo with 1 trial: 14-hour to 28 hours\n\n```\n\n\n\n## Install Environment\n\n```code\nconda create -n ai python==3.8.5\nconda install numpy\nconda install pandas\nconda install -c conda-forge matplotlib\nconda install -c anaconda scikit-learn\n\n```\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthieu1995%2Fifcb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthieu1995%2Fifcb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthieu1995%2Fifcb/lists"}