Simulation as a Decision-Support Tool in Construction Project Management - Simphony as a Service.pptx

MuhtasimFuadRafid 50 views 38 slides Jun 04, 2024
Slide 1
Slide 1 of 38
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38

About This Presentation

Simulation is a powerful tool, critical to effective construction project management.
They can provide decision support for different aspects of a construction project, but
they have not been adopted widely in the construction industry as they are difficult
to use.
This thesis has developed Simphony...


Slide Content

Simulation as a Decision-Support Tool in Construction Project Management - Simphony as a Service Muhtasim Fuad Rafid Supervised By Dr. Eleni Stroulia Department of Computing Science University of Alberta

Background - Simulation in Construction 1999 Simphony D Hajjar, S AbouRizk A discrete event, special-purpose simulation system for construction. It presents a modular and hierarchical modeling language to better represent larger and more complex projects. 2016 Simphony Simulation System S AbouRizk, S Hague, R Ekyalimpa and S Newstead Introduces 3 components: (1) Simphony Core Services - a DES engine (2) Simphony Modeling Services - graphical modeling elements for simulation (3) Simphony Modeling Environment - GUI for simulation 1977 Cyclone Daniel W Martin A simulation language, typically encompasses elements for representing work tasks, their logical relationships, and resources required by the work task. 1994 Stroboscope JC Martinez, PG Ioanno A general-purpose simulation programming language for the construction domain, driven by object-oriented programming. The language allowed the user to define activities, resources, and resource flow to create a simulation model. 2021 Simphony Dynamic R Labban, S Hague, E Pourrahimian, S AbouRizk Introduces a modeling language aligned with construction, an intuitive GUI and visualizations for decision support. 2

Background Simulation tools are not popular in construction! They are costly and difficult to learn They require deep understanding of the simulation model to harness their full potential Model creation and updates can be difficult Lucko, G., Benjamin, P. C., & Madden, M. G. (2008, December). Harnessing the power of simulation in the project management/decision support aspects of the construction industry. In 2008 Winter Simulation Conference (pp. 2479-2487). IEEE. 3

Background - Simphony Dynamic 4

Background - Simphony Dynamic Pros Simulation fine-tuned for construction scenarios Makes discrete event simulation more accessible and understandable Several visualizations useful for decision support 5 Cons Can be difficult to learn Based on legacy software framework (no longer supported) Difficult to update (substantial retesting required) Difficult to adopt (desktop-based, local dependencies) A monolithic desktop system with much potential if rearchitected into a microservice SaaS

Thesis Objectives The purpose of this research is to re-architect the Simphony simulation environment to a microservice-based SaaS tool, so that (i) it is more easily accessible and usable to the different roles in the construction process, (ii) it can easily support real-time updates from the construction site, and (iii) migrate into a software codebase that is easier to expand. 6 Accomplishing these two objectives will: Allow Simphony to make more real-world impact and Enable automatic updating of the simulation model, hence enhancing model re-usability

Requirements Is available as a service and meets the state-of-the-art software engineering standards Can be easily integrated with construction practices Supports crew leads to provide accurate and timely updates on the project progress Enables exploration of what-if scenarios, based on alternative resource assumptions for informed decision-making Supports project management by identifying critical tasks and evaluating alternative schedules. 7

Before: Simphony Dynamic Courtesy: Steven Hague Visualization Simphony Dynamic Simulation Model Construction Site Manual Updates Decision Making Simulation Results 8 Project Managers Simulation Expert

Visualization Simphony saas Simulation Model Construction Site Automated Updates Decision Making Realtime Data Simulation Results Project Managers Crew Leads After: Simphony as a Service 9

Simphony Core Services Discrete Event Simulation Engine, Statistical Services, Probability Distribution Fitting and Sampling, etc. Custom Applications (Simphony Dynamic) Developed in C#, VB, ASP, etc. General Template Special Purpose Templates Developed in C# or VB Simphony User Interface Simphony Modeling Services Modeling Elements, Connection Points, Relationships, etc. Simphony Architecture 10 Courtesy: Steven Hague

Simphony Core Services Discrete Event Simulation Engine, Statistical Services, Probability Distribution Fitting and Sampling, etc. Simphony Dynamic Construction Project Simulation Simphony as a Service Construction Project Simulation as a Service, Realtime progress tracking Simphony aas - Top Level Architecture 11

New Development Reuse and Migration Simphony aas Microservices - Architecture Simphony Simulation MicroService Stack : ASP .NET Core, C#, Infrastructure : Docker, Azure Container Registry, Azure Web App Url: simphonywebapp.azurewebsites.net Simulation Spec JSON Protocol : HTTP Architecture : REST Simulation Results JSON Protocol : HTTP Architecture : REST GraphDB Simphony Repository MicroService Stack : Python Model RDF Simphony Web Interface Stack : React.js, JavaScript Infrastructure : Docker, Azure Container Registry, Azure Web App Model Data Simulation Results Progress Monitoring Mobile App Stack : React Native, JavaScript Infrastructure : Android, IOS Model Data Realtime Progress 12

Simphony Microservices GraphDB (RDF based Graph Database) - The database that contains the simulation model, simulation results and real-time data Simphony Repository MicroService - A microservice written in Python, which exposes APIs to communicate with the GraphDB Simphony Simulation MicroService - The Simphony Dynamic project, wrapped into ASP.NET Core in order to communicate via the web Progress Monitoring Mobile App - A cross-platform mobile application, that can be used by the people present in the construction site to update the real-time progress Simphony Web Frontend - A React.js frontend that acts as a dashboard for viewing and editing project status 13

Simphony Simulation MicroService - Internal Architecture api/simulate Simulation Spec JSON Protocol : HTTP Architecture : REST Simulation Results JSON Simphony Dynamic Engine Simphony Dynamic PCL Model Object SimulationService (C# Class) Deserialized Simulation Spec C# Object Simphony Dynamic PCL Simulation Results SimulationController (ASP .Net Entrypoints) Simphony Core Engine 14 Client

Simphony Repository Microservice The simphony repository microservice acts as an interface to the GraphDB instance It exposes REST endpoints to serve and save data regarding model, real progress and simulation Written on Python and FastAPI to support asynchronous request handling Communicates with the Mobile Application and the Web Interface GraphDB Simphony Repository MicroService Stack : Python Model RDF Simphony Web Interface Stack : React.js, JavaScript Infrastructure : Docker, Azure Container Registry, Azure Web App Model Data Simulation Results Progress Monitoring Mobile App Stack : React Native, JavaScript Infrastructure : Android, IOS Model Data Realtime Progress 15

Progress Monitoring Mobile App The mobile application allows on site personnel (crew leads, site managers) to report daily task progress Communicates with Simphony Repository MicroService to store progress GraphDB Simphony Repository MicroService Stack : Python Model RDF Simphony Web Interface Stack : React.js, JavaScript Infrastructure : Docker, Azure Container Registry, Azure Web App Model Data Simulation Results Progress Monitoring Mobile App Stack : React Native, JavaScript Infrastructure : Android, IOS Model Data Realtime Progress 16

Simphony Web Interface The web interface provides visualization of the simulation results and current progress of the project Allows the project manager to run what-if scenarios Shows real-time critical path analysis Built using modern React.js UI components GraphDB Simphony Repository MicroService Stack : Python Model RDF Simphony Web Interface Stack : React.js, JavaScript Infrastructure : Docker, Azure Container Registry, Azure Web App Model Data Simulation Results Progress Monitoring Mobile App Stack : React Native, JavaScript Infrastructure : Android, IOS Model Data Realtime Progress 17

GraphDB Database GraphDB is the graph database that contains all the models, simulation results and real-time data Can be queried using SPARQL Can only be accessed through the Repository MicroService GraphDB Simphony Repository MicroService Stack : Python Model RDF Simphony Web Interface Stack : React.js, JavaScript Infrastructure : Docker, Azure Container Registry, Azure Web App Model Data Simulation Results Progress Monitoring Mobile App Stack : React Native, JavaScript Infrastructure : Android, IOS Model Data Realtime Progress 18

Model Editing Interface 19

20 Model Editing Interface Browser based re-creation of the Simphony Dynamic UI Can be used to create new models for projects Can be used to update the Baseline model of a project

The Simphony Dynamic Data Model Entity Description Resource All kinds of manpower are considered as resources. For example - Labourers, Brick layers. Crew A collection of resources working together on a single task is a crew. Task A task is some work that can be done by a crew. For example, to build a wall, there are 5 tasks : Frame Wall, Install Panels, Tape Seams, Apply Compound, Paint Finish Workflow A Workflow is a collection of tasks, connected to each other which are done in a particular order to create a product. For example, to build a wall, 5 tasks need to be done in the following order : Frame Wall -> Install Panels -> Tape Seams -> Apply Compound -> Paint Finish Product A product is the result of a workflow. For example, a roof is built after finishing 5 tasks in the roof building workflow. Schedule A high level plan, which sets the early start and late finish for a set of tasks. 21

Simulation model - A graph A simulation model in Simphony Dynamic is essentially a Directed Acyclic Graph . Hence, GraphDB and RDF were chosen. 22 Node Edge

RDF is a child of the web, formulated back in the 1990s, by Tim Bray at Netscape as a metadata schema for describing things. The basic idea is simple: RDF files consist of a set of logical assertions, in the form of <subject, predicate, object> — known as a triple. Graph Databases - RDF Reference: https://terminusdb.com/blog/graph-database-fundamental s RDF-based Graph databases uses SPARQL as query language. 23

Specification of a Construction Project in Simphony aas 24

sdm:duration sdm:manHours 25 sdm:Task sdm:Workflow sdm:Product sdm:Crew sdm:Resources sdm:ProductTask sdm:HistoricalProgress sdm:Schedule sdm:hasCrewResource sdm:CrewResources sdm:hasResource sdm:ResourceAvailability sdm:hasAvailability xsd:date xsd:integer sdm:availableFrom xsd:double sdm:quantity xsd: double xsd: double xsd: double sdm:taskDuration sdm:minProgress sdm:meanProgress sdm:maxProgress sdm:hasPredecessorTask sdm:hasSuccesorTask xsd:dateTime xsd: dateTime sdm:earlyStart sdm:lateFinish xsd:double xsd:double sdm:hasSchedule sdm:hasTask sdm:historicalProgress sdm:hasTask sdm:hasWorkflow owl:subClassOf sdm:hasCrew PREFIX sdm: <http://simphony.dynamic/model/0.1/> PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> xsd:integer sdm:resourceQuantity xsd: double xsd: double xsd: double xsd: double xsd: double sdm:finishToStartDays sdm:startToStartDays sdm:startToStartPercentage sdm:finishToFinishDays sdm:finishToFinishPercentage

Results of a Simulation in Simphony aas 26

27 sdm:Task sds:SimulationProgress sds:hasSimulatedProgress xsd:boolean xsd:dateTime xsd:dateTime sds:simulatedStart sds:simulatedFinish sdm:isInCriticalPath xsd:dateTime xsd:double sds:date sds:progress sds:ResourceUtilization sdm:Resource sds:hasUtilization xsd:dateTime xsd:integer xsd:integer sds:date sds:available sds:inUse sds:CrewWaitingTimes sds:CrewFileLength xsd:string sds:waitingTime sdm:Crew xsd:dateTime xsd:integer sds:date sds:fileLength sds:crewWaitingFor sds:hasFileLength PREFIX sdm: <http://simphony.dynamic/model/0.1/> PREFIX sds: <http://simphony.dynamic/simulation/0.1/> PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> sds:hasWaitingTime

Digital Construction Ontologies (DiCo) Is BFO (Basic Formal Ontology) ISO compliant A set of ontologies for the representation of digitalized construction processes 28

DiCo Process Ontology and Simphony Dynamic sdm:Resource sdm:Product sdm:Task sdm:Schedule sdm:HistoricalProgress sdm:Workflow sds:simulatedStart sds:simulatedFinish PREFIX sdm: <http://simphony.dynamic/model/0.1/#> PREFIX sds: <http://simphony.dynamic/simulation/0.1/#> PREFIX dica: <https://w3id.org/digitalconstruction/0.5/Agents#> . PREFIX dice: <https://w3id.org/digitalconstruction/0.5/Entities#> . PREFIX dicv: <https://w3id.org/digitalconstruction/0.5/Variables#> . PREFIX dicp: <https://w3id.org/digitalconstruction/0.5/Processes#> . PREFIX dici: <https://w3id.org/digitalconstruction/0.5/Information#> . sds:duration dicp:hasOutputObject owl:sameAs owl:sameAs rdfs:subClassOf rdfs:subClassOf rdfs:subClassOf owl:sameAs owl:sameAs owl:sameAs rdfs:subClassOf Simphony Model Specification Concept DiCon Concept 29

Digital Construction Ontologies and Simphony Dynamic 30

Answering Questions - GraphDB and SPARQL What is the status of the project on a date? PREFIX sdm: <http://simphony.dynamic/model/0.1/> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX sds: <http://simphony.dynamic/simulation/0.1/> SELECT (SUM(?maxProgress)/180 as ?totalProgress) WHERE{ SELECT ?product (MAX(?progress) as ?maxProgress) WHERE { ?progressData rdf:type sds:SimulationProgress . ?progressData sds:dateTime ?dateTime . BIND (xsd:dateTime(?dateTime) AS ?date) ?progressData sds:progress ?progress . ?progressData sds:productName ?product FILTER (?date < "2015-05-01T00:00:00"^^xsd:dateTime) } GROUP BY ?product } 31 What tasks should be completed to start working on Task B, if the project is currently on Task A? PREFIX Task: <http://simphony.dynamic/model/0.1/Task/> PREFIX path: <http://www.ontotext.com/path#> PREFIX sdm: <http://simphony.dynamic/model/0.1/> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT ?predTask ?succTask WHERE { VALUES (?src ?dst) { (Task:A Task:B) } SERVICE path:search { <urn:path> path:findPath path:allPaths; path:sourceNode ?src; path:destinationNode ?dst; path:resultBinding ?edge; path:resultBindingIndex ?index; path:startNode ?start; path:endNode ?end; path:exportBinding ?predTask, ?succTask. SERVICE <urn:path> { ?start sdm:hasSuccessorTask ?end; rdfs:label ?predTask. ?end rdfs:label ?succTask. } } }

DiCon allows for interoperability and well defined ontologies, which was our goal when working on restructuring Simphony Dynamic. Future expansion of the Simphony project can use the DiCon ontology as a reference to understand the data structure. The mapped ontology allows for easy understanding of various types of construction projects. Different organizations or construction companies can use different terminologies for the same concepts, but mapping them to DiCon can make it easier to understand and work with. Having Simphony data in a graph database allows to get more information out of them. Simphony Dynamic - Data Representation 32

Demo - Greenhouse Project Batselier, J., & Vanhoucke, M. (2015). Construction and evaluation framework for a real-life project database. International Journal of Project Management , 33 (3), 697-710. https://www.projectmanagement.ugent.be/research/data/realdata 33

Loading the Greenhouse project into Simphony aas Transform Project Spec CSV to Simphony Model RDF Save Model to GraphDB Simulate the Baseline Model Save Baseline Simulation Results to GraphDB 34 The model can also be created using the Model Editor Interface, but it is tedious.

How does the system work Front-end loads project and progress from the database Front-end visualizes current progress, future progress and baseline Crew lead enters a task progress Project manager simulates project with new progress data Task progress saved to the database Front-end receives simulation result Project manager logs in to the front-end 35 Project Managers Crew Leads

Demo 36

Performance Analysis - Scalability Increasing the number of tasks increases runtime. The Simulation API runtime is strongly positively correlated to the number of tasks in the simulation model, with a Spearman’s ρ value of 0.99. However, If number of resources is not increased, the runtime grows exponentially If number of resources is increased as well, the runtime grows linearly 37

Performance Analysis - Overhead .NET 8.0 offers substantially better performance than .NET Framework 4.6 For small models: The Symphony Dynamic simulation is (slightly) faster than Simphony aas For large models: The Symphony Dynamic simulation is (much) slower than Simphony aas ⇒ The migration was essential for scaling. 38