<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Najib ERRAMI</title><link>https://najibprog.github.io/najiberrami/</link><description>Recent content on Najib ERRAMI</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Thu, 06 Apr 2023 15:00:53 +0100</lastBuildDate><atom:link href="https://najibprog.github.io/najiberrami/index.xml" rel="self" type="application/rss+xml"/><item><title>VRPSolverEasy: a Python library for the exact solution of a rich vehicle routing problem</title><link>https://najibprog.github.io/najiberrami/contributions/vrpsolvereasy/</link><pubDate>Thu, 06 Apr 2023 15:00:53 +0100</pubDate><guid>https://najibprog.github.io/najiberrami/contributions/vrpsolvereasy/</guid><description>&lt;h1 id="heading">&lt;/h1>
&lt;h2 id="project-overview">Project Overview&lt;/h2>
&lt;p>VRPSolverEasy is an advanced optimization library designed to solve Vehicle Routing Problems (VRP) and its variants using sophisticated Branch and Price algorithms. The project provides a comprehensive solution for researchers and practitioners in logistics, transportation, and optimization.&lt;/p>
&lt;h2 id="repository">Repository&lt;/h2>
&lt;p>🔗 &lt;strong>GitHub&lt;/strong>: &lt;a href="https://github.com/inria-UFF/VRPSolverEasy/">https://github.com/inria-UFF/VRPSolverEasy/&lt;/a>&lt;/p>
&lt;h2 id="article">Article&lt;/h2>
&lt;p>📄 &lt;strong>Publication&lt;/strong>: &lt;a href="https://pubsonline.informs.org/doi/abs/10.1287/ijoc.2023.0103">VRPSolverEasy: A Python Library for the Exact Solution of a Rich Vehicle Routing Problem&lt;/a>&lt;/p>
&lt;h2 id="technical-architecture">Technical Architecture&lt;/h2>
&lt;h3 id="core-technologies">Core Technologies&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Languages&lt;/strong>: C++, Python&lt;/li>
&lt;li>&lt;strong>Field&lt;/strong>: Integer Linear Programming&lt;/li>
&lt;li>&lt;strong>Optimization Techniques&lt;/strong>: Branch and Cut and Price Algorithm&lt;/li>
&lt;/ul>
&lt;h3 id="key-components">Key Components&lt;/h3>
&lt;ol>
&lt;li>
&lt;p>&lt;strong>C++ Optimization Core&lt;/strong>&lt;/p></description></item><item><title>XLOptim: Advanced Optimization Solver for Excel</title><link>https://najibprog.github.io/najiberrami/contributions/xloptim/</link><pubDate>Tue, 01 Dec 2020 15:00:53 +0100</pubDate><guid>https://najibprog.github.io/najiberrami/contributions/xloptim/</guid><description>&lt;h2 id="technical-overview">Technical Overview&lt;/h2>
&lt;p>XLOptim was a specialized optimization add-on for Excel, developed by XLSTAT (later acquired by Lumivero) as a proof of concept that leveraged LocalSolver(Hexaly)&amp;rsquo;s powerful local search optimization engine.&lt;/p>
&lt;h2 id="core-technology-c-to-vba-wrapper">Core Technology: C++ to VBA Wrapper&lt;/h2>
&lt;h3 id="technical-architecture">Technical Architecture&lt;/h3>
&lt;h4 id="wrapper-technology">Wrapper Technology&lt;/h4>
&lt;ul>
&lt;li>&lt;strong>Language Bridge&lt;/strong>: Custom C++ to VBA wrapper&lt;/li>
&lt;li>&lt;strong>Purpose&lt;/strong>: Enable seamless integration of LocalSolver&amp;rsquo;s C++ optimization engine with Excel&amp;rsquo;s VBA environment&lt;/li>
&lt;li>&lt;strong>Key Components&lt;/strong>:
&lt;ul>
&lt;li>C++ Dynamic Link Library (DLL)&lt;/li>
&lt;li>VBA Interface Module&lt;/li>
&lt;li>Memory Management Layer&lt;/li>
&lt;li>Optimization Algorithm Translations&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h4 id="wrapper-functionality">Wrapper Functionality&lt;/h4>
&lt;ul>
&lt;li>&lt;strong>Data Translation&lt;/strong>: Convert Excel cell ranges to C++ data structures&lt;/li>
&lt;li>&lt;strong>Optimization Engine Calls&lt;/strong>: Translate VBA parameters to mathematical model&lt;/li>
&lt;li>&lt;strong>Result Propagation&lt;/strong>: Return optimization results back to Excel spreadsheets&lt;/li>
&lt;li>&lt;strong>Error Handling&lt;/strong>: Robust error management between C++ and VBA contexts&lt;/li>
&lt;/ul>
&lt;h2 id="optimization-approach">Optimization Approach&lt;/h2>
&lt;h3 id="localsolver-integration">LocalSolver Integration&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Search Strategy&lt;/strong>: Local search metaheuristics&lt;/li>
&lt;li>&lt;strong>Optimization Types&lt;/strong>:
&lt;ul>
&lt;li>Continuous optimization&lt;/li>
&lt;li>Discrete optimization&lt;/li>
&lt;li>Mixed-integer optimization&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="excel-add-on-capabilities">Excel Add-On Capabilities&lt;/h3>
&lt;ul>
&lt;li>Direct optimization within Excel spreadsheets&lt;/li>
&lt;li>Support for complex constraint modeling&lt;/li>
&lt;li>Rapid solving of optimization problems&lt;/li>
&lt;li>Seamless integration with existing Excel workflows&lt;/li>
&lt;/ul>
&lt;h2 id="development-context">Development Context&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Creator&lt;/strong>: XLSTAT Research Team&lt;/li>
&lt;li>&lt;strong>Technological Foundation&lt;/strong>: LocalSolver&amp;rsquo;s optimization engine&lt;/li>
&lt;li>&lt;strong>Acquisition&lt;/strong>: Integrated into Lumivero&amp;rsquo;s product portfolio&lt;/li>
&lt;/ul>
&lt;h2 id="technical-challenges-solved">Technical Challenges Solved&lt;/h2>
&lt;ol>
&lt;li>Bridging C++ high-performance computing with Excel&amp;rsquo;s VBA&lt;/li>
&lt;li>Translating complex mathematical models across language boundaries&lt;/li>
&lt;li>Maintaining performance while providing user-friendly interface&lt;/li>
&lt;li>Robust error handling in mixed-language environment&lt;/li>
&lt;/ol>
&lt;h2 id="wrapper-technical-challenges">Wrapper Technical Challenges&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Memory Management&lt;/strong>: Preventing memory leaks&lt;/li>
&lt;li>&lt;strong>Data Type Conversion&lt;/strong>: Handling numerical precision&lt;/li>
&lt;li>&lt;strong>Performance Optimization&lt;/strong>: Minimizing overhead&lt;/li>
&lt;li>&lt;strong>Error Propagation&lt;/strong>: Consistent error reporting&lt;/li>
&lt;/ul>
&lt;h2 id="use-cases">Use Cases&lt;/h2>
&lt;ul>
&lt;li>Financial modeling&lt;/li>
&lt;li>Resource allocation&lt;/li>
&lt;li>Production planning&lt;/li>
&lt;li>Portfolio optimization&lt;/li>
&lt;li>Scheduling problems&lt;/li>
&lt;/ul></description></item></channel></rss>