BF++ Simulators are a reliable way to identify the best combination of TRs (described by ECMs) and CIs (described by encoders) in a virtual keyboard application. However, in order to have consistent results, it is necessary to encode long semantic sequences. This could require several hours of processing time on a Desktop PC if the number of encoders or ECMs to be tested is huge. A better solution is to adopt the metric described in [Bianchi et al., 2007], which requires just few seconds to determine which TR and/or CI to choose to build the best system. In a typical situation one can choose which encoder should be assembled to a TR to build the best system. The Optimizer Toy is devoted to this: it computes the efficiency of a system built by combining a TR with a set of encoders and by performing all the possible permutations among the LSs of the LA. This produces the list that appears in the bottom part of the form of Fig. 1: the various combinations indicate that the best encoder to associate to the ECM selected in the top grid of the form is the Encoder 7, first permutation, with the δ symbol associated to the Undo key. This system will require on average the selection of 3.614 LSs to generate a correct SS. In an ideal system, that is a system that makes no errors, just 3 LSs are necessary so, on average, additional 0.614 selections are required to recover from mistakes.

Fig. 1 – The main form of the HCI Optimizer #1

A more practical way to optimize a system is to start from the subject’ performances, that is a real ECM and to find which encoder should be bound to it in order to obtain the best system. For this reason another optimizer (see Fig. 2) was developed which works in this way: once one has identified the alphabets and provided the ECM, then a huge number of encodings are randomly generated and the overall system metric is computed. Less than 1 ms is necessary to generate an encoder and to evaluate the system which uses it (on a PC equipped with a 2.4 GHz Pentium 4), so that about a hundred of thousands of different encoders and systems can be evaluated in less than two minutes. For example, for the ECM described in Fig. 2 we started with an encoder which required 4.698 LS selections to generate a correct SS, but we were able to reduce it to 4.02 in less than two minutes after using this optimizer, thus boosting the performance of a whole system by more than 15%. It is important to underline, however, that the improvement depends on the error distribution over the ECM: the more uniform it will be, the lower the improvement will also be.

Fig. 2 – The main form of the HCI Optimizer #2