Interactive generative design with classified design variable sensitivity analysis and probabilistic visualization
By calculating and visualizing the sensitivity of classified design variables, the problems of high computing costs and complex design processes in the prior art are solved, and more efficient design optimization and resource utilization are achieved.
Patent Information
- Application Number
- CN202410743166.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-01-16
- Filing Date
- 2024-06-11
- Publication Date
- 2024-12-10
AI Technical Summary
The prior art is difficult to effectively calculate and optimize the structural problems with categorical design variables, especially in understanding the impact of design space and the selection of different design variables on the optimization process, resulting in high computational costs and complex design processes.
By receiving selection information of categorical design variables, calculating the sensitivity of the objective function, and visualizing it on the user interface, displaying the graphical depiction of each design component and its corresponding visual aspects, helping users understand the impact and relevance of different choices.
It improves the efficiency and computing efficiency of the design process, reduces the use of computing resources, enables users to quickly compare the impact of different design variable selections, and simplifies the design optimization process.
Smart Images

Figure CN119106465A_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims the benefit of U.S. Patent Provisional Application Serial No. 63 / 507,073, filed on June 8, 2023, entitled “TECHNIQUES FOR OPTIMIZED GENERATIVE DESIGN,” the subject matter of which is hereby incorporated by reference herein. Background of the Invention Technical Field
[0004] Various embodiments relate generally to generative design and design optimization, and more particularly to interactive generative design with categorical design variable sensitivity analysis and probabilistic visualization. Background Art
[0005] Generative design is an iterative design process that creates outputs with specified constraints to varying degrees. Designers or engineers input design goals into generative design software along with parameters such as performance or space requirements, materials, manufacturing methods, and cost constraints. In typical generative design or design optimization software, the algorithm solves the optimization problem by maximizing or minimizing a target mathematical equation, called an objective function, while satisfying one or more constraint functions, and outputs a single solution or a set of solutions found. A well-known limitation of this type of computer-user interaction is that the solutions themselves do not help the user understand the nature of the design space and how such solutions were generated. When the design variables are categorical choices ( For example , choosing one material type over another). Simply outputting the best choice found by the algorithm does not facilitate the user's understanding of why that choice was made. Categorical design variables are discontinuous in nature and their values belong to an unordered set of variable choices, whereas continuous design variables are free to take any value within their range. Examples of such variables in frame structures include beam cross-sectional profiles and materials. In real-world applications, only a limited number of cross-sectional profiles and material choices are available for designing a structure due to various constraints such as manufacturing processes and costs.
[0006] Existing optimization techniques applied to structural problems with categorical variables can be classified into gradient-free schemes and gradient-based schemes. Most of the methods developed for these problems utilize gradient-free optimizers, such as branch and bound, genetic algorithms (GAs), simulated annealing, and particle swarm optimization. It is well known that due to the combinatorial nature of problems with categorical design variables, the computational cost associated with exploring their design space (usually exponentially as the number of variables increases) is too complex to solve large-scale problems using gradient-free optimizers. Adopting gradient-based optimization techniques can be seen as a remedy for alleviating scalability issues. However, since categorical variables are discontinuous and more importantly, unordered, it is problematic to calculate the gradients of the objective function and constraint functions with respect to these variables. Previous solutions in this area apply some form of approximation to calculate the objective function gradient by converting categorical variables into continuous variables, which only makes sense if the variables are ordered. These methods also use rounding techniques to enforce the discontinuity of categorical variables. Another solution is to work with the attributes of the categorical variables. For example, instead of operating directly on the cross-sectional profile, its area can be considered as a design variable. However, this becomes troublesome when the categorical variables have multiple attributes that affect the optimization progress in a conflicting manner.
[0007] As previously stated, there is a need in the art for techniques for computing the gradient of an objective function with respect to categorical variables and for techniques for informing a user of the categorical design variables during the optimization process. Summary of the invention
[0008] In various embodiments of the present disclosure, a computer-implemented method for evaluating the impact of categorical design variables on a solution to a design problem is proposed, the computer-implemented method comprising: receiving information about selections of one or more categorical design variables associated with each of a plurality of design components of the design problem; determining respective sensitivities of an objective function to the selections of the one or more categorical design variables for each of the plurality of design components; determining respective visual aspects of each design component based on the respective sensitivities; displaying graphical depictions of the plurality of design components on a user interface, wherein each design component is displayed using a respective visual aspect; and displaying a legend on the user interface for explaining the respective visual aspect.
[0009] Other embodiments include, but are not limited to, one or more computer-readable media including instructions for performing one or more aspects of the disclosed techniques and a system for implementing one or more aspects of the disclosed techniques.
[0010] At least one technical advantage of the disclosed technology over the prior art is that, using the disclosed technology, gradient-based optimization techniques are used for design problems with both continuous design variables and categorical design variables. The disclosed technology further provides an improved method to view the impact and relevance of different categorical design variable selections on the design problem. The disclosed technology enables a user to quickly compare different selections for the same categorical design variable and the impact of those selections on the design solution without having to compare and contrast many different design solutions to infer the impact of these selections. As a result, the overall design process can be completed faster. In addition, the disclosed technology has higher computational efficiency and uses less computing resources than the prior art. These technical advantages provide one or more technical improvements over the prior art methods. BRIEF DESCRIPTION OF THE DRAWINGS
[0011] The manner in which the above-described features of the various embodiments can be understood in more detail in the more particular description of the inventive concept briefly described above, by reference to various embodiments, some of which are illustrated in the accompanying drawings. It should be noted, however, that the drawings illustrate only typical embodiments of the inventive concept and are therefore not to be considered limiting of the scope in any way, and that there are other equally effective embodiments.
[0012] Figure 1 is a block diagram of a system configured to implement one or more aspects of the present disclosure;
[0013] Figure 2 is a block diagram of a computing device according to various embodiments;
[0014] Figure 3 An example of a design problem with categorical design variables according to various embodiments is shown;
[0015] Figure 4 Another example of a design problem with categorical design variables according to various embodiments is shown;
[0016] Figure 5 A method for converting a Figure 4 Examples of design problems with visual user interfaces;
[0017] Figure 6 A method for converting a Figure 4 Another example of a design problem visualizing a user interface;
[0018] Figure 7 A method for converting a Figure 4 Another example of a design problem visualizing a user interface;
[0019] Figure 8A method for converting a Figure 4 Another example of a design problem visualizing a user interface;
[0020] Fig. 9 A flowchart presenting method steps for optimizing a design problem with categorical design variables according to various embodiments is presented; and
[0021] Fig.10 A flowchart of method steps for visualizing a design problem with categorical design variables according to various embodiments is presented;
[0022] Fig.11 A flow chart of method steps for bi-level optimization of a design problem with categorical design variables is presented in accordance with various embodiments. DETAILED DESCRIPTION
[0023] In the following description, numerous specific details are set forth to provide a more thorough understanding of various embodiments. However, it will be apparent to one skilled in the art that the inventive concept may be practiced without one or more of these specific details.
[0024] Figure 1 1 is a block diagram of a system configured to implement one or more aspects of the present disclosure. The diagram does not limit or in any way intend to limit the scope of the present disclosure. In various implementations, the system 100 can be an augmented reality, virtual reality, or mixed reality system or device, a personal computer, a video game console, a personal digital assistant, a mobile phone, a mobile device, or any other device suitable for practicing one or more embodiments of the present disclosure. In addition, in various embodiments, any combination of two or more systems 100 can be coupled together to practice one or more aspects of the present disclosure.
[0025] As shown, system 100 includes a central processing unit (CPU) 102 and a system memory 104 that communicate via a bus path, which may include a memory bridge 105. CPU 102 includes one or more processing cores, and in operation, CPU 102 is the main processor of system 100 that controls and coordinates the operation of other system components. System memory 104 stores software applications and data for use by CPU 102. CPU 102 runs software applications and optionally runs an operating system. Memory bridge 105 (which may be, for example, a north bridge chip) is connected to an I / O (input / output) bridge 107 via a bus or other communication path (e.g., a HyperTransport link). I / O bridge 107 (which may be, for example, a south bridge chip) receives user input from one or more user input devices 108 (e.g., a keyboard, mouse, joystick, digitizer, touch pad, touch screen, still or video camera, motion sensor, and / or microphone) and forwards the input to CPU 102 via memory bridge 105.
[0026] Display processor 112 is coupled to memory bridge 105 via a bus or other communication path (e.g., PCI Express, Accelerated Graphics Port, or HyperTransport link); in one embodiment, display processor 112 is a graphics subsystem including at least one graphics processing unit (GPU) and graphics memory. Graphics memory includes display memory (e.g., frame buffer) for storing pixel data for each pixel of an output image. Graphics memory can be integrated with the GPU in the same device, connected to the GPU as a separate device, and / or implemented within system memory 104.
[0027] The display processor 112 periodically delivers pixels to a display device 110 (e.g., a screen or a conventional CRT, plasma, OLED, SED, or LCD-based monitor or television). In addition, the display processor 112 may output pixels to a film recorder suitable for reproducing computer-generated images on film. The display processor 112 may provide analog or digital signals to the display device 110. In various embodiments, one or more of the various graphical user interfaces are displayed to one or more users via the display device 110, and the one or more users may input data into those various graphical user interfaces and receive visual output therefrom.
[0028] A system disk 114 is also connected to I / O bridge 107 and may be configured to store content as well as applications and data for use by CPU 102 and display processor 112. System disk 114 provides non-volatile storage for applications and data and may include fixed or removable disk drives, flash memory devices, and CD-ROM, DVD-ROM, Blu-ray, HD-DVD, or other magnetic, optical, or solid-state storage devices.
[0029] Switch 116 provides connections between I / O bridge 107 and other components such as network adapter 118 and various expansion cards 120 and 121. Network adapter 118 allows system 100 to communicate with other systems via an electronic communications network, and may include wired or wireless communications over local area networks and wide area networks such as the Internet.
[0030] Other components (not shown) including USB or other port connections, film recording devices, etc. may also be connected to I / O bridge 107. For example, an audio processor may be used to generate analog or digital audio output from instructions and / or data provided by CPU 102, system memory 104, or system disk 114. Figure 1 The communication paths interconnecting the various components in the system may be implemented using any suitable protocol, such as PCI (Peripheral Component Interconnect), PCI Express (PCI-E), AGP (Accelerated Graphics Port), HyperTransport, or any other bus or point-to-point communication protocol, and the connections between different devices may use different protocols as known in the art.
[0031] In one embodiment, the display processor 112 incorporates circuits optimized for graphics and video processing, including, for example, video output circuits, and constitutes a graphics processing unit (GPU). In another embodiment, the display processor 112 incorporates circuits optimized for general-purpose processing. In yet another embodiment, the display processor 112 may be integrated with one or more other system elements (such as the memory bridge 105, the CPU 102, and the I / O bridge 107) to form a system on a chip (SoC). In a further embodiment, the display processor 112 is omitted, and software executed by the CPU 102 performs the functions of the display processor 112.
[0032] Pixel data may be provided directly from the CPU 102 to the display processor 112. In some embodiments of the present disclosure, instructions and / or data representing a scene are provided to a rendering farm or a group of server computers similar to the system 100 via a network adapter 118 or a system disk 114. The rendering farm uses the provided instructions and / or data to generate one or more rendered images of the scene. These rendered images may be stored in a digital format on a computer-readable medium and optionally returned to the system 100 for display. Similarly, the stereoscopic image pairs processed by the display processor 112 may be output to other systems for display, stored in a system disk 114, or stored in a digital format on a computer-readable medium.
[0033] Alternatively, the CPU 102 provides data and / or instructions defining the desired output images to the display processor 112, and the display processor 112 generates pixel data for one or more output images from the data and / or instructions, including characterizing and / or adjusting the offset between the stereo image pair. The data and / or instructions defining the desired output images may be stored in the system memory 104 or in a graphics memory within the display processor 112. In one embodiment, the display processor 112 includes 3D rendering capabilities for generating pixel data for the output images based on instructions and data that define the geometry, lighting, shading, texturing, motion, and / or camera parameters of the scene. The display processor 112 may also include one or more programmable execution units capable of executing shader programs, tone mapping programs, etc.
[0034] In addition, in other embodiments, the CPU 102 or the display processor 112 may be replaced or supplemented by any technically feasible form of processing device configured to process data and execute program code. Such a processing device may be, for example, a central processing unit (CPU), a graphics processing unit (GPU), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), etc. In various embodiments, any of the operations and / or functions described herein may be performed by the CPU 102, the display processor 112, or one or more other processing devices, or any combination of these different processors.
[0035] The CPU 102, render farm, and / or display processor 112 may create one or more rendered images from the provided data and instructions using any surface or volume rendering technique known in the art, including rasterization, scanline rendering REYES or micropolygon rendering, ray casting, ray tracing, image-based rendering techniques, and / or combinations of these techniques with any other rendering or image processing techniques known in the art.
[0036] In other contemplated embodiments, system 100 may be a robot or robotic device and may include CPU 102 and / or other processing units or devices and system memory 104. In such embodiments, system 100 may or may not include Figure 1 The system memory 104 and / or other memory units or devices in the system 100 may include instructions that, when executed, cause a robot or robotic device represented by the system 100 to perform one or more operations, steps, tasks, etc.
[0037] It should be understood that the system shown herein is illustrative, and variations and modifications are possible. The connection topology can be modified as needed, including the number and arrangement of bridges. For example, in some embodiments, system memory 104 is directly connected to CPU 102 rather than through a bridge, and other devices communicate with system memory 104 via memory bridge 105 and CPU 102. In other alternative topologies, display processor 112 is connected to I / O bridge 107 or directly connected to CPU 102, rather than being connected to memory bridge 105. In other embodiments, I / O bridge 107 and memory bridge 105 can be integrated into a single chip. The specific components shown herein are optional; for example, any number of expansion cards or peripheral devices can be supported. In some embodiments, switch 116 is eliminated, and network adapter 118 and expansion cards 120, 121 are directly connected to I / O bridge 107.
[0038] Figure 1 1 is a block diagram of a computer system 100 configured to implement one or more aspects of the present invention. As shown, computer system 100 includes, but is not limited to, a central processing unit (CPU) 102 and a system memory 104, which is coupled to a parallel processing subsystem 112 via a memory bridge 105 and a communication path 113. Memory bridge 105 is further coupled to an I / O (input / output) bridge 107 via a communication path 106, and I / O bridge 107 is in turn coupled to a switch 116. Those skilled in the art will appreciate that computer system 100 may be any type of technically feasible computer system, including but not limited to a server machine, a server platform, a desktop, a laptop computer, or a handheld / mobile device.
[0039] In operation, I / O bridge 107 is configured to receive user input information from input device 108 (such as a keyboard or mouse) and forward the input information to CPU 102 for processing via communication path 106 and memory bridge 105. Switch 116 is configured to provide connections between I / O bridge 107 and other components of computer system 100 (such as network adapter 118 and various expansion cards 120 and 121).
[0040] Also as shown, I / O bridge 107 is coupled to system disk 114, which can be configured to store content as well as applications and data for use by CPU 102 and parallel processing subsystem 112. In general, system disk 114 provides non-volatile storage for applications and data, and can include fixed or removable disk drives, flash memory devices, and CD-ROM (disc read only memory), DVD-ROM (digital versatile disk-ROM), Blu-ray, HD-DVD (high definition DVD) or other magnetic, optical or solid state storage devices. Finally, although not explicitly shown, other components (such as universal serial bus or other port connections, optical disk drives, digital versatile disk drives, film recording devices, etc.) can also be connected to I / O bridge 107.
[0041] In various embodiments, memory bridge 105 may be a northbridge chip, and I / O bridge 107 may be a southbridge chip. Additionally, communication paths 106 and 113, as well as other communication paths within computer system 100, may be implemented using any technically suitable protocol, including but not limited to AGP (Accelerated Graphics Port), HyperTransport, or any other bus or point-to-point communication protocol known in the art.
[0042] In some embodiments, parallel processing subsystem 112 includes a graphics subsystem that delivers pixels to display device 110, which may be any conventional cathode ray tube, liquid crystal display, light emitting diode display, etc. In such embodiments, parallel processing subsystem 112 incorporates circuits optimized for graphics and video processing, including, for example, video output circuits. As described below in Figure 2 As described in more detail in , such circuitry may be incorporated into one or more parallel processing units (PPUs) included in parallel processing subsystem 112. In other embodiments, parallel processing subsystem 112 incorporates circuitry optimized for general processing and / or computational processing. Likewise, such circuitry may be incorporated into one or more PPUs included within parallel processing subsystem 112, which are configured to perform such general and / or computational operations. In yet other embodiments, one or more PPUs included within parallel processing subsystem 112 may be configured to perform graphics processing, general processing, and computational processing operations. System memory 104 includes at least one device driver 103, which is configured to manage processing operations of one or more PPUs within parallel processing subsystem 112.
[0043] In various embodiments, the parallel processing subsystem 112 may be coupled to Figure 1For example, parallel processing subsystem 112 may be integrated with CPU 102 and other connected circuits on a single chip to form a system on a chip (SoC).
[0044] It should be understood that the system shown herein is illustrative, and variations and modifications are possible. The connection topology, including the number and arrangement of bridges, the number of CPUs 102, and the number of parallel processing subsystems 112, may be modified as desired. For example, in some embodiments, system memory 104 may be connected to CPU 102 directly rather than through memory bridge 105, and other devices will communicate with system memory 104 via memory bridge 105 and CPU 102. In other alternative topologies, parallel processing subsystem 112 may be connected to I / O bridge 107 or directly to CPU 102 rather than being connected to memory bridge 105. In still other embodiments, I / O bridge 107 and memory bridge 105 may be integrated into a single chip rather than existing as one or more discrete devices. Finally, in some embodiments, there may be no memory bridge 105. Figure 1 For example, the switch 116 may be eliminated, and the network adapter 118 and expansion cards 120, 121 may be directly connected to the I / O bridge 107.
[0045] Figure 2 2 is a block diagram of a computing device according to various embodiments. As shown, computing device 200 includes, but is not limited to, memory 202, storage device 204, interconnect (bus) 206, one or more processors 208, input / output (I / O) device interface 210, and network interface 212. Memory 202 includes, but is not limited to, input data 218, optimizer 220, visualizer 222, and output data 224. As further shown, computing device 200 is coupled to (without limitation) I / O device 214 and network 216.
[0046] The computing device 200 may be a desktop computer, a laptop computer, a smart phone, a personal digital assistant (PDA), a tablet computer, a remote server, or any other type of computing device configured to receive input, process data, and optionally display images, and suitable for practicing one or more embodiments. In some embodiments, the computing device 200 corresponds to Figure 1 The computing device 200 described herein is illustrative, and any other technically feasible configurations are within the scope of the present disclosure.
[0047] Processor 208 includes any suitable processor implemented as a central processing unit (CPU), a graphics processing unit (GPU), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), an artificial intelligence (AI) accelerator, a multi-core processor, any other type of processor, or a combination of two or more processors of the same or different types. For example, processor 208 may include a CPU and a GPU configured to operate in conjunction with each other. In general, processor 208 may be any technically feasible hardware unit capable of processing data and / or executing software applications. In addition, in the context of the present disclosure, the computing elements shown in computing device 200 may correspond to a physical computing system (e.g., a system within a data center) or may be a virtual computing instance executed within a computing cloud.
[0048] The I / O device interface 210 enables the I / O devices 214 to communicate with the processor 208. The I / O device interface 210 generally includes logic for interpreting addresses generated by the processor 208 corresponding to the I / O devices 214. The I / O device interface 210 may also be configured to implement handshaking between the processor 208 and the I / O devices 214, and / or generate interrupts associated with the I / O devices 214. The I / O device interface 210 may be implemented as any technically feasible interface circuit or system.
[0049] In some embodiments, I / O devices 214 include devices capable of providing input, such as a keyboard, a mouse, a touch screen, etc., and devices capable of providing output, such as a display device. In addition, I / O devices 214 may include devices capable of receiving input and providing output, such as a touch screen, a universal serial bus (USB) port, etc. I / O devices 214 may be configured to receive various types of input from an end user (e.g., a designer) of computing device 200, and also provide various types of output to the end user of computing device 200, such as displayed digital images or digital video or text.
[0050] The network interface 212 serves as an interface between the computer and the network 216. The network interface 212 facilitates the transmission and reception of data. The network interface 212 includes, but is not limited to, hardware, software, or a combination of hardware and software. In some embodiments, the network interface 212 supports one or more communication protocols, such as Ethernet, Wi-Fi, Bluetooth, etc.
[0051] In some embodiments, network 216 comprises any technically feasible type of communications network that allows data to be exchanged between computing device 200 and an external entity or device (such as a web server or another networked computing device) via network interface 212. For example, network 216 may include a wide area network (WAN), a local area network (LAN), a wireless (Wi-Fi) network, and / or the Internet, among others.
[0052] The memory 202 includes a random access memory (RAM) module, a flash memory unit, or any other type of memory unit or a combination thereof. The processor 208, the I / O device interface 210, and the network interface 212 are configured to read data from the memory 202 and write data to the memory. The memory 202 includes various software programs that can be executed by the processor 208 and application data associated with the software programs, such as input data 218, an optimizer 220, a visualizer 222, and output data 224. The optimizer 220 solves the design problem with both continuous design variables and categorical design variables based on one or more evaluation criteria. Depending on the design problem, the optimizer considers the control physical quantity and / or system equations and any imposed constraints on the solution to the design problem. In each optimization step, the visualizer 222 displays the sensitivity and probability of each design variable within the solution. Then, the optimizer 220 saves the design results as output data 224.
[0053] The input data 218 includes, but is not limited to, an objective function J, one or more constraint functions g, a continuous design variable x and a boundary for the continuous design variable x, a categorical variable c and available choices for the categorical variable c, and a temperature parameter of a simulated annealing process that controls exploration and exploitation capabilities when solving a design problem. The optimizer 220 performs an optimization process after receiving the input data 218. The optimizer 220 optimizes the objective function J in Equation 1.
[0054]
[0055] In the equation, J is the scalar-valued objective function, A vector representing the optimization constraint function, indicates the residual vector resulting from applying numerical discretization to the control quantity expressed using a partial differential equation (PDE), A vector representing the state variables. is a vector of continuous design variables, and is the vector of categorical design variables. lb i andub i , i=1,…,n x is a continuous variable x i The lower and upper limits of N i , i=1,…,n c is a categorical variable c i The number of choices used. For each c i , i=1,…,n c The index of the choice is {1, ..., N i}.
[0056] Depending on the design problem being solved, J, g, and R can be linear or nonlinear functions with corresponding parameters. J, g, and R are all continuous and differentiable. Because the sensitivity of the categorical design variable c and is not differentiable, so the optimizer 220 reparameterizes the categorical design variable c and takes the probability of using the reparameterized categorical design variable c as the corresponding design variable. In other words, the optimizer 220 does not use the discrete value of the categorical design variable c, but converts the categorical design variable c into the corresponding continuous design variable. The optimizer 220 uses Equation 2 to reparameterize the optimization function using the probability of the categorical design variable c. Then, a sensitivity analysis is performed on the reparameterized optimization function.
[0057]
[0058] in A vector of unstandardized log probabilities for categorical variables. θ i,j The first index and the second index in the variable index i and the variable available choice j are respectively. For example, categorical design variable i, where N for categorical design variable i is used i The probability of each of the choices is given by Definition, θ i,j is calculated using Equation 3.
[0059]
[0060] where p i,j is the probability of choice j for categorical variable i. The unstandardized log probability θ i,j , i=1,…,n c , j = 1, ..., N i can be used as a design variable instead of the corresponding probability p i,j Once we find θ i,j The optimal value of can be calculated by using the Softmax function using equation 4 to calculate the corresponding optimal probability p i,j .
[0061]
[0062] To utilize a gradient-based optimizer, the optimizer 220 computes the sensitivities of the objective function and constraint functions with respect to θ and x ( For example , ). For all categorical variables, the optimizer 220 uses a sampling process to select a sample from each of the selections based on probability. The optimizer 220 then uses the selected samples to calculate the values of J and g. However, the sampling process may affect the differentiability of these functions. The optimizer 220 uses the Gumbel-Softmax method (GSM) to address the non-differentiability of the sampling technique. The GSM method allows differentiable samples to be selected from a categorical distribution.
[0063] The objective function J is not an explicit function of θ, but a continuous attribute (property) of the sample ( For example , selection). The samples are selected from the categorical distribution function characterized by θ. Once the samples are selected from the categorical distribution of θ, the value of J is calculated using the properties of the selected samples. The categorical distribution function is a discrete probability distribution that specifies the likelihood of a selection for a categorical design variable. For example, by applying Equation 4, the categorical distribution of θ is the vector p θ :={(softmax(θ))1,···,(softmax(θ)) N}. Then we can get the size of N from p θ Generate a one-hot encoded sample vector s where all sample vector entries are zero except for the index corresponding to the selected choice (whose entry is 1). The attributes of the selected choice are collected in vector a. Since J is a function of θ that traverses samples and attributes, J can be expressed as J(a(s(θ))). The sensitivity of J with respect to θ can be expressed using Equation 5. Each constraint function g i Similar functions are used for the sensitivities.
[0064]
[0065] The sample vector s is not differentiable with respect to θ. The optimizer 220 uses the GSM method to obtain a differentiable soft one-hot encoded sample vector according to Equation 6 It approximates the sample vector s and has the same distribution as the categorical distribution associated with θ ( For example , s~p θ ). Then, the optimizer 220 uses the sample vector To calculate J and g
[0066]
[0067] Equation 6 can also be expressed as Where G: = [G (1) , …, G (N) ] T.. For each class index i, the noise G(i) can be obtained by sampling the Gumbel distribution Gumbel(0,1) independently. To this end, the optimizer 220 selects a uniformly distributed random real number r and sets G(i) = -ln(ln(r)). The temperature parameter τ is a relaxation parameter, which is approximately With p θ At the beginning of the optimization procedure, the optimizer 220 sets τ to a high temperature (in a relative sense) and uses an annealing scheme to reduce the value of τ to a smaller non-zero value as the optimization proceeds. For example, the annealing scheme used to reduce τ can be exponential or logarithmic. Smaller values of τ result in samples generated by the GSM method that more closely match p θ distributed.
[0068] Soft one-hot encoded sample vector Includes multiple choices for categorical design variables. Sample vector Multiple choices in evaluating the objective function J and sensitivity The optimizer 220 converts the soft one-hot encoded sample vector into Convert to true one-hot encoded sample vector to solve this problem.
[0069]
[0070] because It is not differentiable with respect to θ, so we use Rather than As optimization proceeds, and Close to a true one-hot encoded vector and Then, the optimizer 220 uses Equation 8 to generate the value of J with respect to θ j ,=1,…,N’s gradient.
[0071]
[0072] in
[0073] During each optimization iteration, the optimizer 220 determines the sensitivity of J with respect to a where a is the sample vector with the highest unnormalized log probability Because the objective function J is a continuous design variable x that traverses u l (and the reparameterized categorical design variable θ m ), so J is a function of x l The gradient of is determined by Equation 9.
[0074]
[0075] in and are J about x l The optimizer 220 calculates the derivative of u according to the objective function J. and Using the discretized governing equation R(u(x,θ),x,θ)=0 and with respect to x l Differentiating R yields Equation 10.
[0076]
[0077] Since the right side of Equation 10 is zero, multiplying Equation 10 by any arbitrary vector whose magnitude satisfies the governing equation R also results in zero. The multiplier vector, which is often called the adjoint vector λ J Applied to Equation 10 and combined with Equation 9, we obtain Equation 11.
[0078]
[0079] Equation 11 and λ J The value of is irrelevant. J So using equation 12, we eliminate the This reduces the complexity of computing the gradient of the objective function J with respect to the continuous design variables x.
[0080]
[0081] Once λ is determined using Equation 12 J , Equation 11 is simplified to Equation 13.
[0082]
[0083] The optimizer 220 uses Equation 13 to calculate J with respect to the continuous design variables x l As shown, it does not depend on x l or any other continuous design variable in Equation 12. The optimizer 220 solves Equation 12 only once, rather than solving Equation 12 separately for each continuous design variable. Each constraint function g is determined using Equation 14. i ,i=1,...,n g The adjoint function of .
[0084]
[0085] Then, the optimizer 220 Each entry of is calculated in Equation 8 in is obtained by using the GSM method from θ m A sample vector drawn from the classification probability distribution represented by . Each entry of corresponds to a choice that can be characterized by some continuous attributes (properties). All choices considered for categorical variables are characterized by the same set of attributes. Assume Corresponding to N m The categorical variables are selected. k=1,...,N m The size of the continuous attribute containing each choice is n m The categorical variables are determined using Equation 15. The attribute matrix of .
[0086]
[0087] if is a hard one-hot encoded vector, then Equation 16 can be used to determine the attributes of the selected choice in this categorical variable.
[0088] Equation 16
[0089] In the right During the sensitivity analysis, the optimizer 220 uses Equation 16 to calculate where a is the sample vector with the highest unnormalized log probability The continuous attributes of .
[0090] Insert in the gradient of the objective function J with respect to the probability of the classification design variable We get equation 17, where is the gradient of the objective function J with respect to a.
[0091]
[0092] Since a is a continuous variable, we can calculate can be used to calculate the objective function J with respect to x l A similar approach to the adjoint method of the gradient is to calculate the PDE constrained design problem by using Equation 18 The optimizer 220 also uses a similar equation to calculate the gradient of the constraint function g with respect to a as
[0093]
[0094] When the optimizer 220 solves a design problem for a linear elastic application, such as the design of a frame structure, the optimizer 220 uses a variation of the objective function J in Equation 1. More specifically, the optimizer 220 uses the objective function J in Equation 19.
[0095]
[0096] in indicates the stiffness matrix of the structure, Specify an external load vector, and , which represents a vector of node displacements (state variables). Similar to Equation 1, Equation 19 can be reparameterized to replace the categorical design variable c with the probability θ. Similar to Equations 9 to 14 for PDE constrained design problems, the optimizer 220 uses the discretized framework structure control equations Ku-f=0 and l Differentiating the control function yields Equation 20.
[0097]
[0098] The optimizer 220 assumes that the external force vector f is simply x l is not a function of u. Since the right side of Equation 20 is zero, multiplying Equation 20 by any arbitrary vector whose magnitude satisfies the governing equation also results in zero. Denote the multiplier vector, which is called the adjoint variable vector. Applying Equation 20 to Equation 9 yields Equation 21.
[0099]
[0100] Regardless J Equation 21 holds true regardless of the value of . For example, we can choose λ J , so that using equation 22, the equation in equation 21 is eliminated
[0101]
[0102] Once λ is determined using Equation 22 J , Equation 21 will be simplified to Equation 23.
[0103]
[0104] Each constraint function g is determined using Equation 24 i , i=1,…,n g The adjoint function of .
[0105]
[0106] For the linear elastic design problem, the optimizer further uses Equation 25 to calculate the gradient of the objective function J with respect to a as The optimizer also calculates the gradient of the constraint function g with respect to a using a similar equation as
[0107]
[0108] The visualizer 222 displays the impact of each categorical design variable on the design via a user interface. The visualizer 222 displays a model of the design problem. Then, the visualizer 222 applies a color map to display the sensitivity of the categorical design variable selection for the design component to the objective function of the design solution. Each color in the color map corresponds to the sensitivity of different design components of the design solution to the selection for the categorical design variable c. The visualizer 222 further allows the user to select different design components in the design solution to obtain more information about the sensitivity of the design component to the categorical design variable selection. When the user selects a design component, such as by clicking on the design component, hovering the cursor over the design component, etc., the visualizer 222 then presents different options to the user to present the sensitivity and probability of the categorical design variable and / or the selection of the categorical design variable for the design component. For example, the visualizer 222 may provide a pop-up menu to the user, which provides a variety of options to choose from, such as tables, lists, pie charts, bar charts, and stacked bar charts, to show the impact of each variable / selection on the objective function of each component in the model of the design problem and the probability that each selection is selected for the categorical design variable. Once the user selects an option, the visualizer 222 then provides the requested information to the user using the selected option. For example, if the user selects the option to view the probabilities using a pie chart, a pop-up window or inset may be displayed showing a pie chart where the size of each wedge indicates the probability of the corresponding selection for the categorical design variable. The visualizer 222 may also provide user interface elements for sorting the displayed information.
[0109] Storage device 204 includes non-volatile storage devices for applications and data, and may include fixed or removable disk drives, flash memory devices, and CD-ROM, DVD-ROM, Blu-ray, HD-DVD, or other magnetic, optical, or solid-state storage devices. Input data 218, optimizer 220, and visualizer 222 may be stored in storage device 204 and loaded into memory 202 when executed.
[0110] Figure 3 An example of a design problem with categorical design variables is shown in accordance with various embodiments. Figure 3The design problem in corresponds to the design of a bridge structure 302. The bridge structure 302 is shown in both a side view and an isometric view. The bridge structure 302 consists of 258 truss elements (design components) modeled with Euler-Bernoulli beam elements. For example, the bridge structure 302 can span 14 meters along the X-axis, has a width of 1 meter, and a maximum height of 3.45 meters. All design components of the bridge structure 302 are made of steel with a Young's modulus of 210 GPa, a yield stress of 360 MPa, and a Poisson's ratio of 0.3. The design components located on the bridge deck of the bridge structure 302 are subjected to a uniform downward load (along the negative Z axis) of 1000 Newtons per meter. In addition, the entire bridge structure 302 is under gravity load. The bridge structure 302 is clamped at the first node to the fourth node.
[0111] The optimizer 220 considers various design problems, such as minimizing the total strain energy of the bridge structure 302 due to applied loads. The maximum stress in all elements of the bridge structure 302 should also be kept below the yield strength of each design component. In this design problem, the optimizer 220 considers a combination of continuous design variables and categorical design variables. The continuous variables include the orientations of the 258 beam components and the lengths of the beams that are not located on the deck of the bridge structure 302 (a total of 187 beams). Therefore, there are 445 continuous design variables. The categorical design variables include the cross-sectional beam selections 304 of the design components, which can be changed independently of each other ( For example , Figure 3 ). Each cross-sectional beam selection 304 has one or more physical properties, such as height, width, thickness, radius, etc., as indicated by the various t, h, w, and r parameters of the cross-sectional beam selection 304.
[0112] Figure 4 Another example of a design problem with categorical design variables is shown in accordance with various embodiments. Figure 4 The design problem in corresponds to the design of truss 402. As shown, truss 402 includes several design components ( For example , beam), which includes representative design components 404 (A), 404 (B) and 404 (C). Each design component 404 may have a combination of continuous categorical design variables and categorical design variables. Figure 4 As further shown in FIG. 1 , each of the design components 404 (A)-(C) has categorical design variables for beam types, as shown by categorical design variable selections 406 (A)-(C) for I-beams, T-beams, and hollow structural steel (HSS).
[0113] Figure 5 A method for converting a Figure 4 An example of a user interface 500 for visualizing the design problem. Figure 5, user interface 500 includes, but is not limited to, a graphical depiction 502 of truss 402 and a color bar 506. Graphical depiction 502 also includes a depiction of each design component, including representative design components 504(A) and 504(B). Visualizer 222 renders each design component 504 using a color or intensity corresponding to the sensitivity of the objective function of the design problem to the selection of the categorical design variables for the corresponding design component 504. For example, the sensitivity of the objective function to the selection of the categorical design variables for design component 504 can be calculated as the aggregate of the gradients of the objective function with respect to each categorical design variable selection for design component 504 ( For example , Euclidean norm). Color bar 506 shows a range of colors used to represent various sensitivities of design components 504. As shown, design components 504 for which the objective function has a higher sensitivity to the categorical design variable selection are shown in the colors at the upper end of color bar 506, while design components 504 for which the objective function has a lower sensitivity to the categorical design variable selection are shown in the colors at the lower end of color bar 506. For example, Figure 5 As shown in , the objective function is more sensitive to the selection of categorical design variables for design component 504 (A) than to the selection of categorical design variables for design component 504 (B).
[0114] Visualizer 222 allows a user to select different design components 504 in graphical depiction 502 in order to obtain more information about the sensitivity and / or probability of categorical design variable selections for design component 504. The user selects a design component 504 by clicking on the design component 504, hovering a cursor over the design component 504, etc. For example , 504(A) or 504(B)). Visualizer 222 then provides the user with a pop-up menu that provides a plurality of options from which the user can select to obtain more information about the sensitivity and / or probability of design component 504. For example, the options may include various tables, lists, pie charts, bar charts, stacked bar charts, etc. for displaying the probability of each categorical design choice appearing in the solution to the design problem or the sensitivity of the objective function to the categorical design variable choices.
[0115] Figure 6 A method for converting a Figure 4 Another example of a user interface 600 for visualizing a design problem. Figure 6As shown in FIG. 6 , user interface 600 includes, but is not limited to, a graphical depiction 502 of truss 402, a color bar 506, a callout link 602, and a pop-up window 604. Pop-up window 604 includes, but is not limited to, a bar chart 606, a range axis 608, a categorical design variable selection 610, and a design component label 612. Graphical depiction 502 also includes a depiction of each design component, including representative design components 504(A) and 504(B). Visualizer 222 uses the same Figure 5 504 (A). The color bar 506 shows the range of colors used to represent the various sensitivities of the design components 504. The visualizer 222 uses the annotation link 602 to indicate that the pop-up window 604 is associated with the design component 504 (A), as further identified in the design component label 612 ( For example , for the design component 504 (A) shown). The visualizer 222 uses a pop-up window 604 to display the overall impact of each categorical design variable selection 610 on the objective function. As shown, each categorical design variable selection 610 (HSS, T-beam, and I-beam) is shown using a different color. The length of each colored bar in the bar chart 606 and the position of the bar along the range axis 608 indicate the impact of the corresponding categorical design variable selection 610 on the objective function. For example, for the categorical design variable selection 610 corresponding to the selection of HSS, the shorter length of the corresponding colored bar in the bar chart 606 indicates that the selection of HSS has a smaller impact on the objective function. The position of the HSS bar in the negative side of the range axis 608 indicates that the selection of HSS reduces the objective function value. Similarly, for the categorical design variable selection 610 corresponding to the selection of T-beam, the medium length of the corresponding colored bar in the bar chart 606 indicates that the selection of T-beam has a medium impact on the objective function. The position of the T-beam in the positive side of the range axis 608 indicates that the selection of T-beam increases the objective function value. For categorical design variable selection 610 corresponding to selection of I-beam, the large length of the corresponding colored bar in bar chart 606 indicates that selection of I-beam has a significant impact on the objective function. The position of I-beam in the positive side of range axis 608 indicates that selection of I-beam increases the objective function value.
[0116] Figure 7 A method for converting a Figure 4 502, a color bar 506, a callout link 702, and a pop-up window 704. Pop-up window 704 includes, but is not limited to, a pie chart 706, a categorical design variable selection 710, and a design component label 712. Graphical depiction 502 also includes a depiction of each design component, including representative design components 504(A) and 504(B). Visualizer 222 uses the same Figure 5504 (A). The color bar 506 shows the range of colors used to represent the various sensitivities of the design components 504. The visualizer 222 uses the callout link 702 to indicate that the pop-up window 704 is associated with the design component 504 (A), as further identified in the design component label 712 ( For example , for the design component 504 (A) shown). The visualizer 222 uses a pop-up window 704 to display the overall impact of each categorical design variable selection 710 on the objective function. As shown, each categorical design variable selection 710 (HSS, T-beam, and I-beam) is shown using a different color. The size of each colored slice in the pie chart 706 indicates the impact of the corresponding categorical design variable selection 710 on the objective function. For example, for the categorical design variable selection 710 corresponding to the selection of HSS, the smaller size of the corresponding colored slice in the pie chart 706 indicates that the selection of HSS has a smaller impact on the objective function. Similarly, for the categorical design variable selection 710 corresponding to the selection of I-beam, the medium size of the corresponding colored slice in the pie chart 706 indicates that the selection of I-beam has a medium impact on the objective function. For the categorical design variable selection 710 corresponding to the selection of T-beam, the large size of the corresponding colored slice in the pie chart 706 indicates that the selection of T-beam has a significant impact on the objective function.
[0117] Figure 8 A method for converting a Figure 4 800 for visualizing a design problem. The user interface includes, but is not limited to, a graphical depiction 502, a color bar 506, a callout link 802, a pop-up window 804, a stacked bar chart 806, a range axis 808, a categorical design variable selection 810, and a design component label 812. The graphical depiction 502 also includes a depiction of each design component, including representative design components 504(A) and 504(B). The visualizer 222 uses the same Figure 5 504 (A). The color bar 506 shows the range of colors used to represent the various sensitivities of the design components 504. The visualizer 222 uses the annotation link 802 to indicate that the pop-up window 804 is associated with the design component 504 (A), as further identified in the design component label 812 ( For example, for the design component 504 (A) shown). The visualizer 222 uses a pop-up window 804 to display the likelihood of selecting each categorical design variable selection 810 in the optimal solution to the design problem. As shown, each categorical design variable selection 810 (HSS, T-beam, and I-beam) is shown using a different color. In the stacked bar chart 806, the length of each colored bar along the range axis 808 indicates the likelihood of selecting the corresponding categorical design variable selection 810 in the optimal solution. For example, for the categorical design variable selection 810 corresponding to the selection of I-beam, a shorter length of the corresponding colored bar in the stacked bar chart 806 indicates a lower likelihood of selecting the selection of I-beam in the optimal solution to the design problem. Similarly, for the categorical design variable selection 810 corresponding to the selection of T-beam, a medium length of the corresponding colored bar in the stacked bar chart 806 indicates a medium likelihood of selecting the selection of T-beam in the optimal solution to the design problem. For the categorical design variable selection 810 corresponding to the selection of HSS, a longer length of the corresponding colored bar in the stacked bar chart 806 indicates a higher likelihood of selecting the selection of HSS in the optimal solution to the design problem.
[0118] The visualizer 222 can also use a table to represent each categorical design variable selection ( For example , HSS, T-beam and I-beam) on the objective function. Figures 6 to 8 Similarly, visualizer 222 uses a labeled link to indicate that the pop-up window is associated with design component 504. Visualizer 222 uses the pop-up window to display a table with multiple rows. For example, each categorical design variable selection 610 can be shown in a different row, and the corresponding impact on the objective function can be shown in a column of the table. Visualizer 222 can also include the likelihood of selecting each of the selections for the categorical design variable in the optimal solution in another column of the table.
[0119] Similarly, the visualizer 222 may use a list to represent each categorical design variable selection ( For example , HSS, T-beams, and I-beams) on the objective function. Visualizer 222 may use a pop-up window to display a list of categorical design variables separated by commas or other delimiters or separators with the corresponding impact of the selections for the categorical design components on the objective function. Visualizer 222 may also include the probability of selecting each of the selections for the categorical design variables in the optimal solution for the list of each categorical design variable.
[0120] Fig. 9 A flowchart of method steps for optimizing a design problem with categorical design variables is presented according to various embodiments. Figures 1 to 8Method steps are described, but those skilled in the art will understand that any system configured to perform the method steps, in any order, is within the scope of the present disclosure.
[0121] As shown, the method 900 begins at step 902, where the optimizer 220 receives input data 218 for a design problem. For example, the optimizer 220 receives an objective function J, one or more constraint functions g, a continuous design variable x, bounds for the continuous design variable x, a categorical variable c, available choices for the categorical variable c, and a temperature parameter τ for a simulated annealing process.
[0122] At step 904, the optimizer 220 initializes the continuous design variables x and the categorical design variables c. Each continuous design variable x i is set to the design variable x i For each categorical design variable c i Each available choice is assigned with equal probability or alternatively random probability.
[0123] At step 906, the optimizer 220 generates a sample vector for each classification design variable using the GSM method. For each of the N categorical variables i, the optimizer 220 repeats the following three steps. First, the optimizer 220 generates independent and identically distributed samples or Gumbel noise G from the standard Gumbel distribution Gumbel (0, 1) (i) Next, optimizer 220 uses Equation 6 to calculate N for the categorical design variables. i Each of the choices computes a soft one-hot encoded sample vector The Gumbel noise in Equation 6 makes the sample vector The probability θ is continuous and differentiable with respect to the classification design variable. Due to the relaxation parameter τ in Equation 6, the resulting soft one-hot encoded sample vector does not follow the distribution of θ exactly. However, as the value of τ becomes smaller and smaller in the design iterations, the soft one-hot encoded sample vector becomes a true one-hot encoded vector. Third, the optimizer 220 uses Equation 7 from Compute the true one-hot encoded sample vector
[0124] At step 908, the optimizer 220 solves the control equations and calculates the objective function value and the constraint function value. For the PDE constrained design problem, the optimizer 220 solves the control equation R(u(x, θ), x, θ) = 0 to find the state variable u. The control equation R indicates the residual vector resulting from the numerical discretization applied to the control physical quantity PDE. By replacing the classification design variable probability θ with the sample vector calculated during step 906 The optimizer 220 numerically solves the discretized control equation R of Equation 2. After finding the state variable u, the optimizer 220 uses Equation 2, the state variable u, and the sample vector used instead of the classification design variable probability θ To calculate the objective function value J and the constraint function value g. For a linear elastic design problem, the optimizer 220 solves the discretized governing equation Ku = f to find the node displacement vector u. In the governing equation, K indicates the stiffness matrix of the structure, and f specifies the external load vector. By replacing the classification design variable probability θ with the sample vector calculated during step 906 The optimizer 220 numerically solves the discretized control equation Ku=f of the reparameterized version of Equation 19. After finding the node displacement vector u, the optimizer 220 uses the reparameterized version of Equation 19, the node displacement vector u, and the sample vector θ instead of the classification design variable probability θ. To calculate the objective function value J and the constraint function value g.
[0125] At step 910, the optimizer 220 calculates the gradients of the objective function and the constraint function corresponding to the continuous design variables. Based on the objective function J, the optimizer 220 numerically calculates the gradient of the objective function J with respect to the state variable u as The optimizer 220 also numerically converts the constraint function g into i , i=1,...,n g The gradient with respect to the state variable u is calculated as
[0126] For a PDE constrained design problem, the optimizer 220 computes the adjoint vector λ J , in order to eliminate the Then, the optimizer 220 takes the adjoint vector λ J The adjoint vector is calculated in a similar way Next, the optimizer 220 transforms the objective function J, the constraint function g, and the control function R with respect to the continuous variable x, based on the formulas of the objective function J, the constraint function g, and the control function R. l , l = 1, ..., n x The derivative of is calculated as and The optimizer 220 then uses Equation 11 to calculate the gradient of the objective function J with respect to the continuous design variable x as Finally, the optimizer 220 calculates the gradient of the constraint function g with respect to the continuous design variable x as
[0127] For a linear elastic design problem, the optimizer 220 calculates the adjoint vector λ J , to eliminate the Then, the optimizer 220 takes the adjoint vector λ J The adjoint vector is calculated in a similar way Next, the optimizer 220 transforms the objective function J, the constraint function g, the stiffness matrix K and the external load vector f about the continuous variable x based on the formula of the objective function J, the constraint function g, the stiffness matrix K and the external load vector f. l , l = 1, ..., n x The derivative of is calculated as and, The optimizer 220 then uses Equation 23 to calculate the gradient of the objective function J with respect to the continuous design variable x as Finally, the optimizer 220 calculates the gradient of the constraint function g with respect to the continuous design variable x as
[0128] At step 912, the optimizer 220 calculates the gradients of the objective function and the constraint function corresponding to the categorical design variables. For each categorical design variable, the optimizer 220 first forms the attribute matrix A using Equation 15 based on various continuous attributes selected for each categorical design variable.
[0129] For the PDE constrained design problem, the optimizer 220 respectively converts the objective function J, the constraint function g, and the control function R with respect to the selected class classification variable a based on the formulas of the objective function J, the constraint function g, and the control function R. l The derivative of the property is calculated as as well as The optimizer 220 also numerically transforms the categorical design variable attribute a with respect to the sample vector The gradient of is calculated as The optimizer 220 then uses Equation 18 using the companion vector λ calculated during step 908 J and λ g To transform the objective function J with respect to a l The gradient of is calculated as Then, the optimizer 220 uses Equation 17 to transform the objective function J with respect to the classification design variable probability θ j The gradient of is calculated as Using a similar method to constrain the gradient of the function g, it is then similarly calculated as And the constraint function g is related to the probability θ of the classification design variable j The gradient of is calculated as
[0130] For the linear elastic design problem, the optimizer 220 respectively transforms the objective function J, the constraint function g, and the control function R with respect to the selected class classification variable a based on the derivative formula of the objective function J, the constraint function g, the stiffness matrix K, and the external load vector f. l The derivative of the property is calculated as and The optimizer 220 also numerically transforms the categorical design variable attribute a with respect to the sample vector The gradient of is calculated as The optimizer 220 then uses Equation 25 with the companion vector λ calculated during step 908 J and λ g To transform the objective function J with respect to a l The gradient of is calculated as Then, the optimizer 220 uses Equation 17 to transform the objective function J with respect to the classification design variable probability θ j The gradient of is calculated as Using a similar method to constrain the gradient of the function g, it is then similarly calculated as And the constraint function g is related to the probability θ of the classification design variable j The gradient of is calculated as
[0131] At step 914, the visualizer 222 visualizes the impact of the categorical design variable selection on the objective function of the design problem. The visualizer 222 displays a user interface having a graphical depiction of the design problem that renders each of the design components with a color or intensity that corresponds to how sensitive the objective function of the design problem is to the selection for the categorical design variable. The user interface also provides the user with the option to learn more about the impact of the categorical design variable selection on the design problem and the objective function, such as Fig.10 Described in further detail in.
[0132] At step 916, the optimizer 220 updates the continuous design variables x and the categorical design variable probabilities θ using the gradients determined during step 912. The optimizer 220 uses the previous version of the continuous design variables x along with the gradients of the objective function J with respect to the continuous design variables x determined during step 910. and the gradient of the constraint function g with respect to the continuous design variable x The optimizer 220 uses the previous version of the categorical design variable probability θ together with the objective function J determined during step 912 with respect to the categorical design variable probability θ jGradient and constraint function g about the probability θ of classification design variable j Gradient To update the classification design variable probability θ.
[0133] At step 918, the optimizer 220 determines whether the optimization is complete. The optimizer 220 uses a termination criterion to determine whether the optimization is complete. For example, if the values of the categorical design variables and the continuous design variables do not change by more than a threshold amount in a particular number of iterations of steps 906 to 916, the optimizer determines that the termination criterion is met. If the termination criterion is not met, the optimizer 220 returns to step 906 to perform additional design iterations. If the termination criterion is met, the optimizer 220 ends the optimization.
[0134] Fig.10 A flowchart of method steps for visualizing a design problem with categorical design variables is presented according to various embodiments. Figures 1 to 8 Method steps are described, but those skilled in the art will appreciate that any system configured to perform the method steps in any order falls within the scope of the disclosure of step 912 .
[0135] As shown, step 912 begins at step 1002, where the visualizer 222 loads a graphical depiction of a design problem. For example, when the design problem is a linear elastic design problem, the design problem may be a framework structure as shown in 502. The design components of the design problem may have categorical variables and continuous variables.
[0136] At step 1004, the visualizer 222 receives the categorical design variable selection sensitivity and probability for each design component from the optimizer 220. The categorical design variable selection sensitivity corresponds to the gradient of the categorical design probability θ determined by the optimizer 220. For example, the optimizer may provide the categorical design variable selection sensitivity and probability after each design iteration.
[0137] At step 1006, visualizer 222 displays the sensitivity of the objective function to the categorical design variable selections for each design component 504. Visualizer 222 displays the sensitivity using a visual aspect used to display the respective design component 504. For example, the visual aspect may correspond to a color or intensity displayed for the respective design component 504. For example, the sensitivity of the objective function to the categorical design variable selections for design component 504 may be calculated as an aggregate of the gradients of the objective function with respect to each categorical design variable selection for design component 504 ( For example , Euclidean norm). The visualizer 222 also displays a legend for explaining the visual aspects of the display. For example, the legend can be a color bar 506 that indicates how the range of colors and / or intensities should be interpreted.
[0138] At step 1008, visualizer 222 receives from the user a selection of design component 504 in graphical depiction 502. For example, the user may select a design component 504 by clicking on the design component 504, hovering a cursor over the design component 504, etc. For example , 504(A) or 504(B)).
[0139] At step 1010, visualizer 222 displays a menu of options to the user to view sensitivity or probability information for the selected design component. For example, visualizer 222 may display a pop-up menu with various options, including various tables, lists, pie charts, bar charts, stacked bar charts, etc., for displaying the probability of each categorical design choice appearing in the solution to the design problem or the sensitivity of the objective function to the categorical design variable selection.
[0140] At step 1012, after the user selects an option from the menu, the visualizer 222 displays the sensitivity or probability information selected by the user. For example, the visualizer may add a pop-up window ( For example , pop-up window 604, 704, or 804) with information selected by the user, such as by using any of the pop-up windows 604, 704, or 804. In addition, the visualizer may also display an annotation link ( For example , labeling links 602, 702, or 802). Visualizer 222 may use pop-up windows to display the overall impact of each categorical design variable selection on the objective function, or to display the likelihood of selecting each categorical design variable selection in the best solution to the design problem. The pop-up window may display sensitivity or probability using a table, list, pie chart, bar chart, stacked bar chart, etc. Although not shown, as the user makes additional selections for design components and / or information to be displayed, steps 1008, 1010, and 1012 may be repeated to replace previously displayed pop-up windows or to add additional pop-up windows.
[0141] At optional step 1014, visualizer 222 allows the user to export the displayed design component information in a textual or visual format. For example, the user can export a graphically rendered color map corresponding to the impact on the objective function or the likelihood of selecting each categorical design variable in the best solution to the design problem as an image file, such as a .PNG file, a .JPG file, etc. Visualizer 222 can also export sensitivity and / or probability information for categorical design variable selections in various textual or graphical forms.
[0142] Fig.11 A flowchart of method steps for performing a bi-level optimization on a design problem with categorical design variables is presented according to various embodiments. Figures 1 to 8Method steps are described, but those skilled in the art will understand that any system configured to perform the method steps, in any order, is within the scope of the present disclosure.
[0143] As shown, the method 1100 begins at step 902, where the optimizer 220 receives input data 218 for a design problem. For example, the optimizer 220 receives an objective function J, one or more constraint functions g, a continuous design variable x, bounds for the continuous design variable x, a categorical variable c, available choices for the categorical variable c, and a temperature parameter τ for a simulated annealing process.
[0144] At step 904, the optimizer 220 initializes the continuous design variables x and the categorical design variables c. Each continuous design variable x i is set to the design variable x i For each categorical design variable c i Each available choice is assigned with equal probability or alternatively random probability.
[0145] At step 1102, the optimizer 220 calculates the gradient of the design problem with respect to the probability of the categorical design variables. The optimizer 220 performs step 1102 using steps consistent with steps 906, 908, and 912.
[0146] At step 1104, the optimizer 220 updates the classification design variable probability θ using the calculated gradient determined during step 1102. The optimizer 220 uses the previous version of the classification design variable probability θ along with the objective function J determined during step 1102 with respect to the classification design variable probability θ. j Gradient and constraint function g about the probability θ of classification design variable j Gradient To update the classification design variable probability θ.
[0147] At step 1106, the optimizer 220 determines whether the optimization of the classification design variable probabilities is complete. The optimizer 220 uses a termination criterion to determine whether the optimization is complete. For example, if the value of the classification design variable does not change by more than a threshold amount in a certain number of design iterations of steps 1102 and 1104, the optimizer 220 determines that the termination criterion is met, and the optimizer 220 proceeds to step 1108 to update the classification design variable sample vector. If the termination criterion is not met, the optimizer 220 returns to step 1102 to repeat another iteration to further update the classification design variable probabilities.
[0148] At step 1108, the optimizer 220 updates the classification design variable sample vector. The optimizer 220 updates the soft one-hot encoded sample vector using the classification design variable probability θ calculated during step 1106 using Equation 6 Then, the optimizer 220 uses Equation 7 to update the true one-hot encoded sample vector
[0149] At step 1110 , the optimizer 220 calculates the gradient of the design problem with respect to the continuous design variables. The optimizer 220 performs step 1110 using steps consistent with steps 908 and 910 .
[0150] At step 1112, the optimizer 220 updates the continuous design variable using the calculated gradient. The optimizer 220 updates the continuous design variable x using the gradient determined during step 1110. The optimizer 220 uses the previous version of the continuous design variable x along with the gradient of the objective function J with respect to the continuous design variable x determined during step 1110. and the gradient of the constraint function g with respect to the continuous design variable x To update the continuous design variable x.
[0151] At step 1114, the optimizer 220 determines whether the optimization with respect to the continuous design variables is complete. The optimizer 220 uses a termination criterion to determine whether the optimization is complete. For example, if the value of the continuous design variable does not change by more than a threshold amount in a particular number of iterations of steps 1102 to 1114, the optimizer determines that the termination criterion is met and the optimizer 220 stops. If the termination criterion is not met, the optimizer 220 returns to step 1102 to perform further design iterations.
[0152] although Fig.11 1106 and 1114. Although not shown in FIG. 1107 , method 1100 may also include a step for visualizing the impact of the classification design selection on the objective function, which is similar to step 914. For example, this visualization step may occur after step 1104 or between steps 1106 and 1114.
[0153] In summary, techniques for visualizing sensitivities and probabilities in a design problem involving categorical design variables are described. The techniques include receiving sensitivities and probabilities for categorical design variable selections generated during an optimization process. An optimizer calculates the sensitivity of an objective function with respect to each categorical design variable selection for each design component of the design problem. The sensitivities are visualized by displaying a graphical depiction of the design components, wherein a visual aspect of each design component is determined based on the sensitivity of the objective function to the selection of the categorical design variables for the design component. A legend for explaining the visual aspects is also displayed.
[0154] In some embodiments, a technique for performing optimization on a design problem involving mixed design variables includes initializing values of categorical design variable probabilities of the design problem and values of continuous design variables of the design problem. Then, a design iteration is performed by generating a sample vector for each of the categorical design variables based on the categorical design variable probabilities. The governing equations of the design problem are solved, and the values of one or more constraint functions and an objective function of the design problem are calculated. The gradients of the constraint functions and the objective function with respect to the continuous design variables and the categorical design variable probabilities are then calculated, and the gradients are then used to update the values of the continuous design variables and the categorical design variable probabilities. The design iteration is repeated until a termination criterion for the optimization is met.
[0155] In some embodiments, these techniques include a two-level optimization technique for performing optimization on a design problem involving mixed design variables, including initializing the values of the categorical design variable probabilities of the design problem and the values of the continuous design variables of the design problem. Then, a design iteration is performed by performing one or more iterations to update the categorical design variable probabilities. Each iteration of updating the categorical design variable probabilities includes generating a sample vector for each of the categorical design variables based on the categorical design variable probabilities, calculating the gradient of one or more constraint functions and the objective function with respect to the categorical design variable probabilities, and then updating the values of the categorical design variable probabilities. After completing one or more iterations of updating the categorical design variable probabilities, the sample vector is updated based on the updated categorical design variable probabilities. The gradients of the constraint functions and the objective function with respect to the continuous design variables are calculated, and then the gradients are used to update the values of the continuous design variables. The design iteration is repeated until the termination criteria of the optimization are met.
[0156] At least one technical advantage of the disclosed technology over the prior art is that, using the disclosed technology, gradient-based optimization techniques are used for design problems with both continuous design variables and categorical design variables. The disclosed technology further provides an improved method to view the impact and relevance of different categorical design variable selections on the design problem. The disclosed technology enables a user to quickly compare different selections for the same categorical design variable and the impact of those selections on the design solution without having to compare and contrast many different design solutions to infer the impact of these selections. As a result, the overall design process can be completed faster. In addition, the disclosed technology has higher computational efficiency and uses less computing resources than the prior art. These technical advantages provide one or more technical improvements over the prior art methods.
[0157] 1. In some embodiments, a computer-implemented method for evaluating the impact of categorical design variables on a solution to a design problem includes: receiving information about selections of one or more categorical design variables associated with each of a plurality of design components of a design problem; determining respective sensitivities of an objective function to the selections of the one or more categorical design variables for each of the plurality of design components; determining respective visual aspects of each design component based on the respective sensitivities; displaying a graphical depiction of the plurality of design components on a user interface, wherein each design component is displayed using the respective visual aspect; and displaying a legend on the user interface for explaining the respective visual aspect.
[0158] 2. The computer-implemented method of clause 1, wherein the corresponding visual aspect of a first design member is a color displayed by the first design member.
[0159] 3. The computer-implemented method of clause 1 or 2, wherein the corresponding visual aspect of a first design component is an intensity displayed by the first design component.
[0160] 4. The computer-implemented method of any of clauses 1 to 3, wherein determining the respective sensitivities of a first design component comprises computing an aggregation of the gradients of the objective function with respect to each of the selections for the one or more categorical design variables.
[0161] 5. A computer-implemented method as described in any of clauses 1 to 4, further comprising: receiving a selection of a first design component from the plurality of design components from a user; and displaying on the user interface an option for viewing the information about the selection of the one or more classification design variables for the first design component.
[0162] 6. The computer-implemented method of any of clauses 1 to 5, wherein the user makes the selection by clicking on the first design member or hovering a cursor over the first design member.
[0163] 7. A computer-implemented method as described in any of clauses 1 to 6, wherein the options include reviewing one or more of: the impact of each of the selections for a first classification design variable among the one or more classification design variables on the objective function, or the likelihood of each of the selections for the first classification design variable being selected for a solution to the design problem.
[0164] 8. The computer-implemented method of any of clauses 1 to 7, wherein the options include one or more of: viewing the information using a table, a list, a pie chart, a bar chart, or a stacked bar chart.
[0165] 9. The computer-implemented method of any of clauses 1 to 8, wherein the option for viewing the information is displayed in a pop-up menu.
[0166] 10. The computer-implemented method of any one of clauses 1 to 9, further comprising: receiving a selection of a first option among the options from the user; and displaying the information based on the first option in a pop-up window on the user interface.
[0167] 11. The computer-implemented method of any of clauses 1 to 10, further comprising displaying an annotation link between the first design component and the pop-up window.
[0168] 12. A computer-implemented method as described in any of clauses 1 to 11, wherein the pop-up window includes one or more of the following: a design component label, a table, a list, a pie chart, a bar chart, a stacked bar chart, or a list of the selections for the first categorical design variable of the one or more categorical design variables.
[0169] 13. The computer-implemented method of any of clauses 1 to 12, wherein each design component corresponds to a truss element in the physical structure.
[0170] 14. In some embodiments, one or more non-transitory computer-readable media store instructions that, when executed by one or more processors, cause the one or more processors to perform the following steps: receiving information about selections of one or more categorical design variables associated with each of a plurality of design components for a design problem; determining a respective sensitivity of an objective function to the selections of the one or more categorical design variables for each of the plurality of design components; determining a respective visual aspect for each design component based on the respective sensitivities; displaying a graphical depiction of the plurality of design components on a user interface, wherein each design component is displayed using the respective visual aspect; and displaying a legend on the user interface for explaining the respective visual aspect.
[0171] 15. The one or more non-transitory computer-readable media of clause 14, wherein the corresponding visual aspect of the first design member is a color or an intensity displayed by the first design member.
[0172] 16. One or more non-transitory computer-readable media as described in any of clauses 14 or 15, wherein determining the respective sensitivities of the first design component comprises computing an aggregate of the gradients of the objective function with respect to each of the selections for the one or more categorical design variables.
[0173] 17. One or more non-transitory computer-readable media as described in any of clauses 14 to 16, wherein the steps further include: receiving a selection of a first design component from the plurality of design components from a user; and displaying on the user interface an option for viewing the information about the selection of the one or more classification design variables for the first design component.
[0174] 18. One or more non-transitory computer-readable media as described in any of clauses 14 to 17, wherein the steps further include: receiving a selection of a first option among the options from the user; and displaying the information based on the first option in a pop-up window on the user interface.
[0175] 19. The one or more non-transitory computer-readable media of any one of clauses 14 to 18, wherein the steps further comprise: displaying an annotation link between the first design component and the pop-up window.
[0176] 20. In some embodiments, a system includes: one or more memories storing instructions; and one or more processors coupled to the one or more memories and configured, when executing the instructions, to: receive information about selections of one or more categorical design variables associated with each of a plurality of design components of a design problem; determine a corresponding sensitivity of an objective function to the selections of the one or more categorical design variables for each of the plurality of design components; determine a corresponding visual aspect of each design component based on the corresponding sensitivity; display a graphical depiction of the plurality of design components on a user interface, wherein each design component is displayed using the corresponding visual aspect; and display a legend on the user interface for explaining the corresponding visual aspect.
[0177] Any and all combinations of the claimed elements recited in any claim and / or any elements described in this application, in any manner, are within the contemplated invention and scope.
[0178] Descriptions of various embodiments have been presented for purposes of illustration, but are not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments.
[0179] The various aspects of the present embodiment can be embodied as a system, method or computer program product. Therefore, the various aspects of the present disclosure can adopt the form of a complete hardware embodiment, a complete software embodiment (including firmware, resident software, microcode, etc.) or a combination of software and hardware embodiments, which can be generally referred to as "module", "system" or "computer" in this article. In addition, any hardware and / or software technology, process, function, component, engine, module or system described in the present disclosure can be implemented as a circuit or a group of circuits. In addition, the various aspects of the present disclosure can adopt the form of a computer program product embodied in one or more computer-readable media, and the one or more computer-readable media have a computer-readable program code embodied thereon.
[0180] Any combination of one or more computer-readable media may be utilized. A computer-readable medium may be a computer-readable signal medium or a computer-readable storage medium. A computer-readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or apparatus, or any suitable combination of the foregoing. More specific examples (non-exhaustive list) of computer-readable storage media would include the following: an electrical connection with one or more wires, a portable computer floppy disk, 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 disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer-readable storage medium may be any tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, device, or apparatus.
[0181] Aspects of the present disclosure are described above with reference to the flowchart illustration and / or block diagram of the method, device (system) and computer program product according to the embodiments of the present disclosure. It should be understood that each square frame of the flowchart diagram and / or block diagram and the square frame combination of the flowchart diagram and / or block diagram can be realized by computer program instructions. These computer program instructions can be provided to the processor of a general-purpose computer, a special-purpose computer or other programmable data processing device to produce a machine. The instructions make it possible to realize the function / action specified in one or more boxes of the flowchart and / or block diagram when executed via the processor of a computer or other programmable data processing device. Such processors can be, but are not limited to, general-purpose processors, special-purpose processors, special-purpose processors or field programmable gate arrays.
[0182] The flow charts and block diagrams in the accompanying drawings show the architecture, function and operation of the possible implementation of the system, method and computer program product according to various embodiments of the present disclosure. In this respect, each box in the flow chart or block diagram can represent a module, section or part of a code, and the code includes one or more executable instructions for realizing the specified one or more logical functions. It should also be noted that in some alternative implementations, the functions mentioned in the box may not appear in the order mentioned in the accompanying drawings. For example, the two boxes shown in succession can in fact be executed substantially concurrently, or the boxes can sometimes be executed in reverse order, depending on the functionality involved. It should also be noted that each box in the block diagram and / or the flow chart diagram and the combination of the boxes in the block diagram and / or the flow chart diagram can be realized by a system based on special-purpose hardware or a combination of special-purpose hardware and computer instructions that performs a specified function or action.
[0183] While the foregoing is directed to embodiments of the present disclosure, other and further embodiments of the disclosure may be devised without departing from the basic scope of the disclosure, and the scope of the disclosure is determined by the claims that follow.
Claims
1. A computer-implemented method for evaluating the impact of categorical design variables on a solution to a design problem, the method comprising: include: receiving information regarding a selection of one or more categorical design variables associated with each of a plurality of design components of a design problem; determining respective sensitivities of an objective function to the selections of the one or more categorical design variables for each of the plurality of design components; determining a respective visual aspect of each design component based on the respective sensitivities; displaying a graphical depiction of the plurality of design components on a user interface, wherein each design component is displayed using the respective visual aspect; as well as A legend explaining the corresponding visual aspect is displayed on the user interface.
2. The computer-implemented method of claim 1, wherein the corresponding visual aspect of a first design component is a color displayed by the first design component. 3 . The computer-implemented method of claim 1 , wherein the corresponding visual aspect of a first design component is an intensity displayed by the first design component.
4. The computer-implemented method of claim 1, wherein determining the respective sensitivities of a first design component comprises computing an aggregation of the gradients of the objective function with respect to each of the selections for the one or more categorical design variables.
5. The computer-implemented method of claim 1 , further comprising: include: receiving a selection of a first design component from the plurality of design components from a user; as well as An option is displayed on the user interface for viewing the information regarding the selection of the one or more categorical design variables for the first design component.
6. The computer-implemented method of claim 5, wherein the user makes the selection by clicking on the first design component or hovering a cursor over the first design component.
7. The computer-implemented method of claim 5, wherein the options include viewing one or more of: an impact on the objective function of each of the selections for a first categorical design variable of the one or more categorical design variables, or a likelihood that each of the selections for the first categorical design variable is selected for a solution to the design problem.
8. The computer-implemented method of claim 5, wherein the options include one or more of: viewing the information using a table, a list, a pie chart, a bar chart, or a stacked bar chart.
9. The computer-implemented method of claim 5, wherein the option for viewing the information is displayed in a pop-up menu.
10. The computer-implemented method of claim 5, further comprising: include: receiving a selection of a first one of the options from the user; as well as The information based on the first option is displayed in a pop-up window on the user interface.
11. The computer-implemented method of claim 10, further comprising displaying an annotation link between the first design component and the pop-up window.
12. The computer-implemented method of claim 10, wherein the pop-up window comprises one or more of: a design component tab, a table, a list, a pie chart, a bar chart, a stacked bar chart, or a list of the selection for a first categorical design variable of the one or more categorical design variables.
13. The computer-implemented method of claim 1, wherein each design component corresponds to a truss element in the physical structure.
14. One or more non-transitory computer readable media storing instructions that, when executed by one or more processors, cause the one or more processors to perform the following steps: receiving information regarding a selection of one or more categorical design variables associated with each of a plurality of design components of a design problem; determining respective sensitivities of an objective function to the selections of the one or more categorical design variables for each of the plurality of design components; determining a respective visual aspect of each design component based on the respective sensitivities; displaying a graphical depiction of the plurality of design components on a user interface, wherein each design component is displayed using the respective visual aspect; as well as A legend explaining the corresponding visual aspect is displayed on the user interface.
15. The one or more non-transitory computer-readable media of claim 14, wherein the corresponding visual aspect of the first design member is a color or an intensity displayed by the first design member.
16. The one or more non-transitory computer-readable media of claim 14, wherein determining the respective sensitivities of the first design component comprises computing an aggregate of the gradients of the objective function with respect to each of the selections for the one or more categorical design variables.
17. One or more non-transitory computer readable media as described in claim 14, wherein the step further include: receiving a selection of a first design component from the plurality of design components from a user; as well as An option is displayed on the user interface for viewing the information regarding the selection of the one or more categorical design variables for the first design component.
18. One or more non-transitory computer readable media as described in claim 17, wherein the step further include: receiving a selection of a first one of the options from the user; as well as The information based on the first option is displayed in a pop-up window on the user interface.
19. One or more non-transitory computer readable media as recited in claim 18, wherein said step further include: A callout link between the first design component and the pop-up window is displayed.
20. A system, wherein include: one or more memories storing instructions; as well as one or more processors coupled to the one or more memories and configured, when executing the instructions, to: receiving information regarding a selection of one or more categorical design variables associated with each of a plurality of design components of a design problem; determining respective sensitivities of an objective function to the selections of the one or more categorical design variables for each of the plurality of design components; determining a respective visual aspect of each design component based on the respective sensitivities; displaying a graphical depiction of the plurality of design components on a user interface, wherein each design component is displayed using the respective visual aspect; as well as A legend explaining the corresponding visual aspect is displayed on the user interface.
