Обычно автор произведения может лицензировать его по нескольким из указанных вами лицензий с открытым исходным кодом (так называемое двойное лицензирование). Однако, по-видимому, существует проблема с этим в соответствии с редакционной политикой ACM, на которую указано, что вы будете обязаны передать право собственности на опубликованные «алгоритмы»:
Авторы защищенных авторским правом алгоритмов (или их работодатели) обязаны передать авторские права в ACM после принятия алгоритма публикации в соответствии с политикой ACM, чтобы владеть авторским правом на опубликованные материалы ACM.
Политика (а также Соглашение о программном обеспечении, авторском праве и лицензии ACM) утверждают, что она «предоставляет авторам право повторно использовать их материалы, а также дает либеральное разрешение на повторное использование соответствующего программного обеспечения в некоммерческих целях». Это ограничение в некоммерческих целях может помешать автору (ИМХО, IANAL) осуществлять повторное лицензирование по лицензиям с открытым исходным кодом, указанным в вашем вопросе, поскольку они не позволяют проводить различие между коммерческим и некоммерческим использованием.
Возможное решение можно найти в подробном обсуждении политики авторского права ACM :
В особых случаях, когда автор или работодатель автора должны сохранять авторские права, или когда ACM не желает давать свое разрешение на конкретное произведение, ACM может принять разрешение от владельца, которое предоставляет ACM разрешение, необходимое для публикации произведения.
Я понятия не имею, как часто такие исключения могут быть предоставлены для публикации. Если бы я пытался найти такое исключение, я бы, вероятно, утверждал, что я уже лицензировал программное обеспечение по одной из этих лицензий с открытым исходным кодом, и что вместо этого ACM может обладать авторским правом на производное произведение, созданное публикацией статьи.
Я упоминал IANAL (я не юрист)?