Systems and methods are disclosed for determining an airflow system type according to a machine learning algorithm trained to classify airflow systems.
Airflow systems, such as heating, ventilation, and air conditioning (HVAC) systems, regulate air flow for a variety of properties according to a variety of functionalities. However, different types of HVAC systems may have different maintenance, repair, or replacement requirements and/or may be better used with different property types. As such, identifying the type of system is important in maintaining and/or replacing the airflow system for a particular property.
However, determining the type of airflow system is often difficult or unwieldy. For example, conventional techniques rely on self-reporting of records (e.g., from a homeowner) or performing a search based on a serial number or other details on a nameplate on the airflow system. When records and/or the airflow system are lost or damaged, it can be difficult to accurately determine the type of airflow system, leading to problems with maintaining and/or replacing the airflow system.
In one aspect, a system for identifying and classifying airflow system types may be provided. The system may include: (1) an airflow system configured to receive air via a return air pathway and supply air via a supply air pathway; (2) a comfort sensor disposed proximate to the supply air pathway of the airflow system and configured to collect supply airflow data associated with the supply air pathway; (3) a filter sensor disposed proximate to the return air pathway of the airflow system and configured to collect return airflow data associated with the return air pathway; and (4) one or more processors communicatively coupled to a memory storing one or more instructions that, when executed, cause the one or more processors to: (a) receive the supply airflow data from the comfort sensor; (b) receive the return airflow data from the filter sensor; (c) analyze the supply airflow data and the return airflow data to generate one or more cycle variables associated with the airflow system; and (d) analyze the one or more cycle variables associated with the airflow system using a machine learning model, wherein the analyzing includes: (i) generating, using the machine learning model, a class prediction metric based on the one or more cycle variables associated with the airflow system, and (ii) classifying, based on the class prediction metric, an airflow system type for the airflow system.
In some implementations, the supply airflow data is representative of a temperature of air flowing from the airflow system via the supply air pathway.
In further implementations, the return airflow data is representative of at least one of: (i) a temperature or (ii) a pressure of air flowing to the airflow system via the return air pathway.
In still further implementations, the one or more cycle variables include at least one of: (i) an air conditioning cycle type, (ii) a heating cycle type, (iii) a cycle run time, or (iv) an airflow system heating performance.
In yet still further implementations, the airflow system type is associated with at least an airflow system functionality, and the airflow system functionality includes at least one of (i) air conditioner functionality or (ii) heat pump functionality.
In further implementations, the airflow system type is associated with at least an airflow system speed, and the airflow system speed includes at least one of (i) dual speed, (ii) constant speed, or (iii) variable speed.
In still further implementations, generating the class prediction metric includes: receiving, at the machine learning model, the one or more cycle variables as one or more inputs; calculating, by one or more trees of the machine learning model, a mean probability estimate for each airflow system type class; and determining the class prediction metric based on a highest mean probability estimate.
In still yet further implementations, the memory further stores instructions that, when executed, cause the one or more processors to: train the machine learning model using stored airflow data associated with one or more airflow system types, wherein the training includes: receiving, at the machine learning model, the stored airflow data as one or more inputs; calculating, by one or more trees of the machine learning model, a mean probability estimate for each airflow system type class; determining the class prediction metric based on a highest mean probability estimate for the stored airflow data; and validating the class prediction metric.
In some such implementations, the memory further stores instructions that, when executed, cause the one or more processors to: preprocess the stored airflow data prior to training the machine learning model, wherein the preprocessing includes: identifying a subset of stored airflow data, wherein the subset includes one or more predetermined cycle variables associated with the stored airflow data; and resample the subset of stored airflow data.
In further implementations, the memory further stores instructions that, when executed, cause the one or more processors to: receive ambient airflow data from a water sensor disposed proximate to the airflow system; wherein analyzing the supply airflow data and the return airflow data to generate the one or more cycle variables associated with the airflow system includes: analyzing the supply airflow data, the return airflow data, and the ambient airflow data to generate the one or more cycle variables.
In another aspect, a method for identifying and classifying airflow system types is provided. The method may include: (a) receiving, by one or more processors, supply airflow data from a comfort sensor disposed proximate to a supply air pathway of an airflow system; (b) receiving, by the one or more processors, return airflow data from a filter sensor disposed proximate to a return air pathway of the airflow system; (c) analyzing, by the one or more processors, the supply airflow data and the return airflow data to generate one or more cycle variables associated with the airflow system; and (d) analyzing, by the one or more processors, the one or more cycle variables associated with the airflow system using a machine learning model, wherein the analyzing includes: (i) generating, using the machine learning model, a class prediction metric based on the one or more cycle variables associated with the airflow system, and (ii) classifying, based on the class prediction metric, an airflow system type for the airflow system.
This summary is provided to introduce a selection of concepts in a simplified form that are further described in the Detailed Descriptions. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
Advantages will become more apparent to those of ordinary skill in the art from the following description of the preferred aspects, which have been shown and described by way of illustration. As will be realized, the present aspects may be capable of other and different aspects, and their details are capable of modification in various respects. Accordingly, the drawings and description are to be regarded as illustrative in nature and not as restrictive.
The Figures depict preferred implementations for purposes of illustration only. One skilled in the art will readily recognize from the following discussion that alternative implementations of the systems and methods illustrated herein may be employed without departing from the principles of the invention described herein.
Techniques, systems, apparatuses, components, devices, and methods are disclosed for identifying and classifying an airflow system type. For example, a system may use a machine learning model and a variety of specialized sensors to capture and analyze data related to the airflow in a property and subsequently determine whether the airflow characteristics match those associated with a particular airflow system type. As such, the machine learning model may classify an airflow system type without conventional methods, such as stored records and/or details captured from a nameplate or other identifying code on the airflow system.
A system that implements the methods described herein offers multiple benefits over conventional systems. In particular, by using specific sensors as described herein, a machine learning model may collect and analyze particular forms of data useful for making a determination regarding an airflow system type without additional details that would normally be required. As such, time and resources are saved by automatically performing such a process. Moreover, the possibility of human error is greatly reduced in that the instant system has minimal to no reliance on human memory or on human-guided recording of information. Moreover, the specialized data used to make the instant determinations allow the machine learning model to make determinations the model would not normally be able to make without additional information difficult to analyze (e.g., images of a nameplate, etc.).
Additionally, a system that implements the methods described herein may particularly collect particular and unique data in the form of supply airway data (e.g., supply air temperature or pressure) from a comfort sensor and return airway data (e.g., return air temperature or pressure) from a filter sensor. By using unique data particularly associated with an airflow system, a machine learning model may analyze data and make determinations that the model would be otherwise unable to make, allowing the machine learning model to generate particular cycle variables and prediction metrics. By using the particular cycle variables and/or prediction metrics, the machine learning model may more accurately classify an airflow system faster than conventional techniques, and may perform such classifications without relying on particular forms of data that conventional models may not be able to easily or quickly analyze. Similarly, by training and using the trained machine learning model, a system implementing the methods described herein may improve upon conventional techniques.
The system 100 analyzes a property 105 including an airflow system 110. In some implementations, the airflow system 110 may be a heating, ventilation, and air conditioning (HVAC) system. Depending on the implementation, the airflow system 110 may be classified as any one of a number of different airflow system types. For example, the airflow system may be classified based on an operation type, such as an air conditioning system without heat, a heat pump system, an air conditioning and gas furnace system, etc. In further implementations, the airflow system may be classified based on a speed type, such as a dual speed system, a constant speed system, a variable speed system, etc. In still further implementations, the airflow system may be classified based on both operation type and speed, such as a dual speed air conditioning system, a constant speed heat pump system, a variable speed gas furnace system, etc. It will be understood that such classifications are exemplary only, and that more, fewer, or alternate classifications may be used in various implementations.
Further, the property 105 may be any property (e.g., house, apartment complex, office building, etc.) with an airflow system 110 and one or more pathways for regulating the flow of air. For example, in the exemplary implementation of
In the exemplary implementation of
In some implementations, the comfort sensor 114 measures a supply temperature (e.g., temperature of air passing through or exiting the pathway) of the supply air pathway 112. In further implementations, the comfort sensor 114 additionally measures other parameters of the air in the supply air pathway 112, such as an air pressure (e.g., an atmospheric static pressure) or a relative humidity of air in the supply air pathway 112. Similarly, depending on the implementation, the filter sensor 116 measures a return temperature and/or return atmospheric static pressure of the return air pathway 118. Depending on the implementation, the comfort sensor 114 and/or the filter sensor 116 may transmit the data directly to a cloud server 130, to a wireless hub 115, and/or directly to a machine learning server 150. In some implementations, the comfort sensor 114 and/or filter sensor 116 transmit measurements in real or near-real time (e.g., constant updates). In further implementations, the comfort sensor 114 and/or filter sensor 116 transmit measurements in batches (e.g., once per hour, once per day, once per week, etc.). In still further implementations, the comfort sensor 114 and/or filter sensor 116 transmit the measurements responsive to an indication from a user (e.g., via the cloud server 130, hub 115, machine learning server 150, etc.).
In further implementations, the machine learning server 150 may receive additional information regarding system performance and associated parameters. For example, the system 100 may include an additional sensor (e.g., a water sensor (not shown) disposed proximate the airflow system 110) to measure an ambient temperature, air pressure, condensation, water vapor presence, etc. The system 100 may also include a space sensor measuring the temperature and relative humidity of the indoor space being served. The additional sensor(s) may then transmit the measured data to the machine learning server 150 as described above with regard to the comfort sensor 114 and/or filter sensor 116. Additionally or alternatively, a user may utilize a user interface to input additional data, remove data, select a period of time for measurements, etc.
Depending on the implementation, the comfort sensor 114 and/or filter sensor 116 may be part of or be a smart device. For example, the sensor may be part of a single smart device, such as a smart television, smart refrigerator, smart doorbell, or any other similar smart device. In further implementations, the sensor may be part of a network of devices, such as a security system, a lighting system, or any other similar series of devices communicating with one another. The comfort sensor 114 and/or filter sensor 116 may further be a built-in capability of another sensor (e.g., a combined comfort/filter sensor) or additional sensor of a sensor network, for example, a camera or series of cameras, a motion detector, a temperature sensor, an airflow sensor, a smoke detector, a carbon monoxide detector, or any similar sensor.
The hub 115 may allow the comfort sensor 114 and/or the filter sensor 116 to communicate with the cloud server 130, the machine learning server 150, and/or any other such external computing server or device. The hub 115 may support wired or wireless communications, such as USB, Bluetooth, Wi-Fi Direct, Near Field Communication (NFC), etc. The hub 115 may allow the comfort sensor 114 and/or the filter sensor 116 to communicate with various devices, servers, etc., via a wireless communication network such as a fifth-, fourth-, or third-generation cellular network (5G, 4G, or 3G, respectively), a Wi-Fi network (e.g., 802.11 standards), a WiMAX network, a wide area network (WAN), a local area network (LAN), etc. The hub 115 may further operate to format messages transmitted between the comfort sensor 114 and/or the filter sensor 116 and the cloud network 130, machine learning server 150, and/or other such devices or servers; process data from the comfort sensor 114 and/or the filter sensor 116; transmit communications to the comfort sensor 114 and/or the filter sensor 116; etc.
In some implementations, the machine learning server 150 includes a stored machine learning model 160, which retrieves data from a stored type data database 162. The machine learning model may be trained using the data from the stored type data database 162 to analyze data from the comfort sensor 114 and/or filter sensor 116 and generate a system type classification 165, as described in more detail with regard to
In some implementations, the machine learning server 150 may already store data associated with a type of airflow system (e.g., data in the stored type data database 162). Further, the machine learning server 150 may use stored data and/or received data to train the machine learning model 160, as described in more detail herein.
Depending on the implementation, the hub 115, cloud server 130, and/or machine learning server 150 may include a processor, a communications interface, a memory, and/or other similar components (e.g., a display) for processing, analyzing, and/or providing data. For example, the hub 115, cloud server 130, and/or machine learning server 150 may include any suitable number of processors and/or processor types. In some implementations, the processor(s) may include one or more CPUs and one or more graphics processing units (GPUs), for example. Generally, the processors may be configured to execute software instructions stored in a memory, which may include one or more persistent memories (e.g., a hard drive and/or solid-state memory) may store one or more applications, models, algorithms, etc.
The hub 115, cloud server 130, and/or machine learning server 150 may be communicatively coupled to the comfort sensor 114, the filter sensor 116, and/or another computing device associated with the property 105. For example, the hub 115, cloud server 130, and/or machine learning server 150 may communicate with the sensors (e.g., 114 and 116) and/or computing devices via USB, Bluetooth, Wi-Fi Direct, Near Field Communication (NFC), etc.
It will be understood that the above disclosure is one example and does not necessarily describe every possible implementation. As such, it will be further understood that alternate implementations may include fewer, alternate, and/or additional steps or elements.
Referring next to
In some implementations, the model pipeline 270 receives the machine learning model 260 and begins preparing the machine learning model 260 for training. In some such implementations, a unit test module 230 may receive the machine learning model 260 and test single unit components (e.g., functions or classes of the machine learning model 260) to ensure that critical functionality is working properly. For example, the unit test module 230 may test a utility functionality (e.g., data loading and/or processing), a data manipulation functionality, a feature extraction functionality, etc. In further implementations, a packaging module 244 then packages code for the machine learning model 260 and stores the code in a package registry 240. A container build module 248 may then generate a container image from the code and/or any dependencies from the package registry 240 that the container push module 254 pushes to the container registry 250. The job trigger module 258 then triggers a training job for the model training engine 290, which uses the generated container image to train the machine learning model 260. The model training engine 290 may then transmit the trained machine learning model 260 and/or any modifications to the machine learning model 260 to the machine learning server 280. The machine learning server 280 may store the trained machine learning model 260 in a model registry 284 and may store relevant data, dependencies, etc. at the data storage 282.
Machine learning techniques have been developed that allow parametric or nonparametric statistical analysis of large quantities of data. The model training engine 290 may use such machine learning techniques to automatically identify relevant variables (i.e., variables having statistical significance or a sufficient degree of explanatory power) from data sets and/or predict potential classes that relate to or group such variables. This may include identifying related variables or estimating the effect of such variables that indicate actual observations in the data set. This may also include identifying latent variables not directly observed in the data, such as variables inferred from the observed data points.
In some implementations, the methods and systems described herein may use machine learning techniques to identify and classify a system based on the effects of observed or latent variables. Similarly, some implementations described herein may include automated machine learning to classify airflow system types for airflow systems, generate cycle variables based on received sensor data, clean sensor data, and/or perform other functionality as described elsewhere herein.
Although the methods described elsewhere herein may not directly mention machine learning techniques, such methods may be read to include such machine learning for any determination or processing of data that may be accomplished using such techniques. In some implementations, such machine-learning techniques may be implemented automatically upon occurrence of certain events or upon certain conditions being met. Use of machine learning techniques, as described herein, may begin with training a machine learning program, or such techniques may begin with a previously trained machine learning program.
Although
A processor or a processing element may be trained using supervised, semi-supervised, or unsupervised machine learning, and the machine learning program may employ a neural network, which may be a convolutional neural network, a deep learning neural network, or a combined learning module or program that learns in two or more fields or areas of interest. Machine learning may involve identifying and recognizing patterns in existing data in order to facilitate making predictions for subsequent data. Models may be created based upon example inputs of data in order to make valid and reliable predictions for novel inputs.
Additionally or alternatively, the machine learning programs may be trained by inputting sample data sets or certain data into the programs. The machine learning programs may utilize deep learning algorithms that are primarily focused on pattern recognition and may be trained after processing multiple examples. The machine learning programs may include Bayesian program learning (BPL), image or object recognition, optical character recognition, and/or natural language processing, either individually or in combination. The machine learning programs may also include natural language processing, semantic analysis, automatic reasoning, and/or machine learning.
In supervised machine learning, a processing element may be provided with example inputs and their associated outputs, and may seek to discover a general rule that maps inputs to outputs, so that when subsequent novel inputs are provided the processing element may, based upon the discovered rule, accurately predict the correct or a preferred output. In unsupervised machine learning, the processing element may be required to find its own structure in unlabeled example inputs.
After training, machine learning programs (or information generated by such machine learning programs) may be used to evaluate additional data. Such data may be related to captured sensor data for a particular property, as described herein. The trained machine learning programs (or programs utilizing models, parameters, or other data produced through the training process) may then be used for determining, assessing, analyzing, predicting, estimating, evaluating, or otherwise processing new data not included in the training data. Such trained machine learning programs may, therefore, be used to perform part or all of the analytical functions of the methods described elsewhere herein.
It will be understood that the above disclosure is one example and does not necessarily describe every possible implementation. As such, it will be further understood that alternate implementations may include fewer, alternate, and/or additional steps or elements.
In particular, a machine learning deployment platform 390 may receive training data, sensor data, modifications for the machine learning model 360, and/or other such information from a machine learning server 380. Further, the machine learning deployment platform 390 may deploy the model 395 based on inputs from the machine learning server 380, the container registry 350, and/or model pipeline 370 and use retrieved data (e.g., from the data storage 382 and/or directly from sensors 114 and 116 or the hub 115) to generate one or more predicted endpoints 397. In particular, the endpoints 397 may be or include inference results as an array representative of an output classification for the airflow system type (e.g., 0 or 1 for an operation type classification and/or 0, 1, or 2 for an operation speed classification).
The post-processing module 300B includes a model database 340 acting as an input to the machine learning deployment platform 390 of
In some implementations, the machine learning deployment platform 390 spins up a joined file of the output class determinations responsive to a trigger 345 (e.g., a user indication, a request via a cloud server, etc.). In some implementations, the machine learning deployment platform 390 saves the spun up file in the model database 340 or in an external database (not shown).
It will be understood that the above disclosure is one example and does not necessarily describe every possible implementation. As such, it will be further understood that alternate implementations may include fewer, alternate, and/or additional steps or elements.
At block 402, the machine learning server 150 may receive supply airflow data from a comfort sensor (e.g., comfort sensor 114) disposed proximate to a supply air pathway (e.g., supply air pathway 112) of an airflow system (e.g., airflow system 110). In some implementations, the supply airflow data from the comfort sensor 114 may include a supply temperature of air traveling through and/or exiting from the supply air pathway 112. In further implementations, the supply airflow data from the comfort sensor 114 may additionally or alternatively include a supply air pressure (e.g., atmospheric static pressure) of air traveling through and/or exiting form the supply air pathway 112. Depending on the implementation, the comfort sensor 114 may be disposed proximate to the supply air pathway, such as in the supply air pathway 112, on a ventilation cover (e.g., a primary supply vent register), near a ventilation cover, and/or any other similar such location.
At block 404, the machine learning server 150 may receive return airflow data from a filter sensor (e.g., filter sensor 116) disposed proximate to a return air pathway (e.g., return air pathway 118) of the airflow system 110. In some implementations, the filter sensor 116 may measure the temperature and/or pressure of air traveling through and/or exiting the return air pathway 118, similar to the comfort sensor 114 above. Depending on the implementation, the filter sensor 116 may be disposed proximate to the return air pathway, such as in the return air pathway 118, on a ventilation cover (e.g., a primary supply vent register), near a ventilation cover, and/or any other similar such location.
In further implementations, the machine learning server 150 may receive additional information regarding airflow. For example, the system 100 may include an additional sensor (e.g., a water sensor disposed proximate the airflow system 110) to measure an ambient temperature, air pressure, condensation, water vapor presence, etc. The additional sensor(s) may then transmit the measured data to the machine learning server 150 as described above with regard to
At block 406, the machine learning server 150 may analyze the supply airflow data and the return airflow data to generate one or more cycle variables associated with the airflow system 110. In implementations with additional data, the machine learning server 150 may analyze the additional data alongside the supply airflow data and the return airflow data in generating the cycle variables. Depending on the implementation, the one or more cycle variables may be or include an air conditioning cycle type, a heating cycle type, a cycle run time, a system heating performance, etc. In further implementations, the machine learning server 150 may perform a data cleaning operation prior to, while, or after generating the cycle variables. For example, the machine learning server 150 may generate, merge, ignore, or otherwise modify the generated cycle data variables until meeting a predetermined threshold. For example, in some implementations, the machine learning server 150 utilizes 5 variables, 10 variables, 15 variables, 30 variables, etc.
In some implementations, the machine learning server 150 may further perform the analysis according to a machine learning model, as described below with regard to block 408. Depending on the implementation, the machine learning model may be the same machine learning model used to perform block 408 or may be a separate machine learning model trained separately.
At block 408, the machine learning server 150 may generate, using a machine learning model (e.g., machine learning model 160), a class prediction metric based on the one or more cycle variables associated with the airflow system.
In some such implementations, the machine learning server 150 may train the machine learning model 160 by analyzing large quantities of sensor data and/or other data representative of an airflow system type, as described above with regard to
In some implementations, the machine learning server 150 may train the machine learning model 160 according to a random forest classification algorithm. For example, the machine learning server 150 may use a number of trees (e.g., 10 trees, 20 trees, 50 trees, 100 trees, 120 trees, etc.) comprising a forest to classes by an input sample. In particular, the trees determine a predicted class metric and perform a vote, weighted by generated probability estimates, to determine a predicted airflow system type for the airflow system 110. In some such implementations, the predicted airflow system type is the type with the highest mean probability estimate across the trees in the forest.
At block 410, the machine learning server 150 may classify, based on the class prediction metric, an airflow system type for the airflow system. Depending on the implementation, the airflow system may be classified according to an operation type and/or functionality, such as an air conditioning functionality, a heating functionality, a heat pump functionality, etc. In further implementations, the airflow system may be classified according to an operation speed, such as a dual speed, constant speed, variable speed, etc. In still further implementations, the airflow system may be classified according to both the operation type and the operation speed. For example, the machine learning server 150 may classify the airflow system 110 as dual speed air conditioning, dual speed heating, constant speed air conditioning, etc.
After classifying the airflow system 110, the machine learning server 150 may analyze the model performance, one or more generated metrics, and/or predicted classifications generated by the model. Similarly, in some implementations, a confirmation or denial may be provided to the machine learning server 150 in response to a generated predicted classification. Similarly, the machine learning server 150 may monitor the machine learning model 160 to detect acute changes, anomalies, or drifts in the gathered data (e.g., from the comfort sensor 114 and/or filter sensor 116) or the model performance. Upon detecting such changes, the machine learning server 150 or another computing device may retrain, adjust, fix, or otherwise modify the machine learning model 160 and/or data. Depending on the implementation, the machine learning server 150 may so modify the machine learning model 160 responsive to inputs from a user and/or responsive to indications (e.g., modified parameters) from a user. In further implementations, the machine learning server 150 may use the modified (e.g., retrained) machine learning model 160 in subsequent analysis of new input data.
It will be understood that the above disclosure is one example and does not necessarily describe every possible implementation. As such, it will be further understood that alternate implementations may include fewer, alternate, and/or additional steps or elements.
Throughout this specification, plural instances may implement components, operations, or structures described as a single instance. Although individual operations of one or more methods are illustrated and described as separate operations, one or more of the individual operations may be performed concurrently, and nothing requires that the operations be performed in the order illustrated. Structures and functionality presented as separate components in example configurations may be implemented as a combined structure or component. Similarly, structures and functionality presented as a single component may be implemented as separate components. These and other variations, modifications, additions, and improvements fall within the scope of the subject matter herein.
The systems and methods described herein are directed to an improvement to computer functionality, and improve the functioning of conventional computers. Additionally, certain implementations are described herein as including logic or a number of routines, subroutines, applications, or instructions. These may constitute either software (e.g., code embodied on a non-transitory, machine-readable medium) or hardware. In hardware, the routines, etc., are tangible units capable of performing certain operations and may be configured or arranged in a certain manner. In example implementations, one or more computer systems (e.g., a standalone, client or server computer system) or one or more hardware modules of a computer system (e.g., a processor or a group of processors) may be configured by software (e.g., an application or application portion) as a hardware module that operates to perform certain operations as described herein.
In various implementations, a hardware module may be implemented mechanically or electronically. For example, a hardware module may comprise dedicated circuitry or logic that is permanently configured (e.g., as a special-purpose processor, such as a field programmable gate array (FPGA) or an application-specific integrated circuit (ASIC)) to perform certain operations. A hardware module may also comprise programmable logic or circuitry (e.g., as encompassed within a general-purpose processor or other programmable processor) that is temporarily configured by software to perform certain operations. It will be appreciated that the decision to implement a hardware module mechanically, in dedicated and permanently configured circuitry, or in temporarily configured circuitry (e.g., configured by software) may be driven by cost and time considerations.
Accordingly, the terms “module”, “hardware module”, and/or similar such terms should be understood to encompass a tangible entity, be that an entity that is physically constructed, permanently configured (e.g., hardwired), or temporarily configured (e.g., programmed) to operate in a certain manner or to perform certain operations described herein. Considering implementations in which hardware modules are temporarily configured (e.g., programmed), each of the hardware modules need not be configured or instantiated at any one instance in time. For example, where the hardware modules comprise a general-purpose processor configured using software, the general-purpose processor may be configured as respective different hardware modules at different times. Software may accordingly configure a processor, for example, to constitute a particular hardware module at one instance of time and to constitute a different hardware module at a different instance of time.
Hardware modules can provide information to, and receive information from, other hardware modules. Accordingly, the described hardware modules may be regarded as being communicatively coupled. Where multiple of such hardware modules exist contemporaneously, communications may be achieved through signal transmission (e.g., over appropriate circuits and buses) that connect the hardware modules. In implementations in which multiple hardware modules are configured or instantiated at different times, communications between such hardware modules may be achieved, for example, through the storage and retrieval of information in memory structures to which the multiple hardware modules have access. For example, one hardware module may perform an operation and store the output of that operation in a memory device to which it is communicatively coupled. A further hardware module may then, at a later time, access the memory device to retrieve and process the stored output. Hardware modules may also initiate communications with input or output devices, and can operate on a resource (e.g., a collection of information).
The various operations of example methods described herein may be performed, at least partially, by one or more processors that are temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors may constitute processor-implemented modules that operate to perform one or more operations or functions. The modules referred to herein may, in some example implementations, comprise processor-implemented modules.
Similarly, the methods or routines described herein may be at least partially processor-implemented. For example, at least some of the operations of a method may be performed by one or more processors or processor-implemented hardware modules. The performance of certain of the operations may be distributed among the one or more processors, not only residing within a single machine, but deployed across a number of machines. In some example implementations, the processor or processors may be located in a single location (e.g., within a home environment, an office environment or as a server farm), while in other implementations the processors may be distributed across a number of locations.
The performance of certain of the operations may be distributed among the one or more processors, not only residing within a single machine, but deployed across a number of machines. In some example implementations, the one or more processors or processor-implemented modules may be located in a single geographic location (e.g., within a home environment, an office environment, or a server farm). In other example implementations, the one or more processors or processor-implemented modules may be distributed across a number of geographic locations.
It should also be understood that, unless a term is expressly defined in this patent using the sentence “As used herein, the term ‘______’ is hereby defined to mean . . . ” or a similar sentence, there is no intent to limit the meaning of that term, either expressly or by implication, beyond its plain or ordinary meaning, and such term should not be interpreted to be limited in scope based upon any statement made in any section of this patent (other than the language of the claims). To the extent that any term recited in the claims at the end of this disclosure is referred to in this disclosure in a manner consistent with a single meaning, that is done for sake of clarity only so as to not confuse the reader, and it is not intended that such claim term be limited, by implication or otherwise, to that single meaning.
Unless specifically stated otherwise, discussions herein using words such as “processing.” “computing.” “calculating.” “determining.” “presenting,” “displaying,” or the like may refer to actions or processes of a machine (e.g., a computer) that manipulates or transforms data represented as physical (e.g., electronic, magnetic, or optical) quantities within one or more memories (e.g., volatile memory, non-volatile memory, or a combination thereof), registers, or other machine components that receive, store, transmit, or display information.
As used herein any reference to “one implementation” or “an implementation” means that a particular element, feature, structure, or characteristic described in connection with the implementation is included in at least one implementation. The appearances of the phrase “in one implementation” in various places in the specification are not necessarily all referring to the same implementation.
Some implementations may be described using the expression “coupled” and “connected” along with their derivatives. For example, some implementations may be described using the term “coupled” to indicate that two or more elements are in direct physical or electrical contact. The term “coupled.” however, may also mean that two or more elements are not in direct contact with each other, but yet still cooperate or interact with each other. The implementations are not limited in this context.
As used herein, the terms “comprises,” “comprising.” “includes,” “including.” “has,” “having” or any other variation thereof, are intended to cover a non-exclusive inclusion. For example, a process, method, article, or apparatus that comprises a list of elements is not necessarily limited to only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Further, unless expressly stated to the contrary, “or” refers to an inclusive or and not to an exclusive or. For example, a condition A or B is satisfied by any one of the following: A is true (or present) and B is false (or not present), A is false (or not present) and B is true (or present), and both A and B are true (or present).
In addition, use of the “a” or “an” are employed to describe elements and components of the implementations herein. This is done merely for convenience and to give a general sense of the description. This description, and the claims that follow, should be read to include one or at least one and the singular also may include the plural unless it is obvious that it is meant otherwise.
The patent claims at the end of this patent application are not intended to be construed under 35 U.S.C. § 112(f) unless traditional means-plus-function language is expressly recited, such as “means for” or “step for” language being explicitly recited in the claim(s). The systems and methods described herein are directed to an improvement to computer functionality, and improve the functioning of conventional computers.
This detailed description is to be construed as exemplary and does not describe every possible implementation, as describing every possible implementation would be impractical, if not impossible. One could implement numerous alternate implementations, using either current technology or technology developed after the filing date of this application.
Upon reading this disclosure, those of skill in the art will appreciate still additional alternative structural and functional designs for evaluating properties, through the principles disclosed herein. Therefore, while particular implementations and applications have been illustrated and described, it is to be understood that the disclosed implementations are not limited to the precise construction and components disclosed herein. Various modifications, changes and variations, which will be apparent to those skilled in the art, may be made in the arrangement, operation and details of the method and apparatus disclosed herein without departing from the spirit and scope defined in the appended claims.