Pythonã§å§ããæé©åå ¥éââAI掻çšãããæææ±ºå®ãã®éçãŸã§èŠã€ããæ¹æ³ãšã¯ïŒ
AIã®æ°äž»åãé²ã¿ãä»ãããŸããŸãªã·ãŒã³ã§AIã«ããæ å ±ãããŒã¿ã®åæãè¡ãããŠãããã ãããã®åæçµæãããšã«ããæ¬¡ã®ã¢ã¯ã·ã§ã³ã«å¯Ÿããæçµçãªæææ±ºå®ã¯ãã»ãšãã©äººéãè¡ã£ãŠããã®ãçŸç¶ã ãããã§ä»åã¯ãPythonã§ç°¡åãªæé©ååé¡ãè§£ãããšããŽãŒã«ã«ãNECãœãªã¥ãŒã·ã§ã³ã€ãããŒã¿ã®AIç ç©¶ãšãã¹ããŒãã§ããåæå èæ°ãè¬æŒãè¡ã£ããã¢ãŒã«ã€ãåç»
æé©åãšã¯ããŒã¿ãããšã«æææ±ºå®æ¡ãçã¿åºãæè¡

NECãœãªã¥ãŒã·ã§ã³ã€ãããŒã¿æ ªåŒäŒç€Ÿãåæ å
èæ°
ãŸãã¯æé©åãšã¯äœããæé©åãšã¯ããŒã¿ãããšã«æææ±ºå®æ¡ãåºãæè¡ã§ãããAIãããŒã¿åæãšèããšãåé¡ãäºæž¬ãå¯èŠåãããŒã¯ãŒããšããŠæãæµ®ãã¶äººãå€ãã®ã§ã¯ãªãã ãããã
å¯èŠåã¯ãã§ã«ããããŒã¿ããã人ãåŸåãåæããæè¡ã§ãããåé¡ã»äºæž¬ã¯ãã§ã«ããããŒã¿ããæ°ããããŒã¿ãåé¡ããäºæž¬ããæè¡ã ãå¯èŠåãåé¡ã»äºæž¬ã§ã§ããããšã¯ãããããäœãèµ·ããã®ããšããæ å ±ãæäŸãããŸã§ããã®æªæ¥äºæ³ãšããæ å ±ãããšã«ã次ã®ã¢ã¯ã·ã§ã³ã®æææ±ºå®ã¯äººéãè¡ãå¿ èŠããã£ãã
ã ããæé©åã¯èšå€§ãªéžæè¢ã®äžããæé©è§£ãèŠã€ããæè¡ã§ãããããŒã¿ãããšã«æææ±ºå®èªäœãã¬ã³ã¡ã³ãããŠããããAIãåºåããæææ±ºå®æ¡ã«æ²¿ã£ãŠã¢ã¯ã·ã§ã³ã§ããããã«ãæææ±ºå®ã«ãããæéãççž®ãããããããæé©åã®ã¡ãªããã ã
ã§ã¯äººéã¯äœãããªãã®ããšãããšãããã§ã¯ãªããæ©æ¢°ãåºããæææ±ºå®æ¡ãæ¡çšãããã©ããã®å€æã¯äººãè¡ãå¿ èŠãããã
ãä¹ãæãæ¡å ã¢ããªãã€ã¡ãŒãžãããšããããããããšæããŸããä¹ãæãæ¡å ã¢ããªã§è¡ãå ãå ¥åãããšãä¹ãæãæ¡ããªã³ã¡ã³ããããŸãããã®æ¡ãæ¡çšããŠä¹ãæãããã©ããã¯äººéã倿ããŸãããããããšåãã§ããïŒåææ°ïŒ
äŸãã°ãããäŒç€Ÿã§ã¯AãšããååãšBãšããååãçç£ããŠãããããŒã±ããç¶æ³ããAIãäœå売ãããšäºæž¬ãããšããã
äºæž¬éãã«çç£ã§ããã°ããããçŸå®åé¡ãšããŠåææã®åšåº«ãå·¥å Žã®çšŒåç¶æ³ã人å¡ãªã©ã®å¶çŽããããããã§AIäºæ³ãšçŸå®ã«ãããå¶çŽãçµã¿åãããŠãè¯ãæãã®çç£èšç»æ¡ãåºåããããããæé©åã ãšåææ°ã¯èªãã
ãè¯ãæãã®è§£æ±ºæ¡ã¯ãæ¡ä»¶ã«ãã£ãŠå€ãããŸããç²å©ãè¯ããªããçŽå©çãé«ããªãã売äžãäžãããšããæ¡ä»¶ã§è§£æ±ºæ¡ã¯å€ãããŸãããããããææšã®è¯ããªããã®ãåºãã®ãæé©åã§ãã
ãé è¶³ã®ãèåãã®æé©ãªçµã¿åãããè§£ã
ã§ã¯ããããæé©ååé¡ãšã¯äœããåææ°ã¯ãé è¶³ã«æã£ãŠè¡ããèåã®æé©ãªçµã¿åããããäŸã«èª¬æãè¡ã£ãã
åãèåã®å€æ®µãšæºè¶³åºŠã¯å³ã®éãããããã®ãèåããããã¯ã¢ããããåèšã®å€æ®µã300å以å ã§ããã€æºè¶³åºŠã®åèšããªãã¹ã倧ãããªãçµã¿åãããèŠã€ããããšããæé©ååé¡ã®ã€ã¡ãŒãžã ã
ãŸããæé©ååé¡ã®ç°¡åãªå®çŸ©ã玹ä»ããããæé©åãšã¯ãå¶çŽæ¡ä»¶ãæºããè§£ã®äžã§ç®ç颿°ãæå€§åïŒãããã¯æå°åïŒããè§£ãèŠã€ããããšã§ããã
å¶çŽæ¡ä»¶ïŒæææ±ºå®ããéã«ãå¿
ãå®ããªããã°ãããªãã«ãŒã«ã
ç®ç颿°ïŒæææ±ºå®ããéã®ãæ¡çšåºæºã
倿°ïŒæææ±ºå®ãã察象
ãããå ã®äŸã«åœãŠã¯ãããšæ¬¡ã®ããã«ãªãã
å¶çŽæ¡ä»¶ïŒåèšéé¡ã300å以äžç®ç颿°ïŒæºè¶³åºŠã®åèšã®æå€§å
倿°ïŒã©ã®ãèåãæã£ãŠããã
æé©ååé¡ã«ã¯ãããã€ãã®åé¡ã®ä»æ¹ãããã倧ããåãããšã倿°ãé£ç¶å€ã颿£å€ããšããåãæ¹ãé£ç¶å€ã¯å°æ°ç¹ãå«ãé£ç¶ããå€ã颿£å€ãšã¯å°æ°ç¹ãå«ãŸãªããæŽæ°ãšããŠè¡šçŸãããå€ã§ããããŸããæé©ååé¡ã§ã¯ãç®ç颿°ã»å¶çŽæ¡ä»¶ãç·åœ¢ã»éç·åœ¢ã«åé¡ãããã宿¡ä»¶ã®çµã¿åããæé©ååé¡ã§ã¯ããã®é¢æ£å€ã䜿ãããšãã»ãšãã©ã ãšããã
çŸå®ã®åé¡ãæé©ååé¡ãšããŠè§£ãããã®ããã»ã¹ã¯ä»¥äžãšãªãã
- çŸå®åé¡ãæé©ååé¡ã«å®åŒåãã
- ãœã«ãã«ã€ã³ãããããŠãè§£ãæ±ãã
- æé©è§£ãã§ãŠãããããã®ãŸãŸçŸå®åé¡ã«é©çšããŠè¯ããã©ãããæ€èšãã
å®éã«ãã®ããã»ã¹ãããèåã®äŸã«åœãŠã¯ããŠãããç¥ãããããšã¯ããã©ã®ãèåãæã£ãŠããããã衚ã®ç«¯ã«å€æ°ïŒæã£ãŠãããæã£ãŠãããªãïŒã远å ããã
å¶çŽæ¡ä»¶ã¯ãæã£ãŠãããèåã®å€æ®µã®åèšã300å以äžã«ããããšã倿®µã®åãšå€æ°ã®åã®å ç©ã®åèšå€ã§è¡šãããšãã§ãããç®ç颿°ã¯æã£ãŠãããèåã®æºè¶³åºŠãæºè¶³åºŠã®åãšå€æ°ã®å ç©ã®åèšå€ã§ããã
ãã®ããã«å®åŒåã§ããã°ããœã«ããå©çšããŠæé©åãè§£ããŠãããããã§äœ¿ãã®ããPuLPããšãããœã«ããè§£ãããã®Pythonã©ã€ãã©ãªã ãPuLPã§ãœã«ããå®è¡ãããšãæé©è§£ãåºåããŠãããããèåã®çµæã«åœãŠã¯ãããšãæé©è§£ã¯ãã§ã³ã¬ãŒã+风+ããŒãã+ãã£ã©ã¡ã«ã®çµã¿åããïŒåèšéé¡ã¯290åãæºè¶³åºŠã25ç¹ïŒã
ç¡äºã«æé©è§£ã¯åºããããããæ¬åœã«æé©åãªã®ããç«ã¡æ¢ãŸã£ãŠèããããšãå¿ èŠã ãšåææ°ã¯èªãã
ãäŸãã°ãããå°ãå¥åº·ã«æ°ã䜿ã£ãçµã¿åãããæ±ããã®ã§ããã°ãå¶çŽæ¡ä»¶ã«ã«ããªãŒãå ããœã«ããå®è¡ããŸãããã®äŸã§ã¯éè€ãèš±ããŠããŸããããéè€ãèš±ãã®ã§ããã°ã倿°ã0/1ã§ã¯ãªããæŽæ°å€ã«ããã°å¯Ÿå¿ã§ããŸãã
PythonãçšããŠæé©ååé¡ãè§£ã
ç¶ããŠã¯ãå®éã«PythonãçšããŠæé©ååé¡ãè§£ããŠãã£ããä»åãåææ°ãè€æ°ããæé©ååé¡ãè§£ãããã«éžãã Pythonã©ã€ãã©ãªã¯PuLPãå®è£ ãæ¯èŒçç°¡åã§æ¥æ¬èªã®èšäºãå€ããPuLPãçè§£ããã°ãã®ä»ã®ã©ã€ãã©ãªã䜿ããããã«ãªãããã ãšããã
PuLPã®åºæ¬çãªäœ¿ãæ¹ã¯ã次ã®5ã¹ãããã§ããã
ïŒïŒã¢ãã«ã®äœæ
ãŸãã¯åé¡ãè§£ãããã®ã€ã³ã¹ã¿ã³ã¹ãå®çŸ©ãããã€ãŸããLpProblemãã€ã³ã¹ã¿ã³ã¹åãæå°ååé¡ãæå€§ååé¡ãè§£ãã¢ãã«ã¯æ¬¡ã®éãã倿°åã¯probã§è¡šããŠããã
ïŒïŒå€æ°ãäœæ
LpVariableïŒå€æ°åãLowbound=æå°å€ãupBound=æå€§å€ãcat=倿°ã®çš®é¡ïŒãšãã4ã€ã®ãã©ã¡ãŒã¿ãæå®ãçš®é¡ã¯é£ç¶å€æ°ãªã®ãã2å€å€æ°ãæŽæ°å€æ°ãé£ç¶é¢æ£å€ãªã©ã§å€ãã£ãŠãããcatã¯ããã©ã«ãå€ãšããŠé£ç¶å€æ°ãå
¥ã£ãŠãããæå°å€0ïœ10ãŸã§ãæŽæ°å€æ°ã®ãšãã¯ãintegerãæå®ããã
ïŒïŒç®ç颿°ã®èšå®
1ã§ãprobããšããååã§äœæãããªããžã§ã¯ãã«å¯ŸããŠã+=ã§ç®ç颿°ãææããã
ïŒïŒå¶çŽæ¡ä»¶ã®è¿œå
å¶çŽæ¡ä»¶ã¯1ã§äœæãããªããžã§ã¯ããprob +=ç®ç颿°ããšããããã«ãç®ç颿°ãšäŒŒãå®çŸ©ã®ä»æ¹ãšãªãããã®éãã¯ã+=ããå³ã¯æ¡ä»¶åŒã«ããå¿
èŠãããããšã
ïŒïŒãã¹ãŠèšå®ã§ããã°æé©ååé¡ãè§£ã
æé©ååé¡ãè§£ãå Žåã¯ãsolveãšãã颿°ã䜿çšãprintãšãã颿°ã§æé©å°ã確èªã§ãããæé©è§£ã®äžèº«ã確èªããããšãã§ããã
ç¶ããŠãç°¡åãªåé¡ãçšããå®è£ äŸã玹ä»ãããã
衚ã®èŠæ¹ã¯ã次ã®ããã«ãªããäŸãã°ã¹ã¿ã³ãã«ã©ãŒã·ã£ãã1çäœãå Žåã¯ã45ã®ã¢ã«ãã«ãš10ã®ããªãšã¹ãã«ãæ¶è²»ããããäžçªäžã®åšåº«ãšã¯åææã®åšåº«ã§ããã
ããã®çç£èšç»åé¡ãPythonã§å®è£ ããŸããä»åã¯Pythonã®PuLPã䜿ãã®ã§ãå®åŒåã¯æ¬¡ã®ãããªåœ¢ã§è¡šããŸããã
倿°ïŒåååãäœåçç£ããã
ç®ç颿°ïŒå£²äžã®æå€§å
å¶çŽæ¡ä»¶ïŒçç£ã§äœ¿çšããåæ
PuLPã®å®è¡ç°å¢ãšããŠäœ¿ã£ãã®ã¯ãJupiter NotebooKã䜿ãåæã¯Pythonã®ã€ã³ã¿ã©ã¯ãã£ãã¢ãŒãã«è¿ãããããŠå€éšã©ã€ãã©ãªã§ããPuLPãJupiter NotebooKã«ã€ã³ã¹ããŒã«ãè§£æããããŒã¿ãèŠãããããPandasãã€ã³ã¹ããŒã«ããã
ãŸãã¯productsãšããããŒã¿ãã¬ãŒã ã§ãåååã®ååãšååäŸ¡æ Œã®ãã¡ã€ã«ãèªã¿èŸŒããæ¬¡ã«materialsãšããããŒã¿ãã¬ãŒã ã§ãåååã®çç£ã«æ¶è²»ããææã®æ°ã®ãã¡ã€ã«ãèªã¿èŸŒãã
ããã«stockãšããåšåº«æ å ±ã®ãã¡ã€ã«ãèªã¿èŸŒãããããŸã§ãæé©ååé¡ãè§£ãããã®åæºåãã§ãããšããã§ãæé©åãªããžã§ã¯ããäœæããã
次ã«å€æ°ãå®çŸ©ãä»åã¯ååã®çš®é¡ããšã«å®çŸ©ãç°ãªãã®ã§ãåååã«å¯Ÿå¿ãã倿°ãäœæãããLpVariableãšããã¯ã©ã¹ãã€ã³ã¹ã¿ã³ã¹åãããçç£åæ°ã«ãã€ãã¹ã¯ãªãã®ã§ãæå°å€ã¯0ãšããäžéå€ãèšãã倿°ã¯é£ç¶å€ã§ã¯ãªãæŽæ°å€ãæå®ããŠããã
ç¶ããŠç®ç颿°ãèšå®ãä»åã®ç®ç颿°ã¯å£²äžãªã®ã§ãååäŸ¡æ ŒÃçç£æ°ïŒå ç©ïŒã®åèšãšãªããããã«ææããšã«å¶çŽæ¡ä»¶ãå®çŸ©ããŠããã
ãã¹ãŠèšå®ã§ããããæé©ååé¡ãå®è¡ããã®ã ãããã®åã«æ£ããç®ç颿°ãå¶çŽæ¡ä»¶ãèšå®ãããŠãããã©ããããprint(prob)ã§ç¢ºèªããã
ãããã°ãœã«ããå®è¡ãä»åã®æé©ååé¡ã§ã¯ã次ã®ãããªè§£ãæäŸãããã
ãã®è¡£æã®çç£åé¡ã«ãçç£ããååã®åæ°ã¯AIã«ããéèŠäºæž¬ãè¶ ããªããšããå¶çŽæ¡ä»¶ãä»ãå ããåææ°ããã®çç±ãããèªãã
ãçç£ããã°ããã»ã©å šéšå£²ããåæã§ããããçŸå®ã«ã¯ãããªããšã¯ãªãããã§ãã
åŸã£ãŠãå®åŒåã¯æ¬¡ã®ããã«ãªãã
éèŠäºæž¬ãå ¥ã£ãååæ å ±ãã¡ã€ã«ãèªã¿èŸŒãããããŠãéèŠäºæž¬ã®å€ãäžéãšããŠæå®ãå ãšåæ§ããœã«ããå®è¡ããããã®çµæã¯ä»¥äžã®ããã«ãªãã
æåŸã«åææ°ã¯ä»¥äžã®ããã«èªããã»ãã·ã§ã³ãç· ããã
ãå®éã«è§£æ±ºãã¹ãåé¡ã¯å¶çŽæ¡ä»¶ãè€éã§ãããŒã¿æ°ãããªãå€ããªããŸããåºæ¬çã«ã¯å¶çŽæ¡ä»¶ãå ããç®ç颿°ããã¥ãŒãã³ã°ããŠããããšã§ãæé©è§£ãèŠã€ããŠãããŸããæé©è§£ã¯ãAIã«ããäºæž¬ã®æ¬¡ã®ã¹ããããšããŠæçšã§ããPuLPãçšããã°æé©ååé¡ãè§£ãããšãã§ããŸãããã²ãé¢å¿ãæã£ãæ¹ã¯è©ŠããŠã¿ãŠãã ããã
äžå¯§ãªåææ°ã®è§£èª¬ã¯ãæé©ååé¡ã®åºç€ãç¥ããããšã³ãžãã¢ã«ãšã£ãŠãéåžžã«ææçŸ©ãªæéã«ãªã£ãã®ã§ã¯ãªãã ãããã
質åãç¶ã ãšå¯ããããQ&Aã¿ã€ã
è¬æŒçµäºåŸã¯Q&Aã¿ã€ã ãæ¬ã€ãã³ãã®åå è ããå€ãã®è³ªåãåææ°ã«å¯ããããã
QïŒå®åŒåããéãæ®æ®µããæ°åŒã«è§ŠããŠããªããšé£ãããšæããã瀟å ã¡ã³ããŒã«æãããšãã¯ã©ã®ãããªå·¥å€«ãããŠããã®ã
åæïŒããã¯äžçªé£ãããšããã§ãããç§ã¯å®ç§ã«æ°åŒã«èœãšã蟌ãå¿ èŠã¯ãªããšèããŠããŸããortools Pythonã«èœãšã蟌ããç¯å²ã§å®åŒåããã°è¯ããšæããŸãã
QïŒé è¶³ã®ãèåã®åé¡ã§ãç®ç颿°ãæºè¶³åºŠæå€§åãã€ææåæ°æå°åãªã©ãšãããå Žå
ã»æ£èŠåã¯å颿°ã§0-1ãªã©ã«ããã°ããã®ã
ã»ã©ã¡ããã®é¢æ°ã«-1ãä¹ããåç®ãç®ç颿°ãšããŠããã®ã
åæïŒãèåã®æ°ã®åèšãªã®ã§ãäŸãã°ã倿°ãšããŠ2çš®é¡èšå®ããã°è¯ããšæããŸããã§ãããç®ç颿°ãè€æ°ããå Žåã¯ãPuLPã§ã¯è§£ããŸããã
QïŒãœã«ãã§åºãŠããè§£ãæ¬åœã«æé©è§£ãªã®ããã©ã®ããã«ãã§ãã¯ããã°ããã
åæïŒäŸãã°Excelã®ãœã«ãã®æ©èœãªã©ãå¥ã®ãœã«ãã䜿ããšè¯ããšæããŸãã
QïŒæ©åšã®é転æéã»éè»¢åæ°ã®æé©åãPythonã§è¡šçŸã§ããã
åæïŒç®ç颿°ãå¶çŽæ¡ä»¶ãè§£ãã°ãPythonã§è¡šçŸã§ããŸãããããŒã¿æ¬¡ç¬¬ã ãšæããŸãã
QïŒç®ç颿°ã«å ç©ãªã©ã®ç·åœ¢åã ãã§ãªããä»»æã®éç·åœ¢é¢æ°ãèšå®ããããšãã§ããã
åæïŒPuLPã§ã¯å°ãªããšãã§ããŸãããå¥ã®ã©ã€ãã©ãªãå¿ èŠã§ãã
QïŒæé©è§£ãæ±ãŸããªãå ŽåãããïŒ
åæïŒæããã«ççŸããŠããäºã€ã®å¶çŽæ¡ä»¶ãå®çŸ©ããå Žåãªã©ã¯ãæé©è§£ãååšããªãããšããããŸãã
QïŒè³Œè²·ããŒã¿ãã賌買確çã®é«ã顧客ãAIã§äºæž¬ããåŸã売äžãæå€§åããé¡§å®¢ãæœåºããææ®µãšããŠæé©ååé¡ã¯é©çšã§ãããããã®å Žåãå¶çŽæ¡ä»¶ã¯ã©ããªãã®ã
åæïŒè³Œè²·ç¢ºçã®é«ã顧客ãããã¯ã¢ãããããšããã®ã³ã¹ããå¶çŽæ¡ä»¶ã«ãªããŸãã
NECãœãªã¥ãŒã·ã§ã³ã€ãããŒã¿æ ªåŒäŒç€Ÿ
https://www.nec-solutioninnovators.co.jp/
NECãœãªã¥ãŒã·ã§ã³ã€ãããŒã¿æ ªåŒäŒç€Ÿã®æ¡çšæ
å ±
https://www.nec-solutioninnovators.co.jp/career/
ããããã€ãã³ã
é¢é£ããã€ãã³ã













