Systems and methods for machine learning-based product design automation and optimization
A machine learning-based framework optimizes product design by identifying and substituting components for improved metrics, addressing the inefficiencies of traditional design processes and ensuring optimal component selection.
Patent Information
- Application Number
- JP2022093752
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-06-11
- Filing Date
- 2022-06-09
- Publication Date
- 2026-02-20
- Estimated Expiration
- 2042-06-09
AI Technical Summary
Existing product design processes are time-consuming and non-exhaustive, often leading to suboptimal selection of parts due to familiarity or personal bias, resulting in increased costs and potential overlook of more suitable components.
A machine learning-based framework that analyzes product features to identify and optimize component selection, using a designer device to compile features, evaluate against machine learning logic, and analyze initial eBOMs to substitute parts for improved design metrics such as cost, weight, and performance.
The framework automates and optimizes the product design process, reducing time and cost while ensuring optimal component selection, thereby enhancing product quality and efficiency.
Smart Images

Figure 0007818471000028 
Figure 0007818471000029 
Figure 0007818471000030
Abstract
Description
[Technical Field]
[0001] The present disclosure relates generally to product design and development methods, and more particularly to a machine learning (ML) based framework for automating and optimizing product design and development. [Background technology]
[0002] Product development often involves numerous complex processes, such as product design, prototyping, product testing, assembly, and the like. For many products, especially complex products with numerous different parts (e.g., cars, airplanes, ships, computer components, or other products), the design process poses significant challenges. One challenge that arises in existing design processes is part selection. For example, there may be multiple suppliers for any particular part, or there may be numerous potential parts with different characteristics, dimensions, costs, and the like. When such a situation arises, those conducting the design process may be prone to selecting parts they are familiar with (e.g., parts they have used in the past, parts from manufacturers they have worked with before, and similar items) or to selecting parts based on personal preconceptions based on the designer's experience. While such an approach may result in a satisfactory selection of parts for the product design, this type of selection or design process does not result in an optimal product design in terms of overall cost to manufacture the product or product quality. Furthermore, currently used manual design processes are also very time-consuming, which can extend the time required to complete the design process and ultimately the completion of product production. Although existing methods are time consuming, they are often performed in a non-exhaustive manner, meaning that there may be many parts or components that are not even considered for the proposed design. The non-exhaustive nature of existing approaches leads to many parts or components being overlooked, but in many cases, the overlooked parts or components may lead to a more optimal design in terms of cost, fit, and / or function of the product being designed. Summary of the Invention [Means for solving the problem]
[0003] Aspects of the present disclosure provide systems, methods, apparatuses, and computer-readable storage media that support an optimized product design process. During the product design process, information identifying a set of product features may be created. By way of example, a user or designer may utilize a designer device to compile a set of features relevant to the product design. The set of features may include information derived from customer requirements (e.g., product requirements defined by an entity seeking to produce the product), marketing requirements (e.g., consumer-interest features, safety, etc.), and engineering requirements (e.g., product durability factors, power requirements, etc.). Once the product specifications are finalized, the set of features for the product under design may be evaluated against machine learning logic to identify a set of components corresponding to the set of features. In one aspect, the set of components may include appropriate parts or components for each of the various features, and the parts or components may be ordered or prioritized according to the correlation between each part and the corresponding feature. In a further aspect, the parts or components may be ordered or prioritized according to cost (e.g., lowest cost to highest cost or highest cost to lowest cost). The designer may then select components for the proposed design from the set of components identified by the machine learning logic to create an engineering bill of materials (eBom). Note that the parts or components included in this eBom may not be optimized in terms of cost or other factors, and may instead simply include components that the designer believes are good enough for the product design.
[0004] The eBom may then be analyzed to identify duplicate parts or components, if any, along with one or more candidate parts or components. A candidate part or component may be a potential substitute or replacement for a part or component defined by the designer in the eBom. The one or more candidate components may then be evaluated using one or more design metrics to optimize the product design. Evaluation of the candidate part or component may include analyzing the characteristics of the part or component and evaluating those characteristics against one or more design metrics. As an example, a design metric may specify that a part supporting a particular feature can be made from materials a, b, and c, but the designer may have selected a part made from material a without considering whether a part made from material b or c would lead to a more optimal product design (e.g., maintaining the structural integrity of the product while reducing cost or weight). During evaluation of the candidate parts, embodiments of the present disclosure may automatically evaluate whether substituting one of the candidate parts for a part defined in the eBom would lead to a more optimal design. As a result of evaluating the candidate parts or components, candidate parts and components that optimize the product design may be identified, and changes may be made to the eBom to optimize the product design (e.g., reduce cost, reduce weight, improve performance, etc.). A final set of components optimized with respect to at least one design metric may be output, resulting in an optimized product design that can then be used to more optimally manufacture the product.
[0005] The foregoing has provided a somewhat broad overview of the features and technical advantages of the present disclosure in order to better understand the detailed description that follows. Additional features and advantages of the present disclosure will be described hereinafter, which form the subject matter of the claims of the present disclosure. Those skilled in the art will appreciate that the conception and specific aspects disclosed may be readily utilized as a basis for modifying or designing other structures for carrying out the same purposes of the present disclosure. Those skilled in the art will also appreciate that such equivalent constructions do not depart from the scope of the disclosure as set forth in the appended claims. The novel features disclosed herein, both as to their organization and method of operation, together with further objects and advantages thereof, will be better understood by considering the following description in conjunction with the accompanying drawings. It should be understood that each of the figures is provided for the purpose of illustration and description only and is not intended as a definition of the limits of the present disclosure.
[0006] For a more comprehensive understanding of the present disclosure, reference is now made to the following description taken in conjunction with the accompanying drawings, in which:
[0007] It should be understood that the drawings are not necessarily to scale, and that the disclosed aspects may be illustrated in schematic and partial views. In some cases, details that are not essential to an understanding of the disclosed methods and apparatuses or that obscure other details may be omitted. It should be understood, of course, that the present disclosure is not limited to the particular aspects illustrated herein. [Brief explanation of the drawings]
[0008] [Figure 1] FIG. 1 is a block diagram of an example system for supporting a design process according to the present disclosure. [Figure 2] FIG. 1 shows a block diagram illustrating exemplary aspects of a design process according to the present disclosure. [Figure 3] FIG. 10 shows a block diagram illustrating further exemplary aspects of a design process according to the present disclosure. [Figure 4]FIG. 1 is a flow diagram illustrating an example method involved in a design process according to the present disclosure. DETAILED DESCRIPTION OF THE INVENTION
[0009] Aspects of the present disclosure provide systems, methods, apparatus, and computer-readable storage media that support the automation and optimization of the product design process. As described further below, embodiments may provide functionality to automatically convert a set of design features defined for a product into a set of components that includes appropriate parts or components for each of the various features in the set of design features. Such capability may be provided by leveraging machine learning logic to quickly identify correlations between the various features and one or more parts or components. The set of components may be presented to a designer, who may then select from among the identified parts or components to generate an initial eBom for the product design. However, this eBom may not be optimized or may not be fully optimized with respect to one or more design metrics (e.g., cost, size, weight, and the like).
[0010] To improve the product design, the initial eBom may be subjected to further analysis to identify duplicate parts or components, if any, along with candidate parts or components that may be used in place of one or more of the parts or components included in the initial eBom. By way of example, candidate components may be identified by evaluating differences between attributes of parts or components identified in the initial eBom and other known parts or components. A design metric may define criteria that may be used to determine whether a particular candidate part or component should be selected as a substitute for one of the parts or components of the initial eBom. By way of example, a weight metric may define that if the candidate part or component weighs less, it should be used in place of a part or component included in the initial eBom, even if other parameters are the same. Such analysis may produce a final eBom that is optimized with respect to the design metric(s) (e.g., resulting in a final eBom that optimizes cost, weight, size, or other aspects of the product being designed).
[0011] Referring to FIG. 1 , an example of a system supporting a design process according to the present disclosure is shown as system 100. System 100 may be configured to automate aspects of the product design process and, in doing so, optimize the design of the product with respect to one or more design metrics (e.g., cost, size, weight, and the like). As shown in FIG. 1 , system 100 includes a computing device 110 communicatively coupled to a designer device 130 via one or more networks 150. In some implementations, one or more of the devices shown in FIG. 1 may be optional. By way of example, functionality described herein as provided by computing device 110 may be provided via a cloud-based deployment, as illustrated by design optimizer 152, or system 100 may include additional components, such as, by way of non-limiting example, designer device 130.
[0012] Computing device 110 may include or correspond to, by way of non-limiting example, a desktop computing device, a laptop computing device, a personal computing device, a tablet computing device, a mobile device (e.g., a smartphone, a tablet, a personal digital assistant (PDA), a wearable device, and the like), a server, a virtual reality (VR) device, an augmented reality (AR) device, an extended reality (XR) device, a vehicle (or a component thereof), an entertainment system, another computing device, or a combination thereof. Computing device 110 includes one or more processors 112, memory 114, a recommendation engine 120, a rationalization engine 122, a design engine 124, and one or more input / output (I / O) devices 126. In some other implementations, one or more of components 112-126 may be optional, one or more additional components may be included in computing device 110, or both. It should be noted that the functionality described with reference to computing device 110 is provided for purposes of illustration and not limitation, and the example functionality described herein may be provided via the deployment of other types of computing resources. By way of example, in some implementations, the computing resources and functionality described in connection with computing device 110 may be provided in a distributed system using multiple servers or other computing devices, or in a cloud-based system using computing resources and functionality provided by a cloud-based environment accessible over a network, such as one of one or more networks 170.By way of example, one or more of the operations described herein with reference to computing device 110 may be performed by one or more servers or by design optimizer 152 in communication with one or more client or user devices, such as designer device 130. Additionally or alternatively, functionality provided by computing device 110 may be provided by designer device 130.
[0013] The one or more processors 112 may include one or more microcontrollers, application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), central processing units (CPUs) with one or more processing cores, or other circuitry and logic configured to facilitate operation of the computing device 110 in accordance with aspects of the present disclosure. The memory 114 may include random access memory (RAM) devices, read only memory (ROM) devices, erasable programmable ROM (EPROMs), electrically erasable programmable ROM (EEPROMs), one or more hard disk drives (HDDs), one or more solid state drives (SSDs), flash memory devices, network accessible storage (NAS) devices, or other memory devices configured to store data in a persistent or non-persistent state. Software configured to facilitate the operation and functionality of computing device 110 may be stored in memory 114 as instructions 116 that, when executed by one or more processors 112, cause the one or more processors 112 to perform the operations described herein with respect to computing device 110, as described in more detail below. Memory 114 may also be configured to store data and information in one or more databases 118. Example aspects of one or more databases 118 are described in more detail below.
[0014] Although not shown in FIG. 1 , computing device 110 may include one or more communication interfaces configured to communicatively couple computing device 110 to one or more networks 150 via wired or wireless communication links established in accordance with one or more communication protocols or standards (e.g., Ethernet protocol, transmission control protocol / internet protocol (TCP / IP), Institute of Electrical and Electronics Engineers (IEEE) 802.11 protocol, IEEE 802.16 protocol, 3rd Generation (3G) communication standards, 4th Generation (4G) / long term evolution (LTE) communication standards, 5th Generation (5G) communication standards, and the like). Computing device 110 may also include one or more input / output (I / O) devices 126, including one or more display devices, a keyboard, a stylus, one or more touchscreens, a mouse, a trackpad, a microphone, a camera, one or more speakers, a haptic feedback device, or any other type of device that allows a user to receive information from or provide information to computing device 110. In some implementations, computing device 110 is coupled to a display device, such as a monitor, a display (e.g., a liquid crystal display (LCD) or the like), a touchscreen, a projector, a virtual reality (VR) display, an augmented reality (AR) display, an extended reality (XR) display, or the like. In some other implementations, the display device is included in or integrated into computing device 110.
[0015] As shown in FIG. 1 , computing device 110 may be communicatively coupled to designer device 130. Designer device 130 includes one or more processors 132, memory 134, and one or more I / O devices 140. One or more processors 132 may include one or more microcontrollers, ASICs, FPGAs, CPUs with one or more processing cores, or other circuitry and logic configured to facilitate operation of designer device 130 in accordance with aspects of the present disclosure. Memory 134 may include RAM devices, ROM devices, EPROMs, EEPROMs, one or more HDDs, one or more SSDs, flash memory devices, NAS devices, or other memory devices configured to store data persistently or non-persistently. Software configured to facilitate operation and functionality of computing device 130 may be stored in memory 134 as instructions 136 that, when executed by one or more processors 132, cause the one or more processors 132 to perform the operations described herein with respect to designer device 130, as described in more detail below. Additionally, memory 134 may be configured to store data and information in one or more databases 138. Example aspects of one or more databases 138 are described in more detail below.
[0016] 1 , the designer device 130 may include one or more communication interfaces configured to communicatively couple the designer device 130 to one or more networks 150 via a wired or wireless communication link established according to one or more communication protocols or standards (e.g., an Ethernet protocol, TCP / IP, an IEEE 802.11 protocol, an IEEE 802.16 protocol, a 3G communication standard, a 4G / LTE communication standard, a 5G communication standard, and the like). The one or more I / O devices 140 may include one or more display devices, a keyboard, a stylus, one or more touchscreens, a mouse, a trackpad, a microphone, a camera, one or more speakers, a haptic feedback device, or other types of devices that enable a user to receive information from or provide information to the designer device 130. In some implementations, the designer device 130 is coupled to a display device such as a monitor, a display (e.g., an LCD or the like), a touchscreen, a projector, a VR display, an AR display, an XR display, or the like. In some other implementations, the display device is included in or integrated into the designer device 130 .
[0017] A user, such as a product designer, may utilize the designer device 130 to design a product, such as a vehicle, an electronic device, a toy, or other tangible object. As part of the design process, the user may perform a product feature gathering process to obtain information about the components and features of the product being designed. The product feature gathering process may involve obtaining input from customers (e.g., the target customers for whom the product is designed by the manufacturer), input obtained from market research involving other commercially available products similar to the product being designed, or other types of information that may influence the design process (e.g., target product costs, product release goals, and the like). As an example, a designer working on the design of a new vehicle may obtain a list of vehicle features, such as engine specifications, vehicle weight, seating capacity, climate control features (e.g., air conditioning, heated seats, cooled seats, and the like), audio / visual features (e.g., speaker configuration, video capabilities, camera capabilities, receiver capabilities), or other types of features and capabilities for the vehicle design. In one aspect, the various features and capabilities obtained during the product feature gathering stage may be categorized (e.g., into required features and desirable features) and a weight may be assigned to each feature and capability. This information may be stored in a database, such as one or more databases 138.
[0018] The set of features may then be provided as input to recommendation engine 120 of computing device 110. Recommendation engine 120 may be configured to analyze various features and capabilities compiled by the designer and output a set of parts or components that match the set of features and capabilities defined for the product being designed. Recommendation engine 120 may be configured to convert the input set of features and capabilities into a set of parts or components using various processes and operations. By way of example, referring to FIG. 2 , a block diagram illustrating further exemplary aspects of a design process according to the present disclosure is shown. Certain operations of the design process shown in FIG. 2 may be performed by recommendation engine 200, which may be the same as or similar to recommendation engine 120 of FIG. 1. As shown in FIG. 2 , recommendation engine 200 includes a feature analyzer 210 and a cost analyzer 220.
[0019] The feature analyzer 210 may be configured to utilize machine learning techniques to identify a set of components that meet the specified characteristics and capabilities for the product being designed. By way of example, the feature analyzer 210 may include a training data generator 212 and a machine learning engine 214. The training data generator 212 may compile a training data set that can be used to train a machine learning model in the machine learning engine 214. The training data set may include information compiled from one or more databases, such as the one or more databases 118 of FIG. 1. By way of example, the one or more databases may include a library of component information, such as stockkeeping unit (SKU) data, feature information associated with various components, information about various components across various products, or other types of information. The SKU data may include identification information for various components. Note that some components may be associated with multiple SKUs. As an example, a manufacturer may obtain a component from various manufacturers and may further assign a separate SKU to each component (e.g., a first SKU for components obtained from a first component manufacturer and a second SKU for components obtained from a second component manufacturer). The characteristic information may include dimensional information (e.g., length, width, height, diameter, and the like) associated with the various components, material properties (i.e., the type and nature of material from which the components are made) of the various components, connectivity characteristics (e.g., information regarding component threads, snap-fit components, pressure-fit or friction-fit components, and the like) indicating various types of connections that may be used to secure the components in place or to connect each one of the components to one another, a description of the component, or additional type characteristics or information regarding the various components.Information about various components across various products may include information about component compatibility, such as components assembled together in a product, components used in a family of products (e.g., all parts or components that can be classified as a "rod" may be part of a family or product range of "rods"), and the like. Note that the exemplary types of information described above are provided for illustrative purposes and not by way of limitation, and the library of component information may include additional information beyond the specific examples provided above.
[0020] The feature analyzer 210 may select information from one or more databases to create a training data set, which may be provided to the machine learning engine 214. The training data set may be used by the machine learning engine 214 to train a machine learning model to identify suitable components or parts for a proposed product design based on feature and capability information, such as feature and capability information compiled by the designer device 130. Feature and capability information related to previous product designs may be used by the machine learning engine 214 during training to train the machine learning model to identify suitable parts or components based on the feature and capability information. By way of example, the feature and capability information may indicate that a component should meet size and dimension requirements, material requirements, or other information related to the part or component of the product being designed. The machine learning model may be configured to identify suitable parts or components from the training data set for the product being designed based on the feature and capability information.
[0021] Additionally, the machine learning engine 214 may perform preprocessing operations on the feature and capability information. By way of example, the feature and capability information may be written in natural language and subjected to natural language processing, vectorization, or other types of processing steps to convert the feature and capability information of the product being designed into a format that can be fed into a machine learning model. By way of non-limiting example, the preprocessing operations may convert the natural language data into processed data (e.g., one or more vectors of numerical values), and the machine learning model may be evaluated against the processed data to identify component parts that match the feature and capability information. As part of training the model, the components identified during training may be evaluated and used to adjust model parameters. The adjustments may be configured to improve the accuracy of the machine learning model, enabling the model to more accurately identify parts or components that match the feature and capability information of the product being designed.
[0022] It should be noted that the training data generator 212 may be configured to output various types of training data. By way of example, the training data generator 212 may output a training data set, a validation data set, and a test data set. The training data set may be utilized to train a model, and the validation data set may be utilized to validate the model. The test data set may then be used to test the validated model, which may include evaluating the model against the test data set after adjustment based on feedback 218 (or one or more iterations of feedback 218).
[0023] In some aspects, feedback 218 may be generated using a designer feedback loop. The designer feedback loop may be configured to analyze a designer's part or component selection and determine promotion and / or penalization factors, which may be used to adjust the machine learning model of machine learning engine 214 to improve the model's output. In certain aspects, the feedback loop algorithm may be configured to consider different factors, such as the distance between the selected part and the recommended part, the number of times the same part has been selected or not selected, information about family or non-family products, reported failures (e.g., from post-sales data) for the particular recommended part or component, or other factors. As an example, the promotion factor may be configured to adjust the machine learning model to provide a higher correlation coefficient for parts selected by the designer, such as parts selected by the designer despite having lower correlation coefficients compared to other parts. The penalization factor may be configured to penalize or lower the correlation coefficient output by the machine learning model for a part or component if failures have been reported for the particular part or component, if a designer frequently selects other parts or components that have lower correlation coefficients compared to other parts or components, or due to other factors.
[0024] Illustrative, non-limiting examples of designer feedback loops according to aspects of the present disclosure include: 1,2,3,…,n Let be the list of recommended parts (e.g., parts or components output by a model) for a particular feature of the SKU,
[0025]
number
[0026] Let be the list of correlation coefficients associated with the recommended part list for feature j,
[0027]
number
[0028] (on a coefficient grading scale of 0 to 1). The cumulative promotion factor α of the part being selected for each feature j may be calculated as follows:
[0029]
number
[0030] The cumulative promotion factor β of the unselected parts for each feature j n may be calculated as follows:
[0031]
number
[0032] In the above equations (1) and (2), n=1,2,3,...,n represents the non-selected part(s), ni=1,2,3,...,ni represents the non-selected part(s) whose correlation coefficient is greater than (>) that of the selected part(s), k represents the selected part, k is not equal to 1, c is the number of times the specific recommended part is selected, d is the number of times the specific recommended part is not selected, Y is a multiplication factor, Y=1.2 for products in the same family and Y=1 for products outside the family, x is a penalty factor, and the failure rate penalty factor (x) may be as follows: 0%~5% - 10 5%~10% - 8 10%~20% - 6 20%~40% - 4 40%~80% - 2 80%~100% - 1 It should be noted that in the above formulas (1) and (2), the term "part" may also include a component or / and a subassembly. It should also be noted that the exemplary formulas set forth above are provided for illustrative purposes and not by way of limitation, and that other approaches to calculating penalty and promotion factors may be utilized by embodiments of the present disclosure.
[0033] Once the model has been validated and its performance is determined to be sufficient (e.g., based on a test dataset), the model may be evaluated against feature and capability information for the newly designed product, such as a product designed via the designer device 130 of FIG. 1 . By way of example, the machine learning engine 214 may be provided with feature and capability information for the newly designed product, such as the feature and capability information described above with respect to the designer device 130 of FIG. 1 . The feature and capability information may be subjected to the preprocessing operations described above to produce model input data (i.e., data converted into a format suitable for evaluation by a machine learning model). Once preprocessing is complete, the model input data may be evaluated against the trained machine learning model to produce model output. In some aspects, the model output may include a set of components 216. The set of components 216 may correspond to parts or components that meet the specified features and capabilities for the newly designed product.
[0034] In some aspects, the set of components 216 may include information about the identified parts or components, such as feature information, cost information, SKU information, dimensional information, or other types of information about the parts identified by the machine learning model. The information included in the set of components 216 may be extracted from one or more databases. As an example, the model output may include a set of values (e.g., SKU values, numeric values, or other types of identifying information) corresponding to the parts or components identified by the machine learning model as matching the feature and capability information. The set of values may be mapped to parts or components whose information is stored in one or more databases. Based on the set of values, information about the identified parts or components (e.g., feature information, dimensional information, material information, etc.) may then be extracted from one or more databases, and this information may be presented to a user, such as a user of the designer device 130 in FIG. 1 . In further or alternative aspects, the set of components 216 identified by the machine learning engine 214 may be provided to an external device, such as the designer device 130 of FIG. 1 , which may use information contained in the set of components 216 (e.g., the set of values described above) to extract information from one or more databases to present to a user. Note that one or more of the parts or components identified in the set of components 216 may not be unique, and such non-unique parts or components may have the same or substantially similar characteristics or properties. This may occur because, as explained above, a product manufacturer may source parts or components from various component manufacturers, resulting in multiple parts having the same or similar characteristics or properties being identified in the set of components 216. Because multiple parts or components that are the same or substantially similar may be identified by the machine learning module 214, a designer may have difficulty selecting a specific subset of components to use in manufacturing a newly designed product.Such difficulties may cause delays in the design process and may ultimately lead to the selection of components or parts that are not optimal for producing the intended product, as described in more detail below.
[0035] In some aspects, the machine learning engine may output a set of correlation coefficients based on the machine learning model. The set of correlation coefficients may indicate correlations between one or more parts and components and a particular feature of a capability in the set of features or capabilities. For example, the set of correlation coefficients may indicate a correlation between a first set of parts or components and a first feature or capability of the newly designed product, a correlation between a second set of parts or components and a second feature or capability of the newly designed product, etc., for n features or capabilities of the newly designed product, where n is greater than or equal to 1. The correlation coefficients may be used to rank the parts or components with respect to each feature or capability of the newly designed product, and the designer may then select a subset of the parts or components as a candidate set of parts or components. One or more sets of candidate parts or components may then be evaluated using a cost analyzer 220, as described in more detail below, which may include taking into account prioritization information related to various features or capabilities of the product.
[0036] In some aspects, recommendation engine 200 or another component (e.g., of computing device 110) or external device (e.g., designer device 130 of FIG. 1 ) may obtain information related to the cost of each part or component identified in set of components 216. Cost analyzer 220 may be configured to perform a cost analysis on set of components 216. More specifically, cost analyzer 220 may be configured to evaluate recommended parts or components for the newly designed product based on a "cost to be" value, which may represent a target cost for manufacturing the newly designed product. Exemplary aspects of performing a "cost to be" value analysis are described in more detail below.
[0037] As shown in FIG. 2 , cost analyzer 220 may include cost logic 222, evaluation logic 224, priority logic 226, reset logic 228, selection logic 230, and cost function logic 232. Cost logic 222 may be configured to receive cost information associated with parts or components identified by feature analyzer 210. In some aspects, the cost information may be associated with a subset of parts or components identified in set of components 216. As an example, a designer may review set of components 216 and select particular parts or components as candidate parts or components. In such an example, the cost information may include a cost associated with each candidate part selected by the designer (i.e., a part selected by the designer for use in producing the product). In another example, parts or components may be selected using correlation coefficients associated with the parts or components and the features and capabilities of the product being designed. As an example, parts with the highest correlation coefficients for each feature or capability may be selected as candidate parts or components for the newly designed product.
[0038] The cost logic 222 may use cost information associated with the candidate parts or components to calculate a total cost (B) for producing the newly designed product. The total cost (B) may be provided to the evaluation logic 224. In addition to the total cost (B), the evaluation logic 224 may also receive information related to a "cost to be" (A). The "cost to be" (A) may be determined based on input from a customer (e.g., an entity requesting production of the newly designed product) as well as information from other sources (e.g., an engineering team, a marketing team, or other sources). The evaluation logic 224 may determine whether the total cost (B) is greater than (>) the "cost to be" (A). If the total cost (B) is not greater than (>) the "cost to be" (A) (e.g., B≦A), the operation of the cost analyzer may be complete, and a final set of candidate components 234 may be output by the cost analyzer 220.
[0039] If the combined cost (B) is greater than (>) the “cost to be” (A), operation of cost analyzer 220 may proceed to prioritization logic 226, which may be configured to evaluate a set of candidate parts or components (e.g., a set of candidate parts or components selected from among components 216 by a designer or by a subsequent iteration of cost analyzer 220) based on feature prioritization data (FP). Feature prioritization data may be defined based on input from a designer, a customer, another entity or user, or a combination thereof, to provide a priority or ranking of various features or capabilities of the product being designed. Prioritization logic 226 may be configured to identify the lowest priority features or capabilities of the product being designed. As described in more detail below, identifying the next lowest priority set of features may enable another set of candidate parts corresponding to the next lowest priority features or capabilities, potentially at a lower cost. In some aspects, cost analyzer 220 may include reset logic 228 configured to reset prioritization logic 226 between each iteration or whenever condition B≦A is met. The cost analyzer checks whether B>A, and if so, considers the next-to-last component (by coefficient) for each feature (by priority) and determines the next sum. This process may continue until B≦A. If the cost analyzer has looked at the next-to-last component for all features and B>A is still true, the reset logic 228 resets the feature list counter and executes the loop again, starting with the first feature as in the first iteration, but this time taking the next-to-last component relative to what was considered in the previous loop.
[0040] The priority logic 226 may provide information regarding the next lowest priority feature or capability to the selection logic 230. The selection logic 230 may select a new set of candidate parts or components, which may include new parts or components that correspond to the next lowest priority feature and that have a lower cost relative to the previously considered part or component. The selection logic 230 may be configured to select new candidate parts or components from among the parts or components identified by the feature analyzer 210. As an example, the selection logic 230 may select one or more parts that have the next highest correlation to the relevant feature or capability under consideration (e.g., a feature or capability identified by the selection logic 230).
[0041] Selection logic 230 may provide a new set of components to cost function 232, which may provide information to cost logic 222. Cost logic 222 may generate a combined cost (B') based on the new set of parts or components determined by selection logic 230, which may have different costs than the parts or components considered in the previous iteration. As described above, combined cost (B') may be provided to evaluation logic 224, where it is evaluated against "cost to be" (A). If combined cost (B') is less than or equal to (≦) the "cost to be" (A) (e.g., B'≦A), the operation of the cost analyzer may be complete, and a final set of candidate components 234 may be output by cost analyzer 220. If the combined cost (B') is greater than (>) the "cost to be" (A) (e.g., B'>A), operation of cost analyzer 220 may proceed to priority logic 226 where the next lowest priority feature or capability may be selected, and the above-described iteration may continue until a set of parts or components that meets condition B≦A is identified or all features or capabilities have been considered. Set of components 234 may be provided to a designer device (e.g., designer device 130), and a designer may generate an initial eBom by selecting parts or components from among those identified in set of components 234. The eBom may include a list of parts or components that correspond to the features or capabilities of the product being designed and that are at or below the "cost to be" (A).
[0042] Referring again to FIG. 1 , an eBom created by a designer using designer device 130 may represent a preliminary set of parts or components that can be used to produce the product being designed. The eBom may be provided to rationalization engine 122, which may be configured to optimize the eBom across a variety of factors. By way of example, rationalization engine 122 may be configured to identify substitute parts or components for one or more parts or components identified in the eBom. Identifying substitute parts may include identifying parts that differ in attributes, dimensions, or cost from the parts identified in the eBom. Additionally, rationalization engine 122 may be configured to identify parts (or substitute parts) included in the eBom that are 3D printable. Being able to identify 3D printable parts may be advantageous in several ways. First, 3D printing may enable new part or component designs to be realized more quickly than other manufacturing methods, which may allow the product being designed to be produced or brought to market more quickly (e.g., because a manufacturer does not need to install new infrastructure to produce the new component or locate a vendor that can produce the new component). Second, there may be cases where a part can be produced using methods other than 3D printing, but producing the part using 3D printing methods may result in cost savings. The identification of substitute parts by the rationalization engine 122 may result in a new eBom that identifies a set of parts or components that includes at least some of the substitute parts and / or 3D printable parts. The parts or components identified in the eBom generated by the rationalization engine 122 may reduce the cost of manufacturing the newly designed product (e.g., because the substitute parts or components may be less expensive than the original parts or components in the initial eBom generated as a result of the process performed by the recommendation engine 120).Additionally, the rationalization engine 122 may be configured to optimize parts or components of the eBom across metrics other than cost. By way of example, while identifying substitute parts, the rationalization engine 122 may identify parts that can reduce the weight of the product (e.g., by substituting plastic parts for steel parts where appropriate).
[0043] As an illustrative example, referring to Figure 3, a block diagram illustrating further exemplary aspects of a design process according to the present disclosure is shown. Certain operations of the design process illustrated in Figure 2 may be performed by a rationalization engine 300, which may be the same as or similar to rationalization engine 122 of Figure 1. As shown in Figure 3, rationalization engine 300 includes a component feature module 310, a substitute module 330, and a 3D printer module 350, each of which is described in more detail below.
[0044] Component feature module 310 may be configured to identify duplicate parts or components within an eBom, such as an eBom generated following completion of processing by recommendation engine 120 of FIG. 1 or recommendation engine 200 of FIG. 2. Component feature module 310 may include feature extraction module 320 and feature analysis module 322. Feature extraction module 320 may be configured to receive an eBom as input and output a dataset including information identifying various parts or components within the eBom. By way of example, the dataset output by feature extraction module 320 may include identification information for each part or component included in the eBom, as well as descriptions or other information about the part or component.
[0045] The dataset output by feature extraction module 320 may be provided to feature analysis module 322 for analysis. The analysis performed by feature analysis module 322 may include identifying duplicate and non-duplicate parts or components. For example, feature analysis module 322 may analyze text and other types of information contained in the dataset using one or more algorithms to identify various characteristics or features of each part or component. Exemplary characteristics or features that may be evaluated by feature analysis module 322 include part name, part description, material attributes, creation date, dimensions, several materials contained in the part or component, information about material groups, stock or inventory data, cost data, supplier data (e.g., one or more suppliers that supply the part or component), information about part groups, weight information (e.g., the weight of the part or component, the weight a component can support, etc.), or other types of information. It should be noted that the types of information analyzed by feature analysis module 322 described above are provided for illustrative purposes and not by way of limitation, and a feature analysis module according to the present disclosure may analyze all of the types of information listed above, a subset of the types listed above, additional types of information, or a combination thereof.
[0046] During feature analysis, feature analysis module 322 may identify zero or more duplicate parts or sets of duplicate components and zero or more sets of non-duplicate parts or components based on the set of parts or components identified in the eBom. Duplicate parts or components may be parts or components identified as having the same or similar attributes and characteristics as parts or components identified in the eBom. Non-duplicate parts or components may correspond to parts or components identified in the eBom for which no other parts with the same or similar attributes and characteristics can be found. Additionally, feature analysis module 322 may use the eBom to identify features of interest (e.g., attributes and characteristics) and then evaluate features of parts or components not identified in the eBom that share the same or similar characteristics with parts or components in the eBom. By way of example, duplicate parts may be identified based on information about the parts or components stored in one or more databases (e.g., one or more databases 118 of FIG. 1 ), and non-duplicate parts or components may correspond to parts or components for which no other parts or components sharing the same or similar characteristics could be identified from one or more databases.
[0047] Identification of duplicate and non-duplicate parts or components may be achieved by analyzing the characteristics or features output by feature extraction module 320. By way of example, a duplicate part or component may be identified when a characteristic or feature of a first part or component of the eBom is the same as or substantially similar to a second part or component of the eBom, and a non-duplicate part or component may be identified when a characteristic or feature of a particular part or component of the eBom is not the same as and substantially similar to other parts or components of the eBom. Note that two parts may be substantially similar even if they differ in one or more characteristics or features (e.g., different descriptions, different supplier data, different stock or inventory data, and the like).
[0048] In addition to identifying duplicate and non-duplicate parts, the processes performed by component feature module 310 and feature extraction module 320 and feature analysis module 322 may also identify whether any of the parts or components identified in the eBom are 3D printable. Whether any of the parts or components are 3D printable may be useful to know, as this may affect production time (e.g., due to the length of time required to print the part or component or for other reasons). Further aspects of analyzing 3D printable components are described in more detail below.
[0049] In some aspects, the feature analysis module 322 may use various techniques to analyze the characteristics or features of the parts or components identified in the eBom. For example, the characteristics or features of the parts or components may be represented as strings, and the feature analysis module 322 may use the Levenshtein algorithm to determine the distance between different strings corresponding to different parts or components. The distance may represent a metric of similarity between two strings (e.g., a characteristic or feature of a first part or component and a characteristic or feature of a second part or component). Additionally or alternatively, the feature analysis module 322 may use other techniques, such as phonetic algorithms, the Jaro-Winkler distance algorithm, or other fuzzy search techniques, to analyze the characteristics or features of the parts or components. It should be noted that the exemplary algorithms disclosed herein are provided for purposes of illustration and not limitation, and the feature analysis module of the present disclosure may use other algorithms and techniques to identify duplicate and non-duplicate parts from the eBom.
[0050] As shown in FIG. 3 , component characteristics module 310 may output a set of component data 324, which may include information identifying zero or more duplicate parts or sets of duplicate components in the eBom and zero or more non-duplicate parts or sets of non-duplicate components in the eBom. The set of component data 324 may be provided to substitution module 330 for analysis by component logic 332. Component logic 332 may be configured to provide the duplicate part data 334 to attribute variation logic 336. The duplicate part data 334 may correspond to features or characteristics of a particular part or component selected from the zero or more duplicate components. The attribute variation logic 336 may be configured to determine whether a particular part or component is within a range of attribute variation (or tolerance) associated with the product being designed. The attribute variation (or tolerance) may define the variation for various attributes of the part or component. As an example, the eBom may specify parts or components made from a first material, but parts or components made from another material may also be acceptable (e.g., based on the characteristics of the two different materials, such as tensile strength, insulating or conductive properties, and the like). If the particular part or component under consideration by the attribute variation logic 336 is not within the range of attribute variation (e.g., is one of the acceptable materials), the component logic 332 may select the next duplicate part to be evaluated by the attribute variation logic 336 and provide updated duplicate part data 334 associated with the next duplicate part to the attribute variation logic 336. If the particular part or component under consideration by the attribute variation logic 336 is within the range of attribute variation (or tolerance), the particular part or component may be provided to cost analysis logic 338, which may evaluate the cost of the particular part or component relative to the selected part or component from the eBom to determine whether the particular (duplicate) part or (duplicate) component is less expensive than the selected part or component from the eBom.Additionally, if a duplicate part or component is discovered that has a lower cost compared to the part identified in the eBom, this lower cost of the duplicate part may be considered during a later iteration by cost analysis logic 338. This process may continue in an iterative manner until all duplicate parts have been evaluated by attribute variability logic 336 and, if necessary, by cost analysis logic 338.
[0051] Similarly, component logic 332 may provide non-duplicate part data 340 to attribute variation logic 342. Non-duplicate part data 340 may correspond to features or characteristics of a particular part or component selected from zero or more non-duplicate components. As described above with reference to attribute variation logic 336, attribute variation logic 342 may be configured to determine whether a particular non-duplicate part or component is within the attribute variation (or tolerance) range associated with the product being designed. By way of example, attribute variation logic 342 may evaluate features or attributes of parts or components not specified in the eBom against features or attributes of non-duplicate parts identified in the eBom to determine whether a nearly identical part is available that is within the attribute variation range specified for the non-duplicate part under consideration. In some aspects, the features or attributes of one or more parts or components not specified in the eBom may be obtained from information stored in one or more databases (e.g., one or more databases 118 of FIG. 1 ). If the particular part or component being considered by the attribute variation logic 342 is not within the range of attribute variation, the component logic 332 may select the next non-duplicate part to be evaluated by the attribute variation logic 342 and provide updated non-duplicate part data 340 associated with the next non-duplicate part to the attribute variation logic 342.
[0052] If the particular part or component being considered by attribute variation logic 342 is within the attribute variation (or tolerance), information related to the particular part or component may be provided to dimensional variation logic 344. Dimensional variation logic 344 may be configured to determine whether the particular part or component conforms to the dimensional variation (or tolerance) associated with the product being designed. As an example, a product design may specify that a particular part or component, such as a rod, should have dimensions of 10 millimeters (mm) in length and 5 mm in diameter, but that parts within a ±10% variation range (e.g., 9 mm to 11 mm in length and / or 4.5 mm to 5.5 mm in diameter) may be utilized. In this example, dimensional variation logic 344 may determine whether the particular part has dimensions within the specified variation range (e.g., whether the dimensions of the particular part or component output by the attribute variation logic are within the dimensions of 9 mm to 11 mm in length and / or 4.5 mm to 5.5 mm in diameter). If the dimensions of the particular part or component are within the specified range of variation for the design, component logic 332 may select the next non-duplicate part via attribute variation logic 342 and provide updated non-duplicate part data 340 associated with the next non-duplicate part to attribute variation logic 342. If the dimensions of the particular part or component are within the specified range of variation for the design, dimensional variation logic 344 may provide information associated with the particular part or component to cost analysis logic 338, which may evaluate the cost of the particular part or component relative to the selected part or component from the eBom to determine if the particular part or component is less expensive than the selected non-duplicate part or component in the eBom. Furthermore, if a part or component is found that is less expensive than the part identified in the eBom, this lower cost may be considered by cost analysis logic 338 during subsequent iterations.This process may continue in an iterative manner until all non-duplicate parts have been evaluated by attribute variation logic 342 and, if necessary, by dimensional variation logic 344 and cost analysis logic 338 .
[0053] 3 , rationalization engine 300 may include 3D printing module 350. Portions of component data set 346 that include information identifying 3D printable parts or components from the eBom may be provided to 3D printing module 350 for analysis by component logic 352. Component logic 352 may be configured to provide information related to features or characteristics of particular parts or components selected from the 3D printable parts or components to attribute variability logic 354. As described above with reference to attribute variability modules 336 and 342, attribute variability logic 354 may be configured to determine whether a particular 3D printable part or component falls within a range of attribute variability (or tolerance) associated with the product being designed. If the particular 3D printable part or component being considered by attribute variation logic 354 is not within the range of attribute variation, component logic 352 may select the next 3D printable part or component to be evaluated by attribute variation logic 354 and provide updated 3D printable part or component data associated with the next 3D printable part to attribute variation logic 354. If the particular 3D printable part or component being considered by attribute variation logic 354 is within the range of attribute variation (i.e., tolerance), the particular 3D printable part or component may be provided to dimensional variation logic 356, which may be configured to determine whether the particular 3D printable part or component is within a specified range of dimensional variation (i.e., tolerance) for the product being designed, as described above with reference to dimensional variation module 344.In some aspects, 3D print module 350 may be further configured to utilize cost logic to evaluate whether the 3D printable near-identical parts identified by attribute variability module 354 and dimensional variability module 356 are associated with a lower cost than the 3D printable parts identified in the eBom or 3D printable parts identified by a previous iteration of the analysis performed by 3D print module 350. In some aspects, the operations of one or more of component logic 352, attribute variability logic 354, and dimensional variability logic 356 may include analysis of the 3D print file, metadata associated with the 3D print file, or other types of information associated with the 3D printable part or component. Exemplary aspects of analyzing 3D print files are described in commonly owned U.S. Patent No. 10,520,922, filed March 9, 2018, entitled "DECENTRALIZED SUPPLY CHAIN FOR THREE-DIMENSIONAL PRINTING BASED ON DISTRIBUTED LEDGER TECHNOLOGY," the entire contents of which are incorporated herein by reference.
[0054] Through the above-described operations of component characteristics module 310, substitution module 330, and 3D printing module 350, rationalization engine 300 may yield various types of data (e.g., component data 324, 346, 358) that may provide insight into product design and optimize and reduce the cost of producing the product being designed. Note that while substitution module 330 and 3D printing module 350 have been described primarily with respect to optimizing parts or components for cost, embodiments of rationalization engine 300 may also be configured to optimize product designs based on other factors, such as weight. By way of example, rather than or in addition to comparing the costs of candidate components or parts (e.g., parts identified by substitution module 330 and 3D printing module 350), rationalization engine 300 may also evaluate whether the weight of the candidate component is lower than the components it may potentially replace. If the weight of the product is reduced, the candidate component may be substituted for a previously defined component, thereby reducing the overall weight of the product. The ability to optimize product designs based on weight, or based on both weight and cost, would be advantageous when product weight is a significant factor in the overall design.
[0055] 3 above conceptually illustrates the operation of the rationalization engine 300, the operations described above can also be expressed mathematically. i denotes the various SKUs of a particular product, where i=1,2,3,…,n (n=number of SKUs), and C j denotes the various components across several SKUs of a product, j=1,2,3,…,m, m=number of components, and H k denotes the various features across each SKU of a product, where k = 1, 2, 3… o (o = number of features), and F x indicates the required SKU, and H p Let denote the required features and let p=1,2,3...l, where l=number of features.
[0056]
number
[0057] Let be the coefficient of each component across features, indicating the appropriateness of the component to the feature,
[0058]
number
[0059] In that case, each H p =H k In contrast,
[0060]
number
[0061] indicates the correlation coefficient of each component with respect to the feature.
[0062] coefficient
[0063]
number
[0064] The system may be trained using a particular set of values to determine . In some aspects, the training may be associated with machine learning module 214 of FIG. 2. After training, a machine learning model or technique may be used to predict the actual coefficient values. In some aspects, the machine learning technique may include polynomial regression.
[0065]
number
[0066] Assuming that,
[0067]
number
[0068] where e = residual. The error function J(e) can be defined as:
[0069]
number
[0070] where J(e) is the error function. The goal is to make the error function as small as possible.
[0071]
number
[0072] The following formula
[0073]
number
[0074] Solve it,
[0075]
number
[0076] By maintaining
[0077]
number
[0078] A predicted value of is obtained, which may be further used to train the system accordingly. All such correlation coefficients can be calculated over a period of time to establish relationships between components and features.
[0079]
number
[0080] A higher predicted value of may indicate that a particular component is better matched to the corresponding feature.
[0081]
number
[0082] Components with values between (-1 and 0.3) may be ignored because they are less likely to be related. This capability may be used to recommend to a designer a list of components that are most appropriate for a set of features required to develop a SKU or product. A graphical user interface may be presented to a user (e.g., a designer) to allow the user to review coefficients that indicate the relationships between components and features. The graphical user interface may include an option that allows the user to input modified coefficient values in place of predicted coefficient values if the user realizes that modified coefficient values better reflect the relationships between the features and components. Note that any modified coefficients may be incorporated into or incorporated into the machine learning model so that the modified coefficients can be output in a more accurate manner.
[0083] To perform the "should cost calculation" according to aspects of the present disclosure, O is calculated as O(C j ) = Component C j Let M denote a function that returns the corresponding component based on the correlation coefficient between the component and the feature given as input, where j=1,2,3,...,n, where n represents the number of components (e.g., available in one or more databases). M can be expressed as:
[0084]
number
[0085] In addition,
[0086]
number
[0087] may return multiple components, e.g., C1, C2, C3, each of which correlates with the feature under consideration.
[0088] High performance cost (G pc ) represents the cost of the most appropriate components being considered for the product design, and the list of high performance cost components = L pc G pc can be defined as follows:
[0089]
number
[0090] where n represents the number of components returned by the function M. pc can be defined as follows:
[0091]
number
[0092] Let X represent the "should cost" of a product design, then the list of components within the "should cost" (R sc ) can be defined. sc The cost of V sc and the feature H k The priority of q k where k=1, 2, 3, ..., n, and increasing order represents higher priority. Hereinafter, let T be a function that returns features given a priority, and let t(qk)=H kLet submax be a function that returns the second highest value in a set of variables, and let Y=max(q k ), first value Y=0, then =max(q k ) Finally, let w=T(max(q k -{Y})) Taking the above into consideration, R sc can be given by:
[0093]
number
[0094] During the ceremony,
[0095]
number
[0096] Using Y, the initial value Z=0, then
[0097]
number
[0098] and V sc can be expressed as:
[0099]
number
[0100] Equation (7) may continue to find a list of suitable components until Vsc≦X. In this way, the percentage difference in cost between the actual and “should cost” of each feature may be reduced, which may expedite the creation of the eBom.
[0101] As described above, once a designer completes a design and generates an eBom, it may be received by the rationalization engine along with cost calculation inputs. A master data set (e.g., one or more databases 118 of FIG. 1 ) may include information about all components or parts and their corresponding details. As described above, the rationalization engine may be configured to identify duplicate components and recommend lower-cost alternative (or substitute) components or parts for those listed in the eBom, and further recommend lower-cost near-identical components for duplicates and / or lower-cost near-identical components for non-duplicates. To that end, natural language processing (NLP) techniques may be used to determine duplicate components from the master data set (e.g., based on part names, part descriptions, and the like). As described above, NLP techniques may include the Levenshtein distance algorithm, which may be used to determine the closest correct word length, and phonetic algorithms, which identify words that sound similar but are spelled differently. A hash map may be used as the data structure for such queries to achieve better and faster search results. The output of the NLP process may include a number of components identified as duplicates and the percentage of components in the eBom that are identified as duplicates.
[0102] Below, c1,c2,c3,…,c n Let C be the list of identified duplicate parts, and n is the number of duplicate components. c1 ,C c2 ,C c3 ,…,C cn Let I be the corresponding cost of the overlapping component in question that can be determined from the master data set, and I c1 ,I c2 ,I c3 ,…,I cn Let P be the corresponding cost of the duplicate component in the eBom created by the designer. dLet T be the cost savings that can be realized due to the price difference (e.g., the price difference between I and C). Let T be the total cost of the eBom design, and the cost savings may be found according to: P d =(I c1 -C c1 )+(I c2 -C c2 )+(I c3 -C c3 )+…+(I cn -C cn ) (9) P d >0, the cost savings realized by identifying duplicate components is P d / T c *Can be expressed as 100%.
[0103] Several factors in the master data set may be used to determine near-identical parts. One such factor may be the lower cost of the substitute part recommended for the duplicate item (e.g., reference part attribute). Illustratively, the part attribute in the master data set may be 1-i is a1, a2, a3, …, a i and the part attribute in the eBom is represented by 1-j is b1, b2, b3, …, b j where j≦i. c1,c2,c3,…,c n Let be the list of identified duplicate parts, where n = the number of duplicate parts, and d1, d2, d3, …, d m Let Z be the list of parts in the master data set, and m = the total number of parts in the master data set. dm Let Ic1,I be the corresponding cost of any part m in the master data set, where m = the total number of parts in the master data set. c2 ,I c3 ,…,I cn Let U be the corresponding cost of the duplicated component in the eBom created by the designer, and let y be the total cost of the eBom. j Let % be the difference allowed to qualify as a substitute part, ±y j The % can be adjusted or set by the designer (or another user).
[0104] Next, for each duplicate part c n is checked against the master dataset and evaluates: [(c1(b1)*(100-y1) / 100≦d1(a1)≦c1(b1)*(100+y1) / 100)||(c1(b2)*(100-y2) / 100≦d1(a2)≦c1(b2)*(100+y2) / 100)…||…(c1(b) j )*(100-y j ) / 100≦d1(a j )≦c1(b j )*(100+y j ) / 100)&&Z d1 c1 )]?d1 is recommended as a substitute part (10) The comparison of c1 is n For d2, d3, …, d m etc., and may result in a list of substitute parts that can be recommended to the designer for all duplicate parts that have a lower cost compared to the cost associated with the eBom created by the designer.
[0105] Such a recommended m Following all this, the % of the reduced cost relative to the initial cost in the eBom may be calculated as follows:
[0106]
number
[0107] To identify lower-cost near-identical components (e.g., based on part attributes and part dimensions) to recommend for non-duplicate items, let v1, v2, v3, ..., vt be the number of dimension types in the master dataset, w1, w2, w3, ..., wx be the number of dimension types for parts in the eBom, g1, g2, g3, ..., gs be the list of non-duplicate parts in the eBom, and s + n represent the total number of components in the eBom. Let Hg1, Hg2, Hg3, ..., Hgs be the corresponding costs of the non-duplicate components in the eBom created by the designer, and ±zx% be the dimensional difference allowed to qualify as a near-identical part, which may be adjusted or set by the designer (or another user). Then, for each non-duplicate part gs, the algorithm checks against the master dataset by: [{(g1(b1)*(100-y1) / 100≦d1(a1)≦g1(b1)*(100+y1) / 100)||(g1(b2)*(100-y2) / 100≦d1(a2)≦g1(b2)*(100+y2) / 100)…||…(g1(b j )*(100-y j ) / 100≦d1(a j )≦g1(b j )*(100+y j ) / 100)}&&{(g1(w1)*(100-z1) / 100≦d1(v1)≦g1(w1)*(100+z1) / 100 )||(g1(w2)*(100-z2) / 100≦d1(v2)≦g1(w2)*(100+z2) / 100)||(g1(w x )*(100-z x ) / 100≦d1(v x )≦g1(w x )*(100+z x ) / 100)}&&(Z d1 <H g1 )]?d1 is recommended as a nearly identical part (12)
[0108] The comparison of g1 is s For d2, d3, …, d metc., resulting in a list of nearly identical parts that can be recommended to the designer for all non-duplicate parts, each of which may be lower cost than the corresponding part or component in the eBom created by the designer.
[0109] Such a recommended m Following all this, the % of the reduced cost relative to the initial cost in the eBom may be calculated as follows:
[0110]
number
[0111] Additionally, this algorithm may be combined with another algorithm to recommend 3D printable and non-3D printable parts or components based on the material and dimensions of the part or component. In one aspect, the output may be in the following format: 30% 3D printable; 70% non-3D printable. Furthermore, for non-3D printable parts, the algorithm may recommend nearly identical parts or components (e.g., based on part attributes and part dimensions) that are either lower cost or higher cost compared to the original cost in the eBom. Illustratively, r1, r2, r3, ..., r q Let q be the list of non-3D printable parts in the eBom, where q = the total number of non-3D printable parts. Then, for each non-3D printable part r q For , the algorithm may check against the master dataset by: [{(r1(b1)*(100-y1) / 100<=d1(a1)<=r1(b1)*(100+y1) / 100)||(r1(b2)*(100-y2) / 100<=d1(a2)<=r1(b2)*(100+y2) / 100)…||…(r1(b j )*(100-y j ) / 100<=d1(a j )<=r1(b j)*(100+y j ) / 100)}&&{(r1(w1)*(100-z1) / 100<=d1(v1)<=r1(w1)*(100+z1) / 100 )||(r1(w2)*(100-z2) / 100<=d1(v2)<=r1(w2)*(100+z2) / 100)||(r1(w x )*(100-z x ) / 100<=d1(v x )<=r1(w x )*(100+z x ) / 100)}]?d1 is recommended as an almost identical part
[0112] The comparison of r1 is q For d2, d3, …, d m etc., resulting in a list of nearly identical parts that can be recommended to the designer for all parts that cannot be 3D printed, the cost of which may be higher or lower compared to the original cost in the eBom.
[0113] Referring again to FIG. 1 , as indicated above, a user (e.g., a designer) may design a product to be manufactured using the designer device 130. As part of the design process, product features and capabilities may be defined and prioritized. The features and capabilities defined by the designer may be provided to the computing device 110, and more specifically, to the recommendation engine 120. As described above with reference to FIG. 2 , the recommendation engine 120 may use machine learning logic (e.g., the machine learning engine 214 of FIG. 2 ) to evaluate the features and capabilities and identify a set of components that correlate with the defined features or capabilities. Furthermore, a cost analyzer (e.g., the cost analyzer 220 of FIG. 2 ) of the recommendation engine 120 optimizes the product design for cost based on the components and features. The output of the recommendation engine 120 may then be provided to the designer device 130 and used to establish an eBom for the product being designed.
[0114] Once the eBom is created, it may be provided as input to the rationalization engine 122. As described above with reference to FIG. 3, the rationalization engine 122 may be configured to identify duplicate parts, non-duplicate parts, substitute parts, near-identical parts, 3D printable and non-3D printable parts, and the like. The operation of the rationalization engine 122 may enable the product design process to consider "cost to be" considerations, which are difficult to implement using currently available technology. The "cost to be" approach utilized by the rationalization engine 122 may enable the proposed product design (e.g., the product design defined in the initial eBom) to be optimized across a variety of factors and with reduced production costs based on duplicate parts, non-duplicate parts, substitute parts, near-identical parts, and 3D printable parts. Note that in addition to optimizing the eBom, the operation of the recommendation engine 120 and the rationalization engine 122 may also improve the speed at which products can be designed. By way of example, by leveraging machine learning logic to identify appropriate parts and components for the features and capabilities of the product being designed, recommendation engine 120 may enable a designer to more quickly perform part or component selection, which may allow an eBom of parts or components that correlate to the features or capabilities of the product being designed to be created more quickly. Additionally, the operation of rationalization engine 122 may be utilized to identify alternative products or components (i.e., replacements for the initial eBom) that reduce the cost of the product while also meeting the product's feature and capability requirements and within acceptable attribute and dimensional variability.
[0115] Once the eBom is complete, the product may be manufactured. By way of example, the eBom and other information (e.g., workflow, part or component logistics and procurement, etc.) may be created for product assembly or production. Using the eBom and other information, a manufacturing infrastructure 160 may be configured, and once configured, the newly designed product may be produced using the manufacturing infrastructure 160. By way of example, configuring the manufacturing infrastructure may include configuring a 3D printer to print one or more components of the designed product based on identified 3D printable parts or components. In some aspects, 3D print files may be generated based on CAD drawings or other specifications of the particular component or part. As another non-limiting example, a machine-based manufacturing tool (e.g., a robotic arm, driver, etc.) may be calibrated based on the dimensions of the selected one or more components. By way of example, if a first component is secured to a second component using fasteners (e.g., pins, rods, screws, etc.), the robotic assembly tool may be calibrated to align the first and second components, and then allow the robotic driver to secure the components together using the fasteners. The adjustments of the robotic assembly tools may be determined at least in part based on the dimensions or other information of the components associated with the final eBom. It should be noted that the exemplary operations described above are provided for purposes of illustration and not limitation, and other types of manufacturing infrastructure configuration operations may be utilized in conjunction with the concepts disclosed herein.
[0116] Referring to FIG. 4 , a flow diagram of an example method for optimizing a product design according to one or more aspects of the present disclosure is shown as method 400. In some implementations, the operations of method 400 may be stored as instructions (e.g., instructions 116 or instructions 136 of FIG. 1 ) that, when executed by one or more processors (e.g., one or more processors of a computing device or server, such as one or more processors 112 or one or more processors 132 of FIG. 1 ), cause the one or more processors to perform the operations of method 400. In some implementations, method 400 may be performed by a computing device, such as computing device 110 of FIG. 1 or designer device 130 of FIG. 1 . Certain aspects of method 400 may involve the operation of a recommendation engine, such as recommendation engine 120 of FIG. 1 and / or recommendation engine 200 of FIG. 2 , and a rationalization engine, such as rationalization engine 122 of FIG. 1 and / or rationalization engine 300 of FIG. 3 . Additional or alternative aspects of method 400 may involve the operation of a cloud-based system, such as design optimizer 152 of FIG. 1 .
[0117] At step 410, method 400 includes receiving, by one or more processors, information identifying a set of features for the product design. As described above, the set of features may include information related to the characteristics and capabilities of the product being designed. The set of features may be created based on input from a variety of sources, such as the customer for whom the product is being designed, input based on market research (e.g., which features are of interest to customers or the industry), input from the designer, or other sources. At step 420, method 400 includes executing machine learning logic by one or more processors on the set of features to identify a set of components. In some aspects, the machine learning logic may be the machine learning engine 214 of FIG. 2. As described above, the set of components identified by the machine learning logic may include a component corresponding to each feature in the set of features. In some aspects, identifying the components may also involve operation of a cost analyzer, as described above with reference to FIG. 2. The set of components may further be based on input received from a designer (e.g., via the designer device 130 of FIG. 1).
[0118] At step 430, method 400 includes determining, by one or more processors, characteristics associated with each component in the set of components. In some aspects, the characteristics may be determined using a rationalization engine, such as rationalization engine 122 of FIG. 1 or rationalization engine 300 of FIG. 3. As described above, the characteristics may be compared based on information extracted from the eBom using natural language processing techniques such as the Levenshtein algorithm, phonetic algorithms, and the like. At step 440, the method includes identifying, by the one or more processors, one or more candidate components as substitutes for one or more components in the set of components based on the characteristics. As described above, candidate components may be selected based on identifying duplicate components, nearly identical components, and 3D printable components.
[0119] At step 450, method 400 includes determining, by one or more processors, one or more changes that optimize the set of components based on at least one design metric and one or more candidate components. As described above with reference to FIG. 3 , the at least one design metric may include an attribute variation metric, a dimensional variation metric, a cost metric, a weight metric, or a combination thereof. The at least one design metric may be used to evaluate whether a candidate component is suitable as a replacement or substitute for a component identified in the set of components determined in step 420. Note that each of the various design metrics may evaluate the candidate component based on different criteria. By way of example, a dimensional variation metric may evaluate a dimension of the candidate component to determine whether the dimension of the candidate component is within an allowed variation level (or tolerance level), and a cost metric may determine whether the cost of the candidate component is higher or lower than a component in the set of components.
[0120] At step 460, method 400 includes outputting, by one or more processors, a final set of components for the product design based on the one or more modifications. The final set of components may include at least one candidate component selected from the one or more candidate components evaluated at step 450, and the at least one candidate component may be optimized by comparing the final set of components with the set of components with respect to at least one design metric. As an example, the final set of components including the at least one candidate component may be optimized with respect to a cost metric, such that producing a product using the final set of components is less expensive than using the set of components. As another example, the final set of components including the at least one candidate component may be optimized with respect to a weight metric, such that producing a product using the final set of components results in a lighter product than using the set of components.
[0121] In some aspects, the techniques described above may be utilized in the context of product design. By way of example, method 400 and other concepts described or illustrated with reference to FIGS. 1-4 may be utilized to provide a product design methodology that streamlines and accelerates the product design process. Furthermore, the ability to provide an automated or semi-automated product design methodology may enable products to be optimized across a variety of design metrics, resulting in products that are more efficient (e.g., lighter in weight) or more efficiently produced (e.g., produced at reduced cost, produced with components better suited to the product's characteristics, and the like). Furthermore, the design methodology and capabilities provided by the present disclosure may utilize feedback loops and machine learning to identify designer biases and preferences and take such biases and preferences into account to perform component selection more efficiently and quickly. Note that these are only some of the advantages provided by embodiments of the present disclosure, and other improvements and advantages will be readily apparent to those skilled in the art.
[0122] It should be noted that other types of devices and functionality may be provided in accordance with aspects of the present disclosure, and discussion of specific devices and functionality herein is provided for purposes of illustration and not limitation. It should be noted that the operations of method 400 of Figure 4 may be performed in any order, or that operations of one method may be performed while operations of another method are performed. It should also be noted that method 400 of Figure 4 may include other functionality or operations consistent with descriptions of the operations of system 100 of Figure 1, recommendation engine 200 of Figure 2, or rationalization engine 300 of Figure 3.
[0123] Those skilled in the art will appreciate that information and signals may be represented using any of a variety of different technologies and techniques. By way of example, the data, instructions, commands, information, signals, bits, symbols, and chips that may be referenced throughout the above description may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof.
[0124] The components, functional blocks, and modules described herein with respect to Figures 1-4 include, among other examples, processors, electronic devices, hardware devices, electronic components, logical circuits, memories, software code, firmware code, or any combination thereof. Furthermore, features discussed herein may be implemented by special purpose processor circuitry, executable instructions, or a combination thereof.
[0125] Furthermore, those skilled in the art will readily appreciate that the various illustrative logic blocks, modules, circuits, and algorithm steps described in connection with the disclosure herein may be implemented as electronic hardware, computer software, or a combination of both. To clearly illustrate this interchangeability of hardware and software, the various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends on the particular application and design constraints imposed on the overall system. Those skilled in the art may implement the described functionality in various ways for each particular application, and such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure. Furthermore, those skilled in the art will readily appreciate that the ordering or combination of components, methods, or interactions described herein are merely examples, and that the components, methods, or interactions of various aspects of the present disclosure may be combined or performed in ways other than those illustrated and described herein.
[0126] The various example logic, logic blocks, modules, circuits, and algorithmic processes described in connection with the implementations disclosed herein may be implemented as electronic hardware, computer software, or a combination of both. The interchangeability of hardware and software has been described broadly in terms of functionality and is illustrated in the various example components, blocks, modules, circuits, and processes described above. Whether such functionality is implemented in hardware or software depends upon the particular application and design constraints imposed on the overall system.
[0127] The hardware and data processing equipment used to implement the various example logic, logic blocks, modules, and circuits described in connection with the aspects disclosed herein may be implemented or performed using general-purpose single-chip or multi-chip processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices designed to perform the functions described herein, discrete gate or transistor logic, discrete hardware components, or any combination thereof. A general-purpose processor may be a microprocessor, or any conventional processor, controller, microcontroller, or state machine. In some implementations, a processor may also be implemented as a combination of computing devices, such as a combination of a DSP and a microprocessor, multiple microprocessors, one or more microprocessors in combination with a DSP core, or any other similar configuration. In some implementations, particular processes and methods may be performed by circuitry specific to a given function.
[0128] In one or more aspects, the functions described may be implemented in hardware, digital electronic circuitry, computer software, firmware, including the structures disclosed herein and their structural equivalents, or any combination thereof. Further, implementations of the subject matter described herein may be implemented as one or more computer programs, i.e., as one or more modules of computer program instructions encoded on a computer storage medium for execution by or to control the operation of a data processing apparatus.
[0129] If implemented in software, the functions may be stored on or transmitted over as one or more instructions or code on a computer-readable medium. The processes of a method or algorithm disclosed herein may be implemented in a software module executable by a processor, which may reside on a computer-readable medium. Computer-readable media includes both computer storage media and communication media, including any medium that may enable a computer program to be transferred from one place to another. A storage medium may be any available medium that can be accessed by a computer. By way of example, and not limitation, such computer-readable media may include random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store desired program code in the form of instructions or data structures and that can be accessed by a computer. Furthermore, any connection may be qualified as a computer-readable medium. As used herein, disk (disk) includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk, hard disk, solid-state disk, and Blu-ray disc, where disks typically reproduce data magnetically and discs reproduce data optically using lasers. Combinations of the above should also be included within the scope of computer-readable media. Furthermore, the operations of a method or algorithm may reside as one or any combination or set of codes and instructions on machine-readable and computer-readable media, which may be incorporated into a computer program product.
[0130] Those skilled in the art will readily appreciate various modifications to the implementations described in this disclosure. The generic principles defined herein may be applied to other implementations without departing from the spirit or scope of the disclosure. Thus, the scope of the claims is not intended to be limited to the implementations shown herein, but is to be accorded the widest scope consistent with the disclosure, principles, and novel features disclosed herein.
[0131] Furthermore, those skilled in the art will appreciate that the terms "upper" and "lower" may be used to facilitate describing the drawings, and indicate relative positions corresponding to the orientation of the drawings on an oriented page, and may not reflect the correct orientation of any implemented device.
[0132] Certain features described in this specification in the context of separate implementations may also be implemented in combination in a single implementation. Conversely, various features described in the context of a single implementation may also be implemented in multiple implementations separately or in any suitable combination of components. Furthermore, while features may be described above as operating in a particular combination, and may even be initially claimed as such, in some cases one or more features of a claimed combination may be deleted from the combination, and the claimed combination may be directed to any component of the combination or any variation of the components of the combination.
[0133] Similarly, although operations are shown in a particular order in the figures, this should not be understood as requiring that the operations be performed in the particular order or sequence shown, or that all illustrated operations be performed, to achieve desirable results. Furthermore, the figures may also generally depict another example process in the form of a flow diagram. However, other operations not shown may be incorporated into the example of the generally depicted process. For example, one or more additional operations may be performed before, after, simultaneously with, or between any of the illustrated operations. Multitasking and parallel processing may be advantageous in certain situations. Furthermore, the separation of various system components in the above-described implementations should not be understood as requiring such separation in all implementations; it should be understood that the described program components and systems may generally be integrated into a single software product or packaged into multiple software products. Furthermore, other implementations are within the scope of the following claims. In some cases, the actions recited in the claims may be performed in a different order and still achieve desirable results.
[0134] As used herein, including the claims, various terminology is for the purpose of describing particular implementations only and is not intended to limit the implementation. By way of example, as used herein, ordinal terms (e.g., "first," "second," "third," etc.) used to modify elements, such as structures, components, acts, etc., do not in themselves indicate any priority or order of the element relative to other elements, but rather merely distinguish the element from other elements having the same name (apart from the use of the ordinal term). The term "coupled" is defined as connected, but not necessarily directly, and not necessarily mechanically. Two items that are "coupled" may be inseparable from one another. The term "or," when used in a list of two or more items, means that any one of the listed items may be used alone, or any combination of two or more of the listed items may be used. By way of example, if a composition is described as including components A, B, or C, the composition may include only A, only B, only C, a combination of A and B, a combination of A and C, a combination of B and C, or a combination of A, B, and C. Furthermore, as used herein, including the claims, "or" used in a list of items such as "at least one of" indicates a disjunctive list, such as, for example, a list such as "at least one of A, B, or C" meaning any of A, or B, or C, or AB, or AC, or BC, or ABC (i.e., A and B and C), or any combination thereof. The term "substantially" is defined to be generally, but not necessarily entirely, inclusive of what is specified, as will be appreciated by those skilled in the art; for example, "substantially 90 degrees" includes 90 degrees, and "substantially parallel" includes parallel.In any aspect disclosed, the term "substantially" may be replaced with "within [a percentage of]" what is specified, including 0.1 percent, 1 percent, 5 percent, and 10 percent. The term "approximately" may be replaced with "within 10 percent of" what is specified. The phrase "and / or" means and / or.
[0135] While the aspects of the present disclosure and their advantages have been described in detail, it will be understood that in light of this, various modifications, substitutions, and alterations can be made without departing from the spirit of the present disclosure, as defined by the appended claims. Moreover, the scope of the present application is not intended to be limited to the particular implementations of the processes, machines, manufacture, compositions of matter, means, methods, and acts described herein. As will be readily apparent from this disclosure to those skilled in the art, any now-existing or later-developed procedure, machine, manufacture, composition of matter, means, method, or act that performs substantially the same function or achieves substantially the same result as the corresponding aspects described herein may be utilized in accordance with the present disclosure. Accordingly, the appended claims are intended to include within their scope such procedures, machines, manufacture, compositions of matter, means, methods, or acts.
[0136] The systems and methods described herein may relate to one or more of the following aspects.
[0137] A first aspect may include a method that includes receiving, by one or more processors, information identifying a set of features for a product design; executing, by the one or more processors, machine learning logic on the set of features to identify a set of components, the set of components including a component corresponding to each feature in the set of features; determining, by the one or more processors, characteristics associated with each component in the set of components; identifying, by the one or more processors, one or more candidate components as replacements for one or more components in the set of components based on the characteristics; determining, by the one or more processors, one or more modifications that optimize the set of components based on the at least one design metric and the one or more candidate components; and outputting, by the one or more processors, a final set of components for the product design based on the one or more modifications, the final set of components including at least one candidate component selected from the one or more candidate components, the at least one candidate component optimizing the final set of components relative to the set of components with respect to the at least one design metric.
[0138] A second aspect may include the method of the first aspect, wherein the machine learning logic is configured to output a correlation coefficient representing a correlation between each component and the set of features, and the method includes determining the set of components based at least in part on the correlation coefficients output by the machine learning logic.
[0139] A third aspect may include the method of any preceding aspect, wherein identifying one or more candidate components includes identifying duplicate components in the product design, and the at least one design metric includes an attribute variation metric and a cost metric.
[0140] A fourth aspect may include the method of any of the preceding aspects, wherein identifying one or more candidate components includes identifying non-redundant components for the product design, and the at least one design metric includes an attribute variation metric, a dimensional variation metric, and a cost metric.
[0141] A fifth aspect may include the method of any preceding aspect, wherein identifying one or more candidate components includes identifying 3D printable components for the product design, and the at least one design metric includes an attribute variation metric and a dimensional variation metric.
[0142] A sixth aspect may include the method of any preceding aspect, wherein the at least one design metric includes an attribute variation metric, a dimensional variation metric, a cost metric, a weight metric, or a combination thereof.
[0143] A seventh aspect may include the method of any preceding aspect, wherein the step of identifying one or more candidate components as substitutes for one or more components in the set of components based on the characteristics is performed iteratively based on the set of characteristics.
[0144] An eighth aspect may include the method of the seventh aspect, further including, during at least one iteration of the identifying step, identifying a first candidate component as a substitute for a second candidate component, the second candidate component being selected as a substitute for a component in the set of components during a previous iteration of the identifying step.
[0145] A ninth aspect may include a system including a memory and one or more processors communicatively coupled to the memory, the one or more processors configured to: receive information identifying a set of features for a product design; execute machine learning logic on the set of features to identify a set of components, the set of components including a component corresponding to each feature in the set of features; determine characteristics associated with each component in the set of components; identify one or more candidate components as replacements for one or more components in the set of components based on the characteristics; determine one or more modifications that optimize the set of components based on the at least one design metric and the one or more candidate components; and output a final set of components for the product design based on the one or more modifications, the final set of components including at least one candidate component selected from the one or more candidate components, the at least one candidate component optimizing the final set of components with respect to the at least one design metric.
[0146] A tenth aspect may include the system of the ninth aspect, wherein the machine learning logic is configured to output correlation coefficients representing correlations between each component and the set of features, and the one or more processors are configured to receive feedback based on a selection of components by a designer and update the correlation coefficients output by the machine learning logic based on the feedback.
[0147] An eleventh aspect may include the system of any of the ninth to tenth aspects, wherein identifying one or more candidate components includes identifying duplicate components in the product design, and the at least one design metric includes an attribute variation metric and a cost metric.
[0148] A twelfth aspect may include the system of any of the ninth to eleventh aspects, wherein identifying one or more candidate components includes identifying non-redundant components for the product design, and the at least one design metric includes an attribute variation metric, a dimensional variation metric, and a cost metric.
[0149] A thirteenth aspect may include the system of any of the ninth to twelfth aspects, wherein identifying one or more candidate components includes identifying 3D printable components of the product design, and wherein the at least one design metric includes an attribute variation metric and a dimensional variation metric.
[0150] A fourteenth aspect may include the system of any of the ninth to thirteenth aspects, wherein the at least one design metric includes an attribute variation metric, a dimensional variation metric, a cost metric, a weight metric, or a combination thereof.
[0151] A fifteenth aspect may include the system of any of the ninth through fourteenth aspects, wherein the one or more processors are configured to iteratively identify one or more candidate components as substitutes for one or more components in the set of components based on the characteristics, each iteration associated with a different one of the characteristics; and, during at least one iteration of the identifying, identify a first candidate component as a substitute for a second candidate component, the second candidate component having been selected as a substitute for a component in the set of components during a previous iteration of the identifying.
[0152] A sixteenth aspect may include a non-transitory computer-readable storage medium storing instructions that, when executed by one or more processors, cause the one or more processors to perform operations including receiving information identifying a set of features for a product design; executing machine learning logic on the set of features to identify a set of components, the set of components including a component corresponding to each feature in the set of features; determining characteristics associated with each component in the set of components; identifying one or more candidate components as replacements for one or more components in the set of components based on the characteristics; determining one or more modifications that optimize the set of components based on the at least one design metric and the one or more candidate components; and outputting a final set of components for the product design based on the one or more modifications, the final set of components including at least one candidate component selected from the one or more candidate components, the at least one candidate component optimizing the final set of components with respect to the at least one design metric.
[0153] A seventeenth aspect may include the non-transitory computer-readable storage medium of the sixteenth aspect, wherein the machine learning logic is configured to output a correlation coefficient representing a correlation between each component and the set of features, and the method includes determining the set of components based at least in part on the correlation coefficients output by the machine learning logic.
[0154] An eighteenth aspect may include the non-transitory computer-readable storage medium of the seventeenth aspect, wherein the operations further include modifying the at least one correlation coefficient output by the machine learning logic and training the machine learning based at least in part on the modified at least one correlation coefficient.
[0155] A nineteenth aspect may include the non-transitory computer-readable storage medium of any of the sixteenth through eighteenth aspects, wherein the operations further include configuring a manufacturing infrastructure based on the final set of components, and wherein the designed product is at least partially produced by the manufacturing infrastructure based on the configuration.
[0156] A twentieth aspect may include the non-transitory computer-readable storage medium of any of the sixteenth through nineteenth aspects, wherein identifying one or more candidate components as substitutes for one or more components in the set of components based on the characteristics is performed iteratively based on the set of characteristics, and the operations include, during at least one iteration of the identifying, identifying a first candidate component as a substitute for a second candidate component, the second candidate component being selected as a substitute for a component in the set of components during a previous iteration of the identifying.
Claims
1. receiving, by one or more processors, information identifying a set of features relevant to a product design; executing, by the one or more processors, machine learning logic on the set of features to identify a set of components, the set of components including a component corresponding to each feature in the set of features; determining, by the one or more processors, characteristics associated with each component in the set of components, the characteristics including one or more of: component name, component description, material attributes, creation date, dimensions, number of materials included in the component, information about material groups, inventory data, cost data, one or more suppliers that supply the component, information about component groups, and weight information; identifying, by the one or more processors, one or more candidate components as substitutes for one or more components in the set of components based on the characteristics, wherein identifying the one or more candidate components includes identifying duplicate components in the product design, wherein identifying duplicate components in the product design comprises: determining whether the duplicate components are within a range of variation for an attribute associated with the product design, where the duplicate components are determined to be within a range of variation for the attribute when the duplicate components are made from one of a plurality of acceptable materials; determining whether the duplicate component has a lower cost than one or more components in the set of components when the duplicate component is determined to be within a range of attribute variation; determining, by the one or more processors, one or more modifications that optimize the set of components based on at least one design metric and the one or more candidate components, wherein the at least one design metric includes an attribute variation metric and a cost metric; outputting, by the one or more processors, a final set of components for the product design based on the one or more modifications, the final set of components including at least one candidate component selected from the one or more candidate components, the at least one candidate component optimizing the final set of components compared to the set of components with respect to the at least one design metric; A method comprising:
2. The machine learning logic is configured to output a correlation coefficient representing a correlation between each component and the set of features, and the method further comprises: determining the set of components based at least in part on the correlation coefficients output by the machine learning logic; The method of claim 1 , comprising:
3. 2. The method of claim 1 , wherein identifying one or more candidate components comprises identifying non-redundant components of the product design, and wherein the at least one design metric comprises an attribute variation metric, a dimensional variation metric, and a cost metric.
4. 2. The method of claim 1 , wherein identifying one or more candidate components comprises identifying 3D printable components of the product design, and wherein the at least one design metric comprises an attribute variation metric and a dimensional variation metric.
5. The method of claim 1 , wherein the at least one design metric comprises a dimensional variation metric, a weight metric, or a combination thereof.
6. The method of claim 1 , wherein identifying one or more candidate components as replacements for one or more components in the set of components based on the characteristics is performed iteratively based on the set of characteristics.
7. 7. The method of claim 6, further comprising identifying, during at least one iteration of the identifying step, a first candidate component as a substitute for a second candidate component, the second candidate component having been selected as a substitute for a component in the set of components during a previous iteration of the identifying step.
8. Memory and one or more processors communicatively coupled to the memory; wherein the one or more processors: receiving information identifying a set of features related to a product design; running machine learning logic on the set of features to identify a set of components, the set of components including a component corresponding to each feature in the set of features; determining characteristics associated with each component in the set of components, the characteristics including one or more of a component name, a component description, material attributes, a creation date, dimensions, some materials included in the component, information about material groups, inventory data, cost data, one or more suppliers that supply the component, information about component groups, and weight information; identifying one or more candidate components as substitutes for one or more components in the set of components based on the characteristics, wherein identifying the one or more candidate components includes identifying duplicate components in the product design, wherein identifying the duplicate components in the product design includes: determining whether the duplicate components are within a range of variation for an attribute associated with the product design, wherein the duplicate components are determined to be within a range of variation for the attribute when the duplicate components are made from one of a plurality of acceptable materials; identifying the one or more candidate components, including determining whether the duplicate component has a lower cost than one or more components in the set of components when the duplicate component is determined to be within a range of attribute variation; determining one or more modifications that optimize the set of components based on at least one design metric and the one or more candidate components, wherein the at least one design metric includes an attribute variation metric and a cost metric; outputting a final set of components for the product design based on the one or more modifications, the final set of components including at least one candidate component selected from the one or more candidate components, the at least one candidate component optimizing the final set of components compared to the set of components with respect to the at least one design metric; The system is configured to:
9. The machine learning logic is configured to output a correlation coefficient representing a correlation between each component and the set of features, and the one or more processors: receiving feedback based on a designer's selection of components; updating the correlation coefficients output by the machine learning logic based on the feedback; The system of claim 8 , configured to:
10. 9. The system of claim 8, wherein the identifying one or more candidate components comprises identifying non-redundant components of the product design, and the at least one design metric comprises an attribute variation metric, a dimensional variation metric, and a cost metric.
11. 10. The system of claim 8, wherein the identifying one or more candidate components comprises identifying 3D printable components of the product design, and the at least one design metric comprises an attribute variation metric and a dimensional variation metric.
12. The system of claim 8 , wherein the at least one design metric comprises a dimensional variation metric, a weight metric, or a combination thereof.
13. The one or more processors: iteratively identifying the one or more candidate components as substitutes for one or more components in the set of components based on the characteristics, each iteration associated with a different one of the characteristics; during at least one iteration of said identifying, a first candidate component as a substitute for a second candidate component, said second candidate component having been selected as a substitute for a component in said set of components during a previous iteration of said identifying; and The system of claim 8 , configured to:
14. 1. A non-transitory computer-readable storage medium storing instructions that, when executed by one or more processors, cause the one or more processors to perform operations, the operations including: receiving information identifying a set of features related to a product design; running machine learning logic on the set of features to identify a set of components, the set of components including a component corresponding to each feature in the set of features; determining characteristics associated with each component in the set of components, the characteristics including one or more of a component name, a component description, material attributes, a creation date, dimensions, some materials included in the component, information about material groups, inventory data, cost data, one or more suppliers that supply the component, information about component groups, and weight information; identifying one or more candidate components as substitutes for one or more components in the set of components based on the characteristics, wherein identifying the one or more candidate components includes identifying duplicate components in the product design, wherein identifying the duplicate components in the product design includes: determining whether the duplicate components are within a range of variation for an attribute associated with the product design, wherein the duplicate components are determined to be within a range of variation for the attribute when the duplicate components are made from one of a plurality of acceptable materials; identifying the one or more candidate components, including determining whether the duplicate component has a lower cost than one or more components in the set of components when the duplicate component is determined to be within a range of attribute variation; determining one or more modifications that optimize the set of components based on at least one design metric and the one or more candidate components, wherein the at least one design metric includes an attribute variation metric and a cost metric; outputting a final set of components for the product design based on the one or more modifications, the final set of components including at least one candidate component selected from the one or more candidate components, the at least one candidate component optimizing the final set of components compared to the set of components with respect to the at least one design metric; 1. A non-transitory computer-readable storage medium comprising:
15. The machine learning logic is configured to output a correlation coefficient representing a correlation between each component and the set of features, and the operation comprises: determining the set of components based at least in part on the correlation coefficients output by the machine learning logic; 15. The non-transitory computer-readable storage medium of claim 14, comprising:
16. The operation is modifying at least one correlation coefficient output by the machine learning logic; training the machine learning based at least in part on the modified at least one correlation coefficient; 16. The non-transitory computer-readable storage medium of claim 15, further comprising:
17. 15. The non-transitory computer-readable storage medium of claim 14, wherein the operations further include configuring a manufacturing infrastructure based on the final set of components, wherein the designed product is at least partially produced by the manufacturing infrastructure based on the configuration.
18. Identifying one or more candidate components as replacements for one or more components in the set of components based on the characteristics is performed iteratively based on the set of characteristics, the operation comprising: identifying, during at least one iteration of said identifying, a first candidate component as a substitute for a second candidate component, said second candidate component having been selected as a substitute for a component in said set of components during a previous iteration of said identifying, said identifying said first candidate component as a substitute for said second candidate component.
15. The non-transitory computer-readable storage medium of claim 14, comprising:
Citation Information
Patent Citations
Methods for Conducting Manufacturing Design Checks
JP2016536672A
Manufacturing design modification system
JP2020532814A
Space Exploration with Quantitative Pruning and Ranking System and Method
US20170147719A1