Data encoding device and data encoding program

JPWO2023248481A5Active Publication Date: 2025-03-05FANUC LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024528258
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-12-09
Publication Date
2025-03-05
Estimated Expiration
2042-06-24

AI Technical Summary

Technical Problem

Conventional data encoding techniques struggle to compress axis-dependent data with uniform frequency distributions, such as error data in industrial machines, as they rely on frequency biases that are not present in white noise-like data, limiting the accuracy of error correction in industrial machinery.

Method used

A data encoding device and program that utilize a linear combination model to approximate and encode axis-dependent data, allowing for compression by dividing the data into regions and using dynamic programming or machine learning to optimize the encoding process, thereby overcoming the limitations of conventional entropy encoding techniques.

Benefits of technology

The proposed solution enables effective compression and improved accuracy of error correction in industrial machines by representing axis-dependent data as a linear combination of errors, increasing the data size that can be input to control devices without increasing storage capacity, thus enhancing positioning and processing accuracy.

✦ Generated by Eureka AI based on patent content.
Patent Text Reader

Abstract

Provided is an encoding technology with which it is possible to encode and compress shaft-dependent data that is dependent on coordinate values of each shaft of an industrial machine. A data encoding device 1 comprising a model approximation encoding unit 11 that, on the basis of some shaft-dependent data that is dependent on coordinate values of each shaft of an industrial machine and a linear combination model that approximates the shaft-dependent data as a linear combination of shaft data pertaining to the industrial machine, generates encoded shaft-dependent data in which the shaft-dependent data is encoded.
Need to check novelty before this filing date? Find Prior Art

Description

Data encoding device and data encoding program

[0001] The present disclosure relates to a data encoding device and a data encoding program.

[0002] Conventionally, industrial machines such as machine tools and robots move a predetermined control point to a predetermined position according to a command value. However, because industrial machines have errors, the position of the control point usually does not match the command value. To solve this deterioration in positioning accuracy and, ultimately, in machining accuracy, a technique has been proposed for correcting the error so that the position of the control point matches the command value (see, for example, Patent Document 1). In this technique, a pre-measured error amount is input to a control device, and the error is corrected based on a correction amount corresponding to the error amount.

[0003] JP 2011-209897 A

[0004] However, since there is an upper limit to the data size that can be input, there is a problem that the accuracy of error correction cannot be improved by exceeding the upper limit of the data size that can be input.

[0005] Therefore, it is conceivable to compress the error data before inputting it to the control device. Data compression techniques include data encoding techniques, such as entropy encoding techniques typified by Huffman coding. Entropy encoding techniques compress data by utilizing the bias in the frequency of occurrence of values ​​in the data, i.e., the smallness of information entropy.

[0006] However, axis-dependent data, such as the error amounts described above, that depend on the coordinate values ​​of each axis of an industrial machine may have a white noise-like characteristic with a uniform occurrence frequency. In such cases, the small information entropy described above cannot be utilized, making it difficult to compress the data using entropy coding.

[0007] The present disclosure has been made in view of the above, and aims to provide a data encoding technique that can encode and compress axis-dependent data that depends on the coordinate values ​​of each axis of an industrial machine.

[0008] One aspect of the present disclosure is a data encoding device that encodes data, the data encoding device including a model approximation encoding unit that encodes the axis-dependent data based on a portion of axis-dependent data that depends on the coordinate values ​​of each axis of an industrial machine and a linear combination model that approximates the axis-dependent data as a linear combination of each axis data of the industrial machine, and generates axis-dependent data after encoding.

[0009] Another aspect of the present disclosure is a data encoding program for encoding data, the data encoding program causing a computer to execute a step of encoding axis-dependent data based on a portion of axis-dependent data that depends on the coordinate values ​​of each axis of an industrial machine and a linear combination model that approximates the axis-dependent data as a linear combination of each axis data of the industrial machine, thereby generating post-encoding axis-dependent data.

[0010] According to the present disclosure, it is possible to provide a data encoding technique that can encode and compress axis-dependent data that depends on the coordinate values ​​of each axis of an industrial machine.

[0011] FIG. 1 is a diagram showing the configuration of a data encoding device according to a first embodiment; FIG. 2 is a diagram showing an example of a text file containing only specific characters; FIG. 3 is a diagram showing an example of data in which the frequency of occurrence of each value is expressed in a distribution; FIG. 4 is a diagram showing data in which the frequency of occurrence of each value is uniform; FIG. 5 is a diagram showing each axis error of the X-axis; FIG. 6 is a diagram showing each axis error of the Y-axis; 2 , Y 111 ). A diagram showing the amount of error in a case where the amount of error cannot be expressed by a linear combination of each axis error. A partially enlarged view of FIG. 8. A diagram showing a bitmap image visualizing an error map. A diagram showing an example of axis-dependent data. A diagram showing a linear combination model that approximates the axis-dependent data of FIG. 11 as a linear combination of each axis error of an industrial machine. A diagram showing the configuration of a data encoding device according to a second embodiment. A diagram showing axis-dependent data partitioned into a plurality of lattice-shaped regions. A diagram showing an example of axis-dependent data after division. A diagram showing the configuration of a data encoding device according to a third embodiment. A flowchart showing the procedure for dividing axis-dependent data by a dynamic programming processing unit. A diagram showing divided sections before expanding each axis data (each axis error) by one column in the X positive direction. A diagram showing divided sections after expanding each axis data (each axis error) by one column in the X positive direction. A diagram showing the configuration of a data encoding device according to a fourth embodiment. A diagram showing the approximation error (vector γ[X][Y]). A diagram showing the configuration of a data encoding device according to a fifth embodiment. A diagram showing the approximation error (vector γ[X][Y]) including exceptional points larger than a predetermined tolerance. FIG. 10 is a diagram showing exceptional points that have been excluded and retained because the approximation error (vector γ[X][Y]) is greater than a predetermined tolerance. FIG. 11 is a diagram showing the configuration of a data encoding device according to a sixth embodiment. FIG. 12 is a diagram showing the configuration of a data encoding device according to a seventh embodiment. FIG. 13 is a flowchart showing the procedure of a learning process by a machine learning device 9.

[0012] Hereinafter, embodiments of the present disclosure will be described in detail with reference to the drawings. In the description of the second and subsequent embodiments, the description of the configurations common to the first embodiment will be omitted as appropriate.

[0013] [First Embodiment] A data encoding device 1 according to the first embodiment is a data encoding device capable of encoding and compressing axis-dependent data that depends on the coordinate values ​​of each axis of an industrial machine, such as error amounts used for error correction of each axis of the industrial machine. As described above, axis-dependent data that depends on the coordinate values ​​of each axis of the industrial machine may have white noise-like properties with a uniform overall occurrence frequency. Therefore, it is difficult to compress the data using conventional entropy encoding techniques that utilize the bias in the occurrence frequency of values ​​in the data, i.e., the small information entropy. In contrast, the data encoding device 1 according to this embodiment is capable of encoding and compressing axis-dependent data that depends on the coordinate values ​​of each axis of the industrial machine.

[0014] FIG. 1 is a diagram showing the configuration of a data encoding device 1 according to a first embodiment. As shown in FIG. 1, the data encoding device 1 includes a model approximation encoding unit 11. The model approximation encoding unit 11 encodes axis-dependent data based on axis-dependent data and a linear combination model to generate post-encoding axis-dependent data. Before explaining the configuration of the data encoding device 1, conventional data encoding techniques will first be explained.

[0015] Entropy coding, typified by Huffman coding, is a well-known data coding technique. Entropy coding compresses data by utilizing the bias in the frequency of occurrence of values ​​in the data, i.e., the smallness of information entropy.

[0016] FIG. 2 shows an example of a text file containing only specific characters. FIG. 3 shows an example of data in which the frequency of occurrence of each value is expressed as a distribution. In FIGS. 2 and 3, the horizontal axis indicates bit values, and the vertical axis indicates the frequency of occurrence of each value. For example, a text file containing only 16 characters, 0-9 and A-F, as shown in FIG. 2, typically requires 8 bits to represent one character. However, entropy coding allows for representation with at most 4 bits per character, making it possible to compress the data by about half. Furthermore, data with non-uniform frequency of occurrence, such as that shown in FIG. 3, can be compressed by entropy coding, assigning short bit values ​​to high-frequency values ​​and long bit values ​​to low-frequency values.

[0017] In contrast, Fig. 4 shows data in which the frequency of occurrence of each value is uniform. As with Fig. 2 and Fig. 3, the horizontal axis in Fig. 4 represents bit values, and the vertical axis represents the frequency of occurrence of each value. Data like white noise with a uniform frequency of occurrence, such as that shown in Fig. 4, cannot utilize the small information entropy mentioned above, making it difficult to compress the data using entropy coding.

[0018] Static error compensation for each axis of industrial machinery includes pitch error compensation, straightness error compensation, and three-dimensional error compensation. Pitch error compensation is compensation for errors in the axial direction. Straightness error compensation is compensation for errors in the direction perpendicular to the axial direction. Three-dimensional error compensation is compensation for three-dimensional spatial errors. These error compensations are performed by inputting the amount of error measured for each coordinate value of each axis (hereinafter referred to as "axis error") into the control device for the number of axes. The greater the number of input points, the higher the accuracy of error compensation, but there is an upper limit to the data size that can be input.

[0019] 5 is a diagram showing each axis error of the X axis. Each axis error of the X axis is the amount of error of each coordinate value measured when only the X axis is moved while the Y axis and Z axis are fixed. As shown in FIG. 5, each coordinate value X 0 , X 1 , X 2 , and X 3The error amounts are represented by vectors each having a different magnitude and direction.

[0020] 6 is a diagram showing the axis errors of the Y axis. The axis errors of the Y axis are the amount of error of each coordinate value measured when only the Y axis is moved while the X axis and Z axis are fixed. As shown in FIG. 6, the error of each coordinate value Y 0 , Y 1 , and Y 2 The error amounts are represented by vectors each having a different magnitude and direction.

[0021] Here, in the error correction for each axis, it is assumed that the errors for each axis are linearly independent. 1 ,...X L The error amount (vector E [X 1 ]・・・[X L ]) is assumed to be a linear combination of each axis error, and is expressed as the following equation (1).

[0022]

[0023] In the above formula (1), L represents the number of axes to be subjected to error correction. l represents the l-th axis to be corrected.

[0024] There are many situations where the above formula (1) based on the above assumption holds true, and currently, error correction for each axis has been widely used. For example, FIG. 7 shows the coordinate value (X 2 , Y 1 7 is a diagram showing the amount of error in the coordinate value (X 2 , Y 1 ) error amount (vector E [X 2 ][Y 1 ]) is the coordinate value X 2 The error amount (vector E X [X 2 ]) and the coordinate value Y 1 The error amount (vector E Y [Y 1 ]) and is expressed as the following mathematical formula (2).

[0025]

[0026] However, when viewed as a whole, each axis error (vector E X [X], vector E Y In some cases, the frequency of occurrence of values ​​in the vector E[X][Y] or the frequency of occurrence of values ​​in the error vector E[X][Y] is uniform and resembles white noise. In such cases, it is difficult to compress such data using conventional entropy coding techniques that utilize the bias in the frequency of occurrence of values ​​in the data, i.e., the smallness of information entropy.

[0027] In addition, the axis errors are not linearly independent, but the error amount (vector E [X 1 ]・・・[X L ]) may be determined by the correlation of multiple axes. In other words, as expressed by the following formula (3), the error amount (vector E[X 1 ]・・・[X L ]) is a correlation term (vector δ[X 1 ]・・・[X L ]) and may not be expressed as a linear combination of each axis error.

[0028]

[0029] FIG. 8 is a diagram showing the amount of error when it cannot be expressed by a linear combination of each axis error. As shown in FIG. 8, when each axis error is not linearly independent, the amount of error (vector E[X 1 ]・・・[X L ]) is used as the correlation term (vector δ[X 1 ]・・・[X L In this case, the error amount for each space correlated with the error amount (hereinafter referred to as spatial error) is input to the control device for correction, so this is called error correction for each space.

[0030] Here, the inventors have found that the spatial error has the property that, even though it cannot be expressed as a linear combination of the axis errors as a whole, it can be regarded as a linear combination of the axis errors locally, just like the axis errors. For example, FIG. 9 is a partial enlarged view of FIG. 8, and in the local region surrounded by the dashed line in FIG. 9, the above-mentioned correlation term (vector δ[X 1 ]・・・[X L]) can be considered to be 0, and the spatial error can be expressed as a linear combination of each axis error. That is, the spatial error (vector E[X][Y]) can be expressed as a linear combination of each axis error (vector E X [X]) and each axis error (vector E Y This means that the spatial error (vector E[X][Y]) is the sum of the error amount (vector E[X][Y]) of one row in the X-axis direction among the axis data (axis errors) on a plurality of coordinate points in a grid pattern. X [X]) and the error amount in one row in the Y-axis direction (vector E Y [Y]) and approximate them as a linear combination. Note that the local region can be, for example, the central region of the movable range of an industrial machine.

[0031]

[0032] However, when viewed as a whole, the frequency of occurrence of values ​​in the spatial error (vector E[X][Y]) may be uniform and white noise-like, making it difficult to compress using conventional entropy coding techniques that utilize the small information entropy. For example, Figure 10 is a diagram showing a bitmap image that visualizes an error map when the target axes for error correction are the X axis and the Y axis, and the RGB values ​​of each pixel correspond to the error amount vector E. Furthermore, the error amount (vector E[X][Y]) of each pixel can be calculated by the vector E according to the above formula (4). X [X] and vector E Y [Y]. For example, if the number of pixels in the bitmap image shown in Figure 10 is 10 x 10, which is 374 bytes, when this is encoded using ZIP compression, a typical entropy encoding technique, it becomes 393 bytes. As can be seen, conventionally known entropy encoding has no compression effect, and in some cases can have the opposite effect by increasing the data size.

[0033] In light of the above, this embodiment utilizes the property that even axis-dependent data that depends on the coordinate values ​​of each axis of an industrial machine, such as the amount of error used to correct errors of each axis of an industrial machine, can be locally regarded as a linear combination of the axis errors, as expressed in the above-mentioned formula (1). As a result, the data encoding device 1 according to this embodiment makes it possible to encode and compress axis-dependent data, which was previously difficult.

[0034] 1, the data encoding device 1 according to this embodiment is configured using a computer including memories such as ROM (read only memory) and RAM (random access memory), a CPU (control processing unit), operation means such as a keyboard, a display, and a communication control unit, all connected to one another via a bus. The functions and operations of the functional units described below are achieved by the cooperation of the CPU and memory installed in the computer, and the control program stored in the memory.

[0035] The data encoding device 1 may be provided in, for example, a computerized numerical control (CNC) device corresponding to a control device of industrial machinery such as a machine tool or a robot, a robot control device, etc. Alternatively, the data encoding device 1 may be provided in an external computer or the like capable of communicating with these control devices.

[0036] The model approximation encoding unit 11 included in the data encoding device 1 of this embodiment encodes axis-dependent data based on a portion of the axis-dependent data that depends on the coordinate values ​​of each axis of the industrial machine and a linear combination model that approximates the axis-dependent data as a linear combination of each axis data (each axis error) of the industrial machine, to generate encoded axis-dependent data. The axis-dependent data is input, for example, from the above-mentioned control device, etc. The linear combination model is stored, for example, in a memory unit of the data encoding device 1.

[0037] Here, the axes of an industrial machine refer to, for example, the axes of a machine tool, i.e., the X-axis, Y-axis, and Z-axis. Examples of axis-dependent data include error amounts used to correct errors in the axes of an industrial machine, as well as the installation error amount of a relatively large workpiece whose displacement varies for each coordinate value due to the influence of deflection caused by its own weight. These error amounts and the installation error amount of a workpiece are all data that depend on the coordinate values ​​of the axes of the industrial machine.

[0038] Hereinafter, the model approximation coding using the linear combination model by the model approximation coding unit 11 of this embodiment will be described in detail with reference to FIGS.

[0039] FIG. 11 is a diagram showing an example of axis-dependent data. The example shown in FIG. 11 shows axis-dependent data in a case where two axes, the X-axis and the Y-axis, are the target axes for error correction, etc. The axis-dependent data shown in FIG. 11 is, for example, the amount of each axis error of an industrial machine, and is axis-dependent data of a certain local region in axis-dependent data in which the occurrence frequency of values ​​in the data is uniform as a whole, and is axis-dependent data that can be approximated by a linear combination model, which will be described later. The example of axis-dependent data shown in FIG. 11 has a total of N×M points of axis data (each axis error).

[0040] FIG. 12 is a diagram showing a linear combination model that approximates the axis-dependent data of FIG. 11 as a linear combination of each axis error of the industrial machine. As described above, the error amount (vector E[X 1 ]・・・[X L ]) follows the model expressed by the above formula (3), and as a whole, the correlation term (vector δ[X 1 ]・・・[X L ]) is considered to have a strong influence, it is considered that there exists a region that can be locally approximated by the linear combination model expressed by the above formula (1). For such an approximable region, as shown in FIG. 12, an approximation model (vector Ea[X 1 ]・・・[X L ]) in the X-axis direction. X [X]) and the error amount in one row in the Y-axis direction (vector Ea Y[Y]) and approximate them as a linear combination. In the example shown in Fig. 12, the total number of axis data (axis errors) after approximation is N+M points, which shows that axis-dependent data can be compressed.

[0041]

[0042] In the above formula (5), X 1 , X L is expressed as the following equation (6), and the vector c is defined as the average value as expressed in the following equation (7). X l [X l ] is expressed as the following formula (8): L represents the number of axes to be subjected to error correction, and X l represents the l-th axis to be corrected, and Nl represents the number of error amounts for the l-th axis to be corrected.

[0043]

[0044]

[0045]

[0046] In the formula (8), X represents a one-dimensional axis space, while x represents an element belonging to the space. p is a value between 1 and L. For example, x 3 If so, axis X 3 means a possible value of .

[0047] When the vector c is defined as in the above formula (7), the approximation model (vector Ea[X 1 ]・・・[X L ]) is a maximum likelihood estimation model that minimizes the evaluation function J expressed by the following formula (9). That is, the evaluation function J is, as expressed by the following formula (9), the original error amount before approximation (vector E[X 1 ]・・・[X L ]) and the error amount after approximation (vector Ea[X 1 ]・・・[X L ]), and the approximation model (vector Ea[X 1 ]・・・[XL The approximation model determined in this manner as a linear combination model is stored in, for example, a storage unit of the data encoding device 1 and is used for model approximation encoding by the model approximation encoding unit 11.

[0048]

[0049] According to this embodiment, the following effects are achieved.

[0050] The data encoding device 1 according to this embodiment includes a model approximation encoding unit 11 that generates encoded axis-dependent data by encoding axis-dependent data based on a portion of the axis-dependent data that depends on the coordinate values ​​of each axis of the industrial machine and a linear combination model that approximates the axis-dependent data as a linear combination of each axis data (each axis error) of the industrial machine. Conventionally, axis-dependent data, such as the amount of axis error of an industrial machine, which has a uniform overall occurrence frequency and is often white noise-like, has been difficult to compress using conventional entropy encoding techniques that utilize the bias in the occurrence frequency of values ​​in the data, i.e., the small information entropy. In contrast, according to this embodiment, by approximating a portion of the axis-dependent data as a linear combination of each axis data (each axis error), it is possible to encode and compress axis-dependent data that was previously difficult to compress. Furthermore, by using the encoded axis-dependent data encoded and compressed according to this embodiment, it is possible to increase the amount of data, such as error amounts, that can be input to an industrial machine control device without increasing storage capacity, thereby enabling more accurate correction of industrial machine errors.

[0051] [Second Embodiment] Fig. 13 is a diagram showing the configuration of a data encoding device 2 according to the second embodiment. As shown in Fig. 13, the data encoding device 2 according to the second embodiment differs from the data encoding device 1 according to the first embodiment in that it includes an axis-dependent data division unit 22. The model approximation encoding unit 21 according to the second embodiment also differs from the model approximation encoding unit 11 according to the first embodiment in that it performs model approximation encoding based on post-division axis-dependent data generated by dividing axis-dependent data into multiple pieces and the linear combination model described above. Other than these differences, the configuration is the same as that according to the first embodiment.

[0052] The data encoding device 1 according to the first embodiment described above performs model approximation encoding of a linear combination model for a portion of axis-dependent data that may have a uniform overall appearance frequency and resemble white noise, by treating the portion as a linear combination of each axis data (each axis error). In contrast, the data encoding device 2 according to the present embodiment actively divides the axis-dependent data into a plurality of regions, thereby generating a plurality of regions that can be regarded as a linear combination of each axis data (each axis error), thereby more reliably enabling the execution of model approximation encoding of a linear combination model.

[0053] The axis-dependent data dividing unit 22 divides the axis-dependent data to generate multiple pieces of divided axis-dependent data. Here, FIG. 14 is a diagram showing axis-dependent data partitioned into multiple grid-like regions. As shown in FIG. 14, the axis-dependent data input to the data encoding device 2 is partitioned into multiple grid-like regions, for example, according to each axis data (each axis error) on each coordinate value. In the example shown in FIG. 14, the axis-dependent data is partitioned into a grid of 15 x 15 = 225 points. The axis-dependent data dividing unit 22 divides the axis-dependent data into multiple pieces, for example, along these partitions.

[0054] Although there are no particular limitations on the method for dividing the axis-dependent data by the axis-dependent data dividing unit 22, it is preferable to divide the axis-dependent data so as to generate a plurality of regions that can be regarded as linear combinations of the axis data (axis errors). In particular, it is preferable for the axis-dependent data dividing unit 22 to divide the axis-dependent data into a plurality of regions that can be best approximated (compressed).

[0055] 15 is a diagram showing an example of post-division axis-dependent data. In the example shown in FIG. 15, the axis-dependent data input to the data encoding device 2 is divided into five division sections 1 to 5 by the axis-dependent data division unit 22. That is, each piece of data within each of these five division sections 1 to 5 corresponds to post-division axis-dependent data, and this post-division axis-dependent data can be regarded as a linear combination of each piece of axis data (each axis error), allowing for model approximation encoding of a linear combination model by the model approximation encoding unit 21, which will be described later. On the other hand, outside these five division sections 1 to 5, axis-dependent data cannot be regarded as a linear combination of each piece of axis data (each axis error), making model approximation encoding of a linear combination model impossible.

[0056] The model approximation coding unit 21 generates encoded axis-dependent data based on the plurality of divided axis-dependent data and the linear combination model. As described above, within each of the plurality of divided sections 1 to 5, the axis-dependent data can be regarded as a linear combination of each axis data (each axis error). Therefore, the model approximation coding unit 21 performs model approximation coding of the linear combination model on each divided axis-dependent data, thereby generating encoded axis-dependent data that has been model-approximated and compressed.

[0057] According to this embodiment, the following effects are achieved.

[0058] The data encoding device 2 according to this embodiment is provided with an axis-dependent data division unit 22 that divides axis-dependent data to generate multiple pieces of divided axis-dependent data. The model approximation encoding unit 21 is also configured to generate encoded axis-dependent data based on the multiple pieces of divided axis-dependent data and a linear combination model. Thus, according to this embodiment, by actively dividing the axis-dependent data into multiple regions, it is possible to generate multiple regions that can be regarded as linear combinations of the axis data (axis errors), and by performing model approximation encoding of the linear combination model for each region, it is possible to more reliably compress axis-dependent data that was previously difficult to compress.

[0059] [Third Embodiment] Fig. 16 is a diagram showing the configuration of a data encoding device 3 according to the third embodiment. As shown in Fig. 16, the data encoding device 3 according to the third embodiment differs from the second embodiment in that the configuration of the axis-dependent data division unit 32 is different from the axis-dependent data division unit 22 of the second embodiment. Other than this difference, the configuration is the same as that of the second embodiment.

[0060] In the data encoding device 2 according to the second embodiment, the method for dividing the axis-dependent data is not particularly limited, but in the data encoding device 3 according to the third embodiment, the axis-dependent data is divided using dynamic programming. In other words, by using dynamic programming, the axis-dependent data can be divided optimally, and the axis-dependent data can be best approximated and compressed.

[0061] 16 , the axis-dependent data division unit 32 of this embodiment includes a dynamic programming processing unit 33. The dynamic programming processing unit 33 generates optimal post-division axis-dependent data by executing dynamic programming. Specifically, the dynamic programming processing unit 33 includes, as functional units for executing dynamic programming, a post-model approximation encoding optimality evaluation unit 34, an axis-dependent data partial division unit 35, and a partial axis-dependent data optimization result combination unit 36.

[0062] Here, the dynamic programming executed by the dynamic programming processing unit 33 will be described in detail.

[0063] Dynamic programming is a general-purpose algorithm for solving optimization problems. Dynamic programming is an algorithm with the following two characteristics. The first characteristic is that it solves recursively. That is, it divides a problem into small-scale subproblems, recursively optimizes the subproblems, and combines the optimization results of the subproblems to obtain a solution to the original problem on a larger scale. The second characteristic is that it can reduce processing load by recording the optimization results. That is, in the process of recursively solving a problem, the same problem may appear multiple times. In order to omit calculations for problems that have already been solved, the optimization results of problems that have already been solved can be recorded and reused.

[0064] Therefore, the dynamic programming processing unit 33 of this embodiment includes a post-model approximation coding optimality evaluation unit 34 as a means for evaluating the optimality of the result. That is, the post-model approximation coding optimality evaluation unit 34 evaluates the optimality of the axis-dependent data after encoding. The optimality of the axis-dependent data after encoding can be evaluated, for example, based on whether the approximation error amount after model approximation coding is within a predetermined constraint tolerance. Note that, as will be described in detail in a fourth embodiment below, the approximation error amount after model approximation coding is the difference between the original error amount before the model approximation coding described in the first embodiment above and the error amount after model approximation coding. The constraint tolerance may be, for example, an approximation error tolerance or the allowable number of data points that exceed the approximation error tolerance.

[0065] The dynamic programming processing unit 33 of this embodiment also includes an axis-dependent data partial dividing unit 35 as means for dividing a problem into subproblems. The axis-dependent data partial dividing unit 35 divides the axis-dependent data into a plurality of portions to generate partial axis-dependent data. The axis-dependent data partial dividing unit 35 divides the axis-dependent data into predetermined specified intervals according to a predetermined division criterion stored in advance, and then divides the axis-dependent data into a plurality of portions by shrinking and optimizing the axis-dependent data by one point each in the positive or negative direction of each axis, such as the X-axis or Y-axis. The division of the axis-dependent data by the axis-dependent data partial dividing unit 35 will be described in detail later.

[0066] The dynamic programming processing unit 33 of this embodiment also includes a partial axis-dependent data optimization result combining unit 36 ​​as a means for combining (combining) the optimization results of the partial problems. The partial axis-dependent data optimization result combining unit 36 ​​generates optimal post-division axis-dependent data by expanding and combining the partial axis-dependent data. For example, the partial axis-dependent data optimization result combining unit 36 ​​optimizes the partial axis-dependent data generated by dividing the axis-dependent data by the axis-dependent data partial dividing unit 35 by expanding it by one point in each of the positive and negative directions of each axis, such as the X-axis and Y-axis. The generation of optimal post-division axis-dependent data by the partial axis-dependent data optimization result combining unit 36 ​​will be described in detail later.

[0067] The division of axis-dependent data by the dynamic programming processing unit 33 will be described in detail below with reference to the above-mentioned FIGS. 14, 15, 17 and 18.

[0068] As shown in FIG. 14 , the axis-dependent data is partitioned into a grid of, for example, 15×15=225 points. When the dynamic programming processor 33 partitions such axis-dependent data into sections, the resulting axis-dependent data is, for example, as shown in FIG. 15 . When the dynamic programming processor 33 partitions the axis-dependent data into sections, the approximation error of each error amount when each region of the partitioned section is approximated by the approximation model described above is kept within the constraint tolerance. Furthermore, points whose approximation error does not fall within the constraint tolerance are permitted up to the constraint tolerance number. The number of points that cannot be approximated and do not satisfy the constraint is minimized. This allows, for example, 225 data points to be compressed to 92 points, thereby reducing the data size.

[0069] 17 is a flowchart showing the procedure for dividing axis-dependent data by the dynamic programming processing unit 33. The division of axis-dependent data by the dynamic programming processing unit 33 is executed by recursively searching for optimal division intervals for the axis-dependent data by dynamic programming.

[0070] In step S1, the axis-dependent data is divided into predetermined designated sections. However, if the section is an area where the axis-dependent data has already been divided by the dynamic programming processing unit 33, the stored processing results may be reflected in this step. Then, the process proceeds to step S2.

[0071] In step S2, an approximation model is generated for the area (designated area) within the designated section divided in step S1. Specifically, for each designated area, an approximation model (vector Ea[X 1 ]・・・[X L ]) is generated. Then, the process proceeds to step S3.

[0072] In step S3, it is determined whether the approximation model of the specified region generated in step S2 satisfies all-point constraints. Constraints include whether the approximation error of all points is within a tolerance, or whether the number of points whose approximation error is not within the tolerance is within a tolerance. If this determination is YES, optimal division of the axis-dependent data has been performed, and the optimal post-division axis-dependent data has been obtained, so this process ends. On the other hand, if this determination is NO, the process proceeds to step S4.

[0073] In step S4, n is set to an initial value of 1. Here, the value of n represents each axis, and for example, if the axis configuration is two axes, an X axis and a Y axis, n represents the X axis when n is 1, and n represents the Y axis when n is 2. Then, the process proceeds to step S5.

[0074] In step S5, it is determined whether n is greater than L, where L is the number of axes in the specified section of the axis-dependent data. For example, if there are two axes, the X axis and the Y axis, L is 2. If this determination is YES, the process proceeds to step S11. On the other hand, if this determination is NO, the process proceeds to step S6.

[0075] The processing of steps S6 to S10 is performed when n is equal to or less than L, and when there are two axes, the X axis and the Y axis, if n is 1, it means processing for the X axis, and if n is 2, it means processing for the Y axis.

[0076] In step S6, the axis-dependent data is extracted from the designated section in step S1 to X n Each axis data (each axis error) is divided into a specified section narrowed by one row in the positive direction. n A new section division is performed by reducing each axis data (each axis error) by one column in the positive direction. n The positive direction means the positive direction of the X axis when n is 1. The result is output as optimization result nP. When n is 1, optimization result 1P is output. Then, the process proceeds to step S7.

[0077] In step S7, the optimization result nP obtained in step S6 is converted into X n Expand each axis data (each axis error) by one column in the positive direction. The result is the optimization result nP + When n is 1, the optimization result is 1P.+ Since n can range from 1 to L, this step outputs the optimization results 1P to LP. + After that, the process proceeds to step S8.

[0078] In step S8, the axis-dependent data is extracted from the designated section in step S1 to X n Each axis data (each axis error) is divided into a specified section narrowed by one row in the negative direction. n A new section division is performed by reducing each axis data (each axis error) by one column in the negative direction. n The negative direction means the negative direction of the X axis when n is 1. The result is output as optimization result nM. When n is 1, optimization result 1M is output. Then, the process proceeds to step S9.

[0079] In step S9, the optimization result nM obtained in step S8 is converted into X n The data for each axis (error for each axis) is expanded by one column in the negative direction. The result is called the optimization result nM + When n is 1, the optimization result is 1M + Since n can range from 1 to L, this step outputs the optimization results 1M to LM. + Then, the process proceeds to step S10.

[0080] In step S10, n is incremented by 1. Then, the process returns to step S5.

[0081] Step S11 is a process when n is greater than L, and when there are two axes, the X axis and the Y axis, after the processes for the X axis and the Y axis are completed in steps S6 to S10. In step S11, the optimization results 1P to LP obtained in steps S6 to S10 are + , 1M-LM + Among these, the one with the smallest number of unapproximable points is output. That is, the optimization results 1P to LP + , 1M-LM + For each of the above, the number of unapproximable points where the approximation model generated in step S3 does not satisfy the above constraints is calculated, and the model with the smallest number of unapproximable points and the best approximation and most compressed data is output, and this process ends.

[0082] Here, the procedure for expanding one column of each axis data (each axis error) in the positive X direction in step S7 described above will be explained in more detail with reference to the specific example shown in Fig. 18 and Fig. 19. Fig. 18 is a diagram showing the divided sections before being expanded by one column of each axis data (each axis error) in the positive X direction. Fig. 19 is a diagram showing the divided sections after being expanded by one column of each axis data (each axis error) in the positive X direction. In Fig. 18 and Fig. 19, different numbers are assigned to each divided section.

[0083] As shown in FIG. 18, first, sections 1 to 5 are extracted as continuous sections appearing at the end in the positive X direction of the section before expansion by one column of each axis data (each axis error).

[0084] Next, each of the extracted sections 1 to 5 is expanded by one row of axis data (axis error) to generate expanded sections 1 to 5 as shown in FIG.

[0085] Next, for each of the expanded sections 1 to 5, it is confirmed whether the above-mentioned approximation model satisfies the above-mentioned constraints. If the constraints are satisfied, the expanded section is designated as a new section. In the example shown in Figure 19, expanded sections 1 and 4 satisfy the constraints, so they are designated as new sections.

[0086] If the constraints are not satisfied, the expanded section is set as an undetermined section. In the example shown in Fig. 19, expanded section 2 does not satisfy the constraints and is therefore set as an undetermined section.

[0087] Furthermore, when an undetermined section exceeds a certain area (e.g., 2 × 2), it is checked whether the above-described approximation model satisfies the above-described constraints. In the example shown in Fig. 19, this determination is made because the expanded section 3 exceeds a certain area (e.g., 2 × 2). Until then, the expanded section is also considered an undetermined section.

[0088] In addition, if the section before expansion is an NG section, that is, a section that does not satisfy the constraints and cannot be approximated, the expanded section is set as an undetermined section. In the example shown in Figure 19, expanded section 5 corresponds to this, so it is set as an undetermined section.

[0089] As a result, there may be intervals that remain undetermined until the end. Such intervals may ultimately be determined as NG intervals, i.e., intervals that do not satisfy the constraints and cannot be approximated.

[0090] According to this embodiment, the following effects are achieved.

[0091] The data encoding device 3 according to this embodiment is provided with a dynamic programming processing unit 33 that executes dynamic programming to generate optimal post-division axis-dependent data. This dynamic programming processing unit 33 is also comprised of an optimality evaluation unit 34 that evaluates the optimality of the encoded axis-dependent data, a partial division unit 35 that divides the axis-dependent data into multiple parts to generate partial axis-dependent data, and an optimization result combination unit 36 ​​that combines the optimization results of the partial axis-dependent data to generate optimal post-division axis-dependent data. This makes it possible to divide the axis-dependent data into optimal post-division axis-dependent data that can be compressed with the smallest number of data items. This makes it possible to generate optimal regions that can be regarded as linear combinations of the axis data (axis errors). By performing model approximation encoding of a linear combination model for each region, it is possible to further compress axis-dependent data that was previously difficult to compress.

[0092] [Fourth Embodiment] Fig. 20 is a diagram showing the configuration of a data encoding device 4 according to the fourth embodiment. As shown in Fig. 20, the data encoding device 4 according to the fourth embodiment differs from the model approximation encoding unit 11 of the first embodiment in that a model approximation encoding unit 41 includes an approximation error calculation unit 42. The data encoding device 4 according to the fourth embodiment also differs from the data encoding device 1 of the first embodiment in that it includes an approximation error encoding unit 43. Other than these differences, the configuration is the same as that of the first embodiment.

[0093] The approximation error calculation unit 42 calculates the amount of approximation error. The approximation error calculation unit 42 of this embodiment is provided in the model approximation encoding unit 41, and calculates the amount of approximation error when model approximation encoding the axis-dependent data. This approximation error amount will be described in detail later.

[0094] The approximation error coding unit 43 encodes the approximation error amount to generate an encoded approximation error amount. The approximation error amount calculated by the approximation error calculation unit 42 often has a bias in the frequency of occurrence of values ​​in the data as described below, and therefore has a small information entropy. Therefore, the data can be compressed by encoding using conventionally known entropy coding. Alternatively, the data can be compressed by encoding using model approximation coding of a linear combination model executed by the model approximation coding unit 41.

[0095] The approximate error amount and the encoding of the approximate error amount by the approximate error encoding unit 43 will be described in more detail below.

[0096] As described in the first embodiment, the approximation model (vector Ea[X 1 ]・・・[X L ]), the approximation error (vector γ[X 1 ]・・・[X L ]) is expressed by the following formula (10).

[0097]

[0098] In equation (10), the vector E[X 1 ]・・・[X L ] is the original error amount before model approximation, and the vector Ea[X 1 ]・・・[X L ] is the amount of error after model approximation. From this formula (10), the difference between these is the approximation error (vector γ[X 1 ]・・・[X L ]).

[0099] Here, the approximate model (vector Ea[X 1 ]・・・[X L ]) is the maximum likelihood estimation model, so the approximation error (vector γ[X 1 ]・・・[X L]) has been minimized and is now very small. Here, FIG. 21 is a diagram showing the approximation error (vector γ[X][Y]). As shown in FIG. 21, the approximation error (vector γ[X][Y]) is biased towards small values, and the frequency distribution of these values ​​is also biased. Therefore, the approximation error (vector γ[X 1 ]・・・[X L ]) can be encoded to compress the data.

[0100] Approximation error (vector γ[X 1 ]・・・[X L For example, the approximation error (vector γ[X 1 ]・・・[X L ]) may be coded, and the approximation error (vector γ[X 1 ]・・・[X L ]) may be encoded.

[0101] Approximation model (vector Ea [X 1 ]・・・[X L ]) alone, the original error amount (vector E[X 1 ]・・・[X L ]), the approximation error (vector γ[X 1 ]・・・[X L ]), and the approximation error (vector γ[X 1 ]・・・[X L ]) exists for each axis data point, so if it is stored as it is, data compression will not be possible. 1 ]・・・[X L ]) and encode the approximate model (vector Ea[X 1 ]・・・[X L ]) to obtain the original error vector E[X 1 ]・・・[X L ]) can be compressed and reproduced without any loss, and the total data size can also be reduced.

[0102] According to this embodiment, the following effects are achieved.

[0103] In the data encoding device 4 according to this embodiment, the model approximation encoding unit 41 is provided with an approximation error calculation unit 42 that calculates an approximation error amount. The data encoding device 4 is also configured to further include an approximation error encoding unit 43 that encodes the approximation error amount to generate an encoded approximation error amount. As a result, according to this embodiment, it is possible to encode and compress axis-dependent data that was previously difficult to compress, and by encoding the approximation error amount, it is possible to further reduce the total data size while reproducing the original axis-dependent data such as the error amount without any loss.

[0104] [Fifth Embodiment] Fig. 22 is a diagram showing the configuration of a data encoding device 5 according to the fifth embodiment. As shown in Fig. 22, the data encoding device 5 according to the fifth embodiment differs from the data encoding device 4 according to the fourth embodiment in that it further includes an approximation error removal unit 53 having an error tolerance equal to or greater than a predetermined tolerance. It also differs from the approximation error encoding unit 43 according to the fourth embodiment in that an approximation error encoding unit 54 encodes an approximation error amount within a predetermined tolerance. Apart from these differences, the configuration is the same as that of the fourth embodiment.

[0105] The approximation error removal unit 53 removes approximation error amounts exceeding a predetermined tolerance from the approximation error amount, thereby generating an approximation error amount within the predetermined tolerance. Here, FIG. 23 is a diagram showing the approximation error (vector γ[X][Y]) including exceptional points larger than the predetermined tolerance. As shown in FIG. 23, the approximation error (vector γ[X][Y]), which is the difference between the original error amount before model approximation coding and the error amount after model approximation coding, may include exceptional points larger than the predetermined tolerance. In this embodiment, the approximation error removal unit 53 removes these exceptional points.

[0106] 24 shows exceptional points that have been removed and retained because the approximation error (vector γ[X][Y]) is greater than the predetermined tolerance. In this way, the approximation error removal unit 53 may separately retain exceptional points whose approximation errors are greater than the predetermined tolerance, i.e., approximation error amounts that exceed the predetermined tolerance, which have been removed from the approximation error amount. This allows axis-dependent data, such as the original error amount, to be compressed and reproduced without loss.

[0107] The predetermined tolerance may be, for example, an approximation error tolerance or a predetermined number of data points (allowable points) that exceed the approximation error tolerance. In this case, the approximation error elimination unit 53 excludes points that exceed a preset approximation error tolerance or a predetermined number of points that exceed the approximation error tolerance from the approximation error (vector γ[X][Y]). Note that the predetermined tolerance may include 0.

[0108] The approximation error encoding unit 54 encodes the approximation error amount within a predetermined tolerance to generate an encoded approximation error amount. 1 ]・・・[X L ]) is encoded after excluding points whose approximation error is greater than a predetermined tolerance.

[0109] The approximation error remaining after excluding points larger than a predetermined tolerance from the approximation error amount, i.e., the approximation error amount within the predetermined tolerance, becomes more biased and the information entropy becomes smaller, thereby enhancing the data compression effect by encoding. Furthermore, for example, by retaining only points whose approximation error is larger than the predetermined tolerance and not retaining other approximation errors, the data size after encoding can be further reduced. Even in this case, it is possible to ensure that the entire approximation error falls within the tolerance.

[0110] According to this embodiment, the following effects are achieved.

[0111] The data encoding device 5 according to this embodiment further includes an approximation error removal unit 53 that removes approximation errors exceeding a predetermined tolerance from the approximation error to generate an approximation error within a predetermined tolerance. The approximation error encoding unit 54 encodes approximation errors within the predetermined tolerance to generate an encoded approximation error. This configuration makes it possible to encode and compress axis-dependent data that was previously difficult to compress. Furthermore, by encoding the approximation error after removing approximation errors exceeding the predetermined tolerance, lossy compression within the allowable loss limit (predetermined tolerance, predetermined number of points) is also possible. In this case, data size can be reduced more than with lossless compression.

[0112] [Sixth Embodiment] Fig. 25 is a diagram showing the configuration of a data encoding device 6 according to the sixth embodiment. As shown in Fig. 25, the data encoding device 6 according to this embodiment differs from the data encoding device 1 according to the first embodiment in that it further includes a model approximation encoding data encoding unit 62. Apart from this difference, the configuration is the same as that of the first embodiment.

[0113] The model approximation encoding post-data encoding unit 62 encodes the axis-dependent data after the model approximation encoding. That is, in this embodiment, the model approximation encoding post-data encoding unit 62 executes re-encoding of the axis-dependent data after the model approximation encoding.

[0114] As described in the first embodiment, the approximation model (vector Ea[X 1 ]・・・[X L ]) when the error amount is expressed as vector Ea X l [X l ], the data can be further compressed by performing encoding on each of the vectors Ea X l [X l ] represents the error of each axis, so the approximation model (vector Ea[X 1 ]・・・[X L]), the model approximation coding post-data coding unit 62 performs coding by entropy coding, such as the well-known Huffman code.

[0115] According to this embodiment, the following effects are achieved.

[0116] The data encoding device 6 according to this embodiment is further provided with a model approximation encoding data encoding unit 62 that encodes the post-encoding axis-dependent data. As a result, according to this embodiment, the post-encoding axis-dependent data is further encoded by the model approximation encoding data encoding unit 62, thereby making it possible to further reduce the data size.

[0117] [Seventh Embodiment] Fig. 26 is a diagram showing the configuration of a data encoding device 7 according to a seventh embodiment. As shown in Fig. 26, the data encoding device 7 according to this embodiment differs from the data encoding device 3 according to the third embodiment in that it includes a learning result acquisition unit that acquires reinforcement learning results from a machine learning device 9 instead of dynamic programming, and divides axis-dependent data into sections using the learning results. Other than this difference, the configuration is the same as that of the third embodiment.

[0118] The machine learning device 9 performs reinforcement learning for optimal division processing of axis-dependent data. In reinforcement learning by the machine learning device 9 of this embodiment, the machine learning device 9 as an agent acquires axis-dependent data such as the amount of error of an industrial machine as the state of the environment, and selects certain post-division axis-dependent data as an action, causing the environment to change based on the action. In response to this change in the environment, the number of unapproximable points and the amount of post-approximation data obtained by model approximation encoding the post-division axis-dependent data are obtained as judgment data. Some kind of reward is then given according to the obtained judgment data, and the machine learning device 9 as an agent learns optimal post-division axis-dependent data for selecting better actions, i.e., for decision-making. The machine learning device 9 as an agent learns to select actions that maximize the total reward over the future.

[0119] Any learning method can be used for reinforcement learning. For example, Q-learning, which is a method of learning the value Q(s, a) for selecting action a in a certain environmental state s, can be used. In Q-learning, in a certain state s, the action a with the highest value Q(s, a) is selected as the optimal action from among the actions a that can be taken. However, when Q-learning is first started, the correct value Q(s, a) for the combination of state s and action a is completely unknown. Therefore, the machine learning device 9 as an agent selects various actions a in a certain state s and selects a better action based on the reward given for the action a at that time, thereby learning the correct value Q(s, a).

[0120] Furthermore, since it is desired to maximize the total reward that can be obtained in the future, the machine learning device 9 finally calculates Q(s, a)=E[Σ(γ t )r t Here, E[ ] represents the expected value, t is the time, γ is a parameter called the discount rate, which will be described later, and r t is the reward at time t, and Σ is the sum at time t. The expected value in this equation is the expected value when the state changes according to the optimal action. However, since it is unknown what the optimal action is in the Q-learning process, reinforcement learning is performed while searching by performing various actions. The update equation for such value Q(s, a) can be expressed, for example, as in the following equation (11).

[0121]

[0122] In the above formula (11), s t represents the state of the environment at time t, and a t represents the action at time t. t Therefore, the state is s t+1 It changes to r t+1 represents the reward obtained by the change in the state. t+1The Q value obtained by selecting the action a with the highest Q value known at that time under the above condition is multiplied by γ. Here, γ is a parameter that is called the discount rate and is in the range of 0<γ≦1. α is a learning coefficient that is in the range of 0<α≦1.

[0123] The above formula (11) is t As a result, the reward returned is t+1 Based on this, state s t Action in a t The value Q(s t , a t This update formula represents a method for updating the state s t Action in a t The value Q(s t , a t ) than Action a t Next state s t+1 The value of the best action in a Q(s t+1 , a) is larger, then Q(s t , a t ) is increased, and conversely, if it is small, Q(s t , a t ) is reduced. In other words, the value of an action in a certain state is brought closer to the value of the best action in the next state. However, the difference is determined by the discount rate γ and the reward r t+1 This varies depending on the state of affairs, but basically, the value of the best action in a certain state is propagated to the value of the action in the state immediately before it.

[0124] In Q-learning, there is a method of creating a table of Q(s, a) for all state-action pairs (s, a) and then performing learning. However, there are cases where the number of states is too large to calculate the Q(s, a) values ​​for all state-action pairs, and it takes a long time for Q-learning to converge.

[0125] Therefore, a well-known technology called DQN (Deep Q-Network) may be used. Specifically, the value function Q may be constructed using an appropriate neural network, the parameters of the neural network may be adjusted, and the value function Q may be approximated by the appropriate neural network to calculate the value Q(s, a). By using DQN, it is possible to shorten the time required for Q-learning to converge. Note that DQN is described in detail, for example, in the non-patent document "Human-level control through deep reinforcement learning" by Volodymyr Mnih1 [online], [searched January 17, 2017], and on the Internet (URL: http: / / files.davidqiu.com / research / nature14236.pdf).

[0126] 26 , the machine learning device 9 includes a state observation unit 91, a judgment data acquisition unit 92, a learning unit 93, and a decision-making unit 94. The learning unit 93 also includes a reward calculation unit 95 and a value function update unit 96.

[0127] The state observing unit 91 acquires axis-dependent data as state data from the data encoding device 7. The state observing unit 91 also outputs the acquired axis-dependent data to the learning unit 93.

[0128] The judgment data acquisition unit 92 acquires, as judgment data from the data encoding device 7, the number of unapproximable points and the approximated data amount obtained by model approximation encoding the divided axle-dependent data. The divided axle-dependent data is obtained by dividing the axle-dependent data into predetermined specified intervals in accordance with a predetermined division criterion stored in advance. The judgment data acquisition unit 92 also outputs the acquired number of unapproximable points and the approximated data amount to the learning unit 93.

[0129] The reward calculation unit 95 of the learning unit 93 calculates a reward based on the acquired axis-dependent data, the number of unapproximable approximation points, and the amount of post-approximation data. Specifically, the reward calculation unit 95 increases the reward when the number of unapproximable approximation points decreases, and decreases the reward when the number of unapproximable approximation points increases. Furthermore, the reward calculation unit 95 increases the reward when the amount of post-approximation data decreases, and decreases the reward when the amount of post-approximation data increases.

[0130] The value function update unit 96 of the learning unit 93 updates the stored value function by performing the above-mentioned Q-learning based on the axis-dependent data as state data, the number of unapproximable points and the approximated data amount obtained by model approximation encoding the divided axis-dependent data as judgment data, and the reward value. Note that the value function stored by the value function update unit 96 can be shared by, for example, multiple machine learning devices connected to each other so that they can communicate with each other.

[0131] The decision-making unit 94 acquires the updated value function from the value function update unit 96. Furthermore, the decision-making unit 94 outputs the optimal post-division axis-dependent data based on the acquired value function to the data encoding device 7 as a behavior output.

[0132] FIG. 27 is a flowchart showing the procedure of the learning process performed by the machine learning device 9.

[0133] In step S21, first, the machine learning device 9 outputs the divided axis-dependent data as an action output to the data encoding device 7. The divided axis-dependent data output in this step is obtained by dividing the axis-dependent data into predetermined specified sections according to a predetermined division criterion stored in advance. The data encoding device 7 performs model approximation encoding on this divided axis-dependent data to generate an approximation-impossible score and an approximation data amount. Then, the process proceeds to step S22.

[0134] In step S22, the machine learning device 9 acquires axis-dependent data as state data from the data encoding device 7. Then, the process proceeds to step S23.

[0135] In step S23, the machine learning device 9 acquires, as determination data, the number of unapproximated points and the amount of approximated data after model approximation encoding of the divided axis-dependent data generated in step S21 from the data encoding device 7. Then, the process proceeds to step S24.

[0136] In step S24, as a judgment condition 1, it is determined whether the number of unapproximable points has decreased when the data encoding device 7 performs model approximation encoding on the divided axis-dependent data. If the judgment is YES, the process proceeds to step S25, where the reward is increased. On the other hand, if the judgment is NO, the process proceeds to step S26, where the reward is decreased. Thereafter, the process proceeds to step S27.

[0137] In step S27, as a second judgment condition, it is determined whether the amount of data after model approximation coding has decreased when the data coding device 7 performs model approximation coding on the divided axis-dependent data. If the judgment is YES, the process proceeds to step S28, where the reward is increased. On the other hand, if the judgment is NO, the process proceeds to step S29, where the reward is decreased. Thereafter, the process proceeds to step S30.

[0138] In step S30, the value function stored in value function update unit 96 is updated. Specifically, value function update unit 96 updates the stored value function by performing the above-mentioned Q-learning based on the axis-dependent data as state data, the number of unapproximable points and the approximated data amount obtained by model approximation encoding the divided axis-dependent data as judgment data, and the reward value. Then, the process proceeds to step S31.

[0139] In step S31, it is determined whether or not the learning process should be continued. If the determination is YES, the process returns to step S21. On the other hand, if the determination is NO, the process ends.

[0140] According to this embodiment, the following effects are achieved.

[0141] In the data encoding device 7 according to this embodiment, the axis-dependent data dividing unit is configured to generate optimal post-division axis-dependent data based on the reinforcement learning results of the machine learning device 9. As a result, according to this embodiment, reinforcement learning by the machine learning device 9 can divide the axis-dependent data into optimal post-division axis-dependent data that can be compressed with the smallest number of data items, so that optimal multiple regions that can be regarded as linear combinations of the axis data (axis errors) can be generated, and model approximation encoding of a linear combination model is performed for each region, thereby making it possible to further compress axis-dependent data that was previously difficult to compress.

[0142] In each of the above-described embodiments, a data encoding program for causing each data encoding device to execute each process can also be provided. That is, as a first data encoding program, a data encoding program for causing a computer to execute a model approximation encoding step of encoding axis-dependent data based on a portion of axis-dependent data that depends on the coordinate values ​​of each axis of the industrial machine and a linear combination model that approximates the axis-dependent data as a linear combination of each axis data of the industrial machine, and generating axis-dependent data after encoding can be provided.

[0143] Furthermore, the first data encoding program can further include an axis-dependent data division step for dividing the axis-dependent data to generate a plurality of divided axis-dependent data, and a second data encoding program can be provided in which a model approximation encoding step generates encoded axis-dependent data based on the plurality of divided axis-dependent data and a linear combination model.

[0144] Furthermore, a third data encoding program can be provided in which the second data encoding program includes a dynamic programming processing step for generating optimal post-division axis-dependent data by executing dynamic programming, and causes a computer to execute an optimality evaluation step for evaluating the optimality of the encoded axis-dependent data, a partial division step for dividing the axis-dependent data into a plurality of parts to generate partial axis-dependent data, and an optimization result combination step for generating optimal post-division axis-dependent data by expanding and combining the partial axis-dependent data.

[0145] In addition, a fourth data encoding program can be provided for causing a computer to execute a step of generating optimal post-division axle-dependent data based on the reinforcement learning results of the machine learning device in the second data encoding program.

[0146] Furthermore, a fifth data encoding program can be provided for causing a computer to execute the first to fourth data encoding programs, an approximate error calculation step for calculating an approximate error amount, and a step for encoding the approximate error amount to generate an approximate error amount after encoding.

[0147] Furthermore, a sixth data encoding program can be provided for causing a computer to execute the following steps in the fifth data encoding program: generating an approximate error amount within a predetermined tolerance by removing an approximate error amount that exceeds a predetermined tolerance from the approximate error amount; and encoding the approximate error amount within the predetermined tolerance to generate an approximate error amount after encoding.

[0148] Furthermore, in the first to sixth data encoding programs, a seventh data encoding program can be provided for causing a computer to execute a step of encoding the axis-dependent data after encoding.

[0149] The present disclosure is not limited to the above-described embodiments, and includes modifications and improvements within the scope of achieving the object of the present disclosure.

[0150] In the above-described fourth embodiment, the model approximation encoding unit 41 is configured to include the approximation error calculation unit 42. However, for example, the model approximation encoded axis-dependent data encoded by the data encoding device 4 may be decoded by a data decoding device, and the amount of approximation error may be calculated from the difference between the decoded axis-dependent data and the original axis-dependent data.

[0151] In the fourth embodiment, the configuration including the approximation error calculation unit 42 is applied to the first embodiment, but the present invention is not limited to this and can also be applied to the second and third embodiments. Also, in the sixth embodiment, the configuration including the model approximation encoded data encoding unit 62 is applied to the first embodiment, but the present invention is not limited to this and can also be applied to other embodiments. In this way, the above embodiments can be combined as appropriate as long as they do not interfere with each other's functions.

[0152] In the seventh embodiment, the machine learning device 9 is provided separately from the data encoding device 7 , but the present invention is not limited to this and the machine learning device may be provided inside the data encoding device 7 .

[0153] 1, 2, 3, 4, 5, 6, 7 Data encoding device 9 Machine learning device 11, 21, 31, 41, 51, 61 Model approximation encoding unit 22, 32 Axis-dependent data division unit 33 Dynamic programming processing unit 34 Optimality evaluation unit after model approximation encoding (optimality evaluation unit) 35 Partial division unit of axis-dependent data (partial division unit) 36 Optimization result combination unit of partial axis-dependent data (optimization result combination unit) 42 Approximation error calculation unit 43 Approximation error encoding unit 52 Approximation error calculation unit 53 Approximation error removal unit exceeding predetermined tolerance (approximation error removal unit) 54 Approximation error encoding unit 62 Data encoding unit after model approximation encoding (post-encoding data encoding unit)

Claims

1. A data encoding device for encoding data, comprising: A data encoding device comprising: a model approximation encoding unit that generates axis-dependent data after encoding by encoding the axis-dependent data based on a portion of axis-dependent data that depends on the coordinate values ​​of each axis of an industrial machine and a linear combination model that approximates the axis-dependent data as a linear combination of each axis data of the industrial machine.

2. An axis-dependent data division unit divides the axis-dependent data to generate a plurality of divided axis-dependent data, The data encoding device according to claim 1 , wherein the model approximation encoding section generates the encoded axis-dependent data based on the plurality of divided axis-dependent data and the linear combination model.

3. The axis-dependent data division unit includes a dynamic programming processing unit that generates optimal post-division axis-dependent data by executing dynamic programming, The dynamic programming processing unit includes: an optimality evaluation unit for evaluating optimality of the encoded axis-dependent data; a partial division unit for dividing the axis-dependent data into a plurality of parts to generate partial axis-dependent data; 3. The data encoding device according to claim 2, further comprising: an optimization result combining unit that generates optimal post-division axis-dependent data by expanding and combining the partial axis-dependent data.

4. The data encoding device according to claim 2 , wherein the axis-dependent data division unit generates optimal post-division axis-dependent data based on a reinforcement learning result by a machine learning device.

5. the model approximation coding unit includes an approximation error calculation unit that calculates an approximation error amount; The data encoding device according to claim 1 , further comprising an approximate error encoding unit that encodes the approximate error amount to generate an encoded approximate error amount.

6. the data encoding device further includes an approximation error removing unit that removes an approximation error amount exceeding the predetermined tolerance from the approximation error amount to generate an approximation error amount within the predetermined tolerance; 6. The data encoding device according to claim 5, wherein the approximate error encoding section generates the encoded approximate error amount by encoding an approximate error amount within the predetermined tolerance.

7. The data encoding device according to claim 1 , further comprising a post-encoding data encoding unit that encodes the post-encoding axis-dependent data.

8. A data encoding program for encoding data, comprising: A data encoding program for causing a computer to execute a step of generating post-encoding axis-dependent data by encoding the axis-dependent data based on a portion of axis-dependent data that depends on the coordinate values ​​of each axis of an industrial machine and a linear combination model that approximates the axis-dependent data as a linear combination of each axis data of the industrial machine.