Professional Documents
Culture Documents
solver algorithm. In order to promote model reuse, system/sub- specify either a class or a syntactic category
system relationships are prescribed as well. • T is the tree of the terminal symbols for the language L
Faults. Also named issues, they represent a deviation from • S is a non-terminal symbol (S ∈ N T ) called start symbol
the normal operation of the system. To define a system fault it • R is the production rules set, used to describe all non-
344 2013 International Conference of Soft Computing and Pattern Recognition (SoCPaR)
Fig. 1. Production rule: script
(c) actionDef
Fig. 2. Non-terminal symbol: include
2013 International Conference of Soft Computing and Pattern Recognition (SoCPaR) 345
Fig. 6. Production rule: definition
346 2013 International Conference of Soft Computing and Pattern Recognition (SoCPaR)
’1’;
’2’; TSRepository repository = TSWorkspace.getInstance().
’no beep’; getRepositoryForLocation(
’continuos beep’; TSWorkspace.SINGLE_FILE_SYSTEM_BASED, repositoryPath);
};
TSWorkspace.getInstance().loadRepository(repository);
@’power issues’ [-0.25, -0.21, 0.49, -0.21],
@blackout [-1.00, -1.00, 0.70, -1.00], TSPackage packSingleSystems =
@’cable issues’ [0.00, 0.00, 0.50, 0.00], repository.getPackage("computerSingleSystem");
..... TSPackage packSistemaComputer =
@’hardware conflict’ [0.00, 0.00, 0.70, 0.00], repository.createPackage("sistemaComputer");
@’generic device is damaged’ [-0.60, 0.00, 0.70, 0.00], TSSystem sysComputer =
@’generic post issue’ [0.00, 0.50, 0.00, 0.00]; repository.createSystem(packSistemaComputer);
TSIssueLink powerSupplyIssues =
while(.list.next) { sysComputer.createIssueLink(powerIssue);
.pi = .list.prob; powerSupplyIssues.setName("power supply issues");
.c = .list.cost; powerSupplyIssues.setFrequency(0.11);
.list.eff = .pi / .c; .....
}
TSObservation numBeep = sysComputer.createObservation();
.orderedList = .list.sortedby( .eff ); numBeep.setName("how many beeps are emetted?");
numBeep.createState("1","description");
.solved = false;
numBeep.createState("2","description");
.size = .orderedList.size(); numBeep.createState("no beep","description");
numBeep.createState("continuos beep","description");
while(.orderedList.next || .solved == true) {
.execution = .oderedList.execute(); numBeep.setBipolarObservingProbability(powerIssue,
if(.execution == true) { new double[]{-0.25,-0.21,0.49,-0.21});
.solved = true; numBeep.setBipolarObservingProbability(blackout,
.str > new double[]{-1.00,-1.00,0.70,-1.00});
numBeep.setBipolarObservingProbability(cableIssues,
java.lang.String("Troubleshooting finished.");
new double[]{0.00,0.00,0.50,0.00});
} .....
} numBeep.setBipolarObservingProbability(hardwareConflict,
} new double[]{0.00,0.00,0.70,0.00});
numBeep.setBipolarObservingProbability(genericDeviceDamaged,
In the following, the translated code in Java and Dygnose new double[]{-0.60,0.00,0.70,0.00});
numBeep.setBipolarObservingProbability(genericPostIssue,
API is reported. new double[]{0.00,0.50,0.00,0.00});
TSWorkspace.getInstance().loadWorkspace();
.....
String repositoryPath = "C:\\Documents and Settings\\
TSRepairingAction updateBios =
Administrator\\Documenti\\Troubleworkspace\\computer.xml";
2013 International Conference of Soft Computing and Pattern Recognition (SoCPaR) 347
TABLE I represent the reasoning algorithms. Model reuse and ab-
T ROUBLES VS JAVA T RANSLATION . straction are features which make Troubles scripts to scale
SLOC Troubles SLOC Java Control density problem complexity. In addition, the language is highly
Internet Connec- declarative, implicitly typed, orthogonal and structured. The
tion System 208 351 0.93
Satellite System 231 457 0.94
current version of the language is specifically designed to
Computer work with troubleshooting problems under uncertainty. The
System 332 558 0.94 example demonstrates how the same problem can be described
more concisely than using hosted libraries. Moreover, some
(domain-specific) controls which should be kept at runtime in
sysComputer.createRepairingAction(); the case of software libraries can be moved at compile time in
updateBios.setName("update bios"); the case of Troubles scripts. This improves solver verification
updateBios.setCost(25.0);
updateBios.setRepairingProbability(powerIssue,0.00); and performances. The version of Troubles presented in this
updateBios.setRepairingProbability(postIssues,0.11); paper is only preliminary. We aim at developing more in depth
updateBios.setRepairingProbability(keyboardFailure,0.00);
..... the language constructs and providing simulation capabilities
updateBios.setRepairingProbability(hardwareConflict,0.50); that are lacking at the moment.
updateBios.setRepairingProbability(genericDeviceDamaged,
0.00); R EFERENCES
updateBios.setRepairingProbability(genericPostIssue,0.40);
[1] A. Zolghadri, “Advanced model-based FDIR techniques for aerospace
..... systems: Today challenges and opportnunities,” Progress in Aerospace
Sciences, vol. 53, pp. 18–29, 2012.
//we create a session
TSSession session = new TSSession(sysComputer,
[2] X. Olive, “FDI(R) for satellites: how to deal with high availability
"nome dell’operatore", "nome del cliente"); and robustness in the space domain?” International Journal of Applied
TSReasoner reasoner = TSReasonerBuilder.createReasoner( Mathematics and Computer Science, vol. 22, no. 1, pp. 99–107, 2012.
TSReasonerBuilder.HUGIN_REASONER); [3] S. Ierace, P. Marinaro, P. Tatavitto, and L. Troiano, “Profiling the power
usage of industrial machinery by ann,” in Soft Computing and Pattern
//we start the session Recognition (SoCPaR), 2010 International Conference of, 2010, pp.
session.startSession(reasoner); 413–418.
[4] S. Ierace, R. Pinto, L. Troiano, and S. Cavalieri, “Neural network as an
TSSecondaryList<TSStep> suggestions =
session.getSuggestions();
efficient diagnostics tool: A case study in a textile company,” vol. 1, no.
TSSecondaryList<TSEvidence<TSObservation>> PART 1, 2010, pp. 122–127.
observations = session.getObservations(); [5] L. Troiano, G. Scibelli, and C. Birtolo, “A fast algorithm for mining rare
itemsets,” in ISDA. IEEE Computer Society, 2009, pp. 1149–1155.
TSSecondaryList<TSOperation> list = new TSSecondaryList [6] L. Troiano, M. Tipaldi, A. Di Cerbo, M. Hoping, D. De Pasquale, and
<TSOperation>(null, TSDefaultSorters.EXPECTED_COST_SORTER); B. Bruenjcs, “Satellite fdir practices using timed failure propagation
list.linkTo(suggestions); graphs,” vol. 11, 2012, pp. 8524–8531.
list.linkTo(observations); [7] L. Troiano and G. Scibelli, “A time-efficient breadth-first level-wise
list.sortElements();
lattice-traversal algorithm to discover rare itemsets,” Data Mining
and Knowledge Discovery, pp. 1–35, 2013. [Online]. Available:
boolean solved = false; http://dx.doi.org/10.1007/s10618-013-0304-3
[8] S. Rampone, V. Pierro, L. Troiano, and I. Pinto, “Neural network
while (list.size() > 0 || solved) { aided glitch-burst discrimination and glitch classification,” International
TSOperation op = list.iterator().next(); Journal of Modern Physics C, vol. 24, no. 11, 2013.
session.execute(op); [9] W. Hoara and S. Tixeuil, “A language-driven tool for fault injection
if (session.isSolved()) { in distributed systems,” in Grid Computing, 2005. The 6th IEEE/ACM
solved = true;
System.out.println("Troubleshooting
International Workshop on, 2005, pp. 8 pp.–.
finished."); [10] S. Misera, H. Vierhaus, L. Breitenfeld, and A. Sieber, “A mixed language
} fault simulation of vhdl and systemc,” in Digital System Design:
Architectures, Methods and Tools, 2006. DSD 2006. 9th EUROMICRO
} Conference on, 2006, pp. 275–279.
[11] G. Friedrich, M. Stumptner, and F. Wotawa, “Model-based diagnosis of
The table I collects the results/metrics of our comparative hardware designs,” Artificial Intelligence, vol. 111, no. 1–2, pp. 3 – 39,
study between an approach based on Troubles and the one 1999.
[12] J. Rocheteau and J.-L. Boulanger, “Circuit fault & failure description
based on hosted libraries in applying a bayesian methodology language,” in System Safety, 2008 3rd IET International Conference on,
for Computer, Internet Connection and Satellite Systems. It 2008, pp. 1–5.
highlights that Troubles is able to decrease the SLOC figures [13] T. Funabashi, Y. Mizuma, H. Otoguro, and L. Dube, “Fault locator
simulation using models language,” in Energy Management and Power
and, first and foremost, the control density thanks to the fact Delivery, 1998. Proceedings of EMPD ’98. 1998 International Confer-
that model consistency controls are performed at compile-time ence on, vol. 2, 1998, pp. 601–606 vol.2.
directly on DSL files. [14] V. Zivojnovic, S. Pees, and H. Meyr, “Lisa - machine description
language and generic machine model for hw/sw co-design,” in in
V. C ONCLUSIONS Proceedings of the IEEE Workshop on VLSI Signal Processing, 1996,
pp. 127–136.
In this paper we have proposed Troubles, a domain-specific [15] R. Su and W. Wonham, “Probability measure on regular languages and
language oriented to describe and test troubleshooting and its application in fault diagnosis for discrete event systems,” in Control
Conference, 2004. 5th Asian, vol. 1, 2004, pp. 412–419 Vol.1.
failure management algorithms. The language is designed [16] L. Troiano and D. D. Pasquale, “Supporting complexity in modeling
to provide constructs for faults, observations and repairing bayesian troubleshooting,” in ICEIS (2), J. Filipe and J. Cordeiro, Eds.
actions definition. They can be addressed by solvers which SciTePress, 2010, pp. 344–349.
348 2013 International Conference of Soft Computing and Pattern Recognition (SoCPaR)