Introduzione         Progettazione          Implementazione          Analisi   Conclusioni               Sviluppo e analis...
Introduzione             Progettazione         Implementazione   Analisi   ConclusioniSommario     1     Introduzione     ...
Introduzione           Progettazione       Implementazione   Analisi      ConclusioniSistemi di input       T9 è l’acronim...
Introduzione            Progettazione    Implementazione   Analisi   ConclusioniSistemi di input       Wtx               V...
Introduzione           Progettazione       Implementazione   Analisi   ConclusioniSistemi di input       TenGO          Na...
Introduzione          Progettazione      Implementazione   Analisi   ConclusioniTastiere virtuali       QWERTY         Sta...
Introduzione          Progettazione   Implementazione     Analisi   ConclusioniTastiere virtuali       Tastiera alfabetica...
Introduzione          Progettazione      Implementazione   Analisi   ConclusioniTastiere virtuali       FITALY            ...
Introduzione          Progettazione    Implementazione   Analisi   ConclusioniTastiere virtuali       Metropolis          ...
Introduzione           Progettazione     Implementazione       Analisi   ConclusioniPrincipi di Progettazione       Come p...
Introduzione       Progettazione         Implementazione        Analisi   ConclusioniPrincipi di Progettazione       Legge...
Introduzione          Progettazione         Implementazione         Analisi          ConclusioniAnalisi delle frequenze de...
Introduzione   Progettazione   Implementazione   Analisi   ConclusioniAnalisi delle frequenze dei digrammi
Introduzione           Progettazione     Implementazione   Analisi       ConclusioniAnalisi delle frequenze dei digrammi  ...
Introduzione   Progettazione   Implementazione   Analisi   ConclusioniAnalisi delle frequenze dei digrammi
Introduzione       Progettazione     Implementazione     Analisi       ConclusioniCome trovare la migliore disposizione de...
Introduzione       Progettazione     Implementazione     Analisi       ConclusioniCome trovare la migliore disposizione de...
Introduzione       Progettazione     Implementazione     Analisi       ConclusioniCome trovare la migliore disposizione de...
Introduzione       Progettazione     Implementazione     Analisi       ConclusioniCome trovare la migliore disposizione de...
Introduzione       Progettazione     Implementazione    Analisi      ConclusioniEuristiche       Simulated Annealing      ...
Introduzione       Progettazione   Implementazione   Analisi   ConclusioniScelta della configurazione iniziale       Layout...
Introduzione        Progettazione     Implementazione   Analisi   ConclusioniScelta della configurazione iniziale       Lay...
Introduzione   Progettazione   Implementazione   Analisi   ConclusioniScelta della configurazione iniziale
Introduzione          Progettazione    Implementazione   Analisi   ConclusioniAlgoritmo       Algoritmo       Ad ogni step...
Introduzione        Progettazione      Implementazione      Analisi       ConclusioniAlgoritmo       Algoritmo: calcolo de...
Introduzione             Progettazione          Implementazione          Analisi           ConclusioniAlgoritmo       Algo...
Introduzione           Progettazione         Implementazione           Analisi          ConclusioniAlgoritmo       Algorit...
Introduzione       Progettazione    Implementazione    Analisi   ConclusioniAlgoritmo       Algoritmo: Simulated Annealing...
Introduzione               Progettazione        Implementazione          Analisi   ConclusioniAlgoritmo       Algoritmo: S...
Introduzione   Progettazione   Implementazione   Analisi   ConclusioniEsempio: situazione iniziale
Introduzione   Progettazione   Implementazione   Analisi   ConclusioniEsempio: primo spostamento (swap E A)
Introduzione   Progettazione   Implementazione   Analisi   ConclusioniEsempio: secondo spostamento (swap A T)
Introduzione   Progettazione   Implementazione   Analisi   ConclusioniEsempio: terzo spostamento (swap I O)
Introduzione   Progettazione   Implementazione   Analisi   ConclusioniEsempio: quarto spostamento (swap S I)
Introduzione   Progettazione   Implementazione   Analisi   ConclusioniLayout finale
Introduzione      Progettazione     Implementazione   Analisi   ConclusioniAnalisi della frequenza dei tasti       Lettere...
Introduzione      Progettazione   Implementazione   Analisi   ConclusioniAnalisi della frequenza dei digrammi       Misura...
Introduzione           Progettazione     Implementazione     Analisi   ConclusioniConclusioni       Conclusioni          Q...
Introduzione   Progettazione   Implementazione   Analisi   ConclusioniLayout applicato a Wtx
Introduzione      Progettazione   Implementazione   Analisi   ConclusioniLayout italiano
Upcoming SlideShare
Loading in …5
×

Development and analysis of a virtual keyboard optimized (Italian)

812 views

Published on

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.

1 Comment
1 Like
Statistics
Notes
  • posso avere informazioni riguardo alla fonte della tabella di frequenza dei bigrammi?
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
812
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
0
Comments
1
Likes
1
Embeds 0
No embeds

No notes for slide

Development and analysis of a virtual keyboard optimized (Italian)

  1. 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. 2. Introduzione Progettazione Implementazione Analisi ConclusioniSommario 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. 3. Introduzione Progettazione Implementazione Analisi ConclusioniSistemi 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. 4. Introduzione Progettazione Implementazione Analisi ConclusioniSistemi di input Wtx Vuole minimizzare il numero di tap Dizionario interno Estensioni: Predizione (multi-mode) Riconoscimento della grafia location awareness ecc...
  5. 5. Introduzione Progettazione Implementazione Analisi ConclusioniSistemi di input TenGO Nasce su tastiera virtuale Solo 6 tasti grandi Più caratteri in un tasto Dizionario interno
  6. 6. Introduzione Progettazione Implementazione Analisi ConclusioniTastiere 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. 7. Introduzione Progettazione Implementazione Analisi ConclusioniTastiere virtuali Tastiera alfabetica Facilità d’uso per chi non conosce il layout Nessun vantaggio da chi è esperto
  8. 8. Introduzione Progettazione Implementazione Analisi ConclusioniTastiere virtuali FITALY Ottimizzata per i tap Forma quadrata Disposizione per frequenza Due tasti spazio grandi
  9. 9. Introduzione Progettazione Implementazione Analisi ConclusioniTastiere virtuali Metropolis Ottimizzata per i tap Tasti esagonali Tasto spazio centrale Mantiene vicine le coppie di lettere comuni
  10. 10. Introduzione Progettazione Implementazione Analisi ConclusioniPrincipi 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. 11. Introduzione Progettazione Implementazione Analisi ConclusioniPrincipi 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. 12. Introduzione Progettazione Implementazione Analisi ConclusioniAnalisi 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. 13. Introduzione Progettazione Implementazione Analisi ConclusioniAnalisi delle frequenze dei digrammi
  14. 14. Introduzione Progettazione Implementazione Analisi ConclusioniAnalisi 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. 15. Introduzione Progettazione Implementazione Analisi ConclusioniAnalisi delle frequenze dei digrammi
  16. 16. Introduzione Progettazione Implementazione Analisi ConclusioniCome 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. 17. Introduzione Progettazione Implementazione Analisi ConclusioniCome 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. 18. Introduzione Progettazione Implementazione Analisi ConclusioniCome 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. 19. Introduzione Progettazione Implementazione Analisi ConclusioniCome 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. 20. Introduzione Progettazione Implementazione Analisi ConclusioniEuristiche Simulated Annealing Il Simulated Annealing è un algoritmo euristico iterattivo basato sulla ricerca locale. Ideato osservando il processo di annichilazione dei metalli.
  21. 21. Introduzione Progettazione Implementazione Analisi ConclusioniScelta della configurazione iniziale Layout iniziale Numero più basso corrisponde a lettera più comune
  22. 22. Introduzione Progettazione Implementazione Analisi ConclusioniScelta della configurazione iniziale Layout iniziale Al centro ci sono le lettere più comuni
  23. 23. Introduzione Progettazione Implementazione Analisi ConclusioniScelta della configurazione iniziale
  24. 24. Introduzione Progettazione Implementazione Analisi ConclusioniAlgoritmo Algoritmo Ad ogni step abbiamo: FASE 1: calcolo della best position FASE 2: Simulate Annealing
  25. 25. Introduzione Progettazione Implementazione Analisi ConclusioniAlgoritmo 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. 26. Introduzione Progettazione Implementazione Analisi ConclusioniAlgoritmo 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. 27. Introduzione Progettazione Implementazione Analisi ConclusioniAlgoritmo 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).
  28. 28. Introduzione Progettazione Implementazione Analisi ConclusioniAlgoritmo Algoritmo: Simulated Annealing while(T > 0){ best_positions = calcola_best_positions(); foreach(lettera, posizione from best_positions){ if( testMovimento(lettera, posizione) ){ move(lettera, posizione); } } diminuisci(T); }
  29. 29. Introduzione Progettazione Implementazione Analisi ConclusioniAlgoritmo Algoritmo: Simulated Annealing - funzione testMovimento function testMovimento(lettera, posizione) { if( posizione_attuale == posizione ) return false; lettera_swap = getLettera_in_posizione(posizione); desiderio_spostamento = desideri[lettera][posizione] + desideri[lettera_swap][posizione_attuale]; desiderio_non_spostamento = desideri[lettera][posizione_attuale] + desideri[lettera_swap][posizione]; if(desiderio_spostamento * (1 + T) > desiderio_non_spostamento){ return true; } return false; }
  30. 30. Introduzione Progettazione Implementazione Analisi ConclusioniEsempio: situazione iniziale
  31. 31. Introduzione Progettazione Implementazione Analisi ConclusioniEsempio: primo spostamento (swap E A)
  32. 32. Introduzione Progettazione Implementazione Analisi ConclusioniEsempio: secondo spostamento (swap A T)
  33. 33. Introduzione Progettazione Implementazione Analisi ConclusioniEsempio: terzo spostamento (swap I O)
  34. 34. Introduzione Progettazione Implementazione Analisi ConclusioniEsempio: quarto spostamento (swap S I)
  35. 35. Introduzione Progettazione Implementazione Analisi ConclusioniLayout finale
  36. 36. Introduzione Progettazione Implementazione Analisi ConclusioniAnalisi della frequenza dei tasti Lettere che formano taneoi 44% di frequenza Lettere che formano taneoirsh 63% di frequenza
  37. 37. Introduzione Progettazione Implementazione Analisi ConclusioniAnalisi della frequenza dei digrammi Misurazione degli spostamenti in pixel Words per minute 45 wpm
  38. 38. Introduzione Progettazione Implementazione Analisi ConclusioniConclusioni 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. 39. Introduzione Progettazione Implementazione Analisi ConclusioniLayout applicato a Wtx
  40. 40. Introduzione Progettazione Implementazione Analisi ConclusioniLayout italiano

×