{"id":35165131,"url":"https://github.com/runer0101/solucion-mpl","last_synced_at":"2026-04-29T03:05:50.512Z","repository":{"id":338891623,"uuid":"1123754580","full_name":"runer0101/Solucion-MPL","owner":"runer0101","description":"Aplicacion educativa para resolver Programacion Lineal con Simplex, Grafico y Transporte — explicaciones paso a paso.","archived":false,"fork":false,"pushed_at":"2026-03-26T04:36:59.000Z","size":903,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-26T06:41:44.729Z","etag":null,"topics":["education","javascript","linear-programming","operations-research","optimization","simplex-method","transportation-problem","vite","vue3"],"latest_commit_sha":null,"homepage":"https://runer0101.github.io/Solucion-MPL/","language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/runer0101.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-27T14:51:58.000Z","updated_at":"2026-03-26T04:37:02.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/runer0101/Solucion-MPL","commit_stats":null,"previous_names":["runer0101/solucion-mpl"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/runer0101/Solucion-MPL","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/runer0101%2FSolucion-MPL","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/runer0101%2FSolucion-MPL/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/runer0101%2FSolucion-MPL/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/runer0101%2FSolucion-MPL/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/runer0101","download_url":"https://codeload.github.com/runer0101/Solucion-MPL/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/runer0101%2FSolucion-MPL/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32408447,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T02:37:21.628Z","status":"ssl_error","status_checked_at":"2026-04-29T02:36:50.947Z","response_time":110,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["education","javascript","linear-programming","operations-research","optimization","simplex-method","transportation-problem","vite","vue3"],"created_at":"2025-12-28T19:26:54.790Z","updated_at":"2026-04-29T03:05:50.506Z","avatar_url":"https://github.com/runer0101.png","language":"Vue","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# Solucion MPL\n\n**Aplicacion educativa para resolver problemas de Programacion Lineal**\nSimplex · Grafico · Transporte · Comparacion cruzada\n\n[![CI](https://github.com/runer0101/Solucion-MPL/actions/workflows/ci.yml/badge.svg)](https://github.com/runer0101/Solucion-MPL/actions/workflows/ci.yml)\n[![Deploy](https://github.com/runer0101/Solucion-MPL/actions/workflows/deploy.yml/badge.svg)](https://github.com/runer0101/Solucion-MPL/actions/workflows/deploy.yml)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue?style=flat-square)](https://opensource.org/licenses/MIT)\n[![Node](https://img.shields.io/badge/Node.js-20%2B-339933?style=flat-square\u0026logo=node.js\u0026logoColor=white)](https://nodejs.org/)\n[![Vue](https://img.shields.io/badge/Vue-3.5-4FC08D?style=flat-square\u0026logo=vue.js\u0026logoColor=white)](https://vuejs.org/)\n[![Vite](https://img.shields.io/badge/Vite-7-646CFF?style=flat-square\u0026logo=vite\u0026logoColor=white)](https://vite.dev/)\n\n**[Ver Demo en Vivo](https://runer0101.github.io/Solucion-MPL/)** · **[Reportar Bug](https://github.com/runer0101/Solucion-MPL/issues/new?template=bug_report.md)** · **[Solicitar Feature](https://github.com/runer0101/Solucion-MPL/issues/new?template=feature_request.md)**\n\n\u003c/div\u003e\n\n---\n\n## Que es esto\n\nHerramienta web interactiva para resolver y aprender **Programacion Lineal**. Desarrollada como apoyo academico para el curso de Investigacion Operativa I en la **Universidad Privada Domingo Savio (UPDS)**.\n\nCada metodo muestra el proceso completo paso a paso — no solo el resultado final.\n\n---\n\n## Metodos disponibles\n\n| Metodo | Descripcion | Variables |\n|--------|-------------|-----------|\n| **Simplex** | Resolucion algebraica iterativa con tablas completas | N variables |\n| **Grafico** | Visualizacion geometrica de la region factible | Solo 2 variables |\n| **Transporte** | Esquina Noroeste, Costo Minimo y Vogel (VAM) | M origenes × N destinos |\n| **Comparacion** | Validacion cruzada automatica entre todos los metodos | N variables |\n\n---\n\n## Funcionalidades\n\n- **Paso a paso** — cada iteracion explicada con notacion matematica\n- **Comparacion de costos** — identifica el metodo optimo de transporte y calcula el ahorro\n- **Validacion cruzada** — verifica que Simplex y Grafico convergen al mismo resultado\n- **Ejemplos precargados** — casos listos para empezar sin configurar nada\n- **Tutorial integrado** — guia interactiva para formular problemas desde cero\n- **Teoria completa** — referencia matematica de cada metodo dentro de la app\n- **Exportacion** — descarga la solucion en formato texto o PDF\n- **Responsive** — funciona en desktop, tablet y movil\n\n---\n\n## Stack tecnologico\n\n| Tecnologia | Version | Proposito |\n|-----------|---------|-----------|\n| Vue.js | 3.5 | Framework reactivo (Composition API) |\n| Vite | 7 | Build tool y dev server |\n| jsPDF + AutoTable | 3 / 5 | Generacion y exportacion de PDFs |\n| Vitest | 3 | Tests unitarios |\n| ESLint + Prettier | — | Calidad y formato de codigo |\n| GitHub Actions | — | CI/CD automatico |\n| GitHub Pages | — | Hosting estatico |\n\n**Patrones Vue 3 modernos:** `\u003cscript setup\u003e`, `defineModel()`, directivas personalizadas (`v-ripple`), `computed()`, `watch()`, `nextTick()`, lazy loading de componentes.\n\n---\n\n## Inicio rapido\n\n**Prerequisito:** Node.js v20.19+ o v22.12+\n\n```bash\ngit clone https://github.com/runer0101/Solucion-MPL.git\ncd Solucion-MPL\nnpm install\nnpm run dev\n```\n\nEl servidor estara disponible en `http://localhost:5173`\n\n### Comandos disponibles\n\n```bash\nnpm run dev       # Servidor de desarrollo\nnpm run build     # Compilacion para produccion\nnpm run preview   # Previsualizar build\nnpm run lint      # Linter ESLint\nnpm run format    # Formatear con Prettier\nnpm run test      # Tests unitarios (Vitest)\n```\n\n---\n\n## Estructura del proyecto\n\n```\nSolucion-MPL/\n├── src/\n│   ├── components/\n│   │   ├── SimplexInput.vue       # Formulario (defineModel, pestanas)\n│   │   ├── SimplexSolution.vue    # Visualizacion de resultados\n│   │   ├── SimplexTable.vue       # Tabla Simplex iterativa\n│   │   ├── TransporteInput.vue    # Formulario de transporte\n│   │   ├── CompararTodos.vue      # Comparacion cruzada\n│   │   └── MethodExplanation.vue  # Explicaciones teoricas\n│   ├── utils/\n│   │   ├── simplex.js             # Algoritmo Simplex (Big-M)\n│   │   ├── grafico.js             # Metodo Grafico\n│   │   ├── transporte.js          # NW, Costo Minimo, Vogel\n│   │   └── formatters.js          # Formato numerico\n│   ├── directives/\n│   │   └── ripple.js              # Directiva v-ripple\n│   ├── data/\n│   │   └── examples.js            # Ejemplos compartidos\n│   ├── assets/\n│   │   └── variables.css          # Variables CSS globales\n│   ├── App.vue                    # Componente raiz\n│   └── main.js                   # Punto de entrada\n├── test/\n│   └── simplex.spec.js            # Tests unitarios\n├── .github/workflows/\n│   ├── ci.yml                     # CI: lint, test, build\n│   └── deploy.yml                 # Deploy a GitHub Pages\n├── vite.config.js\n├── vitest.config.js\n└── package.json\n```\n\n---\n\n## Algoritmos\n\n### Simplex\nResolucion algebraica con pivoteo Gauss-Jordan. Maneja variables de holgura, exceso y artificiales (metodo Big-M dinamico: 1000× el coeficiente maximo del problema). Detecta y reporta tres estados finales: solucion optima, problema infactible (variables artificiales en la base con valor \u003e 0) y problema no acotado (sin fila pivote valida). Complejidad: O(n³) por iteracion.\n\n### Grafico\nCalcula intersecciones de restricciones, identifica los vertices del poligono factible y evalua la funcion objetivo en cada extremo. Solo para 2 variables.\n\n### Transporte\n\n| Metodo | Estrategia | Complejidad |\n|--------|-----------|-------------|\n| Esquina Noroeste | Asigna desde la celda superior izquierda | O(m×n) |\n| Costo Minimo | Prioriza celdas de menor costo | O(m×n log(m×n)) |\n| Vogel (VAM) | Penalizacion por diferencia de costos | O(m²×n²) |\n\nLos tres metodos verifican balance automaticamente (oferta = demanda) y se comparan entre si para identificar el de menor costo total.\n\n---\n\n## Como usar\n\n### Simplex / Grafico\n\n1. Selecciona el metodo desde la pantalla de bienvenida\n2. Configura variables, restricciones y tipo de problema (Max / Min)\n3. Ingresa coeficientes de la funcion objetivo y restricciones\n4. Haz clic en **Resolver Problema**\n\nLos resultados muestran la solucion optima, las iteraciones completas y (para el metodo Grafico) la grafica de la region factible.\n\n### Transporte\n\n1. Define origenes, destinos, oferta, demanda y matriz de costos\n2. La app resuelve automaticamente con los 3 metodos y compara resultados\n\n### Comparacion\n\nEjecuta todos los metodos aplicables sobre el mismo problema y muestra si convergen al mismo resultado optimo.\n\n---\n\n## Contexto academico\n\nDesarrollado para el curso de **Investigacion Operativa I** — Universidad Privada Domingo Savio (UPDS). El objetivo es complementar la teoria con visualizaciones interactivas que faciliten la comprension de los algoritmos de optimizacion lineal.\n\n---\n\n## Contribuciones\n\nLas contribuciones son bienvenidas.\n\n```bash\n# 1. Fork el repositorio\n# 2. Crea tu rama\ngit checkout -b feat/nueva-funcionalidad\n\n# 3. Commit con formato convencional\ngit commit -m \"feat: descripcion del cambio\"\n\n# 4. Push y abre un Pull Request\ngit push origin feat/nueva-funcionalidad\n```\n\nAreas donde puedes contribuir: correccion de bugs matematicos, nuevos metodos de optimizacion, mejoras de UI/UX, traduccion a otros idiomas, mas tests unitarios.\n\n---\n\n## Changelog\n\n### v1.0.1\n- fix: exportacion PDF en Simplex y Transporte actualizada a API de jspdf-autotable v5\n- fix: error de PDF ya no destruye la solucion calculada\n- fix: deteccion real de problema infactible en el solver Simplex (Big-M)\n- fix: mensaje visual claro para problemas infactibles y no acotados\n\n### v1.0.0\n- Lanzamiento inicial con Simplex, Grafico y Transporte\n- CI/CD con GitHub Actions y deploy automatico a GitHub Pages\n\n---\n\n## Licencia\n\nMIT — consulta el archivo [LICENSE](LICENSE) para mas detalles.\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\nDesarrollado por **[Cesar Camacho Duran](https://github.com/runer0101)** · UPDS · Investigacion Operativa I\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fruner0101%2Fsolucion-mpl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fruner0101%2Fsolucion-mpl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fruner0101%2Fsolucion-mpl/lists"}