🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

9538閲覧

pythonでの生産スケジューリング問題の解法

houhouhou

総合スコア7

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

3クリップ

投稿2019/10/03 13:19

初めての質問です.(yahoo知恵袋的な質問法になってしまいますがご了承ください)
現在, 卒業研究で生産計画の最適化について取り組んでいる大学生です.
いずれは遺伝的アルゴリズムを用いて複雑な生産計画のスピーディな立案ができればと考えています.

簡単に説明すると例えば5日間で4つの銘柄(要素){A1,A2,B1}を2台の機械(X,Y)で生産する際, 総バッチ数の最小化で生産を行うためのプログラムを作りたいのですが, どういう関数を用いればいいのか分からず全く進みません.

要素のデータに関しては
要素名(番号, 生産量(トン), 生産開始可能日, 生産完了日, 使用可能機械)として
A1(1,8,1,5,XY)
A2(2,6,1,5,X)
B1(3,4,2,5,Y)
ちなみにAの生産後にBを生産する場合は, 銘柄切り替え日数として1日空けなければいけないという制約条件を加えています.
機械の生産可能量関して, X = 2t/日 と Y = 4t/日と設定します.

こういう問題だと, 使用コマの最小化で考えれば,
--1 2 3 4 5
X A2 A2 A2
Y A1 A1 B1

といった結果になるのは想像つきます.

問題はこれをどうpythonで書くのか分かりません.
なかなかpythonと生産スケジューリング問題が絡んだ教材が見つからず, 途方に暮れています.
おすすめの教材(できれば遺伝的アルゴリズムと生産スケジューリング問題の関わったもの)と, python学習のアプローチをご教授していただければと思います.

よろしくお願いいたします.

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

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

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

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

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

guest

回答1

0

ベストアンサー

自分なりに軽く調べて良さげと思った教材を紹介します。

卒検ということで遺伝アルゴリズムについてあまり詳しくないと推察しますので、まずは以下の記事を読むといいでしょう。

遺伝的アルゴリズム(Python)でマリオをクリアしたかったのに・・・

初心者向けに書いてある内容(さらに初心者向けの記事も紹介している)で、マリオという馴染み深く応用性の高い題材を用いている記事です。

次に、以下の記事にて、遺伝アルゴリズムを用いたスケジューリング問題を解いています。

遺伝的アルゴリズムでナーススケジューリング問題(シフト最適化)を解く

生産スケジューリング問題ではありませんが、「人員(機械)の配置」という点で少しはつながる点があるかと思います。

最後に、海外の記事になります(「product scheduling GA python」でググりました)が、以下の記事で生産スケジュール問題の最適化を行っています。

Scheduling with ease: Cost optimization tutorial for Python

この記事は、遺伝的アルゴリズムでも問題になる「評価関数の設計」について、コード付きで書いてあります。余力があったら読んでみてください。

投稿2019/10/07 04:45

amahara_waya

総合スコア1029

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

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

houhouhou

2019/10/07 08:23

GA童貞の私に親切に回答してくださりありがとうございます. 二つ目のナーススケジューリングのコードですが, 曜日×人員をどうにか製品×機械に書き換えようと思って現在も苦戦しています. また使っているPCの環境が32bitのためどうやらortoolspyも使えずこれまた悩んでいます. 研究室の先輩から引き継いだ研究ではないので, 自力学習しかありませんがこのサイトを参照して頑張ってみます.
amahara_waya

2019/10/07 09:50

試行錯誤の上、どうしてもわからない点があれば、別件にてまたteratailを使ってください。 回答に満足してもらえたようであれば、この質問は解決済みとしてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問