Skip to content

Comments

Streamlit-Based GUI for EvoloPy Optimization Suite#81

Open
deepak-158 wants to merge 6 commits into7ossam81:masterfrom
deepak-158:master
Open

Streamlit-Based GUI for EvoloPy Optimization Suite#81
deepak-158 wants to merge 6 commits into7ossam81:masterfrom
deepak-158:master

Conversation

@deepak-158
Copy link
Contributor

@deepak-158 deepak-158 commented Apr 11, 2025

This pull request introduces a full-featured Graphical User Interface (GUI) built with Streamlit for running and visualizing optimizers from the EvoloPy library. The goal is to provide an interactive and beginner-friendly interface that allows users to easily select optimizers, benchmark functions, and hyperparameters—while also viewing real-time convergence data.


✨ Key Features

🎛️ GUI Functionality

  • Developed using Streamlit for easy interaction and deployment.
  • Sidebar for user inputs:
    • Optimizer selection (multi-select)
    • Benchmark function selection (multi-select)
    • Population size input
    • Iterations input
  • Main window displays:
    • Best solution (Alpha, Beta, Gamma)
    • Execution time
    • Tabular data of fitness values
    • Real-time convergence graph using Plotly
    • Convergence rate per iteration (as a percentage bar chart)

📈 Visualization

  • Convergence Plot: Line graph of fitness over iterations
  • Convergence Rate Plot: Bar chart showing rate of improvement per iteration
  • Comparison Plot: Overlays all optimizer-function results for visual benchmarking

📊 Data Processing

  • Extracts best individuals and computes convergence rates
  • Uses pandas and numpy for tabular data manipulation

📦 Dependencies

  • streamlit
  • numpy
  • pandas
  • plotly

🧪 Example Usage

Run the following command in your terminal to start the app:

streamlit run gui_app2.py

🛠️ Files Modified/Added

  • gui_app2.py: Main application script for Streamlit GUI
  • No core EvoloPy logic modified; this is a non-intrusive extension

🤝 Motivation

This contribution makes it easier for users, especially beginners and researchers, to:

  • Explore how different optimizers perform
  • Analyze convergence behavior visually
  • Reduce barrier to entry for working with metaheuristic algorithms

🚀 Future Improvements (Optional)

  • Support for custom benchmark functions (user-defined)
  • Add download options for plots and results
  • Save experiment results as CSV or JSON
  • Add logging window or error trace panel

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant