METHOD AND DEEP REINFORCEMENT NEURAL NETWORK (DRNN) MANAGEMENT SYSTEM FOR AN INTELLIGENT PLUG-AND-PLAY POINT-TO-MULTIPOINT INTERNET of THINGS (IoT) PLATFORM
20220131745 · 2022-04-28
Assignee
Inventors
- BANG TRAN DAO (BINH DINH, VN)
- LONG HONG LE (BINH DINH, VN)
- HAU VAN HUYNH (TIEN GIANG, VN)
- CANH HUU NGUYEN (HO CHI MINH, VN)
- SON GIANG LAM (HO CHI MINH, VN)
Cpc classification
H04L41/22
ELECTRICITY
H04L43/0876
ELECTRICITY
H04L43/10
ELECTRICITY
H04L67/02
ELECTRICITY
H04L67/125
ELECTRICITY
H04L41/0806
ELECTRICITY
H04L41/046
ELECTRICITY
H04L67/025
ELECTRICITY
G06N3/006
PHYSICS
International classification
H04L41/0806
ELECTRICITY
Abstract
An Internet of Things (IoT) system is disclosed which includes: a network; a plurality of IoT servers coupled together and serviced by the network; a plurality of IoT agents coupled to each other and to the plurality of IoT servers; and a plurality of IoT devices electrically coupled to the plurality of IoT agents, wherein the IoT servers and the IoT agents further includes a deep reinforcement neural network operative to generate an action map {a.sub.t} so as to satisfy an
wherein Q(s,a)=E[R.sub.t|(s, a)].
Claims
1. An Internet of Things (IoT) system, comprising: a network; a plurality of IoT servers coupled together and serviced by said network, each of said IoT server comprising a deep reinforcement neural network (DRNN) configured to manage a point to multipoint (P2MP) communication within said IoT environment; a plurality of IoT agents coupled to receive an action map {a.sub.i} from said DRNN via said network; and a plurality of IoT devices electrically coupled to said plurality of IoT agents, wherein at least one IoT servers and at least one IoT agent, when coupled to said network, are operable to establish a plug-and-play and point to multipoint (PnP & P2MP) communication in said IoT environment whereby said plurality of IoT devices, said plurality of IoT servers, and said plurality of IoT agents communicate with one another in said plug-and-play and point to multipoint manner in accordance with said action map {a.sub.i} that meets a bandwidth and power consumption cumulative reward function R.sub.t expressed in a following equation:
2. The system of claim 1 wherein when said action map {a.sub.i} does not satisfy said bandwidth and a cumulative reward function R.sub.t,
3. The system of claim 2 wherein when said action map {a.sub.i} does not satisfy said bandwidth and said cumulative reward function R.sub.t,
4. The system of claim 3 wherein said IoT agent is configured to retrieve said PnP & P2MP communication state s and said action map {a.sub.i} that have either slow transmitting speed or less priority and add them into said action map {a.sub.i} whenever said bandwidth and power consumption observations decrease.
5. The system of claim 4 wherein said IoT server further comprises: a Q-function data storage configured to store said Q(s,a) function and said Q-loss function; a value data storage for storing power consumption and bandwidth for each of said plurality of IoT devices in said action map {a.sub.i}; and a deep reinforcement module operable to: (i) generate said action map {a.sub.i}; (ii) receive observations regarding bandwidths and power consumptions and calculate said reward function R.sub.t and said
6. The system of claim 5 wherein said step (iii) of selecting another action map {a.sub.i} further comprises caching some of actions a.sub.k that have lower priorities and slower transmitting speeds than other actions in said action map {a.sub.i} so that said
7. The system of claim 6 wherein said at least one IoT agent further comprises a plug-and-play module configured to: (a) detect whether said plurality of IoT devices, said plurality of IoT agents, and/or said plurality of IoT servers each is included in said control webapp; (b) if said plurality of IoT devices, said plurality of IoT agents, and/or said plurality of IoT servers each is included in said control webapp, then control said plurality of IoT devices, said plurality of IoT agents, and/or said plurality of IoT servers in said plug-and-play manner and said point to multipoint manner in accordance with setups and instructions of said control webapp, wherein said setups and instructions of said control webapp follows said action map {a.sub.i} output by said DRNN; otherwise, and (c) if any of said plurality of IoT devices, said plurality of IoT agents, and/or said plurality of IoT servers are not included in said control webapp, then detect said operating parameters, said physical connections, said communication protocols, and said industrial standards using a plug-and-play application program interface (API) and then use a configuration module to insert said operational parameters, said communication protocols, and said industrial standards into control webapp which is configured to create said plug-and-play manner and said point-to multipoint manner for each of said said plurality of IoT devices, said plurality of IoT agents, and/or said plurality of IoT servers in accordance with said actions ai output by said DRNN.
8. The system of claim 2 wherein said configuration module enables users to change and add said operating parameters of said plurality of IoT devices, said plurality of IoT agents, and said plurality of servers; wherein said control webapp can be configured by each of said users for specific operations of said plurality of IoT devices, said plurality of IoT agents, and said plurality of IoT servers.
9. The system of claim 3 wherein each of said at least one IoT agents further comprises a connections firmware configured to detect and connect said plurality of IoT devices, said plurality of IoT agents, said plurality of IoT servers regardless of said physical connections; wherein said physical connections comprises a Zwave connection, a Zigbee connections, a Bluetooth connection, an Ethernet connection, a wifi connection, a cellular connection using a SIM, a LORA connection, a near field communication (NFC) connection; wherein said communication protocols comprise a HTTP protocol, a websocket protocol, a MQTT protocol.
10. The system of claim 4 wherein said connections firmware detects said physical connections by: using a detector to detect an operating frequency, said operating parameters, and said industrial standards of each of said plurality of IoT devices, said plurality of IoT agents, and said plurality of IoT servers; and using a driving circuit and a switching network to adaptively set up said physical connections among said plurality of IoT devices, said plurality of IoT agents, and said plurality of IoT servers by retrieving a device driver from a memory and loading said device driver into said driving circuits based on results from said step of detecting said operating frequency, said operating parameters, and said industrial standards.
11. The system of claim 5 wherein said detector comprises a barcode scanner, a QR code scanner, an infrared scanner, and an RFID reader.
12. The system of claim 2 wherein each of said at least one IoT agents further comprises an IoT device controller operable to manage said plug-and-play and point to multipoint communications for said plurality of IoT devices by creating virtual computing nodes between said IoT agent and said plurality of IoT devices as soon as said plurality of IoT devices are first electrically coupled to and detected by said at least one IoT agents.
13. The system of claim 7 wherein said at least one IoT agents and said at least one IoT servers are configured to form a virtual infrastructure for said plurality of IoT agents and said plurality of IoT devices which have said industrial standards, said physical connections, said communication protocols different from those of said at least one IoT agents and said at least one IoT servers; wherein said virtual infrastructure comprises said virtual computing nodes; wherein said virtual infrastructure and said virtual computing nodes are embedded into said control webapp for managing said plurality of IoT devices, said plurality of IoT agents, and said plurality of servers in said plug-and-play manner and in said point to multipoint manner.
14. The system of claim 1 wherein each of said at least one IoT servers further comprises a data repository which further comprises: a universal real-time data storage for storing real-time data regarding present statuses of said plurality of IoT devices; a universal past data storage for storage past data of said plurality of IoT devices.
15. The system of claim 1 wherein each of said at least one IoT servers further comprises an execution module which further comprises: a webapp module configured to create said control webapps for said plurality of IoT devices, said plurality of IoT agents, and said plurality of IoT servers; a data handler module configured to manage data send/receive to and from said plurality of IoT devices; and an artificial intelligence and machine learning module configured to receive said universal past and said real-time data from said data repository to perform data analytics that predicts operational behaviors of said plurality of IoT devices.
16. The system of claim 9 wherein said execution module further comprises a switching network configured to enable said at least one IoT agents and said plurality of IoT devices to communicate to one another in said point to multipoint manner according to said configuration module and said control webapp.
17. A method of adaptively establishing a plug-and-play point to multiple point communication between a plurality of IoT devices, a plurality of IoT agents, and a plurality of IoT servers regardless of physical connections, industrial standards, and communication protocols, comprising: (a) detect a physical connection for each of said plurality of IoT devices, a plurality of IoT agents, and a plurality of IoT servers; (b) detect a communication protocol for each of said plurality of IoT devices, a plurality of IoT agents, and a plurality of IoT servers; (c) establish a plug-and-play communication with said plurality of IoT devices, a plurality of IoT agents, and a plurality of IoT servers based on said physical connection, said industrial standards, and said communication protocols; (d) determine whether each of said plurality of IoT devices, said plurality of IoT agents, and said plurality of IoT servers is incorporated in a control webapp, if said plurality of IoT devices, said plurality of IoT agents, and said plurality of IoT servers are included said control webapp, then (e) use said control webapp to create a point to multipoint communication and plug-and-play environment for said plurality of IoT devices, said plurality of IoT agents, and said plurality of IoT servers; wherein in said multipoint communication and plug-and-play environment, said plurality of IoT devices, said plurality of IoT agents, and said plurality of IoT servers operate in a plug-and-play manner and a point to multipoint communication manner; (f) if any of said plurality of IoT devices, said plurality of IoT agents, and said plurality of IoT servers is not included in said control webapp, detect said operating parameters, said communication protocols, and said industrial standards; (g) create configuration files for each of said plurality of IoT devices, said plurality of IoT agents, and said plurality of IoT servers based on said said operating parameters, said communication protocols, and said industrial standards; (h) embed said configuration files and load said said operating parameters, said communication protocols, and said industrial standards into said control webapp, and (i) perform said step of using said control webapp to create in said point to multipoint manner and in said plug-and-play manner.
18. The process of claim 12 wherein said step of using said to create a point to multipoint communication and plug-and-play environment further comprises: (i) open said webapp; (j) log in and complete an authorization process; (k) set up said control webapp for said point to multipoint communication by switching corresponding on/off software buttons in a dropdown menu, each of said software buttons is associated with said plurality of IoT devices and said plurality of IoT agents; (m) add and/or remove said operating parameters for each of said plurality of IoT devices; and (n) update a configuration file that controls each of each of said plurality of IoT devices, each of said plurality of IoT agents, and each of said plurality of IoT servers.
19. The process of claim 13 wherein said step of using said control webapp to set up point-to-multipoint communication further comprises: (o) set up the operations for each of at least one IoT environments; (p) set up the operations for said at least one IoT agents; and (q) turn on a real time mode of each of said plurality of said IoT devices.
20. The process of claim 14 wherein said different sections of said control webapp comprise: a login section configured to allow users to perform at least two-step authorization process; a IoT data observation section configured to receive and display data from said plurality of IoT devices; a point to multipoint (P2MP) set up section configured to enable users to set up point to multipoint communication between said plurality of IoT devices; an IoT server setup section configured to turn on/off an artificial intelligent/machine learning mode and to perform data analytics of said data from said plurality of IoT devices;
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0036] The accompanying drawings, which are incorporated in and form a part of this specification, illustrate embodiments of the invention and, together with the description, serve to explain the principles of the invention.
[0037]
[0038]
[0039]
[0040]
[0041]
[0042]
[0043]
[0044]
[0045] The figures depict various embodiments of the technology for the purposes of illustration only. A person of ordinary skill in the art will readily recognize from the following discussion that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles of the technology described herein.
DETAILED DESCRIPTION OF THE INVENTION
[0046] Reference will now be made in detail to the exemplary embodiments of the invention, examples of which are illustrated in the accompanying drawings. While the invention will be described in conjunction with the exemplary embodiments, it will be understood that they are not intended to limit the invention to these embodiments. On the contrary, the invention is intended to cover alternatives, modifications and equivalents, which may be included within the spirit and scope of the invention as defined by the appended claims. Furthermore, in the following detailed description of the present invention, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be obvious to one of ordinary skill in the art that the present invention may be practiced without these specific details. In other instances, well-known methods, procedures, components, and circuits have not been described in detail so as not to unnecessarily obscure aspects of the present invention.
[0047] As used herein, the term “action map” refers to which connections among IoT devices 111-1 to 120-N and 300-1 to 300-M to be selected.
[0048] Various aspects of the present invention are now described with reference to
[0049] Continuing with In other words, DRNN-based IoT platform 100 is operative to select the probability of achieving actions {a.sub.t} that result in high cumulative reward R.sub.t.sub.
[0050] Continuing with is placed inside IoT server 200. In other embodiments of the present invention, a broadband 5G or GTE base transmit station (BTS) is used with IoT agents (agents) 300-1 to 300-M. When either bandwidth and power consumption rewards are feedback in the observation, deep reinforcement neural network based (DRNN-based) IoT platform 100 use deterministic policy gradient (DPG) to put some of IoT devices 111-1 to 120-N in queue, storing their communication into a buffer memories, executing communication requests in batch, changing the state St, action {a.sub.t}, cumulative reward R.sub.t in the direction of descending policy gradient until the bandwidths and power consumption requirements are met.
[0051] It will be noted that a group of m IoT devices of 111-1 to 120-N can be pre-existing, i.e., pre-connected to DRNN-based IoT platform 100 before the other newly connected (K+L+N−m) IoT devices. Alternatively, the (K+L+M−m) IoT devices can be newly connected as compared to previously connected m IoT devices. IoT devices that are connected to network 101 either before or after are made by different manufactures having different physical connections, communication protocols, industrial standards, as well as operating parameters from those in first integration group 111 of the present invention. IoT devices 111-1, 111-2, . . . , 111-K in first integration group 111; IoT devices 112-1, 112-2, . . . , 112-L in second integration group 112; and IoT devices 120-1, 120-2, . . . , 120-N in third integration group 120 can be devices connected to control the operations and receive real-time data from refrigerators, smart watches, garage openers, air conditioners, thermostats, cameras, faucets, sprinkler systems, mobile phones, sensors, wearable devices, etc. IoT agents (supervisors) 300-1, 300-2, and 300-M can be gateways, IoT agents, IoT interfaces, supervisors, etc. that are made by different manufacturers with different physical connections, communication protocols, and operating parameters and functionalities. These IoT devices have different operating parameters such as open/close, ON/OFF, temperatures, times, pressure, images, blood pressures, heart beats, bandwidth, power consumption, etc. Based on the known parameters, DRNN-based IoT platform 100 uses either stochastic policy gradient (SPG) or deterministic policy gradient (DPG) algorithm to select the next action map {a.sub.t} and state S.sub.i. Network 101 can be data center, edge/fog/cloud, or network such as nanonetwork, body area network (BAN), personal area network (PAN), local area network (LAN), campus/corporate area network (CAN), metropolitan area network (MAN), wide area network (WAN), and mesh area networks, or any combinations thereof.
[0052] As shown in
[0053] (1) plug-and-play and point-to-multipoint communication for all IoT devices from 111-1 to 120-N represented by an action map {a.sub.t}, and state S.sub.i that meets connectivity, parallel processing, power consumption, speed, and bandwidth requirements, thus reducing system latency, maximizing performance, and enhancing usability.
[0054] (2) Optimal management of the entire IoT environment using deep reinforcement neural network that has high probability of convergence and optimal performance; and
[0055] (3) An IoT platform behaves like a blockchain in which IoT devices can freely exchange data needed for essential analytics.
[0056] The detailed hardware and software structures of IoT agents (agents) 300-1 to 300-M, IoT servers 200 with deep reinforcement neural network (DRNN) of the present invention will be described in details in
[0057] Now referring to
[0058] Continuing with
[0059] Memory 220 includes a basic Input/Output system (BIOS) 221, a data storage 222, a data repository 230 which includes value data storage 231 and replay data storage 232 for all IoT devices 111-1 to 120-N within IoT environment 100. More specifically, value data storage 231 is used to store different action map {a.sub.t}, state data S.sub.i, cumulative reward function R.sub.t, value function Q(a, s), loss function , which will be shared with the target network in the freezing target network algorithm designed to reduce the complexities of the neural network (see
[0060] Continuing with
[0061] Still referring to determines the priorities and interrupts in case the peak hour communication among IoT devices 111-1 to 120-N are too large. Within the present invention, the cumulative reward R.sub.t is defined as R.sub.t=Σ.sub.t.sup.Tγ.sup.tr.sub.t; where is a discount factor and its value range is [0,1], and r.sub.t is defined as
that is if the total power consumption for an action map {a.sub.t}. selected by DRNN is within the threshold power consumption, then a positive reward Ra is given; otherwise a negative reward R.sub.b is given.
[0062] Device and system parameters including physical connections, communication protocols, industrial standards, bandwidth, power consumption, speed are fed to reinforcement learning (RL) module 451 so that the shortest path to the optimal value function Q.sub.t+1(a,s) can be chosen. The main function of RL module 451 is to maximize the value function Q(a,s). Value function is defined as Q.sub.t+1(S.sub.t, a.sub.t)=Q.sub.t(S.sub.t, a.sub.t)+∝(R.sub.t+1+γmax(Q(S.sub.t+1, a.sub.t+1)−Q.sub.t(S.sub.t, a.sub.t)); where a is the learning rate and γ is the discount rate. Loss function is defined as =E[(r+γmax.sub.a′Q(s′, a′)−Q(s, a)).sup.2], where E is the expected value of the difference between the target value and the prediction value. A neural network module 252 performs the learning process that substantially reduces number of storage capacity to store the state data set and Q values stored of value data storage 231. Without neural network module 252, the trial and error interaction with the environment of RL module 251 is hard to be learned due to the formidable computation complexity.
[0063] Continuing with
[0064] It will be noted that system 200 can be connected as a cluster different IoT servers 210-1 to 210-P serviced by network 201. IoT server 210-1 and IoT server 210-P can be a pre-existing servers which are different from IoT server 210 of the present invention. More particularly, pre-existing (pre-connected) IoT server 210-1 and IoT server 210-P are connected to network 201 via a communication channel 202. IoT server 210 of the present invention is also connected to network 201 via communication channel 202. All IoT servers 210-1, 210, and 210-P can be connected together in a master-slave configuration via another communication channel 203. As alluded above, network 201 can be data center, cloud/edge/fog, or network such as nanonetwork, body area network (BAN), personal area network (PAN), local area network (LAN), campus/corporate area network (CAN), metropolitan area network (MAN), wide area network (WAN), and mesh area networks, or any combinations thereof. Communication channels 202 and 203 can be wireless channels such as Bluetooth, 4G, LTE, 5G, Wi-Fi, Zigbee, Z-wave, radio frequency (RF), Near Field Communication (NFC), Ethernet, LoRaWAN, or can be wired connectors such as RS-232, RS-485, USB, or any combinations thereof. IoT server of the present invention 210, pre-existing IoT servers 210-1 and 210-P can communicate to network 201 using different communication protocols such as Message Queue Telemetry Transport (MQTT), Data Distribution Service (DDS), HTTP, TCP/IP, (Advanced Message Queuing Protocol (AMQP), Modbus, BACnet, OPCUA, or any combinations thereof. It is also noted that pre-existing IoT servers 210-1 and 210-P are IoT servers that are connected to sub-networks (not shown) different from networks 201 either before or after IoT server 210 of the present invention. IoT servers 210-1 and 210-P and sub-networks may be made by different manufactures having different physical connections, communication protocols, industrial standards, as well as operating parameters from those of IoT server 210 of the present invention.
[0065] Continuing with
[0066] Now referring to
[0067] Continuing with
[0068] Continuing with
[0069] Still referring to
[0070] The control webapp (see
[0071] Now referring to
[0072] At step 401, the physical connections and the existence of IoT devices, IoT agents, IoT servers are detected as soon as the IoT agent and IoT server of the present invention are connected in each of integration groups 111, 112, or 120. In implementing step 401, communication protocol module 319, action connection firmware 341, and PnP API 331 are used. In some embodiments, external connection module 319 is a scanner that scan barcodes, RFID, QR codes, and any other codes that contain physical connections of each IoT device 111-1 to 120-N. In many embodiments of the present invention, PnP API 331 and action connection firmware 341 are sent into IoT environment 100 in order to detect the current physical connections. Physical connections within the scope of the present invention include wireless short range communication channels include ZigBee™/IEEE 802.15.4, Bluetooth™, Z-wave, NFC, Wi-fi/802.11, cellular (e.g., GSM, GPRS, WCDMA, HSPA, and LTE, 5G, etc.), IEEE 802.15.4, IEEE 802.22, ISA100a, wireless USB, and Infrared (IR), LoRa devices, etc.. Medium range wireless communication channels in this embodiment of communication link 161 include Wi-fi and Hotspot. Long range wireless communication channels include UHF/VHF radio frequencies. Wired connections include RS-232 and RS-485.
[0073] Next is step 402, the communication protocols of each device within the IoT environment is detected. In many aspects of the present invention, step 402 is implemented using external connection manager 319. Within the scope of the present invention, communication protocols include Message Queue Telemetry Transport (MQTT), Data Distribution Service (DDS), Web/HTTP-HTML, TCP/IP-Internet, e-mail/IP-Internet, (Advanced Message Queuing Protocol (AMQP), Modbus, BACnet, OPCUA, Wireless Application Protocol (WAP), or any combinations thereof. Once communication protocols are detected, the sets of hardware/software rules that enables end-points communication between IoT servers 200, IoT agents 300-1 to 300-M, and IoT devices 111-1 to 120-N are known.
[0074] At step 403, once physical connections and communication protocols are known, communication within the IoT environment are established. In various implementations of step 403, device controller 342 and webapp configuration module 343 map out virtual nodes and the entire infrastructure of IoT environment 100. Agent manager module 241 temporarily installed in EEPROM/Flash 312 of IoT agent 300 will receive and convert any commands in accordance to the communication protocols of each IoT device 111-1 to 120-N. Switching network/routers 318 is implemented as hardware that plays an important roles in the realization of step 403. Step 403 achieves plug-and-play between IoT agents 300-1 to 300-M, IoT devices 111-1 to 120-N, and servers 210, 210-1 to 210-P.
[0075] At step 404, whether each IoT device, IoT agent, and IoT server represented by a virtual node and infrastructure are incorporated into the control webapp is determined. Step 404 is implemented by device controller 342 and agent manager 241. In many aspects of the present invention, device controller 342 and agent manager 241 go into webapp configuration module 243 to check if newly found virtual nodes and infrastructure have been embedded in the control webapp in form of software buttons and device engines designed to control the plug-and-play and point to multipoint communication for each virtual node and each infrastructure.
[0076] At step 405, if the answer to step 404 is NO, operating parameters, industrial standards, physical connections, communication protocols of each IoT device, IoT agent, IoT server are read and embedded into each virtual node. Consequently, each virtual node representing an IoT device is provided with an ID. In many aspects of the present invention, step 405 is implemented by PnP API 331 including many device engines that enter each IoT device 111-1 to 120-N, each IoT agent 300-1 to 300-M, and IoT server 210-1, 210-2, and 210 to retrieve these information. In some other aspects of the present invention, external connection manager 319 can be used to scan in the barcodes, QR codes, optical codes, RFID codes, and other codes that contain the above information.
[0077] Next, at step 406, the above information is incorporated into a configuration file. In some aspects of the present invention, configuration file is created and maintained by webapp configuration module 243 in form of a software GUI template. Information regarding physical connections, communication protocols, operating parameters, manufacturers, virtual nodes, and infrastructure are filled in entries of the software template. Please refer to
[0078] At step 407, action map {a.sub.t} that satisfied
condition is loaded into the configuration module to established P2MP communication in the Internet of Things environment. Step 407 is realized by action connections firmware 341 configured to take information from action map {a.sub.t} to connect webapp configuration module 243. Webapp configuration module 242 uses action map {a.sub.t} and the configuration file to create the GUI control webapp of
[0079] At step 408, plug-and-play and point to multipoint communication of the IoT environment is controlled by the control webpage. In many aspects of the present invention, when a user registers to use the services provided by the control webapp, the user first logs in and sets the operations of IoT environment 100. Once the plug-and-play and point to multipoint communication is set, the control webapp sends out instructions to virtual nodes, device controller 342 and agent manager 241 to perform the tasks set by the user. Referring back to step 408, when a newly connected IoT is connected to a pre-existing (pre-connected or pre-linked) IoT environment and it is determined that this newly connected IoT device is already incorporated in the control webapp, step 408 is performed.
[0080] In summary the following objects of the present invention are achieved by process 400 of the present invention:
[0081] Point to multipoint (P2MP) communication in the Internet of Things environment shown in
[0082] An IoT environment that can achieve plug-and-play and point to multipoint communication for all IoT devices, IoT agents regardless of their industrial standards, physical connections, and communication protocols.
[0083] After connected to any pre-existing IoT environment, the IoT agent and IoT server of the present invention are capable of rendering such pre-existing IoT environment into a plug-and-play and point-to-multipoint communication IoT environment.
[0084] A plug-and-play and point-to-multipoint platform that can provide real-time data for all IoT devices connected thereto to increase the data analytics capability and artificial intelligence/machine learning to accurately predict the behaviors of users.
[0085] Referring now to are performed by RL module 451. Deep learning module 252 uses the policy gradient based approach to achieve the optimal value function Q with which action map {a.sub.t} and state S.sub.t are loaded to control webapp 600 so that users can see.
[0086] In one particular embodiment of the present invention, control webapp 500 is displayed as a webapp on a computer screen of a user with a pointing device 501. In other embodiments of the present invention, control webapp 500 can be displayed on a touchscreen of a mobile phone and pointing device 501 is a finger of a user.
[0087] Continuing with
[0088] IoT device reading section 520 includes an IoT agent box 521, IoT device 522. Below are all current operating parameter boxes such as operating parameter 1 523, operating parameter 2 524, and operating parameter K 525. A non-limiting example of IoT device reading section 520 is the display of the IoT device 522 as an air conditioner (AC) having first operating parameter 1 523 as real-time temperature (° C.), operating parameter 2 524 as time interval when the AC is turned on. For example, the user can set the AC to be turned on for 8 hours a day. Operating parameter K 525 is the speed of the AC. IoT agent box 521 is the hub or gateway where the AC is directly connected to. It is noted that the user can add or remove the operating parameters 523-525. For example, the user can add in the angle and/or the direction of the fan of the AC as other operating parameters. The connection between each IoT device 111-1 to 120-N and its IoT agents 300-1 to 300-M forms a virtual node which includes all the operating parameters 523 to 525. Beside IoT box 521 and IoT device ID box 522 are PnP API 331, IoT device configuration module 345 and and their corresponding device engines that enter each IoT device 111-1 to 120-N to retrieve the necessary information such as operating parameters, communication protocols, physical connections, etc. so that webapp configuration module 242 can build control webapp 500 and IoT device reading section 520.
[0089] Continuing with since the previous state and action map {a.sub.t} are no longer optimal.
[0090] Still referring to
[0091] Continuing with
[0092] In IoT device setup section 560, a ON/OFF box 561 allows the user to turn on or off the modification for each IoT device 111-1 to 120-N. If box 561 is turned on, it allows the user to either add or remove operating parameters in an add/remove box 562. If the user changes operating parameters of an IoT device, IoT device reading section 520 will change accordingly. Finally, a mode box 563 sets either real-time mode or interval mode for each IoT device 111-1 to 120-N. When the user moves pointing device to mode box 563, a dropdown menu 563-M listing all the modes of each IoT device will appear to allow the user to select the mode of data transmission. As a non-limiting example, when the user wants IoT device 120-1 to transmit data in the real-time mode, the user shall do to the IoT device reading section 520 to change IoT device ID box 522 to display IoT device 120-1 and IoT agent ID box 521 to IoT manger 300-M. Then the user moves pointing device 501 to mode box 563 to select the real-time mode. As a result, IoT device 120-1 starts to send data to be displayed in IoT device reading section 520 in real-time manner.
[0093] Next, referring to
[0094] At step 601, a control webapp is activated and displayed. In accordance with many embodiments of the present invention, the control webapp is an interactive tool that directly controls the plug-and-play and point to multipoint communication between IoT devices 111-1 to 120-M in a manner described above in
[0095] At step 602, a subscribed user signs in and carries out the authorization process. Step 602 is implemented by a log-in section 510 of control webapp 500. In various aspects of the present invention, other authentication method such as RFID, biometrics, or random codes can be used.
[0096] At step 603, operating parameters for each IoT device are modified. Step 603 is implemented by IoT device reading section 520 and IoT device setup section 560.
[0097] At step 604, whether operating parameters of IoT devices, IoT agents, and/or IoT servers are modified by users. If the answer is YES, then at step 605, the DRNN algorithm 700 is performed. That is, a new action map {a.sub.t+1} is proposed, a cumulative reward function R.sub.t,
are recalculated to determine whether the bandwidth, speed, and power consumption are met.
[0098] At step 606, configuration file is updated. The configuration file is updated based on the changes that user selects in step 602 to 604. Step 605 is implemented by webapp configuration module 241, DRNN 245, configuration module 345, IoT device controller module 342, and PnP API 344.
[0099] At step 607 and step 608, if there are no change in the operating parameters, action map {a.sub.t}, then P2MP communication among IoT devices continues. Consequently, there is no change in stage s of previous action map {a.sub.t}.
[0100]
[0101] At step 701, a first action map {a.sub.t} is proposed and then its
is observed. In various aspects of the present invention, Q(s, a) is a value equation defined as as Q(s,a)=E[γ.sup.tr.sub.t|s, a, π]. E is the expected value of the cumulative reward function R.sub.t, and γ is the discount value. The cumulative reward function R.sub.t is defined based on sum of total bandwidth that converges to a network bandwidth (BW.sub.o) and total power consumption that converges to a preset power consumption (P.sub.th). If an action map {a.sub.t} yields an aggregate system power consumption and bandwidth that are less the the network bandwidth (BW.sub.o) and a preset power consumption (P.sub.th), then a reward function r.sub.t is Ra. Otherwise, the reward is −Rb. The network bandwidth (BW.sub.0) inherently depends on the network layer of IoT platform 100 and how it is set up. Within the present invention, the cumulative reward R.sub.t is defined as R.sub.t=Σ.sub.t.sup.Tγ.sup.tr.sub.t; where is a discount factor and its value range is [0,1], and r.sub.t is defined as
that is if the total power consumption for an action map {a.sub.t}. selected by DRNN is within the threshold power consumption, then a positive reward R.sub.a is given; otherwise a negative reward R.sub.b is given.
[0102] At step 702, the total bandwidth of the first action map {a.sub.t} is calculated. Step 702 is realized by using an arithmetic logic unit (ALU) in GRU 301 to sum up all the communication bandwidth amongst IoT devices 111-1 to 120-N. For example, if IoT device 111-1 is P2MP communicating with 5 other IoT devices, e.g., 120-1, 120-2, 112-1, 112-1, 111-K. This P2MP communication is an action map {a.sub.t}. The total communication bandwidth utilization BW.sub.c can be observed and obtained. DRNN 450 uses these initial problems and constraints to randomly select an action map {a.sub.t} and state S.sub.t.
[0103] At step 703, the total communication bandwidth is compared with an available network bandwidth (BW.sub.o). In each communication system, there exists an inherent communication bandwidth (BW.sub.o) defined by the network configuration of IoT platform 101 and the upper and lower communication frequencies of each IoT devices. For example, if IoT platform 100 is connected in LoRaWAN configuration, the data rate is 500 kHz depending on the region and frequency plan. If network 101 is Cloud/Fog/Edge network, then the bandwidth (BW.sub.o) depends on the location.
[0104] At step 704, if BW.sub.o is less than the communication bandwidth utilization (BW.sub.c) then the total power consumption (P.sub.e) is calculated. Both steps 703 and 704 are realized by communication protocol module 319, device controller 342, agent manager 241. They sum all the power requirement by each IoT device 111-1 to 120-N together.
[0105] At step 705, whether the total power consumption (P.sub.e) is greater than a threshold power consumption (Pin) is determined. Step 705 is realized by using an arithmetic logic unit (ALU) in GRU 301 to sum up all the power consumption amongst IoT devices 111-1 to 120-N. For example, if IoT device 111-1 is P2MP communicating with 5 other IoT devices, e.g., 120-1, 120-2, 112-1, 112-1, 111-K. This P2MP communication is action map {a.sub.t}. The total power consumption P.sub.e by these 5 IoT devices can be observed and obtained.
[0106] At step 706, Q-loss function is calculated. Q-loss function is defined as the root means square of the difference between the target cumulative reward function R.sub.t* and the estimated R.sub.t. R.sub.t is obtained from step 702 and step 703 above in terms of bandwidth utilization and power consumption. While R.sub.t* is an optimal cumulative reward function inherent in any communication system.
[0107] At step 707, whether the Q-loss function is minimal is determined. That is, =E[(r.sub.t+γmax.sub.a′Q(s′, a′)−Q(s, a)).sup.2] is minimal. Collolary, whether the estimated R.sub.t sufficiently equals to the target R.sub.t* function. Whether the select action map {a.sub.t} and state S.sub.i yield a value function Q closest to the target value function set by the parameters of IoT system 100. That is,
The target values R.sub.t is based on the known bandwidth (BW.sub.o) and threshold power consumption (P.sub.th) and/or other system parameters such as transmission rate, speed, latency, etc.
[0108] At step 708, if the Q-loss function is minimal, then issue the suggested action map {a.sub.t}, and use this template to program the control webapp page 500 as shown in
[0109] If any of the answers to step 703, 705, and 707 are NO, then step 709 is performed by introducing another action map {a.sub.t+1} and perform steps 701 to step 708 again. In some aspects of the present invention, step 709 includes storing some of the actions that have less priorities and slower speeds than the rest of the action map {a.sub.t} in a cache memory until these conditions in steps 703, 705, and 707 are met.
[0110] Then at step 710, a next action map {a.sub.t+1} are suggested using either Stochastic Policy Gradient (SPG) or Deterministic Policy Gradient (DGD).
[0111] At step 711, everytime the next action map {a.sub.t+1} is suggested, steps 701 to step 708 are performed again.
[0112] At step 712, after an action map {a.sub.t+1} is successfully introduced, method 500 including modifying the operating parameters of IoT devices 111-1 to 120-N is performed again by users.
[0113] Finally at step 713, occasionally or after a certain number of iterations, e.g., 10,000, the discount rate γ and the learning rate α is recalculated based on the learning of the DRNN module 250.
[0114] Now referring to
[0115] When IoT device environment 100 are connected together, DRNN 800 first proposes an initial action map {a.sub.t}, in a forward path 801. Then, an observation 802 is received that returns the total power consumption (P.sub.c) and bandwidth (BW.sub.c) of the initial action map {a.sub.t}. An action map {a.sub.t} is a map indicating all connections among IoT devices 111-1 to 120-N. For example, an initial action map {a.sub.t} may be IoT device 111-1 is communicating with IoT devices 112-6 and 112-100 in second integration group 112 and IoT device 120-1, 120-9, and 120-27. Cumulative reward function R.sub.t for this action map {a.sub.t} is calculated, involving bandwidth and power consumption as described in step 703 and 705 respectively. Then a Q function and Q-loss function are calculated as described in step 706. Q value function is the expected value E of all future cumulative reward function R.sub.t given an action map {a.sub.t} and a state S.sub.t. That is, Q.sub.t+1(S.sub.t, a.sub.t)=Q.sub.t(S.sub.t, a.sub.t)+∝(R.sub.t+1+γmax(Q(S.sub.t+1, a.sub.t+1)−Q.sub.t(S.sub.t, a.sub.t)). Q-loss function is defined as the root means square of the difference between the target R.sub.t function and the proposed Rt function. That is
=E[(r.sub.t+γmax.sub.a′Q(s′, a′)−Q(s, a)).sup.2]). If, from observation path 802, Q-loss of initial action map {a.sub.t} cannot achieve the minimal Q-loss, a second action map {a.sub.t+1} is proposed and another observation is evaluated. These iterative steps (e.g., step 702, 703, and 705) are performed until the Q-loss function is minimal or within a preset range.
[0116] Continuing with . In other aspects of the present invention, the next action map {a.sub.t+1} can be selected by either stochastic policy gradient (SPG) or deterministic policy gradient (DPG). Any IoT devices that have slower communication speed and lower priorities will be cached in a queue for later connections that obey a predetermined priority such as first come, first serve (FIFO).
[0117] From the disclosures above as illustrated in
[0121] Computer program code for carrying out operations for aspects of the present invention such as PnP&P2MP module 340 or DRNN application specific module 240 may be written in any combination of one or more programming languages, including an object oriented programming language such as Python, Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
[0122] These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
[0123] The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
[0124] The disclosed flowchart and block diagrams illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
[0125] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. 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, element components, and/or groups thereof.
[0126] The corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the claims below are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the invention. The embodiment was chosen and described in order to best explain the principles of the invention and the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.
[0127] The flow diagrams depicted herein are just one example. There may be many variations to this diagram or the steps (or operations) described therein without departing from the spirit of the invention. For instance, the steps may be performed in a differing order or steps may be added, deleted or modified. All of these variations are considered a part of the claimed invention.
[0128] While the preferred embodiment to the invention had been described, it will be understood that those skilled in the art, both now and in the future, may make various improvements and enhancements which fall within the scope of the claims which follow. These claims should be construed to maintain the proper protection for the invention first described.
[0129] The foregoing description details certain embodiments of the invention. It will be appreciated, however, that no matter how detailed the foregoing appears in text, the invention can be practiced in many ways. As is also stated above, it should be noted that the use of particular terminology when describing certain features or aspects of the invention should not be taken to imply that the terminology is being re-defined herein to be restricted to including any specific characteristics of the features or aspects of the invention with which that terminology is associated. The scope of the invention should therefore be construed in accordance with the appended claims and any equivalents thereof
DESCRIPTION OF NUMERALS
[0130] 100 IoT environment [0131] 101 a network such as internet, LAN, WAN, cloud [0132] 111 first integration group [0133] 111-1 IoT device such as a thermostat, a garage opener [0134] 111-2 another IoT device of the first IoT agent [0135] 111-K an K.sup.th IoT device of the first IoT agent [0136] 112 second integration group [0137] 112-1 IoT device connected to a second IoT agent [0138] 112-2 a second IoT device of the second IoT agent [0139] 112-L an Lth IoT device of the second IoT agent [0140] 120 third integration group [0141] 120-1 a first IoT device that is connected to the Mth hub [0142] 120-2 a second IoT device connected to the Mth IoT agent [0143] 120-N the Nth IoT device connected to the Mth IoT agent [0144] 131 connections in the first integration group 111 [0145] 141 connections in the second integration group 112 [0146] 151 connections in the N.sup.th integration group 120 [0147] 161 connections between IoT agents and IoT server [0148] 200 IoT servers network [0149] 201 edge/fog/cloud network [0150] 202 communication channels between IoT agents and the network [0151] 203 communication channels between IoT agents [0152] 210 IoT server [0153] 210-1 existing (pre-connected or prelinked) IoT server [0154] 210-P P.sup.th IoT server (or a sub-IoT platform similar to 100) [0155] 211 microprocessor for IoT server [0156] 212 power supplies for the IoT server [0157] 213 network interface for the IoT server [0158] 214 ROM/RAM for the IoT server [0159] 215 I/O Interface [0160] 216 display device for the IoT server [0161] 217 keyboard device for the IoT server [0162] 218 audio interface for the IoT server [0163] 219 pointing device for the IoT server [0164] 220 memory device for the IoT server [0165] 221 O.S./BiOS for the IoT server [0166] 222 ANDROID [0167] 230 data repository for the IoT server [0168] 231 value data [0169] 232 replay data [0170] 240 DRNN application specific module [0171] 241 agent manager module [0172] 242 webapp configuration module [0173] 243 communication interface [0174] 244 switching Network [0175] 250 deep reinforcement neural network (DRNN) [0176] 251 RL module [0177] 252 neural network [0178] 261 SMS message from IoT server to the client device [0179] 262 client devices including laptops, computers, mobile devices [0180] 263 connections between client devices and IoT server [0181] 300 architecture of the IoT agent [0182] 300-1 first IoT agent [0183] 300-2 second IoT agent [0184] 300-M M.sup.th IoT agent [0185] 301 microprocessor of the IoT agent [0186] 302 electrical connections [0187] 310 power supply [0188] 311 CMOS backup battery [0189] 312 EEPROM/Flash memories [0190] 313 SIM slot [0191] 314 GPS unit [0192] 315 communication protocol broker [0193] 316 virtual map module [0194] 318 switching Network [0195] 319 external connection manager [0196] 320 memory [0197] 321 Operating System (OS) [0198] 322 DRNN data [0199] 330 PnP configuration module [0200] 331 PnP API [0201] 332 IoT device driver module [0202] 340 PnP and P2MP module [0203] 341 action connection firmware [0204] 342 device controller module [0205] 343 webapp configuration module [0206] 500 WebApp display page [0207] 501 pointing device, e.g., cursor [0208] 510 authorization section [0209] 511 username [0210] 512 password/QR scan [0211] 520 IoT device Reading Section [0212] 521 IoT agent Selector [0213] 522 IoT device Selector [0214] 530 Point to Multipoint connection setup section [0215] 531 first IoT agent selector [0216] 51-1 IoT device 111-1 [0217] 531-N IoT device 111-K [0218] 531-M drop down menu [0219] 532 second IoT agent selector [0220] 532-1 IoT device 112-1 [0221] 532-2 IoT device 112-2 [0222] 532-N IoT device [0223] 533 M.sup.th IoT agent selector [0224] 533-1 IoT device 120-1 [0225] 533-2 IoT device 120-2 [0226] 533-N IoT device 120-N [0227] 540 IoT server set up [0228] 541 IoT server ID [0229] 541-M Dropdown list of all active IoT servers [0230] 542 AI mode ON/OFF [0231] 543 Communication channel of current IoT server [0232] 550 IoT agent set up [0233] 551 IoT agent ID [0234] 552 Plug-and-play mode ON/OFF [0235] 553 communication channel of current IoT agent [0236] 560 IoT device set up [0237] 561 IoT device set up mode ON/OFF [0238] 562 add/Remove operational parameters [0239] 563 IoT device's parameter toggle [0240] 563-M IoT device parameters drop-down menu. [0241] 800 deep reinforcement neural [0242] 801 action state [0243] 802 observations of bandwidth and power consumption [0244] 810 agents [0245] 811 IoT agent 300-1 [0246] 812 IoT agent 300-2 [0247] 813 IoT agent 300-M [0248] 820 hidden layer of bandwidths [0249] 821 bandwidth for first integration group 111 [0250] 822 bandwidth for second integration group 112 [0251] 823 bandwidth for Mth integration group 120 [0252] 830 power consumption for group 111 [0253] 831 power consumption for group 112 [0254] 832 power consumption for group 120 [0255] 840 output stage [0256] 841 output action for group 111 [0257] 842 output action for group 112 [0258] 843 output action for group 120