Algorithm 1.
ICEBREAKER
| Input: Tensor X of dimension I×J×K |
| Output: Tensor Y of dimension I×J×K1and matrix W of size K1×K |
| 1: i = 1;j = 2 |
| 2: previousValue = UtilityFunction(X(:, :, i)) |
| 3: while j ≤ K do |
| 4: currentValue = UtilityFunction(sum(X(:, :, i:j), 3) |
| 5: if previousValue⋛currentValue then |
| 6: j = j+1 {Aggregate Slice} |
| 7: else |
| 8: {Create a New Slice} Add a row in W with value as 1 for indices i to j−1. {Update indices for next candidate slice} |
| 9: i = j; j = j+1; |
| 10: previousValue = UtilityFunction(X(:,:,i)); |
| 11: end if |
| 12: end while |
| 13: Y = X×3W |
| 14: return Y and W 2 |