When a potential customer requires services for a project, the customer typically distributes bids to potential providers. The bid includes a set of requirements for the project. Each interested provider creates and submits a bid response that includes various parameters on how the organization will meet the needs of the project. When an organization wins the bid, the organization then creates a project execution plan for delivering the goods or services.
However, the bid response generation process and the project plan generation process are typically separate processes operating with different goals. The goal of the bid response generating process is to win the bid, while the goal of the project execution plan process is to deliver the promised results. Conventional bid response and project execution plan generation processes are not integrated, where bid responses are generated without sufficient consideration for the requirements for the successful execution of the project. This can lead to bid responses which are overly aggressive, which increases the chances of winning the bid but may inadvertently lower the chances of successfully executing the project. However, overly conservative bid responses may increase the chances of successful project execution but would lower the chances of winning the bid. Due to the lack of integration between the two processes, unintentional difficulties in winning bids or successfully executing projects may result.
Disclosed herein is a system for optimized bid response and project execution plan generation, and a computer program product and method as specified in the independent claims. Embodiments of the present invention are given in the dependent claims. Embodiments of the present invention can be freely combined with each other if they are not mutually exclusive.
According to an embodiment of the present invention, a system compares current bid requirements of a current bid with prior bid requirements of prior bids. For prior bids with prior bid requirements matching the current bid requirements, the system retrieves prior bid responses corresponding to the prior bids and comprising a prior bid response status of win. The system further retrieves prior projects corresponding to the prior bid responses. The system determines a set of candidate bid response parameters with a highest probability of winning the current bid and with a probability of project success meeting a configured minimum threshold, based on the prior bid responses and the prior projects. The system generates a current bid response to include the candidate bid response parameters. After winning the current bid, the system determines a set of candidate project plan parameters with highest probability of project success, based on the current bid response, the prior bid responses, and the prior projects. The system generates a current project corresponding to the current bid response to comprise the candidate project plan parameters.
A system in accordance with some embodiments of the present invention balances the chances of winning a bid with the chances of successful execution of a corresponding project through an iterative optimization technique, as described herein. The system includes two processes. In a first process, the system assists in generating a bid response that has a higher chance of winning a bid while maintaining at least a minimum chance of successful project execution. In a second process, after winning the bid, the system optimizes the project execution plan for a winning bid response to increase the chances of successful execution given the constraints imposed by the winning bid response.
The system further stores a history of bids, bid responses, and projects. Each prior bid 121 includes prior bid requirements 123 describing the constraints of previously requested goods or services. Corresponding to each prior bid are one or more prior bid responses 124, each comprising prior response parameters 125 which described how an organization proposed to satisfy the prior bid requirements 123, and a prior bid response status 122 indicating whether the bid was won or lost. For the prior bid response 124 that were won, the history includes a corresponding prior project 131, which includes prior project plan parameters 133 and a prior project status 132. The prior project plan parameters 133 defined the execution plan for the project, and the prior project status 132 includes whether the project execution was a success, a partial success, or a failure.
In the bid response process, the system compares current bid requirements 103 of a current bid 101 with prior bid requirements 123 of prior bids 121 (201). For the prior bids 121 with prior bid requirements 123 matching the current bid requirements 103, the system retrieves the corresponding prior bid responses 124 that have a prior bid response status 122 of a win (202). The system further retrieves the prior projects 131 corresponding to the prior bid responses 124 (203). Using a machine learning algorithm and with the prior bid responses 124 and prior projects 131 as input, the system determines a set of candidate bid response requirements with the highest probability of winning the current bid 101 and with a probability of project success that meets a minimum threshold (204). The system then generates the current bid response 104 to comprise the set of candidate bid response parameters as the current response parameters 105 (205).
After the current bid response 104 wins the current bid 101, the system implements the project execution process. Using a machine learning algorithm and with the current bid response 104, prior bid responses 124, and prior projects 131 as input, the system determines a set of project plan parameters 113 with a highest probability of project success (211). The system generates the current project 111 to comprise the candidate project plan parameters as the current project plan parameters 113 (212).
Reinforcement learning is a type of machine learning technique that enables an “agent” to learn in an interactive environment by trial and error using feedback from its own actions and experiences. Reinforcement learning is modeled with an “agent”, an “environment”, an “action”, and a “reward”. An agent is an entity which performs actions in an environment to gain some reward. An action is a set of all possible moves the agent can make. An environment is a scenario the agent has to face. The environment takes the agent's current state and action as input, and returns as output the agent's reward and its next state. A state is a current situation returned by the environment. A reward is an immediate return sent back from the environment to evaluate the last action by the agent. In the context of the bid response process, the action is to generate bid responses. The environment includes the prior bid requirements 103, the corresponding prior bid responses 124, and the corresponding prior projects 131. The state is the current bid requirements 103 and the generated current bid response 104 and its parameters 105. The reward is the highest probability of winning the current bid 101 with the probability of successful project execution meeting the configured minimum threshold. Unlike supervised learning, where feedback provided to the agent contains the correct set of actions for performing a task, reinforcement learning uses rewards and punishment as signals for positive and negative behavior. As compared to unsupervised learning, reinforcement learning is different in terms of goals. While the goal in unsupervised learning is to find similarities and differences between data points, in reinforcement learning the goal is to find a suitable action model that would maximize the total cumulative reward of the agent. Reinforcement learning is able to run through the same states over and over again while experimenting with different actions, until it can infer which actions are best from which states. Reinforcement learning addresses the difficult problem of correlating immediate actions with delayed returns. In a delayed return environment, it can be difficult to understand which actions lead to which outcomes over many time steps. Reinforcement learning differs from humans in its ability to run parallel experiments at once and/or allows actions to be input into a “black box” environment to receive a maximized rewards output, where the environment is extracted at least from prior bid responses and prior project repositories without requiring human input or knowledge.
Conventionally, the bid response generation and project execution operations are different operations with different motivations or goals. The people involved in the two operations are often not the same and a span of time and multiple steps or events commonly exist between them. In applying reinforcement learning according to the present invention, cooperative consideration of the actions and rewards is realized between the bid response and project plan execution generation. Unlike the known and conventional manner of generating bid responses separately from the project execution plan generation, embodiments of the present invention provide an end to end intelligent framework that can scientifically balance the interest of the bid response and project execution functions through the iterative optimization techniques of reinforcement learning.
In the context of the project execution process, the action in the reinforcement learning is to generate the candidate project plan parameters. The environment includes the current bid response 104, prior projects 131, and the corresponding prior project plan parameters 133. The state is the project plan. The reward is to maximize the probability of project success from the current state.
The present invention may be a system, a method, and/or a computer program product. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention.
The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.
Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.
Computer readable program instructions for carrying out operations of the present invention may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like, and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present invention.
Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions.
These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.
The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.
The descriptions of the various embodiments of the present invention have been presented for purposes of illustration, but are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terminology used herein was chosen to best explain the principles of the embodiments, the practical application or technical improvement over technologies found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.