Skip to content

abdelrahmanelsafty75/construction-cost-optimization

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🏗️ Construction Cost Optimizer

Python Version License Status Topic

Linear Programming solution for minimizing construction material costs while meeting engineering specifications.


Problem Statement

A construction company needs to produce a concrete mix using two raw materials with specific cost and property characteristics:

Materials Overview

Material Cost/Unit Strength Durability Water Resistance
Cement $20 2 units 1 unit 1 unit
Sand $10 1 unit 1 unit 3 units

Requirements

  • ✅ Minimum Strength: 30 units
  • ✅ Minimum Durability: 20 units
  • ✅ Minimum Water Resistance: 40 units

Objective

Minimize the total cost while meeting all engineering specifications.


✅ Solution

Using Linear Programming optimization:

🎯 Optimal Mix:
   • Cement: 10 units
   • Sand: 10 units
   • Total Cost: $300

All constraints satisfied:

  • Strength: 2(10) + 10 = 30 units
  • Durability: 10 + 10 = 20 units
  • Water Resistance: 10 + 3(10) = 40 units

📐 Mathematical Model

Decision Variables

  • x₁ = Units of Cement
  • x₂ = Units of Sand

Objective Function

Minimize: Z = 20x₁ + 10x₂

Constraints

Subject to:
   2x₁ + x₂  ≥ 30    (Strength)
   x₁  + x₂  ≥ 20    (Durability)
   x₁  + 3x₂ ≥ 40    (Water Resistance)
   x₁, x₂    ≥ 0     (Non-negativity)

📂 Project Structure

construction-cost-optimization/
├── src/
│   ├── solver.py          # Custom LP Algorithm Implementation
│   ├── visualizer.py      # Matplotlib Visualization Tools
│   ├── gui.py             # Tkinter User Interface
│   └── main.py            # Application Entry Point
│
├── docs/
│   ├── problem_statement.md      # Detailed Problem Description
│   ├── mathematical_model.md     # Complete LP Formulation
│   ├── user_guide.md             # Usage Instructions
│   └── presentation.pdf          # Project Presentation
│
├── screenshots/           # Application Screenshots & Plots
├── requirements.txt       # Python Dependencies
└── README.md             # This File

Installation

Prerequisites

  • Python 3.8 or higher
  • pip package manager

Quick Setup

# Clone the repository
git clone https://github.com/abdelrahmanelsafty75/construction-cost-optimization.git
cd construction-cost-optimization

# Install dependencies
pip install -r requirements.txt

# Verify installation
python src/main.py

Usage

Option 1: Interactive Menu

python src/main.py

Launches an interactive menu with options:

  1. CLI Mode - Command-line interface
  2. GUI Mode - Graphical user interface
  3. Run Examples - Pre-configured scenarios
  4. Generate Visualizations - Create plots

Option 2: Direct GUI Launch

python src/gui.py

Opens the graphical interface immediately with:

  • Input fields for costs and requirements
  • Real-time optimization solving
  • Interactive result visualization
  • Parameter adjustment controls

✨ Features

Core Capabilities

  • Custom Manual Solver - Corner point method implementation from scratch
  • PuLP Integration - Verification using industry-standard solver
  • Interactive GUI - User-friendly Tkinter interface
  • Advanced Visualizations - Professional matplotlib charts
  • Sensitivity Analysis - Test parameter variations
  • Batch Processing - Run multiple scenarios

Visualization Tools

  • Feasible Region Plot - Shows constraints and optimal solution
  • Cost Comparison - Compare different scenarios
  • Sensitivity Analysis - Price variation impact
  • Property Breakdown - Material contribution charts

🖼️ Screenshots

GUI Interface

GUI Interface

Feasible Region Visualization

Feasible Region

Optimization Results

Results Output


📚 Documentation

Comprehensive documentation available in the docs/ folder:


🔬 Technical Details

Algorithm Implementation

  • Method: Corner Point (Graphical) Method
  • Approach: Find constraint intersections, evaluate objective at each
  • Verification: Compare with PuLP Simplex solver
  • Complexity: O(n²) for n constraints

Technologies Used

  • Python 3.8+ - Core programming language
  • NumPy - Numerical computations
  • Matplotlib - Data visualization and plotting
  • Tkinter - GUI framework (built-in with Python)
  • PuLP - LP solver for verification (optional)

🎓 Academic Context

Course: Operations Research
Institution: October 6 University
Semester: Fall 2025

This project demonstrates practical applications of Linear Programming in:

  • Construction management
  • Resource allocation
  • Cost optimization
  • Constraint satisfaction problems

🤝 Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Contact

For questions, suggestions, or collaboration:


Made with ❤️ by the Construction Optimization Team
Operations Research Project - Fall 2025

About

"Cost minimization tool for construction using Linear Programming and AI sensitivity analysis."

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages