Disclosure of Invention
This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the detailed description. 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.
Some embodiments of the present disclosure propose power load prediction value determination methods, apparatuses, devices and computer readable media to solve one or more of the technical problems mentioned in the background section above.
In a first aspect, some embodiments of the present disclosure provide a power load prediction value determination method, including: acquiring a historical power load data set, wherein historical power load data in the historical power load data set are used for representing a power load curve of a certain date; clustering historical power load data in the historical power load data set to obtain a historical power load data class set; determining key influence factors from a preset initial influence factor set by using the historical power load data class set to obtain a key influence factor set; generating a target decision tree according to the historical power load data class set and the key influence factor set, wherein nodes in the target decision tree correspond to historical power load data classes in the historical power load data class set respectively; inputting the key influence factor vector of the date to be predicted into the target decision tree to obtain a classification result; and determining the predicted value of the power load of the date to be predicted by using the classification result.
Optionally, the generating a target decision tree according to the historical power load data class set and the key influence factor set includes:
taking the hierarchical clustering tree as an initial decision tree, and sequentially executing the following steps for each node in the initial decision tree:
in response to determining that there are two leaf nodes for the node, determining two historical power load dataclasses in the set of historical power load dataclasses that correspond to the two leaf nodes as a pair of historical power load dataclasses;
determining a key influence factor with the largest difference between two historical power load data classes in the historical power load data class pair by using the key influence factor set;
generating a classification rule of the node by using the key influence factor with the maximum difference;
and combining the initial decision tree and each classification rule of the nodes in the initial decision tree to obtain the target decision tree.
Optionally, the determining, by using the set of key influence factors, the key influence factor with the largest difference between two historical power load data classes in the historical power load data class pair includes:
determining each key influence factor average value of each historical power load data in each historical power load data class in the historical power load data class pair, wherein each key influence factor average value corresponds to a key influence factor in the key influence factor set one by one;
determining the difference value of the average values of the two key influence factors corresponding to the same key influence factor in the average values of the two key influence factors of the two historical power load data classes in the historical power load data class pair to obtain an average value difference value set;
and determining the key influence factor corresponding to the average difference value with the largest value in the average difference value set as the key influence factor with the largest difference.
Optionally, the generating the classification rule of the node by using the key influence factor with the largest difference includes:
determining the average value of the average values of the two key influence factors corresponding to the key influence factor with the maximum difference as a classification numerical value;
and generating a classification rule of the node by using the classification numerical value.
Optionally, before the determining, by using the classification result, the power load prediction value of the date to be predicted, the method further includes:
and training an initial power load prediction model by using each historical power load data in the classification result to obtain a target power load prediction model.
Optionally, the determining, by using the classification result, the predicted power load value of the date to be predicted includes:
generating a power load predicted value of each power consumer by using the target power load prediction model to obtain a power load predicted value set;
and summing the power load predicted values in the power load predicted value set to obtain the power load predicted value.
In a second aspect, some embodiments of the present disclosure provide an apparatus for determining a predicted value of a power load, the apparatus including: an acquisition unit configured to acquire a historical power load data set, wherein historical power load data in the historical power load data set is used for representing a power load curve of a certain date; the clustering unit is configured to perform clustering processing on historical power load data in the historical power load data set to obtain a historical power load data class set; the first determining unit is configured to determine a key influence factor from a preset initial influence factor set by using the historical power load data class set to obtain a key influence factor set; a generating unit configured to generate a target decision tree according to the historical power load data class set and the key influence factor set, wherein nodes in the target decision tree respectively correspond to historical power load data classes in the historical power load data class set; the input unit is configured to input the key influence factor vector of the date to be predicted into the target decision tree to obtain a classification result; and a second determination unit configured to determine a predicted value of the power load on the date to be predicted, based on the classification result.
In a third aspect, some embodiments of the present disclosure provide an electronic device, comprising: one or more processors; a storage device having one or more programs stored thereon, which when executed by one or more processors, cause the one or more processors to implement the method described in any of the implementations of the first aspect.
In a fourth aspect, some embodiments of the present disclosure provide a computer readable medium on which a computer program is stored, wherein the program, when executed by a processor, implements the method described in any of the implementations of the first aspect.
The above embodiments of the present disclosure have the following advantages: the accuracy of the power load predicted value obtained by the power load predicted value determining method of some embodiments of the present disclosure is high. Specifically, the reason why the accuracy of the predicted power load value obtained by the related power load value prediction method is not high is that: the time series method or the regression analysis method only needs less historical data to complete the predicted value of the power load, and the characteristics of the historical power load data are difficult to fully and fully estimate. Based on this, the power load prediction value determination method of some embodiments of the present disclosure first obtains a historical power load data set, where the historical power load data in the historical power load data set is used to characterize a power load curve of a certain date. Therefore, the historical power load data set in a longer time period can be acquired according to the actual application requirement. And then, clustering the historical power load data in the historical power load data set to obtain a historical power load data class set. Therefore, historical power load data with similar characteristics can be divided into a group, and subsequent prediction is facilitated. And then, determining key influence factors from a preset initial influence factor set by using the historical power load data class set to obtain a key influence factor set. Therefore, key influence factors which have large influence on the clustering result can be determined in the initial influence factor set according to the clustering result of the historical power load data. And then, generating a target decision tree according to the historical power load data class set and the key influence factor set, wherein nodes in the target decision tree respectively correspond to the historical power load data classes in the historical power load data class set. Therefore, the target decision tree can be generated by combining the clustering result and the key influence factors. And then, inputting the key influence factor vector of the date to be predicted into the target decision tree to obtain a classification result. And finally, determining the predicted value of the power load of the date to be predicted by using the classification result. In this way, each historical power load data in the historical power load data set can be fully and effectively utilized. Therefore, the accuracy of the finally generated power load predicted value is improved, the guiding significance of the power load predicted value to the power system is enhanced, and the dynamic balance of the power system load and the stability of the whole power system are guaranteed to a certain extent.
Detailed Description
Embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. While certain embodiments of the present disclosure are shown in the drawings, it is to be understood that the disclosure may be embodied in various forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided for a more thorough and complete understanding of the present disclosure. It should be understood that the drawings and embodiments of the disclosure are for illustration purposes only and are not intended to limit the scope of the disclosure.
It should be noted that, for convenience of description, only the portions related to the related invention are shown in the drawings. The embodiments and features of the embodiments in the present disclosure may be combined with each other without conflict.
It should be noted that the terms "first", "second", and the like in the present disclosure are only used for distinguishing different devices, modules or units, and are not used for limiting the order or interdependence relationship of the functions performed by the devices, modules or units.
It is noted that references to "a", "an", and "the" modifications in this disclosure are intended to be illustrative rather than limiting, and that those skilled in the art will recognize that "one or more" may be used unless the context clearly dictates otherwise.
The names of messages or information exchanged between devices in the embodiments of the present disclosure are for illustrative purposes only, and are not intended to limit the scope of the messages or information.
The present disclosure will be described in detail below with reference to the accompanying drawings in conjunction with embodiments.
Referring to fig. 1, fig. 1 illustrates a flow 100 of some embodiments of a power load prediction value determination method according to the present disclosure. The method for determining the predicted value of the power load comprises the following steps:
step 101, obtaining a historical power load data set.
In some embodiments, the execution subject of the power load prediction value determination method may acquire the historical power load data set by a wired connection manner or a wireless connection manner. The historical power load data in the historical power load data set can be used for representing a power load curve of a certain date. The historical power load data set may correspond to a power load profile for each day over a historical period of time.
As an example, the time span of the above-described historical time period may be 1 year.
And 102, clustering historical power load data in the historical power load data set to obtain a historical power load data class set.
In some embodiments, the clustering the historical power load data in the historical power load data set by the executing entity to obtain a historical power load data class set may include:
step one, performing hierarchical clustering on historical power load data in the historical power load data set to obtain a hierarchical clustering tree. The historical power load data in the historical power load data set can be clustered by using a clustering hierarchy algorithm.
And secondly, determining each historical power load data at each node in the hierarchical clustering tree as a historical power load data class to obtain a historical power load data class set.
And 103, determining key influence factors from a preset initial influence factor set by using the historical power load data class set to obtain a key influence factor set.
In some embodiments, the initial influencing factors of the initial set of influencing factors may include, but are not limited to, at least one of: maximum air temperature, minimum air temperature, average humidity, wind speed and precipitation. The determining, by the execution main body, a key influence factor from a preset initial influence factor set by using the historical power load data class set to obtain a key influence factor set may include:
and performing grey correlation analysis on the historical power load data class set and the initial influence factor set to obtain a key influence factor set.
As an example, the key influencing factors in the above-mentioned set of key influencing factors may include the average air temperature and the amount of precipitation.
And 104, generating a target decision tree according to the historical power load data class set and the key influence factor set.
In some embodiments, the executing agent may generate a target decision Tree according to the historical power load data class set And the key influencing factor set by using a CART (Classification And Regression Tree) algorithm.
The nodes in the target decision tree correspond to historical power load data classes in the set of historical power load data classes, respectively. The executing body may generate a target decision tree according to the historical power load data class set and the key influence factor set by:
the first step, using the hierarchical clustering tree as an initial decision tree, and executing the following steps for each node in the initial decision tree in sequence:
a first substep of determining two historical power load dataclasses in the set of historical power load dataclasses corresponding to two leaf nodes as a pair of historical power load dataclasses in response to determining that the node has two leaf nodes.
And a second substep of determining the key influence factor with the largest difference between the two historical power load data classes in the historical power load data class pair by using the key influence factor set.
And a third substep of generating a classification rule of the node by using the key influence factor with the maximum difference.
And secondly, combining the initial decision tree and each classification rule of the nodes in the initial decision tree to obtain the target decision tree.
In some optional implementations of some embodiments, the determining, by the execution subject, the key influence factor with the largest difference between the two historical power load data classes in the historical power load data class pair by using the set of key influence factors may include:
the method comprises the following steps of firstly, determining the average value of each key influence factor of each historical power load data in each historical power load data class in the historical power load data class pair. And the average value of each key influence factor corresponds to the key influence factors in the key influence factor set one by one.
And secondly, determining the difference value of the average values of the two key influence factors corresponding to the same key influence factor in the average values of the two key influence factors of the two historical power load data classes in the historical power load data class pair to obtain an average value difference value set. And the average value difference in the average value difference value set is an absolute value.
And thirdly, determining the key influence factor corresponding to the average difference with the largest value in the average difference set as the key influence factor with the largest difference.
Optionally, the step of generating the classification rule of the node by the execution main body using the most different key influence factor may include the following steps:
firstly, determining the average value of the average values of the two key influence factors corresponding to the key influence factor with the maximum difference as a classification numerical value.
And secondly, generating a classification rule of the node by using the classification numerical value. The classification rule may include two sub-classification rules for classifying a set of numerical values into two groups. The two sub-classification rules can be that the data to be classified is larger than the classification value and the data to be classified is smaller than or equal to the classification value.
The above steps are taken as an invention point of the embodiment of the present disclosure, and the technical problem mentioned in the background art is solved, i.e. the required parameters are too much when the clustering data mining technology is adopted, and the time consumed for prediction is longer and the efficiency is lower when the data volume is larger. The factors that lead to the above technical problems tend to be as follows: clustering data mining algorithms, such as the CURE (clustering Using representing) algorithm, have many parameters, have errors in sampling, are sensitive to spatial data density differences, and are not efficient in prediction when the data volume is large. If the above factors are solved, the effect of improving the prediction efficiency can be achieved. In order to achieve the effect, the present disclosure uses the hierarchical clustering tree as an initial decision tree, and sequentially performs the following steps for each node in the initial decision tree: and in response to determining that two leaf nodes exist in the node, determining two historical power load data classes corresponding to the two leaf nodes in the historical power load data class set as a historical power load data class pair. And determining the key influence factor with the maximum difference between the two historical power load data classes in the historical power load data class pair by using the key influence factor set. And generating the classification rule of the node by using the key influence factor with the maximum difference. Therefore, the target decision tree can be generated by using the hierarchical clustering result and the key influence factor set, so that a preliminary prediction result can be conveniently and quickly obtained by using the prediction date, and the prediction efficiency of the power load data is greatly improved.
And 105, inputting the key influence factor vector of the date to be predicted into a target decision tree to obtain a classification result.
In some embodiments, the key influencer vector includes a key influencer actual value corresponding to each key influencer in the set of key influencers. The executing step of inputting the key influencing factor vector of the date to be predicted into the target decision tree by the executing main body to obtain the classification result may include the following steps:
and step one, determining a historical power load data class corresponding to the data of the date to be predicted in the target decision tree according to a key influence factor actual value corresponding to each key influence factor in the key influence factor set, wherein the key influence factor actual value is included in the key influence factor vector. Each dimension value in the above-mentioned key influence factor vector is an actual value corresponding to each key influence factor.
And secondly, determining the corresponding historical power load data class as the classification result.
And step 106, determining the predicted value of the power load of the date to be predicted by using the classification result.
In some embodiments, the determining, by the executing entity, the predicted power load value of the date to be predicted by using the classification result may include:
the method comprises the steps of firstly, generating a power load predicted value of each power consumer by using a target power load prediction model to obtain a power load predicted value set.
And secondly, summing the power load predicted values in the power load predicted value set to obtain the power load predicted value.
In some optional implementations of some embodiments, the execution main body may further send the power load prediction value to a target terminal for display. The target terminal can be used for displaying the predicted value of the power load for reference of decision-making personnel.
Optionally, before determining the predicted power load value of the date to be predicted by using the classification result, the execution main body may also train an initial power load prediction model by using each historical power load data in the classification result to obtain a target power load prediction model. The initial power load prediction model may be a CNN (Convolutional Neural Networks) model.
The above steps are taken as an invention point of the embodiment of the present disclosure, and further solve the technical problem mentioned in the background art that "when a clustering data mining technology is adopted, the required parameters are too much, and when the data volume is large, the prediction time is long, and the efficiency is low". The factors that lead to the above technical problem tend to be as follows: clustering data mining algorithms, such as the CURE (clustering Using representing) algorithm, have many parameters, have errors in sampling, are sensitive to spatial data density differences, and are not efficient in prediction when the data volume is large. If the above factors are solved, the effect of improving the prediction efficiency can be achieved. To achieve this effect, the present disclosure first trains an initial power load prediction model using each historical power load data in the classification result to obtain a target power load prediction model. And then, generating a power load predicted value of each power consumer by using the target power load prediction model to obtain a power load predicted value set. And finally, summing the power load predicted values in the power load predicted value set to obtain the power load predicted value. Therefore, the power load value of the date to be predicted can be preliminarily predicted according to the target decision tree. And then, training the initial power load prediction model by using each historical power load data in the classification result. And finally, accurately predicting by using the trained target power load prediction model. The efficiency is improved, and meanwhile, the accuracy is ensured.
The above embodiments of the present disclosure have the following advantages: the accuracy of the power load predicted value obtained by the power load predicted value determining method of some embodiments of the present disclosure is high. Specifically, the reason why the accuracy of the predicted value of the power load obtained by the related power load value prediction method is not high is that: the time series method or the regression analysis method only needs less historical data to complete the predicted value of the power load, and the characteristics of the historical power load data are difficult to fully and fully estimate. Based on this, the power load prediction value determination method of some embodiments of the present disclosure first obtains a historical power load data set, where historical power load data in the historical power load data set is used to characterize a power load curve of a certain date. Therefore, the historical power load data set in a longer time period can be acquired according to the actual application requirement. And then, clustering the historical power load data in the historical power load data set to obtain a historical power load data class set. Therefore, historical power load data with similar characteristics can be divided into a group, and subsequent prediction is facilitated. And then, determining key influence factors from a preset initial influence factor set by using the historical power load data class set to obtain a key influence factor set. Therefore, key influence factors which have large influence on the clustering result can be determined in the initial influence factor set according to the clustering result of the historical power load data. And then, generating a target decision tree according to the historical power load data class set and the key influence factor set, wherein nodes in the target decision tree respectively correspond to the historical power load data classes in the historical power load data class set. Therefore, the clustering result and the key influence factors can be combined to generate the target decision tree. And then, inputting the key influence factor vector of the date to be predicted into the target decision tree to obtain a classification result. And finally, determining the predicted value of the power load of the date to be predicted by using the classification result. In this way, each historical power load data in the historical power load data set can be fully and effectively utilized. Therefore, the accuracy of the finally generated power load predicted value is improved, the guiding significance of the power load predicted value to the power system is enhanced, and the dynamic balance of the power system load and the stability of the whole power system are guaranteed to a certain extent.
With further reference to fig. 2, as an implementation of the methods shown in the above figures, the present disclosure provides some embodiments of a power load prediction value determination apparatus, which correspond to those of the method embodiments shown in fig. 1, and which may be applied in various electronic devices in particular.
As shown in fig. 2, the power load prediction value determination apparatus 200 of some embodiments includes: an acquisition unit 201, a clustering unit 202, a first determination unit 203, a generation unit 204, an input unit 205, and a second determination unit 206. The acquiring unit 201 is configured to acquire a historical power load data set, wherein the historical power load data in the historical power load data set is used for representing a power load curve of a certain date; a clustering unit 202 configured to perform clustering processing on historical power load data in the historical power load data set to obtain a historical power load data class set; a first determining unit 203, configured to determine a key influence factor from a preset initial influence factor set by using the historical power load data class set to obtain a key influence factor set; a generating unit 204 configured to generate a target decision tree according to the historical power load data class set and the key influence factor set, wherein nodes in the target decision tree respectively correspond to historical power load data classes in the historical power load data class set; an input unit 205, configured to input the key influence factor vector of the date to be predicted into the target decision tree, so as to obtain a classification result; a second determining unit 206 configured to determine a predicted value of the power load on the date to be predicted, using the classification result.
It will be understood that the units described in the apparatus 200 correspond to the various steps in the method described with reference to fig. 1. Thus, the operations, features and advantages described above for the method are also applicable to the apparatus 200 and the units included therein, and are not described herein again.
Referring now to FIG. 3, a block diagram of an electronic device 300 suitable for use in implementing some embodiments of the present disclosure is shown. The electronic device shown in fig. 3 is only an example, and should not bring any limitation to the functions and the scope of use of the embodiments of the present disclosure.
As shown in fig. 3, the electronic device 300 may include a processing means (e.g., a central processing unit, a graphics processor, etc.) 301 that may perform various appropriate actions and processes in accordance with a program stored in a Read Only Memory (ROM) 302 or a program loaded from a storage means 308 into a Random Access Memory (RAM) 303. In the RAM 303, various programs and data necessary for the operation of the electronic apparatus 300 are also stored. The processing device 301, the ROM 302, and the RAM 303 are connected to each other via a bus 304. An input/output (I/O) interface 305 is also connected to bus 304.
Generally, the following devices may be connected to the I/O interface 305: input devices 306 including, for example, a touch screen, touch pad, keyboard, mouse, camera, microphone, accelerometer, gyroscope, etc.; an output device 307 including, for example, a Liquid Crystal Display (LCD), a speaker, a vibrator, and the like; and a communication device 309. The communication means 309 may allow the electronic device 300 to communicate wirelessly or by wire with other devices to exchange data. While fig. 3 illustrates an electronic device 300 having various means, it is to be understood that not all illustrated means are required to be implemented or provided. More or fewer devices may alternatively be implemented or provided. Each block shown in fig. 3 may represent one device or may represent multiple devices, as desired.
In particular, according to some embodiments of the present disclosure, the processes described above with reference to the flow diagrams may be implemented as computer software programs. For example, some embodiments of the present disclosure include a computer program product comprising a computer program embodied on a computer readable medium, the computer program comprising program code for performing the method illustrated in the flow chart. In some such embodiments, the computer program may be downloaded and installed from a network through the communication device 609, or installed from the storage device 608, or installed from the ROM 602. The computer program, when executed by the processing device 601, performs the above-described functions defined in the methods of some embodiments of the present disclosure.
It should be noted that the computer readable medium described in some embodiments of the present disclosure may be a computer readable signal medium or a computer readable storage medium or any combination of the two. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination of the foregoing. More specific examples of the computer readable storage medium may include, but are not limited to: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In some embodiments of the disclosure, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device. In some embodiments of the present disclosure, however, a computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated data signal may take many forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may also be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device. Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to: electrical wires, optical cables, RF (radio frequency), etc., or any suitable combination of the foregoing.
In some embodiments, the clients, servers may communicate using any currently known or future developed network Protocol, such as HTTP (HyperText Transfer Protocol), and may be interconnected with any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network ("LAN"), a wide area network ("WAN"), the Internet (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks), as well as any currently known or future developed network.
The computer readable medium may be embodied in the electronic device; or may be separate and not incorporated into the electronic device. The computer readable medium carries one or more programs which, when executed by the electronic device, cause the electronic device to: acquiring a historical power load data set, wherein historical power load data in the historical power load data set are used for representing a power load curve of a certain date; clustering historical power load data in the historical power load data set to obtain a historical power load data class set; determining key influence factors from a preset initial influence factor set by using the historical power load data class set to obtain a key influence factor set; generating a target decision tree according to the historical power load data class set and the key influence factor set, wherein nodes in the target decision tree correspond to historical power load data classes in the historical power load data class set respectively; inputting the key influence factor vector of the date to be predicted into the target decision tree to obtain a classification result; and determining the predicted value of the power load of the date to be predicted by using the classification result.
Computer program code for carrying out operations for embodiments of the present disclosure may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C + +, 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 case of a remote computer, 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).
The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present disclosure. 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 which perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The units described in some embodiments of the present disclosure may be implemented by software, and may also be implemented by hardware. The described units may also be provided in a processor, and may be described as: a processor includes an acquisition unit, a clustering unit, a first determination unit, a generation unit, an input unit, and a second determination unit. Where the names of the units do not in some cases constitute a limitation of the unit itself, for example, the acquisition unit may also be described as a "unit acquiring a historical power load data set".
The functions described herein above may be performed, at least in part, by one or more hardware logic components. For example, without limitation, exemplary types of hardware logic components that may be used include: field Programmable Gate Arrays (FPGAs), Application Specific Integrated Circuits (ASICs), Application Specific Standard Products (ASSPs), systems on a chip (SOCs), Complex Programmable Logic Devices (CPLDs), and the like.