Free Trial

ウィークリーチャレンジリポジトリ

トップになるためのスキルをお持ちですか? ウィークリーチャレンジを購読しましょう。ベストを尽くして問題を解決し、解決策を共有して、他のユーザーがどのように同じ問題に取り組んだのか確認しましょう。私たちも解答例を共有しています。

チャレンジ #62: フラワーアレンジメントの最適化

SaoriG
Alteryx Alumni (Retired)

先週のチャレンジの解答は こちらで見つけてください。 

Source: https://www.gardenista.com/posts/flower-arranging-101-a-crash-course-for-the-uninitiated/Source: https://www.gardenista.com/posts/flower-arranging-101-a-crash-course-for-the-uninitiated/

 

今週は最適化ツールを使って問題を解いてみましょう。

 

フローリストがパーティーのために10パターンのフラワーアレンジメントを作成しようとしています。それぞれのアレンジメントで花の総数を最大化したいと考えています。

 

アレンジメントに含めたい花は7種類です。各アレンジメントには、それぞれの花を4〜8本、および3〜4本のかすみ草を含める予定です。

 

予算は950ドルです。フローリストはそれぞれの花を何本用意する必要がありますか?

 

*最適化ツールは、予測ツールのインストールの一部です。
予測ツールをダウンロードしてインストールする方法については、こちらのヘルプをご覧ください。

 

DaisukeTsuchiya
マグネター

最適化Toolを使うのは初めてで使い方について結構悩み、サンプルワークフローを見たり、Communityを調べたり、英語版のスポイラを見たりしながら解いてみました。最適化問題面白いですね。仕事にも何か応用できそうな気がするので、考えてみたいと思います。

 

スポイラ
色々試行錯誤して、3種類の方法で解いてみました。InputをFormatに合わせれば最適化Tool側では設定不要なのですね。
キャプチャ.PNG
AkimasaKajitani
17 - Castor
17 - Castor

最適化ツールは初めて使いましたが、こういうツールがあるんですね!って感じです。ほんと何かに使えそうな気はします・・・。

 

スポイラ
英語版#213の方で解いていたので、答え見ずに改めて解いてみました・・・。
まぁ、結果は同じなのですが・・・。

62.png

Masao
メテオール

使ったことのないツールは難しいですね。最適化ツールは特にヘルプがわかり辛くて...

でもいつか役に立つことでしょう。

今回、問題の10パターンを特定しようと思って全15万の組み合わせを出力してはみたものの、どうやったらそのうちの10パターンで950ドル以下・最大本数を実現できるのかがさっぱりわかりませんでした。

結局いろいろ試行錯誤したのち、まとめて最適化ツールを使うという方法に落ち着きました。

でも赤いバラ$2.3の方が白いデイジー$2.25よりも単価が高いのに、なぜ本数が多く出力されるのかが非常に気になるところです。(白いデイジー40本に対して赤いバラ57本)

 

スポイラ
Masao_0-1588913179042.png

 

DaisukeTsuchiya
マグネター

kajitaniさん、英語版もやっているのですね。社内のAlteryx推進のためにTeamsにWeekly Challengeを載せているのですが、外国人向けに英語版も載せ始めているので自分も今週から英語版もやる事にしました。今週のは少し面倒でしたね。

AkimasaKajitani
17 - Castor
17 - Castor

Tsuchiyaさん、最近英語版やりはじめました(きっかけは覚えてませんが・・・)。

英語版の後追いで日本語版が出てくるので、結局一週間に1問やっているのとあまり変わらない状態にはなるのですが、さすがに今の英語版の過去問すべてやっているわけではないので、古い問題から日本語版が出たときは、週に2問といった感じになっています。

 

今週のは、1つのデータソースで3問ですから、ある意味3問分やってるようなものですよね・・・。

英語版もGoogle翻訳にかければ結構いい精度で翻訳してくれるので助かります・・・(まぁ、そもそも問題文がわかりにくーい時があるのはご愛嬌で・・・)。

DaisukeTsuchiya
マグネター

Masaoさん、気になってWorkflow作ってみました。

この問題よくよく見たら、10個のアレンジメントの本数は一緒ではなくても良いと理解できます。(答えに57本と言う中途半端な本数がある)

そうするとカスミソウは30~40本、その他は40~80本のどの数値でも取れるため、まともに組み合わせを作ると兆を超えてしまい、どうやっても計算が収束しないので、カスミソウは30~40まで2本毎、その他は40~80まで4本ずつとして計算、本数が最大値となる中でCostが最小となる組み合わせを出してみました。(少しでも組み合わせの件数を減らすため、組み合わせる前からCostが越えてしまうものはFilterしています。減らした後でも8400万ケースありますが、2分弱で処理できます。)

どはまりして検討に2時間程掛かりましたが、いい勉強になり、面白かったです。回答は全部で417本に対し 416本、白いデイジーが56本となり想定に近い答えになりました。


スポイラ
capture.PNG

 

Masao
メテオール

DaisukeTsuchiyaさん

確かに、自分でも全組み合わせで確かめようとしたら、5種類まで組み合わせたところでPCの能力オーバーでどうにもならなくなりました。

 

そこで考えたんですが、最初は最大数量で組み合わせを作っておいて、そこから単価の高い花を1本ずつ引いていって、950ドルを下回るまで行けば正解にたどり着けるのではなかろうかと。

地道なワークフロー作ってみました。(マクロ作ってしまえばもっと簡単にできそうですが)

そうすると白いデイジー57本で合計417本と、どうやら正解らしいものにたどり着きました。

しかし最適化ツールを使用すると赤いバラ57本と答えが出てくるのがどうにも解せません。

なにかロジックが違うのでしょうか???

 

DaisukeTsuchiya
マグネター

Masaoさん、Workflow拝見しました。奇麗な処理で、Excel、Accessでの力技育ちの自分には思いつかないWorkflowで勉強になりました。

ご存知かもしれませんが、最適化Toolもマクロなので右クリックで開くことができます。自分はプログラムできないので良くわかりませんがご参考まで。

今回のケースでは模範解答の合計金額は949.9、それに対しMasaoさんの回答は949.05です。
想像ですが、Masaoさんのケースでは本数が最大となるケースの中での最安値、最適化Macroは本数も合計金額も条件下で最大となる様にケース選択しているのではないかと思います。

capture.PNG

Masao
メテオール