# O2DESNet-patch **Repository Path**: pklue/O2DESNet-patch ## Basic Information - **Project Name**: O2DESNet-patch - **Description**: 改动了原O2DES中的Sandbox,通过增加对象池和事件预定逻辑,提升了部分场景下的效率 - **Primary Language**: C# - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-03-29 - **Last Updated**: 2024-04-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 仓库说明 原仓库:https://gitlab.com/li-haobin/O2DESNet 改动了原O2DES中的Sandbox,通过增加对象池和修改事件预定逻辑(Sanbox.cs和Event.cs),提升了部分场景下的效率 之前师门同学大多通过Nuget导入使用,这个仓库没有申请,因此在Nuget上下不到,可以直接在该页面下载源码,放到工程目录下就可以使用了,记得在Nuget上卸载之前安装的O2DES(应该还要在Nuget安装MathNet) # 保姆使用教程 - 首先在这个页面的右边点[克隆/下载] - 下载Zip - 下载下来的压缩包解压,只需要O2DESNet这个文件夹,其他的的测试文件夹和说明文件等,都可以不要 - 然后把文件夹复制到工程里就能使用了(缺的依赖在Nuget上安好:MathNet等) - 如果之间用Nuget安了原来的O2DES,需要在Nuget里面把它卸载了 - 要是报错什么的,O2DESNet文件夹里面的 O2DESNet.csproj 还有其他新生成的文件夹也可以删了,重新运行试试 - 另外,大家可以尝试学一下用Git管理自己的项目,还可以通过Clone等方式更方便地操作 - 有Bug或者问题可以直接邮箱问 # O2DES.Net A framework for discrete event simulator, highly OOP and with native support of time dilation ## Supported .NET Version - .NET Standard 2.0 (Recommended) - .NET Framework 4.7.2 (Minimum Version) ## Setup Options for .NET Core 2.2/3.0 (Windows/Linux/MacOS) - Option 1: Install [.NET Core SDK](https://dotnet.microsoft.com/download). - Option 2: From Visual Studio Installer, enable Cross-Platform Development. ## Setup Options for .NET Framework 4.7.2 (Windows Only) - Option 1: Install [.NET Framework 4.7.2](https://dotnet.microsoft.com/download). - Option 2: From Visual Studio Installer, go to components and checked option to install .NET Framework 4.7.2. # Change Log ## Version 2.4.1 ```diff + Include Uniform and Exponential for the random generators. ``` ## Version 2.4 ```diff + Include a dynamic server based PathMover (Zhou et al. 2017, WSC) module for simulating traffic network. + Include customized Empirical and Gamma random generators, with parameters fitting simulation studies. ``` ## Version 2.3.2 ```diff + [Important Fix] All events generated are uniquely indexed. Revise the sorting mechanism the FEL (future event list) such that same time events are ordered based on the sequence they are generated. This prevents untraceable distortion of simulation results, i.e., it guarantees that the single random seed always leads to the same sample path. - Remove conosle display if only log to file in Event. ``` ## Version 2.3.1 ```diff + Include Histogram and Percentile methods in HourCounter, to facilitate the statistics on the distribution of the observed count. + Differentiate "Utilization" (when the load is being processed by the server) and "Occupation" (when the load is occupying server's capacity, i.e., both being served and stucked) for the server statistics. ``` ## Version 2.3.0 ```diff + Revise Queue and Server for higher modularity, and comply with DEVS standards. - Temporarily remove FIFOServer, Resource, RestoreServer, and PathMover, due to unstable performance. + Include Synchronizer, that checks multiple conditions and triggers events when all conditions are satisfied or unsatisfied. + Modify "Utilization" of Server / RestoreServer by excluding those processed but not departed; instead add "Occupation" for the the inclusive counting. + Rename "Status" as "State" to be consistent with most simulation literature. ``` ## Version 2.2.1 ```diff + Change font-size for Path label for displaying dense path network. + Add X, Y, Rotate transform to Path SVG description. ``` ## Verssion 2.2.0 ```diff + In Depart() event of Server, instead of checking the first load in the Served list (and continue only if the first is departed), all loads will be screened for ToDepart condition and depart if respective condition is satisfied. + Implement FIFO Server, as for modelling PathMover system. + Add NCoccupied as dynamic property of Server / RestoreServer / FIFOServer, for easy call. + Add StartTimes and FinishTimes in Server, for Loads occupying the Server. + WriteToConsole method of Status / Component may take in clockTime:DateTime parameter, as need for determining position of vehicles in PathMover. + Include PathMover. ``` ## Version 2.1.2 ```diff + Allows Load to have Static properties as "Category", considering it's a special type of 2. Component that have life cycles in simulation. + Rename Static property of a normal Component as "Config". + Therefore, they coincide with Statics of a Simulation as "Scenario". ``` ## Version 2.1.1 ```diff + Simplifies structure of Component definition, by encapsulate StaticProperty based on root class, i.e., Component : Component. ``` ## Version 2.1.0 ```diff - Remove TScenario and TStatus in Component paradigm. + Construct Simulator by Assembly (Component). + Demo for the two revision above. ```