アプリ版:「スタンプのみでお礼する」機能のリリースについて

8本のハンドがあるクレーンがあります。クレーンでトラックに荷物を積むのですが、その荷物は全部で8種類あります。
1本のハンドでは1種類の荷物1つが運べ、1回のクレーン動作で同時に8個の荷物がトラックに積めます。
日によってトラックに運ぶ荷物の数、種類はまちまちなのですが、1つの荷物を運ぶハンドは他の荷物を
吊り上げることができず、例えば5種類の荷物を運ぶためには対応したハンド5種類をクレーンに装着しな
ければなりません。トラックは2つのレーンに1台ずつ待機しており、規定の荷物を全て積み終わったらすぐに発車し、
その後、後続のトラックがすぐにレーンに入ってきます。2台待機していますが、一旦荷物を積み始めた
トラックが全ての荷物を積み終わるまでもう一台のトラックには荷物を積むことができません。
片方のレーンのトラックが積み終わり、トラックが入れ替わっている間はもう一方のレーンのトラックには荷物を積むことが出来ます
クレーンのハンドの交換時間をXとし、クレーンが荷物を吊り上げてからトラックの位置まで運ぶ時間をYとすると
X+Yが最も短くなるクレーンのハンドの組み合わせはどうやったら求まるでしょうか?(一般式はどうなるのでしょうか?)
XはYのZ倍です。

例:A30個 B10個の場合

はじめにA用が8本ついていたら4往復
B用に8本つけかえて2往復 (1回交換)
4X+2X+Y

A用4本、B用4本であれば

3往復でA12個、B10個運べたので、
全てA用に付け替える(1回交換)

残り1往復でA8個運べる

3X+Y+X (こっちの方が良さそう)

でも次のレーンのトラックの積み始めはA用8本からだが本当に最速なのか?。

積む荷物は日によってトラック1台あたり1種類で10個だったり、3種類(A3個 B4個 C1個) だったり全く規則性がありません

1秒でも短くしろという事なのでよろしくお願いします。

A 回答 (7件)

ここまで補足を求めておいてなんですが、私にとっては、とても複雑な問題になっています。

 回答を求める一般式を出すことが可能かどうかは分かりませんので、私の思いつく範囲でのアドバイスをさせていただきます。 (一番効率が良くなるのは、全ての荷物を共通のハンドで扱えるようにすることですが、それができればこんな質問は発生しないですね) 問題を求めるのが不可能な間、考えられる運用としては積み込む荷物のパターンによって回答を考え表にまとめておくこと。 事前に積み込む荷物のパターンが把握できるならそれなりに有効だと思います。

例の問題を考えてみると
(A:8,B:0)にて4往復 所要時間4X→付け替え 所要時間Y→(A:0,B:8)にて2往復 所要時間2X→合計時間 6X+Y = (6+Z)X
(A:4,B:4)にて3往復→付け替え→(A:8,B:0)にて3往復 の所要時間は同じく6x+yになります。
この例について直感的なアプローチをとると荷物は全部で40個あるので、一回に8個の荷物を運べるので一回も空のクレーンがなければ5往復で運べます。 Aの荷物30個とBの荷物10個に両方とも5(運ぶ回数)で割れますので、クレーンは(A:6,B:2)にて5往復 所要時間は5xというのが最小になります。 このように所要時間はxの倍数になりますが,クレーンの付け替えが発生する際にはZの倍数が加わってきます。 zの値によっては一回余分に付け替えて一回で荷物を運ぶよりは、2往復荷物を運ばせたほうが良い場合もあると思います。(z>2) 

エクセルなどで表を作って実際に所要時間を予測してみるか、プログラミングができるなら、シミュレーションプログラムを組んでみるぐらいしか、私には思いつきません。 クレーンの組み合わせパターンも有限ですので、パターンでの時間予測はできないことはないと思いますが、あまり現実的ではないような、、、 また、次のトラックの荷物のパターンが違う場合はもっと複雑な問題になってきますので、まずは一台のパターンから、考えていったらいかがでしょうか? 

すっきりした回答が出せなくて申し訳ありません。
    • good
    • 0

No4ですが、もう一つだけ教えていただきたいのですが、ハンドの交換時間Xというのはハンドを1個交換する時間でしょうか? それとも、一回に何個か交換してもXなのでしょうか? 質問ばかりで申し訳ありません。

この回答への補足

詳細まで考えてくださってありがとうございます。今回のケースはハンドを交換する位置まで移動する時間がハンド一つの交換に要する時間に比べて大きいため、1回の交換動作が発生した場合何個ハンドを交換しても交換に要する時間はXとさせて下さい。
よろしくお願いします。

補足日時:2005/12/09 00:01
    • good
    • 0

No4です。



勘違いしていました。

>1本のハンドでは1種類の荷物1つが運べ、1回のクレーン動作で同時に8個の荷物がトラックに積めます。

の意味をはっきりと理解していませんでした。

一種類の荷物8個までが運べるということでしょうか?

この回答への補足

回答ありがとうございます。
質問の書き方があいまいで申し訳ありません。
対応するハンドの組み合わせにより、
同一のハンドを8個装着し、同じ荷物を8個運ぶ事もできますし、8種類のハンドを装着し、8種類の荷物を運ぶこともできます。ハンドの種類は自由に組み合わせることができますが、合計は8個です。
以上よろしくお願いいたします。

補足日時:2005/12/07 00:17
    • good
    • 0

指揮という意味では答えにはなっていませんが、直感的に考えると、Y=荷物の数*2で変動しないので、Xを最小限になるよう荷物をつめば宵のでゃないでしょうか。


一台のトラックに荷物を積み終わらなければ、次のトラックの作業を開始できないという条件があるので、

(1)現在ついているハンドで詰める荷物を全部積んでしまう。

(2)交換の際、複数の選択があるならば次のトラックに積む荷物に使えるハンドを最後に付ける。

とすれば、最小時間になるのではないでしょうか?

待機させるトラックを、積み込み時間中に入れ替えたりすると、(2)の条件の可能性が高くなることはあると思います。 
    • good
    • 0

ちょっとだけ考えてみましたが、結構複雑そうですね。


ハンドの種類を変数にして、うまく制約条件を作れば、線形整数計画法になるような気はします。

あと、最初にA用8本ついてた場合ですが、
A×8本で3往復した後、6本はAのままで運んでいる間に、残り2本をB用に交換しておけば、
4X+2X+Y
より短くなると思いますが。
そういうことを考えると、さらに複雑そうです。


>クレーンのハンドの交換時間をXとし、クレーンが荷物を吊り上げてからトラックの位置まで運ぶ時間をYとすると
これ逆ですよね?

この回答への補足

返信遅くなり申し訳ありません。
XとYが逆になっていました。
もしかして、シンプレックス法についてお詳しいでしょうか?

補足日時:2005/12/07 00:12
    • good
    • 0

3往復でA12個、残り1往復でA8個運べる


とありますが、それだとA20個しか運べてないですよ。問題はA30個 あったんですよね。

すなおに、1種類ずつ片付けていくのが一番速いと思います。交換の所要時間が運ぶ時間に比べて短いならば、
Aを4往復で運ぶ時4往復目には6個しか残っていないから2個だけB用に付け替えたら良いでしょう。

この回答への補足

回答ありがとうございます。
やはり1種類ずつ考えていって、ある程度のシミュレーションから法則性を出した方が良いのかもしれませんね。
ちょっとそちらの方からアプローチを検討してみます。

補足日時:2005/12/07 00:23
    • good
    • 0

「でも次のレーンのトラックの積み始めはA用8本からだが本当に最速なのか?」


とありますが、

次のときまで考える意味がわかりません。

だって、X+Yというのは、

そのときの時間なわけで、
次のときの時間うんぬんを含んでないですからね??
    • good
    • 0
この回答へのお礼

質問のしかたがまずくて申し訳ありませんでした。
自分の頭の中が整理できる前に質問しちゃったようです。(謝)
もうちょっと整理してみます。
回答ありがとうございました。

お礼日時:2005/12/07 00:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!