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

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

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

Pythonistaは、iOS上でPythonプログラミングができる開発アプリです。さらに、Pythonの関数・変数などを自動で補完する便利なコードエディタや、PythonスクリプトをiOS上で多様な形で機能させる各種機能も内包しています。

意見交換

クローズ

6回答

453閲覧

遺伝的アルゴリズムの収束に関して

maro

総合スコア13

Pythonista

Pythonistaは、iOS上でPythonプログラミングができる開発アプリです。さらに、Pythonの関数・変数などを自動で補完する便利なコードエディタや、PythonスクリプトをiOS上で多様な形で機能させる各種機能も内包しています。

0グッド

0クリップ

投稿2023/09/25 05:58

編集2023/09/27 03:53

0

0

遺伝的アルゴリズムの収束に関して

細かい実装に関しての質問ではないため具体的なコード等は載せていません.
単に,gaに関しての処理の方法について意見交換ができればと考えています.

背景、状況

現在,遺伝的アルゴリズムを用いてナーススケジュールの自動化を行っています.
例えば15名30日分のスケジュールの作成を行うとする.勤務形態が8つあり,そのうちの一つに休みがあるとします.各ナースに必ず8日休みを割り当てる必要があります.これより多くても少なくてもいけません.その際,通常の交叉,突然変異等のみで処理は収束するものなのでしょうか.交叉は一点交叉を使用しています.

私の実装では,交叉を行った後にこの休みの数の調整を行っています.例えば,交叉を行った後に,8日より少ないものには,休み以外の勤務形態をランダムにその差分を休みに変更するなどの処理を行っています.その際,交叉の意味はなくなるのでしょうか.また,遺伝的アルゴリズムの意味はなくなってしまうのでしょうか.

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

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

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

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

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

回答6

#1

PondVillege

総合スコア1579

投稿2023/09/25 06:14

以下ChatGPTによる解答
https://chat.openai.com/share/9147ddad-ad5e-4971-8e27-dd752b9d338c

遺伝的アルゴリズム (GA) の美学や基本的な理念は、自然の進化を模倣することで最適解や良好な解を見つけることにあります。交叉、突然変異、選択などの操作を通して、次々と新しい世代が生成され、アルゴリズムが終了条件に達するまでこれを繰り返します。

あなたが述べたように、交叉後の調整が行われる場合、以下の点を考慮すると良いでしょう。

  1. 収束: 通常の交叉や突然変異だけでは、特定の制約条件(この場合、各医師に必ず8日休みを割り当てること)を満たす解に収束する保証はありません。制約条件を満たす解を生成するために、何らかの追加の操作や調整が必要になることはよくあります。

  2. 交叉の意味: 交叉後に解を調整することで、交叉の結果が変更される可能性があります。しかし、これが交叉の意味を無くすわけではありません。交叉は依然として二つの親から子を生成する役割を果たしています。調整はその後のステップとして考えることができます。

  3. GAの意味: GAの主要な操作は交叉、突然変異、選択です。これらの操作を行っている限り、GAの意味は損なわれません。制約条件を満たすための追加の操作を導入することは、多くの実際の問題において一般的です。このような追加の操作は、GAの柔軟性と実用性を示しています。

要するに、遺伝的アルゴリズムの基本的な操作を維持しつつ、特定の制約を満たすための追加の操作や調整を行うことは、GAの意味を損なうものではありません。むしろ、実際の問題を解決するためのアプローチとして、これが必要とされることが多いです。

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

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

#2

ikedas

総合スコア4343

投稿2023/09/26 04:06

編集2023/09/26 22:15

「各医師に必ず8日休みを割り当てる必要がありません.」は「……あります.」の誤記でしょうか。現状では文章の意味が取れないです。

あと、「ナース」のスケジューリングなのに「医師」の休日について述べているのもよくわかりません。どちらが対象なのでしょうか。あるいは両方でしょうか。

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

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

#3

ikedas

総合スコア4343

投稿2023/09/27 03:13

問題のコードがこのご質問で述べておられるようなものなのでしたら、それは「遺伝的アルゴリズム」ではありません。そのような場合は、私はこの意見交換から離脱いたします。

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

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

#4

maro

総合スコア13

投稿2023/09/27 05:22

#3
ご回答いただきありがとうございます.
自身としては,遺伝的アルゴリズムとして実装しているつもりではあるのですが,具体的にどういった点について遺伝的アルゴリズムではないのかご教授いただけますでしょうか.
別の質問にもご回答いただいたと思うのですが,「世代毎の個体数が1ではGAとして成立しません」とはどういうことなのでしょうか。

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

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

#5

ikedas

総合スコア4343

投稿2023/09/27 06:37

編集2023/09/27 06:50

#4
maroさんはどのようにして遺伝的アルゴリズムのことを勉強しましたか。

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

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

#6

ikedas

総合スコア4343

投稿2023/10/10 04:26

私の意見はこちらの回答とそれへのコメントに書きました。離脱します。

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

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

最新の回答から1ヶ月経過したため この意見交換はクローズされました

意見をやりとりしたい話題がある場合は質問してみましょう!

質問する

関連した質問