Извините за наивность, но я, как программист и математик, ратую за "идеализм":
1. Если задача имеет однозначное и лаконичное решение, то она и должна быть решена таким образом.
2. Если задача имеет более одного решения, то она должна быть разбита на подчиненные задачи, которые могут быть решены пунктом 1 или не имеют решения, в этом случае исходная задача в своей постановке ошибочна, требуется перепостановка задачи исходя из цели.
Это уже не идеализм, а чёрт знает что
В математике к примеру приветствуются нестандартные решения типовых задач
А декомпозиция задачи тоже предельна, может настать момент, когда сумма решений вот таких маленьких задач может перестать удовлетворять решению изначальной задачи. По крайней мере в реальном мире так и происходит.
Т.е. привести задачу к каноническому виду линейного программирования: одна целевая функция и множество ограничений. Полученное неравенство оптимизировать по ограничивающим функциям с целью нормировать область допустимых значений.
Ни одну реальную систему невозможно описать в виде одной такой функции, а в отношении общества это вообще не применимо. Вот представьте, каждый член сообщества это система. Ряд членов сообщества образуют группу ещё одну систему. И так по иерархии вверх охватывается всё сообщество. И тут первая проблема: система через чур сложная. К этому ещё добавляется то, что члены сообщества и группы сообщества одновременно входят в разные звенья иерархии, то есть топология не дерево, а гораздо сложнее. Следующая проблема мобильность членов сообщества, они то туда, то сюда перетекают и даже могут покинуть сообщество. То есть систему очень сложно прогнозировать, так как у каждой системы, т.е. члена сообщества или группы, есть свобода воли, да ещё и куча внешних факторов влияет на них.
Я могу и дальше продолжить, но я думаю, что мысль и так уже ясна, почему невозможно