{"id":23792466,"url":"https://github.com/se2p/sbse2023","last_synced_at":"2025-10-03T17:14:27.759Z","repository":{"id":206206764,"uuid":"709746189","full_name":"se2p/sbse2023","owner":"se2p","description":"Jupyter notebooks accompanying the Search-Based Software Engineering Course WS23/24","archived":false,"fork":false,"pushed_at":"2024-02-07T19:32:40.000Z","size":23500,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-01T18:36:33.587Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Jupyter Notebook","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/se2p.png","metadata":{"files":{"readme":"README.md","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":"2023-10-25T10:11:55.000Z","updated_at":"2024-10-21T15:06:20.000Z","dependencies_parsed_at":"2023-11-15T11:37:43.511Z","dependency_job_id":"2b3642f1-7208-47b8-9017-9bfa6e6ecc2e","html_url":"https://github.com/se2p/sbse2023","commit_stats":null,"previous_names":["se2p/sbse2023"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/se2p%2Fsbse2023","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/se2p%2Fsbse2023/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/se2p%2Fsbse2023/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/se2p%2Fsbse2023/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/se2p","download_url":"https://codeload.github.com/se2p/sbse2023/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240021402,"owners_count":19735315,"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":[],"created_at":"2025-01-01T18:35:11.681Z","updated_at":"2025-10-03T17:14:27.667Z","avatar_url":"https://github.com/se2p.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Search-Based Software Engineering Course WS23/24\n\n\nThis repository contains the code examples and content of the lectures. I\nwill be uploading rendered versions as PDF files to StudIP, and include\nrendered Markdown versions in this repository. If you want to run the\nnotebooks yourself, you will need to install [Jupyter](https://jupyter.org/install).\nIf you need help with setting up Jupyter, here's a tutorial on [how to install jupyter notebook on your machine](https://www.dataquest.io/blog/jupyter-notebook-tutorial/).\n\n\n## Chapter 1: Random and Local Search\n\nThe first chapter covers the coding examples from the first two weeks, on basic random search and local search algorithms.\n[Markdown Export](rendered/Random%20and%20Local%20Search.md)\n\n\n## Chapter 2: Evolutionary Search (Part 1)\n\nThis chapter covers basic evolutionary strategies and genetic algorithms.\n[Markdown Export](rendered/Evolutionary%20Search%20-%20Part%201.md)\n\n\n## Chapter 3: Evolutionary Search (Part 2)\n\nThis chapter looks into the various search operators of a genetic algorithm:\nSurvivor selection, parent selection, crossover, mutation, and the\npopulation itself.\n[Markdown Export](rendered/Evolutionary%20Search%20-%20Part%202.md)\n\n\n## Chapter 4: Multi-Objective Optimisation (Part 1)\n\nThis chapter covers the basics of Pareto optimality, NSGA-II, and comparison\nof multi-objective search algorithms.\n[Markdown Export](rendered/Multi-Objective%20Optimisation%20-%20Part%201.md)\n\n\n## Chapter 5: Multi-Objective Optimisation (Part 2)\n\nThis chapter covers several alternative multi-objective search algorithms:\nA random baseline, PAES, SPEA2, TwoArchives, and SMS-EMOA.\n[Markdown Export](rendered/Multi-Objective%20Optimisation%20-%20Part%202.md)\n\n\n## Chapter 6: Search-based Test Generation (Part 1)\n\nThis chapter looks at how the problem of test input generation can be cast\nas a search problem, and how to automatically instrument programs for\nfitness generation.\n[Markdown Export](rendered/Search-Based%20Test%20Generation%20-%20Part%201.md)\n\n\n## Chapter 7: Search-based Test Generation (Part 2)\n\nThis chapter continues whole test suite generation, and then moves on to\nmany objective optimisation for test generation.\n\n[Markdown Export](rendered/Search-Based%20Test%20Generation%20-%20Part%202.md)\n\n\n\n## Chapter 8: Genetic Programming\n\nThis chapter introduces classic genetic programming for scenarios assuming\ntype closure, and applies this to symbolic regression and spectrum-based\nfault localisation. It also looks at grammatical evolution and automated program repair.\n\n[Markdown Export](rendered/Genetic%20Programming.md)\n\n\n## Chapter 9: Neuroevolution\n\nThis chapter introduces the field of Neuroevolution in which evolutionary algorithms are used to optimise artificial\nneural networks. We start with the definition of neural networks and the pole balancing problem, a popular reinforcement\nlearning task which will be solved using two different Neuroevolution algorithms. The two algorithms, Symbiotic Adaptive\nNeuroevolution (SANE) and Cooperative Synapse Neuroevolution (CoSyNE), respectively, evolve a population of hidden\nneurons and connection weights.\n\n[Markdown Export](rendered/Neuroevolution.md)\n\n\n## Chapter 10: Parameter Tuning and Parameter Control\n\nThis chapter considers how to choose values for the many parameters that we\nhave introduced in our evolutionary algorithms, how to optimise these\nvalues, and how to adapt them to new problems.\n\n[Markdown Export](rendered/Parameter%20Control%20and%20Adaptation.md)\n\n\n## Chapter 11: Advanced Evolutionary Algorithms\n\nThis chapter considers several advanced variants of the evolutionary\nalgorithms we have discussed in previous chapter: Memetic algorithms combine\nglobal and local search; island model GAs divide the population of a GA into\nindependent subpopulations; estimation of distribution algorithms try to\nexplicitly optimise the probability distribution that is otherwise\nimplicitly represented by the population; differential evolution uses novel\nsearch operators unlike the ones we have used in standard GAs; hyper\nheuristics try to combine different heuristics to adapt to the problem at hand.\n\n[Markdown Export](rendered/Advanced%20Evolutionary%20Algorithms.md)\n\n\n## Chapter 12: Swarm Optimisation\n\nThis chapter briefly introduces two swarm optimisation techniques: Ant colony optimisation\ntries to imitate the stigmergic communication of ants for the purpose of\noptimisation. Particle swarm optimisation simulates the swarm behaviour of\nbirds or fish.\n\n[Markdown Export](rendered/Swarm%20Optimisation.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fse2p%2Fsbse2023","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fse2p%2Fsbse2023","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fse2p%2Fsbse2023/lists"}