## how much time do you have?

**QUESTION**

You have another question? Please challenge our team and we may add it to the FAQs

## how much time do you have?

Use our advanced statistical models and be a winner like our Markus! @ICA2018 #insurance #Software @ADDACTIS_WW pic.twitter.com/DNxZkskMAQ

— addactis® (@ADDACTIS_WW) 6 juin 2018

@ICA2018 @pascalmignery with Estelle Gerondeau @_Actuaris_ exchanging about her paper « impacts of management actions in life insurance » award @ICA2018 pic.twitter.com/W0wEIGuyPZ — addactis® (@ADDACTIS_WW) 5 juin 2018

Paper on “Impacts of Management Actions in Life Insurance“ by Estelle Gerondeau from @_Actuaris_ awarded with @IntActuarial Section best paper award LIFE at the ICA 2018 #ICA2018 #VICA2018 #VirtualICA

— ICA 2018 (@ICA2018) 4 juin 2018

With environments, users can replace ADDACTIS^{®} Modeling input and output files path by an alias to dynamically change the files to be used, e.g. from one closing to another.

Models runs can be launched manually from ADDACTIS® Modeling interface or automatically from command line or external tool. Thanks to environments and our different call technologies, it is quite easy to manage data feeding and results return.

ADDACTIS^{®} Modeling is deployed with an Excel Add-in which allows running models and reading results directly within spreadsheets. As a result, users can define their own reporting spreadsheets in Microsoft Excel which will always be up to date thanks to the direct link between ADDACTIS^{®} Modeling and Microsoft Excel.

Run times are highly dependent on the model, it can be a few seconds for deterministic models or a few hours for the largest stochastic models. Our experience shows that run performances are generally much better than our competitors on the same perimeters. This is due to the very powerful calculation engine, and also to profiler features which enable to easily track the formula to optimize and significantly decrease run time.

During model implementation phase, It is essential to structure the model in order to make it easy to understand and easy to maintain. Our modeling platform ADDACTIS^{®} Modeling offers several features to help model designers in this context, e.g. users functions and functions library to share a function/algorithm between several formulas and several models or model instances to replicate model parts and structure large models with bricks with identified data flows.

The compilation run log has several tabs to classify the different issues identified during compilation. Each line details the formula and the associated line, so the user can quickly open the corresponding formula (double click in the compilation log opens formula) and correct it. Note that in the formula editor, a button is available to compile the formula without compiling the full model. It’s very useful to check formula as soon as you have implemented it.

The run log details errors encountered and corresponding formula. The user can then open the formula to correct it and, if necessary, add a breakpoint and re-launch the run in debug mode. The debugger is a wonderful tool to understand what happens during the run.

Yes, ADDACTIS^{®} Modeling embeds a merge feature that allows the user to automatically compare his version of a model with a second one, identify the differences and, for each difference, choose to apply the change in his model or not. Moreover, with model instances, users can easily split model implementation in different bricks which can then be developed independently.

###### Expertises

**Focus on ALGORITHMS**

An algorithm could be seen as a series of instructions in the aim to obtain one or more results. For example, if I ask you to find the Greatest Common Divisor (‘gcd’) of 72 and 63, you will test 2, then 3, then 4, and so on… to finally conclude that it’s 9. You have unconsciously applied the following algorithm: « While I’m sufficiently small to be the gcd: • I check if I could be the gcd (if I divide 72 and 63) If yes, I keep it in a corner of my memory; If no, I go to the next one. Once every number sufficiently small checked, the number in the corner of my memory is the GCD. » I will overall take some general advice from INRIA available at the end of the next page: https://caml.inria.fr/resources/doc/guides/guidelines.en.html • Don’t hesitate to comment your code.

A good documentation could save you time when coming back on some code that you wrote several times. Commenting on your code will explain to others your code while they read it. You might also have to reread it later for several reasons such as:

- To improve it;
- To validate it;
- To explain to someone how the algorithm works;
- To reuse it.

For all these reasons the code that you are writing must be as clear as possible, and if doubts remain on its intelligibility do not hesitate to comment on the lines that seem unclear. A similar point is to name all the variables you are using as clearly as possible (for example, in our previous example a variable named « gcd_candidate » will be clearer than « gcdc »). • Reread your program to check its readability. It’s the perfect time to: Rename variables to make the code clearer; Comment unclear lines; Check that the code could not be simplified.

Alessandro Londero, consultant ADDACTIS Worldwide

###### Expertises

**Focus on ALGORITHMS**

Today most algorithms are already efficient but all new algorithms could be optimized. For example, let’s take the search of a word inside a dictionary where words aren’t sorted (a non-sorted table) we will have to look at every word until:

• We find the searched word;

• We scrolled through the whole dictionary.

However it is clear that word processing program couldn’t work like that!

A good optimization for them is to use a “sorted” dictionary. It means to put the word in a predefined order (alphabetically for example). Now it’s sufficient to take the word in the middle of the dictionary and compare it to the searched word, there are three options:

• The current word is the searched word we have finished and the word is present;

• The current word is before the searched word we remove all the words after the current word;

• The current word is after the searched word we remove all the words before the current word.

We do this step until we find the word we looked for, or until we have excluded the whole dictionary.

The advantage of this algorithm is that if we haven’t found the word we remove the half of the remaining dictionary at each step.

But sorting the dictionary to search only one word will take more time than searching directly inside the non-sorted dictionary.

The same kind of consideration could be done for the memory used by an algorithm.

Generally the optimization of an algorithm is always the research of a flimsy equilibrium between memory consumption and a number of simple operations to execute. One and the other being a factor that can improve or reduce the performance of an algorithm.

Alessandro Londero, consultant ADDACTIS Worldwide

###### Expertises

**Focus on ALGORITHMS**

The Big Data is the management and analysis of a massive amount of data. The efficiency of the algorithm is there crucial, so that the time used to process the amount of data must be minimal.

If a decision must be quickly taken, the algorithm must have run quickly enough to give the result before it’s too late.

For example stock exchange are now quoted live, so if the algorithm arrive a tenth second too late the quotation could have changed and the order (to buy/sell) given by the algorithm may have significant financial consequences.

To conclude we won’t be able to improve some processing algorithm because by nature they must browse through the whole data, but what we can do now is to improve the processing capacity of these computers.

Alessandro Londero, consultant ADDACTIS Worldwide