Forse (ripeti, forse) prima trova il rettangolo di delimitazione, indipendentemente dall'area, come descritto da "Mandrill" sopra (che apparentemente trascurava il vincolo "area data"). Quindi il tuo "rettangolo dell'area dato" sarà all'interno di quello. Oppure, se quel rettangolo di delimitazione è già la tua area data o meno, allora hai finito. Altrimenti, scegli un angolo e inizia a spostarlo "verso l'interno" in x, perdendo sicuramente un punto, finché non raggiungi un secondo punto. Quindi spostalo "verso l'interno" in y fino a quando non premi di nuovo un secondo punto. In questo modo si riduce il più possibile il rettangolo, mentre si perde solo il punto più esterno rispetto all'angolo selezionato. Salva l'area risultante. Ora riavvia il rettangolo originale e prova ciascuno degli altri tre angoli a turno. Quindi avrai quattro rettangoli, ognuno con un punto perso. Scegli il rettangolo dell'area minima tra questi quattro. E ora ricomincia da quel rettangolo. Ecc, ecc., Fino a quando non si ottiene l'area richiesta.
Ora, questo ti darà sicuramente un "minimo locale". Ma non sono affatto sicuro che ti porterà il "minimo globale".