Uvolnit ruce designérům: Matematický model navrhne ideální rozvržení kuchyně za pár vteřin

Uvolnit ruce designérům: Matematický model navrhne ideální rozvržení kuchyně za pár vteřin

Informatika

Navrhnout funkční a estetické rozvržení skříněk i spotřebičů v nové kuchyni bývá pro designéry časově náročný proces, který se řídí řadou pevně daných pravidel. Vít Kološ se ve své bakalářské práci rozhodl tento krok automatizovat pomocí metod umělé inteligence a omezujících podmínek. V rozhovoru popisuje, jak spolupráce s firmou z praxe proměnila matematickou teorii ve webový nástroj a proč při řešení komplexního problému klasické algoritmy předčily módní trend strojového učení.

Mohl byste nám představit svou práci?

Pokud renovujete stávající kuchyň nebo stavíte zbrusu novou, můžete využít služeb kuchyňského studia. Designér vás ve studiu provede procesem návrhu kuchyně, který sestává z několika kroků. Jedním z nich je tvorba rozvržení (layoutu) kuchyně: Designér navrhuje rozmístění skříněk a spotřebičů v místnosti.

Tento krok bývá časově náročný, při vytváření layoutu je nutné zohlednit jak obecná pravidla použitelnosti a estetiky, tak konkrétní požadavky klienta. Mnoho těchto podmínek a zásad není těžké popsat formálně. Ve své práci tedy zkouším rozvržení generovat automaticky. Zavádím formální model rozvržení kuchyně a definuji výpočetní problém. Tento model implementuji dvěma způsoby: jednak pomocí smíšeného celočíselného lineárního programování, jednak za použití modelovacího jazyka MiniZinc. Cílem není designéra nahradit, ale uvolnit mu ruce, aby se místo kreslení layoutů mohl více věnovat klientovi a jeho potřebám. Automatizace rovněž umožňuje zkrátit dobu potřebnou k tvorbě rozvržení, čímž šetří čas všech zúčastněných.

Práce se zabývá částečnou automatizací plánování kuchyně (obrázek: https://www.pexels.com/)

Co vás inspirovalo k tomu, abyste se zaměřil právě na téma rozvržení kuchyní?

Chtěl jsem, aby se závěry mé bakalářské práce daly využít v praxi. S radostí jsem proto využil příležitosti spolupracovat se společností Salusoft89, která dodává software pro výrobu nábytku. Zbývalo už jen najít téma dostatečně blízké mé specializaci (umělá inteligence) a vhodného vedoucího. Obojí se povedlo – zaměřil jsem se na optimalizační úlohu generování rozvržení kuchyně, role vedoucího se ochotně ujal Martin Koutecký. Přestože mě na tématu původně zaujala perspektiva použití evolučních algoritmů, nakonec jsme se rozhodli pro jiné přístupy k řešení problému.

Můžete vysvětlit, jaký konkrétní přínos nebo využití má vaše práce?

Ve své práci se zabývám otázkami, zda je tvorbu rozvržení kuchyně vůbec možné automatizovat, v jaké formě může designér předat vstupní data programu, jak formalizovat jednotlivá pravidla a jak najít vhodné řešení co nejrychleji.

Designér se při návrhu snaží, aby byly skříňky zarovnané – toto pravidlo je proto zachyceno v modelu

Součástí práce je rovněž webový nástroj umožňující generování rozvržení kuchyní. Ten sice není vhodný k přímému použití v kuchyňském studiu, ale společně s ostatními výstupy práce může sloužit jako kvalitní základ pro diskuzi s designéry a další postup ve směru automatizace tvorby layoutu.

S jakými technologiemi jste pracoval, jaké metody jste využíval, a proč zrovna tyto?

Ke hledání vhodných řešení používám smíšené celočíselné lineární programování (MILP) a programování s omezujícími podmínkami (CP). Jedná se o běžné metody řešení NP-úplných problémů, mezi něž se Kitchen Layout Problem řadí (důkaz je v textu práce). Generování rozvržení kuchyní zajišťuje aplikace napsaná v Pythonu, implementace modelu jsou popsány pomocí nástrojů Pyomo a MiniZinc. Frontend webové aplikace je založen na frameworku Svelte.

Vstup, jak ho do webové aplikace zadal designér – oblasti, do nichž je možné umístit skříňky

Řešení (rozvržení kuchyně), které aplikace nalezla

Co bylo během psaní vaší práce nejtěžší, bylo něco, na čem jste se zasekl, nějaká cesta, co nikam nevedla? Je něco, co byste zpětně udělal jinak?

Jedním z přístupů k řešení problému, které v práci porovnávám, měl původně být i nástroj Nevergrad, který umožňuje mj. použití evolučních algoritmů. Nedařilo se mi ho však nastavit tak, aby generovaná řešení splňovala všechny požadavky. Proto jsem od něj upustil a dále jsem se věnoval pouze dvěma výše zmíněným přístupům (MILP, CP).

Jakým způsobem jste ověřoval výsledky své práce?

Společnost Salusoft89 mi poskytla sadu návrhů kuchyní, které kuchyňská studia vytvořila pro své klienty. Z rozvržení sice nelze odvodit, s jakými požadavky klienti přišli, ale mohl jsem tak získat alespoň základní představu o fungování mého nástroje v praxi. Velkou roli v ověřování výsledků práce hrála rovněž Kateřina Kratochvílová, studentka nábytkového inženýrství, která má spoustu zkušeností s procesem návrhu kuchyně. Poskytla mi cennou zpětnou vazbu k webovému nástroji, který jsem vytvořil, a rovněž mi pomohla se sestavením datové sady na základě poskytnutých layoutů.

Co považujete za nejdůležitější závěr své práce?

Jako důležité vnímám zjištění, že rozvržení kuchyně je možné generovat automaticky a že oba použité přístupy dosahují srovnatelných výsledků, přestože staví na rozdílných principech. Velmi překvapivý byl pro mě výsledek svobodného řešiče CP-SAT, který byl na testovacích datech rychlejší než komerční řešič Gurobi.

Máte pocit, že vaše práce může být inspirací pro další studenty nebo odborníky v dané oblasti?

V dnešní době jsou v souvislosti s umělou inteligencí často skloňovány generativní modely a strojové učení. Pro studenty umělé inteligence může být inspirativní, že ve své práci používám přístupy, které možná nejsou tak módní, ale odpovídají řešenému problému.

Webový nástroj umožňuje designérovi generovat rozmístění skříněk do určených oblastí v kuchyni

Odkazy:

Bakalářská práce: Generování rozvržení kuchyně jako optimalizační problém

Navazující diplomová práce Kateřiny Kratochvílové: Optimalizace algoritmu umělé inteligence pro návrh kuchyní


Původní materiál Informatické sekce

Další články k tématu