Savonia-artikkeli Pro: Optimointilaskenta tuotekehityksen apuna
Savonia-artikkeli Pro on kokoelma monialaisen Savonian asiantuntemusta eri aiheista.
This work is licensed under CC BY-SA 4.0
EU:n osarahoittamassa Specsoft-hankkeessa kehitetään teknologiateollisuuden tuotekehityksen käytänteisiin perustuva sovellus, jolla hallitaan uuden tuotteen konseptointiprosessi aina tuoteominaisuuksien määrittelystä teknisten suunnittelutavoitteiden asettamiseen. Konseptointisovelluksen ytimen muodostaa QFD:nä (Quality Function Deployment) tunnettu menetelmä, jolla asiakasvaatimukset muunnetaan suunnitteluvaatimuksiksi. Sovellus räätälöidään yritysten tarpeisiin ja sitä täydennetään ongelmanratkaisu- ja simulointimenetelmillä. Specsoftiksi nimetty sovellus kehitetään yhteistyössä yläsavolaisten kone- ja laiterakentajien kanssa sen käytettävyyden varmistamiseksi.
Tässä artikkelissa paneudutaan Specsoft -sovelluksen simulointiominaisuuksien kehittämiseen, jotka perustuvat pääasiassa optimointilaskentaan.
Miksi optimoidaan?
Specsoft sovellus yhdistää usean tuotekehityksessä käytettävän menetelmän, kuten QFD:n (Quality Function Deployment), AHP:n (Analytic Hierarchy Process) ja Kano-mallin, yhteen sovellukseen. Jokainen menetelmä itsessään on varsin monimutkainen, ja yhdessä näissä muodostuu erittäin laaja ja kattava tuotekehityksen konseptointivaiheen työkalu. Työkalun tavoitteena on löytää kehitettävän tuotteen asiakastyytyväisyyden näkökulmasta paras suunnitteluvaatimusten kombinaatio, huomioiden tekniset vaatimukset ja rajoitteet sekä lisääntyvät kustannukset ja niiden vaikutukset.
Kehitettävä tuote, kone- ja laiterakennukseen liittyen esimerkiksi kaivinkone tai traktorin lisälaite, käsittää yleensä monia satoja tai jopa tuhansia erilaisia suunnitteluvaatimuksia. Jotkut vaatimukset ovat teknisiä, ja vaikuttavat pääasiassa tuotesuunnitteluun tai valmistukseen, mutta eivät juurikaan näy asiakkaalle. Toiset vaatimukset puolestaan ovat asiakkaille enemmän näkyviä, joista jotkin tietyt ovat yhdelle asiakkaalle tärkeimmät ja toiset vaatimukset toiselle. Erilaiset tuoteominaisuudet ovat enemmän tai vähemmän sidoksissa toisiinsa, ja niiden kehittäminen vaikuttaa tuotteen valmistuskustannuksista myyntimenestykseen asti.
Systemaattista ja tehokasta tuotekehitystä varten näistä lukuisista suunnitteluvaatimuksista pitäisi osata valita ne, joita kehittämällä saavutetaan toivottuja tuloksia. Kehitysprosessiin valitut vaatimukset pitäisi siis pystyä myös järjestämään siten, että silloiseen kehitysnäkökulmaan voimakkaammin vaikuttavien ominaisuuksien parantamiseen panostetaan eniten. Kehitysnäkökulmia voi olla esimerkiksi asiakastyytyväisyyden parantaminen, valmistuskustannusten pienentäminen tai myyntimäärän maksimoiminen.
Aiemmin mainituilla tuotekehityksessä käytetyillä menetelmillä, QFD:llä, AHP:lla ja Kano-mallilla saadaan kaikkien suunnitteluvaatimusten joukosta rajattua haluttu määrä tuotekehitystä varten, sekä priorisoitua nämä valitun kehitysnäkökulman mukaisesti. Tämän jälkeen päästään määrittelemään kullekin suunnitteluvaatimukselle raja-arvot, eli mitkä kyseisen vaatimuksen minimi- ja maksimi tasot ovat. Tämä tapahtuu tuotteen ja sen valmistus- ja suunnitteluprosessin parhaiten tuntevien henkilöiden toimesta. Minimitasona voidaan yleistetysti pitää nykytilaa, koska tuotekehityksen tavoitteena on useimmiten parantaa tuotteita. Maksimitaso puolestaan on se taso, johon kyseinen vaatimus voidaan parhaillaan kehittää tällä hetkellä. Maksimitasolle kehittäminen voi lisätä tuotteen jatkuvia valmistuskustannuksia, joka puolestaan vaikuttaa esimerkiksi myyntihintaan, myyntimäärään ja tuotteista saatuun katteeseen.
Kun näillä menetelmillä on saatu haarukoitua lukuisten suunnitteluvaatimusten joukosta ne, joita lähdetään kehittämään, jää määriteltäväksi vielä mitä tasoa kunkin ominaisuuden kehittämisessä tavoitellaan. Jos tavoiteltu taso jää liian matalaksi, tuotekehitys ei täytä sille asetettuja vaatimuksia. Toisaalta jos kaikki kehitykseen valitut vaatimukset kehitetään huippuunsa, aiheuttaa se pahimmillaan huomattavia ylimääräisiä kustannuksia kokonaishyödyn jäädessä pieneksi. Tavoiteltu taso on siis jossain määriteltyjen minimi- ja maksimitasojen välillä, jonka määrittämiseen ratkaisun tarjoaa optimointilaskenta.
Optimoinnin periaate – epälineaarisuutta ja evoluutiota
Suunnitteluvaatimusten tavoitetason optimointia varten oli aiemmassa BisTech -hankkeessa kehitetty Excel-pohjainen ensimmäinen testiversio optimaattorista. Tämä testiversio sisälsi tarpeelliset määritykset ja laskentakaavat, joiden pohjalta optimointia voitiin tehdä. Exceliin ilmaiseksi saatavalla Solver lisäosalla optimointia pystyttiin ajamaan kolmella eri algoritmilla. Aiemmassa hankkeessa testiversion epävarmuudeksi oli jäänyt, kuinka oikein Excelin optimointiominaisuudet toimivat ja miten tämä toimintaperiaate saadaan siirrettyä web-sovellukseen. Lisäksi lukuisat pitkät laskentakaavat ovat Excelissä vaikeasti hahmotettavia, ellei siihen perehdy erityisellä tarkkuudella.
Frontline Systems Inc. yhtiön kehittämä Excelin ilmainen Solver-lisäosa tarjoaa hyvän ja verrattain helppokäyttöisen työkalun optimointilaskennan suorittamiseen. Tarjolla kolme erilaista algoritmia, jotka ovat Simplex LP, GRG Nolinear ja Evolutionary. Näistä ensimmäistä käytetään lineaariseen laskentaan ja kahta muuta epälineaarisiin tapauksiin. Epälineaarisissa tapauksissa on tärkeää huomioida, että GRG Nonlinear etsii lokaalisti optimaalisen ratkaisun ja Evolutionary globaalisti optimaalisen ratkaisun. Yksinkertaistettuna lokaaleja optimiratkaisuja voi olla olemassa monta, ja kun löydetty ratkaisu täyttää asetetut ehdot, optimointilaskenta pysähtyy. Globaaleja ratkaisuja on puolestaan olemassa vain yksi määritellyllä laskenta-alueella. Kuva 2. havainnollistaa globaalin ja lokaalin optimin eroa, ja Specsoftin optimointimoduulin kehityksessä päädyttiinkin siihen, että optimaattorin on kyettävä löytämään globaali maksimi epälineaarisessa tapauksessa.
Excelin Solverissa käytössä olevan Evolutionary algoritmin toiminnan pääperiaatteena on yhdistelmä geneettisiä algoritmeja ja lokaaleja etsintämenetelmiä. Geneettisissä algoritmeissa ensiksi luodaan alkupopulaatio, josta lähdetään muodostamaan niin sanotusti uusia sukupolvia, joista jokaisen sopivuus tarkastetaan. Mikäli muodostettu sukupolvi ei täytä sopivuusehtoja, se hylätään. Prosessia toistetaan niin kauan, kunnes määritetyt lopetuskriteerit täyttyvät. Geneettisten algoritmien yleinen toimintaperiaate on esitetty kaaviona kuvassa 3. Geneettisten algoritmien etuna on, että ne pystyvät löytämään globaalin maksimin, mutta joissain tapauksissa laskenta voi olla hidasta.
Epälineaarisuuden Specsoft sovelluksen laskentaan tuo suunnitteluvaatimusten parantamisen aiheuttama kustannusten kasvu. Tämä lisäkustannus ei välttämättä kerry lineaarisesti, vaan jonkin vaatimuksen parantaminen vain vähän saattaa aiheuttaa erittäin paljon kustannuksia. Toisaalta jonkin toisen suunnitteluvaatimuksen parantaminen ei välttämättä aiheuta juurikaan lisäkustannuksia, ennen kuin vaatimuksen taso on lähellä maksimia. Lisäkustannuksen kertymisen luonne on tapauskohtaista, ja se täytyy arvioida tuotekehitysprosessissa. Lisäkustannusten kertymiseen optimaattorissa käytetään Craig Kirkwoodin kirjassaan Stategic decision making: multiobjective decision analysis with spreadsheet esittämää kaavaa (kuva 4.).
Kuva 4. Lisäkustannusten kertyminen. Lähde: Stategic decision making: multiobjective decision analysis with spreadsheet, Craig W. Kirkwood, 1996.
Excelistä ohjelmoitavaksi moduuliksi
Sovelluksen ohjelmoitavaan optimaattoriin päätettiin etsiä geneettistä algoritmia hyödyntävä valmis ohjelmistokirjasto, jotta tuloksia voitaisiin verrata Excel Solverin tuloksiin edes jollakin tasolla. Laaja valikoima valmiita ohjelmistokomponentteja hyvällä dokumentaatiolla vaikutti löytyvän Python kielelle, jolla ensimmäinen ohjelmoitava optimaattori päätettiin tehdä. Pythonin etuna on myös sen yleisyys, jolloin ongelmatilanteisiin löytyy netistä paljon neuvoja. Lisäksi tekoälysovellus ChatGPT tuntee kielen sen yleisyyden myötä hyvin, joten sitä käytettiin apuna kehitystyössä. Alkuvaiheessa kehitystä tehtiin Matlab -ympäristöön, mutta Python osoittautui optimoinnin osalta helppokäyttöisemmäksi työkaluksi.
Excelin pohjalta Python ympäristöön koodattiin optimaattori hyödyntäen NumPy ja SciPy kirjastoja. Numpy-kirjasto tarjoaa valmiita ominaisuuksia ja funktioita mm. matriisilaskentaan ja SciPy -kirjastosta löytyy puolestaan valmiita optimointialgoritmeja. Optimaattorin koodaamisen jälkeen eri SciPy -kirjaston optimointimenetelmien testaaminen oli helppoa ja nopeaa. Testaamisessa käytettiin Differential Evolution, Minimize ja Brute Force menetelmiä, jotka kaikki antoivat yhteneväisiä tuloksia. Tulokset olivat myös erittäin lähellä Excel Solverin laskemia tuloksia.
Optimaattorin kehitystyön tuloksena saatiin Excelin pohjalta rakennettua ohjelmoitava optimaattori, jonka sovelluskehittäjät voivat viedä hankkeessa kehitettävään Specsoft -websovellukseen. Tämä optimaattorimoduulin kehitysvaihe oli tärkeä osa hanketta, ettei sovelluskehittäjien tarvinnut lähteä ratkaisemaan optimaattorin kehittämistä pelkän Excelin pohjalta. Sovelluksessa on iso määrä muita monimutkaisia ja tärkeitä kehityskohteita, joista optimaattorimoduuli on vain yksi osa kokonaisuutta.
Kirjoittaja
Ari Tanskanen, TKI-asiantuntija, Savonia-ammattikorkeakoulu