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

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

新規登録して質問してみよう
ただいま回答率
85.48%
アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

Q&A

解決済

2回答

3692閲覧

矩形に四角形を重ならないようにランダムな位置に配置するアルゴリズム

rtag

総合スコア5

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

0グッド

0クリップ

投稿2020/08/21 15:54

編集2020/08/22 11:23

とあるサイズの矩形に四角形を重ならないようにランダムな位置に配置するアルゴリズムを探しています。

以下の画像のようなものを想定しています。
青い四角形をランダムに配置しています。

イメージ説明
イメージ説明

こういったアルゴリズムがあるという情報だけで構いません。ご存知の方がいらっしゃれば教えていただきたいです。
追記:ある程度速度が速い方法を探しています。

(個人的に考えたのは、図形詰め込みアルゴリズム(参考:Pythonによる図形詰込みアルゴリズム入門)を用いて詰め込んでから、かさならないようにランダムで動かすという手法です・・・もっと綺麗にできる手法があると思い質問を投稿させていただきました。)

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

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

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

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

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

guest

回答2

0

ベストアンサー

(貼られている絵の様子から,四角形はグリッドに沿う位置に配置するのだと思って以下を書きます)

まず,「ランダム」を度外視して,「全ての四角形を枠内に置ける配置パターンを見つける手続き」を考える.
この手続きは,ほうっておけば(置けるパターンを見つけてもそこで止めなければ)全ての配置パターンを探索するだろう.

これに対して「ランダム」を導入するとしたら…

  • 前記の「探索」の順序は,何らかの秩序立ったルールに従っているだろうが,

この探索順序をランダムに決定すればよいのではないか.

  • あるいは,「K番目に見つけた置けるパターンを解とする」こととしてKを乱数で決めればよいのではないだろうか.

…といった,至極単純な話をまず思いつくけれども,そんな話ではいかんのでしょうか?

投稿2020/08/22 06:39

fana

総合スコア11654

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

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

rtag

2020/08/22 07:22

ある程度速度を求めているので、すべての四角形の配置パターンを処理するのは難しいですが、 ある程度配置パターンを求めてから、特定番目の配置パターンを解とするという手法はとても参考になりました。ありがとうございました!
fana

2020/08/22 07:54 編集

実際に想定している問題の規模(?)とか,このような力技な(?)方法だと速度の面で問題がある等の懸念事項等を質問文内にて述べておくと良いように思いまする.
guest

0

すでに、ご存じかもしれませんが

組み合わせ最適化と呼ばれるジャンルのものでしょうか。

直接的なアルゴリズムは知らないのですが、キーワードとしては、組み合わせ最適化、アルゴリズムで
いろんな情報が得られると思います。

投稿2020/08/21 16:55

momon-ga

総合スコア4820

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

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

rtag

2020/08/22 07:24

組み合わせ最適化に関しまして調べていきたいと思います! ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問