Автор Гілка: MiniZinc — мова програмування для вирішення оптимізаційних проблем  (Прочитано 2025 раз)

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3936
  • Карма: +17/-0
  • Програміст
MiniZinc  — це компілятор та середовище розробки для моделей з обмеженнями, який компілює моделі у мову FlatZinc, яка підтримується 15-тьма розвʼязувачами. З коробки поставляються Gecode, Chuffed, Google OR-Tools CP-SAT, HiGHS, та COIN-OR CBC. Використання MiniZinc дозволяє знаходити розвʼязки проблем, таких як наприклад мінімізація відходів при порізці матеріалу, пошук оптимальної послідовності дій, і тому подібне, без написання складних програм.

Домашня: https://www.minizinc.org/
Спробувати: https://play.minizinc.dev/
Проєкт: https://github.com/MiniZinc/MiniZincIDE
[Fedora Linux]

Відсутній BeSiDa

  • Дописувач
  • **
  • дописів: 91
  • Карма: +0/-0
Пишуть що в нього легкий інтерфейс підключення до будь чого іншого. А от до цього форума його реально підключити? :)
Наприклад, метою може бути "вибір дистру", а запит може бути складений з обмежень виду "які проц, та пам'ять компа", "чи існує у дистрі серед пакетів певний софт" (не у вигляді флетпаку) та чи є пакет з перекладом українською і який відсоток потрібного софта дистру має переклад (максимізація параметру).

Запустимо проект? :)))  (на початку тестово з десятка параметрів та автоімпортом списку всіх пакетів дистрів з пошуком по "*-укр-*", а потів вже скрипт, що може з встановленного дистру знайти всі файли перекладів).

Та навіть можна без обмежень мови, для всіх зробити.

(інше може бути, вибір пакетів, вибір бібліотек програмування, написання скриптів як результат солвінгу, вибір кодеків відео, вибір слів при перекладі різними мовами (вибір англійського слова, що одночасно гарно перекладається багатьма іншими) та всяке таке)

Відсутній yvs115

  • Кореспондент
  • ***
  • дописів: 186
  • Карма: +7/-0
Цитата
автоімпортом списку всіх пакетів дистрів з пошуком по "*-укр-*"
Чому локалізація має бути представлена в назві? (точніше де то таке)

Відсутній BeSiDa

  • Дописувач
  • **
  • дописів: 91
  • Карма: +0/-0
Чому локалізація має бути представлена в назві? (точніше де то таке)
А дійсно... то знов в мене звичка з бсд.
В дебіан такого значно менше (словники, озвучка, доки, ввід та всяке таке) і там плутанина то "юк" то "юа" то ще якось...
Мабуть замість того вся база зі списками файлів в пакеті потрібна і вже по них пошук.
А що до автоматичної оптимізації що скажете?
(а, ще її можна для вибору всякіх команд цсс застосувати, щоб максимізувати кількість версій браузерів що це зрозуміє чи хоча б не злмається, та для вибору бінарних драйверів графіки по версіям для старих карт (достатню, з меншої кількістю багів але не занадто нову, що вже поламана під новіші карти та автотестами пройтися по різних типах застосувань із записом які крешать драйвер)).

Відсутній yvs115

  • Кореспондент
  • ***
  • дописів: 186
  • Карма: +7/-0
Цитата
Цитата
Цитата
списку всіх пакетів дистрів з пошуком по "*-укр-*"
Чому локалізація має бути представлена в назві? (точніше де то таке)
А дійсно... то знов в мене звичка з бсд.
А в bsd де в назвах пакетів представлена?

Цитата
В дебіан такого значно менше (словники, озвучка, доки, ввід та всяке таке) і там плутанина то "юк" то "юа" то ще якось...
так само зазвичай gettext (gnu) як і в інших лінукс дистрибутивах, як і в розповсюджених bsd
озвучка і всяко тако - чи не зовсім зрозуміло про що то, чи просто я тим не цікавився бо відсутня від слова зовсім будь-яка локалізована озвучка (чого?) в усіх системах

Цитата
там плутанина то "юк" то "юа" то ще якось...
Локаль: language_COUNTRY.encoding
Нп: uk_UA.UTF-8
language: uk (Ukrainian)
country: UA (Ukraine)
encoding: UTF8

Цитата
А що до автоматичної оптимізації що скажете?
CachyOS
« Змінено: 2025-09-18 11:42:01 від yvs115 »

Відсутній BeSiDa

  • Дописувач
  • **
  • дописів: 91
  • Карма: +0/-0
озвучка і всяко тако - чи не зовсім зрозуміло про що то, чи просто я тим не цікавився бо відсутня від слова зовсім будь-яка локалізована озвучка (чого?) в усіх системах
Так то ви про ОС, а я про юзер софт пакети (ті ж словники для людини, не для ОС і озвучка словників та інші види озвучки).

Цитата
CachyOS
То інший вид оптимізації. Під залізо, а не під людину.

Відсутній yvs115

  • Кореспондент
  • ***
  • дописів: 186
  • Карма: +7/-0
Цитата
про юзер софт пакети
gettext про софт (грепати можна список файлів в пакетах нп чи представлені відповідні .mo (compiled .po))

Цитата
То інший вид оптимізації. Під залізо, а не під людину.
Це як під людину? оптимізація під залізо, а під людину хз - сирци більш читабельні?

Відсутній BeSiDa

  • Дописувач
  • **
  • дописів: 91
  • Карма: +0/-0
Цитата
То інший вид оптимізації. Під залізо, а не під людину.
Це як під людину? оптимізація під залізо, а під людину хз - сирци більш читабельні?
Під залізо, це використання меншої кількості пам'яті та місця диску і більшої частки заліза (більша кількість різних команд які є в проці саме того заліза що на конкретному компі, більше використання додаткових проців та гпу, не обчислювати те, чого немає в залізі (під роздільну здатність саме того екрану, під кількість кольорів саме того екрану та ін)).

А під людину це про те що в мозку людини. Під те, що вона може сприйняти. Під те, що їй змінить настрій та зробить щасливішим.
От наприклад менша затримка у виконанні команди (але з якоїсь межі людині пофіг на ще меншу) чи згладжування шрифтів (з якоїсь межі розмір+пікселі+екран+згладжування стає пофіг). І таке інше. Але то в балансі та пов'язане, швидкість виконання може зменшитися, коли додати якесь згладжування чи красивий графічний ефект для збільшення настрою.

А от ще... в пакетах додають параметр "розмір" та приблизно "скільки місця займе на диску" (трохи різне після обробки тригерів та з різними файловими системами та розмірами блоків). А от якщо додати "час компіляції пакету" (на якомусь обраному прикладі заліза яке можна порівняти зі своїм), то людина зможе обирати чи ставити бінарний, чи компілювати під залізо та під себе коли знає то буде 10 хвилин, дві години чи тиждень. Та як то змінить виконання команди на її залізі (наприклад, якась обрана команда з обробки відео стане швидше в 3 рази чи компіляція стане швидше на 20% чи робота з документами (відображення, реформатування, пошук помилок...)).

Та людині показати вибір чи "з сорців" ставити, чи бінарно чи віртуалкою.

Але ж то ... значно складніше :))

Відсутній yvs115

  • Кореспондент
  • ***
  • дописів: 186
  • Карма: +7/-0
Цитата
Під залізо, це використання меншої кількості пам'яті та місця диску і більшої частки заліза
Оптимізація під залізо це зазвичай підвищення швидкості виконання, яке в свою чергу доволі часто супроводжується збільшенням розміру бінарників

Цитата
А під людину це про те що в мозку людини. Під те, що вона може сприйняти.
Це важче, у найближчій перспективі малоймовірно очікувати на відповідний UI/UX з ефективним переформатуванням-оптимізацією саме її думок)

Цитата
Під те, що їй змінить настрій та зробить щасливішим.
Не зовсім технічне питання)

Цитата
Та людині показати вибір чи "з сорців" ставити, чи бінарно... Але ж то ... значно складніше
В рамках одного дистрибутиву користувачі вирішують зазвичай самі, та зновуж зазвичай виходячи з інших ніж package size факторів, якби то було хоч трохи мас-актуально вжеб зробили

Відсутній BeSiDa

  • Дописувач
  • **
  • дописів: 91
  • Карма: +0/-0
якби то було хоч трохи мас-актуально вжеб зробили
Ви все ще прив'язуєте самого себе до аргументу "мас"? Кожного разу згадуйте що в рамках планети ви, адміни та користувачі інтерфейсів лінукс дистрів то майже нуль :)))
Але при тому майже в кожній ОС є розділ "для сліпих" які значно менші ніж ви і ваші уявні "маси". Але такий розділ є.
А також згадайте що значна більшість опен сорсу з'явилася завдяки рівно одній людині яка робила рівно для одного користувача (для себе). І зараз розвиток Лінукс (ядра) це потік патчів які потрібні не масам, а рівно одній людині чи комерційній компанії (кожен окремий патч, наприклад, додавання псі чи юсб ІД нового пристрою, навіть не комерційного, а тестового).
Не існує ніяких "масс" то лише ваше бажання "я тут головний і правий" :))))

Відсутній BeSiDa

  • Дописувач
  • **
  • дописів: 91
  • Карма: +0/-0
Цитата
Під те, що їй змінить настрій та зробить щасливішим.
Не зовсім технічне питання)
Те що воно здається "не технічним" (але то здається) не означає що обисто ви неспроможні його вирішити технічним чином.
От тільки як саме, то дійсно професія зовсім інших людей. Які вам перекладуть технічною мовою. Та самі користуються тестами на базі техніки (відстеження напряму зору користувача, відстеження електромагнітних імпульсів та інше).
Наприклад, на десктопі фон був чорним або "сіточкою" пікселів. Бо так було технічно швидше. Але люди іншої професії розповіли, що коли на фон приліпити фотографію, яку обрав користувач (а отже не "маси", а рівно одна людина обрала саме ту рівно одну фото, наприклад з тільки своєю сім'єю або своїм улюбленим місцем відпочинку), то це зробить користувача щасливішим.

Чи коли змінити кольори та "тему" інтерфейсу (що технічно можливо, але беззмістовно з технічної точки зору).

Чи додати анімацію при відкритті меню та створенні вікон.

Чи от новий андроїд та інших смартфонів інтерфейс "експресивний" та "схожий на щось з реальності" чи старий "схожий на реальний папір з тінями" чи зовсім старий "кнопки з тінями" (нібито випирають з плоского екрана). А от у тексті ніхто не парився такими "не технічними" питаннями як "зробити трохи схожим на реальний світ" (додати тіней та освітлення).
:)

Але як не хочете про те говорити, то ок.

Відсутній BeSiDa

  • Дописувач
  • **
  • дописів: 91
  • Карма: +0/-0
Цитата
А під людину це про те що в мозку людини. Під те, що вона може сприйняти.
Це важче, у найближчій перспективі малоймовірно очікувати на відповідний UI/UX з ефективним переформатуванням-оптимізацією саме її думок)
Ха-Ха! От ви дійсно ніколи не використовували формат зображень ДжиПег? :))))))
Який саме створений "з оптимізацією ваших думок" (бо стиснення в джипег засноване з самого початку на "викиданні тієї інформації яку ваші думки не помічають" ("думки" в ширшому розумінні, разом з оптичною системою людини)).
В ДжіПег відкидаються деталі у тінях (темні) і тому при додаванні яскравості можна побачити квадратики замість деталей. Бо те "ви не попачите" своїм мозком (навіть коли дисплей то взмозі показати (проектор, чи олед, чи хдр)). А також частина градацій червоного кольору.
Це не "складно", це "інша професія" знати що саме можна "оптимізувати". І вона має саме технічні наслідки.

Відсутній BeSiDa

  • Дописувач
  • **
  • дописів: 91
  • Карма: +0/-0
Цитата
Під залізо, це використання меншої кількості пам'яті та місця диску і більшої частки заліза
Оптимізація під залізо це зазвичай підвищення швидкості виконання, яке в свою чергу доволі часто супроводжується збільшенням розміру бінарників
Залізу абсолютно пофіг буде воно виконувати програму 10 хвилин чи 10 днів.
Не пофіг людині.
Оптимізація "під залізо" це наслідок якоїсь мети саме людини. І мета буває різною. Частіше (та яскравіше) це коли без оптимізації під залізо людина не отримає результату взагалі.
Приклад "оптимізація місця" дозволить зробити компіляцію програми, бо без неї наявне місце на диску закінчиться (колись диски були малі) і компіляція взагалі не відбудеться.
Або "свап розділ" без якого "програма взагалі не запуститься" (не поміститься в оперативну пам'ять).
Або "графічний прискорювач" і "оптимізація програми для використання графічного прискорювач", без яких "гра взагалі не запуститься бо не вистачить можливостей основного проца" (або буде 1 кадр в секунду, що для "симуляторів" теж саме що "не запуститься симуляція").
Або "оптимізація під команди сопроцесора обчислення з плаваючою точкою".
Чи "запис та зберігання відео" (зі швидкістю 60, 120, 1000, 10000 кадрів на секунду). І без оптимізації то неможливо взагалі.

А вже потім (після мети людини) у проц (залізо) додають команди, які прискорять щось і саме використання тих команд то є "оптимізація софту".

Але є багато варіантів коли мета створення нової команди проца одна, а використання придумали інше (от як була мета "гратися в ігри", а використали для "обчислень вчених").

А ви про яку саме мету? Якого рівня? І кого саме? А вже потім буде "які наслідки оптимізації".

Відсутній yvs115

  • Кореспондент
  • ***
  • дописів: 186
  • Карма: +7/-0
Цитата
Приклад "оптимізація місця" дозволить зробити компіляцію програми, бо без неї наявне місце на диску закінчиться (колись диски були малі) і компіляція взагалі не відбудеться
програміііііст ...

Цитата
Або "свап розділ" без якого "програма взагалі не запуститься" (не поміститься в оперативну пам'ять)
адміністрааааатор ...

Цитата
Або "оптимізація під команди сопроцесора обчислення з плаваючою точкою"
матемааааатик ...

Цитата
Оптимізація "під залізо" це наслідок якоїсь мети саме людини
філооооософ ...

:)

Відсутній BeSiDa

  • Дописувач
  • **
  • дописів: 91
  • Карма: +0/-0
А для чого вам оптимізувати... мене? :D

Але як вам не цікаво, то ок... форум то не чат, мабуть ще хто читає, чи прочитає ... колись ... через багато років (от я читав старі пости).

А список то не весь. Там багато більше. І означення слова "філософія" ви не знаєте :))) то є "всі види наук" (тому закордоном є звання "доктор філософії" для всіх вчених).

І от вам ще вид оптимізації... Джіт компіляція. З Джава, Пайтона та інших. І навіть збереження відкомпільованого. А також динамічна заміна іншим компілюванням з іншими властивостями після автоматичного профайлінгу тієї самої програми на тому самому обладнанні. Тобто не тільки "під обладнання" але ще й "під саме ту програму" (її найбільш часті частини зсередини), та "під користувача чи паттерни мережевих запитів". І ... балансінг. Про процах та нодах. Що теж є "оптимізація" (окремо обчислення, окремо стораджі та інші взаємодії з обладнанням).

Але то інше. Десь між тими полюсами воно сходиться... і стається не "менше", а лише "якесь" :)))  Але багато хто вважає що "оптимізоване". Бо їм пофіг і не хочуть порівнювати (окрім, може, геймерів з їх фпс).