Ответ 1
В в этой статье вы можете найти информацию о Wordle, инструменте для создания красивых облаков тегов. Он выполняет рандомизированное алчное алгоритмическое приближение проблемы упаковки корзины.
Я собираюсь написать программу, которая перестраивает буквы предложения в минимальной области. Инструмент, который я собираюсь написать это приложение, не имеет значения. Проблема в том, что я почти не знаю, как это сделать.
Мне нужно что-то вроде этого:
Существует ли какой-либо алгоритм для сортировки некоторых поверхностей (пусть каждая буква является поверхностью многоугольника) в минимальной области?
В в этой статье вы можете найти информацию о Wordle, инструменте для создания красивых облаков тегов. Он выполняет рандомизированное алчное алгоритмическое приближение проблемы упаковки корзины.
Это совсем не просто... это связано с "проблемой упаковки бутылок", которая доказана NP-HARD.
Кроме того, ваша проблема связана с непрямоугольными объектами, поэтому она немного сложнее, но не по величине.
вам следует использовать подход алгоритма оптимизации, например, генетические алгоритмы или такие...
Google для "Bin Packing 2D" приведет к созданию нескольких полезных ссылок и статей.
Мой подход для такого алгоритма был бы генетическим. Это будет образец выборки данных в Java.
public class Individual{
char letter;
double x;
double y;
double rotation;
}
public class Population{
private Individual[] individuals;
public Population(String s) {
individuals = new Individual[s.length()];
for(int i = 0; i < s.length(); i++ {
Individual individual = new Individual();
individual.letter = s.charAt(i);
// set random x, y, and rotation;
individuals[i] = individual;
}
}
// Calculate Fitness: (1/Totalspace needed ) - Overlapping Space
// Envolve Population
}