A computer-readable storage medium on which are stored instructions that, when executed, cause a processor of a programmable device to perform operations of:
- receiving first problem information from a first computing device of a first user, the first problem information identifying a first objective function representing a first black-box optimization problem for which a solution is being requested, and input information indicating one or more inputs to the first objective function;
- causing the first problem information to be presented on a first problem user interface of a virtual exchange, wherein the first problem user interface includes a description of the first problem, a first candidate solution queue comprising candidate solutions to the optimization problem that have been provided by one or more second users, a list of processed candidate solutions including candidate solutions that have been obtained from the first candidate solution queue and provided as an input to a simulator to execute the first objective function with a respective one of the candidate solutions as the input to the first objective function, and wherein the user interface is accessible to the first user from the first computing device and one or more second computing devices wherein the one or more second computing devices are associated with a respective one of the one or more second users;
- receiving a first candidate solution to the first objective function from a respective computing device of the one or more second computing devices associated with a respective user of the one or more second users, wherein the first candidate solution includes one or more first candidate input values to be provided as an input to the objective function;
- inserting the first candidate solution into the candidate solution queue associated with the first problem;
- automatically causing the first problem user interface to be updated to display the first candidate solution in the first candidate solution queue;
- providing the first candidate solution as the input to a first simulator to cause the simulator to execute the first objective function on the first candidate solution;
- obtaining, as an output from the first simulator, a first objective value generated by the first objective function responsive to executing the first objective function;
- removing the first candidate solution from the first candidate solution queue;
- inserting the first candidate solution and the first objective value into a list of processed candidate solutions;
- automatically causing the first problem user interface to be updated to display the first candidate solution and the first objective value in the list of processed candidate solutions;
- determining a first improvement value provided by the first candidate solution by analyzing one or more previously determined solutions to the first black-box optimization problem and the first objective value to determine an amount of improvement provided by the first candidate solution;
- determining a first reward by analyzing the first improvement value using a reward function associated with the first problem;
- and
- notifying the second user that first candidate solution has earned the second user the first reward.