martin-fleck / cra-ttc2016

The Class Responsibility Assignment Case for the Transformation Tool Contest 2016
3 stars 2 forks source link

A. Garcia-Dominguez evaluation of Excel #27

Open agarciadom opened 8 years ago

agarciadom commented 8 years ago

I was curious of how would one do search-based model transformation using Excel, but it appears that this solution follows a much simpler approach. It parses each line of the XMI into a spreadsheet, operates on it with an iterative greedy heuristic and then produces another XMI file line by line.

It does produce some nice results in a very short time. They are not the absolute best results, however, and since it only works with one solution at a time, it would not be possible to increase the search budget or use parallelization to get better results if more CPU power is available. It will be a good baseline for the search-based approaches.

Would it make sense to extend this greedy heuristic approach to something that keeps track of multiple candidate solutions at once, or something like that?

Notes:

http://www.devhut.net/2012/05/14/vba-read-file-into-memory/

A - 0.12s - CRA 3.0 B - 0.54s - CRA 2.999... C - 0.41s - CRA 0.648 D - 2.36s - CRA -0.2913547 E - 12.84s - CRA 0.219164 F - 145.15s - CRA 1.923 G - 1910.69s - CRA -0.034

EvaluationSheet-Excel.xlsx

maximiliano-vela commented 8 years ago

Hola Antonio - Thanks for stepping out of your way to take a look at our solution.

Yes indeed. To me it would be extremely interesting to find out whether Excel can handle search-based transformations effectively, and if so how good it would do in terms of performance. At the same time I'm completely sure there are better greedy strategies for this problem that we were unable to play around with due to time limitations. Search-based algorithms will always have the upper-hand when it comes to accurate results, while greedy approaches will have the advantage in performance. It's kind of like a see-saw depending on what you're looking for, I find.

I'm glad you've been able to fix the issue you've run into. I'm thinking that the version I've used (Excel 2007) may not be smart enough to correctly parse carriage return characters, something that I was completely unaware of.

Since matrices are handled upon the actual spreadsheet (and therefore temporarily saved to disk) I'm sure your SSD made a big difference through the executions you made.

Cheers,

Maxi.