Quick start
This quick start continues from the installation instructions,
and assumes you have idesyde.jar
available in your computer.
IDeSyDe is a CLI tool. You have succeed if you can execute the following:
> java -jar idesyde.jar
Error: Missing argument <inputModel> [<inputModel> ...]
___ ___ ___ ___
|_ _|| \ ___ / __| _ _ | \ ___
| | | |) |/ -_)\__ \| || || |) |/ -_)
|___||___/ \___||___/ \_, ||___/ \___|
|__/
Automated Identification and Exploration of Design Spaces in ForSyDe
Usage: idesyde [options] <inputModel> [<inputModel> ...]
<inputModel> [<inputModel> ...]
-o, --out <outputModel> If the output is an existing directory, write all solutions to the directory. Otherwise, the lastest solution is output.
-v, --verbosity <verbosityLevel>
Performing DSE
IDeSyDe currently consumes ForSyDe IO description files as its input. The conventional extension is fiodl
.
Please note that this support comes directly from ForSyDe IO, and this
requires the extension to be either .fiodl
to work.
If the input models you have are not ForSyDe IO files, then you might be able to use ConverSyDe to convert them.
Once you have the input files model1.fiodl
, model2.fiodl
, etc. Then you just execute the idesyde
jar
with them as inputs:
> java -jar idesyde.jar \
-o latest_solved_model.fiodl \
model1.fiodl \
model2.fiodl ...
you should see an output like this:
2022.03.17 13:41:59:541 [main ] [INFO ] idesyde.cli.IDeSyDeRunConfig.setLoggingLevel:85 - logging levels set to INFO.
2022.03.17 13:41:59:620 [main ] [INFO ] idesyde.cli.IDeSyDeRunConfig.run:39 - Reading and merging input models.
2022.03.17 13:42:00:347 [main ] [INFO ] idesyde.identification.api.IdentificationHandler.identifyDecisionModels:47 - Performing identification with 9 rules up to 243 iterations.
2022.03.17 13:42:01:114 [main ] [INFO ] idesyde.identification.api.IdentificationHandler.identifyDecisionModels:72 - droppped 3 dominated decision model(s).
2022.03.17 13:42:01:115 [main ] [INFO ] idesyde.cli.IDeSyDeRunConfig.run:48 - Identification finished with 2 decision model(s).
2022.03.17 13:42:01:121 [main ] [INFO ] idesyde.cli.IDeSyDeRunConfig.run:51 - Total of 1 combo of decision model(s) and explorer(s) chosen.
...
2022.03.17 13:42:12:666 [main ] [INFO ] idesyde.cli.IDeSyDeRunConfig.run:73 - Finished exploration with 100 solution(s)
Althought it make take some time to finish (up to 100 solutions are currently set as the limit), you can follow in your computer that
the file latest_solved_model.fiodl
set as output already existed longer before IDeSyDe finished execution. That’s because
intermediate (feasible) solutions are also output by the tools as it tries to optimize it further.
Difference between no DSE and no feasible results
Since IDeSyDe is a generic DSE tool, your system input might be yet part of the scenarios IDeSyDe knows how to solve. That can be distinguished by the output of the tool (in case you have not put a verbosity level too low); If no combo of decision model and explorer has been chosen, then IDeSyDe either does not known how to solve your design scenario (given as a ForSyDe IO Model) or lacks the exploration algorithm to do so. Otherwise, if a combo is chosen, and the result is no solution, then it means the system design given to IDeSyDe is infeasible. At very least, it is analytically infeasible with the algorithms and equations programmed in IDeSyDe.
Here’s an example of when there’s no possible DSE combo identified:
> java -jar idesyde.jar -o solved.fiodl input_model.fiodl
2022.03.17 14:45:33:242 [main ] [INFO ] idesyde.cli.IDeSyDeRunConfig.setLoggingLevel:85 - logging levels set to INFO.
2022.03.17 14:45:33:323 [main ] [INFO ] idesyde.cli.IDeSyDeRunConfig.run:39 - Reading and merging input models.
2022.03.17 14:45:33:595 [main ] [INFO ] idesyde.identification.api.IdentificationHandler.identifyDecisionModels:47 - Performing identification with 9 rules up to 162 iterations.
2022.03.17 14:45:33:767 [main ] [INFO ] idesyde.identification.api.IdentificationHandler.identifyDecisionModels:72 - droppped 0 dominated decision model(s).
2022.03.17 14:45:33:768 [main ] [INFO ] idesyde.cli.IDeSyDeRunConfig.run:48 - Identification finished with 1 decision model(s).
2022.03.17 14:45:33:773 [main ] [INFO ] idesyde.cli.IDeSyDeRunConfig.run:51 - Total of 0 combo of decision model(s) and explorer(s) chosen.
2022.03.17 14:45:33:775 [main ] [INFO ] idesyde.cli.IDeSyDeRunConfig.run:75 - Finished exploration with no solution
And here’s an example where there’s a DSE combo to be solved but not feasible solution exists:
> java -jar idesyde.jar -o solved.fiodl input_system.fiodl
2022.03.17 14:49:24:516 [main ] [INFO ] idesyde.cli.IDeSyDeRunConfig.setLoggingLevel:85 - logging levels set to INFO.
2022.03.17 14:49:24:619 [main ] [INFO ] idesyde.cli.IDeSyDeRunConfig.run:39 - Reading and merging input models.
2022.03.17 14:49:25:315 [main ] [INFO ] idesyde.identification.api.IdentificationHandler.identifyDecisionModels:47 - Performing identification with 9 rules up to 243 iterations.
2022.03.17 14:49:26:215 [main ] [INFO ] idesyde.identification.api.IdentificationHandler.identifyDecisionModels:72 - droppped 3 dominated decision model(s).
2022.03.17 14:49:26:216 [main ] [INFO ] idesyde.cli.IDeSyDeRunConfig.run:48 - Identification finished with 2 decision model(s).
2022.03.17 14:49:26:224 [main ] [INFO ] idesyde.cli.IDeSyDeRunConfig.run:51 - Total of 1 combo of decision model(s) and explorer(s) chosen.
2022.03.17 14:49:32:388 [main ] [INFO ] idesyde.cli.IDeSyDeRunConfig.run:75 - Finished exploration with no solution