برنامه ریزی هوشمند تعمیرات شبکه برق

در این پروژه بخش های زیر مد نظر هستند: داده ها - پیش پردازش -بهینه سازی - سیستم نرم افزار پیشنهادی چارچوب اجرایی -تیم های درگیر پروژه

داده ها

جدول داده های مربوط به کارهای تعمیراتی

نام داده‌ها کد کار نوع داده توضیحات
تعویض ترانسفورماتور TRM-2024-10-001 رشته (String) تعمیر کابل - سرپرست - تعویض دکل
مختصات جغرافیایی LOC-2024-10-001 (lat, long) بخشی از نقشه - موقعیت دقیق عملیات
زمان تخمین اجرا DUR-2024-10-001 ساعت (Integer) مدت زمان پیش‌بینی شده برای اتمام کار (بر حسب ساعت)
زمان صرف شده ACT-2024-10-001 ساعت (Double) مدت زمان واقعی صرف شده برای کار (بر حسب ساعت)
تجهیزات مورد نیاز EQP-2024-10-001 لیست (Array) لیست ابزار و مواد مورد استفاده در عملیات

داده های تیم های تعمیرات

نام داده‌ها کد داده نوع داده توضیحات
کد تیم TEAM-2024-10-001 رشته (String) شناسه منحصر به فرد هر تیم تعمیراتی (مثال: T-HO-01 برای تیم هوایی ۱)
نوع تخصص SPEC-2024-10-001 لیست (Array) تخصص‌های تیم (مثال: [شبکه هوایی, تعویض ترانسفورماتور])
مختصات پایگاه BASE-2024-10-001 (lat, long) موقعیت جغرافیایی ایستگاه کاری که تیم از آنجا اعزام می‌شود
تجهیزات حمل شده EQIP-2024-10-001 لیست (Array) لیست تجهیزات و ابزارهایی که تیم به طور معمول با خود حمل می‌کند
تاریخ‌های غیرفعال DND-2024-10-001 لیست (Array) تاریخ‌هایی که تیم به دلیل آموزش، مرخصی و… قادر به انجام کار نیست

داده های شبکه توزیع برق

نام داده‌ها کد داده نوع داده توضیحات
نقشه فیدرها NET-FDR-001 شیء جغرافیایی (GeoJSON) نقشه کامل و به‌روز فیدرهای شبکه توزیع برای شناسایی سریع محل وقوع fault و برنامه‌ریزی دسترسی
محدودیت ترافیک NET-TRC-001 لیست (Array) لیست خیابان‌ها، معابر و مسیرهای دارای محدودیت تردد (مانند طرح ترافیک، سنگین‌برد، تعمیرات راه)
نقاط دسترسی NET-ACC-001 لیست (Array) مختصات نقاط کلیدی برای دسترسی به تجهیزات شبکه (مانند درب ورودی، پارکینگ، محل مانور)
زمان‌های پیک ترافیک NET-PTK-001 شیء (JSON) بازه‌های زمانی اوج ترافیک در مناطق مختلف به صورت {منطقه: [زمان شروع, زمان پایان]}
زمان‌های ترجیحی NET-PRF-001 شیء (JSON) بازه‌های زمانی با ترافیک سبک‌تر و مناسب برای تردد سریع‌تر تیم‌های تعمیراتی

داده های پویا

داده های پویا

نام داده‌ها کد داده نوع داده توضیحات منبع داده
ترافیک لحظه‌ای DYN-TFC-001 شیء (JSON) داده‌های زنده ترافیکی از APIهای نقشه (مانند Waze, Google) شامل رنگ مسیرها و زمان‌های سفر预估 سرویس‌های نقشه‌برداری خارجی (API)
آب و هوا DYN-WTH-001 شیء (JSON) شرایط جوی لحظه‌ای و پیش‌بینی شده (بارش، دما، باد، رعد و برق) که بر ایمنی و اجرای کار تأثیر می‌گذارد سرویس‌های هواشناسی (API)
کارهای اضطراری DYN-EMG-001 لیست (Array) کارهای با اولویت بالا که به صورت غیرمنتظره در طول روز در کارتابل سرپرست ظاهر می‌شوند سیستم مدیریت کار شرکت برق (Internal API)
وضعیت سلامت تیم DYN-HLT-001 شیء (JSON) وضعیت لحظه‌ای هر تیم (در حال حرکت، در حال کار, در راه بازگشت, در پایگاه) از طریق GPS نرم‌افزار رهگیری تیم‌ها بر روی تلفن‌های همراه (Internal API)
پیشرفت کار DYN-PRG-001 شیء (JSON) درصد پیشرفت و زمان تخمینی باقی‌مانده برای تکمیل هر کار که توسط تیم گزارش می‌شود نرم‌افزار گزارش‌دهی تیم‌ها (Internal API)
وضعیت تجهیزات DYN-EQS-001 لیست (Array) موجودی لحظه‌ای کالاها و تجهیزات در انبار مرکزی و خودروی تیم‌ها سیستم انبارداری و لجستیک (Internal API)
قطعی‌های جدید DYN-OUT-001 لیست (Array) گزارش‌های قطعی جدید که از طریق سیستم SCADA یا تماس‌های مشتریان ثبت می‌شوند سیستم SCADA و مرکز تماس مشتریان (Internal API)

داده های تاریخی

نام داده‌ها کد داده نوع داده توضیحات کاربرد در سیستم هوشمند
لاگ‌های تخصیص گذشته HIST-ASN-001 آرایه (JSON) تاریخچه کامل تخصیص‌های کار به تیم‌ها شامل کار، تیم، تاریخ، ساعت شروع/پایان، مسیر طی شده تحلیل الگوهای تخصیص، شناسایی بهترین روش‌ها، آموزش مدل‌های ML
زمان‌های واقعی اجرای کار HIST-DUR-001 آرایه (JSON) مدت زمان واقعی صرف شده برای هر نوع کار در شرایط مختلف (آب و هوا، منطقه، فصل) بهبود دقت “زمان تخمینی اجرا” در برنامه‌ریزی آینده
الگوهای ترافیک تاریخی HIST-TFC-001 شیء (JSON) داده‌های ترافیکی جمع‌آوری شده در روزهای گذشته برای شناسایی الگوهای هفتگی و ماهانه پیش‌بینی دقیق‌تر زمان سفر و برنامه‌ریزی بهتر برای زمان‌بندی کارها
تاریخچه کارهای اضطراری HIST-EMG-001 آرایه (JSON) ثبت کامل کارهای اضطراری گذشته شامل نوع، محل، زمان وقوع، مدت زمان تعمیر پیش‌بینی احتمال وقوع حوادث در مناطق مختلف و برنامه‌ریزی ظرفیت ذخیره برای آن‌ها
عملکرد تیم‌ها HIST-PRF-001 شیء (JSON) شاخص‌های عملکرد هر تیم (میانگین زمان انجام کار، کیفیت اجرا، رضایت مشتری) تخصیص هوشمندانه‌تر کارها بر اساس توانایی‌های واقعی هر تیم
داده‌های مصرف برق HIST-PWR-001 شیء (JSON) الگوهای مصرف برق و داده‌های بار شبکه در گذشته پیش‌بینی بار کاری آینده و ارتباط بین الگوهای مصرف و خرابی‌ها
شرایط آب و هوایی تاریخی HIST-WTH-001 آرایه (JSON) داده‌های دقیق آب و هوایی گذشته همراه با تأثیر آن بر اجرای کارها ساخت مدل پیش‌بینی تأثیر آب و هوا بر مدت زمان اجرای کارهای مختلف

پیش‌پردازش داده‌ها

پیش‌پردازش شامل پاک‌سازی، استانداردسازی، محاسبه ماتریس مسافت-زمان، گروه‌بندی کارها، اعمال محدودیت‌ها و ساختاردهی نهایی برای ورودی به بخش بهینه‌سازی است.

پاک‌سازی داده‌ها

عملیات ابزار خروجی
حذف رکوردهای ناقص pandas.dropna() مجموعه داده بدون مختصات جغرافیایی نامعتبر
تصحیح مقادیر نامعتبر sklearn.SimpleImputer() درونیابی مقادیر نامعتبر با میانگین/میانه
یکسان‌سازی واحدها Python (datetime) تبدیل همه واحدهای زمانی به دقیقه
تشخیص ناهنجاری Python (scikit-learn) حذف داده‌های پرت برای مدل‌های رگرسیون

استانداردسازی فرمت‌ها

نوع داده تبدیل خروجی استاندارد
آدرس‌ها Geocoding API (lat, long)
زمان‌ها Python datetime دقیقه
تجهیزات کدگذاری یکپارچه کد یکپارچه تجهیزات
وابستگی‌ها گراف جهت‌دار ساختار گراف کارها

محاسبه ماتریس فاصله-زمان

مؤلفه روش محاسبه ابزار
مسافت جغرافیایی فرماد هورساین geopy.distance
زمان سرف مدل ترافیک + داده تاریخی الگوریتم‌های پیش‌بینی
ضریب اصلاح آب‌وهوا ۳۰% در شرایط بد مدل‌های هواشناسی
محدودیت‌های ترافیکی مدل‌سازی شبکه جاده‌ای GraphHopper API

گروه‌بندی کارها

الگوریتم پارامترها کاربرد
K-Means موقعیت جغرافیایی خوشه‌بندی مکانی کارها
Mean-Shift چگالی کارها شناسایی مناطق پرتراکم
شباهت تاریخی مقایسه با داده‌های قبلی پیش‌بینی الگوهای مشابه

اعمال محدودیت‌ها

نوع محدودیت پارامترها تأثیر بر بهینه‌سازی
ظرفیت تیم‌ها min/max ظرفیت تعادل بار کاری
ابزار و تجهیزات موجودی و قابلیت‌ها تخصیص مبتنی بر قابلیت
بازه زمانی پنجره‌های زمانی مجاز زمان‌بندی بهینه

ساختار نهایی خروجی

{
  "meta": {
    "date": "2024-10-04",
    "region": "تهران مرکزی",
    "time_created": "2024-10-04T10:30:00Z"
  },
  "teams": {
    "id": "T-HO-01",
    "type": "هوایی",
    "capacity": 8,
    "cluster": "شمالی",
    "tools": ["TRM-001", "CBL-002"]
  },
  "jobs": {
    "id": "J-2024-10-001",
    "location": [35.6892, 51.3890],
    "duration": 120,
    "time_window": [480, 720],
    "cluster": "C1",
    "required_tools": ["TRM-001"],
    "dependencies": ["J-2024-10-002"]
  },
  "distance_matrix": {
    "T-HO-01_J-2024-10-001": {
      "distance_km": 5.2,
      "time_min": 15,
      "weather_factor": 1.3
    }
  },
  "constraints": {
    "max_capacity_per_team": 6,
    "time_windows": true,
    "tool_requirements": true
  },
  "dynamic_data": {
    "traffic": "moderate",
    "weather": "rainy"
  }
}

ابزارهای مورد استفاده در پیش‌پردازش

مرحله ابزارهای اصلی توضیحات
پاک‌سازی Pandas, scikit-learn برای حذف داده‌های ناقص، تصحیح مقادیر نامعتبر و تشخیص ناهنجاری‌ها
استانداردسازی Geopy, datetime تبدیل آدرس به مختصات جغرافیایی و یکسان‌سازی فرمت زمان‌ها
محاسبات مکانی GraphHopper, OSRM محاسبه مسافت و زمان سفر بر اساس شبکه جاده‌ای
گروه‌بندی scikit-learn, SciPy خوشه‌بندی کارها بر اساس موقعیت جغرافیایی و ویژگی‌های مشترک
ساختاردهی JSON, Python dictionaries ایجاد ساختار استاندارد برای ورودی به الگوریتم بهینه‌سازی

این ساختار استاندارد، ورودی بهینه‌ای برای الگوریتم‌های بهینه‌سازی فراهم می‌کند.

قیود مسئله

قید فرمول توضیح    
هر کار دقیقاً یک بار انجام شود Σ Σ x_ijk = 1, ∀i∈I   k∈K j∈I  
تداوم مسیر هر تیم Σ x_ihk - Σ x_hjk = 0, ∀h∈I, ∀k∈K   i∈I j∈I  
محدودیت پنجره زمانی a_i ≤ s_ik ≤ b_i, ∀i∈I, ∀k∈K      
محدودیت ظرفیت تیم Σ Σ (d_i + t_ij) * x_ijk ≤ C_k, ∀k∈K   i∈I j∈I  

الگوریتم‌های حل

دسته الگوریتم روش‌ها کاربرد
دقیق Branch-and-Bound, Branch-and-Cut برای instances کوچک
فراابتکاری Genetic Algorithm, Simulated Annealing برای instances متوسط
متاهیوریستیک ALNS, Tabu Search برای instances بزرگ
یادگیری ماشین Reinforcement Learning برای محیط پویا

خروجی بهینه‌سازی

خروجی فرمت توضیح
تخصیص کار به تیم xijk تیم k از کار i به کار j می‌رود
زمان‌بندی کارها sik زمان شروع کار i توسط تیم k
مسیرهای بهینه [i1 → i2 → … → in] ترتیب انجام کارها برای هر تیم

مثال خروجی

{
  "team_assignments": [
    {
      "team_id": "T-HO-01",
      "route": [
        {
          "job_id": "J-001",
          "start_time": "08:30",
          "end_time": "10:15"
        },
        {
          "job_id": "J-003", 
          "start_time": "10:45",
          "end_time": "12:30"
        }
      ],
      "total_travel_time": 45,
      "total_work_time": 210
    }
  ],
  "objective_value": 255,
  "solve_time": "120s",
  "optimality_gap": "0.05%"
}

ساختار اجزا و فلوچارت کار

لایه‌های سیستم

🚪 لایه Frontend

کامپوننت تکنولوژی مسئولیت
مدیریت داشبورد React/Vue.js نمایش وضعیت روی نقشه، مانیتورینگ لحظه‌ای
پنل نظارت تیم‌ها TypeScript ردیابی موقعیت و وضعیت تیم‌ها
تحلیل کارایی Chart.js, D3.js تجزیه و تحلیل کاهش زمان سفر و تعادل کاری
اینترفیس سرپرستان Material-UI مدیریت تخصیص کار و برنامه‌ریزی

🌐 لایه API Gateway

سرویس تکنولوژی وظیفه
مسیریابی NGINX, Kong مدیریت ترافیک و Load Balancing
احراز هویت JWT, OAuth2 امنیت و مدیریت دسترسی‌ها
کش‌سازی Redis بهبود عملکرد درخواست‌های تکراری

⚙️ لایه Backend Services

سرویس تکنولوژی مسئولیت
Job Management Python/Django مدیریت کارهای تعمیراتی و اولویت‌بندی
Team Orchestrator Node.js هماهنگی و مدیریت تیم‌های تعمیراتی
Optimization API Python/FastAPI رابط سرویس بهینه‌سازی
Decision Engine Java/Spring موتور تصمیم‌گیری هوشمند
Geo Service Go سرویس‌های مکانی و مسیریابی

🧠 لایه هوشمند

کامپوننت تکنولوژی وظیفه
Optimization Engine Python, OR-Tools حل مسئله بهینه‌سازی تخصیص
ML Services Python, scikit-learn پیش‌بینی و تحلیل‌های هوشمند

💾 لایه داده

کامپوننت تکنولوژی وظیفه
پایگاه داده اصلی PostgreSQL ذخیره‌سازی داده‌های تراکنشی
پایگاه داده مکانی PostGIS مدیریت داده‌های جغرافیایی
کش Redis ذخیره‌سازی موقت داده‌های پرتکرار
جریان داده Apache Kafka پردازش رویدادهای بلادرنگ

📱 اپلیکیشن موبایل (تیم اندروید)

الزامات فنی

بخش تکنولوژی ویژگی‌ها
پلتفرم Android (Kotlin) پشتیبانی از نسخه ۸ به بالا
نقشه و موقعیت‌یابی Google Maps SDK نمایش موقعیت و مسیریابی
ارتباط بلادرنگ WebSocket, MQTT بروزرسانی وضعیت کارها
ذخیره‌سازی محلی Room Database عملکرد آفلاین
رابط کاربری Jetpack Compose طراحی مدرن و واکنش‌گرا

ماژول‌های اپلیکیشن

ماژول عملکرد
مدیریت کارها دریافت و نمایش کارهای تخصیص یافته
مسیریابی هوشمند نمایش بهینه‌ترین مسیر بین کارها
گزارش‌دهی ثبت پیشرفت کار و زمان‌بندی
ارتباط تیمی چت و هماهنگی با سرپرست و تیم‌ها
هشدار و اعلان دریافت اطلاعیه‌های فوری

🔧 الزامات سخت‌افزاری

سرورها

سرویس مشخصات تعداد
Application Server ۸ core, ۱۶GB RAM, ۵۰۰GB SSD ۳+
Database Server ۱۶ core, ۳۲GB RAM, ۱TB SSD ۲+
Cache & Message Broker ۴ core, ۸GB RAM, ۲۵۰GB SSD ۲+

زیرساخت شبکه

کامپوننت مشخصات
Load Balancer HAProxy / AWS ALB
CDN CloudFront / Cloudflare
Monitoring Prometheus, Grafana

🔒 ملاحظات امنیتی

لایه اقدامات امنیتی
Frontend HTTPS, CSP, XSS Protection
API Gateway Rate Limiting, API Key Management
Backend Encryption at Rest, SQL Injection Protection
Mobile App Certificate Pinning, Secure Storage

چارچوب اجرایی پروژه

فازبندی پروژه

فاز ۱: آماده‌سازی و طراحی

فعالیت مدت تخمینی خروجی‌ها مسئول
تحلیل نیازمندی‌های کسب‌وکار ۲ هفته سند نیازمندی‌های مفصل تحلیل‌گر کسب‌وکار
طراحی معماری فنی ۳ هفته نمودارهای معماری، انتخاب تکنولوژی‌ها معمار سیستم
طراحی پایگاه داده ۲ هفته مدل ERD، اسکریپت‌های دیتابیس معمار دیتابیس
طراحی واسط‌های کاربری ۲ هفته وایرفریم، پروتوتایپ طراح UX/UI

فاز ۲: توسعه

بخش Backend
ماژول مدت تخمینی تکنولوژی مسئول
هسته مسیریابی و بهینه‌سازی ۶ هفته Python, OR-Tools تیم بهینه‌سازی
سرویس‌های جغرافیایی ۳ هفته Go, PostGIS توسعه‌دهنده Backend
مدیریت کارها و تیم‌ها ۴ هفته Python/Django توسعه‌دهنده Backend
API Gateway ۲ هفته Node.js, Kong توسعه‌دهنده Backend
بخش Frontend
ماژول مدت تخمینی تکنولوژی مسئول
داشبورد عملیاتی ۵ هفته React, TypeScript توسعه‌دهنده Frontend
پنل مدیریت سرپرستان ۴ هفته Vue.js, Material-UI توسعه‌دهنده Frontend
نمایش نقشه و موقعیت‌ها ۳ هفته Leaflet, Mapbox توسعه‌دهنده Frontend
بخش موبایل
ماژول مدت تخمینی تکنولوژی مسئول
اپلیکیشن اندروید ۶ هفته Kotlin, Jetpack Compose توسعه‌دهنده موبایل
سرویس‌های موقعیت‌یابی ۳ هفته Google Maps SDK توسعه‌دهنده موبایل

فاز ۳: استقرار

فعالیت مدت تخمینی شرح مسئول
راه‌اندازی زیرساخت ۲ هفته سرورها، شبکه، دیتابیس DevOps
استقرار محیط تست ۱ هفته Deploy بر روی staging DevOps
تست یکپارچگی ۲ هفته Integration Testing QA
استقرار تولید ۱ هفته Deploy نهایی DevOps

گانت چارت تیم‌های توسعه

تیم بهینه‌سازی (۳ نفر)

نقش مسئولیت‌ها مهارت‌های مورد نیاز
پژوهشگر بهینه‌سازی طراحی الگوریتم‌ها، مدل‌سازی مسئله OR-Tools، مسائل VRP، الگوریتم‌های فراابتکاری
توسعه‌دهنده هوش مصنوعی پیاده‌سازی مدل‌های ML Python، scikit-learn، TensorFlow
مهندس نرم‌افزار توسعه سرویس بهینه‌سازی Python، FastAPI، Docker

تیم توسعه امنیت (۲ نفر)

نقش مسئولیت‌ها مهارت‌های مورد نیاز
متخصص امنیت نرم‌افزار امنیت برنامه‌های تحت وب OWASP، تست نفوذ، رمزنگاری
مهندس امنیت زیرساخت امنیت شبکه و سرورها Linux Hardening، شبکه، فایروال

تیم توسعه Backend (۴ نفر)

نقش مسئولیت‌ها مهارت‌های مورد نیاز
توسعه‌دهنده ارشد طراحی معماری سرویس‌ها Python، Django، طراحی الگوها
توسعه‌دهنده میانی توسعه ماژول‌های کسب‌وکار Python، REST APIs، PostgreSQL
توسعه‌دهنده سرویس‌های مکانی توسعه سرویس‌های موقعیت‌مکانی Go، PostGIS، GraphHopper
توسعه‌دهنده API توسعه و مدیریت API Gateway Node.js، Kong، Redis

تیم توسعه Frontend (۳ نفر)

نقش مسئولیت‌ها مهارت‌های مورد نیاز
توسعه‌دهنده ارشد Frontend طراحی معماری فرانت‌اند React، TypeScript، State Management
توسعه‌دهنده Frontend توسعه کامپوننت‌ها Vue.js، JavaScript، CSS
طراح UX/UI طراحی رابط کاربری Figma، Adobe XD، طراحی واکنش‌گرا

تیم توسعه موبایل (۲ نفر)

نقش مسئولیت‌ها مهارت‌های مورد نیاز
توسعه‌دهنده ارشد اندروید توسعه اپلیکیشن موبایل Kotlin، Jetpack Compose، Android SDK
توسعه‌دهنده اندروید توسعه ماژول‌های اپلیکیشن Java، Room Database، Location Services

تیم DevOps (۲ نفر)

نقش مسئولیت‌ها مهارت‌های مورد نیاز
مهندس DevOps مدیریت زیرساخت Docker، Kubernetes، AWS/Azure
مهندس پایگاه داده مدیریت و بهینه‌سازی دیتابیس PostgreSQL، Redis، Monitoring

جدول زمانی کلی (بر اساس هفته)

هفته ۱-۲ ۳-۵ ۶-۹ ۱۰-۱۳ ۱۴-۱۶ ۱۷-۱۹ ۲۰-۲۱ ۲۲-۲۴
فاز ۱            
فاز ۲        
فاز ۳            
تست          
استقرار