This application claims priority under 35 U.S.C. §119 to Korean Patent Application No. 10-2013-0103431, filed on Aug. 29, 2013, in the Korean Intellectual Property Office, the disclosure of which is incorporated herein in its entirety by reference.
1. Field
some example embodiments provide methods and/or apparatuses for performing a function by combining one or more function blocks.
2. Description of the Related Art
Recently, terminals capable of performing a plurality of functions have been introduced to the market. For example, smartphones perform not only a simple call function but also various other functions, for example, capturing a picture or video, sensing an object, a web-page searching, etc. Further, traditional articles, for example, glasses and watches, have been developed to perform various other functions (e.g., a web-page searching), in addition to traditional functions of the devices.
However, because an apparatus capable of performing a plurality of functions are configured such that blocks for performing the plurality of functions are not separated, it is difficult to reduce a volume of each block. Further, the whole apparatus consumes unnecessary power due to functions not currently used.
Some example embodiments provide methods and/or apparatuses for performing a function by combining one or more function blocks.
Some example embodiments provide non-transitory computer-readable storage media having stored therein program instructions, which when executed by a computer, perform the methods.
Additional aspects of example embodiments will be set forth in part in the description which follows and, in part, will be apparent from the description, or may be learned by practice of the example embodiments.
According to an aspect of the present invention, a method of performing a function by combining one or more function blocks includes sensing whether the one or more function blocks are connected, determining indexes respectively corresponding to the connected one or more function blocks, deciding, by using the indexes, a function to be performed based on the sensing, the function being one of a plurality of functions, each function associated with a respective set of function blocks, and generating a control signal for performing the decided function.
According to another aspect of the present invention, a non-transitory computer-readable storage medium has stored therein program instructions, which when executed by a computer, perform the method.
According to another aspect of the present invention, an apparatus includes an interface unit configured to sense whether the one or more function blocks are connected, a decision unit configured to determine indexes respectively corresponding to the connected one or more function blocks, and configured to decide, by using the indexes, a function to be performed based on the sensing, the function being one of a plurality of functions, each function associated with a respective set of the one or more function blocks; and a control unit configured to generate a control signal for performing the decided function.
These and/or other aspects will become apparent and more readily appreciated from the following description of the example embodiments, taken in conjunction with the accompanying drawings in which:
Various example embodiments will be described more fully hereinafter with reference to the accompanying drawings, in which some example embodiments are shown. Example embodiments may, however, be embodied in many different forms and should not be construed as limited to the example embodiments set forth herein. Rather, these example embodiments are merely provided so that this disclosure will be thorough and complete, and will fully convey the scope of example embodiments to those skilled in the art. In the drawings, the sizes and relative sizes of the various layers and regions may have been exaggerated for clarity.
It will be understood that when an element or layer is referred to as being “on,” “connected to” or “coupled to” another element or layer, it can be directly on, connected or coupled to the other element or layer or intervening elements or layers may be present. In contrast, when an element is referred to as being “directly on,” “directly connected to” or “directly coupled to” another element or layer, there are no intervening elements or layers present. Like numerals refer to like elements throughout. As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed items.
It will be understood that, although the terms first, second, third etc. may be used herein to describe various elements, components, regions, layers and/or sections, these elements, components, regions, layers and/or sections should not be limited by these terms. These terms are only used to distinguish one element, component, region, layer or section from another region, layer or section. Thus, a first element, component, region, layer or section discussed below could be termed a second element, component, region, layer or section without departing from the teachings of example embodiments.
Spatially relative terms, such as “beneath,” “below,” “lower,” “above,” “upper” and the like, may be used herein for ease of description to describe one element or feature's relationship to another element(s) or feature(s) as illustrated in the figures. It will be understood that the spatially relative terms are intended to encompass different orientations of the device in use or operation in addition to the orientation depicted in the figures. For example, if the device in the figures is turned over, elements described as “below” or “beneath” other elements or features would then be oriented “above” the other elements or features. Thus, the example term “below” can encompass both an orientation of above and below. The device may be otherwise oriented (rotated 90 degrees or at other orientations) and the spatially relative descriptors used herein interpreted accordingly.
The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting of example embodiments. As used herein, the singular forms “a,” “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
Example embodiments are described herein with reference to cross-sectional illustrations that are schematic illustrations of idealized example embodiments (and intermediate structures). As such, variations from the shapes of the illustrations as a result, for example, of manufacturing techniques and/or tolerances, are to be expected. Thus, example embodiments should not be construed as limited to the particular shapes of regions illustrated herein but are to include deviations in shapes that result, for example, from manufacturing. Thus, the regions illustrated in the figures are schematic in nature and their shapes are not intended to illustrate the actual shape of a region of a device and are not intended to limit the scope of example embodiments. It should also be noted that in some alternative implementations, the functions/acts noted may occur out of the order noted in the figures. For example, two figures shown in succession may in fact be executed substantially concurrently or may sometimes be executed in the reverse order, depending upon the functionality/acts involved.
Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which example embodiments belong. It will be further understood that terms, such as those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of the relevant art and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein.
Hereinafter, example embodiments will be explained in further detail with reference to the accompanying drawings.
Referring to
Further, it will be understood by one of ordinary skill in the art that each of the interface unit 110, the decision unit 120, the control unit 130, and the storage unit 140 in the function block 100 of
Further, the interface unit 110, the decision unit 120, the control unit 130, and the storage unit 140 in the function block 100 of
The function block 100 of
The function block 100 refers to an element for performing a function of the terminal. For example, if the terminal is a smartphone, the function block 100 included in the smartphone may refer to a unit including a camera for performing a photographing function or a unit for displaying an image. For example, one function block 100 including a camera and another function block 100 including a display device may be connected to each other, and the connected function blocks 100 may perform a function of outputting an image captured by the camera to the display device. Although an image capturing function and a screen display function have been described as examples of functions included in the terminal, example embodiments are not limited thereto.
The function block 100 may refer to a unit of two or more function blocks that are physically separated from the terminal or units segmented in correspondence with respective functions performed by the terminal. Thus, the function block 100 may refer to an independent device separated from the terminal or an electronic circuit portion for performing a function. The electronic circuit portion may be included in the terminal and may not be physically separated from the other portions of the electronic circuit or the terminal.
Function blocks physically separated from a terminal will now be described with reference to
Referring to
Referring to
For example, if the terminal of
Functions to be performed by the terminal are not limited to image capturing, image display, and voice input and output. For example, the terminal may include, for instance, a wired/wireless communication function, and/or an object sensing function. The wireless communication may include, for instance, cellular communication (e.g., third generation (3G), 4G, long term evolution (LTE), wireless local area network, Bluetooth, infrared-ray (IR) communication, near field wireless communication, or visible light communication. For example, the function blocks 230, 240, and 250 may be an element for inputting data (e.g., a camera, an illumination sensor, a pressure sensor, or a microphone), an element for outputting data (e.g., a screen, a speaker, or a lens) and an element for wired and wireless communication, respectively. However, the function blocks 230, 240, and 250 are not limited to the elements described above.
Each of the function blocks 230, 240, and 250 may refer to an electronic circuit portion performing a function. The electronic circuit portion may be included in the terminal, and the portion may not be physically separated from the other portions of the electronic circuit or the terminal, as described above with reference to
Referring back to
The decision unit 120 determines indexes respectively corresponding to the connected function blocks. An index refers to a factor indicating each of two or more function blocks included in the terminal. For example, if the terminal includes N function blocks, each of the N function blocks may match any one element included in a set of indexes X=[x1, x2, . . . , xN]. The decision unit 120 extracts indexes corresponding to the connected function blocks from the set X of indexes based on the signal received from the interface unit 110.
The decision unit 120 decides a function to be performed by the connected function blocks from among various functions to be respectively performed by sets of one or more function blocks, based on the indexes. For example, the decision unit 120 may decide a function to be performed by the connected function blocks from among various functions included in a function set, based on the indexes. The function set refers to a set including information on functions to be performed by sets of one or more function blocks included in the terminal. An example of indexes and an example of decision on functions by the decision unit 120 will now be described with reference to
Referring to
Sets of the seven function blocks x1 to x7 for performing individual functions E1 to E5 may be different from each other. For example, the function blocks corresponding to the indexes x1, x3, and x4 may be connected to perform the function E1, and the function blocks corresponding to the indexes x3, x4, x6, and x7 may be connected to perform the function E4. The indexes x1 to x7 denoting the seven function blocks, sets comprising the function blocks, and the functions E1 to E5 to be performed by connecting corresponding function blocks may be set in advance. The setting result may be stored in the storage unit 140 to be described below.
Referring to
Rows of the table of
Referring to the table of
In the table of
The decision unit 120 decides a function to be performed by the connected function blocks from among the various functions to performed by the sets of one or more function blocks, based on the indexes corresponding to the connected function blocks. For example, the decision unit 120 assigns ‘1’ to the connected function blocks and ‘0’ to the remaining disconnected function blocks, based on the signal received from the interface unit 110. Thereafter, the decision unit 120 decides a function to be performed by the connected function blocks by combining the assigned ‘1’s and ‘0’s.
A detailed method of deciding, by the decision unit 120, a function to be performed by the connected function blocks will be described below.
Referring back to
The decided function may be performed by connecting two to five function blocks. Further, the number of function blocks included in the terminal may be 2 to 20 according to the number of functions to be performed by the terminal.
Thus, the decision unit 120 according to an example embodiment may decide a function by using a hypernetwork model formed based on indexes corresponding to the connected function blocks and weights corresponding to functions to be performed by the terminal. The hypernetwork refers to a probability graph model, which includes hypergraphs having respective weights.
A hypergraph is a random graph in which a proper weight is allocated to each edge. While two dots form one edge in a simple graph, a hypergraph indicates a graph in which two or more dots may form one edge. An edge included in a hypergraph is referred to as a hyperedge.
If it is assumed that the terminal includes N function blocks, and the number of functions to be performed by the terminal is M, a hypergraph is formed with a state vector (i.e., a set of indexes of the N function blocks) X=[x1, x2, . . . , xN], a set of hyperedges (i.e., the functions to be performed by the terminal) E={E1, E2, . . . , EM}, and a set of weights of the hyperedges W={w1, w2, . . . , wM}.
According to an example embodiment, each hyperedge (i.e., function to be performed by the terminal) may be expressed by Ei={xi
A detailed method of deciding, by the decision unit 120, a function to be performed by a set of function blocks, by using a hypernetwork will be described below with reference to
Referring to
The decision unit 120 assigns ‘1’ to the connected function blocks and ‘0’ to the remaining function blocks, based on the signal received from the interface unit 110. For example, if function blocks corresponding to indexes x1, x4, x10, and x12 are connected to each other, the decision unit 120 assigns ‘1’ to the connected function blocks corresponding to the indexes x1, x4, x10, and x12 and ‘0’ to function blocks corresponding to the remaining indexes.
Thereafter, the decision unit 120 decides a first function (y=1) to be performed by the connected function blocks by using the hypernetwork model. For example, the decision unit 120 may detect a hyperedge in which the function blocks to which ‘1’ is assigned in a hypergraph (i.e., function blocks corresponding to the indexes x1, x4, x10, and x12) are combined. Thereafter, the decision unit 120 may decide the first function (y=1) corresponding to the detected hyperedge as the function to be performed by the connected function blocks.
As the number of function blocks to be connected to perform a function increases (i.e., the more the number of function blocks included in a hyperedge), a computation amount to be performed by the decision unit 120 also increases. For example, as the number of function blocks to be connected to perform a function increases, the complexity of a mathematical computation to be performed by the decision unit 120 also increases.
Thus, the decision unit 120 according to an example embodiment segments each hyperedge into hyperedges formed with three maximum function blocks (hereinafter, referred to as “sub-hyperedges). Further, the decision unit 120 decides a function (i.e., a hyperedge) to be performed by the connected function blocks, by using sub-hyperedges. Sub-hyperedges and an operation of the decision unit 120 will now be described in detail with reference to
Referring to
Referring to
Referring back to
The decision unit 120 determines indexes respectively corresponding to the connected function blocks by using the signal received from the interface unit 110. If the number of connected function blocks is 4 or greater, the decision unit 120 may forms group, each group being formed by combining three indexes from among the determined indexes. For example, if the determined indexes are x1, x4, x10, and x12, the decision unit 120 forms a first group (x1, x4, and x10), a second group (x1, x4, and x12), and a third group (x4, x10, and x12) by combining three indexes for respective groups.
Thereafter, the decision unit 120 forms sub-hyperedges by using the indexes included in the first to third groups. For example, the decision unit 120 forms a first sub-hyperedge by using the indexes included in the first group (x1, x4, and x10), a second sub-hyperedge by using the indexes included in the second group (x1, x4, and x12), and a third sub-hyperedge by using the indexes included in the third group (x4, x10, and x12).
Thereafter, the decision unit 120 forms a hyperedge based on the formed first to third sub-hyperedges. Thereafter, the decision unit 120 decides a function to be performed by the connected function blocks, based on the formed hyperedge. For example, the decision unit 120 forms a hyperedge based on the first to third sub-hyperedges. For example, the decision unit 120 forms one hyperedge by combining the first to third sub-hyperedges. Thereafter, the decision unit 120 decides the first function (y=1) to be performed by the connected function blocks, based on the formed hyperedge.
As described above, if four or more function blocks are connected, the decision unit 120 may quickly decide a function to be performed by the four connected function blocks by forming sub-hyperedges.
A sub-hyperedge formed by the decision unit 120 according to an example embodiment may refer to one sub-function, wherein the sub-function refers to a specific sub-function included in a desired (or, alternatively predetermined) function. For example, if the first set of three sub-hyperedges 510 illustrated in
To perform each sub-function, a unique weight may be allocated to each sub-hyperedge. Information on each sub-hyperedge to which a weight is allocated may be stored in the storage unit 140 to be described below.
As described above, the decision unit 120 decides a function to be performed by the connected function blocks, by using a hypernetwork model in which hypergraphs (e.g., hyperedges, and sub-hyperedges) are combined. An operation of deciding a function by the decision unit 120 will now be described with reference to
Referring to
The decision unit 120 decides a function to be performed by connected function blocks, by combining indexes x corresponding to the connected function blocks and weights W corresponding to functions to be respectively performed by function blocks. A detailed method in which the decision unit 120 decides a function is as described below.
The decision unit 120 may calculate energy E(x(n)|W) of each hyperedge included in the hypernetwork by using an equation (1).
In the equation (1), wj
The decision unit 120 may calculate a probability graph model of the hypernetwork by using the energy E(x(n)|W) of each hyperedge. In detail, the decision unit 120 may calculate a probability graph model P(x(n)|W) of the hypernetwork by using an equation (2).
In the equation (2), Z(W) denotes a normalization constant and may be calculated by using Equation (3).
The decision unit 120 may calculate a maximum value of a probability function according to an input (e.g., connected function blocks) by using the equations (2) and (3). Thereafter, the decision unit 120 decides a hyperedge corresponding to the calculated maximum value and decides a function corresponding to the decided hyperedge as a function to be performed by the connected function blocks.
In the equations (1), (2), and (3), the weights W may be set in advance. For example, if a set F={x(n)}n=1N denoting function blocks included in the terminal and functions thereof is given, weights may be set in advance in the hypernetwork to recognize and manage the functions.
The decision unit 120 sets the respective weights W corresponding to functions (i.e., hyperedges) to be performed by the function blocks. Thereafter, the decision unit 120 stores the set weights W in the storage unit 140 to be described below. By the decision unit 12 setting in advance the respective weights W corresponding to the hyperedges, the decision unit 120 may accurately decide hyperedges (e.g., functions to be performed by connected function blocks) from the hypernetwork model.
The decision unit 120 may set the weights W by using an equation (4).
In the equation (4), F denotes a set of function blocks included in the terminal and functions thereof, and N denotes the number of function blocks included in the terminal.
The decision unit 120 sets the weights W so that a probability P(F|W) calculated using the equation (4) is maximized.
The decision unit 120 decides a function to be performed by the connected function blocks by using the equations (1) to (4). For example, the decision unit 120 may calculate y so that a probability function is maximized according to the equations (1) to (3), by using a set X of indexes corresponding to the connected function blocks. Thereafter, the decision unit 120 detects a hyperedge corresponding to the calculated y and decides a function corresponding to the detected hyperedge as a function to be performed by the connected function blocks. Further, the decision unit 120 calculates a weight corresponding to each hyperedge by using the equation (4).
As described above, the decision unit 120 may quickly and accurately decide a function to be performed by connected function blocks, by using the hypernetwork model, when two or more function blocks are connected.
Referring back to
The storage unit 140 stores information on functions to be performed by sets of one or more function blocks. For example, the storage unit 140 may store information on functions included in a function set. For example, the storage unit 140 may store information on hyperedges included in the hypernetwork model and weights respectively allocated to the hyperedges. Further, the storage unit 140 may store information on sub-hyperedges and weights respectively allocated to the sub-hyperedges.
The information stored in the storage unit 140 may be updated using other information input to the storage unit 140. The information stored in the storage unit 140 may be the information on the hyperedges included in the hypernetwork model and the weights respectively allocated to the hyperedges.
Functions to be performed by connecting function blocks according to example embodiments may be added or removed. For example, preset types of functions may be added or removed based on input information. A function may be implemented by a hyperedge included in the hypernetwork model and a weight allocated to the hyperedge. Thus, the storage unit 140 may add or remove functions in correspondence with a user's request by updating the pre-stored hypernetwork model based on input information. A detailed method in which the storage unit 140 updates stored information is described below.
For example, the storage unit 140 may update information based on information included in a received external signal. For example, the storage unit 140 may update pre-stored information by using information included in an external signal input through the interface unit 110. For example, the storage unit 140 may add or remove a hyperedge included in the pre-stored hypernetwork model and a weight allocated to the hyperedge by using information included in an external signal, wherein the external signal may be input to the interface unit 110 by using a wired/wireless network connected to the function block 100 but is not limited thereto.
As another example embodiment, the storage unit 140 may update information by using information acquired through supervised learning. For example, the decision unit 120 may acquire information through supervised learning, and the storage unit 140 may update information by using the information acquired by the decision unit 120. For example, the decision unit 120 may learn a weight so that a probability function for an arbitrary set of function blocks, which is input through the interface unit 110, has a maximum value. The decision unit 120 may learn a weight by using the equations (1) to (4) so that a probability function for the input arbitrary set of function blocks has a maximum value.
The decision unit 120 transmits information on the arbitrary set of input function blocks and information on the learned weight to the storage unit 140. The storage unit 140 may add a hyperedge included in the pre-stored hypernetwork model and a weight allocated to the hyperedge based on the received information.
In operation 710, the interface unit 110 senses whether one or more function blocks are connected. The function block 100 refers to an element for performing any one of the functions of the terminal. The function block 100 may refer to a unit of two or more function blocks that are physically separated from the terminal or a segmented unit corresponding to a respective function to be performed by the terminal. For example, the interface unit 110 may sense whether one or more other function blocks are connected to the function block 100.
In operation 720, the decision unit 120 determines indexes respectively corresponding to the connected function blocks. An index refers to a factor indicating each of two or more function blocks included in the terminal.
In operation 730, the decision unit 120 decides a function to be performed by the connected function blocks from among functions to be respectively performed by sets of one or more function blocks, by using the indexes. In other words, the decision unit 120 decides a function to be performed by the connected function blocks from among functions included in a function set, based on the indexes. The function set refers to a set including information on functions to be performed by sets of blocks included in the terminal.
In operation 740, the control unit 130 generates a control signal for performing the decided function. For example, the control unit 130 may generate a signal for controlling a function block so that the function decided by the decision unit 120 is performed. The signal for controlling a function block may be a signal for controlling the function block 100 or a signal for controlling another connected function block.
As described above, according to example embodiments, a terminal may include function blocks (which are separable from each other) for performing respective functions, and the function blocks may perform a desired (or, alternatively predetermined) function, taken alone or in combination. According to example embodiments, a user may combine two or more function blocks for a desired function, and thus, the user may easily manage and improve individual functions. Further, the use of functions undesired by the user may be limited, thereby preventing unnecessary power consumption.
According to example embodiments, each of the function blocks may include a distributed device operating system, and thus, each combined function block may be automatically set to perform a function corresponding to the combination.
According to example embodiments, information indicating functions to be respectively performed by sets of function blocks may be stored and updated, thereby extending functions to be performed by the sets of the function blocks.
The method described above can be written as computer programs and can be implemented in general-use digital computers that execute the programs using a computer-readable recording medium. Further, a structure of data used in the method described above may be recorded on a computer-readable recording medium through various units. Examples of the computer-readable recording medium include storage media, for instance, magnetic storage media (e.g., ROM, RAM, USB, floppy disks, or hard disks), optical recording media (e.g., CD-ROMs or DVDs), and PC interfaces (e.g., PCI, PCI-expressor WiFi).
Other example embodiments can be implemented through computer-readable code and/or instructions in/on a medium, e.g., a computer-readable medium, to control at least one processing element to implement any example embodiment described above. The medium can correspond to any medium or media permitting the storage and/or transmission of the computer-readable code.
The computer-readable code can be recorded and/or transferred on and/or to a medium in a variety of ways. Examples of the medium may include recording media, for instance, magnetic storage media (e.g., ROM, floppy disks, or hard disks and optical recording media (e.g., CD-ROMs or DVDs), and transmission media (e.g., Internet transmission media). Thus, the medium may be a defined and measurable structure including or carrying a signal or information, for instance, a device carrying a bitstream according to one or more example embodiments. The media may also be a distributed network so that the computer-readable code is stored, transferred and/or executed in a distributed fashion. Furthermore, the processing element could include a processor or a computer processor, and processing elements may be distributed and/or included in a single device.
While the present invention has been particularly shown and described with reference to example embodiments thereof, it will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from the spirit and scope of example embodiments as defined by the following claims. The example embodiments should be considered in a descriptive sense only and not for purposes of limitation. Therefore, the scope of example embodiment is defined not by the detailed description of the example embodiments but by the appended claims, and all differences within the scope will be construed as being included in example embodiments.
Number | Date | Country | Kind |
---|---|---|---|
10-2013-0103431 | Aug 2013 | KR | national |