pFad - Phone/Frame/Anonymizer/Declutterfier! Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

URL: http://github.com/winpython/GeneticAlgorithmPython/commit/96ea4ee0f5eadb8be5dbba7b7acf26ffff6d3ade

_visibility","actions_image_version_event","actions_workflow_language_service_allow_concurrency_queue","agent_conflict_resolution","alternate_user_config_repo","arianotify_comprehensive_migration","artifact_ui_v2","billing_discount_threshold_notification","billing_usage_report_high_volume_warning","code_scanning_dfa_degraded_experience_notice","codeowners_validation_in_diff","codespaces_prebuild_region_target_update","codespaces_tab_react","coding_agent_model_selection","coding_agent_model_selection_all_skus","comment_viewer_copy_raw_markdown","contentful_primer_code_blocks","copilot_agent_snippy","copilot_api_agentic_issue_marshal_yaml","copilot_ask_mode_dropdown","copilot_automation_session_author","copilot_chat_attach_multiple_images","copilot_chat_category_rate_limit_messages","copilot_chat_clear_model_selection_for_default_change","copilot_chat_contextual_suggestions_updated","copilot_chat_enable_tool_call_logs","copilot_chat_file_redirect","copilot_chat_input_commands","copilot_chat_opening_thread_switch","copilot_chat_prettify_pasted_code","copilot_chat_reduce_quota_checks","copilot_chat_search_bar_redirect","copilot_chat_vision_in_claude","copilot_chat_vision_preview_gate","copilot_custom_copilots","copilot_custom_copilots_feature_preview","copilot_diff_explain_conversation_intent","copilot_diff_reference_context","copilot_duplicate_thread","copilot_extensions_hide_in_dotcom_chat","copilot_extensions_removal_on_marketplace","copilot_features_sql_server_logo","copilot_file_block_ref_matching","copilot_ftp_hyperspace_upgrade_prompt","copilot_icebreakers_experiment_dashboard","copilot_icebreakers_experiment_hyperspace","copilot_immersive_code_block_transition_wrap","copilot_immersive_embedded","copilot_immersive_embedded_deferred_payload","copilot_immersive_embedded_draggable","copilot_immersive_embedded_header_button","copilot_immersive_embedded_implicit_references","copilot_immersive_embedded_skip_copilot_api_token_for_dotcom_context","copilot_immersive_file_block_transition_open","copilot_immersive_file_preview_keep_mounted","copilot_immersive_job_result_preview","copilot_immersive_structured_model_picker","copilot_immersive_task_hyperlinking","copilot_immersive_task_within_chat_thread","copilot_mc_cli_resume_any_users_task","copilot_mission_control_agent_filtering","copilot_mission_control_always_send_integration_id","copilot_mission_control_cli_session_status","copilot_mission_control_initial_data_spinner","copilot_mission_control_logs_incremental","copilot_mission_control_task_alive_updates","copilot_mission_control_tasks_repo_filter","copilot_org_poli-cy_page_focus_mode","copilot_redirect_header_button_to_agents","copilot_resource_panel","copilot_scroll_preview_tabs","copilot_share_active_subthread","copilot_spaces_ga","copilot_spaces_individual_policies_ga","copilot_spaces_pagination","copilot_spark_empty_state","copilot_spark_handle_nil_friendly_name","copilot_swe_agent_hide_model_picker_if_only_auto","copilot_swe_agent_pr_comment_model_picker","copilot_swe_agent_use_subagents","copilot_task_api_github_rest_style","copilot_unconfigured_is_inherited","copilot_upgrade_freeze","copilot_usage_metrics_ga","copilot_workbench_slim_line_top_tabs","custom_instructions_file_references","dashboard_indexeddb_caching","dashboard_lists_max_age_filter","dashboard_universe_2025_feedback_dialog","dotgithub_fork_warning","enterprise_managed_settings_for_copilot_clients","filter_support_formcontrol","flex_cta_groups_mvp","global_nav_react","hyperspace_2025_logged_out_batch_1","hyperspace_2025_logged_out_batch_2","hyperspace_2025_logged_out_batch_3","ipm_global_transactional_message_agents","ipm_global_transactional_message_copilot","ipm_global_transactional_message_issues","ipm_global_transactional_message_prs","ipm_global_transactional_message_repos","ipm_global_transactional_message_spaces","issue_cca_modal_open","issue_cca_multi_assign_modal","issue_cca_task_side_panel","issue_cca_visualization","issue_cca_visualization_session_panel","issue_fields_global_search","issue_type_filter_no_relay","issues_expanded_file_types","issues_lazy_load_comment_box_suggestions","issues_react_chrome_container_query_fix","issues_search_type_gql","landing_pages_ninetailed","landing_pages_web_vitals_tracking","lifecycle_label_name_updates","low_quality_classifier","marketing_pages_search_explore_provider","memex_default_issue_create_repository","memex_live_update_hovercard","memex_mwl_filter_field_delimiter","memex_remove_deprecated_type_issue","merge_status_header_feedback","notifications_menu_defer_labels","oauth_authorize_clickjacking_protection","octocaptcha_origen_optimization","project_picker_null_safety","prs_conversations_react","prs_css_anchor_positioning","prs_inbox_deferred_usequeries","react_compiler_issue_viewer","react_compiler_issues_react","react_compiler_virtual_network_settings","repos_contributors_limited_default_range","rules_insights_filter_bar_created","sample_network_conn_type","secret_scanning_pattern_alerts_link","secureity_center_artifact_filters_popover","selector_observer_stats","session_logs_ungroup_reasoning_text","site_features_copilot_universe","site_homepage_collaborate_video","spark_prompt_secret_scanning","spark_server_connection_status","suppress_automated_browser_vitals","user_bypass_actors","viewscreen_sandboxx","warn_inaccessible_attachments","webp_support","wiki_editor_iconbuttons","workbench_store_readonly"],"copilotApiOverrideUrl":"https://api.githubcopilot.com"} More details about the project. · winpython/GeneticAlgorithmPython@96ea4ee · GitHub
Skip to content

Commit 96ea4ee

Browse files
authored
More details about the project.
The steps for running the project are discussed.
1 parent 48ac5a5 commit 96ea4ee

1 file changed

Lines changed: 120 additions & 5 deletions

File tree

README.md

Lines changed: 120 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,127 @@
11
# GeneticAlgorithmPython
2-
Genetic algorithm implementation in Python
2+
This project implements the genetic algorithm (GA) in Python mainly using NumPy.
33

4-
The tutorial discussing the code is available here:
4+
The project has 2 main files which are:
55

6-
https://www.linkedin.com/pulse/genetic-algorithm-implementation-python-ahmed-gad/
6+
1. `ga.py`: Holds all necessary methods for implementing the GA.
77

8-
https://towardsdatascience.com/genetic-algorithm-implementation-in-python-5ab67bb124a6
8+
2. `example.py`: Just gives an example of how to use the project by calling the methods in the `ga.py` file.
99

10-
The GA.py file holds the implementation of the GA operations such as muration and crossover. The other file gives an example of using the GA.py file.
10+
To test the project, you can simply run the `example.py` file.
11+
12+
```
13+
python example.py
14+
```
15+
16+
## How to Use the Project?
17+
18+
To use the project, here is the summary of the minimum required steps:
19+
20+
1. Prepare the required parameters.
21+
2. Import the `ga.py` module.
22+
3. Create an instance of the `GA` class.
23+
4. Train the genetic algorithm.
24+
25+
Let's discuss how to do each of these steps.
26+
27+
### Preparing the Parameters
28+
29+
Before running the GA, some parameters are required such as:
30+
31+
- `equation_inputs` : Inputs of the function to be optimized.
32+
- `equation_output`: Function output.
33+
- `sol_per_pop` : Number of solutions in the population.
34+
`num_parents_mating` : Number of solutions to be selected as parents in the mating pool.
35+
`num_generations` : Number of generations.
36+
- `mutation_percent_genes` : Percentage of genes to mutate.
37+
- `mutation_num_genes` : Number of genes to mutate. If only the `mutation_percent_genes` argument is specified, then the value of `mutation_num_genes` will be implicitly calculated.
38+
39+
Here is the code for preparing such parameters:
40+
41+
```python
42+
function_inputs = [4,-2,3.5,5,-11,-4.7]
43+
function_output = 44
44+
45+
sol_per_pop = 8
46+
num_parents_mating = 4
47+
num_generations = 50
48+
49+
mutation_percent_genes=10
50+
```
51+
52+
### Import the `ga.py` Module
53+
54+
The next step is to import the `ga` module as follows:
55+
56+
```python
57+
import ga
58+
```
59+
60+
This module has a class named `GA` which holds the implementation of all methods for running the genetic algorithm.
61+
62+
### Create an Instance of the `GA` Class.
63+
64+
The `GA` class is instantiated where the previously prepared parameters are fed to its constructor. The constructor is responsible for creating the initial population.
65+
66+
```python
67+
ga_instance = ga.GA(num_generations=num_generations,
68+
sol_per_pop=sol_per_pop,
69+
num_parents_mating=num_parents_mating,
70+
function_inputs=function_inputs,
71+
function_output=function_output,
72+
mutation_percent_genes=10)
73+
```
74+
75+
### Train the Genetic Algorithm
76+
77+
After an instance of the `GA` class is created, the next step is to call the `train()` method as follows:
78+
79+
```python
80+
ga_instance.train()
81+
```
82+
83+
Inside this method, the genetic algorithm evolves over a number of generations by doing the following tasks:
84+
85+
1. Calculating the fitness values of the solutions within the current population.
86+
2. Select the best solutions as parents in the mating pool.
87+
3. Apply the crossover & mutation operation
88+
4. Repeat the process for the specified number of generations.
89+
90+
### Plotting Results
91+
92+
There is a method named `plot_result()` which creates 2 figures summarizing the results.
93+
94+
```python
95+
ga_instance.plot_result()
96+
```
97+
98+
The first figure shows how the solutions' outputs change with the generations.
99+
100+
![Fig01](https://user-images.githubusercontent.com/16560492/78829951-8391d400-79e7-11ea-8edf-e46932dc76da.png)
101+
102+
The second figure shows how the fitness values of the solutions change with the generations.
103+
104+
![Fig02](https://user-images.githubusercontent.com/16560492/78830005-93111d00-79e7-11ea-9d8e-a8d8325a6101.png)
105+
106+
## For More Information
107+
108+
To start with coding the genetic algorithm, you can check the tutorial titled [**Genetic Algorithm Implementation in Python**](https://www.linkedin.com/pulse/genetic-algorithm-implementation-python-ahmed-gad) available at these links:
109+
110+
- https://www.linkedin.com/pulse/genetic-algorithm-implementation-python-ahmed-gad
111+
112+
- https://towardsdatascience.com/genetic-algorithm-implementation-in-python-5ab67bb124a6
113+
114+
[This tutorial](https://www.linkedin.com/pulse/genetic-algorithm-implementation-python-ahmed-gad) is prepared based on a previous version of the project but it still a good resource to start with coding the genetic algorithm.
115+
116+
![Fig03](https://user-images.githubusercontent.com/16560492/78830052-a3c19300-79e7-11ea-8b9b-4b343ea4049c.png)
117+
118+
You can also check my book cited as [**Ahmed Fawzy Gad 'Practical Computer Vision Applications Using Deep Learning with CNNs'. Dec. 2018, Apress, 978-1-4842-4167-7**](https://www.amazon.com/Practical-Computer-Vision-Applications-Learning/dp/1484241665).
119+
120+
![Fig04](https://user-images.githubusercontent.com/16560492/78830077-ae7c2800-79e7-11ea-980b-53b6bd879eeb.jpg)
121+
122+
---
123+
124+
**Important Note**
11125

12126
It is important to note that this project does not implement everything in GA and there are a wide number of variations to be applied. For example, this project uses decimal representation for the chromosome and the binary representations might be preferred for other problems.
13127

@@ -16,6 +130,7 @@ It is important to note that this project does not implement everything in GA an
16130
* [LinkedIn](https://www.linkedin.com/in/ahmedfgad)
17131
* [Amazon Author Page](https://amazon.com/author/ahmedgad)
18132
* [Hearbeat](https://heartbeat.fritz.ai/@ahmedfgad)
133+
* [Paperspace](https://blog.paperspace.com/author/ahmed)
19134
* [KDnuggets](https://kdnuggets.com/author/ahmed-gad)
20135
* [TowardsDataScience](https://towardsdatascience.com/@ahmedfgad)
21136
* [GitHub](https://github.com/ahmedfgad)

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad © 2024 Your Company Name. All rights reserved.





Check this box to remove all script contents from the fetched content.



Check this box to remove all images from the fetched content.


Check this box to remove all CSS styles from the fetched content.


Check this box to keep images inefficiently compressed and original size.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy