Proposing new and easier system functions by detecting sequence of actions of user

By identifying and comparing the difficulty level of the user action sequence with the system action sequence in the cluster database, the computing device displays the user a lower difficulty level alternative system action sequence, solving the inefficiency problem caused by the operation complexity of the user equipment and improving user experience and operation efficiency.

CN119631068APending Publication Date: 2025-03-14QUALCOMM INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380056608.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-08-08
Filing Date
2023-05-24
Publication Date
2025-03-14

AI Technical Summary

Technical Problem

Operational complexity in user equipment makes it difficult for users to discover and utilize more efficient and simplified operational features, resulting in inefficient processes and waste of resources.

Method used

The user action sequence is identified through the processor of the computing device, determined its difficulty level, and compared it with the system action sequence in the cluster database to display alternative system action sequences with lower difficulty levels.

Benefits of technology

Improve user experience and reduce user operation time and resource consumption by providing more efficient and simplified operation characteristics.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119631068A_ABST
    Figure CN119631068A_ABST
Patent Text Reader

Abstract

Embodiments include a method performed by a processor of a computing device for suggesting a more efficient sequence of actions to a user. The method may include identifying a sequence of user actions including one or more user actions performed by a user to achieve a result, determining a first level of difficulty for the sequence of user actions, determining whether a cluster of a plurality of sequences of system actions is present within a cluster database, wherein each system action sequence of the one or more system action sequences produces a result. The method may further include, in response to determining that the cluster of the plurality of system action sequences is present within the cluster database, comparing the first difficulty level to one or more difficulty levels of the one or more system action sequences, and displaying, via a display interface of the computing device, one or more system action sequences having a difficulty level lower than the first difficulty level.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Related Applications

[0002] This application claims the benefit of priority to U.S. Nonprovisional Application No. 17 / 818,064, filed August 8, 2002; the entire contents of which are hereby incorporated by reference. Background Art

[0003] User devices and consumer devices have become increasingly complex, providing advanced and increasing numbers of features that can be implemented by users to perform various operations. Often, these more complex and intelligent features are not utilized by the operating user, who may perform tasks through outdated, inefficient and / or more time-consuming steps. Therefore, users who are unaware of the ability to implement more advanced, simplified or efficient features on the device may waste time and computing resources by implementing inefficient processes to achieve the same results. In addition, users may be performing difficult tasks to achieve results that could otherwise be achieved using less difficult processes, thereby exacerbating the user experience. Summary of the invention

[0004] Various aspects include a method performed by a processor of a computing device for suggesting a more efficient action sequence to a user. Various aspects of the method may include identifying a user action sequence including one or more user actions performed by a user to obtain a result, determining a first difficulty level for the user action sequence, determining whether a cluster of a plurality of system action sequences exists in a cluster database, wherein each system action sequence of the one or more system action sequences produces the result, in response to determining that the cluster of the plurality of system action sequences exists in the cluster database, comparing the first difficulty level to one or more difficulty levels of the one or more system action sequences, and displaying, via a display interface of the computing device, one or more system action sequences having a difficulty level lower than the first difficulty level.

[0005] Some aspects may also include: in response to determining that the cluster of the plurality of system action sequences that produced the result does not exist in the cluster database, generating a new cluster including the user action sequence. Some aspects may also include: in response to determining that the cluster of the plurality of system action sequences exists in the cluster database, determining whether a system action sequence in one or more system action sequences may not include one or more user actions in the user action sequence, and, in response to determining that the system action sequence in the one or more system action sequences does not include one or more user actions in the user action sequence, updating the cluster database with the user action sequence.

[0006] In some aspects, comparing the first difficulty level to one or more difficulty levels of the one or more system action sequences can include determining whether the user action sequence has fewer actions than the one or more system action sequences, and displaying via a display interface of the computing device, the one or more system action sequences having a lower difficulty level than the first difficulty level can include displaying the one or more system action sequences having a lower difficulty level than the first difficulty level in response to determining that the user action sequence has fewer actions than the one or more system action sequences.

[0007] In some aspects, comparing the first difficulty level to the one or more difficulty levels of the one or more system action sequences can include determining whether the user action sequence is executed more slowly than a time to execute any of the one or more system action sequences, and displaying the user action sequence via a display interface of the computing device. The one or more system action sequences having a lower difficulty level than the first difficulty level can include: in response to determining that the user action sequence is executed more slowly than a time to execute any of the one or more system action sequences, displaying the one or more system action sequences having a lower difficulty level than the first difficulty level.

[0008] Some aspects may also include determining whether the user action sequence has been performed a threshold number of times, wherein comparing the first difficulty level to one or more difficulty levels of one or more system action sequences is performed in response to determining that the user action sequence has been performed the threshold number of times.

[0009] Some aspects may also include receiving a user selection indicating that the user action sequence is a user preference over one or more displayed system action sequences having a lower difficulty level, and updating the cluster database by storing user action sequences having a lower difficulty level than one or more difficulty levels of the displayed one or more system action sequences.

[0010] In some aspects, updating the cluster database by storing user action sequences having a lower difficulty level than one or more difficulty levels of the displayed one or more system action sequences may include changing a first difficulty level to a lower difficulty level. In some aspects, updating the cluster database by storing user action sequences having a lower difficulty level than one or more difficulty levels of the displayed one or more system action sequences may include changing one or more difficulty levels of the displayed one or more system action sequences to be lower than the first difficulty level. In some aspects, the user action sequence may include context and environment information associated with each of the one or more user actions.

[0011] Additional aspects include a computing device having a processor configured to perform one or more operations of any of the methods outlined above. Additional aspects include a computing device having components for performing the functions of any of the methods outlined above. Additional aspects include a non-transitory processor-readable storage medium having processor-executable instructions stored thereon, the processor-executable instructions configured to cause a processor of the computing device to perform the operations of any of the methods outlined above. BRIEF DESCRIPTION OF THE DRAWINGS

[0012] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate exemplary embodiments of the claims and, together with the general description and detailed description given herein, serve to explain the features herein.

[0013] Figure 1 is a component block diagram illustrating an example computing device suitable for implementing any of the various embodiments.

[0014] Figure 2 is a component block diagram illustrating a software architecture including a radio protocol stack for user plane and control plane in wireless communications suitable for implementing any of the various embodiments.

[0015] Figure 3 is a component block diagram illustrating an example system configured to suggest to a user a more efficient sequence of actions to achieve a result, in accordance with some embodiments.

[0016] Figure 4 is a block diagram illustrating an example data structure for suggesting to a user of a computing device a more efficient sequence of actions to achieve a result, in accordance with some embodiments.

[0017] Figure 5 is a block diagram illustrating an example updated data structure for suggesting to a user of a computing device a more efficient sequence of actions to achieve a result, in accordance with some embodiments.

[0018] Figure 6 is a process flow diagram of a method for suggesting to a user of a computing device a more efficient sequence of actions to achieve a result, according to some embodiments.

[0019] Fig. 7A is a process flow diagram of an example method that may be performed by a processor of a computing device for suggesting to a user a more efficient sequence of actions to achieve a result in accordance with various embodiments.

[0020] Figure 7B-Figure 7E is a process flow diagram of example operations that may be performed as described as part of a method for suggesting to a user a more efficient sequence of actions to achieve a result, in accordance with some embodiments.

[0021] Figure 8 is a component block diagram illustrating an example computing device suitable for use with the various embodiments.

[0022] Fig. 9 is a component block diagram illustrating an example server suitable for use with the various embodiments.

[0023] Fig.10 is a component block diagram illustrating an example wireless communication device suitable for use with the various embodiments.

[0024] Fig.11 An example wearable computing device in the form of a smartwatch is illustrated in accordance with some embodiments. DETAILED DESCRIPTION

[0025] Various embodiments will be described in detail with reference to the accompanying drawings. Wherever possible, the same reference numerals will be used throughout the drawings to refer to the same or similar parts. References to specific examples and implementations are for illustrative purposes and are not intended to limit the scope of the claims.

[0026] Many different user equipment (UE) and consumer and / or commercial computing devices (such as smart phones, extended / augmented / mixed reality (XR, AR, MR) devices, personal computers, home appliances (e.g., smart TVs, smart refrigerators, automatic vacuum systems, air conditioning control units), automotive dashboard interfaces, multimedia displays, vending operations and display interfaces (e.g., point of sale systems), or any other device with interactive display interfaces and / or operable controls) may include a large number of features that can be implemented by users to perform various tasks. Such features may allow users to perform tasks with fewer actions, in a shorter amount of time, and / or with an easier user experience than a set of actions that users would typically take to perform the same task. However, these features are often overlooked by users because the users may not be aware of the features or may have forgotten about them.

[0027] Various embodiments include methods and processors for computing devices that suggest to a user a more efficient (i.e., simplified / fewer steps, less time, less user effort) and / or easier (i.e., in terms of user experience / quality of experience (QoE)) sequence of actions to achieve a particular result. Various embodiments include a processor of a computing device (e.g., a mobile phone, a wearable device, a home appliance user interface, etc.) that is configured to record a series of user actions or a sequence of user actions taken by a user to perform a task. The processor of the computing device can be configured to determine whether there is a more efficient sequence of actions that the user can implement to achieve the same result as these user actions. If so, the processor can present the more efficient sequence of actions to the user, thereby introducing or reminding the user that the more efficient sequence of actions can be used to achieve the same result next time.

[0028] The term "system on chip" (SoC) is used herein to refer to a single integrated circuit (IC) chip that contains multiple resources and / or processors integrated on a single substrate. A single SoC may contain circuits for digital, analog, mixed signal, and radio frequency functions. A single SoC may also include any number of general and / or special processors (digital signal processors, modem processors, video processors, etc.), memory blocks (e.g., ROM, RAM, flash memory, etc.), and resources (e.g., timers, voltage regulators, oscillators, etc.). The SoC may also include software for controlling the integrated resources and processors and for controlling peripheral devices.

[0029] The term "system in package" (SIP) may be used herein to refer to a single module or package that contains multiple resources, computing units, cores and / or processors on two or more IC chips, substrates or SoCs. For example, a SIP may include a single substrate on which multiple IC chips or semiconductor wafers are stacked in a vertical configuration. Similarly, a SIP may include one or more multi-chip modules (MCMs) on which multiple ICs or semiconductor wafers are packaged into a unified substrate. A SIP may also include multiple independent SoCs that are coupled together via high-speed communication circuits and packaged in close proximity (such as on a single motherboard or in a single computing device). The proximity of the SoCs facilitates high-speed communication and the sharing of memory and resources.

[0030] As used herein, the terms "network," "system," "wireless network," "cellular network," and "wireless communication network" may interchangeably refer to a portion or all of a wireless network of a carrier associated with a computing device and / or a subscription on a computing device. The techniques described herein may be used in a variety of wireless communication networks, such as code division multiple access (CDMA), time division multiple access (TDMA), FDMA, orthogonal FDMA (OFDMA), single carrier FDMA (SC-FDMA), and other networks. In general, any number of wireless networks may be deployed in a given geographic area. Each wireless network may support at least one radio access technology, which may operate on one or more frequencies or frequency ranges. For example, a CDMA network may implement Universal Terrestrial Radio Access (UTRA) (including Wideband Code Division Multiple Access (WCDMA) standards), CDMA2000 (including IS-2000, IS-95, and / or IS-856 standards), and the like. In another example, a TDMA network may implement GSM Enhanced Data Rates for GSM Evolution (EDGE). In another example, an OFDMA network may implement Evolved UTRA (E-UTRA), IEEE 802.11 (WiFi), IEEE 802.16 (WiMAX), IEEE 802.20, Etc. Reference may be made to a wireless network using the Long Term Evolution (LTE) standard, and thus the terms "Evolved Universal Terrestrial Radio Access," "E-UTRAN," and "eNodeB" may also be used interchangeably herein to refer to a wireless network. However, such references are provided only as examples and are not intended to exclude wireless networks using other communication standards. For example, although various third generation (3G) systems, fourth generation (4G) systems, and fifth generation (5G) systems are discussed herein, in various embodiments, these systems are cited only as examples, and future generation systems (e.g., sixth generation (6G) or higher generation systems) may be substituted.

[0031] Recently, with the rapid development and advancement of technology, computing devices may include several functions and intelligent features. It may be difficult for users to know and utilize one or more of these advanced features, especially useful and effective features, at a most beneficial moment during the operation of the computing device. For example, users may only know or use the basic functions / features available on the previous model or operating system of the computing device, and can perform tasks on the computing device using familiar methods. Users may also not know more efficient and / or easier to use features, because many commercial consumers find it difficult or tedious to read the system manual, let alone remember all the features recorded in the system manual. Users may also encounter difficulties in remembering more efficient intelligent features at precise moments during the operation of the computing device, such as users may be trying to perform time-sensitive tasks. Performing some tasks may be complex or frustrating for users (for example, thumbprint verification when both hands are occupied), but users may not know that some other methods (for example, such as iris verification) can be used to perform the same task. Therefore, users may have a negative user experience, although other available interactive action sequences unknown to users may produce the same results and provide users with a positive experience.

[0032] Various embodiments may provide a user with a recommended or suggested sequence of actions as an alternative to achieve the same result as a sequence of actions that the user has recently or concurrently performed. The suggested sequence of actions may inform the user of more efficient (i.e., less time-consuming, fewer actions, easier to perform) actions or sequences of actions that the user can implement to achieve the desired result. For example, the user may not know that facial recognition software used to unlock a mobile device can unlock the device when the user is wearing a protective mask (such as through iris recognition), and the user may take off the mask every time he attempts to unlock the device. After recognizing that the user takes off the mask to unlock the phone, the mobile device may provide a message to the user, notifying the user that the mask may not need to be removed and / or the mobile device may be unlocked by positioning the smart watch close to the mobile device. As another example, the user can manually set the dark theme / power saving / low light mode of the computing device to be turned on or off during the day, such as turning on the dark theme at night and turning it off again in the morning. The computing device can detect the user's pattern and suggest new features, such as presenting a series of actions to the user (i.e., through a tutorial or a list of steps) to configure the computing device to automatically schedule a dark theme based on sunset and / or sunrise time.

[0033] Various embodiments include methods and apparatus for providing a user with a sequence of actions that is more efficient and / or easier to implement to achieve the same result than a sequence of actions that the user implements or has repeatedly implemented. By notifying the user of available advanced features, when the user chooses to perform the suggested sequence of actions instead of a previously and inefficiently used sequence of actions, computing resources can be reserved, battery life can be extended, and the user experience can be enhanced.

[0034] Various embodiments include a method executed by a processor of a computing device for suggesting to a user a more efficient sequence of actions to achieve the same or similar result. Various embodiments may include monitoring for interaction with a computing device to identify when a user action sequence including one or more user actions is performed by a user to achieve a result, determining a first difficulty level for the user action sequence, determining whether a cluster of multiple system action sequences exists in a cluster database, wherein each action sequence of multiple alternative user action sequences produces the same result. The method may also include, in response to determining that a cluster of multiple alternative system action sequences exists in the cluster database that produces the same result, comparing the first difficulty level to one or more difficulty levels of each of the multiple alternative user action sequences, and displaying, via a display interface of the computing device, one or more alternative system action sequences having a difficulty level lower than the first difficulty level.

[0035] Figure 1 is a component block diagram illustrating an example computing device 100 suitable for implementing any of the various embodiments. The various embodiments may be implemented on a number of single-processor and multi-processor computer systems, including systems on a chip (SoC) or systems in a package.

[0036] refer to Figure 1 , the illustrated example computing device 100 (which may be a system-in-package in some embodiments) includes two SoCs 202, 204 coupled to a clock 206, a voltage regulator 208, at least one subscriber identity module (SIM) 268 and / or a SIM interface, and a wireless transceiver 266, which is configured to send and receive wireless communications to / from a network computing device (such as a base station) via an antenna (not shown). In some embodiments, the first SoC 202 operates as a central processing unit (CPU) of a computing device, which executes instructions of a software application by performing arithmetic, logic, control, and input / output (I / O) operations specified by the instructions. In some embodiments, the second SoC 204 may operate as a dedicated processing unit. For example, the second SoC 204 may operate as a dedicated 5G processing unit responsible for managing high-capacity, high-speed (e.g., 5 Gbps, etc.) and / or very high frequency short wavelength (e.g., 28 GHz millimeter wave spectrum, etc.) communications.

[0037] The first SoC 202 may include a digital signal processor (DSP) 210, a modem processor 212, a graphics processor 214, an application processor (AP) 216, one or more coprocessors 218 (e.g., vector coprocessors) connected to one or more processors, a memory 220, a custom circuit 222, system components and resources 224, an interconnect / bus module 226, one or more sensors 230 (e.g., accelerometers, temperature sensors, pressure sensors, optical sensors, infrared sensors, analog sound sensors, etc.), a thermal management unit 232, and a thermal power envelope (TPE) component 234. The second SoC 204 may include a 5G modem processor 252, a power management unit 254, an interconnect / bus module 264, multiple mmWave transceivers 256, a memory 258, and various additional processors 260 (e.g., an application processor, a packet processor, etc.).

[0038] Each processor 210, 212, 214, 216, 218, 252, 260 may include one or more cores, and each processor / core may perform operations independently of other processors / cores. For example, the first SoC 202 may include a processor that executes a first type of operating system (e.g., FreeBSD, LINUX, OS X, etc.) and a processor that executes a second type of operating system (e.g., MICROSOFT WINDOWS 10). In addition, any one or all of the processors 210, 212, 214, 216, 218, 252, 260 may be included as part of a processor cluster architecture (e.g., a synchronous processor cluster architecture, an asynchronous or heterogeneous processor cluster architecture, etc.).

[0039] The first SoC 202 and the second SoC 204 may include various system components, resources, and custom circuits for managing sensor data, analog-to-digital conversion, wireless data transmission, and for performing other specialized operations, such as decoding data packets and processing encoded audio and video signals for presentation in a web browser. For example, the system components and resources 224 of the first SoC 202 may include power amplifiers, voltage regulators, oscillators, phase-locked loops, peripheral bridges, data controllers, memory controllers, system controllers, access ports, timers, and other similar components for supporting processors and software clients running on the computing device. The system components and resources 224 and / or custom circuits 222 may also include circuits for interfacing with peripheral devices (such as cameras, electronic displays, wireless communication devices, external memory chips, etc.).

[0040] The first SoC 202 and the second SoC 204 can communicate via an interconnect / bus module 250. The various processors 210, 212, 214, 216, 218 can be interconnected to one or more memory elements 220, system components and resources 224, and custom circuits 222 and thermal management units 232 via an interconnect / bus module 226. Similarly, the processor 252 can be interconnected to a power management unit 254, a millimeter wave transceiver 256, a memory 258, and various additional processors 260 via an interconnect / bus module 264. The interconnect / bus modules 226, 250, 264 may include reconfigurable logic gate arrays and / or implement a bus architecture (e.g., CoreConnect, AMBA, etc.). Communications may be provided by advanced interconnects such as a high-performance network on chip (NoC).

[0041] The first and / or second SoC 202, 204 may further include an input / output module (not shown) for communicating with resources external to the SoC, such as a clock 206, a voltage regulator 208, one or more wireless transceivers 266, and at least one SIM 268 and / or a SIM interface (i.e., an interface for receiving one or more SIM cards). Resources external to the SoC (e.g., clock 206, voltage regulator 208) may be shared by two or more of the internal SoC processors / cores. At least one SIM 268 (or one or more SIM cards coupled to one or more SIM interfaces) may store information supporting multiple subscriptions (including a first 5G NR subscription and a second 5G NR subscription, etc.).

[0042] In addition to the example computing device 100 discussed above, various embodiments may be implemented in a wide variety of computing systems that may include a single processor, multiple processors, multi-core processors, or any combination thereof.

[0043] Figure 2 is a component block diagram illustrating a software architecture 300 including a wireless protocol stack for a user plane and a control plane in wireless communications suitable for implementing any of the various embodiments. Figure 1-2, the computing device 320 may implement the software architecture 200 to facilitate communication between the computing device 320 (e.g., computing device 100) and the base station 350 of the telecommunications system. In some embodiments, the layers in the software architecture 200 may form a logical connection with the corresponding layers in the software of the base station 350. The software architecture 200 may be distributed between one or more processors (e.g., processors 212, 214, 216, 218, 252, 260). Although illustrated with respect to one wireless protocol stack, in a multi-SIM (subscriber identity module) computing device, the software architecture 200 may include multiple protocol stacks, each of which may be associated with a different SIM (e.g., two protocol stacks associated with two SIMs, respectively, in a dual SIM wireless communication device). Although described below with reference to the LTE communication layer, the software architecture 200 may support any of the various standards and protocols for wireless communication, and / or may include additional protocol stacks that support any of the various standards and protocols for wireless communication.

[0044] The software architecture 200 may include a non-access stratum (NAS) 302 and an access stratum (AS) 304. The NAS 302 may include functions and protocols for supporting packet filtering, security management, mobility control, session management, and services and signaling between a SIM of a computing device and its core network. The AS 304 may include functions and protocols for supporting communications between a SIM and entities (e.g., base stations) of a supported access network. In particular, the AS 304 may include at least three layers (layer 1, layer 2, and layer 3), each of which may contain various sublayers.

[0045] In the user plane and the control plane, layer 1 (L1) of the AS 304 may be a physical layer (PHY) 306, which may oversee functions that enable transmission and / or reception over an air interface. Examples of such physical layer 306 functions may include cyclic redundancy check (CRC) attachment, coding blocks, scrambling and descrambling, modulation and demodulation, signal measurement, MIMO, etc. The PHY layer 306 may include various logical channels, including a physical downlink control channel (PDCCH) and a physical downlink shared channel (PDSCH). As an example, the PHY layer 306 may support channel state information (CSI) measurements and reporting (e.g., channel quality indicator (CQI) measurements and reporting).

[0046] In the user plane and the control plane, Layer 2 (L2) of AS 304 may be responsible for the link between computing device 320 and base station 350 on physical layer 306. In various embodiments, Layer 2 may include a medium access control (MAC) sublayer 308, a radio link control (RLC) sublayer 310, and a packet data convergence protocol (PDCP) 312 sublayer, each of which forms a logical connection that terminates at base station 350.

[0047] In the control plane, layer 3 (L3) of AS 304 may include a radio resource control (RRC) sublayer 3. Although not shown, the software architecture 200 may include additional layer 3 sublayers, as well as various upper layers above layer 3. In various embodiments, the RRC sublayer 313 may provide functionality including broadcasting system information, paging, and establishing and releasing an RRC signaling connection between the computing device 320 and the base station 350.

[0048] In various embodiments, the PDCP sublayer 312 may provide uplink functions including multiplexing between different radio bearers and logical channels, sequence number addition, handover data handling, integrity protection, ciphering, and header compression. In the downlink, the PDCP sublayer 312 may provide functions including in-sequence delivery of data packets, duplicate data packet detection, integrity verification, decryption, and header decompression.

[0049] In the uplink, the RLC sublayer 310 may provide segmentation and concatenation of upper layer data packets, retransmission of lost data packets, and automatic repeat request (ARQ). In the downlink, the RLC sublayer 310 functions may include reordering of data packets to compensate for out-of-order reception, reassembly of upper layer data packets, and ARQ.

[0050] In the uplink, the MAC sublayer 308 may provide functions including multiplexing between logical channels and transport channels, random access procedures, logical channel priorities, and hybrid ARQ (HARQ) operations. In the downlink, MAC layer functions may include channel mapping within a cell, demultiplexing, discontinuous reception (DRX), and HARQ operations.

[0051] Although the software architecture 200 may provide functionality for sending data over physical media, the software architecture 200 may also include at least one host layer 314 to provide data transfer services to various applications in the computing device 320. In some embodiments, the dedicated functionality provided by the at least one host layer 314 may provide an interface between the software architecture and a general-purpose processor.

[0052] In other embodiments, the software architecture 200 may include one or more higher logical layers (e.g., transport, session, presentation, application, etc.) that provide host layer functionality. In some embodiments, the software architecture 200 may include an application layer where a logical connection terminates at another device (e.g., an end-user device, a server, etc.). In some embodiments, the software architecture 200 may also include a hardware interface 316 between the physical layer 306 and communication hardware (e.g., one or more radio frequency (RF) transceivers) in the AS 304.

[0053] Figure 3 is a component block diagram illustrating an example system 300 configured to suggest to a user a more efficient sequence of actions to achieve a result in accordance with some embodiments. Figures 1 to 3 , the system 300 may include one or more computing devices 402 (e.g., computing devices 200, 320) and external resources 418 (e.g., AR glasses, AR server), which may communicate via a wireless communication network 424. The external resources 418 may include information sources external to the system 300, external entities participating in the system 300, or other resources. In some implementations, some or all of the functionality attributed herein to the external resources 418 may be provided by resources included in the system 300. The system 300 may include multiple hardware, software, and / or firmware components that operate together to provide the functionality attributed herein to the processor 422.

[0054] The computing device 402 may include an electronic storage 420 that may be configured to store information related to the functions implemented by the send-receive module 430, the interface display module 432, the action monitoring module 434, the scene information module 436, the level determination / difficulty level module 438, the cluster / sequence comparison module 440, the cluster generation / update module 442, and any other instruction modules.

[0055] Electronic storage 420 may include non-transitory storage media that electronically stores information. Electronic storage 420 may include one or both of system memory provided integrally with system 300 (i.e., substantially non-removable) and / or removable storage that may be removably connected to system 300 via, for example, a port (e.g., a universal serial bus (USB) port, a firewire port, etc.) or a drive (e.g., a disk drive, etc.). In various embodiments, electronic storage 420 may include one or more of charge-based storage media (e.g., EEPROM, RAM, etc.), solid-state storage media (e.g., flash drives, etc.), optically readable storage media (e.g., optical disks, etc.), magnetically readable storage media (e.g., magnetic tape, magnetic hard drives, floppy disk drives, etc.), and / or other electronically readable storage media. Electronic storage 420 may include one or more virtual storage resources (e.g., cloud storage, virtual private networks, and / or other virtual storage resources). Electronic storage 420 may store software algorithms, information determined by processor 422, and / or other information that enables system 200 to function as described herein.

[0056] The computing device 402 may be configured by machine-readable instructions 406. The machine-readable instructions 406 may include one or more instruction modules. The instruction modules may include computer program modules. The instruction modules may include one or more of a send-receive module 430, an interface display module 432, an action monitoring module 434, a context information module 436, a level determination / difficulty level module 438, a cluster / sequence comparison module 440, a cluster generation / update module 442, and other instruction modules (not shown). The computing device 402 may include a processor 422 configured to implement the machine-readable instructions 406 and corresponding modules.

[0057] Processor 422 may include one or more local processors that may be configured to provide information processing capabilities in system 300. As such, processor(s) 422 may include one or more of a digital processor, an analog processor, a digital circuit designed to process information, an analog circuit designed to process information, a state machine, and / or other mechanisms for electronically processing information. Although processor(s) 422 may be configured to provide information processing capabilities in system 300, processor(s) 422 may include one or more of a digital processor, an analog processor, a digital circuit designed to process information, an analog circuit designed to process information, a state machine, and / or other mechanisms for electronically processing information. Figure 3 422 is shown as a single entity, but this is for illustrative purposes only. In some embodiments, processor 422 may include multiple processing units. These processing units may be physically located within the same device, or processor 422 may represent processing functions of multiple devices distributed in system 300.

[0058] In some embodiments, processor(s) 422 executing transmit-receive module 430 may be configured to send and receive information with external resource 418 via communication link 424 .

[0059] In some embodiments, the processor 422 of the execution interface display module 432 may be configured to display a more efficient action sequence to the user via the display interface. In some embodiments, the processor 422 of the execution interface display module 432 may be configured to receive an input selection from the user via the display interface. In some embodiments, the processor 422 of the execution interface display module 432 may be configured to display one or more alternative system action sequences with a difficulty level lower than the first difficulty level via the display interface of the computing device. In some embodiments, the processor 422 of the execution interface display module 432 may be configured to display one or more alternative system action sequences with a difficulty level lower than the first difficulty level via the display interface of the computing device in response to determining that the user action sequence requires more actions or interactions than the one or more system action sequences that are replaced. In some embodiments, the (one or more) processors 422 of the execution interface display module 432 may be configured to display one or more system action sequences with a difficulty level lower than the first difficulty level via the display interface of the computing device in response to determining that the user action sequence needs to be executed or completed longer than the time it takes to execute any one of the one or more system action sequences, and display one or more system action sequences with a difficulty level lower than the first difficulty level via the display interface of the computing device. In some embodiments, the processor(s) 422 executing the interface display module 432 may be configured to receive a user selection indicating that the user action sequence is preferred by the user over one or more displayed system action sequences having a lower difficulty level.

[0060] In some embodiments, the processor(s) 422 of the execution action monitoring module 434 may be configured to monitor user interactions with the computing device to identify when a user performs a user action sequence including one or more user actions to achieve a particular result, such as accessing a file, launching a particular application, dialing a phone number, taking a photo, etc. In some embodiments, the processor 422 of the execution action monitoring module 434 may be configured to determine whether the user action sequence has been performed a threshold number of times, wherein comparing the first difficulty level to one or more difficulty levels of a cluster of a plurality of alternative system action sequences that produce the same result in the cluster database may be performed in response to determining that the user action sequence has been performed the threshold number of times.

[0061] In some embodiments, the processor(s) 422 executing the context information module 436 may be configured to analyze, measure, or otherwise determine context information including temporal and environmental information about each action within a sequence of user actions.

[0062] In some embodiments, the processor 422 executing the level determination / difficulty level module 438 may be configured to determine a first difficulty level for the sequence of user actions.

[0063] In some embodiments, the processor 422 executing the cluster / sequence comparison module 440 may be configured to compare the first difficulty level with one or more difficulty levels of the clusters of the multiple alternative system action sequences that produce the same result in the cluster database in response to determining that the clusters of the multiple alternative system action sequences that produce the same result exist in the cluster database. In some embodiments, the processor 422 executing the cluster / sequence comparison module 440 may be configured to determine whether the user action sequence has fewer actions than one or more system action sequences. In some embodiments, the processor 422 executing the cluster / sequence comparison module 440 may be configured to determine whether the user action sequence is executed more slowly than the time to execute any one of the one or more system action sequences. In some embodiments, the processor 422 executing the cluster / sequence comparison module 440 may be configured to determine whether the clusters of the multiple system action sequences exist in the cluster database, wherein each system action sequence in the multiple alternative user action sequences produces the same result. In some embodiments, the processor 422 executing the cluster / sequence comparison module 440 may be configured to determine whether the system action sequence of the multiple alternative user action sequences includes one or more user actions of the user action sequence in response to determining that the clusters of the multiple system action sequences exist in the cluster database.

[0064] In some embodiments, the processor 422 executing the cluster generation / update module 442 may be configured to generate a new cluster including a user action sequence in response to determining that the cluster of multiple system action sequences that produce the result does not exist in the cluster database. In some embodiments, the processor 422 executing the cluster generation / update module 442 may be configured to update the cluster of multiple alternative system action sequences that produce the same result as the user action sequence in response to determining that the system action sequence in multiple alternative user action sequences does not include one or more user actions in the user action sequence. In some embodiments, the processor 422 executing the cluster generation / update module 442 may be configured to update the cluster of multiple alternative system action sequences that produce the same result to store user action sequences with a difficulty level lower than one or more difficulty levels of the one or more system action sequences displayed. In some embodiments, the processor 422 executing the cluster generation / update module 442 may be configured to change the first difficulty level to a lower difficulty level. In some embodiments, the processor 422 executing the cluster generation / update module 442 may be configured to change the one or more difficulty levels of the one or more system action sequences displayed to be lower than the first difficulty level.

[0065] Processor(s) 422 may execute modules 430 - 442 and / or other modules via software, hardware, firmware, some combination of software, hardware, and / or firmware, and / or other mechanisms for configuring processing capabilities on processor(s) 422 .

[0066] The description of the functionality provided by the different modules 430-442 is for illustrative purposes and is not intended to be limiting, as any of the modules 430-442 may provide more or less functionality than described. For example, one or more of the modules 430-442 may be eliminated, and some or all of their functionality may be provided by other modules in the modules 430-442. As another example, the processor(s) 422 may execute one or more additional modules that may perform some or all of the functionality assigned to one of the modules 430-442 below.

[0067] Figure 4 is a block diagram illustrating an example data structure for suggesting to a user of a computing device a more efficient sequence of actions to achieve a result, according to some embodiments. Figure 1-4 , a data structure, which may be referred to as a cluster, may be stored within a database (e.g., registers 220, 258, electronic storage 420) of a computing device (e.g., 200, 320, 402), and / or may be stored within an external database (e.g., external resource 418) that is communicatively connected to the computing device.

[0068] Each cluster may be associated with a particular result, and each cluster may have one or more action sequences including one or more actions "A" that may be performed to obtain the result. There may be any number N of clusters, each associated with a different result, and each cluster may have any number M of action sequences for obtaining the result associated with each cluster. For example, cluster 1 may have one or more action sequences that may be performed to obtain result 1, cluster 2 may have one or more action sequences that may be performed to obtain result 2, and cluster N may have one or more action sequences that may be performed to obtain result N. Each system action sequence may include one action or a series of actions that may be performed to obtain a result. For example, cluster 1 may include sequence 1, sequence 2, and sequence M, each sequence including any number of different actions that may be sequentially performed by a user of a computing device to obtain result 1. For example, cluster 1 may include sequence 1, sequence 2, and sequence M, each sequence including at least one action that may be performed by a user to obtain result 1 of unlocking a phone. Sequence 1 may include an action such as entering a password, sequence 2 may include an action such as providing a user's thumbprint, and sequence M may include a first action of lifting the phone and a second action of shaking the phone to unlock.

[0069] The sequences in each cluster may be assigned or otherwise stored in association with a difficulty level. For example, cluster 1 may have sequence 1 with a higher difficulty level and sequence M with a relatively lower difficulty level, thereby indicating that the actions of sequence 1 are less efficient for the user to perform than the actions of sequence M. Each action "A" within the action sequence may be associated with context information "C", which may be used to determine or otherwise indicate the difficulty level of the action sequence.

[0070] Context information may include any temporal information that may be associated with a particular action that may be performed by a user, including but not limited to (i) the time at which the action was performed (e.g., a timestamp), (ii) the time between a currently associated action and a previous action in a sequence of actions, (iii) the time between a currently associated action and a next action in the sequence of actions, and (iv) the duration of the execution of the action.

[0071] Contextual information may also include any environmental information that may be associated with a particular action that may be performed by a user, including but not limited to (i) sensor information, such as information measured by temperature sensors, humidity sensors, pressure sensors, infrared sensors, light sensors, sound sensors / microphones for voice recognition and other sound detection and conversion (i.e., analog to digital), user interface mechanisms such as touch pads and touch screens (e.g., fingerprint recognition, capacitive-based touch recognition), (ii) computing device velocity, acceleration, and orientation information, such as information measured and / or determined by an accelerometer, and geolocation via satellite tracking and base station and / or WiFi detection or triangulation, (iii) optical information derived from a camera or camera sensor, including object and / or facial recognition, iris / eye recognition, focal distance, and / or orientation information. (iv) network connection information, such as network type, network communication protocol, network uplink and downlink speeds, proximity to servers / routers / network equipment, network access permissions, and available networks, (v) device connection information, such as connected devices, connected device communication protocols, and connected device signal strength, (vi) application information, such as type of software application (e.g., photo editing application, internet browser application, map application), application version, and application user interface (e.g., selectable user inputs / buttons), and (vii) device information, such as brand, model, and operating system type and version.

[0072] Action sequence can also be assigned with and / or indicate the difficulty level of action sequence.In certain embodiments, difficulty level can be based on the number of steps involved in each user action sequence, the complexity of user action sequence, multiple alternative user action sequences, each more or less difficult scene and / or environmental conditions and other metrics of difficulty.For example, difficulty level can be based on the total estimated time and / or average time of all actions in the execution action sequence, and / or the total number of actions in the action sequence.For example, in cluster 2, sequence 1 can have more actions than sequence 2, and therefore can be assigned a difficulty level higher than sequence 2.As another example, sequence 2 can have less actions than sequence M, but the action of sequence M can be performed in a shorter time than the action of sequence 2.Therefore, sequence M can be assigned a difficulty level lower than sequence 2.As another example, sequence 1 can have less actions than sequence 2, but based on the scene information of the actions in the two action sequences, the action of sequence 1 can be assigned a difficulty level higher than the action of sequence 2 (that is, the action in sequence 1 is more difficult for the user to perform).

[0073] Additionally, the difficulty level may take into account how each user action sequence is affected by foreseeable operating or environmental conditions. For example, if the action sequence involves pressing a small icon on a touch-sensitive display, the difficulty level may include factors that apply when an accelerometer in the computing device indicates that the device is experiencing movement and / or vibration that may make it difficult to accurately touch the small icon (e.g., when the user is walking or in a moving vehicle). In such an embodiment, an associated adjustment factor for operating or environmental conditions and difficulty level may be associated with a corresponding action sequence in a cluster of multiple alternative system action sequences that produce the same result stored in the cluster database.

[0074] A difficulty rating may be any type of grading, level, ratio, percentage, or value that may be used to indicate that it may be easier and / or more efficient for a user to perform one sequence of actions than another sequence of actions.

[0075] Figure 5 is a block diagram illustrating an example updated data structure for suggesting to a user of a computing device a more efficient sequence of actions to achieve a result, according to some embodiments. Figures 1 to 5, a user pattern history with a particular result can be used to update a cluster database with the same result, or can be used to determine the difficulty level of a user action sequence based on an equivalent action sequence in a cluster of multiple alternative system action sequences that produce the same result stored in the cluster database. For example, a user pattern history may include a sequence U performed by a user of a computing device to obtain result 1. A computing device that has monitored and recorded each action of sequence U and any associated context information can search the cluster database to determine whether there is a cluster with result 1. In this illustrative example, there may be a cluster 1 with result 1, but there may not be an action sequence with the same action as sequence U. Therefore, cluster 1 can be updated to include a user pattern history containing sequence U. Level determination can be performed by a computing device and / or database storing cluster information to assign a difficulty level or grade to sequence U. Sequence U can then be stored as part of cluster 1 with the determined difficulty level, and the computing device can provide a sequence of actions (e.g., sequence M) to the user via a display interface, which can be performed more easily or more efficiently than sequence U (i.e., after the user initially performs sequence U and before the user attempts to perform sequence U again).

[0076] Following the above example, the user may subsequently and iteratively perform sequence U. Since cluster 1 has already been updated with sequence U and the accompanying difficulty level, the computing device and / or cluster database may not need to perform another level of determination to determine the difficulty level of sequence U. Instead, the computing device and / or cluster database may determine that sequence U is already stored within cluster 1, may compare the difficulty level of sequence U with other sequences within cluster 1 to determine that an easier or more efficient action sequence M exists within cluster 1, and may provide sequence M to the user as a recommended course of action the next time the user attempts to achieve outcome 1.

[0077] In some embodiments where the actions of sequence U have already been stored as a sequence within cluster 1 (e.g., as sequence 2), cluster 1 will not need to be updated with the user's pattern history. Instead, the computing device may determine that sequence U performed by the user is equivalent to sequence 2, and therefore has the difficulty level already assigned to sequence 2, and may then offer sequence M to the user via the display interface as a more efficient option than the sequence U most recently performed by the user.

[0078] In some embodiments, the difficulty level of the user action sequence U can be updated to the easiest or most efficient action sequence relative to the suggested action sequence, so that the user action sequence is updated to have a stored difficulty level that is less than the stored difficulty level associated with the suggested action sequence. For example, compared with a suggested action sequence with a difficulty level of 2 (i.e., lower, less difficult, more efficient), the user action sequence can have a difficulty level of 5 (i.e., high, more difficult, less efficient). Although a suggested action sequence with a lower difficulty level is provided, the user can choose to input an indication of a preference for the user action sequence, and the user action sequence can be updated and stored in a cluster of multiple alternative system action sequences that produce the same result in the cluster database, with a difficulty level lower than the difficulty level of the suggested action sequence (e.g., the user action sequence difficulty level is 1 and the suggested action sequence difficulty is 2).

[0079] In some embodiments, if the user prefers a user action sequence rather than the suggested action sequence, the difficulty level of the suggested action sequence can be updated to be more difficult. For example, if the user selects the option of the preferred sequence U, the suggested action sequence (e.g., sequence M) can be updated to have a difficulty level greater than the user action sequence U. Then, when the user repeats the user action sequence again, the next least difficult action sequence within the cluster of multiple alternative system action sequences that produce the same result can be provided to the user. The user may still prefer the user action sequence rather than the second recommended action sequence, and the processor can continue to repeatedly provide the next most efficient action sequence within the cluster of multiple alternative system action sequences that produce the same result after executing each user action sequence, until all suggested action sequences in the cluster of multiple alternative system action sequences that produce the same result are presented to the user and the user continues to reject.

[0080] In some embodiments where the user selects an option indicating that the use of the user action sequence is preferred over the suggested action sequence, other action sequences in the cluster of multiple alternative system action sequences may also be updated to have a higher difficulty level than the user action sequence, the other action sequences producing the same result that has not yet been suggested to the user and being more efficient than the user action sequence but less efficient than the suggested action sequence. Thus, after performing the user action sequence for the first time and selecting the user action sequence that is preferred over the first suggested action sequence, additional suggested action sequences that are less efficient than the recommended action sequence initially provided to the user may not be presented to the user.

[0081] In some embodiments, the cluster database may be updated with user action sequences from multiple other users. Thus, for example, although an input indicating a preferred user action sequence for the user has been selected, upon subsequent and / or repeated implementation of the user action sequence, the user may be presented with a more efficient or easier action sequence that is newly or recently added to a cluster of multiple alternative system action sequences that produce the same result based on a user pattern history of another user of another computing device that is operatively communicatively connected to the cluster database.

[0082] In some embodiments, the cluster and associated action sequence may be a default cluster with a default associated action sequence defined by the manufacturer of the computing device prior to user operation. In some embodiments, a cluster of multiple alternative system action sequences that produce the same result may be generated based on the user action sequence, and the action sequence associated with the user-generated cluster may have a difficulty level determined by the computing device based on associated context information measured and collected by the computing device during the user operation.

[0083] Figure 6 is a process flow diagram of a method 600 for suggesting to a user of a computing device a more efficient sequence of actions to achieve a result, according to some embodiments. Figures 1 to 6 , method 600 may be implemented by a processor (e.g., 210, 212, 214, 216, 218, 252, 260, 422) of a computing device (e.g., 100, 320, 402). In some embodiments, method 600 may be implemented in part within an external database (e.g., external memory 420) communicatively coupled to the computing device. For example, processes involving storing and updating clusters, action sequences, and difficulty levels may be performed in part on a processor of an external database under the direction of a computing device.

[0084] In block 602, a user of a computing device may perform a user action sequence that produces a result or output "R." A user action sequence may include one or more actions that may be performed to achieve a result, and each action within a user action sequence may be associated with and / or stored with contextual information measured or otherwise determined by the computing device.

[0085] In determination block 604, the computing device may determine whether the cluster database includes a cluster having a result R. The cluster database may be included as part of the computing device, or may be located externally on a database server communicatively coupled to the computing device. The computing device may analyze or search the cluster database and compare the result R with the results of each cluster of the plurality of alternative system action sequences that produce the same result within the cluster database to determine whether any cluster of the plurality of alternative system action sequences has the same result R.

[0086] In response to determining that a cluster of multiple alternative system action sequences having the same outcome R does not exist within the cluster database (i.e., determination block 604 = "No"), the user computing device may create a new cluster of multiple alternative system action sequences having outcome R within the cluster database, as described in block 606. For example, the computing device may create a new cluster having outcome R, wherein the cluster includes a stored action sequence based on the user action sequence. Additionally, when creating the new cluster of multiple alternative system action sequences having outcome R, the computing device may assign a difficulty level to the stored action sequence based on the context information of each action within the user action sequence.

[0087] In response to determining that a cluster of multiple alternative system action sequences having the same result R does exist within the cluster database (i.e., determination block 604 = "Yes"), the computing device may determine whether the user action sequence already exists within the cluster of the multiple alternative system action sequences, as described in determination block 608. For example, the computing device may search the cluster having the result R to determine whether the action sequence has the same action as the user action sequence.

[0088] In response to determining that the user sequence does not exist within the cluster (i.e., determination block 608 = "No"), the user computing device may update, add, or otherwise store the user action sequence in the cluster of the plurality of alternative system action sequences with the result R, as described in block 610. For example, the computing device may store the user action sequence in a cluster of a plurality of alternative system action sequences with the result R, where the cluster includes one or more other action sequences that may be performed to achieve the result R. Additionally, the computing device may perform level determinations based on contextual information for each action within the user action sequence and assign difficulty levels to the stored action sequences.

[0089] After adding the user sequence to the cluster of multiple alternative system action sequences that produce the same result in block 610, the user computing device may determine whether an easier action sequence exists within the cluster of multiple alternative system action sequences, determination block 616. For example, the computing device may search or analyze the action sequences within the cluster and compare the difficulty level of the action sequences to the difficulty level of the user action sequence.

[0090] In response to determining that a cluster of multiple alternative system action sequences having the same result R does exist within the cluster database (i.e., determination block 608 = "Yes"), the computing device may determine whether the user sequence has been executed a threshold number of times, as described in determination block 612. For example, the computing device may maintain a counter to determine the number of times the user has executed the user action sequence, and may perform an action based on determination block 612 when the counter value is reached. In some embodiments, the process in determination block 612 may be optional, and instead, in response to determining that a cluster of multiple alternative system action sequences having the same result R does exist within the cluster database (i.e., determination block 608 = "Yes"), the computing device may determine in determination block 616 as described whether there is an easier or more efficient action sequence within the cluster of multiple alternative system action sequences.

[0091] In response to determining that the user sequence has not been performed a threshold number of times (i.e., determination block 612 = "No"), the computing device may not provide the user with a recommended sequence of actions or system suggestions in block 614. For example, the computing device may refrain from providing the user with a more efficient sequence of actions to achieve the result R until the user performs a less efficient sequence of user actions multiple times. Thereafter, the computing device may continue to monitor the user sequence of actions as described in block 602.

[0092] In response to determining that the user sequence has been executed a threshold number of times (i.e., determination box 612 = "Yes" or determination box 608 = "Yes" in embodiments where determination box 612 is not implemented), the computing device may determine whether there is an easier or more efficient action sequence within the cluster of multiple alternative system action sequences that produce the same result as described in determination box 616.

[0093] In response to determining that there is no easier or more efficient action sequence within the cluster of multiple alternative system action sequences (i.e., determination block 616 = "No"), the computing device may not provide the recommended action sequence or system suggestion to the user, as described in block 614. For example, the computing device may refrain from providing the action sequence to the user until the cluster of multiple alternative system action sequences is updated with newer, more action sequences (i.e., the collective cluster database of user action sequences from multiple users) that may be more efficient than the user action sequence.

[0094] In response to determining that there is an easier or more efficient action sequence within the cluster of multiple alternative system action sequences (i.e., determination block 616 = "yes"), the computing device may provide a recommended action sequence or system suggestion to the user in block 618. For example, the computing device may determine that one or more action sequences of the cluster of multiple alternative system action sequences have a lower difficulty level than the user action sequence, and may then provide at least one more efficient action sequence to the user via a display interface of the computing device. Thus, for any subsequent attempts to obtain result R, the user may be notified of a more efficient process for obtaining result R.

[0095] In determination block 620, the computing device may determine whether the user chooses to accept input of the recommended action sequence. When providing a recommended action sequence having a lower difficulty level than the user action sequence as described in block 618, the computing device may display a prompt or selectable option to the user to allow the user to accept the recommended action sequence or assign the user action sequence as preferred over the recommended action sequence. Thereafter, the computing device may continue to monitor the user action sequence as described in block 602.

[0096] In response to determining that the user has selected input to accept the recommended action sequence (i.e., determination block 620 = "Yes"), the user computing device may (i) update the user action sequence to have a higher difficulty level than the recommended action sequence (or an equivalent action sequence with the same action in a cluster of multiple alternative system action sequences), (ii) update the recommended action sequence to have a lower difficulty level than the user action sequence, (iii) both (i) and (ii), or (iv) do nothing. User acceptance of the recommended action sequence may indicate that the user may prefer the recommended action sequence to obtain result R in subsequent attempts to obtain result R, and that the user action sequence should not be recommended in any further attempts to obtain result R.

[0097] In response to determining that the user has selected input to reject the recommended action sequence (i.e., determination block 620 = "No"), the user computing device may (i) update the user action sequence to have a lower difficulty level than the recommended action sequence (or an equivalent action sequence having the same action in a cluster of multiple alternative system action sequences), and / or (ii) update the recommended action sequence to have a higher difficulty level than the user action sequence in block 622. The user's rejection of the recommended action sequence may indicate that the user may prefer the user action sequence to obtain result R in subsequent attempts to obtain result R, and the recommended action sequence should not be recommended in any further attempts to obtain result R. Thereafter, the computing device may continue to monitor the user action sequence as described in block 602.

[0098] In some embodiments, when a user performs an action sequence simultaneously to obtain a specific result, an easier and / or more efficient action sequence can be provided to the user. For example, a user can perform several actions to obtain the result of mapping a destination, such as opening an Internet browser application, inputting address information, searching for the correct address, selecting an address to open the address in a mapping application within a browser application, and then selecting the option of directly opening the address in a mapping application including more features than a browser-based mapping application. During this process, a computing device can determine that the user is trying to obtain the result of mapping a destination by identifying that the first few steps are part of an action sequence of a specific cluster of multiple alternative system action sequences with the result of mapping a destination. Before the user completes the action sequence as described above, the computing device can provide the user with the remaining steps of a more efficient action sequence to allow the user to obtain the result with fewer steps, less time and / or less effort. For example, after entering the address information in the browser application search bar, the computing device can determine that there is a more efficient action sequence, and can provide the user with a suggestion or recommendation to open the address information in a map application rather than a browser application before the user completes the action sequence.

[0099] Fig. 7A is a process flow diagram of an example method 700a that may be performed by a processor of a computing device for suggesting to a user a more efficient sequence of actions to achieve a result in accordance with various embodiments. FIG. 7B to FIG. 7E is a process flow diagram of example operations 700b-700e that may be performed as part of the described method 700a for suggesting to a user a more efficient sequence of actions to achieve a result, according to some embodiments. Figures 1 to 7E , the method 700a and operations 700b to 700e may be performed by a processor (e.g., 210, 212, 214, 216, 218, 252, 260, 422) of a computing device (e.g., 100, 320, 402). In some embodiments, the processor (e.g., 210, 212, 214, 216, 218, 252, 260, 422) may be configured to perform operations via processor-executable instructions stored in a non-transitory processor-readable medium (e.g., 220, 258, 420). The means for performing each of the operations of the method 700a and operations 700b-700e may be a processor of the system 100, 200, 300, such as reference 100, 200, 300, etc. Figures 1 to 6 Processors 210, 212, 214, 216, 218, 252, 260, 422, etc. are described.

[0100] In box 702, the processor of the receiving computing device may perform operations including identifying a sequence of user actions, which includes one or more user actions performed by the user to obtain a result. In the operations performed in box 702, the processor may monitor the user's interaction with the computing device, such as the user's interaction with the touch-sensitive display, the button pressing and movement of the device, to identify when the user interaction causes the computing device to generate or produce a specific result, such as launching an application, activating a device function (e.g., camera), accessing a file (e.g., photo), initiating or answering a phone call, etc. The computing device may record each action within the user action sequence performed by the user to obtain a specific result. Therefore, the processor may also associate each action with the context and environment information about the user action sequence and the specific result, and store the information for determining the difficulty level or level of the user action sequence. The component for performing the operations of box 702 may include a processor (e.g., 210, 212, 214, 216, 218, 252, 260, 422) of a computing device (e.g., 100, 320, 402) that executes the action monitoring module 434.

[0101] In block 704, the processor of the receiving computing device may perform operations including determining a first difficulty level for a sequence of user actions. The computing device may determine the difficulty level for the sequence of user actions based on the context information associated with each action within the sequence of actions identified and stored in block 702. The difficulty level may be based on the number of steps involved in each sequence of user actions, the complexity of the sequence of user actions, the context and / or environmental conditions of each of the multiple alternative user action sequences that are more or less difficult, and other measures of difficulty. In some embodiments, the first difficulty level may be determined by analyzing the total time to perform the sequence of user actions and / or the total number of actions within the sequence of user actions. The components for performing the operations of block 704 may include a processor (e.g., 210, 212, 214, 216, 218, 252, 260, 422) of a computing device (e.g., 100, 320, 402) that executes the level decision / difficulty level module 438 and the context information module 436.

[0102] In box 706, the processor of the receiving computing device can perform operations, including determining whether a cluster of multiple alternative system action sequences for obtaining the same specific result exists in a cluster database. The cluster database can be an organization of data in a memory that associates different user interaction sequences that a user can use to make a computing device produce or occur the same specific result, wherein each system action sequence in multiple alternative user action sequences produces the same result. Specifically, the computing device can determine whether there is a cluster database storing a user action sequence different from the user action sequence identified in box 702, and the user action sequence achieves the same result as the identified user action sequence when executed. In addition to storing multiple alternative user action sequences to obtain a given result (i.e., associating multiple user action sequences with a given result), the cluster database can also store a difficulty level associated with each of the multiple alternative user action sequences. As described, the difficulty level can be based on the number of steps involved in each user action sequence, the complexity of the user action sequence, each of the multiple alternative user action sequences, more or less difficult scenes and / or environmental conditions, and other metrics of difficulty. Means for performing the operations of block 706 may include a processor (eg, 210 , 212 , 214 , 216 , 218 , 252 , 260 , 422 ) of a computing device (eg, 100 , 320 , 402 ) executing the cluster / sequence comparison module 440 .

[0103] In block 708, a processor of the receiving computing device may perform operations including, in response to determining that a cluster of a plurality of system action sequences exists within a cluster database, comparing a first difficulty level with one or more difficulty levels of a plurality of alternative user action sequences. The computing device may compare the difficulty level of the user action sequence with the difficulty levels of the system action sequences within the cluster of the plurality of system action sequences to determine whether any of the system action sequences is more efficient or easier to use than the user action sequence for achieving the result. In some embodiments, comparing the first difficulty level with one or more difficulty levels of the plurality of alternative user action sequences may include determining whether the user action sequence has fewer actions than one or more of the plurality of alternative system action sequences. In some embodiments, comparing the first difficulty level with one or more difficulty levels of the plurality of alternative user action sequences may include determining whether the user action sequence is executed more slowly than the time required to execute any of the plurality of alternative user action sequences. The means for performing the operations of block 708 may include a processor (e.g., 210, 212, 214, 216, 218, 252, 260, 422) of a computing device (e.g., 100, 320, 402) executing the cluster / sequence comparison module 440.

[0104] In block 710, a processor of a receiving computing device may perform operations including displaying, via a display interface of the computing device, one or more of a plurality of alternative system action sequences having a difficulty level lower than the first difficulty level. The computing device may display at least one system action sequence to a user to inform the user of a more efficient course of action that may replace the user action sequence for subsequent attempts to achieve the result. In some embodiments, displaying, via the display interface of the computing device, one or more system action sequences having a difficulty level lower than the first difficulty level may include: displaying, in response to determining that the user action sequence requires more actions than the one or more system action sequences, one or more system action sequences having a difficulty level lower than the first difficulty level. In some embodiments, displaying, via the display interface of the computing device, one or more system action sequences having a difficulty level lower than the first difficulty level may include displaying, in response to determining that the user action sequence requires a longer time to perform or complete than the time to perform any of the plurality of alternative user action sequences, one or more system action sequences having a difficulty level lower than the first difficulty level. Means for performing the operations of block 710 may include a processor (eg, 210 , 212 , 214 , 216 , 218 , 252 , 260 , 422 ) of a computing device (eg, 100 , 320 , 402 ) executing the interface display module 432 .

[0105] Figure 7B The diagram illustrates operations 700b that may be performed as part of method 700a for suggesting to a user a more efficient sequence of actions to obtain a result, according to some embodiments. Figures 1 to 7B After the operations in block 706, a processor of a computing device (e.g., 100, 320, 402) may perform operations including generating a new cluster of multiple alternative system action sequences including a user action sequence in response to determining in block 712 that a cluster of multiple alternative system action sequences that produce the same result does not exist in a cluster database. As part of the process of generating a cluster of multiple alternative system action sequences that produce the same result including the user action sequence, the processor of the computing device may determine a difficulty level for the user action sequence and store the user action sequence within the generated cluster of multiple alternative system action sequences that produce the same result in the cluster database in association with the determined difficulty level. The components for performing the operations of block 712 may include a processor (e.g., 210, 212, 214, 216, 218, 252, 260, 422) of a computing device (e.g., 100, 320, 402) executing a level determination / difficulty level module 438 and a cluster generation / update module 442.

[0106] Following the operations in block 712 , the processor may perform the operations in block 708 as described.

[0107] Figure 7C The diagram illustrates operations 700c that may be performed as part of method 700a for suggesting to a user a more efficient sequence of actions to achieve a result, according to some embodiments. Figures 1 to 7C After the operations in block 706, a processor of a computing device (e.g., 100, 320, 402) may perform operations including: in response to determining in block 714 that a cluster of multiple alternative system action sequences that produce the same result exists in a cluster database, determining whether a system action sequence in the multiple alternative user action sequences includes one or more user actions in the user action sequence. In other words, the computing device may analyze the cluster of multiple alternative system action sequences to determine whether a system action sequence having the same action of the user action sequence already exists in the cluster of multiple alternative system action sequences. The components for performing the operations in block 714 may include a processor (e.g., 210, 212, 214, 216, 218, 252, 260, 422) of a computing device (e.g., 100, 320, 402) executing the level determination / difficulty level module 438 and the cluster / sequence comparison module 440.

[0108] In block 716, a processor of a computing device (e.g., 100, 320, 402) may perform operations including, in response to determining that a system action sequence in one or more system action sequences does not include one or more user actions in a user action sequence, updating a cluster of a plurality of alternative system action sequences in a cluster database with the user action sequence. Means for performing the operations of block 716 may include a processor (e.g., 210, 212, 214, 216, 218, 252, 260, 422) of a computing device (e.g., 100, 320, 402) executing cluster generation / update module 442.

[0109] Following the operations in block 716 , the processor may perform the operations in block 708 of method 700 as described.

[0110] Fig.7D Operation 700d is shown that may be performed as part of method 700a for suggesting to a user a more efficient sequence of actions to achieve a result in accordance with some embodiments. Figures 1 to 7DAfter the operations in block 706, a processor of the computing device (e.g., 100, 320, 402) may perform operations including determining whether the user action sequence has been performed a threshold number of times in block 718. The computing device may maintain a counter to determine whether the user repeatedly implements a particular user action sequence, and may provide a potentially more efficient system action sequence to the user after the threshold of the counter is reached. Means for performing the operations of block 718 may include a processor (e.g., 210, 212, 214, 216, 218, 252, 260, 422) of the computing device (e.g., 100, 320, 402) executing the action monitoring module 434.

[0111] Following the operations in block 718 , the processor may perform operations as described in block 708 , wherein a comparison of the first difficulty level to one or more difficulty levels of a plurality of alternative system action sequences is performed in response to determining that the user action sequence has been performed a threshold number of times.

[0112] Fig. 7E Operation 700e is illustrated, which may be performed as part of method 700a in accordance with some embodiments, for suggesting to a user a more efficient sequence of actions to achieve a result. Figures 1 to 7E After the operations in block 710, a processor of a computing device (e.g., 100, 320, 402) may perform operations including receiving a user selection indicating that the user action sequence is preferred by the user to one or more displayed system action sequences having a lower difficulty level in block 720. The user may select an input or selection via a display interface of the computing device indicating that the system action sequence provided to the user having a lower difficulty level than the user action sequence is not a preferred method for achieving a result, and therefore should not be recommended again when the user subsequently and / or repeatedly performs the user action sequence. The means for performing the operations of block 720 may include a processor (e.g., 210, 212, 214, 216, 218, 252, 260, 422) of a computing device (e.g., 100, 320, 402) executing interface display module 432.

[0113] In block 722, a processor of a computing device (e.g., 100, 320, 402) may perform operations including updating a cluster database by storing a user action sequence having a lower difficulty level than one or more difficulty levels of one or more system action sequences displayed. In some embodiments, updating a cluster database by storing a user action sequence having a lower difficulty level than one or more difficulty levels of one or more system action sequences displayed may include changing a first difficulty level to a lower difficulty level. In some embodiments, updating a cluster database by storing a user action sequence having a lower difficulty level than one or more difficulty levels of one or more system action sequences displayed may include changing one or more difficulty levels of one or more system action sequences displayed to be lower than the first difficulty level. A component for performing the operations of block 714 may include a processor (e.g., 210, 212, 214, 216, 218, 252, 260, 422) of a computing device (e.g., 100, 320, 402) executing a cluster generation / update module 442.

[0114] Various embodiments (including but not limited to the above reference Figures 1 to 7E The described embodiments may be implemented in a variety of computing systems, including a laptop computer 800, an example of which is shown in FIG. Figure 8 See Figure 2. Figures 1 to 8 , the laptop computer may include a touchpad touch surface 817 that serves as a pointing device for the computer and can therefore receive drag, scroll, and flick gestures similar to those implemented on computing devices equipped with a touch screen display and as described above. The laptop computer 800 will typically include a processor 802 coupled to a volatile memory 812 and a disk drive 813 of large capacity non-volatile memory such as flash memory. In addition, the computer 800 may have one or more antennas 808 for sending and receiving electromagnetic radiation, which may be connected to a wireless data link and / or a cellular telephone transceiver 816 coupled to the processor 802. The computer 800 may also include a floppy disk drive 814 and a compact disc (CD) drive 815 coupled to the processor 802. The laptop computer 800 may include a touchpad 817, a keyboard 818, and a display 819 all coupled to the processor 802. Other configurations of computing devices may include a computer mouse or trackball coupled to the processor as is well known (e.g., via a USB input), which may also be used in conjunction with various embodiments.

[0115] Fig. 99 is a component block diagram of a network computing device 900, such as a base station (e.g., base station 350), suitable for use with various embodiments. Such a network computing device (e.g., a base station such as a gNB, eNB, etc.) may include at least Fig. 9 Components shown in the figure. Figures 1 to 9 , the network computing device 900 may include a processor 901 coupled to a volatile memory 902 and a large capacity non-volatile memory (such as a disk drive 903).

[0116] The network computing device 900 may also include a peripheral memory access device coupled to the processor 901, such as a floppy disk drive, a compact disk (CD), or a digital video disk (DVD) drive 906. The network computing device 900 may also include a network access port 904 (or interface) coupled to the processor 901 for establishing a data connection with a network, such as the Internet and / or a local area network coupled to other system computers and servers.

[0117] The network computing device 900 may include one or more antennas 907 for sending and receiving electromagnetic radiation, which may be connected to a wireless communication link. The network computing device 900 may include additional access ports such as USB, Firewire, Thunderbolt, etc. for coupling to peripherals, external storage, or other devices.

[0118] Fig.10 is a component block diagram of a computing device 1000 suitable for use with various embodiments. Figures 1 to 10 , various embodiments may be implemented on various computing devices 1000 (eg, computing devices 120, 320, 402), examples of which are described in Fig.10 1000 is shown in the form of a smart phone. The computing device 1000 may include a first SoC 202 (e.g., SoC-CPU) coupled to a second SoC 204 (e.g., SoC with 5G capabilities). The first SoC 202 and the second SoC 204 may be coupled to an internal memory 1016, a display 1012, and a speaker 1014. The first SoC 202 and the second SoC 204 may also be coupled to at least one SIM 268 and / or SIM interface, which may store information supporting a first 5G NR subscription and a second 5G NR subscription, the first 5G NR subscription and the second 5G NR subscription supporting services on a 5G non-standalone (NSA) network.

[0119] The computing device 1000 may include an antenna 1004 for sending and receiving electromagnetic radiation, which may be connected to a wireless transceiver 266 coupled to one or more processors in the first and / or second SoCs 202, 204. The computing device 1000 may also include a menu selection button or rocker switch 1020 for receiving user input.

[0120] The computing device 1000 also includes a sound coding / decoding (CODEC) circuit 1010, which digitizes the sound received from the microphone into a data packet suitable for wireless transmission, and decodes the received sound data packet to generate an analog signal, which is provided to the speaker to generate sound. In addition, one or more of the processors in the first and second SoCs 202, 204, the wireless transceiver 266, and the CODEC 1010 may include a digital signal processor (DSP) circuit (not shown separately).

[0121] Various embodiments may be implemented within various computing devices, such as wearable computing devices. Fig.11 An example wearable computing device in the form of a smart watch 1100 is shown in accordance with some embodiments. The smart watch 1100 may include a processor 1102 coupled to internal memories 1104 and 1106. The internal memories 1104, 1106 may be volatile or non-volatile memories, and may also be secure and / or encrypted memories, or unsecure and / or unencrypted memories, or any combination thereof. The processor 1102 may also be coupled to a touch screen display 1120, such as a resistive sensing touch screen, a capacitive sensing touch screen, an infrared sensing touch screen, or the like. Additionally, the smart watch 1100 may have one or more antennas 1108 for sending and receiving electromagnetic radiation, which may be connected to one or more wireless data links 1112, such as one or more wireless data links 1112, which may be coupled to the processor 1102. transceiver, Peanut transceiver, Wi-Fi transceiver, ANT+ transceiver, etc. The smart watch 1100 may also include physical virtual buttons 1122 and 1110 for receiving user input and a sliding sensor 1116 for receiving user input.

[0122] The touch screen display 1120 may be coupled to a touch screen interface module that is configured to receive signals from the touch screen display 1120 indicating locations on the screen where a user's fingertip or stylus is touching the surface, and output information about the coordinates of the touch events to the processor 1102. In addition, the processor 1102 may be configured with processor-executable instructions to associate an image presented on the touch screen display 1120 with the locations of touch events received from the touch screen interface module in order to detect when a user interacts with a graphical interface icon (e.g., a virtual button).

[0123] Processor 1102 can be any programmable microprocessor, microcomputer or one or more multi-processor chips that can be configured by software instructions (applications) to perform various functions (including the functions of various embodiments). In some devices, multiple processors can be provided, such as a processor dedicated to wireless communication functions and a processor dedicated to running other applications. Typically, software applications can be stored in internal memory before they are accessed and loaded into processor 1102. Processor 1102 may include internal memory sufficient to store application software instructions. In many devices, internal memory can be volatile or non-volatile memory (such as flash memory) or a mixture of the two. For the purpose of this specification, a general reference to memory refers to memory accessible by processor 1102, including internal memory or removable memory inserted into a mobile device and memory within processor 1102 itself.

[0124] The processors of the computer 800, the network computing device 900, the computing device 1000, and the smart watch 1100 may be any programmable microprocessor, microcomputer, or one or more multi-processor chips that can be configured by software instructions (applications) to perform various functions (including the functions of the various embodiments described below). In some mobile devices, multiple processors may be provided, such as one processor within the SoC 204 dedicated to wireless communication functions and one processor within the SoC 202 dedicated to running other applications. Software applications may be stored in the memory 220, 1016 before they are accessed and loaded into the processor. The processor may include internal memory sufficient to store application software instructions.

[0125] Implementation examples are described in the following paragraphs. Although some of the following implementation examples are described in terms of example methods, additional example implementations may include: the example methods discussed in the following paragraphs are implemented by a computing device, the computing device including a processor configured with processor-executable instructions to perform the operations of the following implementation example methods; the example methods discussed in the following paragraphs are implemented by a computing device, the computing device including components for performing the functions of the following implementation example methods; and the example methods discussed in the following paragraphs may be implemented on a non-transitory processor-readable storage medium having processor-executable instructions stored thereon, the processor-executable instructions being configured to cause the processor of the computing device to perform the operations of the following implementation example methods.

[0126] Example 1. A method executed by a processor of a computing device for suggesting a more efficient action sequence to a user, comprising identifying a user action sequence including one or more user actions performed by the user to obtain a result, determining a first difficulty level of the user action sequence, determining whether a cluster of a plurality of system action sequences exists in a cluster database, wherein each system action sequence of the one or more system action sequences produces the result, in response to determining that the cluster of the plurality of system action sequences exists in the cluster database, comparing the first difficulty level with one or more difficulty levels of the one or more system action sequences, and displaying, via a display interface of the computing device, one or more system action sequences having a difficulty level lower than the first difficulty level.

[0127] Example 2. The method according to Example 1, further comprising: in response to determining that the cluster of the plurality of system action sequences that produce the result does not exist in the cluster database, generating a new cluster including the user action sequence.

[0128] Example 3. The method according to any one of Examples 1 or 2 further includes: in response to determining that the cluster of the multiple system action sequences exists in the cluster database, determining whether a system action sequence in one or more system action sequences includes one or more user actions in the user action sequence, and in response to determining that the system action sequence in one or more system action sequences does not include the one or more user actions in the user action sequence, updating the cluster database with the user action sequence.

[0129] Example 4. The method of any one of Examples 1-3, wherein comparing the first difficulty level with one or more difficulty levels of the one or more system action sequences includes determining whether the user action sequence has fewer actions than the one or more system action sequences, and wherein displaying, via a display interface of the computing device: one or more system action sequences having a lower difficulty level than the first difficulty level includes displaying one or more system action sequences having a lower difficulty level than the first difficulty level in response to determining that the user action sequence has fewer actions than the one or more system action sequences.

[0130] Example 5. The method according to any one of Examples 1-4, wherein comparing the first difficulty level with one or more difficulty levels of one or more system action sequences includes determining whether the user action sequence is executed more slowly than the time to execute any one of the one or more system action sequences, and wherein displaying, via a display interface of the computing device: one or more system action sequences having a lower difficulty level than the first difficulty level includes: in response to determining that the user action sequence is executed more slowly than the time to execute any one of the one or more system action sequences, displaying one or more system action sequences having a lower difficulty level than the first difficulty level.

[0131] Example 6. The method of any of Examples 1-5, further comprising determining whether the user action sequence has been performed a threshold number of times, wherein, in response to determining that the user action sequence has been performed the threshold number of times, comparing the first difficulty level to one or more difficulty levels of one or more system action sequences is performed.

[0132] Example 7. The method according to any one of Examples 1-6, further comprising receiving a selection indicating that the user action sequence is preferred by the user to one or more displayed system action sequences having a lower difficulty level, and updating the cluster database by storing user action sequences having a lower difficulty level than one or more difficulty levels of the displayed one or more system action sequences.

[0133] Example 8. The method of example 7, wherein updating the cluster database by storing user action sequences having a lower difficulty level than one or more difficulty levels of the displayed one or more system action sequences comprises changing a first difficulty level to a lower difficulty level.

[0134] Example 9. The method of Example 7, wherein updating the cluster database by storing user action sequences having a difficulty level lower than one or more difficulty levels of the displayed one or more system action sequences comprises changing one or more difficulty levels of the displayed one or more system action sequences to be lower than the first difficulty level.

[0135] Example 10. The method of any of Examples 1-9, wherein the sequence of user actions includes context and environment information associated with each of the one or more user actions.

[0136] As used in this application, the terms "component", "module", "system", etc. are intended to include computer-related entities configured to perform specific operations or functions, such as but not limited to hardware, firmware, a combination of hardware and software, software, or software in execution. For example, a component can be but not limited to a process, processor, object, executable file, execution thread, program, and / or computer running on a processor. As an illustration, both applications and computing devices running on a computing device can be referred to as components. One or more components can reside in a process and / or execution thread, and a component can be located on a processor or core and / or distributed between two or more processors or cores. In addition, these components can be executed from various non-temporary computer-readable media on which various instructions and / or data structures are stored. Components can communicate through local and / or remote processes, function or procedure calls, electronic signals, data packets, memory reads / writes, and other known network, computer, processor, and / or process-related communication methods.

[0137] Several different cellular and mobile communication services and standards are available or expected in the future, all of which can be implemented and benefit from various embodiments. Such services and standards include, for example, the Third Generation Partnership Project (3GPP), LTE systems, third generation wireless mobile communication technology (3G), fourth generation wireless mobile communication technology (4G), fifth generation wireless mobile communication technology (5G) and next generation 3GPP technologies, Global System for Mobile Communications (GSM), Universal Mobile Telecommunications System (UMTS), 3GSM, General Packet Radio Service (GPRS), Code Division Multiple Access (CDMA) systems (e.g., cdmaOne, CDMA1020TM), Enhanced Data Rates for GSM Evolution (EDGE), Advanced Mobile Phone System (AMPS), Digital AMPS (IS-136 / TDMA), Evolution Data Optimized (EV-DO), Digital Enhanced Cordless Telecommunications (DECT), Worldwide Interoperability for Microwave Access (WiMAX), Wireless Local Area Network (WLAN), Wi-Fi Protected Access I and II (WPA, WPA2), and Integrated Digital Enhanced Network (iDEN). Each of these technologies involves, for example, the transmission and reception of voice, data, signaling and / or content messages. It should be understood that any reference to terminology and / or technical details related to individual telecommunication standards or technologies is for illustrative purposes only and is not intended to limit the scope of the claims to a particular communication system or technology unless specifically recited in the claim language.

[0138] The various embodiments illustrated and described are provided as examples only to illustrate the various features of the claims. However, the features illustrated and described with respect to any given embodiment are not necessarily limited to the associated embodiment and may be used or combined with other embodiments illustrated and described. In addition, the claims are not intended to be limited by any one of the example embodiments. For example, one or more operations of a method may replace or be combined with one or more operations of these methods.

[0139] The foregoing method descriptions and process flow charts are provided only as illustrative examples, and are not intended to require or imply that the operations of the various embodiments must be performed in the order presented. As will be appreciated by those skilled in the art, the order of operations in the foregoing embodiments may be performed in any order. Words such as "thereafter", "then", "next" are not intended to limit the order of operations; these words are only used to guide the reader through the description of these methods. In addition, any reference to a claim element in the singular form, such as using the article "one", "an" or "the" should not be interpreted as limiting the element to the singular.

[0140] The various illustrative logical blocks, modules, circuits, and algorithmic operations described in conjunction with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or a combination of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and operations have been generally described above in terms of their functionality. Whether such functionality is implemented as hardware or software depends on the specific application and the design constraints imposed on the overall system. Those skilled in the art may implement the described functionality in different ways for each specific application, but such implementation decisions should not be interpreted as causing a departure from the scope of the claims.

[0141] The hardware for implementing the various illustrative logics, logic blocks, modules and circuits described in conjunction with the embodiments disclosed herein can be implemented or executed with a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, a discrete gate or transistor logic, a discrete hardware component or any combination thereof designed to perform the functions described herein. A general-purpose processor can be a microprocessor, but in an alternative, the processor can be any conventional processor, controller, microcontroller or state machine. The processor can also be implemented as a combination of computing devices, for example, a combination of a DSP and a microprocessor, a plurality of microprocessors, a combination of one or more microprocessors and a DSP core, or any other such configuration. Alternatively, some operations or methods can be performed by circuits specific to a given function.

[0142] In one or more embodiments, the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, these functions may be stored as one or more instructions or codes on a non-transitory computer-readable medium or a non-transitory processor-readable medium. The operation of the method or algorithm disclosed herein may be embodied in a processor-executable software module, which may reside on a non-transitory computer-readable or processor-readable storage medium. A non-transitory computer-readable or processor-readable storage medium may be any storage medium that can be accessed by a computer or processor. As an example and not limitation, such non-transitory computer-readable or processor-readable media may include RAM, ROM, EEPROM, flash memory, CD-ROM or other optical disk storage, disk storage or other magnetic storage devices, or any other medium that can be used to store desired program codes in the form of instructions or data structures and can be accessed by a computer. As used herein, disks and optical disks include compact disks (CDs), laser optical disks, optical optical disks, digital versatile disks (DVDs), floppy disks, and Blu-ray disks, wherein disks typically reproduce data magnetically, and optical disks reproduce data optically with lasers. Combinations of the above items are also included within the scope of non-transitory computer-readable and processor-readable media. Additionally, the operations of a method or algorithm may reside as one or any combination or set of codes and / or instructions on a non-transitory processor-readable medium and / or computer-readable medium, which may be incorporated into a computer program product.

[0143] The foregoing description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the claims. Various modifications to these embodiments will be apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments without departing from the scope of the claims. Therefore, the present invention is not intended to be limited to the embodiments shown herein, but should be consistent with the widest scope consistent with the appended claims and the principles and novel features disclosed herein.

Claims

1. A computing device, comprising: monitor; as well as a processor coupled to the display and configured to: identifying a user action sequence, the user action sequence comprising one or more user actions performed by a user to achieve a result; determining a first difficulty level of the user action sequence; determining whether a cluster of a plurality of system action sequences exists in a cluster database, wherein each system action sequence of the one or more system action sequences produces the result; In response to determining that a cluster of the plurality of system action sequences exists within the cluster database, comparing the first difficulty level to one or more difficulty levels of the one or more system action sequences; and One or more system action sequences having a difficulty level lower than the first difficulty level are displayed.

2. The computing device of claim 1, wherein: The processor is further configured to: In response to determining that a cluster of the plurality of system action sequences that produced the result does not exist in the cluster database, a new cluster including the user action sequence is generated.

3. The computing device of claim 1, wherein: The processor is further configured to: In response to determining that a cluster of the plurality of system action sequences exists within the cluster database, determining whether a system action sequence in the one or more system action sequences includes the one or more user actions in the user action sequence; as well as In response to determining that a system action sequence in the one or more system action sequences does not include the one or more user actions in the user action sequence, updating the cluster database with the user action sequence.

4. The computing device of claim 1, wherein: The processor is further configured to: comparing the first difficulty level to one or more difficulty levels of the one or more system action sequences by determining whether the user action sequence has fewer actions than the one or more system action sequences; as well as In response to determining that the user action sequence has fewer actions than the one or more system action sequences, displaying the one or more system action sequences having a difficulty level lower than the first difficulty level.

5. The computing device of claim 1, wherein: The processor is further configured to: comparing the first difficulty level to one or more difficulty levels of the one or more system action sequences by determining whether the user action sequence is performed slower than a time to perform any of the one or more system action sequences; as well as In response to determining that the user action sequence is performed slower than the time to perform any of the one or more system action sequences, displaying the one or more system action sequences having a difficulty level lower than the first difficulty level.

6. The computing device of claim 1, wherein: The processor is further configured to: determining whether the user action sequence has been executed a threshold number of times; as well as In response to determining that the sequence of user actions has been performed a threshold number of times, the first difficulty level is compared to one or more difficulty levels of the one or more system action sequences.

7. The computing device of claim 1, wherein: The processor is further configured to: receiving a user selection indicating that the user action sequence is preferred by the user over one or more displayed system action sequences having a lower difficulty level; as well as The cluster database is updated by storing the user action sequences having a difficulty level lower than the one or more difficulty levels of the displayed one or more system action sequences.

8. The computing device of claim 7, wherein: The processor is further configured to update the cluster database by changing the first difficulty level to a lower difficulty level.

9. The computing device of claim 7, wherein: The processor is further configured to update the cluster database by changing the one or more difficulty levels of the displayed one or more system action sequences to be lower than the first difficulty level.

10. The computing device of claim 1, wherein: The sequence of user actions includes context and environment information associated with each of the one or more user actions.

11. A method executed by a processor of a computing device for suggesting a more efficient sequence of actions to a user, comprising: identifying a user action sequence, the user action sequence comprising one or more user actions performed by the user to achieve a result; determining a first difficulty level of the user action sequence; determining whether a cluster of a plurality of system action sequences exists in a cluster database, wherein each system action sequence of the one or more system action sequences produces the result; In response to determining that a cluster of the plurality of system action sequences exists within the cluster database, comparing the first difficulty level to one or more difficulty levels of the one or more system action sequences; and One or more system action sequences having a difficulty level lower than the first difficulty level are displayed via a display interface of the computing device.

12. The method according to claim 11, further comprising: In response to determining that a cluster of the plurality of system action sequences that produced the result does not exist in the cluster database, a new cluster including the user action sequence is generated.

13. The method according to claim 11, further comprising: In response to determining that a cluster of the plurality of system action sequences exists within the cluster database, determining whether a system action sequence in the one or more system action sequences includes the one or more user actions in the user action sequence; as well as In response to determining that a system action sequence in the one or more system action sequences does not include the one or more user actions in the user action sequence, updating the cluster database with the user action sequence.

14. The method according to claim 11, wherein: comparing the first difficulty level to one or more difficulty levels of the one or more system action sequences includes determining whether the user action sequence has fewer actions than the one or more system action sequences; as well as Displaying, via the display interface of the computing device, the one or more system action sequences having a difficulty level lower than the first difficulty level includes displaying the one or more system action sequences having a difficulty level lower than the first difficulty level in response to determining that the user action sequence has fewer actions than the one or more system action sequences.

15. The method of claim 11, wherein: Comparing the first difficulty level to one or more difficulty levels of the one or more system action sequences includes determining whether the user action sequence is executed more slowly than a time to execute any of the one or more system action sequences; as well as Displaying the one or more system action sequences having a difficulty level lower than the first difficulty level via the display interface of the computing device includes: in response to determining that the user action sequence is executed slower than the time to execute any one of the one or more system action sequences, displaying the one or more system action sequences having a difficulty level lower than the first difficulty level.

16. The method according to claim 11, further comprising: determining whether the user action sequence has been executed a threshold number of times, In response to determining that the user action sequence has been performed a threshold number of times, comparing the first difficulty level with one or more difficulty levels of the one or more system action sequences is performed.

17. The method according to claim 11, further comprising: receiving a user selection indicating that the user action sequence is preferred by the user over one or more displayed system action sequences having a lower difficulty level; as well as The cluster database is updated by storing the user action sequences having a difficulty level lower than the one or more difficulty levels of the displayed one or more system action sequences.

18. The method according to claim 17, wherein: Updating the cluster database by storing the user action sequences having a lower difficulty level than the one or more difficulty levels of the displayed one or more system action sequences includes changing the first difficulty level to a lower difficulty level.

19. The method of claim 17, wherein updating the cluster database by storing the user action sequences having a difficulty level lower than the one or more difficulty levels of the displayed one or more system action sequences comprises: The one or more difficulty levels of the displayed one or more system action sequences are changed to be lower than the first difficulty level.

20. The method according to claim 11, wherein: The sequence of user actions includes context and environment information associated with each of the one or more user actions.

21. A computing device comprising: means for identifying a user action sequence comprising one or more user actions performed by a user to achieve a result; means for determining a first difficulty level of said sequence of user actions; means for determining whether a cluster of a plurality of system action sequences exists within a cluster database, wherein each of the one or more system action sequences produces the result; means for comparing the first difficulty level to one or more difficulty levels of the one or more system action sequences in response to determining that a cluster of the plurality of system action sequences exists within the cluster database; and Means for displaying one or more system action sequences having a difficulty level lower than said first difficulty level.

22. The computing device of claim 21, further comprising: Means for generating a new cluster including the user action sequence in response to determining that a cluster of a plurality of system action sequences that produced the result does not exist within the cluster database.

23. The computing device of claim 21, further comprising: means for determining whether a system action sequence in the one or more system action sequences includes the one or more user actions in the user action sequence in response to determining that a cluster of the plurality of system action sequences exists within the cluster database; as well as means for updating the cluster database with the user action sequence in response to determining that a system action sequence in the one or more system action sequences does not include the one or more user actions in the user action sequence.

24. The computing device of claim 21, wherein: The means for comparing the first difficulty level to one or more difficulty levels of the one or more system action sequences includes means for determining whether the user action sequence has fewer actions than the one or more system action sequences; as well as The means for displaying the one or more system action sequences having a difficulty level lower than the first difficulty level includes means for displaying the one or more system action sequences having a difficulty level lower than the first difficulty level in response to determining that the user action sequence has fewer actions than the one or more system action sequences.

25. The computing device of claim 21, wherein: The means for comparing the first difficulty level to one or more difficulty levels of the one or more system action sequences includes means for determining whether the user action sequence is executed more slowly than a time to execute any of the one or more system action sequences; as well as The means for displaying the one or more system action sequences having a difficulty level lower than the first difficulty level includes means for displaying the one or more system action sequences having a difficulty level lower than the first difficulty level in response to determining that the user action sequence is executed slower than the time to execute any one of the one or more system action sequences.

26. The computing device of claim 21, further comprising: means for determining whether the user action sequence has been executed a threshold number of times, Wherein the component for comparing the first difficulty level with one or more difficulty levels of the one or more system action sequences includes: a component for comparing the first difficulty level with one or more difficulty levels of the one or more system action sequences in response to determining that the user action sequence has been executed a threshold number of times.

27. The computing device of claim 21, further comprising: means for receiving a user selection indicating that the user action sequence is preferred by the user over one or more displayed system action sequences having a lower difficulty level; as well as Means for updating the cluster database by storing the user action sequences having a difficulty level lower than the one or more difficulty levels of the displayed one or more system action sequences.

28. The computing device of claim 27, wherein: Means for updating the cluster database by storing the user action sequences having a lower difficulty level than the one or more difficulty levels of the displayed one or more system action sequences includes means for changing the first difficulty level to a lower difficulty level.

29. The computing device of claim 27, wherein: The means for updating the cluster database by storing the user action sequences having a difficulty level lower than the one or more difficulty levels of the displayed one or more system action sequences includes means for changing the one or more difficulty levels of the displayed one or more system action sequences to be lower than the first difficulty level.

30. A non-transitory processor-readable medium having stored thereon processor-executable instructions configured to cause a processor of a computing device to perform operations comprising: identifying a user action sequence, the user action sequence comprising one or more user actions performed by a user to achieve a result; determining a first difficulty level of the user action sequence; determining whether a cluster of a plurality of system action sequences exists in a cluster database, wherein each system action sequence of the one or more system action sequences produces the result; In response to determining that a cluster of the plurality of system action sequences exists within the cluster database, comparing the first difficulty level to one or more difficulty levels of the one or more system action sequences; and One or more system action sequences having a difficulty level lower than the first difficulty level are displayed.