質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

4446閲覧

01ナップサック問題を分枝限定法で解く

SABA01

総合スコア10

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2018/08/04 17:37

編集2018/08/05 04:31

【編集いたしました】
#前提・実現したいこと
私は現在JavaScriptを用いて01ナップサック問題を分枝限定法で解くプログラムを書いています。
流れとしては荷物の個数をもとに列挙木を作り、暫定解をもとに最適でない解が見つかれば再起を用いて1つ前の葉に戻ればよいのではないかと考えておりますがうまく実装ができません。

#発生している問題
そこで質問なのですが、上限値及び、下記コード内の「ナップザック内の荷物を解の候補とする」はどのように実装すればよいのでしょうか。荷物の有無を保存する配列を作ればよいのですか?また、再起の条件はあっていますでしょうか。
#ソースコード

w = 重量
z = 暫定解
c = 容量
x[] = 木の高さ
n = 荷物の個数

Napsack(level){
if(level > n){//列挙木の葉の部分?
w =
v =
if((w <= c) && (v > z)){
z = v;
ナップザック内の荷物を解の候補とする;
}
}else{
w =
v =
if(!(w > c)){//重量が荷物の重さを上回ったら打ち切り
if(w == c){//暫定解の更新
if( v > z ){
z = v;
ナップザック内の荷物を解の候補とする;
}
}else if(上限値が暫定解より小さい){
x[level] = 0;
Napsack(level + 1);
x[level] = 1;
Napsack(level + 1);
}
}
}
}

追記
私の不適切な質問のせいで多くの方に不快感を与えてしまい申し訳ありません。
当方このようなサイトを使うことが初めてであり、情報不足、モラル不足だったのだと実感しました。
プログラムの程を実際に書いてみましたのでぜひ皆様のお力を借りれたら幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2018/08/04 21:31

https://teratail.com/help/avoid-asking >何かを作りたいのでコードを書いてほしい、学校の課題を解いてほしい等の質問は、具体的にプログラミングで困っている質問ではないと考え、推奨していません。
SABA01

2018/08/05 15:50

もうしわけありませんでした。
guest

回答1

0

ベストアンサー

分枝限定法をつかう競技プログラミング問題をまとめているサイトがありました。

競技プログラミングにおける枝刈り問題まとめ - はまやんはまやんはまやん

上で紹介されているそれぞれのサイトで他の人が書いた回答や解説が閲覧できる場合があります。それらを参考にしてみてください。

投稿2018/08/05 02:22

raccy

総合スコア21735

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

SABA01

2018/08/05 14:19

ご丁寧にありがとうございます。 参考にさせていただきました。とても分かりやすいサイトでうまく出来たと思ったのですが、問題が発生し、未だ完成には至っておりません。そのため別枠で質問させていただきました。この度は私の質問に答えてくださり誠にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問