Зазвичай автор твору може ліцензувати його за більш ніж однією з ліцензій з відкритим кодом, які ви згадуєте (так зване подвійне ліцензування). Однак, мабуть, існує проблема з цим дотриманням відповідно до редакційної політики ACM, в якій зазначено, що ви зобов'язані б передати право власності на авторські права на опубліковані "алгоритми":
Автори алгоритмів, що захищаються авторськими правами (або їх роботодавці) зобов'язані передавати авторські права ACM після прийняття алгоритму для публікації, відповідно до політики ACM щодо володіння авторським правом на матеріали, опубліковані ACM.
Політика (а також програмне забезпечення та авторське право та ліцензійний договір ACM) також стверджує, що вона "надає авторам право повторного використання своїх матеріалів, а також надає ліберальний дозвіл на повторне використання пов'язаного програмного забезпечення для некомерційних цілей". Це обмеження на некомерційні цілі тоді заважатиме автору (IMHO, IANAL) реліцензувати ліцензії під відкритим кодом, згадані у вашому питанні, оскільки вони не дозволяють розмежувати комерційне та некомерційне використання.
Можливе рішення може бути знайдено в детальному обговоренні Політики щодо авторських прав ACM :
У особливих випадках, коли автор або роботодавець автора повинні зберігати авторські права або коли ACM не бажає надати свою особливість конкретному твору, ACM може прийняти звільнення від власника, який надає ACM дозвіл, необхідний для публікації твору.
Я не маю поняття, як часто такі винятки можуть надаватися для публікації. Якби я намагався домагатися такого винятку, я, мабуть, стверджував, що я вже ліцензував програмне забезпечення під однією з цих ліцензій з відкритим кодом, і що натомість АКМ міг би мати авторські права на похідний твір, створений публікацією статті.
Я згадав IANAL (я не юрист)?