From 68e8889ee318c5f78394142772e416f64ee7f538 Mon Sep 17 00:00:00 2001 From: FiveMovesAhead Date: Thu, 16 Jan 2025 21:03:23 +0000 Subject: [PATCH] Compiled knapsack/better_knapp --- .../better_knapp/benchmarker_outbound.rs | 117 ++++++++++++++++++ .../src/knapsack/better_knapp/commercial.rs | 117 ++++++++++++++++++ .../src/knapsack/better_knapp/inbound.rs | 117 ++++++++++++++++++ .../better_knapp/innovator_outbound.rs | 117 ++++++++++++++++++ .../src/knapsack/better_knapp/mod.rs | 4 + .../src/knapsack/better_knapp/open_data.rs | 117 ++++++++++++++++++ tig-algorithms/src/knapsack/mod.rs | 3 +- tig-algorithms/src/knapsack/template.rs | 26 +--- .../wasm/knapsack/better_knapp.wasm | Bin 0 -> 152401 bytes 9 files changed, 593 insertions(+), 25 deletions(-) create mode 100644 tig-algorithms/src/knapsack/better_knapp/benchmarker_outbound.rs create mode 100644 tig-algorithms/src/knapsack/better_knapp/commercial.rs create mode 100644 tig-algorithms/src/knapsack/better_knapp/inbound.rs create mode 100644 tig-algorithms/src/knapsack/better_knapp/innovator_outbound.rs create mode 100644 tig-algorithms/src/knapsack/better_knapp/mod.rs create mode 100644 tig-algorithms/src/knapsack/better_knapp/open_data.rs create mode 100644 tig-algorithms/wasm/knapsack/better_knapp.wasm diff --git a/tig-algorithms/src/knapsack/better_knapp/benchmarker_outbound.rs b/tig-algorithms/src/knapsack/better_knapp/benchmarker_outbound.rs new file mode 100644 index 00000000..563aeaaa --- /dev/null +++ b/tig-algorithms/src/knapsack/better_knapp/benchmarker_outbound.rs @@ -0,0 +1,117 @@ +/*! +Copyright 2024 M H + +Licensed under the TIG Benchmarker Outbound Game License v1.0 (the "License"); you +may not use this file except in compliance with the License. You may obtain a copy +of the License at + +https://github.com/tig-foundation/tig-monorepo/tree/main/docs/licenses + +Unless required by applicable law or agreed to in writing, software distributed +under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +language governing permissions and limitations under the License. +*/ + +use std::collections::HashMap; +use tig_challenges::knapsack::*; + +pub fn solve_challenge(challenge: &Challenge) -> anyhow::Result> { + let max_weight = challenge.max_weight as usize; + let min_value = challenge.min_value as usize; + let num_items = challenge.difficulty.num_items; + + let weights: Vec = challenge + .weights + .iter() + .map(|weight| *weight as usize) + .collect(); + let values: Vec = challenge + .values + .iter() + .map(|value| *value as usize) + .collect(); + + // Helper function to compute knapsack solution using memoization (Top-down DP) + fn knapsack( + weights: &[usize], + values: &[usize], + max_weight: usize, + n: usize, + memo: &mut HashMap<(usize, usize), usize>, + ) -> usize { + if n == 0 || max_weight == 0 { + return 0; + } + + if let Some(&result) = memo.get(&(n, max_weight)) { + return result; + } + + let result = if weights[n - 1] > max_weight { + knapsack(weights, values, max_weight, n - 1, memo) + } else { + let included = + values[n - 1] + knapsack(weights, values, max_weight - weights[n - 1], n - 1, memo); + let excluded = knapsack(weights, values, max_weight, n - 1, memo); + included.max(excluded) + }; + + memo.insert((n, max_weight), result); + result + } + + let mut memo = HashMap::new(); + let max_value = knapsack(&weights, &values, max_weight, num_items, &mut memo); + + if max_value < min_value { + return Ok(None); + } + + // Reconstructing the solution + let mut items = Vec::with_capacity(num_items); + let mut remaining_weight = max_weight; + let mut total_value = max_value; + + for i in (1..=num_items).rev() { + if remaining_weight == 0 { + break; + } + + if memo.get(&(i, remaining_weight)) == Some(&total_value) { + continue; + } else { + items.push(i - 1); + remaining_weight -= weights[i - 1]; + total_value -= values[i - 1]; + } + } + + if total_value >= min_value { + Ok(Some(Solution { items })) + } else { + Ok(None) + } +} + +#[cfg(feature = "cuda")] +mod gpu_optimisation { + use super::*; + use cudarc::driver::*; + use std::{collections::HashMap, sync::Arc}; + use tig_challenges::CudaKernel; + + // set KERNEL to None if algorithm only has a CPU implementation + pub const KERNEL: Option = None; + + // Important! your GPU and CPU version of the algorithm should return the same result + pub fn cuda_solve_challenge( + challenge: &Challenge, + dev: &Arc, + mut funcs: HashMap<&'static str, CudaFunction>, + ) -> anyhow::Result> { + solve_challenge(challenge) + } +} +#[cfg(feature = "cuda")] +pub use gpu_optimisation::{cuda_solve_challenge, KERNEL}; diff --git a/tig-algorithms/src/knapsack/better_knapp/commercial.rs b/tig-algorithms/src/knapsack/better_knapp/commercial.rs new file mode 100644 index 00000000..e03f18bd --- /dev/null +++ b/tig-algorithms/src/knapsack/better_knapp/commercial.rs @@ -0,0 +1,117 @@ +/*! +Copyright 2024 M H + +Licensed under the TIG Commercial License v1.0 (the "License"); you +may not use this file except in compliance with the License. You may obtain a copy +of the License at + +https://github.com/tig-foundation/tig-monorepo/tree/main/docs/licenses + +Unless required by applicable law or agreed to in writing, software distributed +under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +language governing permissions and limitations under the License. +*/ + +use std::collections::HashMap; +use tig_challenges::knapsack::*; + +pub fn solve_challenge(challenge: &Challenge) -> anyhow::Result> { + let max_weight = challenge.max_weight as usize; + let min_value = challenge.min_value as usize; + let num_items = challenge.difficulty.num_items; + + let weights: Vec = challenge + .weights + .iter() + .map(|weight| *weight as usize) + .collect(); + let values: Vec = challenge + .values + .iter() + .map(|value| *value as usize) + .collect(); + + // Helper function to compute knapsack solution using memoization (Top-down DP) + fn knapsack( + weights: &[usize], + values: &[usize], + max_weight: usize, + n: usize, + memo: &mut HashMap<(usize, usize), usize>, + ) -> usize { + if n == 0 || max_weight == 0 { + return 0; + } + + if let Some(&result) = memo.get(&(n, max_weight)) { + return result; + } + + let result = if weights[n - 1] > max_weight { + knapsack(weights, values, max_weight, n - 1, memo) + } else { + let included = + values[n - 1] + knapsack(weights, values, max_weight - weights[n - 1], n - 1, memo); + let excluded = knapsack(weights, values, max_weight, n - 1, memo); + included.max(excluded) + }; + + memo.insert((n, max_weight), result); + result + } + + let mut memo = HashMap::new(); + let max_value = knapsack(&weights, &values, max_weight, num_items, &mut memo); + + if max_value < min_value { + return Ok(None); + } + + // Reconstructing the solution + let mut items = Vec::with_capacity(num_items); + let mut remaining_weight = max_weight; + let mut total_value = max_value; + + for i in (1..=num_items).rev() { + if remaining_weight == 0 { + break; + } + + if memo.get(&(i, remaining_weight)) == Some(&total_value) { + continue; + } else { + items.push(i - 1); + remaining_weight -= weights[i - 1]; + total_value -= values[i - 1]; + } + } + + if total_value >= min_value { + Ok(Some(Solution { items })) + } else { + Ok(None) + } +} + +#[cfg(feature = "cuda")] +mod gpu_optimisation { + use super::*; + use cudarc::driver::*; + use std::{collections::HashMap, sync::Arc}; + use tig_challenges::CudaKernel; + + // set KERNEL to None if algorithm only has a CPU implementation + pub const KERNEL: Option = None; + + // Important! your GPU and CPU version of the algorithm should return the same result + pub fn cuda_solve_challenge( + challenge: &Challenge, + dev: &Arc, + mut funcs: HashMap<&'static str, CudaFunction>, + ) -> anyhow::Result> { + solve_challenge(challenge) + } +} +#[cfg(feature = "cuda")] +pub use gpu_optimisation::{cuda_solve_challenge, KERNEL}; diff --git a/tig-algorithms/src/knapsack/better_knapp/inbound.rs b/tig-algorithms/src/knapsack/better_knapp/inbound.rs new file mode 100644 index 00000000..35d52100 --- /dev/null +++ b/tig-algorithms/src/knapsack/better_knapp/inbound.rs @@ -0,0 +1,117 @@ +/*! +Copyright 2024 M H + +Licensed under the TIG Inbound Game License v1.0 or (at your option) any later +version (the "License"); you may not use this file except in compliance with the +License. You may obtain a copy of the License at + +https://github.com/tig-foundation/tig-monorepo/tree/main/docs/licenses + +Unless required by applicable law or agreed to in writing, software distributed +under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +language governing permissions and limitations under the License. +*/ + +use std::collections::HashMap; +use tig_challenges::knapsack::*; + +pub fn solve_challenge(challenge: &Challenge) -> anyhow::Result> { + let max_weight = challenge.max_weight as usize; + let min_value = challenge.min_value as usize; + let num_items = challenge.difficulty.num_items; + + let weights: Vec = challenge + .weights + .iter() + .map(|weight| *weight as usize) + .collect(); + let values: Vec = challenge + .values + .iter() + .map(|value| *value as usize) + .collect(); + + // Helper function to compute knapsack solution using memoization (Top-down DP) + fn knapsack( + weights: &[usize], + values: &[usize], + max_weight: usize, + n: usize, + memo: &mut HashMap<(usize, usize), usize>, + ) -> usize { + if n == 0 || max_weight == 0 { + return 0; + } + + if let Some(&result) = memo.get(&(n, max_weight)) { + return result; + } + + let result = if weights[n - 1] > max_weight { + knapsack(weights, values, max_weight, n - 1, memo) + } else { + let included = + values[n - 1] + knapsack(weights, values, max_weight - weights[n - 1], n - 1, memo); + let excluded = knapsack(weights, values, max_weight, n - 1, memo); + included.max(excluded) + }; + + memo.insert((n, max_weight), result); + result + } + + let mut memo = HashMap::new(); + let max_value = knapsack(&weights, &values, max_weight, num_items, &mut memo); + + if max_value < min_value { + return Ok(None); + } + + // Reconstructing the solution + let mut items = Vec::with_capacity(num_items); + let mut remaining_weight = max_weight; + let mut total_value = max_value; + + for i in (1..=num_items).rev() { + if remaining_weight == 0 { + break; + } + + if memo.get(&(i, remaining_weight)) == Some(&total_value) { + continue; + } else { + items.push(i - 1); + remaining_weight -= weights[i - 1]; + total_value -= values[i - 1]; + } + } + + if total_value >= min_value { + Ok(Some(Solution { items })) + } else { + Ok(None) + } +} + +#[cfg(feature = "cuda")] +mod gpu_optimisation { + use super::*; + use cudarc::driver::*; + use std::{collections::HashMap, sync::Arc}; + use tig_challenges::CudaKernel; + + // set KERNEL to None if algorithm only has a CPU implementation + pub const KERNEL: Option = None; + + // Important! your GPU and CPU version of the algorithm should return the same result + pub fn cuda_solve_challenge( + challenge: &Challenge, + dev: &Arc, + mut funcs: HashMap<&'static str, CudaFunction>, + ) -> anyhow::Result> { + solve_challenge(challenge) + } +} +#[cfg(feature = "cuda")] +pub use gpu_optimisation::{cuda_solve_challenge, KERNEL}; diff --git a/tig-algorithms/src/knapsack/better_knapp/innovator_outbound.rs b/tig-algorithms/src/knapsack/better_knapp/innovator_outbound.rs new file mode 100644 index 00000000..27d71255 --- /dev/null +++ b/tig-algorithms/src/knapsack/better_knapp/innovator_outbound.rs @@ -0,0 +1,117 @@ +/*! +Copyright 2024 M H + +Licensed under the TIG Innovator Outbound Game License v1.0 (the "License"); you +may not use this file except in compliance with the License. You may obtain a copy +of the License at + +https://github.com/tig-foundation/tig-monorepo/tree/main/docs/licenses + +Unless required by applicable law or agreed to in writing, software distributed +under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +language governing permissions and limitations under the License. +*/ + +use std::collections::HashMap; +use tig_challenges::knapsack::*; + +pub fn solve_challenge(challenge: &Challenge) -> anyhow::Result> { + let max_weight = challenge.max_weight as usize; + let min_value = challenge.min_value as usize; + let num_items = challenge.difficulty.num_items; + + let weights: Vec = challenge + .weights + .iter() + .map(|weight| *weight as usize) + .collect(); + let values: Vec = challenge + .values + .iter() + .map(|value| *value as usize) + .collect(); + + // Helper function to compute knapsack solution using memoization (Top-down DP) + fn knapsack( + weights: &[usize], + values: &[usize], + max_weight: usize, + n: usize, + memo: &mut HashMap<(usize, usize), usize>, + ) -> usize { + if n == 0 || max_weight == 0 { + return 0; + } + + if let Some(&result) = memo.get(&(n, max_weight)) { + return result; + } + + let result = if weights[n - 1] > max_weight { + knapsack(weights, values, max_weight, n - 1, memo) + } else { + let included = + values[n - 1] + knapsack(weights, values, max_weight - weights[n - 1], n - 1, memo); + let excluded = knapsack(weights, values, max_weight, n - 1, memo); + included.max(excluded) + }; + + memo.insert((n, max_weight), result); + result + } + + let mut memo = HashMap::new(); + let max_value = knapsack(&weights, &values, max_weight, num_items, &mut memo); + + if max_value < min_value { + return Ok(None); + } + + // Reconstructing the solution + let mut items = Vec::with_capacity(num_items); + let mut remaining_weight = max_weight; + let mut total_value = max_value; + + for i in (1..=num_items).rev() { + if remaining_weight == 0 { + break; + } + + if memo.get(&(i, remaining_weight)) == Some(&total_value) { + continue; + } else { + items.push(i - 1); + remaining_weight -= weights[i - 1]; + total_value -= values[i - 1]; + } + } + + if total_value >= min_value { + Ok(Some(Solution { items })) + } else { + Ok(None) + } +} + +#[cfg(feature = "cuda")] +mod gpu_optimisation { + use super::*; + use cudarc::driver::*; + use std::{collections::HashMap, sync::Arc}; + use tig_challenges::CudaKernel; + + // set KERNEL to None if algorithm only has a CPU implementation + pub const KERNEL: Option = None; + + // Important! your GPU and CPU version of the algorithm should return the same result + pub fn cuda_solve_challenge( + challenge: &Challenge, + dev: &Arc, + mut funcs: HashMap<&'static str, CudaFunction>, + ) -> anyhow::Result> { + solve_challenge(challenge) + } +} +#[cfg(feature = "cuda")] +pub use gpu_optimisation::{cuda_solve_challenge, KERNEL}; diff --git a/tig-algorithms/src/knapsack/better_knapp/mod.rs b/tig-algorithms/src/knapsack/better_knapp/mod.rs new file mode 100644 index 00000000..fcec9672 --- /dev/null +++ b/tig-algorithms/src/knapsack/better_knapp/mod.rs @@ -0,0 +1,4 @@ +mod benchmarker_outbound; +pub use benchmarker_outbound::solve_challenge; +#[cfg(feature = "cuda")] +pub use benchmarker_outbound::{cuda_solve_challenge, KERNEL}; \ No newline at end of file diff --git a/tig-algorithms/src/knapsack/better_knapp/open_data.rs b/tig-algorithms/src/knapsack/better_knapp/open_data.rs new file mode 100644 index 00000000..344a911b --- /dev/null +++ b/tig-algorithms/src/knapsack/better_knapp/open_data.rs @@ -0,0 +1,117 @@ +/*! +Copyright 2024 M H + +Licensed under the TIG Open Data License v1.0 or (at your option) any later version +(the "License"); you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +https://github.com/tig-foundation/tig-monorepo/tree/main/docs/licenses + +Unless required by applicable law or agreed to in writing, software distributed +under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +language governing permissions and limitations under the License. +*/ + +use std::collections::HashMap; +use tig_challenges::knapsack::*; + +pub fn solve_challenge(challenge: &Challenge) -> anyhow::Result> { + let max_weight = challenge.max_weight as usize; + let min_value = challenge.min_value as usize; + let num_items = challenge.difficulty.num_items; + + let weights: Vec = challenge + .weights + .iter() + .map(|weight| *weight as usize) + .collect(); + let values: Vec = challenge + .values + .iter() + .map(|value| *value as usize) + .collect(); + + // Helper function to compute knapsack solution using memoization (Top-down DP) + fn knapsack( + weights: &[usize], + values: &[usize], + max_weight: usize, + n: usize, + memo: &mut HashMap<(usize, usize), usize>, + ) -> usize { + if n == 0 || max_weight == 0 { + return 0; + } + + if let Some(&result) = memo.get(&(n, max_weight)) { + return result; + } + + let result = if weights[n - 1] > max_weight { + knapsack(weights, values, max_weight, n - 1, memo) + } else { + let included = + values[n - 1] + knapsack(weights, values, max_weight - weights[n - 1], n - 1, memo); + let excluded = knapsack(weights, values, max_weight, n - 1, memo); + included.max(excluded) + }; + + memo.insert((n, max_weight), result); + result + } + + let mut memo = HashMap::new(); + let max_value = knapsack(&weights, &values, max_weight, num_items, &mut memo); + + if max_value < min_value { + return Ok(None); + } + + // Reconstructing the solution + let mut items = Vec::with_capacity(num_items); + let mut remaining_weight = max_weight; + let mut total_value = max_value; + + for i in (1..=num_items).rev() { + if remaining_weight == 0 { + break; + } + + if memo.get(&(i, remaining_weight)) == Some(&total_value) { + continue; + } else { + items.push(i - 1); + remaining_weight -= weights[i - 1]; + total_value -= values[i - 1]; + } + } + + if total_value >= min_value { + Ok(Some(Solution { items })) + } else { + Ok(None) + } +} + +#[cfg(feature = "cuda")] +mod gpu_optimisation { + use super::*; + use cudarc::driver::*; + use std::{collections::HashMap, sync::Arc}; + use tig_challenges::CudaKernel; + + // set KERNEL to None if algorithm only has a CPU implementation + pub const KERNEL: Option = None; + + // Important! your GPU and CPU version of the algorithm should return the same result + pub fn cuda_solve_challenge( + challenge: &Challenge, + dev: &Arc, + mut funcs: HashMap<&'static str, CudaFunction>, + ) -> anyhow::Result> { + solve_challenge(challenge) + } +} +#[cfg(feature = "cuda")] +pub use gpu_optimisation::{cuda_solve_challenge, KERNEL}; diff --git a/tig-algorithms/src/knapsack/mod.rs b/tig-algorithms/src/knapsack/mod.rs index 33ddf59d..0473936d 100644 --- a/tig-algorithms/src/knapsack/mod.rs +++ b/tig-algorithms/src/knapsack/mod.rs @@ -26,7 +26,8 @@ // c003_a014 -// c003_a015 +pub mod better_knapp; +pub use better_knapp as c003_a015; // c003_a016 diff --git a/tig-algorithms/src/knapsack/template.rs b/tig-algorithms/src/knapsack/template.rs index 6386cbf8..dab73844 100644 --- a/tig-algorithms/src/knapsack/template.rs +++ b/tig-algorithms/src/knapsack/template.rs @@ -1,11 +1,7 @@ /*! -Copyright [year copyright work created] [name of copyright owner] +Copyright [yyyy] [name of copyright owner] -Identity of Submitter [name of person or entity that submits the Work to TIG] - -UAI [UAI (if applicable)] - -Licensed under the TIG Inbound Game License v2.0 or (at your option) any later +Licensed under the TIG Inbound Game License v1.0 or (at your option) any later version (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at @@ -17,24 +13,6 @@ CONDITIONS OF ANY KIND, either express or implied. See the License for the speci language governing permissions and limitations under the License. */ -// REMOVE BELOW SECTION IF UNUSED -/* -REFERENCES AND ACKNOWLEDGMENTS - -This implementation is based on or inspired by existing work. Citations and -acknowledgments below: - -1. Academic Papers: - - [Author(s), "Paper Title", DOI (if available)] - -2. Code References: - - [Author(s), URL] - -3. Other: - - [Author(s), Details] - -*/ - // TIG's UI uses the pattern `tig_challenges::` to automatically detect your algorithm's challenge use anyhow::{anyhow, Result}; use tig_challenges::knapsack::{Challenge, Solution}; diff --git a/tig-algorithms/wasm/knapsack/better_knapp.wasm b/tig-algorithms/wasm/knapsack/better_knapp.wasm new file mode 100644 index 0000000000000000000000000000000000000000..7f7dbe9cf6397cf271eac16cd97ebd3e0dd8cd89 GIT binary patch literal 152401 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 N*fHS5sVT&m{{ghvZ#Dn` literal 0 HcmV?d00001