Figura: Divisão do mapa em células da matriz tendo como referência as bordas dos defeitos.
Em seguida, será gerada uma matriz na qual cada elemento estará representando uma célula resultante do recorte feito na bobina. No caso da figura, a matriz terá 9 linhas e 9 colunas. Esta matriz armazenará os cálculos necessários para identificar quais células poderão receber o canto direito inferior da requisição. Uma vez identificados estas células, deve-se expandi-las ao máximo para a esquerda, depois para a direita, em seguida para cima e depois para baixo. Esta expansão será feita até que se encontre a borda da bobina ou alguma área que não esteja disponibilizada para alocação. Isto resultará na maior área possível que se pode utilizar a partir da célula identificada. Este processo é repetido até que não haja mais área que possam ser reportadas. Estas áreas são então ordenadas em ordem decrescente de tamanho e retornadas como resultado.
Eu desenvolvi um pequeno executável que fiz para demonstrar o algoritmo de procura de áreas válidas: Área válida pelo uso de matriz