We lifted 2 functions out of this paper's own repositories and ran 2 of them in a sandbox. "Ran" means the function executed on a synthesized input and returned a value. It is not a reproduction of the paper's results.
| Repository | Role | Ran |
|---|---|---|
| CryoCardiogram/ijcai-cache-loss-pno | canonical | 2 of 2 |
| Function | Status | Where it lives |
|---|---|---|
| check_nce_torun | Ran | CryoCardiogram/ijcai-cache-loss-pno/KnapsackExperiment/ijcai_nce_knap_test.py pointer only (licence: NONE) · get_code("138e9d4441b7bade") |
| linear | Ran | CryoCardiogram/ijcai-cache-loss-pno/methods.py pointer only (licence: NONE) · get_code("88f6917662a82d31") |
Some links come from the archived Papers with Code dataset (CC BY-SA 4.0): attribution and licence.
Many decision-making processes involve solving a combinatorial optimization problem with uncertain input that can be estimated from historic data. Recently, problems in this class have been successfully addressed via end-to-end learning approaches, which rely on solving one optimization problem for each training instance at every epoch. In this context, we provide two distinct contributions. First, we use a Noise Contrastive approach to motivate a family of surrogate loss functions, based on viewing non-optimal solutions as negative examples. Second, we address a major bottleneck of all predict-and-optimize approaches, i.e. the need to frequently recompute optimal solutions at training time. This is done via a solver-agnostic solution caching scheme, and by replacing optimization calls with a lookup in the solution cache. The method is formally based on an inner approximation of the feasible space and, combined with a cache lookup strategy, provides a controllable trade-off between training time and accuracy of the loss approximation. We empirically show that even a very slow growth rate is enough to match the quality of state-of-the-art methods, at a fraction of the computational cost.
The same record, over MCP at https://syntology.ai/mcp:
get_harvested_code_for_paper("2011.05354")
get_code_for_paper("2011.05354")
have("2011.05354")
Connect an agent — have() is free.