Ich habe ausprobiert, wie man eine typische Knobelaufgabe mit logischer Programmierung lösen kann: https://sebstein.hpfsc.de/2025/12/31/logische-programmierung/

#MiniZinc

Logische Programmierung | Sent from Hauptstadt! Sent from Hauptstadt!

[Перевод] Решение головоломки NYTimes Pips с помощью решателя ограничений

Кажется, что головоломка NYT Pips — это просто игра с домино и цветными клетками. Но если взглянуть на неё как на задачу удовлетворения ограничений, она превращается в удобный полигон для современных решателей вроде MiniZinc. В статье автор показывает, как описать Pips не в виде алгоритма перебора, а в виде системы ограничений: сетка, домино, суммы по областям, симметрии и «мусорные» решения. По ходу дела выясняется, что войти в мир constraint solving можно буквально за пару часов, а заодно на практике понять, почему эти инструменты умеют разруливать экспоненциальный хаос вариантов за миллисекунды — но иногда внезапно «залипают» на одной и той же головоломке. Читать разбор

https://habr.com/ru/companies/otus/articles/975004/

#решатели_ограничений #MiniZinc #моделирование_ограничений #поиск_решений #бэктрекинг #оптимизация_перебора #головоломки #алгоритмическое_моделирование

Решение головоломки NYTimes Pips с помощью решателя ограничений

TL;DR Автор берёт новую головоломку NYT Pips и моделирует её в MiniZinc как задачу удовлетворения ограничений: домино, координаты, сетка, суммы по цветным областям. Вместо процедурного кода задаётся...

Хабр
🌘 使用 MiniZinc 解決帕特里奇裝箱問題
➤ 一個約束程式設計的實踐案例
https://zayenz.se/blog/post/partridge-packing/
本文詳述如何運用 MiniZinc 語言建立模型以解決帕特里奇裝箱問題。作者從問題定義出發,逐步建構基本的 MiniZinc 模型,包括零件尺寸的表示、變數的定義、基礎的裝箱約束,以及搜尋與輸出策略。接著,文章探討了多種模型改進方法,如加入累加輪廓、精確填充、邊緣限制以及對稱性破壞等,以提升模型的效率和解決更大規模問題的能力。作者並展示了不同大小 n 的問題實例,並提及其他求解器的表現。
+ 這篇文章對於 MiniZinc 的介紹相當清晰,對於想入門約束程式設計的人非常有幫助。
+ 很高興看到如此經典的數學謎題被用來展示約束程式設計的威力,模型改進的部分尤其精彩。
#約束程式設計 #MiniZinc #裝箱問題
Solving the Partridge Packing Problem using MiniZinc - zayenz.se

The Partridge Packing Problem is a packing puzzle that was originally proposed by Robert T.

[Перевод] Многие сложные задачи на LeetCode — это простые задачи на ограничения

Иногда впечатление от алгоритмических задач такое, будто вас просят не решать проблему, а угадать «правильный» трюк из головы автора. В этой статье мы посмотрим на те же самые leetcode-подобные задачи глазами человека, который устал изобретать стеки и динамику на собеседовании и попробовал формулировать их как задачу оптимизации для солвера ограничений. Разбираем, как привычные «найди максимум при таких-то условиях» превращаются в компактные декларативные модели, зачем вообще нужны такие упражнения, что они говорят о собеседованиях и о нашем отношении к алгоритмам — и где у подхода с MiniZinc/constraint solving проходят естественные границы. Смотреть подход

https://habr.com/ru/companies/otus/articles/970468/

#задачи #leetcode #алгоритмы #задачи_на_ограничения #временная_сложность #MiniZinc #солвер_ограничений #оптимизация_задач #собеседование_разработчика #алгоритмические_задачи

Многие сложные задачи на LeetCode — это простые задачи на ограничения

Используйте правильный инструмент для задачи. На моём первом собеседовании после окончания вуза мне задали классическую задачу про размен монет: Дан набор номиналов монет, нужно найти минимальное...

Хабр

Took me way too long to figure out but I successfully used #MiniZinc to re-solve a CTF challenge today, just to learn it.

It's a constraint solver with a powerful high-level language. I used it to find a 20-character key fitting a set of requirements I reversed out of the challenge. Once I understood how to model the requirements in MiniZinc's language (and figured out the bugs in my reversing script 😅) solving for the key took 0.5s 😁

Might be of interest for others: https://minizinc.org

MiniZinc

MiniZinc is a free and open-source constraint modeling language.

Hai tất cả! Một bài đăng mới trên Reddit giới thiệu cách ứng dụng quy hoạch lịch làm việc theo bờ tròn trong MiniZinc. Nó giúp tối ưu hóa phân bổ nhân lực với cách phối hợp thời gian làm việc dài hạn. Tham gia язык vào cuộc thảo luận về nghiệm pháp coast this cam kết mã nguồn mở! #MiniZinc #QuyHóaLịchLàmViệc #MãNguồnMở #LậpTrình #Technology #TechTalk #Programming #OpenSource

https://www.reddit.com/r/programming/comments/1ol30lv/rotating_workforce_scheduling_in_minizinc/

🌘 使用 MiniZinc 進行輪班排班
➤ 從基礎模型到進階排班規則的 MiniZinc 實作指南
https://zayenz.se/blog/post/rotating-workforce-scheduling/
本文介紹如何使用 MiniZinc 建立一套輪班排班系統。作者從最基本的模型架構開始,逐步加入實際工作場所常見的需求,例如連續休息日、週末休息和夜班限制,最終展示如何建構一個符合現實的排班解決方案。文章亦提及了模型效能的基準測試,並與 OR-Tools CP-SAT 方案進行比較。
+ 這個 MiniZinc 模型看起來相當實用,能夠解決實際的排班難題!
+ 感謝作者詳細的步驟拆解,讓我可以更清楚瞭解 Constraint Programming 在排班上的應用。
#程式設計 #演算法 #最佳化 #MiniZinc #排班
Rotating Workforce Scheduling in MiniZinc - zayenz.se

Personal website with research, publications, and blog

🚀 Wow, what a thrill! An article about squeezing workforce schedules into #MiniZinc. Because nothing screams excitement like cactus plots and footnotes on night shifts! 🌵🌙
https://zayenz.se/blog/post/rotating-workforce-scheduling/ #CactusPlots #WorkforceScheduling #NightShifts #ExcitingData #HackerNews #ngated
Rotating Workforce Scheduling in MiniZinc - zayenz.se

Personal website with research, publications, and blog

Rotating Workforce Scheduling in MiniZinc - zayenz.se

Personal website with research, publications, and blog

```
include "alldifferent.mzn";
% решает ребус
% KOTKA + KOTKA + KOTKA = SOBAKA

var 1..9: K;
var 1..9: S;
var 0..9: O;
var 0..9: T;
var 0..9: A;
var 0..9: B;

constraint 3*(10000*K + 1000*O + 100*T + 10*K + 1*A) = 100000*S + 10000*O + 1000*B + 100*A + 10*K + 1*A;

constraint alldifferent([K, O, T, A, S, B]);

solve satisfy;

output [" \(K)\(O)\(T)\(K)\(A)*3 =\n",
"= \(S)\(O)\(B)\(A)\(K)\(A)\n"];

```

#minizinc