スレ立てるまでもない質問はここで 164匹目 (52レス)
1-

16
(4): (ワッチョイ 219a-reiW) 2023/08/09(水)00:35 ID:l6Bs4Rph0(1/4) AAS
ディスクに複数の、サイズの異なるファイルをコピーするとき、ディスク容量 < ファイル総容量
で、まずはこのディスク容量をできるだけ使えるようなファイルのセットを選んでコピーしたい
とします(残ったファイルは別のディスクへ)。これってナップサック問題ですよね?

ふと思ったのですが、動的計画法でやるときは横にアイテム数、縦に総量を変化させる
表を作りますが、上記の場合、ディスク容量の変化量はどうしたらいいんでしょう?
1バイト刻みにしたら大変な数に。でもそれじゃないと正しい解にならないのかな?
刻みを例えばディスク容量の1/10にしたら、計算量は減るけど最適ではなくなる? もしそう
ならどれぐらいずれるのかなみたいな
17
(1): (ワッチョイ 0f5f-4nYy) 2023/08/09(水)01:51 ID:Z+g/SZhh0(1) AAS
>>16
それは何かしらの具体的現実的な問題を解くことを考えているのですか
それとも競プロの作問検討で完結している話ですか
18: (ワッチョイ 219a-reiW) 2023/08/09(水)02:14 ID:l6Bs4Rph0(2/4) AAS
>>17
文字通り、ファイルをバックアップのためにディスクに退避するという現実の問題です
で、ファイルを選ぶ素朴な処理をスクリプトで書いてはみたのですが

でふと、そういえば動的計画法とかいうのがあったじゃないかと。では現実の問題に
アルゴリズムがどう適用される/役立つのか? という素朴な疑問といいますか
19
(1): (オッペケ Sr19-7Ell) 2023/08/09(水)06:38 ID:sRvGAj5Jr(1) AAS
>>16
これが何を最適化する問題か理解してるだろうか
20
(2): (ワッチョイ 219a-reiW) 2023/08/09(水)16:33 ID:l6Bs4Rph0(3/4) AAS
>>19
ナップザック問題、普通はアイテムに重さと価値があり、総重量が限界値を超えない
ように価値の総和を最大化しろ、ですが、
価値が重さに比例しているような場合を考えれば、総重量が限界値にできるだけ近い
組み合わせが価値の最大でもありますよね?

もしかしてこの場合はもっと話が簡単?
ビンパッキング問題というのもありむしろそっちかもしれませんがとりあえず
21
(1): (ドコグロ MM93-4nYy) 2023/08/09(水)16:44 ID:NtiLiHZsM(1) AAS
バックアップなんて単一のアーカイブファイルにまとめて任意の位置で分割すればいいのでは……
22
(1): (オッペケ Sr19-7Ell) 2023/08/09(水)16:59 ID:R4txOFu9r(1) AAS
>>20
>ビンパッキング問題というのもありむしろそっちかもしれませんがとりあえず
ファイルには個別の価値はなく、あるのはサイズだけ
それらを如何に少ないディスク枚数に収めるかが焦点なわけだからこちらの方が相応しいだろう
23
(1): (ワッチョイ 219a-reiW) 2023/08/09(水)17:17 ID:l6Bs4Rph0(4/4) AAS
>>22
そうなんだけど >>20に書いた問題として解くこともできますよね?
というわけで元の質問、総量を動かす方はどうしたらいいんじゃー、という>>16の疑問に
だれか答えてもらえると
24
(3): (オッペケ Sr19-7Ell) 2023/08/09(水)17:42 ID:7gFr3eBkr(1) AAS
>>23
これをナップサック問題と捉えて最適解が得られると思う?
簡単な例として
・ディスク1枚の容量が8
・ファイルが8個あってサイズがそれぞれ2、2、2、2、5、5、5、5
とする
この場合1枚目のディスクにはサイズ2のファイルを4個詰めるのが>>16の考え的にはベストになるけどこれは最適解ではないよね?
25: (スップ Sd03-E/+4) 2023/08/09(水)18:58 ID:9HfEjLA8d(1) AAS
これまだ使えんのかなと大昔使ってたソフトを引っ張り出してみる
外部リンク[html]:rohinomiya.cocolog-nifty.com
26: (ワッチョイ c379-IXit) 2023/08/09(水)20:47 ID:a2Z1uyz60(1) AAS
4TB+4TB(バックアップ)のファイル鯖から8TB+8TB(バックアップ)に移行したけど
余った4TBx2を8TB相当として活用したくてファイルをどう振り分けるかなーとか考えたことあるけど
そもそも4台もHDD稼動させて電気代の無駄じゃねという結論になって使わなかった
この時ナップザック問題は俯瞰的視点で問題自体が消失すると学んだ
27
(1): (ワッチョイ ff01-yVxo) 2023/08/09(水)21:54 ID:9dDk43S40(1) AAS
>>24
とにかく最初のディスクのみ最大限に使い倒したいという話なんだろ
知らんけど

問題に合わせて解き方を考えるんじゃなくて
解き方に合わせて問題を考えてるんだろうな
28: (ワッチョイ ffbb-NbbG) 2023/08/09(水)22:28 ID:m2a/AJBk0(1) AAS
>>21
ディスクが一枚でも死んだときに全データをロストするのでバックアップにはおすすめできない
29
(1): (ワッチョイ 219a-reiW) 2023/08/10(木)00:25 ID:7PHy5Ern0(1/2) AAS
>>24 >>27
んーバックアップのことをきっかけに「まずは」ナップサック問題(部分和問題)を
考えちゃダメですか?

で、例えばもしディスクが1TB≒10^12Bのとき、ナップサック問題を動的計画法で解くには
約10^12個の列を用意しなければならないのか? と、そこが疑問
「簡単な例題」はいつも総量が小さい整数の場合しか見たことがないので
アルゴリズムを現実の問題に適用したいと思った時の疑問といいましょうか
30: (オッペケ Sr9f-7Ell) 2023/08/10(木)00:42 ID:HDPOTapKr(1) AAS
>>29
>んーバックアップのことをきっかけに「まずは」ナップサック問題(部分和問題)を
考えちゃダメですか?

ナップサック問題で>>24の例題は解けるの?
まずはそれに答えよう
31
(1): (ワッチョイ ffbb-NbbG) 2023/08/10(木)00:51 ID:oULtvnGM0(1/2) AAS
散々突っ込みがあるけどこのケースはビンパッキング問題なのでナップサック問題の解法を持ち出しても意味がない
それはそれとしてナップサック問題においてテーブルが巨大になりすぎるケースへの対策はいくつがあるのでググれ
32
(1): (ワッチョイ 219a-reiW) 2023/08/10(木)12:40 ID:7PHy5Ern0(2/2) AAS
だから、元の問題から、ナップサック問題への疑問が浮かんだと書いてるでしょ
元の問題はきっかけに過ぎないというか。皆さん頭がやたらお固いのか

>>31
>それはそれとしてナップサック問題においてテーブルが巨大になりすぎるケースへ
>の対策はいくつがあるのでググれ

まさに自分の疑問は最初からその一点に尽きる。あまりその点を議論している話は
見たことがなかったので。ググレ、ですか。もうそんなの常識って感じ?
33: (ワッチョイ ffbb-NbbG) 2023/08/10(木)13:01 ID:oULtvnGM0(2/2) AAS
間違いを誤魔化し逆ギレ気味になってる奴と見られてるよ
味方が一人も現れてないってことはそういうこと
まあ自分を客観的に見るって難しいけど程々にな
34: (オッペケ Sr9f-7Ell) 2023/08/10(木)13:04 ID:IDRc3L5Ir(1) AAS
>>32
>元の問題はきっかけに過ぎないというか。
要するにバックアップの問題を解きたいわけじゃなくてナップサック問題と動的計画法を探求したいということ?
ならまずバックアップを題材にするのはやめて他の適切なお題を探そう
35: (ワッチョイ d311-hjB7) 2023/08/24(木)05:34 ID:c4nPOyKs0(1) AAS
minicondaで環境構築中
accelerateのバージョンが低いエラーが出たからpipでアップデート掛けたんだけど同じエラーが発生
指摘されたバージョンをアンインストールしても同じエラーが発生
何が原因か考えられますか?
36: (ワッチョイ 395f-tQHf) 2023/08/24(木)10:28 ID:avitWHZb0(1) AAS
どうなるかわからないのに作法を逸脱したから
なんとかcondaは新規環境の簡易構築用と割り切るべきで
通常利用している端末では使わないほうがいい
37: (ワッチョイ 83b3-ADg4) 2023/09/08(金)15:41 ID:4MDXzZ0s0(1/2) AAS
ubuntuのイメージが入っているdockerイメージをダウンロードし、それにOperaをインストールしました
実行しようとしたのですが・・・

[9:9:0908/153938.953587:ERROR:zygote_host_impl_linux.cc(100)] Running as root without --no-sandbox is not supported. See 外部リンク:crbug.com

っというエラーが。何が悪いんでしょうか?
38: (ワッチョイ 83b3-ADg4) 2023/09/08(金)15:53 ID:4MDXzZ0s0(2/2) AAS
あ、すいません
一旦取り下げます
39: (スップ Sd5a-3qd5) 2023/09/12(火)10:30 ID:OgaNelN6d(1) AAS
一旦?
40: (ワッチョイ a563-BuPN) 2023/11/21(火)11:35 ID:flL/yqDs0(1) AAS
知るか
41
(5): (ワッチョイ 338a-pDLy) 2023/12/28(木)04:24 ID:NBXduxv20(1) AAS
フラグ管理の効率的な方法を教えて下さい。
作成中の社内向け事務アプリなんですが、判定要素が多くなりすぎて毎回読む度に悩みます。

ユーザーに割り当てられた権限や日時による分岐がめっちゃ多いです。
例えば、シンプルなやつだと下記みたいな感じです。
※権限には、種類とランクがあります。

・権限Aを持っているユーザーB〜Eが、日時F〜Gの間に許可した時だけ、
 ユーザーH・Iが日時J〜Kの間だけ権限L・Mを付与されて、
 その権限を行使して処理NまたはOを合計2回行った時に、その権限を付与したユーザー(B〜E)の権限PをQ〜Rの期間降格する。
42: (ワッチョイ ffc0-YJuU) 2023/12/28(木)09:11 ID:i2ZdA1S00(1/2) AAS
>>41
・フラグにfindFlagみたいな不適切な名前をつけない
grantedのような過去分詞にする
・真偽値の変数をなるべく減らす
関数のロジックで表現して意味が通る単位で適度に分割する
・権限に関する判定を他のロジックから独立させる
たとえば権限判定クラスを作って、コンストラクタでユーザを与える
他のロジックからは、権限があるか?というメソッドだけを呼ぶ
権限の判定処理に興味があるときはその内側のソースのみを追えば良く、その逆も然りとする
43: (ワッチョイ 3393-ZEMC) 2023/12/28(木)10:45 ID:01mDGJoH0(1/2) AAS
>41
案1:フラグはデータベースで管理する。フラグが変更される度にデータベース内ユーザーフィールドのフラグカラムをupdateで更新する。

案2:フラグ変更のプログラムをサブルーチン化(ユーザー定義関数)させる。Aの挙動の時はhogeフラグ、Bの挙動の時はpiyoフラグ、というようにA/B/C…どんな挙動が行われても対応するフラグを与えられるようにサブルーチンでさせる。

どちらの案にも共通しているのは、「管理を1つにまとめる」「ページをまたいでもフラグを簡潔に保持できるようにする」という点。
44: (ワッチョイ 3393-ZEMC) 2023/12/28(木)10:49 ID:01mDGJoH0(2/2) AAS
>41
この手の内容は運用していくたびに今後もフラグの追加や削除が行われていきそうだから、メンテナンスしやすい可読性の高い先を見据えたプログラム書いてあげるのも重要だねー
45: (ワッチョイ 5363-y73S) 2023/12/28(木)11:06 ID:rMC+jsft0(1) AAS
業務系のバッチ処理だと割とありそうなパターンだが
先行する複数のジョブが終了して、後続のジョブを起動するとか
そういう時系列的順序性があるのかな?
1-
あと 7 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.006s