{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":793660420,"defaultBranch":"main","name":"MultiObjectiveOptimization","ownerLogin":"jormundur00","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2024-04-29T16:23:51.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/99336265?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1714407832.472146","currentOid":""},"activityList":{"items":[{"before":"515ecacad2c4e851e33bcdcb311105a1a30985e8","after":"3817341e828e8fe9543b68bb33d543dfb8c54b87","ref":"refs/heads/main","pushedAt":"2024-05-11T18:41:20.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jormundur00","name":"Jovan Vukićević","path":"/jormundur00","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/99336265?s=80&v=4"},"commit":{"message":"docs: Added presentation","shortMessageHtmlLink":"docs: Added presentation"}},{"before":"9c5443d16155866d63251c844e857d609db5c326","after":"515ecacad2c4e851e33bcdcb311105a1a30985e8","ref":"refs/heads/main","pushedAt":"2024-05-09T21:51:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jormundur00","name":"Jovan Vukićević","path":"/jormundur00","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/99336265?s=80&v=4"},"commit":{"message":"fix: Update README.md\n\nFixed typos.","shortMessageHtmlLink":"fix: Update README.md"}},{"before":"a83a4490dfefa1549e66d83f2b30718d76ee2b47","after":"9c5443d16155866d63251c844e857d609db5c326","ref":"refs/heads/main","pushedAt":"2024-05-09T21:48:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jormundur00","name":"Jovan Vukićević","path":"/jormundur00","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/99336265?s=80&v=4"},"commit":{"message":"docs: Added documentation","shortMessageHtmlLink":"docs: Added documentation"}},{"before":"b4a5bbcb7425fd2c5f1b5e3c12ec1d120cf1a17f","after":"a83a4490dfefa1549e66d83f2b30718d76ee2b47","ref":"refs/heads/main","pushedAt":"2024-05-06T14:32:20.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jormundur00","name":"Jovan Vukićević","path":"/jormundur00","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/99336265?s=80&v=4"},"commit":{"message":"refactor: Changed \"bad-named\" variables to keep the code clean and consistent\n\nCertain variables were using camelCase while others were using snake_case. Now they are all consistently snake_case. The file names still have a different notation, but I don't think I will be changing those.\nAlso played around with algorithm parameters a bit, trying to avoid early convergences and look for the most diverse solutions.","shortMessageHtmlLink":"refactor: Changed \"bad-named\" variables to keep the code clean and co…"}},{"before":"f156a75f5782d329e09c5e69637fbe9c2d662fcd","after":"b4a5bbcb7425fd2c5f1b5e3c12ec1d120cf1a17f","ref":"refs/heads/main","pushedAt":"2024-05-06T13:28:51.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"jormundur00","name":"Jovan Vukićević","path":"/jormundur00","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/99336265?s=80&v=4"},"commit":{"message":"feat: Implemented polynomial mutation for NSGA-II and refactored parameter input\n\nReplaced the \"simple\" real uniform mutation with polynomial mutation in NSGA-II, which promotes more diversity based on it's eta parameter.\nExperimentally, it has been noted that the solutions are most diverse when the mutation eta is higher than the crossover eta.\nAlso made function parameters into separate variables, making changing of parameters way simpler.","shortMessageHtmlLink":"feat: Implemented polynomial mutation for NSGA-II and refactored para…"}},{"before":"7479c49cf8e48a078c53511f124a2609e5b8980b","after":"f156a75f5782d329e09c5e69637fbe9c2d662fcd","ref":"refs/heads/main","pushedAt":"2024-05-05T12:15:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jormundur00","name":"Jovan Vukićević","path":"/jormundur00","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/99336265?s=80&v=4"},"commit":{"message":"fix: Fixed implicit elitism for NSGA-II\n\nThe Pareto front ranks of joined population individuals was not changed previously, making the values incorrect.\nWhile the computation time has been significantly increased, the new fixed results are stunning.","shortMessageHtmlLink":"fix: Fixed implicit elitism for NSGA-II"}},{"before":"ae1c1a76cea5ee0e5623645ae688d6ea902cfb09","after":"7479c49cf8e48a078c53511f124a2609e5b8980b","ref":"refs/heads/main","pushedAt":"2024-05-05T12:10:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jormundur00","name":"Jovan Vukićević","path":"/jormundur00","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/99336265?s=80&v=4"},"commit":{"message":"feat: Changed explicit elitim to implicit elitism in NSGA-II\n\nThe algorithm now sorts both parents and children grouped up together and takes the best of the joined group for the next generation population.","shortMessageHtmlLink":"feat: Changed explicit elitim to implicit elitism in NSGA-II"}},{"before":"60a7106d0182e48ae6ec40547b73bdcca6a7b8fe","after":"ae1c1a76cea5ee0e5623645ae688d6ea902cfb09","ref":"refs/heads/main","pushedAt":"2024-05-04T18:54:22.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"jormundur00","name":"Jovan Vukićević","path":"/jormundur00","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/99336265?s=80&v=4"},"commit":{"message":"feat: Finished implementation of the first version of NSGA-II\n\nThe genetic algorithm is \"brutally\" more efficient than the previously implemented simple genetic algorithm.\nWill still probably have to change up the crossover operation and possibly the elitism, but we will see in the future.","shortMessageHtmlLink":"feat: Finished implementation of the first version of NSGA-II"}},{"before":"d3e0c97bb67556d9cdac7e6fe9545dc80a5bd8ad","after":"60a7106d0182e48ae6ec40547b73bdcca6a7b8fe","ref":"refs/heads/main","pushedAt":"2024-05-04T11:47:23.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"jormundur00","name":"Jovan Vukićević","path":"/jormundur00","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/99336265?s=80&v=4"},"commit":{"message":"feat: Started development of NSGA-II, implemented non-dominated sorting algorithm\n\nCreated the skeleton of the NSGA-II algorithm, currently mostly consisting of copies of the previous simple genetic algorithm.\nImplemented a non-dominated sorting algorithm which sorts population elements by their respective Pareto fronts, later to be used in the NSGA-II algorithm.","shortMessageHtmlLink":"feat: Started development of NSGA-II, implemented non-dominated sorti…"}},{"before":"ad874c66b9a45b4883ef01a79edaceda44063c4e","after":"d3e0c97bb67556d9cdac7e6fe9545dc80a5bd8ad","ref":"refs/heads/main","pushedAt":"2024-05-03T11:47:19.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"jormundur00","name":"Jovan Vukićević","path":"/jormundur00","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/99336265?s=80&v=4"},"commit":{"message":"feat: Added algorithm statistics and graph-hiding option\n\nAdded statistics showing the number of found Pareto front elements as well as the time it takes to run the algorithm.\nAdded a function parameter that can optionally hide non-Pareto front elements of the graph for a clearer Pareto front image.","shortMessageHtmlLink":"feat: Added algorithm statistics and graph-hiding option"}},{"before":"147a76ba2c053a5581d002b58de6d72b74f2e92f","after":"ad874c66b9a45b4883ef01a79edaceda44063c4e","ref":"refs/heads/main","pushedAt":"2024-05-02T15:17:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jormundur00","name":"Jovan Vukićević","path":"/jormundur00","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/99336265?s=80&v=4"},"commit":{"message":"feat: Implemented full Pareto front finding genetic algorithm\n\nImplemented the missing selection operator to select individuals based on the current tournaments Pareto front.\nImplemented the genetic algorithm combining the current selection, crossover and mutation operators. Elitism is currently not supported but will most likely be added in the future.\nAdded plotting of the resulting Pareto fronts to the genetic algorithm. Although the genetic algorithm can take a bit more time than the brute-force one, the resulting graphs are much more dense in their Pareto front region, which could be important in the goal of finding the most optimal MOO problem solutions.","shortMessageHtmlLink":"feat: Implemented full Pareto front finding genetic algorithm"}},{"before":"63b5a3218806fbc0c40a4f6630f7d66c2afc4c6d","after":"147a76ba2c053a5581d002b58de6d72b74f2e92f","ref":"refs/heads/main","pushedAt":"2024-05-02T11:30:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jormundur00","name":"Jovan Vukićević","path":"/jormundur00","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/99336265?s=80&v=4"},"commit":{"message":"feat: Implemented class Individual and crossover and mutation operators for the Pareto front finding genetic algorithm\n\nCreated the base genetic algorithm individual and made sure it works with different kinds of problems. Still unsure how to calculate \"fitness\" of the individuals, so for now we just evaluate all the function values.\nImplemented the crossover operator as a whole arithmetic recombination, basically using weighted means of individual code elements.\nImplemented the mutation operator as a simple uniform operator which changes a code element value with a new one from that variables domain.","shortMessageHtmlLink":"feat: Implemented class Individual and crossover and mutation operato…"}},{"before":"4d4ae1b2450758aa282480f7502c1baff8fb4cca","after":"63b5a3218806fbc0c40a4f6630f7d66c2afc4c6d","ref":"refs/heads/main","pushedAt":"2024-05-02T09:55:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jormundur00","name":"Jovan Vukićević","path":"/jormundur00","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/99336265?s=80&v=4"},"commit":{"message":"fix: Hotfixed weird commit saving\n\nFor some reason the previous commit didn't properly save all changes.","shortMessageHtmlLink":"fix: Hotfixed weird commit saving"}},{"before":"222ba5665ba28d0a5b56c0e6f097f39dfc4945c9","after":"4d4ae1b2450758aa282480f7502c1baff8fb4cca","ref":"refs/heads/main","pushedAt":"2024-05-02T09:54:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jormundur00","name":"Jovan Vukićević","path":"/jormundur00","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/99336265?s=80&v=4"},"commit":{"message":"style: Changed function formatting in the brute force algorithm\n\nChanged the function argument to now be a singular variable instead of an array of them.\nThis was done so that the functions stay consistent with future genetic algorithms.","shortMessageHtmlLink":"style: Changed function formatting in the brute force algorithm"}},{"before":"429445cf6b56383383ba03ef61891cf264fef14d","after":"222ba5665ba28d0a5b56c0e6f097f39dfc4945c9","ref":"refs/heads/main","pushedAt":"2024-04-30T14:47:28.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jormundur00","name":"Jovan Vukićević","path":"/jormundur00","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/99336265?s=80&v=4"},"commit":{"message":"test: Added 2 more test functions\n\nAdded Schaffer function N.2 and Viennet function. The former tests for changeable functions based on variable value, while the latter is a function with 3 constraints, which plots in 3 dimensions.\nAlso fixed 3d plotting, having formerly used incorrect pyplot 2-dimensional syntax.","shortMessageHtmlLink":"test: Added 2 more test functions"}},{"before":"caed6c690e30a2a760ae05bb1c5a7dcd4adef3f7","after":"429445cf6b56383383ba03ef61891cf264fef14d","ref":"refs/heads/main","pushedAt":"2024-04-30T12:30:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jormundur00","name":"Jovan Vukićević","path":"/jormundur00","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/99336265?s=80&v=4"},"commit":{"message":"feat: Implemented brute force Pareto front finding algorithm\n\nImplemented the most basic brute force Pareto front finding algorithm by calculating dominance between all points used in the functions.\nAdded Schaffers function N1 as a second example, as it is different from the Bihn and Korn's function because it uses one-dimensional vectors as its arguments.\nAlso implemented basic plotting/graphing of the functions and their Pareto fronts.","shortMessageHtmlLink":"feat: Implemented brute force Pareto front finding algorithm"}},{"before":"05a3318d89522024b9d029c1831c6eb2176253f6","after":"caed6c690e30a2a760ae05bb1c5a7dcd4adef3f7","ref":"refs/heads/main","pushedAt":"2024-04-29T16:31:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jormundur00","name":"Jovan Vukićević","path":"/jormundur00","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/99336265?s=80&v=4"},"commit":{"message":"feat: Implemented data format for the brute force Pareto front finding algorithm\n\nStarted work on the brute force Pareto front finding algorithm by implementing the current data input and keeping format.\nBihn and Korns function is used as a test for the said format, as it has 2 constraint-functions with 2 variables.","shortMessageHtmlLink":"feat: Implemented data format for the brute force Pareto front findin…"}},{"before":null,"after":"05a3318d89522024b9d029c1831c6eb2176253f6","ref":"refs/heads/main","pushedAt":"2024-04-29T16:23:51.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jormundur00","name":"Jovan Vukićević","path":"/jormundur00","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/99336265?s=80&v=4"},"commit":{"message":"Initial commit","shortMessageHtmlLink":"Initial commit"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNS0xMVQxODo0MToyMC4wMDAwMDBazwAAAARHXMOT","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNC0yOVQxNjoyMzo1MS4wMDAwMDBazwAAAAQ9LTP5"}},"title":"Activity · jormundur00/MultiObjectiveOptimization"}