Your SlideShare is downloading. ×
0
Development and analysis of a virtual keyboard optimized (Italian)
Development and analysis of a virtual keyboard optimized (Italian)
Development and analysis of a virtual keyboard optimized (Italian)
Development and analysis of a virtual keyboard optimized (Italian)
Development and analysis of a virtual keyboard optimized (Italian)
Development and analysis of a virtual keyboard optimized (Italian)
Development and analysis of a virtual keyboard optimized (Italian)
Development and analysis of a virtual keyboard optimized (Italian)
Development and analysis of a virtual keyboard optimized (Italian)
Development and analysis of a virtual keyboard optimized (Italian)
Development and analysis of a virtual keyboard optimized (Italian)
Development and analysis of a virtual keyboard optimized (Italian)
Development and analysis of a virtual keyboard optimized (Italian)
Development and analysis of a virtual keyboard optimized (Italian)
Development and analysis of a virtual keyboard optimized (Italian)
Development and analysis of a virtual keyboard optimized (Italian)
Development and analysis of a virtual keyboard optimized (Italian)
Development and analysis of a virtual keyboard optimized (Italian)
Development and analysis of a virtual keyboard optimized (Italian)
Development and analysis of a virtual keyboard optimized (Italian)
Development and analysis of a virtual keyboard optimized (Italian)
Development and analysis of a virtual keyboard optimized (Italian)
Development and analysis of a virtual keyboard optimized (Italian)
Development and analysis of a virtual keyboard optimized (Italian)
Development and analysis of a virtual keyboard optimized (Italian)
Development and analysis of a virtual keyboard optimized (Italian)
Development and analysis of a virtual keyboard optimized (Italian)
Development and analysis of a virtual keyboard optimized (Italian)
Development and analysis of a virtual keyboard optimized (Italian)
Development and analysis of a virtual keyboard optimized (Italian)
Development and analysis of a virtual keyboard optimized (Italian)
Development and analysis of a virtual keyboard optimized (Italian)
Development and analysis of a virtual keyboard optimized (Italian)
Development and analysis of a virtual keyboard optimized (Italian)
Development and analysis of a virtual keyboard optimized (Italian)
Development and analysis of a virtual keyboard optimized (Italian)
Development and analysis of a virtual keyboard optimized (Italian)
Development and analysis of a virtual keyboard optimized (Italian)
Development and analysis of a virtual keyboard optimized (Italian)
Development and analysis of a virtual keyboard optimized (Italian)
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Development and analysis of a virtual keyboard optimized (Italian)

578

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. …

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
578
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
1
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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 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. 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. 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. Introduzione Progettazione Implementazione Analisi ConclusioniSistemi di input TenGO Nasce su tastiera virtuale Solo 6 tasti grandi Più caratteri in un tasto Dizionario interno
  • 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. Introduzione Progettazione Implementazione Analisi ConclusioniTastiere virtuali Tastiera alfabetica Facilità d’uso per chi non conosce il layout Nessun vantaggio da chi è esperto
  • 8. Introduzione Progettazione Implementazione Analisi ConclusioniTastiere virtuali FITALY Ottimizzata per i tap Forma quadrata Disposizione per frequenza Due tasti spazio grandi
  • 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. 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. 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. 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. Introduzione Progettazione Implementazione Analisi ConclusioniAnalisi delle frequenze dei digrammi
  • 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. Introduzione Progettazione Implementazione Analisi ConclusioniAnalisi delle frequenze dei digrammi
  • 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. 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. 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. 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. 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. Introduzione Progettazione Implementazione Analisi ConclusioniScelta della configurazione iniziale Layout iniziale Numero più basso corrisponde a lettera più comune
  • 22. Introduzione Progettazione Implementazione Analisi ConclusioniScelta della configurazione iniziale Layout iniziale Al centro ci sono le lettere più comuni
  • 23. Introduzione Progettazione Implementazione Analisi ConclusioniScelta della configurazione iniziale
  • 24. Introduzione Progettazione Implementazione Analisi ConclusioniAlgoritmo Algoritmo Ad ogni step abbiamo: FASE 1: calcolo della best position FASE 2: Simulate Annealing
  • 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. 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. 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. 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. 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. Introduzione Progettazione Implementazione Analisi ConclusioniEsempio: situazione iniziale
  • 31. Introduzione Progettazione Implementazione Analisi ConclusioniEsempio: primo spostamento (swap E A)
  • 32. Introduzione Progettazione Implementazione Analisi ConclusioniEsempio: secondo spostamento (swap A T)
  • 33. Introduzione Progettazione Implementazione Analisi ConclusioniEsempio: terzo spostamento (swap I O)
  • 34. Introduzione Progettazione Implementazione Analisi ConclusioniEsempio: quarto spostamento (swap S I)
  • 35. Introduzione Progettazione Implementazione Analisi ConclusioniLayout finale
  • 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. Introduzione Progettazione Implementazione Analisi ConclusioniAnalisi della frequenza dei digrammi Misurazione degli spostamenti in pixel Words per minute 45 wpm
  • 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. Introduzione Progettazione Implementazione Analisi ConclusioniLayout applicato a Wtx
  • 40. Introduzione Progettazione Implementazione Analisi ConclusioniLayout italiano

×