Artificial Intelligence in Construction

blueprint-designing-diagram-834892

A Blueprint to Automating Tasks

As the construction industry embraces technological change, contractors should consider adding a new tool to the toolbox: artificial intelligence or AI. While most companies think artificial intelligence will have an impact on the construction industry in the near future, very few are taking steps toward implementing it. Part of the reason companies are slow to experiment with AI is the confusion surrounding it. When people think artificial intelligence, words like algorithm, Boolean, and regression analysis pop into their heads. The first step toward unlocking the benefits of AI is gaining a basic understanding of what it is and what it can do.

In simple terms, artificial intelligence is a broad term for using computers to perform tasks that are normally performed by humans. There are many subcategories of AI including data analytics, chatbots, and machine learning.  Machine learning is already being used in the construction industry, and new uses are being experimented with and deployed on a regular basis.

What is machine learning?

Machine learning involves developing a set of instructions, called an algorithm, which a computer will follow to manipulate a data set. A simple algorithm may involve pulling data from several data sources and compiling it into a single report. For example, a contractor may develop an algorithm that pulls data from multiple software packages and contracts to prepare a work in process schedule. A more complex algorithm may be used to evaluate how tasks have been prioritized on past projects and identify and prioritize issues that require a project manager’s attention.

How do you get started with machine learning?

The first step to getting started with machine learning is defining what you want to accomplish. As machine learning becomes more popular, software companies are beginning to incorporate it into their products. Check with your software vendors to see if there is an existing feature or a planned software update that will address your needs.

If you are unable to find a suitable product, you will need to find a third-party company to hire or develop your algorithm in-house. Outsourcing is likely the most cost-effective solution for one-time projects that will not require regular updates. However, many models need to be adjusted as circumstances changes and require regular maintenance to remain useful. You may also find that you have multiple machine learning projects that you would like to implement. In these cases, you may determine it’s better to develop your own algorithms.

How do you develop your own algorithms?

While it may seem like a daunting task to develop a machine learning algorithm, it may be easier than you think. Depending on what you are trying to accomplish, you may be able to create your algorithm without any programming knowledge. It may be as simple as mapping out your process with software that resembles creating a flowchart. Using this type of software, the algorithm is created from this graphical input instead of using lines of code.

If the graphical input will not meet all of your needs you may still not be completely out of luck. Many open source libraries exist that can be used to create your algorithm. These libraries basically allow you to copy and paste the code you need.  A minimal amount of coding would be required on your part to tie everything together but the use of libraries will cut down on the overall time and effort spent.

What steps should you follow to start developing your own algorithms?

If you determine the best course to follow is to develop your algorithm in-house, there are a few additional steps and considerations to put your plan into action.

The first step is to determine whether you have people in your company with the necessary skills to develop the algorithm. You will likely need to have a data scientist and someone who knows how to program in whatever language you are using. A data scientist is someone who understands how the data is used and how to obtain it. If you are developing an algorithm to run Monte Carlos simulations to analyze risk and forecast projects, you will need someone with an understanding of statistics to serve as your data scientist. However, if you are interested in compiling information to create a WIP schedule, your data scientist could be a member of your accounting team.

Next, you will need to pick a platform to use. Several major tech companies have developed platforms that you can rent at a reasonable rate. They are similar but there are some small differences so compare them to determine which works best for you. All of them support the two major programming languages used in machine learning. The languages themselves are very similar, and it is the preference of the person doing the programming as to whether you use either the Python or R programming languages.

The data scientist and programmer will then map out the steps that need to be followed and put them in a format the computer can understand. A sample of known data will be used to run through the model to see if it is acting as expected. Once the algorithm is consistently producing expected results it is ready to be deployed and used on real data.

Finally, the algorithm results will be monitored, and its predicted outcomes will be compared to actual results. If the algorithm is no longer providing expected results, it will be reviewed by the data scientist to see if it should be adjusted.

As machine learning becomes more popular, vendors will begin to incorporate more features into their software. However, the speed of development and integration with other software platforms will be out of your control. Having your own team in-house could be more costly, but you have the flexibility to build exactly what you need, and you can combine data from multiple software applications as long as you have access to the data. As your company moves to more automation and more complicated algorithms you become more likely to need a team dedicated to artificial intelligence.