Research in field of input method on mobile devices. Treatment of principles to create a new layout for virtual keyboard. Strengths and weaknesses of most famous physical and virtual keyboards. Theories which inspired to find principles for designing a good layout for systems tap input. Explaining method, Euristic algorithm and set out the procedure to minimize finger path, avoid user stress and improve performance.
Development and analysis of a virtual keyboard optimized (Italian)
1. Introduzione Progettazione Implementazione Analisi Conclusioni
Sviluppo e analisi di una tastiera virtuale
ottimizzata
Candidato: Alberto Minetti
Relatore: Prof. Massimo Ancona
Università degli Studi di Genova
Facoltà di Scienze Matematiche Fisiche e Naturali
Corso di Laurea in Informatica
2. Introduzione Progettazione Implementazione Analisi Conclusioni
Sommario
1 Introduzione
Sistemi di input
Tastiere virtuali
2 Progettazione
Principi di Progettazione
Analisi delle frequenze dei digrammi
Euristiche
3 Implementazione
Scelta della configurazione iniziale
Algoritmo
Esempio iterazione
4 Analisi
Analisi della frequenza dei tasti
Analisi della frequenza dei digrammi
5 Conclusioni
Conclusioni
Layout applicato a Wtx
Layout italiano
3. Introduzione Progettazione Implementazione Analisi Conclusioni
Sistemi di input
T9 è l’acronimo di text on 9 keys
Nasce su tastiera fisica
Solo 9 tasti grandi
Più caratteri in un tasto
Predizione
Dizionario interno
Nota
Samsung e Android implementano T9 che si trasforma in QWERTY quando il
telefono è orientato in landscape
4. Introduzione Progettazione Implementazione Analisi Conclusioni
Sistemi di input
Wtx
Vuole minimizzare il
numero di tap
Dizionario interno
Estensioni:
Predizione (multi-mode)
Riconoscimento della grafia
location awareness
ecc...
5. Introduzione Progettazione Implementazione Analisi Conclusioni
Sistemi di input
TenGO
Nasce su tastiera virtuale
Solo 6 tasti grandi
Più caratteri in un tasto
Dizionario interno
6. Introduzione Progettazione Implementazione Analisi Conclusioni
Tastiere virtuali
QWERTY
Standard de facto
Ottimizzata per 10 dita
L’ottimizzazione per 10 dita non giova in nessun modo ad
aumentare la velocità di battitura con un dito o un pennino
7. Introduzione Progettazione Implementazione Analisi Conclusioni
Tastiere virtuali
Tastiera alfabetica
Facilità d’uso per chi non conosce il layout
Nessun vantaggio da chi è esperto
8. Introduzione Progettazione Implementazione Analisi Conclusioni
Tastiere virtuali
FITALY
Ottimizzata per i tap
Forma quadrata
Disposizione per frequenza
Due tasti spazio grandi
9. Introduzione Progettazione Implementazione Analisi Conclusioni
Tastiere virtuali
Metropolis
Ottimizzata per i tap
Tasti esagonali
Tasto spazio centrale
Mantiene vicine le coppie di
lettere comuni
10. Introduzione Progettazione Implementazione Analisi Conclusioni
Principi di Progettazione
Come progettare una nuova tastiera virtuale?
Lettere maggiormente utilizzare al centro
Lettere meno utilizzate ai bordi
Struttura quadrata e non rettangolare
Accostare le coppie di lettere più utilizzate
Legge di Fitts
La legge di Fitts rappresenta il modello matematico di un
movimento umano.
11. Introduzione Progettazione Implementazione Analisi Conclusioni
Principi di Progettazione
Legge di Fitts
La legge di Fitts rappresenta il modello matematico di un
movimento umano.
Legge di Fitts applicata alle tastiere virtuali
Dij
MTij = a + b log2 ( + 1)
Wj
12. Introduzione Progettazione Implementazione Analisi Conclusioni
Analisi delle frequenze dei digrammi
Analisi delle frequenze dei digrammi
L’analisi delle frequenze dei digrammi più comuni mostrata
nella tabella successiva.
Colori di sfondo
I colori di sfondo delle celle identificano l’importanza della coppia, in ordine
crescente: Viola, Blu, Azzurro, Verde, Rosso, Rosa, Giallo.
Nota
Un digramma è una sequenza di 2 grafemi (o lettere) che all’interno di una
lingua identificano graficamente un fonema
13. Introduzione Progettazione Implementazione Analisi Conclusioni
Analisi delle frequenze dei digrammi
14. Introduzione Progettazione Implementazione Analisi Conclusioni
Analisi delle frequenze dei digrammi
Analisi delle frequenze dei digrammi
Con tali valori ho creato un grafo mostrato nella figura
successiva.
I nodi sono le lettere dell’alfabeto
Gli archi sono pesati secondo le frequenze dei digrammi
15. Introduzione Progettazione Implementazione Analisi Conclusioni
Analisi delle frequenze dei digrammi
16. Introduzione Progettazione Implementazione Analisi Conclusioni
Come trovare la migliore disposizione dei tasti?
Algoritmo euristico
L’approccio euristico è molto diffuso nelle simulazioni riduce la
complessità per problemi che possono essere troppo costosi.
Ricerca locale
La soluzione verso cui converge un algoritmo di ricerca locale è
un ottimo locale relativamente all’intorno scelto.
Algoritmo iterativo
Per migliorare la soluzione trovata con tecniche di ricerca locale
è possibile eseguire l’algoritmo più volte.
17. Introduzione Progettazione Implementazione Analisi Conclusioni
Come trovare la migliore disposizione dei tasti?
Algoritmo euristico
L’approccio euristico è molto diffuso nelle simulazioni riduce la
complessità per problemi che possono essere troppo costosi.
Ricerca locale
La soluzione verso cui converge un algoritmo di ricerca locale è
un ottimo locale relativamente all’intorno scelto.
Algoritmo iterativo
Per migliorare la soluzione trovata con tecniche di ricerca locale
è possibile eseguire l’algoritmo più volte.
18. Introduzione Progettazione Implementazione Analisi Conclusioni
Come trovare la migliore disposizione dei tasti?
Algoritmo euristico
L’approccio euristico è molto diffuso nelle simulazioni riduce la
complessità per problemi che possono essere troppo costosi.
Ricerca locale
La soluzione verso cui converge un algoritmo di ricerca locale è
un ottimo locale relativamente all’intorno scelto.
Algoritmo iterativo
Per migliorare la soluzione trovata con tecniche di ricerca locale
è possibile eseguire l’algoritmo più volte.
19. Introduzione Progettazione Implementazione Analisi Conclusioni
Come trovare la migliore disposizione dei tasti?
Algoritmo euristico
L’approccio euristico è molto diffuso nelle simulazioni riduce la
complessità per problemi che possono essere troppo costosi.
Ricerca locale
La soluzione verso cui converge un algoritmo di ricerca locale è
un ottimo locale relativamente all’intorno scelto.
Algoritmo iterativo
Per migliorare la soluzione trovata con tecniche di ricerca locale
è possibile eseguire l’algoritmo più volte.
20. Introduzione Progettazione Implementazione Analisi Conclusioni
Euristiche
Simulated Annealing
Il Simulated Annealing è un algoritmo euristico iterattivo basato
sulla ricerca locale. Ideato osservando il processo di
annichilazione dei metalli.
21. Introduzione Progettazione Implementazione Analisi Conclusioni
Scelta della configurazione iniziale
Layout iniziale
Numero più basso
corrisponde a lettera più
comune
22. Introduzione Progettazione Implementazione Analisi Conclusioni
Scelta della configurazione iniziale
Layout iniziale
Al centro ci sono le lettere
più comuni
23. Introduzione Progettazione Implementazione Analisi Conclusioni
Scelta della configurazione iniziale
24. Introduzione Progettazione Implementazione Analisi Conclusioni
Algoritmo
Algoritmo
Ad ogni step abbiamo:
FASE 1: calcolo della best position
FASE 2: Simulate Annealing
25. Introduzione Progettazione Implementazione Analisi Conclusioni
Algoritmo
Algoritmo: calcolo delle best positions
Per ogni lettera α si prova ogni posizione. In ogni posizione si
valutano i pesi degli archi tra le lettere adiacenti e α. Inoltre si
tiene conto della frequenza della lettera α cercando di
riservarle un posto adeguato in modo da mantenere al centro
dello schermo la maggior parte dei tap.
26. Introduzione Progettazione Implementazione Analisi Conclusioni
Algoritmo
Algoritmo: calcolo delle best positions
function calcola_best_positions(){
var lambda = 0.8; //importanza delle vicinanze (archi del grafo)
var gamma = 1 - lambda; //importanza delle frequenze delle lettere
var best_positions = new array_associativo();
foreach(lettera){
foreach(posizione){
var desiderio = 0; //desiderio di lettera di andare in posizione
// calcolo vicinanze
var vicini=getVicini(posizione);
foreach(vicino from vicini){
desiderio += lambda*getPesoArco(lettera, vicino);
}
desiderio += gamma*(26 - abs(rank_di(posizione)-rank_di(posizione_attuale)));
desideri[lettera][posizione] = desiderio;
}
}
foreach(lettera in desideri){ best_positions[lettera] = getMax(desideri[lettera]);}
ordina_per_valore(best_positions);
return best_positions;//un array associativo ordinato decrescentemente
}
27. Introduzione Progettazione Implementazione Analisi Conclusioni
Algoritmo
Algoritmo: Simulated Annealing
Viene spostata una lettera per volta solo se la lettera che
dovrebbe prenderne il posto ha anch’essa un desiderio di
spostarsi maggiore del desiderio di restare nella posizione
attuale.
Dopo il primo spostamento si inizia un nuovo step con relativa
fase 1 e fase 2.
Nota
Deadlock, minimo locale, cicli infiniti e situazioni di stallo sono risolti dal
parametro T (temperatura).
36. Introduzione Progettazione Implementazione Analisi Conclusioni
Analisi della frequenza dei tasti
Lettere che formano taneoi
44% di frequenza
Lettere che formano taneoirsh
63% di frequenza
37. Introduzione Progettazione Implementazione Analisi Conclusioni
Analisi della frequenza dei digrammi
Misurazione degli spostamenti in pixel
Words per minute
45 wpm
38. Introduzione Progettazione Implementazione Analisi Conclusioni
Conclusioni
Conclusioni
QWERTY difficile da sostituire
Tuttavia
Alternativa ai layout virtuali esistenti
Creazione di tastiere ottimizzate per altre lingue
Spunto per migliorare i sistemi di input tradizionali
39. Introduzione Progettazione Implementazione Analisi Conclusioni
Layout applicato a Wtx
40. Introduzione Progettazione Implementazione Analisi Conclusioni
Layout italiano