A maior dificuldade do método está na quantidade de memória que o algoritmo necessita. Precisa-se armazenar, para cada subproblema, a quantidade de retângulos empacotados, o tipo de solução utilizado e o ponto de divisão (informação complementar ao tipo de solução). Em [26], esses dados foram armazendos usando uma estrutura de dados chamado PHORMA (Perfect Hashed Order Restricted Multidimensional Array) [24,12]. Essa estrutura de dados usa dígrafos para indexar as peças.
Seja e as cardinalidades dos conjuntos e respectivamente. Como, por definição, , então . Na nossa implementação armazenamos esse dados em 3 vetores de tamanho cada um.
Para ter acesso direto aos dados precisamos, dado um subproblema , calcular o índice dos vetores onde seus dados estão armazenados. Para isto, fizemos uma função bijetora que serve para associar cada a um índice . Seja o tamanho da largura do retângulo maior. Então definimos essa função bijetora como:
Usando PHORMA, reduz-se a quantidade de memória necessária para resolver os problemas, mas em compensação demora mais comparando com a nossa implementação. Com a nossa implementação, tivemos alguns problemas devido à grande quantidade de memória que o algoritmo necessitava para resolver alguns problemas. Note que não são usadas todas as posições dos vetores que armazenam os dados (veja Tabela na Seção ).